150 likes | 306 Views
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
E N D
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