Hardware Assisted Control Flow Hardware Assisted Control Flow Obfuscation Obfuscation for Embedded Processors for Embedded Processors Xiaotong Zhuang Xiaotong Zhuang Tao Zhang Tao Zhang Hsien-Hsin (Sean) Lee Hsien-Hsin (Sean) Lee Santosh Pande Santosh Pande Georgia Institute of Technology Georgia Institute of Technology Atlanta, GA 30332 Atlanta, GA 30332
40
Embed
Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaotong Zhuang Tao Zhang Hsien-Hsin (Sean) Lee Santosh Pande Georgia Institute of Technology.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Hardware Assisted Control Flow Obfuscation Hardware Assisted Control Flow Obfuscation
for Embedded Processorsfor Embedded Processors
Xiaotong Zhuang Xiaotong Zhuang Tao Zhang Tao Zhang
Hsien-Hsin (Sean) LeeHsien-Hsin (Sean) Lee Santosh PandeSantosh Pande
Georgia Institute of TechnologyGeorgia Institute of TechnologyAtlanta, GA 30332Atlanta, GA 30332
2
Types of Security AttacksTypes of Security Attacks
Software-based attacks
Software reverse engineering, de-assembly
Software patching
Hardware-based physical attacks
Trace system from system bus, peripheral bus
Power/timing differential analysis
Build fake devices, device spoof (MOD chip)
Modify RAM
Replay bus signals, fake bus signal injection
Trigger fake interrupts
• XBOX with MOD-chip installed. MOD-chip is a low cost bus snoop and spoof device widely used to break XBOX security.
3
Deficiency in Encryption/AuthenticationDeficiency in Encryption/Authentication
A common approach to protect data from being pirated.
The security strength is provable.
Cannot protect “addresses”
Program control flow is unprotected can be leaked. We will show examples later.
4
AgendaAgenda
Secure processor model
Control flow leaking
Hardware obfuscator
Performance Analysis
Conclusion
5
Unsecure Processor ModelUnsecure Processor Model
Processor Chip Memory
6
Secure Processor ModelSecure Processor Model
Processor Chip Memory
Insecure
Secure
Boundary
7
Control Flow Leakage Control Flow Leakage Example 1 Example 1
B1
B2
B3
Control Flow Graph Address Sequence
Assume all code are encrypted
8
Control Flow Leakage Control Flow Leakage Example 1 Example 1
B1
B2
B3
Control Flow Graph Address Sequence
Addr(B1)
9
Control Flow Leakage Control Flow Leakage Example 1 Example 1
B1
B2
B3
Control Flow Graph Address Sequence
Addr(B1), Addr(B2)
10
Control Flow Leakage Control Flow Leakage Example 1 Example 1
B1
B2
B3
Control Flow Graph Address Sequence
Addr(B1), Addr(B2), Addr(B3)
11
Control Flow Leakage Control Flow Leakage Example 1 Example 1
B1
B2
B3
Control Flow Graph Address Sequence
Addr(B1), Addr(B2), Addr(B3)
Addr(B1)
12
Control Flow Leakage Control Flow Leakage Example 1 Example 1
B1
B2
B3
Control Flow Graph Address Sequence
Addr(B1), Addr(B2), Addr(B3)
Addr(B1), Addr(B2)
13
Control Flow Leakage Control Flow Leakage Example 1 Example 1
B1
B2
B3
Control Flow Graph Address Sequence
Addr(B1), Addr(B2), Addr(B3)
Addr(B1), Addr(B2), Addr(B3)….
repeated addresses loop
14
Control Flow Leakage Control Flow Leakage Example 2 Example 2
B1
B2
B4
Control Flow Graph Address Sequence
B3
Addr(B1)
15
Control Flow Leakage Control Flow Leakage Example 2 Example 2
B1
B2
B4
Control Flow Graph Address Sequence
Addr(B1), Addr(B2)
B3
16
Control Flow Leakage Control Flow Leakage Example 2 Example 2
B1
B2
B4
Control Flow Graph Address Sequence
Addr(B1), Addr(B2), Addr(B4)
B3
17
Control Flow Leakage Control Flow Leakage Example 2 Example 2
B1
B2
B4
Control Flow Graph Address Sequence
Addr(B1), Addr(B2), Addr(B4)
B3
Addr(B1)
18
Control Flow Leakage Control Flow Leakage Example 2 Example 2
B1
B2
B4
Control Flow Graph Address Sequence
Addr(B1), Addr(B2), Addr(B4)
Addr(B1), Addr(B3)
B3
19
Control Flow Leakage Control Flow Leakage Example 2 Example 2
B1
B2
B4
Control Flow Graph Address Sequence
Addr(B1), Addr(B2), Addr(B4)
Addr(B1), Addr(B3), Addr(B4)….
B3
either B2 or B3 follows B1 conditional branch
20
Critical Data Leakage via Critical Data Leakage via Value-Dependent Conditional BranchesValue-Dependent Conditional Branches
Hacker’s interest : to find X (the secret key)
Only 2 possibilities: key X or X
Let S0 = 1For i = 0 to w-1 Do If (bit i of k) is 1 then Let Ti = (Si*C) mod N Else Let Ti = Si
Obfuscation techniques like “inlining and outlining transformation”, “loop transformation”, “control flow flattening” can somehow conceal the control flow.
Lack of ways to measure and prove the difficulty introduced. The level of protection cannot be evaluated and guaranteed quantitatively after the obfuscation.
May incur large overheads in code size due to dead code or irrelevant code.