<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[[SecurityRatty] tag: flayer]]></title>
    <link>http://securityratty.com/tag/flayer</link>
    <description></description>
    <pubDate>Mon, 17 Sep 2007 05:32:00 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Information flow tracing and software testing]]></title>
      <link>http://securityratty.com/article/3c56ee518b4f0794f66ee670bb37a390</link>
      <guid>http://securityratty.com/article/3c56ee518b4f0794f66ee670bb37a390</guid>
      <description><![CDATA[Posted by Will Drewry, Security Team

Security testing of applications is regularly performed using fuzz testing. As previously discussed on this blog, Srinath's Lemon uses a form of smart fuzzing....]]></description>
      <content:encoded><![CDATA[<span class="byline-author">Posted by Will Drewry, Security Team</span><br /><br />Security testing of applications is regularly performed using fuzz testing.  As previously discussed on this blog, <a href="http://googleonlinesecurity.blogspot.com/2007/07/automating-web-application-security.html" id="jmad" title="Srinath's Lemon">Srinath's Lemon</a> uses a form of smart fuzzing.  Lemon is aware of classes of web application threats and the input families which trigger them, but not all fuzz testing frameworks have to be this complicated. Fuzz testing <a href="http://pages.cs.wisc.edu/%7Ebart/fuzz/fuzz.html" target="_blank">originally</a><span style="text-decoration: underline;"></span> relied on purely random data, ignorant of specific threats and known dangerous input. Today, this approach is often overlooked in favor of more complicated techniques.  Early sanity checks in applications looking for something as a simple as a version number may render testing with completely random input ineffective.  However, the newer, more complicated fuzz testers require a considerable initial investment in the form of complete input format specifications or the selection of a large corpus of initial input samples.<br /><br />At <a href="http://www.usenix.org/events/woot07/tech" target="_blank">WOOT'07</a>,I presented a <a href="http://www.google.com/search?hl=en&amp;lr=&amp;q=%22Flayer%3A+Exposing+Application+Internals%22" target="_blank">paper</a> on <a href="http://code.google.com/p/flayer" target="_blank">Flayer</a>, a tool we developed internally to augment our security testing efforts.  In particular, it allows for a fuzz testing technique that compromises between the original idea and the most complicated.  Flayer makes it possible to remove input sanity checks at execution time. With the small investment of identifying these checks, Flayer allows for completely random testing to be performed with much higher efficacy. Already, we've uncovered multiple vulnerabilities in Internet-critical software using this approach.<br /><br />The way that Flayer allows for sanity checks to be identified is perhaps the more interesting point. Flayer uses a <a href="http://valgrind.org/" target="_blank">dynamic analysis framework</a> to analyze the target application at execution time. Flayer marks, or taints, input to the program and traces that data throughout its lifespan. Considerable research has been done in the past regarding information flow tracing using dynamic analysis. Primarily, this work has been aimed at malware and exploit detection and defense. However, none of the resulting software has been made publicly available.<br /><br />While Flayer is still in its early stages, it is available for <a href="http://code.google.com/p/flayer/downloads/list" target="_blank">download</a> under the GNU Public License.  External <a href="http://code.google.com/p/flayer/issues/list" id="wkck" title="contributions">contributions</a> and <a href="http://groups.google.com/group/flayer" id="w7dc" title="comments">feedback</a> <a href="http://code.google.com/p/flayer/issues/list" id="wkck" title="contributions"></a>are encouraged!<img src="http://feeds.feedburner.com/~r/GoogleOnlineSecurityBlog/~4/157672373" height="1" width="1"/>]]></content:encoded>
      <pubDate>Mon, 17 Sep 2007 05:32:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/input">input</category>
      <category domain="http://securityratty.com/tag/flayer marks">flayer marks</category>
      <category domain="http://securityratty.com/tag/initial input samples">initial input samples</category>
      <category domain="http://securityratty.com/tag/flayer">flayer</category>
      <category domain="http://securityratty.com/tag/fuzz">fuzz</category>
      <category domain="http://securityratty.com/tag/fuzz testers require">fuzz testers require</category>
      <category domain="http://securityratty.com/tag/checks">checks</category>
      <category domain="http://securityratty.com/tag/dynamic analysis framework">dynamic analysis framework</category>
      <category domain="http://securityratty.com/tag/sanity checks">sanity checks</category>
      <source url="http://feeds.feedburner.com/~r/GoogleOnlineSecurityBlog/~3/157672373/information-flow-tracing-and-software.html">Information flow tracing and software testing</source>
    </item>
  </channel>
</rss>
