Gadllah, A. (2015). Straightjacket: tightening process execution policies at runtime [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2015.27913
E188 - Institut für Softwaretechnik und Interaktive Systeme
-
Date (published):
2015
-
Number of Pages:
62
-
Keywords:
Sandbox; Security; Linux; Seccomp
en
Abstract:
Das Principle of the Least Privilege ist ein bekanntes und gängiges Prinzip für die Entwicklung von sicheren Anwendungen. Es besagt, dass Anwendungen nicht mehr Privilegien haben sollen als für deren Aufgabe notwendig ist. Das minimiert den Schaden, den ein erfolgreicher Angriff verursachen kann. Bestehende Sandboxing Techniken fokussieren jedoch darauf die Privilegien ganzer Anwendungen zu beschränken. Unterschiedliche Teile einer Anwendung benötigen jedoch unterschiedliche Privilegien. Diese Arbeit stellt Straightjacket vor, eine Sammlung von Werkzeugen für das Betriebssystem Linux, die erlauben die Privilegien von Anwendungen auf der Ebene einzelner Funktionen zu definieren. Entwickler können die Privilegien von Funktionen durch Anmerkungen im Quelltext der Applikation definieren ohne die Funktionen selbst umschreiben zu müssen. Darüber hinaus enthält Straightjacket einen statischen Analyzer, der dabei hilft die benötigten Privilegien einer Funktion zu ermitteln. Veränderungen am Betriebssystem sind nicht notwendig. Die Evaluierung zeigt das Straightjacket gängige Exploits blockiert ohne signifikante Auswirkungen auf die Anwendungsperformance zu haben, wenn die Anmerkungen nicht übermäßig eingesetzt werden. Das wäre der Fall wenn beispielsweise jede einzelne Funktion einer Anwendung mit Anmerkungen versehen wird. Straightjacket wird auch mit Fokus auf die Benutzbarkeit entwickelt und kann ohne großen Aufwand in bestehende Entwicklungsumgebungen und Arbeitsabläufe von Entwicklern integriert werden.
de
The principle of the least privilege is a well-known and established design practice for developing secure applications. It states that applications should not have more privileges than necessary to operate. That limits the damage that can be done by an attacker in case of a successful exploit. Existing sandboxing technologies focus on confining whole applications. However, different parts of an application require different privileges than others. This thesis introduces Straightjacket, a set of tools for the Linux operating system that allow assigning different levels of privileges to individual functions of an application. It allows the developer of the application to define the required privileges by adding annotations to the application-s source code without having to rewrite the affected functions. Straightjacket includes a static analyzer that helps to identify the required privileges of a specific function. It does not require any operating system modifications. The evaluation shows that Straightjacket blocks common exploits successfully. The introduced performance impact is not significant as long as the annotations aren't overused. Overusing for instance would be annotating every single function of an application. Straightjacket is developed with usability in mind and can be easily integrated into existing build processes and developer workflows.
en
Additional information:
Abweichender Titel laut Übersetzung der Verfasserin/des Verfassers Zsfassung in dt. Sprache