CERT Releases Basic Fuzzing Framework 51
infoLaw passes along this excerpt from Threatpost: "Carnegie Mellon University's Computer Emergency Response Team has released a new fuzzing framework to help identify and eliminate security vulnerabilities from software products. The Basic Fuzzing Framework (BFF) is described as a simplified version of automated dumb fuzzing. It includes a Linux virtual machine that has been optimized for fuzz testing and a set of scripts to implement a software test."
Fuzzing is only useful, if only moderately so (Score:1, Insightful)
Anything that you write that uses a regex you should beat on with some fuzzing logic, since they can tend to increase in computational time non-linearly, and next thing you know you got a DOS on your hands.
TIP OF THE DAY for you FROM ME
Re: (Score:1, Interesting)
This man speaks the truth. Just yesterday I had to deal with a Perl script whose execution time blew up once it had to process files larger than 1 KB in size. It'd work fine for 500-character files, but give it more than 1000 characters and the runtime would take over half an hour! (Yes, we had one user sit there and wait over 30 minutes for it to finish.)
In the end, it was a poorly-written regular expression that was to blame. It was easy enough to fix, and we've since ditched the Indian team that develope
Re: (Score:1)
You paid for cheap code and you got it. What did the pointy hair expect?
Re: (Score:2)
Pointy hair is the PHB, what do you think PHB stands for?
That is why I asked what the PHB expected, not what he thought the outcome would be.
Re: (Score:1)
Re: (Score:3, Informative)
For a purposely selected pathological case on a Pentium M 1.6 GHz laptop with little free RAM, I'd say that's
Re: (Score:1)
The point is that it doesn't scale linearly. 1000 is much worse, and 10000 much worse than that.
Yes, any particular case *could* be "fixed" in the regex engine, but there will always be one more possible pathological regex.
Re: (Score:2)
Yeah, and checking specifically for a possible type of pathological regex in order to work around it would require slowing the engine for the common case. So I'd say the power of the engine to do so many things is a good trade for the easily avoided pathological cases.
There are only two situations in which such pathological cases are likely to be given to the regex engine anyway. One is when long regexes are built automatically by a program based on a set of rules and a particular data set, which should onl
Re: (Score:1)
Re: (Score:2)
Thanks for reading the thread... oh, wait, you didn't. I already said [slashdot.org] that Perl's extended "regexes" are not regular. Well, thanks for weighing in anyway.
Re: (Score:1)
Re: (Score:2)
Sure, it happens, but with what frequency?
Any artificial language you're parsing should be designed with this in mind, or at least a different tool could be clearly chosen for it.
If you're parsing any sort of natural language, well first you kind of deserve what you get. ;-) The variability of the language would seem to preclude this sort of massive backtracking in the common case, and the parser could use multiple separate regexes to help lower the chances of triggering the problem.
It still seems from my e
Re: (Score:1)
Re: (Score:1)
Re: (Score:2)
Thanks for the link, it seems like a good read for a cloudy day.
Do you know if anything has changed since the article in 2007?
-menkhaf
Re: (Score:1)
Re: (Score:2)
Thanks, that was really interesting.
Cool (Score:2)
And urgently needed. So far the CMU/CERT software I had a look at was pretty good....
bleh (Score:1, Informative)
Sort of like this [sourceforge.net]?
Re: (Score:1, Interesting)
I wouldn't be so quick to automatically label researchers as professionals. If there is one place I've seen worse code than OSS, it would be in academia.
Bizarrely, this is also where I've seen the most brilliant code.
Re: (Score:1, Funny)
After writing that, I had to compare the two.
Fuzz's code resides in a massive 34KB C file, undocumented and unformatted, liberal copy-pasta and no re-use, no grasp of language, about as readable as an assembly dump. Basically one big hack.
BFF is a nicely written, concise, small, and extensively documented perl script.
Yep... OSS fails to impress once more.
Re: (Score:3, Insightful)
Re: (Score:1)
Re: (Score:3, Insightful)
If there is one place I've seen worse code than OSS, it would be in academia.
Bizarrely, this is also where I've seen the most brilliant code.
If you look closely, you'll find that the "brilliant code" is most often written by academics who have industry programming experience. Similarly, in industry, you will find that the best code is written by experienced programmers with rigorous academic backgrounds. In contrast, the academics who insist that computer science has nothing to do with programming, and the self-taught hackers who proudly proclaim their lack of all that fancy book-larnin', are two sides of the same worthless coin.
Re: (Score:2)
If there is one place I've seen worse code than OSS, it would be in academia.
You've only seen code from those two, then? Because there's no shortage of hard-core WTF code in private business and government.
Re: (Score:2)
In their defense, interpreting strings beginning with a zero as being in octal is fucking retarded, and that's the cause of that particular bug. It's even been deprecated in the spec.
axfuzz (Score:5, Interesting)
in their whitepaper they referenced my 'axfuzz' tool I wrote years ago and even used a modified version of it in their testing. Hope they didn't judge me on that code, it was a pile of crap that I kept hacking together until it finally worked, with no thought to proper software design.
Re: (Score:3, Insightful)
I think the fact they are using a modified form means they did judge you, and found it good enough to use as a start. That should count for something.
Re:axfuzz (Score:4, Funny)
Hope they didn't judge me on that code, it was a pile of crap that I kept hacking together until it finally worked, with no thought to proper software design.
That sounds like exactly the kind of code a fuzzer should be used upon.
Oh the recursion!
Re: (Score:2)
Hi,
Do you know if the whitepaper available somewhere for free?
Another link for further information about BFF, is the CERT Vulnerability Analysis Blog, found at https://www.cert.org/blogs/vuls/2010/05/cert_basic_fuzzing_framework.html [cert.org]
-menkhaf
Re: (Score:2)
I was just referring to this technical document: http://www.cert.org/archive/pdf/dranzer.pdf [cert.org] [pdf]
referenced from: http://threatpost.com/archive/blogs/dranzer-fuzzing-activex-vulnerabilities [threatpost.com] which is linked to from TFA.
Re: (Score:2)
I see Dranzer is an older ActiveX fuzzing tool, somewhat unrelated to the "BFF". I didn't really read the article properly. :P
hmmm... (Score:3, Funny)
Linky? (Score:3, Informative)
BFF? (Score:3, Insightful)
Re:BFF? (Score:4, Funny)
Because it's, like, the security researcher's BFF OMG ponies!
Good!! (Score:2)
I propose that every website which handles private data (credit, ssn, health, etc) should be integrating these kinds of tools into normal test procedures, both in development and on production mirrored sites.
Hear hear!