Secure Programming for Fun and Profit
Secure Programming for Fun and Profit. (Real World Experiences in Secure Programming). Scott D. Miller. Security Analyst Arxan Research, Inc. Doctoral Student in CS Advisors: Aditya Mathur; Ray DeCarlo. Build a Better Mousetrap…. For most, it’s a game. Much ego involved
Secure Programming for Fun and Profit
E N D
Presentation Transcript
Secure Programming for Fun and Profit (Real World Experiences in Secure Programming) Scott D. Miller Security Analyst Arxan Research, Inc. Doctoral Student in CS Advisors: Aditya Mathur; Ray DeCarlo Survey of interesting secure programming examples
Build a Better Mousetrap… • For most, it’s a game. • Much ego involved • Secure programming boils down to • Enforcing access policy • E.g. code execution rights • Anti-tamper/tamper detection • Protection of intellectual property Survey of interesting secure programming examples
Attacker Objectives • Network-based attacks • Unauthorized code execution • Key reconstruction • Malicious users • Circumventing digital rights management • “Cracking” (Red-team) and unauthorized distribution • Well-funded nation and corporate adversaries • Tampering and unadvertised functionality • Recovery of sensitive IP Survey of interesting secure programming examples
Attack Method • Analysis of Software Code • Statistical properties • Disassembling • Analysis of Running Software • Timing/Power Analysis • Debugging and Emulating • Injection/Modification of Code • Patching, loading libraries, etc. • Stimulation with malicious data • Buffer overflows, unexpected values Survey of interesting secure programming examples
Some Interesting Scenarios Secure Programming Examples in Industry Survey of interesting secure programming examples
Code Injection • Unexpected injection mechanisms • Through “social engineering” (old BBS days.) • Through the context menu! • When prevention fails, use detection • Statistical profiling of system calls can be effective [For97, Hof98, Mic02, Mar00]. • (U.S. Air Force proposal.) Survey of interesting secure programming examples
Vulnerability Broadcasting • Consider a security patch to Apache, IE, etc. • Diff the patched vs. un-patched version. • How many people put off downloading security updates? • Obfuscation and execution path randomization can hide the patch from static and dynamic analysis (funded in part by U.S. Air Force.) Survey of interesting secure programming examples
Interesting Obfuscation • Eventually, they will get the code [And96]. • Remember the U.S. fighter jet’s emergency landing in China? • Obfuscating to match statistical code properties. • Through numerical transforms • Data splitting (funded in part by U.S. Army.) Survey of interesting secure programming examples
Tsad iojhljk l;jlkj Lkjl;kj ;lkj l;kj;lkj;lk ;ljk;lkj;ljk;l ;lkj;lkj;l ;lkj;ljkghjha Asdfawdw Asdfsa Sa Sadfsfadsda asdfasdfasdf sdafasdfasdf sweer sadfasdf wqerwqw qwer Qwerqwe Qwer l;kj;lkj;lk ;ljk;lkj;ljk;l ;lkj;lkj;l ;lkj;ljkghjha Asdfawdw Asdfsa sweer wqerwqw qwer l;kj;lkj;lk ;ljk;lkj;ljk;l ;lkj;lkj;l ;lkj;ljkghjha Asdfawdw Asdfsa sweer wqerwqw qwer l;kj;lkj;lk ;ljk;lkj;ljk;l ;lkj;lkj;l ;lkj;ljkghjha Asdfawdw Asdfsa sweer wqerwqw qwer Tsad iojhljk l;jlkj Lkjl;kj ;lkj l;kj;lkj;lk ;ljk;lkj;ljk;l ;lkj;lkj;l ;lkj;ljkghjha Asdfawdw sdafasdfasdf sweer sadfasdf Qwerqwe l;kj;lkj;lk ;ljk;lkj;ljk;l ;lkj;lkj;l ;lkj;ljkghjha Asdfawdw Asdfsa sweer wqerwqw qwer Our Approach Non-sensitive Program Sensitive Program Program with Sensitive Content Survey of interesting secure programming examples
Non-performance degrading AT • For real-time systems (e.g. OSD Anti tamper requirements on all new weapons systems.) • Security “co-processors” in FPGA (funded in part by Missile Defense Agency.) Survey of interesting secure programming examples
Anti-tamper Components Peripherals Our Approach Anti-tamper Components Sensitive Software RAM FPGA CPU Survey of interesting secure programming examples
FPGA-Aided Encryption Protection Protected Program CPU Encrypted Decryption Start Trigger Decrypted Unprotected FPGA FPGA Encryption Start Trigger Survey of interesting secure programming examples
Summary • There is no shortage of work for Secure Programming • Commercial, too (e.g. Microsoft, Boeing, Lockheed Martin, etc.) • The threats are ever-evolving • Never do the same thing twice! Survey of interesting secure programming examples
? Questions? Survey of interesting secure programming examples
References [And96] Anderson, R., and M. Kuhn. “Tamper Resistance – A Cautionary Note.” Proc. of Second Usenix Workshop on Electronic Commerce, Oakland, CA, Nov. 1996: 1-11. [For97] Stephanie Forrest, Steven A. Hofmeyr, and Anil Somayaji. Computer Immunology, Communications of the ACM, Vol. 40, No. 10, 1997, pp. 88--96. [Hof98] Steven A. Hofmeyr, Anil Somayaji, and Stephanie Forrest. Intrusion detection using sequences of system calls. Journal of Computer Security, Vol. 6, 1998, pages 151—180. [Mar00] Carla Marceau, Characterizing the behavior of a program using multiple-length N-grams, Proceedings of the 2000 workshop on New security paradigms, September 2000, Ballycotton, County Cork, Ireland, pages 101—110. [Mic02] Christoph C. Michael, Anup K. Ghosh: Simple, state-based approaches to program-based anomaly detection. ACM Trans. Inf. Syst. Secur. Vol. 5, no. 3, 2002, pages 203-237. Survey of interesting secure programming examples