Games and the Impossibility of Realizable Ideal Functionality

Total Page:16

File Type:pdf, Size:1020Kb

Games and the Impossibility of Realizable Ideal Functionality Introduction to Information Security 0368-3065, Spring 2013 Lecture 6: Process confinement (cont.), smartphone security Eran Tromer, Roei Schuster Slides credit: Dan Boneh and John Mitchell, Stanford 1 Improved system call interposition: Systrace user space monitored application monitor policy file (outlook) for app open(“etc/passwd”, “r”) sys-call systrace gateway permit/deny OS Kernel • Systrace only forwards monitored sys-calls to monitor (saves context switches) • Systrace resolves sym-links and replaces sys-call path arguments by full path to target • When app calls execve, monitor loads new policy file • Fast path in kernel for common/easy cases, ask userspace for complicated/rare cases 2 Systrace policy • Sample policy file: path allow /tmp/* path deny /etc/passwd network deny all • Specifying policy for an app is quite difficult – Systrace can auto-gen policy by learning how app behaves on “good” inputs – If policy does not cover a specific sys-call, ask user … but user has no way to decide • Difficulty with choosing policy for specific apps (e.g. browser) is main reason this approach is not widely used 3 Userspace sandboxing: Google Native Client (NaCl) Untrusted x86 Browser code NPAPI HTML JavaScript NaCl runtime • Run untrusted x86 for performance (e.g., Quake) • Two sandboxes: – Outer sandbox: restricts capabilities using system call interposition (on Linux: uses seccomp to tell the kernel to filter its system calls) – Inner sandbox: • Uses x86 memory segmentation to isolate application memory from one another • Restricts allowed machine code to protect the segmentation • Allows only a subset of x86; verified during loading. 4 Linux Security Modules (in-kernel) • SELinux – Role-based user/process labels – Object labels • Identifies filesystem objects by inode and associated extended attribute (set via system policy) – Policy determines who can access what – Default policies, can be configured • Change policy and relabel filesystem • Manually relabel file system objects • AppArmor – Identified filesystem objects by path • Smack – Goal: simplicity All are Mandatory Access Control. 5 Summary • Many sandboxing techniques: – Physical air gap, – Virtual air gap (VMMs) (later lecture) – System call interposition – Software Fault isolation (e.g., NaCl) – Application specific (e.g. Javascript in browser) • Often complete isolation is inappropriate – Apps need to communicate through regulated interfaces • Hardest aspect of sandboxing: – Specifying policy: what can apps do and not do 6 Continued to: Introduction to Mobile Platform Security (separate file) 7 7 .
Recommended publications
  • System Programming Guide
    Special Edition for CSEDU12 Students Students TOUCH -N-PASS EXAM CRAM GUIDE SERIES SYSTEM PROGRAMMING Prepared By Sharafat Ibn Mollah Mosharraf CSE, DU 12 th Batch (2005-2006) TABLE OF CONTENTS APIS AT A GLANCE ....................................................................................................................................................................... 1 CHAPTER 1: ASSEMBLER, LINKER & LOADER ................................................................................................................................ 4 CHAPTER 2: KERNEL ..................................................................................................................................................................... 9 CHAPTER 3: UNIX ELF FILE FORMAT ............................................................................................................................................ 11 CHAPTER 4: DEVICE DRIVERS ...................................................................................................................................................... 16 CHAPTER 5: INTERRUPT .............................................................................................................................................................. 20 CHAPTER 6: SYSTEM CALL ........................................................................................................................................................... 24 CHAPTER 7: FILE APIS ................................................................................................................................................................
    [Show full text]
  • Assembly Language Programming for X86 Processors Pdf
    Assembly language programming for x86 processors pdf Continue The x86, 7e collection language is for use in undergraduate programming courses in a speaking language and introductory courses in computer systems and computer architecture. This name is also suitable for built-in systems of programmers and engineers, communications specialists, game programmers and graphic programmers. It is recommended to know another programming language, preferably Java, C or C. Written specifically for the 32- and 64-bit Intel/Windows platform, this complete and complete learning of the acoustics language teaches students to write and fine-tune programs at the machine level. This text simplifies and demystiifies concepts that students need to understand before they laugh at more advanced courses in computer architecture and operating systems. Students practice theory using machine-level software, creating an unforgettable experience that gives them confidence to work in any OS/machine-oriented environment. Additional learning and learning tools are available on the author's website in where both teachers and students can access chapter goals, debugging tools, additional files, starting work with the MASM and Visual Studio 2012 tutorial, and more. Learning and Learning Experience This program represents the best learning and learning experience for you and your students. This will help: Teach Effective Design Techniques: Top-Down Demonstration Design Program and Explanation allows students to apply techniques for multiple programming courses. Put Theory into practice: Students will write software at machine level, preparing them to work in any OS/machine oriented environment. Tailor text to fit your course: Instructors can cover additional chapter themes in different order and depth.
    [Show full text]
  • Hiding Process Memory Via Anti-Forensic Techniques
    DIGITAL FORENSIC RESEARCH CONFERENCE Hiding Process Memory via Anti-Forensic Techniques By: Frank Block (Friedrich-Alexander Universität Erlangen-Nürnberg (FAU) and ERNW Research GmbH) and Ralph Palutke (Friedrich-Alexander Universität Erlangen-Nürnberg) From the proceedings of The Digital Forensic Research Conference DFRWS USA 2020 July 20 - 24, 2020 DFRWS is dedicated to the sharing of knowledge and ideas about digital forensics research. Ever since it organized the first open workshop devoted to digital forensics in 2001, DFRWS continues to bring academics and practitioners together in an informal environment. As a non-profit, volunteer organization, DFRWS sponsors technical working groups, annual conferences and challenges to help drive the direction of research and development. https://dfrws.org Forensic Science International: Digital Investigation 33 (2020) 301012 Contents lists available at ScienceDirect Forensic Science International: Digital Investigation journal homepage: www.elsevier.com/locate/fsidi DFRWS 2020 USA d Proceedings of the Twentieth Annual DFRWS USA Hiding Process Memory Via Anti-Forensic Techniques Ralph Palutke a, **, 1, Frank Block a, b, *, 1, Patrick Reichenberger a, Dominik Stripeika a a Friedrich-Alexander Universitat€ Erlangen-Nürnberg (FAU), Germany b ERNW Research GmbH, Heidelberg, Germany article info abstract Article history: Nowadays, security practitioners typically use memory acquisition or live forensics to detect and analyze sophisticated malware samples. Subsequently, malware authors began to incorporate anti-forensic techniques that subvert the analysis process by hiding malicious memory areas. Those techniques Keywords: typically modify characteristics, such as access permissions, or place malicious data near legitimate one, Memory subversion in order to prevent the memory from being identified by analysis tools while still remaining accessible.
    [Show full text]
  • Enclave Security and Address-Based Side Channels
    Graz University of Technology Faculty of Computer Science Institute of Applied Information Processing and Communications IAIK Enclave Security and Address-based Side Channels Assessors: A PhD Thesis Presented to the Prof. Stefan Mangard Faculty of Computer Science in Prof. Thomas Eisenbarth Fulfillment of the Requirements for the PhD Degree by June 2020 Samuel Weiser Samuel Weiser Enclave Security and Address-based Side Channels DOCTORAL THESIS to achieve the university degree of Doctor of Technical Sciences; Dr. techn. submitted to Graz University of Technology Assessors Prof. Stefan Mangard Institute of Applied Information Processing and Communications Graz University of Technology Prof. Thomas Eisenbarth Institute for IT Security Universit¨atzu L¨ubeck Graz, June 2020 SSS AFFIDAVIT I declare that I have authored this thesis independently, that I have not used other than the declared sources/resources, and that I have explicitly indicated all material which has been quoted either literally or by content from the sources used. The text document uploaded to TUGRAZonline is identical to the present doctoral thesis. Date, Signature SSS Prologue Everyone has the right to life, liberty and security of person. Universal Declaration of Human Rights, Article 3 Our life turned digital, and so did we. Not long ago, the globalized commu- nication that we enjoy today on an everyday basis was the privilege of a few. Nowadays, artificial intelligence in the cloud, smartified handhelds, low-power Internet-of-Things gadgets, and self-maneuvering objects in the physical world are promising us unthinkable freedom in shaping our personal lives as well as society as a whole. Sadly, our collective excitement about the \new", the \better", the \more", the \instant", has overruled our sense of security and privacy.
    [Show full text]
  • The Confinement Principle
    Isolaon The confinement principle Original slides were created by Prof. Dan Boneh 1 Running untrusted code We often need to run buggy/unstrusted code: – programs from untrusted Internet sites: • apps, extensions, plug-ins, codecs for media player – exposed applications: pdf viewers, outlook – legacy daemons: sendmail, bind – honeypots Goal: if application “misbehaves” ⇒ kill it 2 Approach: confinement Confinement: ensure misbehaving app cannot harm rest of system • Can be implemented at many levels: – Hardware: run application on isolated hw (air gap) app 1 app 2 Network 2 air gap network 1 ⇒ difficult to manage, expensive 3 Approach: confinement Confinement: ensure misbehaving app cannot harm rest of system • Can be implemented at many levels: – Virtual machines: isolate OS’s on a single machine What are some of the drawbacks of this approach? app1 app2 OS1 OS2 Virtual Machine Monitor (VMM) 4 Approach: confinement Confinement: ensure misbehaving app cannot harm rest of system • Can be implemented at many levels: – Process: System Call Interposition Isolate a process in a single operating system process 1 process 2 Operang System 5 Approach: confinement Confinement: ensure misbehaving app cannot harm rest of system • Can be implemented at many levels: – Threads: Software Fault Isolation (SFI) • Isolating threads sharing same address space – Application: e.g. browser-based confinement 6 Implementing confinement Key component: reference monitor – Mediates requests from applications • Implements protection policy • Enforces isolation and
    [Show full text]
  • Computer Architectures an Overview
    Computer Architectures An Overview PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 25 Feb 2012 22:35:32 UTC Contents Articles Microarchitecture 1 x86 7 PowerPC 23 IBM POWER 33 MIPS architecture 39 SPARC 57 ARM architecture 65 DEC Alpha 80 AlphaStation 92 AlphaServer 95 Very long instruction word 103 Instruction-level parallelism 107 Explicitly parallel instruction computing 108 References Article Sources and Contributors 111 Image Sources, Licenses and Contributors 113 Article Licenses License 114 Microarchitecture 1 Microarchitecture In computer engineering, microarchitecture (sometimes abbreviated to µarch or uarch), also called computer organization, is the way a given instruction set architecture (ISA) is implemented on a processor. A given ISA may be implemented with different microarchitectures.[1] Implementations might vary due to different goals of a given design or due to shifts in technology.[2] Computer architecture is the combination of microarchitecture and instruction set design. Relation to instruction set architecture The ISA is roughly the same as the programming model of a processor as seen by an assembly language programmer or compiler writer. The ISA includes the execution model, processor registers, address and data formats among other things. The Intel Core microarchitecture microarchitecture includes the constituent parts of the processor and how these interconnect and interoperate to implement the ISA. The microarchitecture of a machine is usually represented as (more or less detailed) diagrams that describe the interconnections of the various microarchitectural elements of the machine, which may be everything from single gates and registers, to complete arithmetic logic units (ALU)s and even larger elements.
    [Show full text]
  • Covert Channel
    Isolaon The confinement principle Original slides were created by Prof. Dan Boneh Dan Boneh Running untrusted code We often need to run buggy/unstrusted code: – programs from untrusted Internet sites: • apps, extensions, plug-ins, codecs for media player – exposed applications: pdf viewers, outlook – legacy daemons: sendmail, bind – honeypots Goal: if application “misbehaves” ⇒ kill it Dan Boneh Approach: confinement Confinement: ensure misbehaving app cannot harm rest of system Can be implemented at many levels: – Hardware: run application on isolated hw (air gap) app 1 app 2 Network 2 air gap network 1 ⇒ difficult to manage Dan Boneh Approach: confinement Confinement: ensure misbehaving app cannot harm rest of system Can be implemented at many levels: – Virtual machines: isolate OS’s on a single machine What are some of the drawbacks of this approach? app1 app2 OS1 OS2 Virtual Machine Monitor (VMM) Dan Boneh Approach: confinement Confinement: ensure misbehaving app cannot harm rest of system Can be implemented at many levels: – Process: System Call Interposition Isolate a process in a single operating system process 1 process 2 Operang System Dan Boneh Approach: confinement Confinement: ensure misbehaving app cannot harm rest of system Can be implemented at many levels: – Threads: Software Fault Isolation (SFI) • Isolating threads sharing same address space – Application: e.g. browser-based confinement Dan Boneh Implementing confinement Key component: reference monitor – Mediates requests from applications • Implements protection policy
    [Show full text]
  • Games and the Impossibility of Realizable Ideal Functionality
    Introduction to Information Security 0368-3065, Spring 2015 Lecture 5: Confinement (2/2) Eran Tromer Slides credit: Dan Boneh and John Mitchell, Stanford 1 Confinement using Virtual Machines 2 Virtual machines Security benefits: • Confinement Process Process Process Process Process Process (isolation, sandboxing) • Management • Monitoring OS services OS services • Recovery • Forensics (replay) OS kernel OS kernel Hypervisor Host OS (if Type 2) CPU Memory Devices 3 VMM security assumption • VMM Security assumption: – Malware may infect guest OS and guest apps – But malware cannot escape from the infected VM • Cannot infect host OS • Cannot infect other VMs on the same hardware • Requires that VMM protect itself and is not buggy – VMM is much simpler than full OS – VMM API is much simpler than OS API – (but host OS still has device drivers) 4 Example of VM security application: VMM Introspection protecting the anti-virus system 5 Example: intrusion Detection / anti-virus • Runs as part of OS kernel and user space process • Kernel root kit can shutdown protection system • Common practice for modern malware • Standard solution: run IDS system in the network • Problem: insufficient visibility into user’s machine • Better: run IDS as part of VMM (protected from malware) • VMM can monitor virtual hardware for anomalies • VMI: Virtual Machine Introspection • Allows VMM to check Guest OS internals 6 Sample checks Stealth malware: • Creates processes that are invisible to “ps” • Opens sockets that are invisible to “netstat” 1. Lie detector check • Goal: detect stealth malware that hides processes and network activity • Method: • VMM lists processes running in GuestOS • VMM requests GuestOS to list processes (e.g.
    [Show full text]
  • Securing Intel Sgx Against Side-Channel Attacks Via Load-Time Synthesis
    SECURING INTEL SGX AGAINST SIDE-CHANNEL ATTACKS VIA LOAD-TIME SYNTHESIS A Dissertation Presented to The Academic Faculty By Ming-Wei Shih In Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy in the School of Georgia Institute of Technology Georgia Institute of Technology December 2019 Copyright © Ming-Wei Shih 2019 SECURING INTEL SGX AGAINST SIDE-CHANNEL ATTACKS VIA LOAD-TIME SYNTHESIS Approved by: Dr. Taesoo Kim, Advisor Dr. Michael Steiner School of Computer Science Security and Privacy Research Georgia Institute of Technology Group Intel Labs Dr. Wenke Lee School of Computer Science Dr. Brendan Saltaformaggio Georgia Institute of Technology School of Computer Science Georgia Institute of Technology Dr. Marcus Peinado Cloud and Infrastructure Security Date Approved: Octobor 23, 2019 Group Microsoft Research To my dear wife, Tiffany, and my family. ACKNOWLEDGEMENTS Foremost, I would like to express my sincere gratitude to my advisor Dr. Taesoo Kim for all the support and guidance he provided to me throughout my Ph.D. study. He has taught me how to conduct research in system security since my first year—when I literally know nothing about how to do so. His solid technical background and logical, critical thinking have always inspired me. I would also like to thank Dr. Marcus Peinado for always providing constructive comments when we collaborated on T-SGX and SGX-Armor. I have learned a lot from working with him. Besides, I would like to thank the rest of my thesis committee: Dr. Wenke Lee, Dr. Michael Steiner, and Dr. Brendan Saltaformaggio for their insightful comments that helped me improve this thesis.
    [Show full text]
  • VSWAPPER: a Memory Swapper for Virtualized Environments
    VSWAPPER: A Memory Swapper for Virtualized Environments Nadav Amit Dan Tsafrir Assaf Schuster Technion – Israel Institute of Technology {namit,dan,assaf}@cs.technion.ac.il Abstract 1. Introduction The number of guest virtual machines that can be consoli- The main enabling technology for cloud computing is ma- dated on one physical host is typically limited by the mem- chine virtualization, which abstracts the rigid physical in- ory size, motivating memory overcommitment. Guests are frastructure and turns it into soft componentseasily managed given a choice to either install a “balloon” driver to coordi- and used. Clouds and virtualization are driven by strong eco- nate the overcommitment activity, or to experience degraded nomic incentives, notably the ability to consolidate multiple performance due to uncooperative swapping. Ballooning, guest servers on one physical host. The number of guests however, is not a complete solution, as hosts must still fall that one host can support is typically limited by the physi- back on uncooperative swapping in various circumstances. cal memory size [4, 23, 25, 85]. So hosts overcommit their Additionally, ballooning takes time to accommodate change, memory to increase their capacity. and so guests might experience degraded performance under Memory overcommitment of guest virtual machines is changing conditions. commonly done through a special “balloon” driver installed Our goal is to improve the performance of hosts when in the guest [82]. Balloons allocate pinned memory pages at they fall back on uncooperative swapping and/or operate the host’s request, thereby ensuring guests will not use them under changing load conditions. We find that the associ- so that they can be utilized for some other purpose.
    [Show full text]
  • Linux Vm Documentation
    Linux Vm Documentation The kernel development community Jul 14, 2020 CONTENTS i ii Linux Vm Documentation This is a collection of documents about the Linux memory management (mm) sub- system. If you are looking for advice on simply allocating memory, see the mem- ory_allocation. CONTENTS 1 Linux Vm Documentation 2 CONTENTS CHAPTER ONE USER GUIDES FOR MM FEATURES The following documents provide guides for controlling and tuning various fea- tures of the Linux memory management 1.1 Automatically bind swap device to numa node If the system has more than one swap device and swap device has the node infor- mation, we can make use of this information to decide which swap device to use in get_swap_pages() to get better performance. 1.1.1 How to use this feature Swap device has priority and that decides the order of it to be used. To make use of automatically binding, there is no need to manipulate priority settings for swap devices. e.g. on a 2 node machine, assume 2 swap devices swapA and swapB, with swapA attached to node 0 and swapB attached to node 1, are going to be swapped on. Simply swapping them on by doing: # swapon /dev/swapA # swapon /dev/swapB Then node 0 will use the two swap devices in the order of swapA then swapB and node 1 will use the two swap devices in the order of swapB then swapA. Note that the order of them being swapped on doesn’t matter. A more complex example on a 4 node machine. Assume 6 swap devices are going to be swapped on: swapA and swapB are attached to node 0, swapC is attached to node 1, swapD and swapE are attached to node 2 and swapF is attached to node3.
    [Show full text]
  • Dynamic and Elastic Memory Management in Virtualized Clouds
    DYNAMIC AND ELASTIC MEMORY MANAGEMENT IN VIRTUALIZED CLOUDS A Dissertation Presented to The Academic Faculty By Wenqi Cao In Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy in the School of Computer Science Georgia Institute of Technology May 2019 Copyright c Wenqi Cao 2019 DYNAMIC AND ELASTIC MEMORY MANAGEMENT IN VIRTUALIZED CLOUDS Approved by: Dr. Ling Liu, Advisor Dr. David Devecsery School of Computer Science School of Computer Science Georgia Institute of Technology Georgia Institute of Technology Dr. Calton Pu, Co-Advisor Dr. Joy Arulraj School of Computer Science School of Computer Science Georgia Institute of Technology Georgia Institute of Technology Dr. Jay Lofstead Date Approved: March 26, 2019 Scalable System Software Group Sandia National Laboratories To my parents and my wife ACKNOWLEDGEMENTS I would like to express my deepest gratitude to my advisor, Dr. Ling Liu, for her guid- ance in this research and the support throughout my graduate study. She always inspires me to be a better researcher in many ways. I was especially fortunate to work with her and ben- efit from her advises. In addition to academic research, she always shares her life lessons with me and always been available whenever I need help. Her principles and dedication will have a great influence on me. I would also like to give special thanks to Dr. Calton Pu, Dr. David Devecsery, Dr. Joy Arulraj, and Dr. Jay Lofstead for their time to serve on my thesis committee and their valu- able feedback on my thesis proposal and final dissertation. Their welcome suggestions and insightful comments have greatly contributed to my thesis.
    [Show full text]