State of Software Security. Jeff Ennis, CEH Solutions Architect Veracode. Agenda. Background – Metrics, Distribution of Applications Security of Applications Application Security - Industry Trends Summary. Background – Basis for insights.
State of Software Security
Jeff Ennis, CEH
Background – Metrics, Distribution of Applications
Security of Applications
Application Security - Industry Trends
For over three years, Veracode has been providing automated security analysis of software to large and small enterprises across various industry segments.
One of the residual effects is the wealth of security metrics derived from the anonymized data across varied industries and types of applications.
These metrics offer valuable insights on the quality of application security and issues related to the current state-of-practice and maturity of security in software.
Veracode was founded in 2006 by application security experts from @stake, Guardent, Symantec, and VeriSign.
Veracode provides automated security assessment capabilities in the cloud. Automated techniques include static binary analysis and dynamic analysis. Manual test data (if performed) is included in the analysis
The Data Set + Metrics
1591 Applications and billions of lines of code
High Business Criticality does not drive all development projects “in-house.”
More than 30% of all applications rated High or Very High in business criticality
were sourced by Commercial software vendors
What is the distribution of languages in your enterprise? Do you have the same testing methodologies and practices across your application portfolio?
The majority of software (provided by customers for scanning)
_______ Secure (Pass)
_______ Insecure (Fail)
From all (self-selected) set of applications that were submitted to Veracode for assessment
Flaw Percent = Flaw Count / Total
Cross-site Scripting easy to fix but still most prevalent
while Open Source is shortest
Average Time to Remediate: 59 days
Higher percentage of “High” Severity Vulnerabilities:
Open Source applications had an equivalent percentage of Very High severity vulnerabilities (Buffer Overflows, Numeric Errors), but a higher percentage of High Severity vulnerabilities (SQL Injection)
Open Source/Outsourced/Commercial/Internally Developed
Vulnerability Distribution by Supplier
Vulnerability Distribution by Language
Flaw Type by Input
Vulnerability Distribution by Industry
Most software is indeed very insecure.
Recommendation: Implement a comprehensive, risk-based application security program
2. Third-party software is a significant percentage of the enterprise software infrastructure,
and third-party components are a significant percentage of most applications.
Recommendation: Implement security acceptance criteria and policies for an approved list of
third-party suppliers, and conduct security testing on third-party components prior to integration
into the final application
3. Open source projects have comparable security, faster remediation times, and fewer
potential backdoors than Commercial or Outsourced software.
Recommendation: Test open source, outsourced, and commercial applications as rigorously as
you would test internally developed code. Do not buy into FUD regarding the use of open source
software in critical business applications.
4. A significant amount of Commercial and Open Source software is written in
C/C++ making it disproportionately susceptible to vulnerabilities that allow attackers to gain
control of systems.
Recommendation: Apply the same review methodologies across all languages and platforms.
Do not base your security review plan on ubiquity or complexity (or lack thereof).
5. The pervasiveness of easily remedied vulnerabilities indicates a lack of developer education on secure coding.
Recommendation: Implement specific developer training initiatives as part of your overall
6. Software of all types from Finance and Government sectors was relatively more secure on first submission to Veracode for testing.
Recommendation: Follow the lead of other organizations with high risk profiles; review the steps they took to implement operating controls in complex environments
7. Outsourced software is assessed the least, suggesting the absence of contractual security
Recommendation: Pay particular attention to security requirements when contracting for Outsourced development. Insist upon the authority to perform independent security testing and set a minimum acceptance criteria. This way you are not charged/billed for reworking code due to security defects.
40% of an enterprise’s application inventory is comprised of 3rd party applications
30 – 70% of what customers classify as “internally developed” is in fact 3rd party
components and libraries
40% 3rd party applications + (30-70% 3rd party libraries) Internal applications = A lot of 3rd party code