DARPA Project Using LLVM For Better Code Security

Posted by Michael Larabel on December 02, 2012

A software research project being funded by the United States' Defense Advanced Research Projects Agency (DARPA) with its Cyber Fast Track program is looking at ways for providing a flexible and integrated security infrastructure by using LLVM for dynamic and static security tasks.

For the past few weeks I have been sharing some of the interesting slides from last month's LLVM Developers' Meeting in San Jose, California. Among the interesting technical sessions covered so far were on ThreadSanitizer and MemorySanitizer, how Google treats Clang compiler errors, the state of 64-bit ARM, Clang analyzing code comments to auto-generate documentation, LLVM/Clang being ported to a super computer, and Intel's Shevlin Park project that uses LLVM/Clang to make Microsoft's C++ AMP framework cross-platform. There's one more interesting presentation that may interest many Phoronix readers and the slides for that session were recently uploaded.

Jared Carlson of GoToTheBoard has been involved with a research project being financed by DARPA, a division of the US Department of Defense. The talk comes down to leveraging LLVM and LLDB (the LLVM debugger) for dynamic and static security tasks. "The talk discusses incorporating both static and dynamic analysis techniques by using LLVM and LLDB components and that these can easily be integrated back into LLVM development workflow. These tools will help find exploitable bugs within the llvm development environment, illustrate their consequences and are customizable and easily shared within the community. Funded by DARPA as a Cyber Fast Track effort, we are currently incorporating LLDB and other open source python libraries along with re-written static analysis scripts so that the tools can be easily integrated and altered into a workflow...The talk will discuss how we use the tools to investigate bug severity, utilize artificial intelligence techniques to predispose fuzzing, draw conclusions, and utilize the LLVM technology quite to target various architectures if desired."

Project goals for the US government were to create a tool to find exploitable bugs within a "normal" environment, illustrate consequences of these bugs, educate and interact wit hthe developer, and allow for community improvement and sharing. The areas then covered in the presentation were on static analysis, function graph, data dependency, hypothesis engine, and the fuzzer.

An alpha version of this project was delivered to DARPA in September. A beta version was to be delivered around the end of November. After the project has finished, the plan is to release the code to the open-source community which should happen any day now -- the presentation states the release aim as "early December or thereabouts."

For those wanting to learn more about this LLVM research project, see the 41 PDF slides.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Hot Relocation HDD To SSD Support For Btrfs
  2. Phoronix Test Suite 4.6.0 "Utsira" Released
  3. New Intel X.Org Driver Supports All Of Haswell
  4. SQLite Now Faster With Memory Mapped I/O
  5. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
  6. Qt For Tizen Launches, Based On Qt 5.1
  7. KTAP Released For Linux Kernel Dynamic Tracing
  8. Linux 3.10-rc2 Kernel Takes In A Few Extra Pulls
  9. QEMU 1.5 Supports VGA Passthrough, Better USB 3.0
  10. Handbrake 0.9.9 Supports OpenCL Offloading
  11. Freedreno Gallium3D Now Banging The Adreno A3XX
Latest Forum Talk
  1. Jolla Announces Their First Phone
  2. Microsoft Releases Skype For Linux 4.2, Has...
  3. DragonFly 3.4 vs FreeBSD 9.1 on phoronix test...
  4. Intel Linux OpenGL Driver Leading Over Apple OS X
  5. The Cost Of Ubuntu Disk Encryption
  6. Kubuntu, KDE Has Little Hope For Ubuntu's Mir
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite