|
Blogs
After a decade of existence, still, Cross-site scripting, SQL Injection and other of missing Input validation associated security vulnerabilities can cause severe damage once exploited. To analyze this fact, [1] conducted an empirical study, while OWASP and SANS defined their respective risk-based approaches. Taking these results into consideration, three deficiencies can be highlighted: a lack in upskilling developers to write secure code, a high ratio of false positive findings in security code scanners and an erroneous planning for security corrections. This blog entry is part of a series. In the first entry, we present how using the Eclipse platform and the JDT compiler, a proper tooling can be provided to overcome these deficiencies. We present a static analyzer that assists developers to report these security vulnerabilities. The second upcoming entry presents an innovative approach by integrating an Aspect Oriented tool for semi-automated correction of these findings. Both tools are designed within an architecture that is monitored by security experts and particularly adequate for agile development. Static analysis into the Secure Development LifecycleThis work aims to provide each developer a simple way to do daily security static analysis on his code. That would be properly achieved by providing a security code scanner integrated in the development environment, i.e. Eclipse in this case, and a centralized architecture that allows the security experts to assist the developers in any of the findings. Typically that would include verifying false positives and correspondingly adjusting the code scanner test cases, or assisting in reviewing the solutions for the fixes. This approach has several advantages over the approach in which static analysis is left over to the end of development:
A tool to support developpersOur incentive is to harvest the advantages acquired by using our approach in an agile and decentralized static analysis process early in the software development lifecycle. It raises security awareness for the developers at the time of development and thus reduces cost expected for the after development fixes. The tool fulfills the following requirements :
We have decided to develop an Eclipse Plugin made of different components that leverage decentralized approach for static analysis. The first Figure shows how the plugin is integrated into Eclipse workbench. By clicking on a small button, the developer is able to perform a static analysis which display within seconds or minutes (depending on the amount of code) the results.
The second Figure shows the results as seen by developers. It gives direct access to detected flaws and global overview on system vulnerabilities. The developer analyzes its code and review vulnerabilities when necessary.
The agile and decentralized approach for static analysis leverages developers knowledge with expertise support from security expert. The code analysis process is governed by the security experts during the security development lifecycle while applied by developers. We make usage of the day-to-day development environment tools - Eclipse - to automate the process and integrate a solution closer to the developer. A single environment allows from detection to correction and track of common vulnerabilities during the development phase. AcknowledgmentThis is a joint work with Marco Guarnieri, a former intern at SAP Labs France and Paul El'Khoury, member of SAP corporate security team in SAP AG Walldorf.
[1] Theodoor Scholte, Davide Balzarotti, and Engin Kirda. Quo vadis? a study of the evolution of input validation vulnerabilities in web applications. In Proceedings of Financial Cryptography and Data Security 2011, Lecture Notes in Computer Science, February 2011 Gabriel SERME is a Research Associate at SAP Labs France and a PhD Student at Eurecom
| |||||||||||||||||||||||