Remote Entrusting by Orthogonal Client Replacement. Ceccato Mariano 1, Mila Dalla Preda 2, Anirban Majumbar 3, Paolo Tonella 1.
|
|
- Debra Holland
- 5 years ago
- Views:
Transcription
1 Remote Entrusting by Orthogonal Client Replacement Ceccato Mariano, Mila Dalla Preda 2, Anirban Majumbar 3, Paolo Tonella Fondazione Bruno Kessler, Trento, Italy 2 University of Verona, Italy 3 University of Trento, Italy Code integrity problem Orthogonal replacement Obfuscation Code splitting Empirical validation Outline 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 2
2 Remote software trusting Remote software authentication: ensuring a (server) that an un-trusted host (client) is running a healthy version of a program (code integrity) Before delivering any service the server wants to know that the client is executing according to its expectations Un-trusted client Un-trusted client Un-trusted client Un-trusted client Trusted server Un-trusted client 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 3 Attack model Attacker on un-trusted host: Any dynamic/static analysis tool Any software (buggers, emulators, ) Read/write any memory location, register, network message, file. Attacks: Reverse engineer and direct code change. Runtime modification of the memory. Produce (possibly tampered) copies of P that run in parallel. Interception and change of network messages. 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 4 2
3 Attacker goal Goal: to tamper with the application code without being detected by the server Substantial program understanding effort by a human to understand the inner logic to attack Client Server 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 5 Our approach Periodically replace the client code with a new version Orthogonal (obfuscated) Semantically different CP CP 2 CP 3 CP 0 Client Server 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 6 3
4 Obfuscation Transforming a program CP into an equivalent one CP that is harder to reverse engineer, while maintaining its semantics. Potency: obscurity added to a program Resilience: how difficult is to automatically de-obfuscate Cost: computation overhead of P CP T T 2 T 3 CP 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 7 Obfuscation!! "!! # " "#! $%&'( $%&'))( '( '!( '"( '!( '"( '"( )*! + #,, -. Layout obfuscation 2. Data obfuscation 3. Control flow obfuscation 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 8 4
5 Splitting The code of CP i can be split into (C i, S i ) where: C i remains on the client S i runs on the server This process ensures that the code left on the client is orthogonal with respect to the previous clients An expired client can not longer be used (it would not work with the new server) CP i Client C i Server S i 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 9 Orthogonality c CP i p CP j Statement orthogonality c p if: the understanding of the of c the role in CP i does not reveal information about the role of p in CP j Program orthogonality CP i CP j if: they contains only* orthogonal statements *Not possible to transform or move to the server: System calls Library calls Input output operations 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 0 5
6 Orthogonal client generation CP C,,C i- repeat CP i = RendomTransform (CP) CP = CP i (C i, S i ) = MoveCompToServer(CP i, C,,C i- ) until (C i C ) (C i C i- ) (C i, S i ) 9/06/2008 Remote Entrusting by Orthogonal Client Replacement Transformation repeat CP i = RendomTransform (CP) CP = CP i (C i, S i ) = MoveCompToServer(CP i, C,,C i- ) until (C i C ) (C i C i- ) Pool of semantic preserving transformations from a catalog Propagations of annotations about black statements and performance information The goal is to obstruct code comprehension 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 2 6
7 Splitting repeat CP i = RendomTransform (CP) CP = CP i (C i, S i ) = MoveCompToServer(CP i, C,,C i- ) until (C i C ) (C i C i- ) Leave on the client: Statement of CP i that are orthogonal to all previous C C i- Invariable part (black) Performance intensive statements 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 3 Acceptance condition repeat CP i = RendomTransform (CP) CP = CP i (C i, S i ) = MoveCompToServer(CP i, C,,C i- ) until (C i C ) (C i C i- ) The new client is orthogonal is not just black statements (performance) Iteration in case the condition is not met 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 4 7
8 Empirical validation 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 5 Clone based orthogonality Orthogonality from a program comprehension point of view is hard to define and quantify Practical and computable approximation of orthogonality: based on clones Clones Statement orthogonality c p if: the understanding of the of c the role in CP i does not reveal information about the role of p in CP j CP i CP j 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 6 8
9 Alias based opaque predicates Opaque predicate: conditional expression whose value is known to the obfuscator, but is difficult for an adversary to deduce statically Precise inter-procedural static analysis is intractable 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 7 Aliases : f = = g g! = h Update : updatealias ( ) class A { int f ; int f2 ; void m ( ) { f = ; f2 = f ++; int tmp = f ; tmp = tmp - f ; f = f + f2 ; Alias based opaque predicates class A { if ( g!= h ) { int f ; updatealias( ) ; int f2 ; tmp = f ; void m ( ) { tmp = tmp - f ; int tmp ; updatealias( ) ; if ( f ==g ) { f = f +f2 ; f = ; updatealias( ) ; else { f2 = f ++; f = tmp / f2 ; tmp = f2%59+f2 ; else { updatealias( ) ; updatealias( ) ; tmp = f +f2 / 5 ; f = f2 - tmp ; 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 8 9
10 Case studies CarRace (on-line game) CP race = 220 loc Chat application CP chat = 0 loc On line applications Written in java (~K loc each) Source code is sensitive to malicious modifications 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 9 Clone size threshold Small threshold Too many iterations of the algorithm exponential grown of the source code Most of the reposted clones are false positives Improvements do not bring more security Large threshold Algorithm is fast Too many false positives Clients contains clones that could leak information to an attacker repeat CP i = RendomTransform (CP) CP = CP i (C i, S i ) = MoveCompToServer(CP i, C,,C i- ) until (C i C ) (C i C i- ) 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 20 0
11 Clone size threshold Application CarRace ChatClinet Min. clone length Statements Tokens Clones /06/2008 Remote Entrusting by Orthogonal Client Replacement 2 Generation Performance Application CarRace ChatClient Application lifetime 5 years A replacement every 2 days No. of clients No. of clones /06/2008 Remote Entrusting by Orthogonal Client Replacement 22
12 Attacks Opaque predicates could be attacked through dynamic analysis (debugging) Removing branches that are not executed could cause the elimination of useful code We could add predicates that infrequently evaluate to True (False) and if removed cause the application to malfunction 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 23 Future works Clone size threshold estimation requires further investigation Implementation of a full catalog of obfuscations e.g., variable splitting/encoding of the code left on the client Evaluating how long a piece of code can resist before been attacked Correct estimation of the replacement frequency 9/06/2008 Remote Entrusting by Orthogonal Client Replacement 24 2
Remote Entrusting by Orthogonal Client Replacement
Remote Entrusting by Orthogonal Client Replacement Mariano Ceccato 1, Mila Dalla Preda 2, Anirban Majumdar 3, Paolo Tonella 1 1 Fondazione Bruno Kessler, Trento, Italy 2 University of Verona, Italy 3 University
More informationRemote software protection by orthogonal client replacement
Remote software protection by orthogonal client replacement Mariano Ceccato, Paolo Tonella Fondazione Bruno Kessler IRST Trento, Italy {ceccato,tonella@fbk.eu Mila Dalla Preda University of Verona Verona,
More informationProbfuscation: An Obfuscation Approach using Probabilistic Control Flows
Probfuscation: An Obfuscation Approach using Probabilistic Control Flows Andre Pawlowski, Moritz Contag, and Thorsten Holz Horst Görtz Institute (HGI), Ruhr-University Bochum, Germany Abstract. Sensitive
More informationFirst year review WP4 overview. Trento - September 24th, 2007
First year review WP4 overview Trento - September 24th, 2007 Goal of WP4 Trust and Security Analysis of the various SW-based and combined HW/SW-based methods for the RE-TRUST problem 2 Participants UNITN
More informationSoftware Protection: How to Crack Programs, and Defend Against Cracking Lecture 4: Code Obfuscation Minsk, Belarus, Spring 2014
Software Protection: How to Crack Programs, and Defend Against Cracking Lecture 4: Code Obfuscation Minsk, Belarus, Spring 2014 Christian Collberg University of Arizona www.cs.arizona.edu/ collberg c June
More informationIndustrial Approach: Obfuscating Transformations
Industrial Approach: Obfuscating Transformations Yury Lifshits Steklov Institute of Mathematics, St.Petersburg, Russia yura@logic.pdmi.ras.ru Tartu University 17/03/2006 Yury Lifshits (Steklov Inst. of
More informationISSISP 2014 Code Obfuscation Verona, Italy
ISSISP 2014 Code Obfuscation Verona, Italy Christian Collberg University of Arizona www.cs.arizona.edu/ collberg c July 27, 2014 Christian Collberg Overview 3 / 109 Code obfuscation what is it? Informally,
More informationObfuscating Transformations. What is Obfuscator? Obfuscation Library. Obfuscation vs. Deobfuscation. Summary
? Obfuscating Outline? 1? 2 of Obfuscating 3 Motivation: Java Virtual Machine? difference between Java and others? Most programming languages: Java: Source Code Machine Code Predefined Architecture Java
More informationRUHR-UNIVERSITÄT BOCHUM. Probfuscation: An Obfuscation Approach using Probabilistic Control Flows
RUHR-UNIVERSITÄT BOCHUM Horst Görtz Institute for IT Security Technical Report TR-HGI-2016-002 Probfuscation: An Obfuscation Approach using Probabilistic Control Flows Andre Pawlowski, Moritz Contag, Thorsten
More informationImplementation of an Obfuscation Tool for C/C++ Source Code Protection on the XScale Architecture *
Implementation of an Obfuscation Tool for C/C++ Source Code Protection on the XScale Architecture * Seongje Cho 1, Hyeyoung Chang 1, and Yookun Cho 2 1 Dept. of Computer Science & Engineering, Dankook
More informationCode Obfuscation 10**2+(2*a+3)%2. When 2018/11/29 Where JSecIn Who Gaetan Ferry Why For fun!
Code Obfuscation 10**2+(2*a+3)%2 When 2018/11/29 Where JSecIn Who Gaetan Ferry Why For fun! me@jsecin:/ $ whoami Gaetan Ferry @mabo^w Not on twitter Security expert @Synacktiv : Offensive security company
More informationPLT Course Project Demo Spring Chih- Fan Chen Theofilos Petsios Marios Pomonis Adrian Tang
PLT Course Project Demo Spring 2013 Chih- Fan Chen Theofilos Petsios Marios Pomonis Adrian Tang 1. Introduction To Code Obfuscation 2. LLVM 3. Obfuscation Techniques 1. String Transformation 2. Junk Code
More informationFormal verification of program obfuscations
Formal verification of program obfuscations Sandrine Blazy joint work with Roberto Giacobazzi and Alix Trieu IFIP WG 2.11, 2015-11-10 1 Background: verifying a compiler Compiler + proof that the compiler
More informationSoftware Similarity Analysis. c April 28, 2011 Christian Collberg
Software Similarity Analysis c April 28, 2011 Christian Collberg Clone detection Duplicates are the result of copy-paste-modify programming. 2/49 Clone detection Duplicates are the result of copy-paste-modify
More informationSoftware Protection via Obfuscation
Software Protection via Obfuscation Ciprian Lucaci InfoSec Meetup #1 1 About me Software Protection via Obfuscation - Ciprian LUCACI 2 About me 2008-2012 # Bachelor Computer Science @ Politehnica Univerity
More informationThird year review WP3 overview HW/SW-based methods. Riva del Garda October 2 nd, 2009
Third year review WP3 overview HW/SW-based methods Riva del Garda October 2 nd, 2009 Tasks D3.3 D3.4 D3.1 D3.2 D3.5 M0 M3 M6 M9 M12 M15 M18 M21 M24 M27 M30 M33 M36 T3.1 T3.4 T3.3 T3.5 2 Task 3.2 M23 M24
More informationSoftware Protection: How to Crack Programs, and Defend Against Cracking Lecture 7: Tamperproofing II Minsk, Belarus, Spring 2014
Software Protection: How to Crack Programs, and Defend Against Cracking Lecture 7: Tamperproofing II Minsk, Belarus, Spring 2014 Christian Collberg University of Arizona www.cs.arizona.edu/ collberg c
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationIntellectual Property Protection using Obfuscation
Intellectual Property Protection using Obfuscation Stephen Drape Collaboration between Siemens AG, Munich and the University of Oxford Research Project sponsored by Siemens AG, Munich March 2009 Contents
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing
More informationVerfying the SSH TLP with ProVerif
A Demo Alfredo Pironti Riccardo Sisto Politecnico di Torino, Italy {alfredo.pironti,riccardo.sisto}@polito.it CryptoForma Bristol, 7-8 April, 2010 Outline Introduction 1 Introduction 2 3 4 Introduction
More informationAndroid App Protection via Interpretation Obfuscation
Android App Protection via Interpretation Obfuscation Junliang Shu, Juanru Li, Yuanyuan Zhang and Dawu Gu Lab of Cryptology and Computer Security Shanghai Jiao Tong University Shanghai, China, Abstract
More informationVOT4CS: A Virtualization Obfuscation Tool for C#
VOT4CS: A Virtualization Obfuscation Tool for C# Sebastian Banescu, Ciprian Lucaci, Benjamin Kraemer, Alexander Pretschner Technical University of Munich, Germany 2 nd International Workshop on Software
More informationAn On-demand Secure Routing Protocol Resilient to Byzantine Failures. Routing: objective. Communication Vulnerabilities
An On-demand Secure Routing Protocol Resilient to Byzantine Failures Baruch Awerbuch Johns Hopkins University On-Demand vs. Proactive Routing Security Concerns On-Demand Source Authentication Caching presents
More informationObfuscation Omer Paneth
Obfuscation Omer Paneth What does it do? #include void primes(int cap) { int i, j, composite; for(i = 2; i < cap; ++i) { composite = 0; for(j = 2; j * j
More informationAn On-demand Secure Routing Protocol Resilient to Byzantine Failures
An On-demand Secure Routing Protocol Resilient to Byzantine Failures Baruch Awerbuch Johns Hopkins University Joint work with David Holmer, Cristina Nita-Rotaru, and Herbert Rubens Based on paper at WiSe2002
More informationCSE 501: Compiler Construction. Course outline. Goals for language implementation. Why study compilers? Models of compilation
CSE 501: Compiler Construction Course outline Main focus: program analysis and transformation how to represent programs? how to analyze programs? what to analyze? how to transform programs? what transformations
More informationObfuscation Studio Executive
PROCEEDINGS OF WORLD ACADEMY OF SCIENCE, ENGINEERING AND TECHNOLOGY VOLUME 1 DECEMBER 25 ISSN 137-6884 Obfuscation Studio Executive Siarhei Petryk, and Vyacheslav Yarmolik Abstract New software protection
More informationHow to (not) Share a Password:
How to (not) Share a Password: Privacy preserving protocols for finding heavy hitters with adversarial behavior Moni Naor Benny Pinkas Eyal Ronen Passwords First modern use in MIT's CTSS (1961) Passwords
More informationSymbolic Evaluation/Execution
Symbolic Evaluation/Execution Reading Assignment *R.W. Floyd, "Assigning Meaning to Programs, Symposium on Applied Mathematics, 1967, pp. 19-32 (Appeared as volume 19 of Mathematical Aspects of Computer
More informationCOURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS
ABOUT THIS COURSE In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will be on coding activities that enhance the
More informationData Structures And Algorithms
Data Structures And Algorithms Recursion Eng. Anis Nazer First Semester 2016-2017 Recursion Recursion: to define something in terms of itself Example: factorial n!={ 1 n=0 n (n 1)! n>0 Recursion Example:
More information20486: Developing ASP.NET MVC 4 Web Applications (5 Days)
www.peaklearningllc.com 20486: Developing ASP.NET MVC 4 Web Applications (5 Days) About this Course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework
More informationDelayed and Controlled Failures in Tamper-Resistant Software
Delayed and Controlled Failures in Tamper-Resistant Software Gang Tan *, Yuqun Chen #, and Mariusz H. Jakubowski # * Boston College # Microsoft Research Software Piracy Worldwide 40 35 30 25 20 15 10 5
More informationDeveloping ASP.NET MVC 4 Web Applications
Developing ASP.NET MVC 4 Web Applications Course 20486B; 5 days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5
More information20486-Developing ASP.NET MVC 4 Web Applications
Course Outline 20486-Developing ASP.NET MVC 4 Web Applications Duration: 5 days (30 hours) Target Audience: This course is intended for professional web developers who use Microsoft Visual Studio in an
More informationHow to (not) Share a Password:
How to (not) Share a Password: Privacy preserving protocols for finding heavy hitters with adversarial behavior Moni Naor Benny Pinkas Eyal Ronen Passwords First modern use in MIT's CTSS (1961) Passwords
More informationProgram Vulnerability Analysis Using DBI
Program Vulnerability Analysis Using DBI CodeEngn Co-Administrator DDeok9@gmail.com 2011.7.2 www.codeengn.com CodeEngn ReverseEngineering Conference Outline What is DBI? Before that How? A simple example
More informationCODESSEAL: Compiler/FPGA Approach to Secure Applications
CODESSEAL: Compiler/FPGA Approach to Secure Applications Olga Gelbart 1, Paul Ott 1, Bhagirath Narahari 1, Rahul Simha 1, Alok Choudhary 2, and Joseph Zambreno 2 1 The George Washington University, Washington,
More informationData Structures Lecture 3 Order Notation and Recursion
Data Structures Lecture 3 Order Notation and Recursion 1 Overview The median grade.cpp program from Lecture 2 and background on constructing and using vectors. Algorithm analysis; order notation Recursion
More informationFailure Diagnosis and Cyber Intrusion Detection in Transmission Protection System Assets Using Synchrophasor Data
Failure Diagnosis and Cyber Intrusion Detection in Transmission Protection System Assets Using Synchrophasor Data Anurag Srivastava, Bo Cui, P. Banerjee Washington State University NASPI March 2017 Outline
More informationTHE POWER AND RISK OF MOBILE. White paper
THE POWER AND RISK OF MOBILE White paper TABLE OF CONTENTS Executive Summary - 3 Introduction - 4 The Power and Risk of Mobile - 4 Growing Dominance of Android - 5 Best Practices to Develop Secure Mobile
More informationLecture 16 Pointer Analysis
Pros and Cons of Pointers Lecture 16 Pointer Analysis Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis Many procedural languages have pointers
More informationDeveloping ASP.NET MVC 5 Web Applications
Developing ASP.NET MVC 5 Web Applications Course 20486C; 5 days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework tools
More informationCS111: PROGRAMMING LANGUAGE II
CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 1(c): Java Basics (II) Lecture Contents Java basics (part II) Conditions Loops Methods Conditions & Branching Conditional Statements A
More informationTopics in Systems and Program Security
Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Topics in Systems and
More informationHOST Authentication Overview ECE 525
Authentication Overview Authentication refers to the process of verifying the identity of the communicating principals to one another Usually sub-divided into Entity authentication Authentication in real-time
More informationSupporting Documentation and Evolution of Crosscutting Concerns in Business Processes
Supporting Documentation and Evolution of Crosscutting Concerns in Business Processes Chiara Di Francescomarino supervised by Paolo Tonella dfmchiara@fbk.eu - Fondazione Bruno Kessler, Trento, Italy Abstract.
More informationAdvanced MEIC. (Lesson #18)
Advanced Programming @ MEIC (Lesson #18) Last class Data races Java Memory Model No out-of-thin-air values Data-race free programs behave as expected Today Finish with the Java Memory Model Introduction
More informationMachine-Independent Optimizations
Chapter 9 Machine-Independent Optimizations High-level language constructs can introduce substantial run-time overhead if we naively translate each construct independently into machine code. This chapter
More informationHint-based Static Analysis for Automatic Program Parallelization. Steve Simon Joseph Fernandez CSCI 5535 University of Colorado, Boulder
Hint-based Static Analysis for Automatic Program Parallelization Steve Simon Joseph Fernandez CSCI 5535 University of Colorado, Boulder Background Year Hardware Software (mostly) 1998 Single Core Single
More informationModule: Future of Secure Programming
Module: Future of Secure Programming Professor Trent Jaeger Penn State University Systems and Internet Infrastructure Security Laboratory (SIIS) 1 Programmer s Little Survey Problem What does program for
More informationReading Assignment. Symbolic Evaluation/Execution. Move from Dynamic Analysis to Static Analysis. Move from Dynamic Analysis to Static Analysis
Reading Assignment Symbolic Evaluation/Execution *R.W. Floyd, "Assigning Meaning to Programs, Symposium on Applied Mathematics, 1967, pp. 19-32 (Appeared as volume 19 of Mathematical Aspects of Computer
More informationDeveloping ASP.NET MVC 5 Web Applications. Course Outline
Developing ASP.NET MVC 5 Web Applications Course Outline Module 1: Exploring ASP.NET MVC 5 The goal of this module is to outline to the students the components of the Microsoft Web Technologies stack,
More information20486 Developing ASP.NET MVC 5 Web Applications
Course Overview In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework tools and technologies. The focus will be on coding activities that enhance the performance
More informationProtecting binaries. Andrew Griffiths
Protecting binaries Andrew Griffiths andrewg@felinemenace.org Introduction This presentation is meant to be useful for people of all skill levels. Hopefully everyone will get something out of this presentation.
More informationAegis: Automatic Enforcement of Security Policies in Workflow-driven Web Applications
Aegis: Automatic Enforcement of Security Policies in Workflow-driven Web Applications Luca Compagna 2, Daniel Ricardo dos Santos 1,2,3, Serena Elisa Ponta 2, Silvio Ranise 1 1 Fondazione Bruno Kessler
More informationCSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion
CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,
More informationContext-Based Detection of Clone-Related Bugs. Lingxiao Jiang, Zhendong Su, Edwin Chiu University of California at Davis
Context-Based Detection of Clone-Related Bugs Lingxiao Jiang, Zhendong Su, Edwin Chiu University of California at Davis 1 Outline Introduction and samples of cloning errors Definitions of inconsistencies
More informationCS 161 Computer Security
Paxson Spring 2011 CS 161 Computer Security Discussion 1 January 26, 2011 Question 1 Buffer Overflow Mitigations Buffer overflow mitigations generally fall into two categories: (i) eliminating the cause
More informationCSE 307: Principles of Programming Languages
CSE 307: Principles of Programming Languages Variables and Constants R. Sekar 1 / 22 Topics 2 / 22 Variables and Constants Variables are stored in memory, whereas constants need not be. Value of variables
More informationOn Demand secure routing protocol resilient to Byzantine failures
On Demand secure routing protocol resilient to Byzantine failures Primary Reference: B. Awerbuch, D. Holmer, C. Nita-Rotaru, and H. Rubens, An on-demand secure routing protocol resilient to Byzantine failures,
More informationLL(k) Parsing. Predictive Parsers. LL(k) Parser Structure. Sample Parse Table. LL(1) Parsing Algorithm. Push RHS in Reverse Order 10/17/2012
Predictive Parsers LL(k) Parsing Can we avoid backtracking? es, if for a given input symbol and given nonterminal, we can choose the alternative appropriately. his is possible if the first terminal of
More informationAlan Bateman Java Platform Group, Oracle November Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1
Alan Bateman Java Platform Group, Oracle November 2018 Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1 Project Loom Continuations Fibers Tail-calls Copyright 2018, Oracle and/or its
More informationA Practical Approach to Programming With Assertions
A Practical Approach to Programming With Assertions Ken Bell Christian-Albrechts Universität Kiel Department of Computer Science and Applied Mathematics Real-Time Systems and Embedded Systems Group July
More informationApproximation of the Worst-Case Execution Time Using Structural Analysis. Matteo Corti and Thomas Gross Zürich
Approximation of the Worst-Case Execution Time Using Structural Analysis Matteo Corti and Thomas Gross Zürich Goal Worst-case execution time estimation of softreal time Java applications. We focus on semantic
More informationUsing Exception Handling to Build Opaque Predicates in Intermediate Code Obfuscation Techniques
Using Exception Handling to Build Opaque Predicates in Intermediate Code Obfuscation Techniques Daniel Dolz Gerardo Parra Grupo de Investigación en Robótica Inteligente Departamento de Ciencias de la Computación
More informationJava obfuscator: implementation. Re-Trust quarterly meeting Villach, March 11, 2008
Java obfuscator: implementation Pierre.Girard@gemalto.com Re-Trust quarterly meeting Villach, March 11, 2008 Introduction Java obfuscator design presented one year ago Use cases for Java obfuscation in
More informationDeveloping ASP.Net MVC 4 Web Application
Developing ASP.Net MVC 4 Web Application About this Course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will
More informationCS553 Lecture Dynamic Optimizations 2
Dynamic Optimizations Last time Predication and speculation Today Dynamic compilation CS553 Lecture Dynamic Optimizations 2 Motivation Limitations of static analysis Programs can have values and invariants
More informationIntroduction to JavaCard Dynamic Logic
Introduction to JavaCard Dynamic Logic Prof. P. H. Schmitt, Christian Engel, Benjamin Weiß December 10, 2008 Introduction to JavaCard Dynamic Logic December 10, 2008 1 / 13 Some Java Features Assignments,
More informationTrojan-tolerant Hardware & Supply Chain Security in Practice
Trojan-tolerant Hardware & Supply Chain Security in Practice Who we are Vasilios Mavroudis Doctoral Researcher, UCL Dan Cvrcek CEO, Enigma Bridge George Danezis Professor, UCL Petr Svenda CTO, Enigma Bridge
More informationThe Checker Framework: pluggable static analysis for Java
The Checker Framework: pluggable static analysis for Java http://checkerframework.org/ Werner Dietl University of Waterloo https://ece.uwaterloo.ca/~wdietl/ Joint work with Michael D. Ernst and many others.
More informationIA-64 Compiler Technology
IA-64 Compiler Technology David Sehr, Jay Bharadwaj, Jim Pierce, Priti Shrivastav (speaker), Carole Dulong Microcomputer Software Lab Page-1 Introduction IA-32 compiler optimizations Profile Guidance (PGOPTI)
More informationBouncer: Securing Software by Blocking Bad Input
Bouncer: Securing Software by Blocking Bad Input Sathish Kuppuswamy & Yufei Fu Department of computer Science University of Texas at Dallas March 21 st, 2012 Outline Bouncer Existing Techniques Bouncer
More informationDeveloping ASP.NET MVC 5 Web Applications
20486C - Version: 1 23 February 2018 Developing ASP.NET MVC 5 Web Developing ASP.NET MVC 5 Web 20486C - Version: 1 5 days Course Description: In this course, students will learn to develop advanced ASP.NET
More informationTRUSTSHADOW: SECURE EXECUTION OF UNMODIFIED APPLICATIONS WITH ARM TRUSTZONE Florian Olschewski
TRUSTSHADOW: SECURE EXECUTION OF UNMODIFIED APPLICATIONS WITH ARM TRUSTZONE 14.11.2018 Florian Olschewski 1 OUTLINE 1) Introduction 2) Trustzone 3) Threat Model 4) Overview 5) Runtime System 6) Implementation
More informationLecture 27. Pros and Cons of Pointers. Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis
Pros and Cons of Pointers Lecture 27 Pointer Analysis Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis Many procedural languages have pointers
More informationModule: Future of Secure Programming
Module: Future of Secure Programming Professor Trent Jaeger Penn State University Systems and Internet Infrastructure Security Laboratory (SIIS) 1 Programmer s Little Survey Problem What does program for
More informationLecture 20 Pointer Analysis
Lecture 20 Pointer Analysis Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis (Slide content courtesy of Greg Steffan, U. of Toronto) 15-745:
More informationUnder the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world.
Under the Compiler's Hood: Supercharge Your PLAYSTATION 3 (PS3 ) Code. Understanding your compiler is the key to success in the gaming world. Supercharge your PS3 game code Part 1: Compiler internals.
More informationHybrid STT CMOS Designs for Reverse engineering Prevention
Hybrid STT CMOS Designs for Reverse engineering Prevention Theodore Winograd George Mason University Hassan Salmani* Howard University Hamid Mahmoodi San Francisco State University Kris Gaj George Mason
More informationA Simple SQL Injection Pattern
Lecture 12 Pointer Analysis 1. Motivation: security analysis 2. Datalog 3. Context-insensitive, flow-insensitive pointer analysis 4. Context sensitivity Readings: Chapter 12 A Simple SQL Injection Pattern
More informationUniversity of East London Institutional Repository:
University of East London Institutional Repository: http://roar.uel.ac.uk This paper is made available online in accordance with publisher policies. Please scroll down to view the document itself. Please
More informationCS 161 Computer Security
Paxson Spring 2017 CS 161 Computer Security Discussion 2 Question 1 Software Vulnerabilities (15 min) For the following code, assume an attacker can control the value of basket passed into eval basket.
More informationA Tree Kernel Based Approach for Clone Detection
A Tree Kernel Based Approach for Clone Detection Anna Corazza 1, Sergio Di Martino 1, Valerio Maggio 1, Giuseppe Scanniello 2 1) University of Naples Federico II 2) University of Basilicata Outline Background
More informationIntroduction to Programming Languages and Compilers. CS164 11:00-12:30 TT 10 Evans. UPRM ICOM 4029 (Adapted from: Prof. Necula UCB CS 164)
Introduction to Programming Languages and Compilers CS164 11:00-12:30 TT 10 Evans 1 ICOM 4036 - Outline Prontuario Course Outline Brief History of PLs Programming Language Design Criteria Programming Language
More informationDETERMINISTIC VARIATION FOR ANTI-TAMPER APPLICATIONS
DETERMINISTIC VARIATION FOR ANTI-TAMPER APPLICATIONS J. Todd McDonald, Yong C. Kim, Daniel Koranek Dr. Jeffrey Todd McDonald, Ph.D. Center for Forensics, Information Technology, and Security School of
More information20486C: Developing ASP.NET MVC 5 Web Applications
20486C: Developing ASP.NET MVC 5 Web Course Details Course Code: Duration: Notes: 20486C 5 days This course syllabus should be used to determine whether the course is appropriate for the students, based
More informationSung-Eun Choi and Steve Deitz Cray Inc.
Sung-Eun Choi and Steve Deitz Cray Inc. Domains and Arrays Overview Arithmetic Other Domain Types Data Parallel Operations Examples Chapel: Data Parallelism 2 A first-class index set Specifies size and
More informationMemory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory.
Memory Management Page 1 Memory Management Wednesday, October 27, 2004 4:54 AM Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory. Two kinds
More informationLecturers: Mark D. Ryan and David Galindo. Cryptography Slide: 24
Assume encryption and decryption use the same key. Will discuss how to distribute key to all parties later Symmetric ciphers unusable for authentication of sender Lecturers: Mark D. Ryan and David Galindo.
More informationComplexity, General. Standard approach: count the number of primitive operations executed.
Complexity, General Allmänt Find a function T(n), which behaves as the time it takes to execute the program for input of size n. Standard approach: count the number of primitive operations executed. Standard
More informationSoftware security, secure programming
Software security, secure programming Lecture 4: Protecting your code against software vulnerabilities? (overview) Master on Cybersecurity Master MoSiG Academic Year 2017-2018 Preamble Bad news several
More informationSoftware Analysis Tools
CSCE 790 Introduction to Software Analysis Software Analysis Tools Professor Lisa Luo Fall 2018 Overview Source code CFG generator Binary code analysis Code obfuscation Symbolic Execution Dynamic analysis
More informationSimone Campanoni Loop transformations
Simone Campanoni simonec@eecs.northwestern.edu Loop transformations Outline Simple loop transformations Loop invariants Induction variables Complex loop transformations Simple loop transformations Simple
More informationAutomated static deobfuscation in the context of Reverse Engineering
Automated static deobfuscation in the context of Reverse Engineering Sebastian Porst (sebastian.porst@zynamics.com) Christian Ketterer (cketti@gmail.com) Sebastian zynamics GmbH Lead Developer BinNavi
More informationNaming in OOLs and Storage Layout Comp 412
COMP 412 FALL 2018 Naming in OOLs and Storage Layout Comp 412 source IR IR target Front End Optimizer Back End Copyright 2018, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled in
More informationSE352b: Roadmap. SE352b Software Engineering Design Tools. W3: Programming Paradigms
SE352b Software Engineering Design Tools W3: Programming Paradigms Feb. 3, 2005 SE352b, ECE,UWO, Hamada Ghenniwa SE352b: Roadmap CASE Tools: Introduction System Programming Tools Programming Paradigms
More information