1 / 15

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

agatha
Télécharger la présentation

Secure Programming for Fun and Profit

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. Some Interesting Scenarios Secure Programming Examples in Industry Survey of interesting secure programming examples

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. Anti-tamper Components Peripherals Our Approach Anti-tamper Components Sensitive Software RAM FPGA CPU Survey of interesting secure programming examples

  12. FPGA-Aided Encryption Protection Protected Program CPU Encrypted Decryption Start Trigger Decrypted Unprotected FPGA FPGA Encryption Start Trigger Survey of interesting secure programming examples

  13. 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

  14. ? Questions? Survey of interesting secure programming examples

  15. 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

More Related