Bending Binary Programs to your Will Rajeev Barua.

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

Operating Systems Components of OS
Java Applet Security Diana Dong CS 265 Spring 2004.
Systems Software.
PROJECT IN DISTRIBUTED SYSTEMS IPERF FOR ANDROID Developers: Shir Degani, Yuval Degani Supervisors: Prof. Roy Friedman, Alex Kogan.
Lecture 2: Do you speak Java?. From Problem to Program Last Lecture we looked at modeling with objects! Steps to solving a business problem –Investigate.
Modern Compiler Internal Representations Silvius Rus 1/23/2002.
1 Pertemuan 05 Malicious Software Matakuliah: H0242 / Keamanan Jaringan Tahun: 2006 Versi: 1.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
A Type System for Expressive Security Policies David Walker Cornell University.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
1 The Problem o Fluid software cannot be trusted to behave as advertised unknown origin (must be assumed to be malicious) known origin (can be erroneous.
Database Management Systems (DBMS)
Source Code Basics. Code For a computer to execute instructions, it needs to be in binary Each instruction is given a number Known as “operation code”
Henric Johnson1 Chapter 10 Malicious Software Henric Johnson Blekinge Institute of Technology, Sweden
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
1 Chap 10 Malicious Software. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on.
Central Online Grading System COGS Dec15-21 dec1521.sd.ece.iastate.edu.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
FROM CONTROL SOFTWARE TO CONTROL SYSTEMS Wojciech Kurek.
Programming 1 1. Introduction to object oriented programming and problem-solving.
©2014 Bit9. All Rights Reserved Endpoint Threat Prevention Charles Roussey | Sr. Sales Engineer Detection and Response in Seconds.
Lecture 2 Title: Computer Software By: Mr Hashem Alaidaros MIS 101.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
1 Chap 10 Virus. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on an ever increasing.
University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.
Chapter 10 Malicious software. Viruses and ” Malicious Programs Computer “ Viruses ” and related programs have the ability to replicate themselves on.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
KATHOLIEKE UNIVERSITEIT LEUVEN 1 Run time enforcement of security policies on the.NET framework Frank Piessens Joint work with many people including Lieven.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
A Distributive Server Alberto Pareja-Lecaros. Introduction Uses of distributive computing - High powered applications - Ever-expanding server so there’s.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 18: Protection Goals of Protection Objects and Domains Access Matrix Implementation.
1.1 1 Purpose of firewall : –Control access to or from a protected network; –Implements network access policy connections pass through firewall and are.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
Chapter 1 Introduction. Chapter 1 -- Introduction2  Def: Compiler --  a program that translates a program written in a language like Pascal, C, PL/I,
Wireless and Mobile Security
Database Security Cmpe 226 Fall 2015 By Akanksha Jain Jerry Mengyuan Zheng.
Trusted Operating Systems
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
Learningcomputer.com SQL Server 2008 –Views, Functions and Stored Procedures.
JAVA Ekapap Julnonyang When it was implemented? Developed by Sun Microsystems. The first public implementation was Java 1.0 in 1995 The language.
A Binary Agent Technology for COTS Software Integrity Anant Agarwal Richard Schooler InCert Software.
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Page 1 Viruses. Page 2 What Is a Virus A virus is basically a computer program that has been written to perform a specific set of tasks. Unfortunately,
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Introduction to Programming 1 1 2Introduction to Java.
PREPARED BY: MS. ANGELA R.ICO & MS. AILEEN E. QUITNO (MSE-COE) COURSE TITLE: OPERATING SYSTEM PROF. GISELA MAY A. ALBANO PREPARED BY: MS. ANGELA R.ICO.
7.5 Using Stored-Procedure and Triggers NAME MATRIC NUM GROUP Muhammad Azwan Bin Khairul Anwar CS2305A Muhammad Faiz Bin Badrol Shah CS2305B.
Applications Active Web Documents Active Web Documents.
Why don’t programmers have to program in machine code?
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
Introduction to Compiler Construction
AUDACIOUS: USER DRIVEN ACCESS CONTROL WITH UNMODIFIED OPERATING SYSTEM
Michael Robertson Yuta Takayama Google Closure Tools.
课程名 编译原理 Compiling Techniques
Assembler, Compiler, Interpreter
Introduction to System Programming
Chap 10 Malicious Software.
Computer Organization & Compilation Process
Assembler, Compiler, Interpreter
Chapter 2: Operating-System Structures
Chap 10 Malicious Software.
COSC Assignment 3 - Part 1 Java Security Susan Kovacs 19 April 2019 COSC Assignment 3 - Part 1.
Computer Organization & Compilation Process
Access Control What’s New?
Programming language translators
Access Control and Site Security
Presentation transcript:

Bending Binary Programs to your Will Rajeev Barua

What is a Binary Rewriter High-level language program (C, C++, Java, SQL,……) Binary executable program Binary executable program Improved Binary executable program Traditionally Recently Binary RewriterCompiler

Allows optimizations missed by compiler –Including inter-procedural optimization Portable across any language –No need for repeated compiler implementation Applicable to legacy codes and assembly level programs Enhanced security of binaries Advantages of Binary Rewriting

Flow of Compiler llvm-gccllvm-gfortran C, C++Fortran Code Improvement LLVM IR Machine Code Generator Layout Modifications Binary Reader Flow of Binary Rewriter LLVM IR

+ Existing Binary Rewriters Commercial Binary Program Rewritten Commercial Binary Program Symbolic & Relocation Information Existing Binary Rewriter SecondWrite √

Improvement in Execution Speed –Automatic Parallelization –Better memory management Improvement of security and reliability –Protection against malicious attacks –Access control Applications of Binary Rewriting

Security Policy Enforcement in Binaries Security Policy Library Security Policy Library Binary Reader Code Improvement Layout ModificationsCode Generator System Call Detector Security check inserter

+ Security Policy Enforcement Input Binary ProgramSecurity Policy SecondWrite Output Binary Security Policy

Enforcing a Policy on a Malicious Binary Malicious binary that deletes files under the /c/important directory. Run binary Deletes files! (Binary runs under your permissions)

Enforcing a Policy on a Malicious Binary Malicious binary that deletes files under the /c/important directory. SecondWrite Malicious Binary Security Policy + Security policy for downloaded applications: Cannot delete files which the application did not itself create

Enforcing a Policy on a Malicious Binary Malicious Binary Run binary Kill application! Security Policy

Prevent network send after reading sensitive files Impose quota on resource usage (e.g. heap memory) Examples of Other Policies

Customizable: Security checks customizable to application, source, user and site. Wide Scope: Completely enforce Confidentiality, Integrity, and Availability (CIA triad) in a binary Preventative: Ability to stop attacks before they succeed Portable: Approach is independent of operating system and programming language Advantages of this Approach