First year review WP2 overview Trento - September 24th, 2007 1 - - PowerPoint PPT Presentation

first year review wp2 overview
SMART_READER_LITE
LIVE PREVIEW

First year review WP2 overview Trento - September 24th, 2007 1 - - PowerPoint PPT Presentation

First year review WP2 overview Trento - September 24th, 2007 1 Goal To investigate software-only methodologies to implement the remote entrusting principle 2 Partners POLITO (WP leader) Team: Team: Team: - - - Mario


slide-1
SLIDE 1

First year review WP2 overview

Trento - September 24th, 2007

1

slide-2
SLIDE 2

Goal

  • To investigate software-only methodologies

to implement the remote entrusting principle

2

slide-3
SLIDE 3

Partners

  • POLITO (WP leader)
  • Team:
  • Mario BALDI
  • Stefano DI CARLO
  • Paolo FALCARIN
  • Antonio DURANTE
  • Alberto SCIONTI
  • Davide D’APRILE
  • Team:

Team:

  • Mario BALDI

Mario BALDI

  • Stefano DI CARLO

Stefano DI CARLO

  • Paolo FALCARIN

Paolo FALCARIN

  • Antonio DURANTE

Antonio DURANTE

  • Alberto SCIONTI

Alberto SCIONTI

  • Davide D

Davide D’ ’APRILE APRILE

3

slide-4
SLIDE 4

Partners

  • POLITO (WP leader)
  • UNITN
  • Team:
  • Paolo TONELLA
  • Mariano CECCATO
  • Jasvir NAGRA
  • Milla DALLA PREDA
  • Amitabh SAXENA
  • Team:

Team:

  • Paolo TONELLA

Paolo TONELLA

  • Mariano CECCATO

Mariano CECCATO

  • Jasvir NAGRA

Jasvir NAGRA

  • Milla DALLA PREDA

Milla DALLA PREDA

  • Amitabh SAXENA

Amitabh SAXENA

4

slide-5
SLIDE 5

Partners

  • POLITO (WP leader)
  • UNITN
  • KUL
  • Team:
  • Bart PRENEEL
  • Brecht WYSEUR
  • Jan CAPPAERT
  • Thomas HERLEA
  • Team:

Team:

  • Bart PRENEEL

Bart PRENEEL

  • Brecht WYSEUR

Brecht WYSEUR

  • Jan CAPPAERT

Jan CAPPAERT

  • Thomas HERLEA

Thomas HERLEA

5

slide-6
SLIDE 6

Partners

  • POLITO (WP leader)
  • UNITN
  • KUL
  • SPIIRAS
  • Team:
  • Igor KOTENKO
  • Vasily DESNITSKY
  • Victor VORONTSOV
  • Vitaly BOGDANOV
  • Team:

Team:

  • Igor KOTENKO

Igor KOTENKO

  • Vasily DESNITSKY

Vasily DESNITSKY

  • Victor VORONTSOV

Victor VORONTSOV

  • Vitaly BOGDANOV

Vitaly BOGDANOV

6

slide-7
SLIDE 7

Partners

  • POLITO (WP leader)
  • UNITN
  • KUL
  • SPIIRAS
  • GEM
  • Team:
  • Pierre GIRARDStéphane SOCIE
  • Team:

Team:

  • Pierre GIRARDSt

Pierre GIRARDSté éphane SOCIE phane SOCIE

7

slide-8
SLIDE 8

Tasks

M0 M3 M6 M9 M12 M15 M18 M21 M24 M27 M30 M33 M36

T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5

D2.1 D2.2

T2.6 T2.6

8

slide-9
SLIDE 9

Tasks

M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ... M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ...

T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5 T2.1 T2.1

9

T2.1 T2.1

slide-10
SLIDE 10

Trust model

  • Definition of the trust model for software
  • nly remote entrusting
  • The output of this task is the deliverable

D2.1:

  • Trust model and assumption for software

based TR methods

T2.1 T2.1

10

slide-11
SLIDE 11

Trust model

Untrusted platform (U)

HW HW OS OS P P M M

Trusted platform (T)

TAG seq. TAG seq. TAG seq. TAG seq.

TAG TAG Validation Validation Monitor Monitor factory factory

M

  • n

i t

  • r

r e p l a c e m e n t M

  • n

i t

  • r

r e p l a c e m e n t Monitor replacement Monitor replacement

T2.1 T2.1

11

slide-12
SLIDE 12

Tasks

M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ... M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ...

T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5

12

T2.2 T2.2

slide-13
SLIDE 13

Secure interlocking and authenticity checking

  • Definition of software techniques to:
  • Securely combine the program P and the

monitor M

  • Protect the authenticity of code and data
  • f P

T2.2 T2.2

13

slide-14
SLIDE 14

T2.2 Secure interlocking and authenticity checking

Invariants Monitoring (POLITO)

  • A program invariant is a property that is

true at a particular program execution point

  • Invariant monitoring aims at detecting

attacks to the state of a program P by continuously checking dynamically inferred invariants

T2.2 T2.2

14

slide-15
SLIDE 15

T2.2 Secure interlocking and authenticity checking

Invariants Monitoring (POLITO)

  • Invariants monitoring workflow
  • Invariants definition (available tools:

DAIKON by Michael D. Ernst)

  • Selection of the set I’ of relevant

invariants to protect a subset S’ of the state of P

  • How to select S’ and I’ still an open challenge?

T2.2 T2.2

15

slide-16
SLIDE 16

T2.2 Secure interlocking and authenticity checking

Invariants Monitoring (POLITO)

  • Definition of a monitor M able to

periodically send information about S’ to T

  • T verifies if the selected list of invariants I’ is always respected
  • Any violation is detected as an attack
  • Invariants monitoring is not 100% secure
  • A prototype C++ application performing

strings elaboration is available

T2.2 T2.2

16

slide-17
SLIDE 17

T2.2 Secure interlocking and authenticity checking

Barrier slicing (UNITN)

  • Aims at protecting the state of P by moving

part of its code from U to T

  • It presents an alternative architecture w.r.t.

the presented trust model

  • Trade-off between security and

performance

T2.2 T2.2

17

slide-18
SLIDE 18

T2.2 Secure interlocking and authenticity checking

Barrier slicing (UNITN)

  • A set S of variables to

protect is removed U

  • Program slicing: the

(executable) slice of P responsible of the variables in S is moved to T

1 time2 = System.currentTimeMillis(); 2 double delta = speed * (time2 – time); 3 x = x + delta * cos(direction); 4 y = y + delta * sin(direction); 5 Server.sendPosition(x,y); 6 if (track.isInBox(x, y)){ 7 gas = maxGas; 8 lastFuel = time2; 9 } 10 else { 11 gas = maxGas - (int) (time2-lastFuel); 12 if (gas < 0) { 13 gas = 0; 14 if (speed > maxSpeed /10) 15 speed = maxSpeed /10; 16 else if (speed < minSpeed/10) 17 speed = minSpeed/10; } } 18 time = time2; 1 time2 = System.currentTimeMillis(); 2 double delta = speed * (time2 – time); 3 x = x + delta * cos(direction); 4 y = y + delta * sin(direction); 5 Server.sendPosition(x,y); 6 if (track.isInBox(x, y)){ 7 gas = maxGas; 8 lastFuel = time2; 9 } 10 else { 11 gas = maxGas - (int) (time2-lastFuel); 12 if (gas < 0) { 13 gas = 0; 14 if (speed > maxSpeed /10) 15 speed = maxSpeed /10; 16 else if (speed < minSpeed/10) 17 speed = minSpeed/10; } } 18 time = time2;

18

T2.2 T2.2

slide-19
SLIDE 19

T2.2 Secure interlocking and authenticity checking

Barrier slicing (UNITN)

  • Untrusted platform (U)
  • Use of variables in S replaced by queries

and synchronization statements to T

  • Trusted platform (T)
  • A barrier slicing running for each

untrusted platform

  • Query and synchronization statements

managed for each untrusted platform

T2.2 T2.2

19

slide-20
SLIDE 20

T2.2 Secure interlocking and authenticity checking

Barrier slicing (UNITN)

  • Example: barrier slice implemented on a

simple car race game written in JAVA

  • A complete description of the approach

published

  • Mariano Ceccato, Mila Dalla Preda, Jasvir Nagra, Christian Collberg,

Paolo Tonella, Barrier Slicing for Remote Software Trusting, 7th IEEE International Working Conference on Source Code Analysis and Manipulation

  • Jasvir Nagra, Mariano Ceccato and Paolo Tonella, “Distributing Trust

Verification to Increase Application Performance”, in PDP2008, February 13-15, 2008, Toulose, France

T2.2 T2.2

20

slide-21
SLIDE 21

T2.2 Secure interlocking and authenticity checking

White-Box Remote Procedure Call - WBRPC (UNITN, KUL)

  • The name RPC implies the ability of a

trusted platform T to execute an arbitrary program P on an untrusted platform U

  • In collaboration with Prof. Amir

HERZBERG

  • The key idea is the use of an Obfuscated

Virtual Machine (OVM)

T2.2 T2.2

21

slide-22
SLIDE 22

T2.2 Secure interlocking and authenticity checking

White-Box Remote Procedure Call - WBRPC (UNITN, KUL)

  • WBRPC workflow
  • P is encrypted by T to get E(P)
  • E(P) and the inputs a are sent to U for

execution under OVM

T2.2 T2.2

22

slide-23
SLIDE 23

T2.2 Secure interlocking and authenticity checking

White-Box Remote Procedure Call - WBRPC (UNITN, KUL)

  • OVM performs the following tasks:
  • Computes P = D ( E(P) )
  • Computes y = P(a)
  • Computes z = E(y)
  • Sends z to T
  • T has the decryption key and computes

y = P(a) = D(z)

T2.2 T2.2

23

slide-24
SLIDE 24

T2.2 Secure interlocking and authenticity checking

White-Box Remote Procedure Call - WBRPC (UNITN, KUL)

  • Under reasonable definition of obfuscator,

we can show that OVM provides confidentiality of programs and integrity of execution of program

T2.2 T2.2

24

slide-25
SLIDE 25

Tasks

M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ... M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ...

T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5

25

T2.3 T2.3

slide-26
SLIDE 26

Dynamic replacement for increased tamper resistance

  • Investigation of innovative methods

exploiting the “time dimension” to increase

  • verall tamper resistance of M
  • The research activities of this task

contribute to the deliverable D2.2:

  • Methods to dynamically replace the

secure software module and to securely interlock applications with secure software modules

T2.3 T2.3

26

slide-27
SLIDE 27

Dynamic replacement for increased tamper resistance

  • Current (software-based) techniques co-

bundle monitoring code with application code:

  • Position and behavior are hidden
  • Threat (well-financed skilled attacker)
  • The user has full access on U and can

exploit any type of reverse engineering facilities to break the monitoring code

T2.3 T2.3

27

slide-28
SLIDE 28

Dynamic replacement for increased tamper resistance

  • Continuos replacement of M
  • Selected software component and parameters
  • f M are continuously replaced to make

reverse engineering costs too high

  • Dynamic replacement requires:
  • A mobility infrastructure
  • A binding support

T2.3 T2.3

28

slide-29
SLIDE 29

T2.3 Dynamic replacement for increased tamper resistance

Profiling Interfaces

(POLITO)

  • MONO
  • C# on Linux
  • Interlocking and mobility from scratch
  • JVMTI (profiling interface of JVM) JAVA on

both Windows and Linux

  • Similar to MONO
  • Portable on any operating system
  • Chat client prototype available

T2.3 T2.3

29

slide-30
SLIDE 30

T2.3 Dynamic replacement for increased tamper resistance

Aspect Oriented Programming

(POLITO)

  • Prose (dynamic AOP tool)
  • JAVA based
  • Built-in mobility
  • Coarse-grain granularity for checking
  • Chat client prototype available

T2.3 T2.3

30

slide-31
SLIDE 31

T2.3 Dynamic replacement for increased tamper resistance

Mutant C/C++ (POLITO)

  • Uses self-modifying (mutant) code to

implement the mobility infrastructure and the binding support

  • Native C/C++ code
  • High complexity (no built-in support

for mobility)

  • Successfully applied on a small VNC

client but a complete working prototype is still under construction

T2.3 T2.3

31

slide-32
SLIDE 32

Tasks

M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ... M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ...

T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5

32

T2.4 T2.4

slide-33
SLIDE 33

Increased reverse engineering complexity for software protection

  • This task addresses the challenging problem
  • f pure software methods to protect the

monitor M from tampering

  • The module behavior must be hidden to

avoid trivial reverse engineering

  • Secret data inside the module (e.g.,

encryption keys) must be hidden in order to be not easily spotted

T2.4 T2.4

33

slide-34
SLIDE 34

T2.4 Increased reverse engineering complexity for software protection

Obfuscation of Java byte code

(GEM)

  • Use case definition in GEM context
  • Protect the secure link between an agent

and a server

  • Avoid software modification
  • IP protection
  • Security of embedded software in PC

based simulator

T2.4 T2.4

34

slide-35
SLIDE 35

T2.4 Increased reverse engineering complexity for software protection

Obfuscation of Java byte code

(GEM)

  • Classification of obfuscation

transformation

  • Layout obfuscation
  • Remove debug information
  • Change identifier names
  • Data obfuscation
  • Change the way data is stored or encoded in the program

T2.4 T2.4

35

slide-36
SLIDE 36

T2.4 Increased reverse engineering complexity for software protection

Obfuscation of Java byte code

(GEM)

  • Control flow obfuscation
  • Change the way the program runs
  • Preventive obfuscation
  • Try to find weakness in current de-obfuscation / decompilers to make

them crash

T2.4 T2.4

36

slide-37
SLIDE 37

T2.4 Increased reverse engineering complexity for software protection

Obfuscation of Java byte code

(GEM)

T1 T1

FRAMEWORK FRAMEWORK

Applies transformations Applies transformations

Initial set Initial set

  • f classes
  • f classes

Obfuscated set Obfuscated set

  • f classes
  • f classes

Obfuscation Obfuscation project file project file

T2 T2 ... ... Tn Tn

T2.4 T2.4

37

slide-38
SLIDE 38

T2.4 Increased reverse engineering complexity for software protection

Crypto guards (KUL)

  • A tamper resistance technique, in

which code in an executable is encrypted

  • Guards are interleaved with the original

application code

  • They create web of code dependencies
  • Decryption of code depends on other

code

T2.4 T2.4

38

slide-39
SLIDE 39

T2.4 Increased reverse engineering complexity for software protection

Crypto guards (KUL)

  • During the execution of a program

crypto guards make sure that:

  • The correct block of code is decrypted

end executed

  • The block of code is encrypted back after

the execution

T2.4 T2.4

39

slide-40
SLIDE 40

T2.4 Increased reverse engineering complexity for software protection

C CFG flattening with TxL(KUL)

  • Control Flow Graph (CFG) flattening

aims at breaking down the structure of a program

  • The execution order of basic blocks is

unknown (statically)

  • Dynamic analysis reveals order (if good

coverage)

T2.4 T2.4

40

slide-41
SLIDE 41

T2.4 Increased reverse engineering complexity for software protection

C CFG flattening with TxL(KUL)

  • TxL: Turing eXtender Language
  • Suitable for source-to-source

transformations

  • Transforms parse tree (different CFG)
  • Control statements are removed form

the program and transformed into a single switch-case statement

T2.4 T2.4

41

slide-42
SLIDE 42

T2.4 Increased reverse engineering complexity for software protection

Snippets (KUL)

  • Sequences of assembly inserted in

assembly code after compilation (before linking):

  • They affect addresses and thus thwart
  • ffset-based cracks
  • They can break or duplicate patterns

making pattern based cracks fail

T2.4 T2.4

42

slide-43
SLIDE 43

T2.4 Increased reverse engineering complexity for software protection

Snippets (KUL)

  • Our inserted snippets mostly consist
  • f redundant code
  • Code that gets executed but does not

affect the overall program behavior

  • It is not trivial for compaction tools to

remove all snippets completely

T2.4 T2.4

43

slide-44
SLIDE 44

T2.4 Increased reverse engineering complexity for software protection

White-Box Cryptography(KUL)

  • “Hide secret keys in software

implementations of cryptographic algorithms (e.g., AES)”

  • Study of existing techniques
  • Research towards the construction of

secure basic blocks and secure implementations

  • Development of a Theoretical Model

T2.4 T2.4

44

slide-45
SLIDE 45

T2.4 Increased reverse engineering complexity for software protection

White-Box Cryptography(KUL)

  • Publication of cryptanalysis of White-

Box DES Implementations

  • Brecht Wyseur, and Wil Michiels, and

Paul Gorissen, and Bart Preneel, "Cryptanalysis of White-Box DES Implementations with Arbitrary External Encodings", in Selected Areas of Cryptography, SAC 2007, August 16-17, Ottawa, Canada

T2.4 T2.4

45

slide-46
SLIDE 46

T2.4 Increased reverse engineering complexity for software protection

Implementation (KUL)

  • A real obfuscator
  • C source code to obfuscated C binary
  • Implemented techniques:
  • TXL transformations library (control flow graph flattening)
  • White-Box DES library
  • Future extensions:
  • Crypto guards (source -> binary)
  • Snippets (binary -> binary)

T2.4 T2.4

46

slide-47
SLIDE 47

Tasks

M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ... M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 ...

T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5

47

T2.5 T2.5

slide-48
SLIDE 48

Design of entrusting protocol

  • This task will cover the

cryptographic and synchronization concerns of the communication protocol employed between the monitor and the trusted platform

T2.5 T2.5

48

slide-49
SLIDE 49

Design of entrusting protocol (SPIIRAS)

  • Analysis of data flows to be

involved in remote entrusting mechanisms

  • Analysis of structure of transmitted

data, quantitative and time intensity assessments of data

  • Development of target protocol

security requirements

49

T2.5 T2.5

slide-50
SLIDE 50

Design of entrusting protocol (SPIIRAS)

  • Analysis of existent network and

cryptographic protocols

  • Definition of network protocol

facilities to fulfill the target protocol security requirements

  • Analysis of formal methods for

design of entrusting protocol

50

T2.5 T2.5

slide-51
SLIDE 51

Future activities

  • Assessment of the proposed software

techniques (T2.2, T2.3 and T2.4) and investigation of alternative architectures

  • Definition and implementation of a Monitor

Factory (T2.3)

  • Focus on the trust protocol design (T2.5)
  • Early specification of the proof of concept

for software only remote entrusting (T2.6)

51