+ All Categories
Home > Documents > Code-level Cyber-Security: MATE, attack &...

Code-level Cyber-Security: MATE, attack &...

Date post: 15-Jul-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
75
| 1 Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack Code-level Cyber-Security: MATE, attack & defense Sébastien Bardin (CEA LIST) Richard Bonichon (CEA LIST) (heavily inspired from C. Collberg and B. de Sutter)
Transcript
Page 1: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 1Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Code-level Cyber-Security:

MATE, attack & defense

Sébastien Bardin (CEA LIST)

Richard Bonichon (CEA LIST)

(heavily inspired from C. Collberg and B. de Sutter)

Page 2: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 2Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Context: MATE attacks

• Basic attacks

• Basic defense

• Better attacks & better defense

• Step back: what matters?

• Tool: Tigress

• Conclusion

Page 3: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 3Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Context: MATE attacks

• Scenario

• Examples

• Ideas for defense

• What matters

Page 4: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 4Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

CLASSIFICATION OF ATTACKS (1)

MITM: Man-In-The-Middle

Attacker is on the network

• Observe messages

• Forge messages

Realm of cryptos

Page 5: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 5Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

CLASSIFICATION OF ATTACKS (2)

« Man-Beyond-The-Door »

Attacker has limited access

• Try to escalate

• Forge specially crafted files/queries

Realm of program analysis

Page 6: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 6Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

CLASSIFICATION OF ATTACKS (3) *** topic of the day ***

MATE: Man-At-The-End

Attacker is on the computer

• R/W the code

• Execute step by step

• Patch on-the-fly

Realm of program analysis?

White-box crypto?

Page 7: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 7Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

MAN AT THE END

Page 8: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 8Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Examples

Page 9: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 9Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

WHAT FOR?

Page 10: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 10Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

FACT: SOFTWARE IS JUST DATA

• You can execute it

• But you may prefer to:

• Read it <reverse legacy code, or …………….. steal crypto keys>

• Modify it <patch a bug, or ………………………. bypass a security check>

Code & Data protection

(obfuscation)

Code & Data attack

(MATE)

Page 11: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 11Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

NOT SO HARD FOR EXPERTS

Page 12: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 12Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

HOW TO? Look at the code

Page 13: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 13Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

HOW TO? Trick (tamper) the code

Page 14: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 14Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

CODE TAMPERING

char[4] buff,secret;

buff = getInput();

secret = getPassword();

for (i=0 to 3) do

if(buff[i] != secret[i]) then

return false;

endif

endFor

return true;

Page 15: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 15Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

About the attacker

• Malicious user

• Malicious insider

• Malicious outsider, got in through exploit

• Malware

Page 16: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 16Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Question

Page 17: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 17Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

(Tools vs counter-tools)*

• Attacker

• Static: control-flow graph, disassembly, decompilation, tainting, slicing, etc.

• Dynamic: debuging, emulation

• Defender

• Obfuscation // vs static

• Anti-tampering // vs dynamic

• Attacker

• Better static / dynamic, hybrid, semantic

• Defender

• Better anti-better …

Raise the bar

Page 18: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 18Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

What matters?

Page 19: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 19Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Perfs? Depend on context

Page 20: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 20Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Perfs for math-proven obfuscation. Not yet …

Page 21: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 21Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Time to crack!

Context matters

How long for cracking?

• 5 min (VOD)

• 2 weeks (video game)

• 1 year

• No limit

How much overhead is affordable?

Page 22: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 22Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OBFUSCATION

Transform P into P’ such that

• P’ behaves like P

• P’ roughly as efficient as P

• P’ is very hard to understand

State of the art

• No usable math-proven solution

• Useful ad hoc solutions (strength?)

Page 23: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 23Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

DEOBFUSCATION

• Ideally, get P back from P’

• Or, get close enough

• Or, help understand P

Page 24: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 24Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

WHY WORKING ON DEOBFUSCATION? <in an ethical manner>

• Software protection

• Assess the power of current obfuscation schemes

• Special case: white-box crypto <hide keys>

• Malware analysis

• Comprehension: help to understand the malware <goal, functions, weaknesses>

• Detection: remove the protection layer

Page 25: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 25Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Example of obfuscation (1)

Page 26: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 26Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Example of obfuscation (2)

Page 27: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 27Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Example of obfuscation (3)

Page 28: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 28Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Example of obfuscation (4)

Page 29: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 29Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Example of obfuscation (5)

Page 30: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 30Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Example of tamper-proofing

Page 31: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 31Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Question

• Tamper-proof and obfuscation

• Link?

• Use both or not?

Page 32: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 32Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Context: MATE attacks

• Basic attacks

• Basic defense

• Better attacks & better defense

• Step back: what matters?

• Tool: Tigress

• Conclusion

Page 33: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 33Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Static vs dynamic

Page 34: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 34Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Static

Page 35: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 35Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Control-flow analysis

Page 36: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 36Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Control-flow analysis (2)

Page 37: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 37Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Disassembly

Hard task – basic methods:

• Linear sweep

• Recursive traversal

• + heuristics

Page 38: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 38Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Disassembly

Page 39: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 39Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Dynamic

Page 40: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 40Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Context: MATE attacks

• Basic attacks

• Basic defense

• Better attacks & better defense

• Step back: what matters?

• Tool: Tigress

• Conclusion

Page 41: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 41Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Basic defense

• Obfuscation

• Anti-tampering

Page 42: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 42Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

• Obfuscation

• Opaque expressions

• Opaque predicates

• Stack tampering

• Strange asm code

• CFG flattening

• Virtualization

• Anti-tampering

• Redundant check, hash functions

• Anti-debug, anti-emulation

OVERVIEW

Page 43: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 43Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: OPAQUE EXPRESSION

Page 44: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 44Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: OPAQUE EXPRESSION (2)

Page 45: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 45Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: OPAQUE EXPRESSION (3)

Page 46: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 46Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: OPAQUE EXPRESSION (4)

Page 47: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 47Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: Control-flow flattening

Page 48: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 48Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: OPAQUE PREDICATE

Constant-value predicates

(always true, always false)

• dead branch points to spurious code

• goal = waste reverser time & efforts

Page 49: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 49Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: STACK TAMPERING

Alter the standard compilation scheme:

ret do not go back to call

• hide the real target

• return site is spurious code

Page 50: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 50Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: VIRTUALIZATION

Turns code P into

• a proprietary bytecode program

• + a homemade VM (runtime)

• Easy to recover the VM structure

• But does not say anything about P

long secret(long x) {

……

return x;

}

Bytecodes - Custom ISA

Fetching

Decoding

Dispatcher

Operator 2

Terminator

Operator 3Operator 1

Page 51: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 51Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: arithmetic encoding

Page 52: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 52Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXAMPLE: dynamic obfuscation

• unpacking

• Self-modification

Page 53: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 53Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Context: MATE attacks

• Basic attacks

• Basic defense

• Better attacks & better defense

• Step back: what matters?

• Tool: Tigress

• Conclusion

Page 54: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 54Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

BETTER ATTACKS & DEFENSE

• Attacks (both static or dynamic)

• Combine static & dynamic!

• Tainting what is user-dependent! (remove all non user dependent protections)

• Slicing what affects the output (remove junk)

• Code simplification remove undully complex code (duplicate, etc.)

• Defense: attacks the attack (prog. analysis indecidable : always flaws)

• Diffuse dependecies (fake relations: memory, branches, etc.)

• Hide dependencies (through physical relationship)

Page 55: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 55Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

THE ARM RACE

• No protection static disassembly

• Dynamic protection dynamic analysis

• User/env-dependent dynamic protection semantic analysis

• …

Page 56: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 56Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Context: MATE attacks

• Basic attacks

• Basic defense

• Better attacks & better defense

• Step back: what matters?

• Tool: Tigress

• Conclusion

Page 57: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 57Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Properties of obfuscation? (theoretic)

Barak formalization of obfuscation

• P’ behaves like P

• P’ at most polynomial slowdown

• Blackbox obfuscation: cannot get more information

from P’ than through a BB access to P

• Impossible to get in general

• More recent : indistinguishability obfuscation

• Two equivalent programs P and P’

• Game = you got O(P) or O(P’). Try to guess which one it is

• IO: (polynomial) attacker cannot do better than 50% guess

• POSSIBLE !!!

• QUESTIONS• Is it the good notion?

• Current overhead huge in practice

Page 58: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 58Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Properties of obfuscation? (pragmatic)

Page 59: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 59Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Properties of obfuscation? (pragmatic) (2)

Page 60: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 60Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Properties of obfuscation? (pragmatic) (3)

Page 61: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 61Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Properties of obfuscation? (pragmatic) (3)

Page 62: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 62Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

Properties of obfuscation? (pragmatic) (3)

Page 63: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 63Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Context: MATE attacks

• Basic attacks

• Basic defense

• Better attacks & better defense

• Step back: what matters?

• Tool: Tigress

• Conclusion

Page 64: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 64Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

TIGRESS TOOL

Page 65: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 65Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

TEST PROGRAM

Page 66: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 66Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXO: Opaque expressions

Page 67: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 67Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXO: flattening

Page 68: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 68Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXO: flattening (2)

Page 69: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 69Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXO: virtualization

Page 70: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 70Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXO: virtualization (2)

Page 71: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 71Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXO: arithmetic encoding

Page 72: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 72Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

EXO: dynamic encoding

Page 73: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 73Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

OUTLINE

• Context: MATE attacks

• Basic attacks

• Basic defense

• Better attacks & better defense

• Step back: what matters?

• Tool: Tigress

• Conclusion

Page 74: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

| 74Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack

CONCLUSION

• Code protection is crucial

• IP protection, avoid bypassing security

• Can be argued to improve security as well (anti-hacking technique)

• Existing tools and techniques

• Yet still many open questions

• Proper formalization (goal of attacker, probabilistic setting?, stealth?)

• Distinguish between legit and illegit contexts?

• Strength, correctness

• Next: very powerful deobfuscation technique

Page 75: Code-level Cyber-Security: MATE, attack & defensesebastien.bardin.free.fr/cours-cyber-ensta-02.pdf · Sébastien Bardin -- ENSTA Course 2017-2018 -- MATE attack | 1 Code-level Cyber-Security:

Commissariat à l’énergie atomique et aux énergies alternatives

Institut List | CEA SACLAY NANO-INNOV | BAT. 861 – PC142

91191 Gif-sur-Yvette Cedex - FRANCE

www-list.cea.fr

Établissement public à caractère industriel et commercial | RCS Paris B 775 685 019


Recommended