A Secure Architecture Design Based on Application Isolation, Code Minimization and Randomization

A Secure Architecture Design Based on Application Isolation, Code Minimization and Randomization

6th Symposium on Security Analytics and Automation 2013 A secure architecture design based on application isolation, code minimization and randomization Aditi Gupta Michael S. Kirkpatrick Elisa Bertino Purdue University James Madison University Purdue University West Lafayette, IN Harrisonbourg, VA West Lafayette, IN Email: [email protected] Email: [email protected] Email: [email protected] Abstract—With fast evolving attacks, using software patches [4]. Thus, in addition to software isolation, secure systems for fixing software bugs is not enough as there are often must incorporate physical isolation by isolating the hardware considerable delays in their application to vulnerable systems resources as well. and the attackers may find other vulnerabilities to exploit. A secure architecture design that provides robust protection against The second principle of our design is code minimization malware must be guided by strong security design principles. In which reduces the software attack surface available to an this work, we propose a system design based on the security prin- attacker. Widely used operating systems (OS) such as Windows ciples that aim at achieving isolation, diversification and reducing and Linux are based on monolithic kernels, that is, the entire attack surface. Our design leverages multi-core architecture to OS code executes with superuser privilege. This provides a enforce physical isolation between application processes so that a huge computing base that can be potentially exploited by the malicious or infected application is unable to affect other parts attacker to perform privilege escalation attacks. Also, a typical of the system. We use randomization techniques to increase the entropy of the system and thwart various attacks such as code- process may use only a small fraction of services provided by a reuse attacks. Further, we significantly reduce the software attack kernel. This leaves a significant chunk of privileged code base surface by executing each application on its own customized that is unused code. Our principle of code minimization aims at operating system image that is minimized to only contain the minimizing the kernel code so that it only contains the libraries code required by a given application. and services required by the application. Code minimization can be enforced at a much finer granularity by also minimizing I. INTRODUCTION the libraries so that they only contain the functionality needed by an application. For example, the generic C library, libc, is Recent years have seen a rise in sophisticated malware that quite large but only a fraction of it is utilized by an application. employs various techniques, such as return oriented program- ming (ROP), to bypass system defenses. A typical response to The third security principle incorporated in our design such malware attacks is by patching the software vulnerability is diversification that aims at increasing the entropy of a that was exploited to launch the malware. This involves deploy- system, in effect increasing the attacker effort required to ing patches to vulnerable systems which involves considerable compromise the system [5], [6], [7]. In current systems, due delay. As a result, the attack might have already propagated by to their homogeneous nature, the same attack instance is the time the patch is applied. Further, patching vulnerabilities likely to work against several machines as these machines use is not an ideal solution to building secure systems as attackers similar configurations. Software diversification makes systems constantly find new vulnerabilities and craft new exploits. A more robust towards such replicated attacks. For example, secure architecture design that is resilient to evolving malware ASLR [8] randomizes the base address of libraries for different must be based on strong security principles that minimize executions, thus rendering attacks such as return-to-libc [9] the risk and limit damage if some part of the system is ineffective. Our design incorporates diversification using a compromised. Further, these solutions should not be limited runtime randomization technique for application code that to software layer security but should also enforce protection thwarts attacks that rely on prior knowledge of program layout. at hardware layer. Our proposed design leverages multi-core architectures to In this paper, we propose a design for secure architectures achieve strong process isolation by executing each process that is guided by three security design principles. The first on a separate set of dedicated processor cores. Each process is application isolation which requires that applications be executes on its customized OS image which is minimized to isolated from each other, thereby preventing a malicious appli- only contain the code (drivers, services etc.) required by the cation from compromising other applications. Often, isolation process. Each application provides a manifest file specifying is implemented using software isolation techniques such as its dependencies, that is, the list of libraries, services and virtualization. It has been shown that software isolation is not drivers that this application needs to execute successfully. sufficient since a malicious application may exploit vulnera- This manifest file serves as the starting point for dependency bilities in the virtualization software to attack other parts of analysis that determines the external code required by a given the system [1], [2], [3]. Also, software isolation techniques application. For each application, we build a custom OS image have been shown to be ineffective against side channel attacks consisting of a micro-kernel and the application along with that exploit shared channels such as memory usage statistics its dependencies. This custom OS image will not have any for accurate adversarial inference of other processes’ behavior extraneous service not required by the application. 978-1-4799-0895-0/13/$31.00 ©2013 IEEE 423 6th Symposium on Security Analytics and Automation 2013 on knowledge of memory layout of the target process. Ran- App 1 App 2 App 3 domizing executable code for each application for its every execution increases the robustness of the system. More on this Minimized Minimized Minimized is discussed later in section II-D. OS OS OS Our design assumes a large number of processor cores QEMU which is not unreasonable given the recent advances in KVM module multicore hardware. Some commercial processors currently Linux Kernel (Host OS) available in market already boast of more than 100 cores. The maximum number of cores required by a system is determined by the number of applications running at any given Core 0 Core 1 Core 2 Core 3 Core 4 time and the number of cores required by each of them. For systems with limited numbers of cores, a variation of our proposed scheme can be used by which the applications are Fig. 1. Overview of system architecture grouped according to a pre-defined criteria and the applications belonging to the same group are allowed to share processor cores. For example, applications written by the same developer This paper is organized as follows. In section II, we can belong to the same group. This allows our scheme to present the high level design of the proposed architecture. In function even with limited number of processor cores. section III, we present an analysis of libc library usage by popular applications. We discuss related work in section IV. A. Communication We then discuss research issues in section V and conclude in section VI. One important aspect of application isolation is to medi- ate the communication between two applications. Forbidding all communications between two applications is not always II. SECURE ARCHITECTURE DESIGN practical since they may need to communicate in order to We propose a secure architecture design that leverages request and provide services, exchange data etc. For example, multicore architectures to achieve strong isolation guarantees in our design, services such as file server may run isolated on between applications. Our basic architecture is inspired from a VM and will need to communicate with other applications the NoHype architecture [10] which uses multicore architec- that require these services. Another example would be an ture to isolate virtual machines (VM) in a cloud setting. Our email client that needs to invoke other applications based on goal is to isolate not just guest VMs, but also the applications email content, such as a PDF viewer or a web browser. While that run on it. We incorporate the basic NoHype architecture such interactions enhance functionality, they also represent an into our design and extend it according to our requirements. attack vector that can be exploited by malicious or infected Figure 1 shows an overview of our system design. applications. Thus, it is crucial that these interactions be monitored according to a set of policies. In this architecture, each application is isolated by execut- ing on its own dedicated VM that only executes this application The NoHype architecture has been developed for the cloud and no other application. The isolation guarantees are further settings in which guest OS do not need to communicate with strengthened by enforcing isolation at the hardware layer. This each other as they belong to different customers. This allows is achieved by executing the application’s corresponding VM one to disengage the hypervisor from guest OS at runtime on a dedicated set of processor cores that are not shared with and eliminate the hypervisor attack surface. However, this is other applications. At any given time, the system maintains a not true in our setting in which each guest OS is dedicated pool of unassigned processor cores. When a new application to a single application and applications typically need to starts, it is assigned to a set of cores from this pool using the communicate. To ensure proper isolation, the communication concept of processor core affinity. Memory isolation between between the various applications needs to be mediated, by VMs is enforced by capitalizing on the hardware paging only allowing the authorized communications and preventing mechanism in modern processors.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us