ACM Home Page
Please provide us with feedback. Feedback
Towards integral binary execution: implementing oblivious hashing using overlapped instruction encodings
Full text PdfPdf (483 KB)
Source
International Multimedia Conference archive
Proceedings of the 9th workshop on Multimedia & security table of contents
Dallas, Texas, USA
SESSION: Hashing table of contents
Pages: 129 - 140  
Year of Publication: 2007
ISBN:978-1-59593-857-2
Authors
Matthias Jacob  Princeton University, Princeton, NJ
Mariusz H. Jakubowski  Microsoft Research, Redmond, WA
Ramarathnam Venkatesan  Microsoft Research, Redmond, WA
Sponsors
ACM: Association for Computing Machinery
SIGMULTIMEDIA: ACM Special Interest Group on Multimedia
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 58,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1288869.1288887
What is a DOI?

ABSTRACT

Executing binaries without interference by an outside adversary has been an ongoing duel between protection methods and attacks. Recently, an efficient kernel-patch attack has been presented against commonly used self-checking code techniques that use checksumming ahead of execution. While methods based on self-modifying code can defend against this attack, such techniques depend on low-level architectural details and may not be practical in the long run. An alternative defense is to use oblivious hashing (OH). Instead of checking code integrity prior to execution, OH can verify untampered runtime behavior continuously. However, earlier OH approaches have some weaknesses, particularly with binary code: Physical instruction bytes cannot be easily checked during execution, and an attacker may be able to detect and remove OH checks, since OH alone does not provide tamper-resistance or obfuscation.

In our approach, we deliberately overlap a program's basic blocks so that they share instruction bytes. This increases tamper-resistance implicitly because malicious modifications affect multiple instructions simultaneously. Also, our scheme facilitates explicit anti-tampering checks via injection of OH instructions overlapped with target code, enabling OH that can verify integrity of both runtime state and executing instructions. Thus, our method addresses anti-checksum attacks without resorting to self-modifying code, and also extends OH to verify physical code, not only program state. In addition, overlapping facilitates resistance against disassembly and decompilation. Our approach works on processor architectures and byte-codes that support variable-length instructions. To our knowledge, this is the first technique that blends tamper-resistance into architecture and therefore significantly improves robustness of binaries.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Cloakware. http://www.cloakware.com.
 
2
Dotfuscator. http://www.preemptive.com/products/dotfuscator.
 
3
Safedisc. http://www.macrovision.com/products/safedisc.
 
4
SpecCPU benchmark. http://www.spec.org.
 
5
Trusted Computing Platform Alliance. http://www.trustedpc.org.
6
7
 
8
 
9
 
10
 
11
D. Boneh and R. Lipton. On the importance of checking cryptographic protocols for faults. In Eurocrypt 1997.
 
12
M. Cary, M. Jakubowski, and R. Venkatesan. Iterated obfuscation for white-boxing AES-like cipers (unpublished).
 
13
 
14
 
15
S. Chow, P. Eisen, H. Johnson, and P. van Oorschot. A white-box DES implementation for DRM applications. In ACM DRM 2002.
 
16
 
17
18
19
 
20
N. Dedic, M. H. Jakubowski, and R. Venkatesan. A graph game model for software tamper protection. In Information Hiding, 2007.
 
21
 
22
23
 
24
W. H. Gates. Personal communication.
 
25
 
26
 
27
G. Hunt, J. Larus, D. Tarditi, and T. Wobber. Broad new OS research. In HotOS 2005.
 
28
M. Jacob, D. Boneh, and E. Felten. Attacking an obfuscated cipher by injecting faults. In ACM DRM 2002.
 
29
M. H. Jakubowski and R. Venkatesan. Protecting digital goods using oblivious checking, US Patent No. 7,080,257, filed on Aug. 30, 2000, granted on July 18, 2006.
 
30
P. Kocher. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems. In Crypto 1996.
 
31
 
32
J. C. Lagarias, E. Rains, and R. J. Vanderbei. The Kruskal Count. http://xxx.lanl.gov/math.PR/0110143.
33
34
 
35
C.-L. Lin, H.-Y. Chen, and T.-W. Hou. Tamper-proofing of Java programs by oblivious hashing. In CTHCP 2005: 11th Workshop on Compiler Techniques for High-Performance Computing.
 
36
B. Lynn, M. Prabhakaran, and A. Sahai. Positive results and techniques for obfuscation. In Eurocrypt 2004.
37
 
38
D. A. Osvik, A. Shamir, and E. Tromer. Cache attacks and countermeasures: The case of AES. In CT-RSA 2006.
39
 
40
 
41
 
42
A. Srivastava, A. Edwards, and H. Vo. Vulcan - binary transformation in a distributed environment. Technical Report MSR-TR-2001-50, MSR, 2001.
43
 
44
 
45
46
 
47
48

Collaborative Colleagues:
Matthias Jacob: colleagues
Mariusz H. Jakubowski: colleagues
Ramarathnam Venkatesan: colleagues