Trusting Virtual Trust

Trusting Virtual Trust

Trusting Virtual Trust Jeremy Powell, Trupti Shiralkar © 2009 atsec information security mandag 31. august 2009 Agenda . The Java Virtual Machine . Unmeasured Trust . Java's Assurance © 2009 atsec information security 2 mandag 31. august 2009 The Java Virtual Machine © 2009 atsec information security mandag 31. august 2009 A Few Quick Disambiguations . Overloaded terms . “Virtual Machine” could mean... • A system virtual machine - Xen - HyperV - VMWare • A process (application) virtual machine - Java - Common Language Runtime . We mean a “process virtual machine” © 2009 atsec information security 4 mandag 31. august 2009 A Few Quick Disambiguations . Overloaded terms . “Java” could mean... • ...a spoken language • ...an island • ...cofee • ...a programming language • ...an application platform • ...a virtual machine . We mean “the Java Virtual Machine” . ...usually © 2009 atsec information security 5 mandag 31. august 2009 Just what is the Java Virtual Machine? . Developed by Sun Microsystems . Interprets and runs bytecode . Virtualizes an abstract processor Java Compiler Source Code Java JVM Bytecode Native Instructions © 2009 atsec information security 6 mandag 31. august 2009 Bytecode . Looks very much like native assembly code 0: iconst_1 1: istore_1 2: iconst_1 3: istore_2 4: iload_2 5: bipush 100 7: if_icmpge 20 10: iload_1 11: iload_2 12: imul 13: istore_1 14: iinc 2, 1 17: goto 4 20: getstatic #2 23: iload_1 24: invokevirtual #3 27: return © 2009 atsec information security 7 mandag 31. august 2009 Typed Memory . C / C++ - Memory organized into words . Java - Memory organized into objects 0xdeadbeef 0x0cofee0 String: “Hello, World!” 0x5932a6ef Words V.S. BigInteger: Objects 0zffffe 35960259603520 45360242063240 14501403503629 70493759305039 45 Password: 0z08679305 ******** © 2009 atsec information security 8 mandag 31. august 2009 Popularity . Web application servers . Browser applets . User Applications . Smart card platforms . Cell phones . Embedded systems . Game consoles . Scientific computing © 2009 atsec information security 9 mandag 31. august 2009 What's the big deal? . Write Once, Run Anywhere . Automatic memory management . Already installed on most computers . Generous standard libraries . Heavily specified – reliable behavior . Free . Secure © 2009 atsec information security 10 mandag 31. august 2009 Unmeasured Trust © 2009 atsec information security mandag 31. august 2009 The Need for Measured Assurance . Measuring assurance answers... • What security does Java really provide? • How sound is its design? • How correct is its implementation? • How does one use Java securely? . Without measured assurance, we take unnecessary risk . The risk is growing. Fast. © 2009 atsec information security 12 mandag 31. august 2009 Revisiting Portability . Write Once, Run Anywhere . Less code written • Eliminates system and hardware nuances • Reduces analysis efort • Wide deployment of the same code . Wide deployment means single point of failure © 2009 atsec information security 13 mandag 31. august 2009 A Single Point of Failure Web Application Server Applet Application JVM x86 x86_64 sparc arm ppc © 2009 atsec information security 14 mandag 31. august 2009 Can't sleep? Count Java implementations! . CEE-J . Intent . Jelatine JVM . Excelsior . Novell . JESSICA . J9 . NSIcom CrE-ME . Jikes RVM . JBed . ChaiVM and . JNode . JamacaVM MicrochaiVM . JOP . Jblend . Hotspot . Juice . JRockit . AegisVM . Jupiter . Apple's MRJ . Apache Harmony . JX . MicroJvm . CACAO . Kafe . MS JVM . Dalvik . leJOS . Blackdown Java . IcedTea . Maxine . C virtual machine . IKVM.NET . NanoVM . Gemstone . Jamiga . SableVM . Golden Code . JamVM . and more... Development . JC © 2009 atsec information security http://en.wikipedia.org/wiki/List_of_Java_virtual_machines 15 mandag 31. august 2009 Java's Assurance © 2009 atsec information security mandag 31. august 2009 The Elephant in the Room . So, if... • Java is very popular • Used widely • And has many implementations.... Why hasn't Java been CC evaluated? • Seemingly less vulnerabilities than C or C++ • Not tied to a bottom line • Uncertain what security functions are provided © 2009 atsec information security 17 mandag 31. august 2009 Java Prevents Common C/C++ Problems . No stack smashing . No heap corruption . No format string attacks . No reference forging . No type confusion (...all prevented by the type system) © 2009 atsec information security 18 mandag 31. august 2009 Developer Incentives Outweigh Costs . No mandatory evaluation of Java . Evaluated Java returns same as Unevaluated Java – Nothing . CC Evaluation is expensive . Partial Motivation – first implementations evaluated may get edge on market © 2009 atsec information security 19 mandag 31. august 2009 Java and Security . The JVM provides memory safety • Enforcement of language security (public/ private) • References cannot be forged - Prevents type confusion - Provides capability access control • Stack and heap corruption prevented . Cryptography (JCA) . Sandboxing access control (JAAS) © 2009 atsec information security 20 mandag 31. august 2009 A Smattering of SFRs . User Data Protection • Capabilities • Access Control Lists • Zeroed memory on allocation . Cryptography . Identification and Authentication . Auditing © 2009 atsec information security 21 mandag 31. august 2009 Next steps . Understand the necessity . Write a protection profile • Defines the Process Virtual Machine security problem • Demonstrates demand . Evaluate an implementation • Java is well studied in academia – higher EALs may be possible • Produces ECG – How to use Java securely © 2009 atsec information security 22 mandag 31. august 2009 Thank You! Jeremy Powel – [email protected] Trupti Shiralkar – [email protected] © 2009 atsec information security mandag 31. august 2009.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    23 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us