Protecting Software Code By Guards The George Washington University Cs297 YU-HAO HU.

Slides:



Advertisements
Similar presentations
Spatial Domain Image Watermarking Robust against Compression, Filtering, Cropping and Scaling By Sebé, Domingo-Ferrer, Herrera Information Security Dec.
Advertisements

Protecting Software Code By Guards - by Hoi Chang and Mikhail J. Atallah “Many software-based mechanisms for protecting program code are too weak[…] or.
H Mar-01 Clark Thomborson Software Security CompSci 725 Handout 12: Student Presentations, Watermarking & Obfuscation Clark Thomborson University.
Techniques for Software Watermarking and Fingerprinting Prof. Clark Thomborson Presentation at Tsinghua University 17 th March 2010.
Dynamic Self-Checking Techniques for Improved Tamper Resistance Bill Horne, Lesley Matheson, Casey Sheehan, Robert E. Tarjan STAR Lab, InterTrust Technologies.
Steganography and Watermarks Trust and Reputation.
Information Hiding: Watermarking and Steganography
Overview Motivations Basic static and dynamic optimization methods ADAPT Dynamo.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
A New Scheme For Robust Blind Digital Video Watermarking Supervised by Prof. LYU, Rung Tsong Michael Presented by Chan Pik Wah, Pat Mar 5, 2002 Department.
IBinHunt: Binary Hunting with Inter-Procedural Control Flow Jiang Ming, Meng Pan, and Debin Gao College of Information Sciences and Technology, Penn State.
1 A Functional Taxonomy for Software Watermarking Jas Nagra, Clark Thomborson University of Auckland Christian Collberg University of Arizona.
Wmobf.1 1/5/00 Clark Thomborson Watermarking, Tamper-Proofing and Obfuscation – Tools for Software Protection Christian Collberg & Clark Thomborson Computer.
Software Model Checking for Embedded Systems PIs: Matthew Dwyer 1, John Hatcliff 1, and George Avrunin 2 Post-docs: Steven Seigel 2, Radu Iosif 1 Students:
.NET IL Obfuscation Presented by: Sarath Chandra Dorbala.
18/03/2007Obfuscation 1 Software protection Mariano Ceccato FBK - Fondazione Bruno Kessler
Name: Hao Yuan Supervisor: Len Hamey ITEC810 ProjectTransformations for Obfuscating Object-Oriented Programs1.
LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan.
Experiments in Software Watermarking Bradford P. Cuppy B.S. University of Evansville Fri, Nov 8, 2002.
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
Chapter 9: Subprogram Control
Multimedia Security Digital Video Watermarking Supervised by Prof. LYU, Rung Tsong Michael Presented by Chan Pik Wah, Pat Nov 20, 2002 Department of Computer.
Efficient Instruction Set Randomization Using Software Dynamic Translation Michael Crane Wei Hu.
Breaking Abstractions and Unstructuring Data Structures Christian Collberg Clark Thomborson Douglas Low “Mobile programs are distributed in forms that.
D ATABASE S ECURITY Proposed by Abdulrahman Aldekhelallah University of Scranton – CS521 Spring2015.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Safety in the C programming Language Peter Wihl May 26 th, 2005 CS 297 Security and Programming Languages.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
Detecting Software Theft via System Call Based Birthmarks Xinran Wang, Yoon-Chan Jhi, Sencun Zhu, Peng Liu ACSAC 2009.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
Software Construction and Evolution - CSSE 375 Reverse Engineering Tools and Techniques Shawn & Steve Left – Reengineering from the competition can be.
Watermarking University of Palestine Eng. Wisam Zaqoot May 2010.
Preventing SQL Injection Attacks in Stored Procedures Alex Hertz Chris Daiello CAP6135Dr. Cliff Zou University of Central Florida March 19, 2009.
Computer Science Open Research Questions Adversary models –Define/Formalize adversary models Need to incorporate characteristics of new technologies and.
Technical Seminar Presentation-2004 Presented by : ASHOK KUMAR SAHOO (EI ) NATIONAL INSTITUTE OF SCIENCE & TECHNOLOGY Presented By Ashok Kumar.
Information Security Principles Assistant Professor Dr. Sana’a Wafa Al-Sayegh 1 st Semester ITGD 2202 University of Palestine.
Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaoton Zhuang, Tao Zhang, Hsien-Hsin S. Lee, Santosh Pande HIDE: An Infrastructure.
DBPD: A Dynamic Birthmark-based Software Plagiarism Detection Tool
EECS 354 Network Security Reverse Engineering. Introduction Preventing Reverse Engineering Reversing High Level Languages Reversing an ELF Executable.
Software Watermarking Imran Ali CSEP 590TU. What is software watermarking? Embed a secret into software which can be retrieved on demand Embed a secret.
Title of Selected Paper: IMPRES: Integrated Monitoring for Processor Reliability and Security Authors: Roshan G. Ragel and Sri Parameswaran Presented by:
1 Experience With Software Watermarking Author: Jens Palsberg et al. Presenter: Charles He “Embedding Watermarking in dynamic data structures … can be.
Model construction and verification for dynamic programming languages Radu Iosif
1 Diversifying Sensors to Improve Network Resilience Wenliang (Kevin) Du Electrical Engineering & Computer Science Syracuse University.
Secure Spread Spectrum Watermarking for Multimedia Young K Hwang.
Introduction Program File Authorization Security Theorem Active Code Authorization Authorization Logic Implementation considerations Conclusion.
Fingerprinting Text in Logical Markup Languages Christian D. Jensen G.I. Davida and Y. Frankel (Eds.): Proc. Information Security Conference 2001, Lecture.
SAFEWARE System Safety and Computers Chap18:Verification of Safety Author : Nancy G. Leveson University of Washington 1995 by Addison-Wesley Publishing.
Exploiting Instruction Streams To Prevent Intrusion Milena Milenkovic.
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
Formal Refinement of Obfuscated Codes Hamidreza Ebtehaj 1.
CS412/413 Introduction to Compilers Radu Rugina Lecture 18: Control Flow Graphs 29 Feb 02.
1 Control Flow Graphs. 2 Optimizations Code transformations to improve program –Mainly: improve execution time –Also: reduce program size Can be done.
Creating Security using Software and Hardware Bradley Herrup CS297- Security and Programming Languages.
Presentation subtitle: 20pt Arial Regular, green R223 | G255 | B102 Recommended maximum length: 2 lines Confidentiality/date line: 13pt Arial Regular,
Protecting Software Code By Guards Hoi Chang and Mikhail J. Atallah CERIAS, Purdue University and Arxan Technologies, Inc.
Experience with Software Watermarking Jens Palsberg, Sowmya Krishnaswamy, Minseok Kwon, Di Ma, Qiuyun Shao, Yi Zhang CERIAS and Department of Computer.
Enabling Control over Adaptive Program Transformation for Dynamically Evolving Mobile Software Validation Mike Jochen, Anteneh Anteneh, Lori Pollock University.
A Single Intermediate Language That Supports Multiple Implemtntation of Exceptions Delvin Defoe Washington University in Saint Louis Department of Computer.
1 Digital Water Marks. 2 History The Italians where the 1 st to use watermarks in the manufacture of paper in the 1270's. A watermark was used in banknote.
Shellcode COSC 480 Presentation Alison Buben.
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Self Healing and Dynamic Construction Framework:
CompSci 725 Presentation by Siu Cho Jun, William.
Many-core Software Development Platforms
Software Watermarking Deterring Software Piracy
Analysis models and design models
Obfuscation in .NET Atchyutuni Shilpa CS-795.
Optimization 薛智文 (textbook ch# 9) 薛智文 96 Spring.
Obfuscation Aparna Belhe CS-795.
Presentation transcript:

Protecting Software Code By Guards The George Washington University Cs297 YU-HAO HU

Motives Software cracking is a serious threat to many in the software industry. Attackers can insert an unconditional jump to overpass the serial number checker. How to protect important segment of code has became an issue.

The Guarding Framework: Types of guard Guard: a piece of code responsible for performing certain security-related actions during program execution. Checksum code: Checksum another piece of program code at runtime and verify its integrity Repair code: Restore a piece of damaged code to its original form before it is executed or used.

The Guarding Framework: Guard Graph

The Guarding Framework: Features Distributed-ness Multiplicity Dynamism Scalability

The Guarding Framework: System Guard template Binary manipulation Logical boundary between the data and executable code should be blurred. Obfuscate guard code

The Guarding Framework: Template Example

Conclusion Distributed protection Various protection schemes Configurable tamper-resistance

Reference Protecting Software Codes By Guards Hoi Chang, Mikhail J. Atallah Center for Education and Research in Information Assurance and Security & Arxan Technologies PC Assembly Language (NASM) Paul A. Carter

Software Watermarking: Models and Dynamic Embeddings The George Washington University CS297 YU-HAO HU

Types of Attacks to Watermarking System Subtractive attack: attackers can crop out watermarks. Distortive attack: attackers can twist watermarks. Additive attack: attackers can override watermarks.

Fingerprinting System Similar to watermarking system except it gives different secret messages to different receivers. Vulnerable to collusive attack. Attackers can locate the secret messages by comparing different copies of messages.

Types of Watermarks: Static Watermarks Data Watermark  Ex. string C = “Copyright…”. Code Watermark  Ex. Additional data stored in an object or wherever in the code. Easy to be destroyed by optimization techniques.

Types of Watermarks: Dynamic Watermarks Easter Eggs Dynamic Data Structure  Embedded within the state of a program and showed with a particular input. Dynamic Execution Trace  It is extracted by monitoring a special sequence of operations

Dynamic Graph Watermarking: Central Ideas Use the topology of a graph to represent watermark. Graph is dynamically built in the heap. Examine the runtime object heap with the special input sequence.

Dynamic Graph Watermarking: Embedding Watermarks Pick number P & Q, n = P * Q Represent n as a graph Program W could build graph.

Dynamic Graph Watermarking : Embedding Watermarks Embed W into original program Add temper-proofing Obfuscation

Dynamic Graph Watermarking : Embedding Watermarks Remove recognizer to be product version

Dynamic Graph Watermarking: Verifying Watermarks Links recognizer with the product Gives special input set I and gets the number n Factoring n to get P and Q

Obfuscation Techniques: Loop i = 1; while ( i< 100){ … i += 1; … }

Obfuscation Techniques: Loop i = 1, j = 100; while ( (i< 100)&&((i+j)!=-1)){ … i += 1; j = (j*100)%50; … }

Obfuscation Techniques: Class Inheritance Class One Class A Class Z

Obfuscation Techniques: Class Inheritance Class One Class A Class Z Class AA Interface A

Dynamic Graph Watermarking: Conclusion Resistant to optimization, obfuscation transformation because they don’t affect heap allocation. Using reflection to prevent renaming or reordering graph nodes Constantly checking graph to ensure the graph is not cropped out.

References Software Watermarking: Models and Dynamic Embeddings Christian Collberg, Clark Thomborson Software Watermarking: Models and Dynamic Embeddings Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs Christian Collberg, Clark Thomborson, Douglas Low Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs Breaking Abstractions and Unstructuring Data Structures Christian Collberg, Clark Thomborson, Douglas Low Breaking Abstractions and Unstructuring Data Structures