<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Matasano Chargen - Latest Comments in Vulnerability Fishing</title><link>http://matasanochargen.disqus.com/</link><description></description><language>en</language><lastBuildDate>Wed, 10 May 2006 16:28:42 -0000</lastBuildDate><item><title>Re: Vulnerability Fishing</title><link>http://www.matasano.com/log/255/vulnerability-fishing/#comment-2319796</link><description>I failed the spelling test on cognitive.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dr. Strangelove</dc:creator><pubDate>Wed, 10 May 2006 16:28:42 -0000</pubDate></item><item><title>Re: Vulnerability Fishing</title><link>http://www.matasano.com/log/255/vulnerability-fishing/#comment-2319795</link><description>"What other kinds of tools do you (or others!)think are missing in this space that would assist in the process that dont exist today?"&lt;br&gt;&lt;br&gt;I'll take a stab at this.&lt;br&gt;&lt;br&gt;Open Source:&lt;br&gt;A _working_ SLINT-esque set of extensions for compilers would be a good start.  &lt;br&gt;&lt;br&gt;Closed source:&lt;br&gt;A utility that used input function footprinting to track the flow of user supplied data through proces memory that also cross-referenced the validity of heap memory, malloc chunk headers, and the integrity of the registers in a given stack frame.&lt;br&gt;&lt;br&gt;'I know that memory at 0xXXXXXXXX has been populated with user supplied content, let's tag every reference to the memory location in the text segment, and back trace up the function heirarchy until we figure out all the different ways we can manipulate the data to trigger functions which are accessing the offending address.'&lt;br&gt;&lt;br&gt;(Ed. Note: Yes, I did just refer to user supplied data as offensive, because it is, pun intended.)&lt;br&gt;&lt;br&gt;I'm guessing it would almost be like teaching a runtime debugger to generate and 'read' a flowgraph, and then ascertain the different input syntax criteria that would activate different function call paths within the application.  &lt;br&gt;&lt;br&gt;This could theoretically be accomplished by 'tagging' functions which reference user defined memory, finding and tagging all references to the functions themselves, asctertaining all the conditional jump/branch statements that have to be satisfied for the desired call-flow to hit the offending function.  At this point, we've essentially figured out exactly how we should be fuzzing in the first place.&lt;br&gt;&lt;br&gt;(Ed. Note: Yes, functions processing, and copying user supplied data are also offensive.  Necessary, but still offensive ;) )&lt;br&gt;&lt;br&gt;Auto-exploit generation anyone?&lt;br&gt;&lt;br&gt;If someone could manage to do that, you'd basically be adding a satellite guided thermal laser with a scope onto your fuzzer.&lt;br&gt;&lt;br&gt;Actually, if what I've outlined here is actually possible, you could have the debugger do runtime fuzzing autonomously ;)  &lt;br&gt;&lt;br&gt;I think I'd call it "Smart Fuzzing", "Non-Blind Fuzzing", the Frank Zappa-esque "Not-so-fuzzy Fuzzing", or "AutoFuzzing".  I was never good at naming these things.&lt;br&gt;&lt;br&gt;This does seem a bit grandios to be plausibly implementable though.  Your thoughts?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dr. Strangelove</dc:creator><pubDate>Wed, 10 May 2006 16:26:57 -0000</pubDate></item><item><title>Re: Vulnerability Fishing</title><link>http://www.matasano.com/log/255/vulnerability-fishing/#comment-2319794</link><description>Interestingly enough, Dave, Dino and myself all failed the Pepsi challenge.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeremy Rauch</dc:creator><pubDate>Wed, 10 May 2006 14:21:17 -0000</pubDate></item><item><title>Re: Vulnerability Fishing</title><link>http://www.matasano.com/log/255/vulnerability-fishing/#comment-2319793</link><description>But Dave, we're all monkeys :)  Just hairless monkeys with improved communication skills and cognative reasoning (which more often than not fails the Pepsi challenge amongst the general populous).&lt;br&gt;&lt;br&gt;I agree though, you are probably smarter than a monkey.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dr. Strangelove</dc:creator><pubDate>Wed, 10 May 2006 13:24:19 -0000</pubDate></item><item><title>Re: Vulnerability Fishing</title><link>http://www.matasano.com/log/255/vulnerability-fishing/#comment-2319792</link><description>Josh:&lt;br&gt;&lt;br&gt;re: tools... I agree!  I think we have already seen some movement in that direction.   Tools like IDA Pro/BinDiff let researchers dig into places a lot faster than what we had 10 years ago.  What other kinds of tools do you (or others!)think are missing in this space that would assist in the process that dont exist today?</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dave G.</dc:creator><pubDate>Wed, 10 May 2006 12:59:23 -0000</pubDate></item><item><title>Re: Vulnerability Fishing</title><link>http://www.matasano.com/log/255/vulnerability-fishing/#comment-2319791</link><description>The dynamite and harpoon fishing illustration is powerful and right on the money.  But in these times the Mark Dowd/random world class researcher with satellite guided thermal lasers illustration is more interesting.  The fact is that even as expertise is still as vital and important to successful vuln research today as it was a decade ago, tools and time saving techniques for "harpoon fishers" are becoming just as critical.  Will this trend compress the vulnerability identification curve (cool term btw) for the harpoon fishers a little bit going forward?  I think it will; but it will never be as compressed as the curve for dynamite fishing.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Josh Daymont</dc:creator><pubDate>Wed, 10 May 2006 11:21:52 -0000</pubDate></item></channel></rss>