Improving software security with static automated code analysis in an industry setting

Document type: Journal Articles
Article type: Original article
Peer reviewed: Yes
Author(s): Dejan Baca, Bengt Carlsson, Kai Petersen, Lars Lundberg
Title: Improving software security with static automated code analysis in an industry setting
Journal: Software: Practice and Experience
Year: 2013
Volume: 43
Issue: 3
Pagination: 259-279
ISSN: 0038-0644
Publisher: Wiley
URI/DOI: 10.1002/spe.2109
ISI number: 000314926900001
Organization: Blekinge Institute of Technology
Department: School of Computing (Sektionen för datavetenskap och kommunikation)
School of Computing S-371 79 Karlskrona
+46 455 38 50 00
Language: English
Abstract: Software security can be improved by identifying and correcting vulnerabilities. In order to reduce the cost of rework, vulnerabilities should be detected as early and efficiently as possible. Static automated code analysis is an approach for early detection. So far, only few empirical studies have been conducted in an industrial context to evaluate static automated code analysis. A case study was conducted to evaluate static code analysis in industry focusing on defect detection capability, deployment, and usage of static automated code analysis with a focus on software security. We identified that the tool was capable of detecting memory related vulnerabilities, but few vulnerabilities of other types. The deployment of the tool played an important role in its success as an early vulnerability detector, but also the developers perception of the tools merit. Classifying the warnings from the tool was harder for the developers than to correct them. The correction of false positives in some cases created new vulnerabilities in previously safe code. With regard to defect detection ability, we conclude that static code analysis is able to identify vulnerabilities in different categories. In terms of deployment, we conclude that the tool should be integrated with bug reporting systems, and developers need to share the responsibility for classifying and reporting warnings. With regard to tool usage by developers, we propose to use multiple persons (at least two) in classifying a warning. The same goes for making the decision of how to act based on the warning.
Subject: Software Engineering\General
Keywords: Software security; Static analysis; Static code analysis; Vulnerabilities