The talk was focused on writing good code and sandboxing.
The writing goode code part was using vsftpd as an example, since Chris has got this right for ten years now.
In the second part, we defined sandboxing, which we also call discretionary privilege dropping, as the ability to drop privileges programmatically and without administrative authority on the machine.
We explained some of the conceptual differences between sandboxing in this sense, where the application writer chooses to make part of his code run without certain privileges, and Mandatory Access Control systems, where the application itself doesn't make the policy.
From an application writer perspective, sandboxing facilities are desirable since they will allow your code to run with lower privileges on all machines. On the other hand, MAC is desirable from a system administrator or distribution maintainer perspective as it will allow one policy to rule over many applications and to enforce certain security properties on the system.
While Linux has a fair number of MAC systems available, sandboxing options are for now very limited. There is some hope that the ftrace framework or SELinux bounded types may allow this in the future (see also Adam Langley's post on LSMSB), but this will not be widely available anytime soon.
We demonstrated different ways of overcoming those limitations on readily available Linux kernels, focusing on three designs experimented or used in vsftpd and Chromium.
- Using ptrace(), vsftpd experiment
- The setuid sandbox design (Julien Tinnes, Tavis Ormandy), Chromium
- The SECCOMP sandbox design (Markus Gutschke, Adam Langley), Chromium
With all this conference you are now giving/attending you will soon have to write the Tinnes conference's guide, in the right track of Cedric B...
ReplyDeleteAnyway nice slides, regarding the sandboxing solutions on the windows side there is the same kind of issues (except .net), but hopefully some solutions will arrive sooner or later (sooner would actually be better regarding the current global security level within the industry ....)