Hardening consulting

Projects

Some projects I'm contributing or working on.

Wayland / weston

RDP Compositor

I'm the author and official maintainer for the RDP compositor in weston. This headless compositor exports a wayland desktop through the RDP protocol. This post covers this subject in details.

Note that this compositor is also used by Jason Ekstrand's fullscreen shell.

There have been a lot of press activity around that when it has been released (see press section).

Ogon compositor

This project is quite similar to the RDP compositor, this time it's about having a weston desktop exported via Ogon. The Ogon session manager can instanciate a weston desktop using the Ogon backend. This can be used for testing wayland applications or having X11-less installations. A post gives more details about this project.

FreeRDP

I'm a contributor on the FreeRDP project, I have:

  • done many security improvements in RDP packet decoding ;
  • pushed many patches to handle corner cases like failing memory allocations and such ;
  • Reworked the transport layer to have a cleaner design ;
  • adapted wayland and weston code to write the UWAC library (Using Wayland As a Client) and wlfreerdp ;
  • and many others...

Ogon

I'm part of the guys that did Ogon. I have been working on the server itself as well on external channels.

Projects involving Qt

Qfreerdp

It's a Qt platform plugin that allows to export application through RDP. With this plugin, you can take any Qt5 application and export it through RDP without any recompilation (there a limitation with apps using OpenGl).

This project is hosted on github. It is published under the Apache 2.0 license and I know that some commercial products are using it internally.

QOgon

This project is the same kind of project than Qfreerdp but to publish the application through Ogon. You can comfortably develop and test your Qt5 application on your desktop. And when it's ready the binary can be used as-is for a publication through Ogon.

The greeter (gui application asking for login / password) of ogon in this video uses that project:

https://www.youtube.com/watch?v=hGErMsA8kG4

We also have custom Qt5 widgets that can interact with the Ogon server. These widgets can be dragged/drop directly in QtDesigner. For example, we have a mode switcher widget that allows to change the RDP resolution from the application.

As features will be added in FreeRds, we will add more widgets to lower the gap between a native application and a published one.