Software Insecurity Analysis
The first report on the state of software security has been published by Veracode who provide a cloud-based application risk management service.
The data presented in State of Software Security Report - The Intractable Problem of Insecure Software are interesting, it relates to both web application (40%) and non-web application (60%) software but spans in-house developed, commercial, open source and outsourced, developed in .NET, C/C++ and Java. But don't get bogged down in the data. I'd recommend that everyone responsible for web development, or who commissions or operates a web site, read the executive summary. I was quite surprised that backdoors (a method of bypassing normal authentication) are still a significant issue: "Open Source projects have ... fewer potential backdoors than commercial or outsourced software". This is why "V13 Malicious Code Search Verification Requirements" appears in the Application Security Verification Standard.
There are seven recommendations, which are in summary:
- Implement a comprehensive, risk-based, application security programme.
- Implement security acceptance criteria for third-party suppliers.
- Test code from outsourced, commercial and open source suppliers as rigorously as internally developed code.
- Verification of C/C++ code must not be ignored and it is likely to be present in many applications.
- Implement specific developer training on security.
- Learn from organisations in higher-risk sectors such as finance and government.
- Ensure security requirements are built into outsourced software development.
Some good advice there. The report provides a fuller description and gives the background to these recommendations.
I guess there must be much more detailed data available to Veracode than is presented in this "Volume 1". Perhaps Volume 2 will look at trends over time, but I'd also like to see:
- Breakdown of root causes (e.g. unvalidated user input).
- Breakdown of how the vulnerabilities had been fixed when the software was re-tested (e.g. parameterized queries implemented).
- What proportion of faulty code was identical — found in more than one application (i.e. copied/duplicated from elsewhere).
- Details of any secure development lifecycle in use by suppliers and their level of maturity with these.
Hopefully this type of aggregated data can be shared under Veracode's terms of service and agreements with individual customers. The software suppliers included in Veracode's analysis are likely to exclude customer organisations who do not have the knowledge or resources to have their code analysed. It would be an interesting research project to test a selection of applications developed by other suppliers to see how they compare.
Posted on: 09 March 2010 at 08:49 hrs
