[sldev] Static code analysis

Meadhbh Hamrick (Infinity) infinity at lindenlab.com
Mon Jan 12 09:25:28 PST 2009


just to try to set expectations with some of these tools... yes, the  
level of effort is comparable with pouring through gcc's output with - 
Wall and -Wextra and attempting to fix every warning. actually... the  
trick is... how do you get the tool to emit only "interesting"  
warnings rather than a whole bunch of warnings you can conceivably  
ignore? With fortify's tools, there's a lot of configurability  
allowing the analyst to ignore or add different tests depending on the  
analyst's wetware settings. BTW, this is one of the ways static  
analysis tools can be used to funnel people into professional services  
engagements. People build expertise in not only using the tool, but in  
configuring and defining rules for the tool to ignore warnings and  
detect errors. So in the same way i had a little bit of head  
scratching when i moved from cc to xlC and from xlC to gcc, learning  
how to use static analysis tools can be a task in and of itself.

so... there might be some benefits to selecting an individual and  
getting them to be the "static analysis person." (i.e. - the person  
who knows how to apply the tool to the codebase.) and as Rob  
mentioned... at least at the Lab, it probably makes sense to include  
this in our overall "source code security" process. outside the lab...  
it might make sense for someone outside the lab to develop experience  
with tools like fortify, prevent and whatever the latest offering from  
Ounce Labs is (can't remember off the top of my head.) again... it  
would be nice for there to be coordination between the in-lab and out- 
of-lab resources, so yay! one more ball for Robla to juggle.

but... at the end of the day... anyone can download the source for the  
viewer, related libraries and open-source static analysis tools.

-cheers,
-meadhbh/infinity

On Jan 11, 2009, at 11:42 PM, Gareth Nelson wrote:

>> e. it is characteristic of these tools that there is some give and  
>> take
>> between the tool and the tool using mammal behind the keyboard.  
>> many static
>> analysis tools are quite configurable and allow the user to perform  
>> invasive
>> scans that produce an ox-stunning amount of output or to perform a  
>> light
>> scan, which gives little of value. there's a lot of finesse  
>> required to use
>> these tools effectively. this has led some to consider these tools  
>> thinly
>> veiled professional services sales vehicles.
> As someone who's not used these tools personally, how comparable are
> they to paranoid compiler options that produce 10 billion warnings?
> Running through build.log and using compiler warnings as a checklist
> in my own projects is almost a hobby for me.....



More information about the SLDev mailing list