It all started with Lint.
Actually, it was Secure Lint, to be precise, and it was one of the last projects started by the L0pht hacking collective in 1999 before the group became part of @stake Inc. the next year. The project began with the goal of creating a lexical analysis tool to find potential security flaws in source code. But in the five years since, it has evolved as technology and security practices have advanced and now, @stake finally is ready to release the tool as SmartRisk Analyzer this week at Microsoft Corp.s TechEd conference.
Consultants from @stake have been using various incarnations of SRA in client engagements for some time, but the company didnt feel comfortable releasing it to the developer community until now. SRAs capabilities go well beyond Secure Lints original scope, which was simply to audit source code for vulnerabilities by looking for syntax errors. Now, instead of combing through the raw code, SRA analyzes the compiled binary, an approach that allows it to look at data and control paths as well as external linked libraries.
"We started on the binary track basically because we had a passion for analyzing malware, for seeing how that stuff worked," said Chris Wysopal, vice president of research and development at @stake, based in Cambridge, Mass., and one of the original members of the L0pht. "For us its important to look at the whole binary because most of the time, a lot of the code in it isnt yours."
In practice, SRA is designed to be used on a daily or nightly basis as developers check in their code. The binary is loaded into the application, along with whatever third-party libraries and platform environment data are needed. SRA then models the application and builds a complete map of the data flow paths in order to understand where all of the variables are and trace the data through all of its movements. The software then runs a set of security rules against the modeled application, looking for known vulnerabilities such as buffer overruns and format string errors.
Once the analysis is complete, SRA develops a comprehensive report on the binary, which includes annotated, in-line identification of each flaw. The report shows the developer exactly which lines are vulnerable and why, and also gives suggestions for fixing the problems. A separate part of the report screen ranks each vulnerability by severity. And SRA also can create a specialized, less detailed report for executives, showing the number and severity of the flaws in the code.
The idea behind releasing SRA now is to give developers the ability to find security problems before they find their way into finished applications.
"It gives you the precision of a human without having to have someone do a manual code review," Wysopal said. But @stake, which has made a nice business out of code reviews, is hoping that SRA will enable developers to do more in-depth analysis than is possible with just humans doing the work.