Coverity Applies Static Analysis to WebDev
Coverity, a company that offers security testing tools for software developers, is extending its expertise to the world of Web application development.
The company is developing a static analysis tool that can analyze Enterprise Java (JEE) Web applications. It will be one of the first tools to offer this capability. The company plans a final release of the product, now called Coverity Development Testing for Web Application Security, in September, though it is now offering previews as part of an early access program.
"First generation static analysis tools in the Web application space haven't been able to make security defects actionable. [Fixing the bugs] has been relegated to security teams, which is very inefficient," said Andy Chou, Coverity co-founder and chief technology officer. "The ultimate goal is to empower developers to fix defects on their own."
Simply put, static analysis examines a program code for bugs that could lead to software crashes or exploitable vulnerabilities. Coverity has long offered testing tools for compiled C, C++, C# and Java programs, though this is the company's first foray into applying the technology to Web applications.
Applying static analysis to a Java Web application, a development team can uncover a possible SQL Injection attack -- where malicious commands are embedded in a database call -- or a cross side scripting vulnerability, which would allow an attacker to slip hidden code in a copy of a Web page, Chou said.
Coverity's static code analyzer will tackle one of the heretofore trickiest issues of analyzing Web applications, that of dealing with frameworks. Frameworks are libraries of code from which developers often borrow to carry out common tasks in their programs. For static analysis, however, frameworks can be problematic, because the code being examined just points to a framework function, and, as a result, fails to offer the full picture of what actions are taking place when the program is executed. Coverity's approach is to design the tool in such a way that it also examines the full framework calls. The first version of the software will support the two most popular JEE frameworks, Hibernate and Spring.
The software will also include what the company calls a white box fuzzer, to check data sanitization routines. Data sanitizers are often used to check for malicious or otherwise harmful user input. Data sanitizers, however, could be incomplete or improperly configured; the fuzzer will check for weaknesses in the sanitizer.
In addition to code examination and the white box fuzzer, the Coverity software will also provide specific tips to developers on how to fix the problems it finds. The software can be run as a Web server, on the desktop, or embedded in an IDE (integrated developer environment).