Make Least Privilege a Right

Total Page:16

File Type:pdf, Size:1020Kb

Make Least Privilege a Right Make Least Privilege a Right (Not a Privilege) Maxwell Krohn∗, Petros Efstathopoulosy, Cliff Frey∗, Frans Kaashoek∗, Eddie Kohlery, David Mazieres` z, Robert Morris∗, Michelle Osbornez, Steve VanDeBogarty and David Ziegler∗ ∗MIT yUCLA zNYU [email protected] ABSTRACT ized mandatory access control [17]. The end result is a Though system security would benefit if programmers new operating system called Asbestos. routinely followed the principle of least privilege [24], 2 LESSONS FROM CURRENT SYSTEMS the interfaces exposed by operating systems often stand in the way. We investigate why modern OSes thwart se- Administrators and programmers can achieve POLP by cure programming practices and propose solutions. pushing the features in modern Unix-like operating sys- tems, but only partially, and with important practical 1 INTRODUCTION drawbacks. Though many software developers simultaneously revere 2.1 chrooting or jailing Greedy Applications and ignore the principles of their craft, they reserve spe- cial sanctimony for the principle of least privilege, or Because Unix grants privilege with coarse granularity, POLP [24]. All programmers agree in theory: an applica- many Unix applications acquire more privileges than tion should have the minimal privilege needed to perform they require. These “greedy applications” can be tamed its task. At the very least, five POLP requirements must with the chroot or jail system calls. Both calls con- be followed: (1) split applications into smaller protec- fine applications to jails, areas of the file system that tion domains, or “compartments”; (2) assign exactly the administrators can configure to exclude setuid executa- right privileges to each compartment; (3) engineer com- bles and sensitive files. FreeBSD’s jail goes further, munication channels between the compartments; (4) en- restricting a process’s use of the network and interpro- sure that, save for intended communication, the compart- cess communication (IPC). System administrators with ments remain isolated from one another; and (5) make it enough patience and expertise can chroot or jail easy for anyone to audit the intended separation. standard servers such as Apache [1], BIND [3] and send- Unfortunately, modern operating systems make these mail [26], though the process resembles stuffing an ele- requirements onerous, dangerous, or impossible to ap- phant into a taxicab. ply. In our experience (detailed in Section 2.2), build- Even when possible, the chroot/jail approach ing least-privileged software is cumbersome and labor- faces more fundamental drawbacks: intensive: following POLP feels more like an abuse of the Jails are heavyweight. The jailed file system must operating system’s interface than a judicious use of its contain copies of system-wide configuration files (such features. Most programmers spare themselves these dif- as resolv.conf), shared libraries, the run-time linker, ficulties by reverting to monolithic, over-privileged ap- helper executable files, and so on. Maintaining collec- plication designs. Such neglect exposes machines to at- tions of duplicated files is an administrative difficulty, tacks both old and new, from remote attacks on privi- especially on systems with many jailed applications. leged servers to “install attacks” (exploiting users’ will- Jails are coarse-grained. Running a process in a ingness to run high-privilege installers to infect machines jail is similar to running it on its own virtual machine. with malware). We cannot write bug-free applications or Two jailed applications can share files only if one’s prevent honest users from occasionally executing mali- namespace is a superset of the other, or if inefficient cious code. Instead, our best hope is to contain the dam- workarounds are used, such as NFS-mounting a local file age of evil code by resurrecting POLP. system. In this paper, we examine some ways that current Jails require privilege. Unprivileged users may not OSes discourage development of least-privilege appli- call chroot or jail.1 Jails are therefore ill-suited for cations (Section 2), then propose OS design ideas that containing the many untrusted applications that should might encourage it instead. A first approximation of a not have privileges, such as executable email attachments POLP-friendly system is one based on capabilities, dis- or browser plugins. cussed in Section 3. Though capabilities have historically Finally, chroot or jail’s ex post facto imposition flummoxed application designers, we present a more fa- of security is no substitute for POLP-based design. For miliar interface, based on the Unix file system. In Sec- example, a typical dynamic content Web server (such as tion 4, we discuss shortcomings in this proposed design: Apache with PHP [18]) runs many logically unrelated system weaknesses might still allow vulnerabilities to scripts within the same address space. A vulnerability in spread, and process-sized compartments are too coarse- any one script exposes all other scripts to attack, regard- grained. We then propose a solution based on decentral- less of whether the server is jailed. 2. Obtain unused UID and GID ranges on the system. 3. Assign the ith worker its own UID ui and GID gi. 4. Allocate a writable coredump directory for each UID. 5. Change the ith worker’s executable to have owner root, group gi, and access mode 0410. 6. Call chroot. 7. For each worker process i: kill all processes running as user ui or group ID gi; fork; change user ID to ui and group ID to gi; chdir into the dedicated dump directory; and call exec on the correct executable. The chown call in Step 5, the chroot call in Step 6, and the setuid call in Step 7 all require privileged sys- tem access, so the launcher must run as root. Unix offers no guarantees of an atomic UID reservation (as required Figure 1: Block diagram of the OKWS system. Standard processes are in Step 2) or race-free file system permission manipula- shaded, while site-specific services and databases are shown in white. tions (as required throughout). Even ignoring these po- The privileged launcher process launches the demux, publisher, log- tential security problems, this design requires involved ger and the site-specific services. The databases shown might either be IPC to coordinate worker and helper processes. running locally, or on different machines. Other systems use similar techniques to solve related 2.2 Ad-Hoc Privilege Separation problems. Examples include remote execution utilities such as OpenSSH [23] and REX [10], and mail transfer True privilege separation is possible on Unix through agents such as qmail [2] and postfix [21]. Considering a collection of ad-hoc techniques. For instance, our these applications and others, a trend emerges: in each POLP-based OK Web Server (OKWS) [12] uses a pool instance, the intricate mechanics of privilege separation of worker processes to sequester each logical function are invented anew. To audit the exact security procedures of the site (e.g. /show-inbox, /change-pw, and of these applications, one must comb tens of thousands /search) into its own address space. The demux, a of lines of code, each time learning a new system. Even small, unprivileged process, accepts incoming HTTP re- automated tools that separate privileged operations [5] quests, analyzes their first lines, and forwards them to the require root access. appropriate workers using file descriptor passing. Work- ers then respond to clients directly. A privileged launcher 2.3 A User-Level POLP Library? process starts this process suite, ensuring that processes At first glance, a user-level POLP library might seem are jailed into empty subtrees of the file system, and able to abstract the security-related specifics of appli- that they do not have the privileges to interact with one cations like OKWS, qmail, and so on. One such ex- another. Finally, since workers’ chroot environments ample of this approach is found in the Polaris system prohibit them from accessing the root file system di- for Windows XP [30], which applies POLP to virus- rectly, they write HTTP log entries and read static HTML prone client applications like Web browsers and spread- content via small, unprivileged helper processes: the log- sheets2 via chroot-like compartments. Such solutions ger and the publisher, respectively. Figure 1 shows a have three drawbacks. First, they require privileged ac- block diagram of a simple OKWS configuration. cess to the system. Second, libraries must work around The goal of this design is to separate application logic the lack of good OS support for sharing across com- into disjoint compartments, so that any local vulnerabil- partments: since jailed processes work with copies of ity (especially in site-specific worker processes) cannot files, synchronization schemes are required to reconcile spread. In particular, workers cannot send each other sig- copies after changes. (For example, Polaris email plug- nals or trace each other’s system calls, they cannot ac- ins run in a jail with a copy of the attachment; a persistent cess each other’s databases, they cannot alter any exe- “synchronizer” process updates the original if the plug-in cutable or library, and they cannot access each other’s changes the copy.) Finally, we suspect that POLP tech- coredumps. Unfortunately, achieving these natural re- niques used in more complicated servers such as OKWS quirements complicates OKWS. Its launcher must: do not generalize well. As evidence, both OKWS and REX, an ssh-like login facility, use the same libraries (the 1. Establish a chroot environment, with the correct SFS toolkit [16]) but share little security-related code. file system permissions, that contains the appro- This comes as no surprise since the two have different se- priate shared libraries, configuration files, run-time curity aims: OKWS hides most of the file system, while linker, and worker executables. REX exposes it to authorized users; OKWS must support millions of possible users, while REX serves only those such as “current working directory” and “file system with login access to a given machine; application design- root”.
Recommended publications
  • Least Privilege and Privilege Separation
    CSE 127: Computer Security Least privilege and privilege separation Deian Stefan Slides adopted from John Mitchell, Dan Boneh, and Stefan Savage This week… • How to build secure systems ➤ Least privilege and privilege separation ➤ Sandboxing and isolation • Key is underlying principles not mechanisms ➤ We’re going to look at systems techniques ➤ Other ways to achieve similar goals: language-based Principles of secure design • Principle of least privilege • Privilege separation • Defense in depth ➤ Use more than one security mechanism ➤ Fail securely/closed • Keep it simple Principles of secure design • Principle of least privilege • Privilege separation • Defense in depth ➤ Use more than one security mechanism ➤ Fail securely/closed • Keep it simple Principle of Least Privilege Defn: A system should only have the minimal privileges needed for its intended purposes • What’s a privilege? ➤ Ability to access (e.g., read or write) a resource Principle of Least Privilege Defn: A system should only have the minimal privileges needed for its intended purposes • What’s a privilege? ➤ Ability to access (e.g., read or write) a resource Principle of Least Privilege Defn: A system should only have the minimal privileges needed for its intended purposes • What’s a privilege? ➤ Ability to access (e.g., read or write) a resource What’s the problem with this defn? • Talking about a huge, monolith system is not really useful • Why? Network Network User input User device File system File system Breaking a system into components • Compartmentalization and isolation ➤ Separate the system into isolated compartments ➤ Limit interaction between compartments • Why is this more meaningful? Network Network User input User device File system File system How dow we break things apart? Map compartment to user ids! • Recall: permissions in UNIX granted according to UID ➤ A process may access files, network sockets, ….
    [Show full text]
  • New Concept of the Android Keystore Service with Regard to Security and Portability
    University of Bremen Department of Mathematics and Computer Science New concept of the Android keystore service with regard to security and portability. Master’s Thesis by Fritjof Bornebusch reviewed by Dr. Karsten Sohr Prof. Dr. Jan Peleska supervised by Dipl. Inf. Florian Junge 2016 Confirmation I hereby confirm that I wrote this master thesis on my own and that I have used only the indicated references, resources, and aids. In German: Hiermit bestätige ich, dass ich die vorliegende Masterthesis selbstständig verfasst, und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Bremen, 1/13/2016 Fritjof Bornebusch “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler – Bornebusch, Fritjof New concept of the Android keystore service with regard to security and portability. Master’s thesis, Department 3 - Mathematics / Computer Science University of Bremen, 2015 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0). To view a copy of this license, send an email to [email protected], visit http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, California, 94042, USA. Table of Contents Acknowledgements 7 List of Figures 9 List of Listings 10 Acronyms 13 Glossary 15 1 Introduction 19 2 Background 24 2.1 Android System Architecture . 24 2.1.1 Security-Enhanced Linux . 28 2.1.2 Capabilities . 31 2.2 Memory Vulnerabilities . 32 2.2.1 Buffer Overflow Protection . 33 2.2.2 Dead Store Elimination .
    [Show full text]
  • Integration of Security Measures and Techniques in an Operating System (Considering Openbsd As an Example)
    Motivation Security Solutions and Techniques Summary Integration of Security Measures and Techniques in an Operating System (considering OpenBSD as an example) Igor Boehm Institute for Information Processing and Microprocessor Technology Johannes Kepler University Linz, Austria Igor Boehm Integration of Security Measures and Techniques in an OS Motivation Security Solutions and Techniques Summary Outline 1 Motivation The Basic Problem Being Studied Preliminary Solution Ideas and Goals 2 Security Solutions and Techniques Secure Software Design Techniques Memory Protection Techniques Relevance of Random Numbers for Security Igor Boehm Integration of Security Measures and Techniques in an OS Motivation The Basic Problem Being Studied Security Solutions and Techniques Preliminary Solution Ideas and Goals Summary Outline 1 Motivation The Basic Problem Being Studied Preliminary Solution Ideas and Goals 2 Security Solutions and Techniques Secure Software Design Techniques Memory Protection Techniques Relevance of Random Numbers for Security Igor Boehm Integration of Security Measures and Techniques in an OS Motivation The Basic Problem Being Studied Security Solutions and Techniques Preliminary Solution Ideas and Goals Summary The Basic Problem Being Studied The Clever Attacker: . finds a bug . knows how to craft an exploit . the exploit grants the attacker an advantage . the exploit is likely to work on many systems because of the strict regularity of the system environment Is there a way to solve this problem? Igor Boehm Integration of Security
    [Show full text]
  • VULNERABLE by DESIGN: MITIGATING DESIGN FLAWS in HARDWARE and SOFTWARE Konoth, R.K
    VU Research Portal VULNERABLE BY DESIGN: MITIGATING DESIGN FLAWS IN HARDWARE AND SOFTWARE Konoth, R.K. 2020 document version Publisher's PDF, also known as Version of record Link to publication in VU Research Portal citation for published version (APA) Konoth, R. K. (2020). VULNERABLE BY DESIGN: MITIGATING DESIGN FLAWS IN HARDWARE AND SOFTWARE. General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal ? Take down policy If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. E-mail address: [email protected] Download date: 07. Oct. 2021 VULNERABLE BY DESIGN: MITIGATING DESIGN FLAWS IN HARDWARE AND SOFTWARE PH.D. THESIS RADHESH KRISHNAN KONOTH VRIJE UNIVERSITEIT AMSTERDAM, 2020 Faculty of Science The research reported in this dissertation was conducted at the Faculty of Science — at the Department of Computer Science — of the Vrije Universiteit Amsterdam This work was supported by the MALPAY consortium, consisting of the Dutch national police, ING, ABN AMRO, Rabobank, Fox-IT, and TNO.
    [Show full text]
  • Free, Functional, and Secure
    Free, Functional, and Secure Dante Catalfamo What is OpenBSD? Not Linux? ● Unix-like ● Similar layout ● Similar tools ● POSIX ● NOT the same History ● Originated at AT&T, who were unable to compete in the industry (1970s) ● Given to Universities for educational purposes ● Universities improved the code under the BSD license The License The license: ● Retain the copyright notice ● No warranty ● Don’t use the author's name to promote the product History Cont’d ● After 15 years, the partnership ended ● Almost the entire OS had been rewritten ● The university released the (now mostly BSD licensed) code for free History Cont’d ● AT&T launching Unix System Labories (USL) ● Sued UC Berkeley ● Berkeley fought back, claiming the code didn’t belong to AT&T ● 2 year lawsuit ● AT&T lost, and was found guilty of violating the BSD license History Cont’d ● BSD4.4-Lite released ● The only operating system ever released incomplete ● This became the base of FreeBSD and NetBSD, and eventually OpenBSD and MacOS History Cont’d ● Theo DeRaadt ○ Originally a NetBSD developer ○ Forked NetBSD into OpenBSD after disagreement the direction of the project *fork* Innovations W^X ● Pioneered by the OpenBSD project in 3.3 in 2002, strictly enforced in 6.0 ● Memory can either be write or execute, but but both (XOR) ● Similar to PaX Linux kernel extension (developed later) AnonCVS ● First project with a public source tree featuring version control (1995) ● Now an extremely popular model of software development anonymous anonymous anonymous anonymous anonymous IPSec ● First free operating system to implement an IPSec VPN stack Privilege Separation ● First implemented in 3.2 ● Split a program into processes performing different sub-functions ● Now used in almost all privileged programs in OpenBSD like httpd, bgpd, dhcpd, syslog, sndio, etc.
    [Show full text]
  • Privilege Separation Made Easy
    Privilege separation made easy Trusting small libraries not big processes Derek G. Murray Steven Hand University of Cambridge Computer Laboratory University of Cambridge Computer Laboratory Cambridge, United Kingdom Cambridge, United Kingdom [email protected] [email protected] ABSTRACT practices” for security. Therefore, we present a new ap- At the heart of a secure software system is a small, trustwor- proach, based on the well-understood and commonly-used thy component, called the Trusted Computing Base (TCB). concept of dynamic libraries. However, developers persist in building monolithic systems Several researchers have discussed the problem of divid- that force their users to trust the entire system. We posit ing a monolithic piece of software into several smaller pieces, that this is due to the lack of a straightforward mechanism of each of which runs with the least necessary privilege. Disag- partitioning – or disaggregating – systems into trusted and gregation [16], partitioning [8], privilege separation [17] and untrusted components. We propose to use dynamic libraries TCB-reduction [13, 21] are simply different names for the as the unit of disaggregation, because these are a familiar process of dividing software into a small trusted computing abstraction, which is commonly used in mainstream software base (TCB), and a larger untrusted part. However, existing development. solutions to this problem either use ad hoc techniques or In this paper, we present our early ideas on the disag- source code annotation to split the code. gregated library approach, which can be applied to existing Dynamic libraries – i.e. collections of executable code and applications that run on commodity operating systems.
    [Show full text]
  • Writing Exploit-Resistant Code with Openbsd Lawrence Teo Lteo Openbsd.Org @Lteo
    Writing Exploit-Resistant Code with OpenBSD Lawrence Teo lteo openbsd.org @lteo Slides and references at: https://lteo.net/carolinacon15 CarolinaCon 15 - Charlotte, NC - April 27, 2019 A question Innovation’s Black Hole Security vulnerabilities Image Credit: EHT Collaboration https://www.eso.org/public/images/eso1907a/ What is OpenBSD? • Free, multi-platform UNIX-liKe operating system • Founded by Theo de Raadt in 1995 • Secure by default • A research operating system • Two releases per year • You’re very liKely using OpenBSD code everyday • OpenSSH • LibreSSL • tmux • More: openbsd.org/innovations.html • Coolest mascot ever whoami • OpenBSD developer since 2012 • Primarily areas related to networking • PF, networK stacK, libpcap, tcpdump, etc. • Userland stuff, ports, man pages, etc • Co-founder, Calyptix Security • Shipping thousands of OpenBSD-based firewalls from Charlotte since 2006! • Ph.D. from UNC Charlotte (2006) • Research area: Info sharing for intrusion detection Auditing Software vulnerabilities How OpenBSD attacks the software vulnerability problem (my view) Auditing Exploit Software Mitigation vulnerabilities Techniques How OpenBSD attacks the software vulnerability problem (my view) Auditing Exploit Software Mitigation vulnerabilities Techniques Rigorous Development Process How OpenBSD attacks the software vulnerability problem (my view) Licensing Auditing Exploit Software Mitigation vulnerabilities Techniques Rigorous Development Process How OpenBSD attacks the software vulnerability problem (my view) Licensing Education
    [Show full text]
  • Pledge and Privsep
    Pledge: where did it come from? Was pledge invented in a light happy dream? „ We stood beneath an amber moon Where hearts were entertaining June And softly whispered "someday soon" We kissed and clung together … “ No, it is the outcome of nightmares. My nightmares ● When Good Instructions go Bad: Generalizing return- oriented programming to RISC – Buckanan, Roemer, Shacham, Savage. 2008. ● Hacking Blind (BROP) – Bittau, Belay, Mashtizadeh, Mazières, Boneh. 2014. ROP – Return Oriented Programming Hijack control-flow with false return frames, running gadgets, combining artifacts effects Gadget is any sequence of register/memory transfer above a true ret (or polymorphic ret) instruction Attacker needs to know where gadgets are, and address of the new-stack Also JOP, SROP, etc. BROP – Blind ROP An address-space oracle Repeated probes against reused address-space learns enough to perform minimum ROP operations Then uses various ROP methods. (Large) software will never be perfect Erroneous condition logic fails, then cascades through successive failures, often externally controllable Results in illegal access/control of the program & libraries, or toying with kernel surface Attacker tools and knowledge are improving, faster than developers can cope I work on mitigations Mitigations are inexpensive tweaks which impact attack methods – trying to diminishing their effectiveness Some mitigations expose use of un-standardized behaviours Defect detected ―> Fail Closed Pressure towards robustness in software. Robust (adj.) „ When used to describe software or computer systems, robust can describe one or more of several qualities: – a system that does not break down easily or is not wholly affected by a single application failure – a system that either recovers quickly from or holds up well under exceptional circumstances – a system that is not wholly affected by a bug in one aspect of it “ On the way to the lush valley of robust, we must first cross the wilderness of fail-closed.
    [Show full text]
  • Principle of Least Privilege
    CSMC 412 Operating Systems Prof. Ashok K Agrawala Set 19 Protection • Goals of Protection • Principles of Protection • Protection Rings • Domain of Protection • Access Matrix • Implementation of Access Matrix • Revocation of Access Rights • Role-based Access Control • Mandatory Access Control (MAC) • Capability-Based Systems • Other Protection Implementation Methods • Language-based Protection Copyright 2018 Silberschatz, Galvin and Gagne Objectives • Discuss the goals and principles of protection in a modern computer system • Explain how protection domains combined with an access matrix are used to specify the resources a process may access • Examine capability and language-based protection systems • Describe how protection mechanisms can mitigate system attacks Copyright 2018 Silberschatz, Galvin and Gagne Security Vs. Protection • Security – • Guarding computer resources against unauthorized access, malicious destruction or alteration, and accidental introduction of inconsistency. • Protection – • Controlling the access of processes and users to the resources defined by a computer system. • System is secure if resources used and accessed as intended under all circumstances • Unachievable Copyright 2018 Silberschatz, Galvin and Gagne Goals of Protection • In one protection model, computer consists of a collection of objects, hardware or software • Each object has a unique name and can be accessed through a well- defined set of operations • Protection problem - ensure that each object is accessed correctly and only by those processes
    [Show full text]
  • Preventing Privilege Escalation
    Preventing Privilege Escalation Niels Provos Markus Friedl Peter Honeyman CITI, University of Michigan GeNUA CITI, University of Michigan Abstract gain extra privilege after successful authentication lim- its the degree of escalation because the user is already Many operating system services require special priv- authorized to hold some privilege. On the other hand, ilege to execute their tasks. A programming error in a a remote adversary gaining superuser privilege with no privileged service opens the door to system compromise authentication presents a greater degree of escalation. in the form of unauthorized acquisition of privileges. In For services that are part of the critical Internet the worst case, a remote attacker may obtain superuser infrastructure is it particularly important to protect privileges. In this paper, we discuss the methodology against programming errors. Sometimes these services and design of privilege separation, a generic approach need to retain special privilege throughout their life- that lets parts of an application run with different levels time. For example, in SSH, the SSH daemon needs to of privilege. Programming errors occurring in the un- know the private host key during re-keying to authenti- privileged parts can no longer be abused to gain unau- cate the key exchange. The daemon also needs to open thorized privileges. Privilege separation is orthogonal new pseudo-terminals when the SSH client so requests. to capability systems or application confinement and These operations require durable special privilege as enhances the security of such systems even further. they can be requested at any time during the lifetime Privilege separation is especially useful for system of a SSH connection.
    [Show full text]
  • OS-Level Attacks and Defenses: from Software to Hardware-Based Exploits © December 2018 by David Gens Phd Referees: Prof
    OS-LEVELATTACKSANDDEFENSES: FROMSOFTWARETOHARDWARE-BASEDEXPLOITS Dissertation zur Erlangung des akademischen Grades Doktor der Ingenieurswissenschaften (Dr.-Ing.) genehmigt durch den Fachbereich Informatik (FB 20) der Technischen Universtität Darmstadt von D AV I D G E N S aus Wiesbaden, Deutschland Gutachter: Prof. Dr.-Ing. Ahmad-Reza Sadeghi (Erstreferent) Prof. Dr. Thorsten Holz (Zweitreferent) Tag der Einreichung: 14. Dezember 2018 Tag der Disputation: 13. Februar 2019 CYSEC/System Security Lab Intel Collaborative Research Institute (ICRI-CARS) Fachbereich für Informatik Technische Universität Darmstadt Hochschulkennziffer: D17 OS-level Attacks and Defenses: from Software to Hardware-based Exploits © December 2018 by David Gens phd referees: Prof. Dr.-Ing. Ahmad-Reza Sadeghi (1st PhD Referee) Prof. Dr. Thorsten Holz (2nd PhD Referee) further phd commission members: Prof. Dr. Sebastian Faust Prof. Dr. Guido Salvaneschi Prof. Dr.-Ing. Thomas Schneider Darmstadt, Germany December 2018 Veröffentlichung unter CC-BY-SA 4.0 International https://creativecommons.org/licenses/ ABSTRACT Run-time attacks have plagued computer systems for more than three decades, with control-flow hijacking attacks such as return-oriented programming repre- senting the long-standing state-of-the-art in memory-corruption based exploits. These attacks exploit memory-corruption vulnerabilities in widely deployed soft- ware, e.g., through malicious inputs, to gain full control over the platform remotely at run time, and many defenses have been proposed and thoroughly studied in the past. Among those defenses, control-flow integrity emerged as a powerful and ef- fective protection against code-reuse attacks in practice. As a result, we now start to see attackers shifting their focus towards novel techniques through a number of increasingly sophisticated attacks that combine software and hardware vulnerabil- ities to construct successful exploits.
    [Show full text]
  • Safe Execution of Unreliable Software
    p() URL: http://www.elsevier.nl/locate/entcs/volume85.html 18 pages Safe Execution of Unreliable Software Per Mellstrand 1 Department of Software Engineering and Computer Science Blekinge Institute of Technology Ronneby, Sweden Rune Gustavsson 2 Department of Software Engineering and Computer Science Blekinge Institute of Technology Ronneby, Sweden Abstract We introduce a method, Lightweight Privilege Separation, enabling safe execution of unreliable software. Our method introduces no new software vulnerabilities and is fairly easy to implement. Furthermore, we show by experiments that the execution overhead is in the order of milliseconds per execution of the unreliable process at hand. We compare our method with earlier attempts of privilege separation such as OpenSSH. The paper concludes with a discussion on generalizations of our approach in the form of abstract machines and their interpreters. 1 Introduction Development of large-scale network centric systems such as those envisioned in, e.g., EC Sixth Framework Program (FP6) on Ambient Intelligence (AmI) or IBM’s program on Autonomous Computing, presupposes that we will be able to produce dependable software components and trusted execution envi- ronments in the not so far future. In fact, there are calls within FP6 to that end.[2] [1] However, even if we can develop dependable components we still have to face the challenge of safe execution of those components or even less reliable software in dynamic and/or hostile environments, the topic of this paper. 1 Email: [email protected] 2 Email: [email protected] c 2003 Published by Elsevier Science B. V. 71 Mellstrand 1.1 Main Ideas and Highlights of the Paper We describe in the paper design and development of LPS, a Lightweight Priv- ilege Separation system that allows us to execute non-reliable C and C++ software components in a trusted way.
    [Show full text]