Soss v3
Soss v3
State of Software
Security Report
The Intractable Problem of Insecure Software
April 19, 2011
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
LEADING UP TO THE PUBLISHING OF THIS REPORT, several large global organizations suffered major
security breaches, one called the largest in history, at the hands of targeted, persistent, yet not
entirely sophisticated attacks. Whether it’s a spear phishing attack that hamstrung Epsilon and RSA,
or hackers taking advantage of common SQL injection errors in the case of HBGary and the “Night
Dragon” cyber-attacks targeting Western oil, gas and petrochemical companies, these are critical
reminders about the vulnerabilities within the core software infrastructure of organizations we rely on
to communicate with customers, conduct financial transactions, supply power or store and share
sensitive information. The related headlines remind us that software is ubiquitous, runs every part of
our business and is sourced from all across the software supply chain. Your software supplier’s
weaknesses are your weaknesses.
These incidents, despite being classified as “alarmingly simple” by some, are not surprising if you
consider the statistics that Veracode has reported since we started publishing the State of Software
Security reports. Now in its third Volume, the reports continue to explore the reasons behind the
headlines, putting a spotlight on commonly occurring vulnerabilities, and more importantly, what can
be done to stem the tide. We dig into the DNA of software applications and examine them from
numerous angles—supplier type, language, platform and industry. Our goal is to inform, enlighten
and in some cases delight our readers with real-world evidence that can make their organization more
secure, at its core.
This volume captures data collected over the past 18 months from the analysis of 4,835 applications
on our cloud platform (compared to 2,922 in Volume 2 published in September 2010). The fact that the
number of applications has nearly doubled indicates that organizations are diligently working their way
through their application portfolio to understand their security weaknesses. What’s more is that they are
addressing these issues in a responsible and expedient manner. We took a deep dive into the software
sector and made some surprising findings about the quality of security and customer-focused vendor
applications. We observed industries across the board including Financial, Software & IT Services and
Aerospace and Defense increasingly holding their software suppliers accountable for the security qual-
ity of the applications they are procuring from them. The reliance on third-party software applications is
finally yielding to an independent assessment of their potential risks. And, we have new statistical
evidence to demonstrate the business criticality of investing in greater application security training and
education for development staff within existing application security programs.
As you examine the information presented here, I welcome your questions and ideas about what we
can do collectively to accelerate the movement toward more secure software—more secure software
to communicate with our customers, run our businesses and support the global economy.
Best Regards,
Matthew Moynahan
Chief Executive Officer, Veracode
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Table of Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
Executive Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Addendum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
1
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Introduction
The State of Software Security is a semi-annual report that draws on continuously updated information in Veracode’s
cloud-based application risk management services platform. Unlike a survey, the data comes from actual code-level
analysis of billions of lines of code and thousands of applications.
The resulting security intelligence cannot be found anywhere else. It represents multiple testing methodologies
(static binary, dynamic, and manual) on the full spectrum of application types (components, shared libraries, web
and non-web applications) and programming languages (including Java, C/C++, .NET, ColdFusion, and PHP) from
every part of the software supply chain (Internally Developed, Open Source, Outsourced, Commercial). For those
executives, security practitioners and developers who want to better understand the vulnerabilities that threaten
the integrity and performance of the software supply chain, this series of reports is essential reading.
This volume captures data collected over the past 18 months from the analysis of 4,835 applications on our
cloud platform (compared to 2,922 in Volume 2 published in September 2010). This reflects the growing use of
independent, cloud-based application security testing services. As before, the report first examines the security
quality of applications by supplier type in the software supply chain and then explores application security by
language, industry, and application type.
New in Volume 3 are sections on Remediation Analysis, Developer Training and Education, and a deep dive on the
Software industry.
Veracode welcomes any questions or comments from readers and will continually strive to improve and enrich the
quality and detail of our analysis.
2
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Executive Summary
The following are some of the most significant findings in the Veracode State of Software Security Report,
Volume 3, representing 4,835 applications assessed in the last 18 months by Veracode on our cloud-based
application security platform.
1. When first tested, more than half of all applications fail to meet acceptable security quality, and more
than 8 out of 10 web applications fail OWASP Top 10
2. Cross-site scripting prevalence remains constant over time, while SQL injection is trending slightly down
3. Finance and Software industries lead the charge on holding software suppliers accountable; Aerospace
and Defense are following suit
4. Most developers are in dire need of additional application security training and knowledge
5. The Software industry, including security products and services, have significant gaps in their security posture
6. While static analysis finds orders of magnitude more flaws than dynamic analysis, both techniques are
required for comprehensive coverage
7. Building secure software or requiring it from your suppliers does not have to be time consuming
Key Findings
1. When first tested, more than half of all applications fail to meet acceptable security quality, and more than
8 out of 10 web applications fail OWASP Top 10
58% of all applications were deemed to have “unacceptable” security quality upon first submission (Figure 3). This
remains essentially unchanged from the statistic that was reported in Volume 2 (57% unacceptable).1 Commercial
acceptability dipped a small amount from 35% acceptable in Volume 2 to 32% in this Volume. When measured
against the OWASP Top 10, an industry standard list of critical web application errors, more than 8 out of 10 web
applications across internally developed and commercial supplier types fail to achieve compliance (Figure 10).
OWASP Top 10 is one of the standards relied upon by the PCI council so this failure rate also gives one insight
into the poor state of non-compliance with respect to regulations such as PCI. This poor state of security of
applications on their first submission to Veracode is due to two possible factors; either security processes such as
threat modeling or secure coding standards were not incorporated into the development lifecycle, or the security
processes were incorporated but failed to reduce flaws significantly. When you consider these statistics in the
context of the ever strengthening threat environment these application security weaknesses translate into real
and present danger for the risk-free operation of your software infrastructure. The 2010 Verizon Data Breach
Investigations Report estimates that 40% of breaches occur due to hacking (i.e. successful exploitation of a
software vulnerability) and are responsible for 96% of the compromised records.2
Recommendation: More training and more testing. It is clear that there is room for significantly greater emphasis
on training and awareness of common security vulnerabilities such as the OWASP Top 10 and CWE/SANS Top 25.
The training should be reinforced with consistent testing for compliance with these benchmarks for both internally
developed and third-party applications.
1 http://info.veracode.com/State-of-Software-Security-Volume-2.html
2 www.verizonbusiness.com/resources/reports/rp_2010-data-breach-report_en_xg.pdf
3
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
2. Cross-site scripting prevalence remains constant over time, while SQL injection is trending slightly down
This report examined trends in Cross-site scripting (XSS) and SQL injection, the two most commonly discussed
issues in web application security, by looking at the percent of applications affected, quarter over quarter since the
beginning of 2009. We see XSS remaining nearly flat and SQL injection gradually decreasing by 2.4% per quarter,
a statistically significant amount according to linear regression (Figure 20, Figure 21). On one hand, it’s reassuring
that the industry seems to be making progress at reducing SQL injection; on the other hand, it’s disappointing
that we’re not seeing a steeper downward trend. This is particularly concerning given that XSS and SQL injection
are hot-button issues in many enterprises and ones that most organizations are actively trying to reduce. This
trend could indicate that testing and remediation efforts are just barely keeping pace with development of new
applications. Perhaps the most alarming realization is that when you consider the threat environment, these
vulnerabilities become more than just theoretical flaws in your code base. They are ticking time bombs waiting
to be exploited in real world attacks. The 2010 Data Breach Investigations Report from Verizon reveals that 25%
of attacks carried out via hacking techniques were attributable to SQL injection and 8% were attributable to XSS.3
Recommendation: SQL injection and XSS are repeatedly in the headlines as the initial attack vector for high-profile,
targeted breaches. It is crucial to reduce their occurrence in software applications if we are to outpace attackers.
Organizations are encouraged to double down on their efforts to train their development and security staff on how
to avoid these errors in the first place or fix them quickly once they are found. Use automated testing techniques to
expediently discover these vulnerabilities across your application portfolio and to verify that the development team is
following the guidance learned from their training. There are even free services such as Veracode’s free XSS detection
service that can provide development teams a quick view into the XSS issues present in their web applications.4
3. Finance and Software industries lead the charge on holding software suppliers accountable; Aerospace
and Defense are following suit
One of the fastest growing areas within application security is independent verification of third-party software.
As organizations are breached because of vulnerabilities present in someone else’s software, they are starting
to hold their software suppliers more accountable. Organizations are demanding proof of independent security
verification before proceeding with a commercial transaction. The two industry segments leading the charge in
this movement are Finance and Software. Together they represent over 75% of the enterprises requesting formal
verification of third-party suppliers (Figure 12). It was interesting to see Aerospace and Defense, an industry that
prides itself in the rigor it brings to its manufacturing supply chain, starting to apply the same standards to its
software supply chain. The results of these independent assessments are enlightening: 25% of third-party
applications are found to be of acceptable security quality upon initial submission (Figure 15). While this marks a
slight improvement from Volume 2 (19% acceptable) clearly most software suppliers have significant work to do
to ensure they are complying with the security gate set by the purchasing enterprise.
Recommendation: Reliance on third-party software to perform critical business functions and collaboration amongst
an organization’s workforce is only going to increase with the adoption of cloud and mobile platforms. Not having
visibility into the security of these third-party applications is leaving a blind spot in an organization’s understanding of
its risk posture while providing yet another attack point for malicious parties. Maintaining the status quo is simply not
an option. Software purchasers should introduce independent security verification language into their legal contracts
and require proof of independent testing as part of their procurement process. Software producers should participate
in this process in a cooperative and transparent manner as it ultimately serves to elevate the security posture of their
product. This in turn can be used as a competitive differentiator in the marketplace.
3 www.verizonbusiness.com/resources/reports/rp_2010-data-breach-report_en_xg.pdf
4 www.veracode.com/freeservice
4
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
4. Most developers are in dire need of additional application security training and knowledge
Over 50% of users taking an application security fundamentals exam received a grade of C or lower. Over 30%
received a failing grade of D or F (Figure 31). The exam covers knowledge of broad security concepts, including
common threats, and may be taken by developers, managers, or QA testers. Considering these exam scores, it is no
wonder that over 50% of applications fail to achieve acceptable security quality upon initial submission. Performance
on other exams such as Secure coding for Java, Secure coding for .NET and Introduction to Cryptography didn’t fare
much better. Anywhere from 35% to 48% of users taking those courses received a grade of C or lower (Figure 31).
Recommendation: Application security training and education is not a formal part of most computer science
curriculums and certainly not a consistent theme in the professional development opportunities made available
to technology professionals in companies. Therefore the results obtained from these exams are no surprise.
Organizations are strongly encouraged to institute developer training and education programs to ensure a high
competency level on application security. Take advantage of eLearning platforms to provide this training in a
cost-effective and scalable manner. Close the loop on training by allowing developers to test their code using
automated analysis techniques.
5. The Software industry, including security products and services, have significant gaps in their security posture
Similar to our deeper analysis of the financial industry in Volume 2, we engaged in a deep dive on the software
industry segment in this report. What we found was both surprising and disappointing. It also served to explain
the recent breaches that have been carried out against prominent security vendors such as RSA, HBGary and
Comodo. Overall, 66% of Software industry applications were found to be of unacceptable security quality upon
initial submission (Figure 28), which is worse than the 58% unacceptable rate when applications from all industries
are taken into account. When measured against Veracode’s risk adjusted verification methodology the two worst
performers within the Software industry were the sub-categories of customer support (82% unacceptable) and
most surprisingly security products and services (72% unacceptable) (Figure 28). The customer support category
includes customer relationship management and web customer support applications. The security products and
services category includes applications that are being used to perform a security function. The good news was
that overall the Software industry demonstrated the ability to meet acceptable security quality in a timely manner.
Over 90% of all applications across the Software industry achieved acceptable security quality within 1 month.
The average for all applications in the security products and services sub-category was an impressive 3 days.
Recommendation: There are a few important lessons to be learned from this analysis. Security should not be
assumed on the part of any industry segment even when it is those producing software for a living—including
security software. A formal independent verification of security quality must be mandated in the procurement
process as well as in the SDLC before pushing applications to production. Further, it should be noted that the
verification process does not have to slow down the software acquisition or software deployment timeline.
The data confirms that acceptable security policy can be achieved within reasonable timeframes. Compare the
test results of different applications developed by staff with varying levels of security training to understand
where training is working and to fill in gaps.
5
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
6. While static analysis finds orders of magnitude more flaws than dynamic analysis, both techniques are
required for comprehensive coverage
Static analysis was able to find significantly more flaws as dynamic analysis in important categories such as XSS,
CRLF injection and SQL injection (overall as much as 22 times more) (Table 5). One major contributing factor in the
volumes of flaws found is that static analysis provides comprehensive coverage of the application whereas dynamic
analysis only tests code paths that it can discover externally. Often, dynamic (and even manual) testing completely
overlook portions of the application that are only reachable under certain circumstances (e.g. functionality that
is gated behind a series of forms that trigger different behavior depending on how they are filled out). On the
other hand, all the static findings will not necessarily be exploitable; dynamic and manual analysis are better at
determining exploitability.
Recommendation: The lesson for CISOs and CIOs is that a robust application security program must incorporate
multiple testing methods in order to ensure that applications are assessed with sufficient coverage, measured by
both depth and breadth. Becoming overly dependent on too few analysis methodologies guarantees blind spots
when assessing overall application risk. When you consider that prominent breaches such as Heartland Payment
Systems, HBGary, and the “Night Dragon” cyber attacks targeted at companies like Shell, Exxon Mobil and BP,
had SQL injection as their root cause, it’s prudent to maximize your chances of finding as many instances of this
issue in your code base as possible. Combining multiple testing techniques allows you to do exactly that. If your
testing process is currently limited to automated dynamic and or manual testing adding static testing can greatly
improve flaw identification.
7. Building secure software or requiring it from your suppliers does not have to be time consuming
Over 50% of commercial suppliers in our dataset resubmitted 90-100% of their applications and slightly under
40% of companies developing applications internally resubmitted 90-100% of their applications (Figure 4). When
all applications were measured against Veracode’s risk adjusted verification methodology, it was found that more
than 80% across all supplier types achieved an acceptable security quality within 1 month (Figure 7). What this
tells us is that when developers and security professionals attempt to do the right thing (i.e. achieve the requisite
security rating), they can do so quickly and efficiently. The trick is to have the right application security training,
testing tools and accurate guidance on where the vulnerabilities are and how to fix them. No one intends to write
insecure code, so when they are trained appropriately and made aware of the security weaknesses that exist in
their work products, they can act on that information and strive to achieve acceptable security quality expediently.
Recommendation: CIOs and CISOs should take relief in the knowledge that when the right application security
training, technologies for security verification and guidance on security weaknesses present in their applications are
made available to their development staff they will take responsibility and pursue the appropriate corrective actions
expediently. The same is true for an organization’s software suppliers. Arm your teams with the right training to
avoid mistakes in the first place, but equally as important, implement a formal application security program for
internally developed and third-party applications to improve the state of software security in your organization.
6
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
7
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Applications by Supplier
22%
70% Internally Developed
7%
1% Commercial
Open Source
Outsourced*
8
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
1%
Medium 14% 84%
1%
Low 3%
23% 73%
1%
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
New in Volume 3 is the inclusion of ColdFusion and PHP. As Table 1 shows, PHP is reasonably prevalent across
all software suppliers. ColdFusion found in some use across Commercial, Internally Developed and Outsourced
suppliers. There was a greater presence of web applications found across the software suppliers which is generally a
reflection of the population of the overall dataset in favor of web applications. The diversity in languages and platforms
across suppliers necessitates the importance of having a broad application security policy and testing approach that
can handle disparate application types. For example,
support for C/C++ and non-web applications is
Support for C/C++ and non-web applications required when choosing security testing approaches
is required when choosing security testing for third-party software.
approaches for third-party software.
9
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
10
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Remediation Analysis
Ever since we first started publishing the State of Software Security report in early 2010, we have received a lot of
interest in understanding the remediation workflow performed by organizations. Questions such as, what percentage
of applications and vulnerabilities get remediated, how long does it take, what is the improvement in the security
quality, are all frequently raised queries by customers and analysts. Therefore in this report, we decided to dedicate
a section to remediation analysis. This section attempts to unravel the process that organizations follow once vulner-
abilities have been reported to them as a result of some kind of application security test (static, dynamic or manual).
60 60
PERCENT OF COMPANIES
40 40
20 20
0 0
0 20 40 60 80 100 0 20 40 60 80 100
Figure 4 presents a graph that examines how frequently companies resubmit builds of their commercial or internally
developed applications following the initial analysis. These resubmitted builds typically contain a combination of
security fixes for previously reported vulnerabilities as well as new or altered code components that are not a result
of security fixes and may represent new functionality. In some instances, particularly for commercial software, the
resubmission may be characterized as a whole new version of a market facing release of the product in question.
The graph presents histograms for two categories of suppliers: Commercial and Internally Developed. Each bar shows
what percent of submitting companies resubmit some percentage (0-10%, 10-20%, … 90-100%) of their applications.
An application is considered resubmitted if it is analyzed at least twice by the same technique—static, dynamic, or
manual. As the two histograms show, over 50% of companies in our dataset resubmitted 90-100% of the commercial
applications and slightly under 40% of companies in our dataset resubmitted 90-100% of their internally developed
applications. It is important to interpret this figure correctly. While it might seem to be a positive indicator when a high
percentage of companies are resubmitting 90-100%, of their applications, it is actually mixed.
11
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
On the one hand, it is good when companies resubmit applications that do not achieve adequate security quality on
the first try. Indeed, this indicates serious diligence in pursuit of acceptable security quality. On the other hand, a high
resubmission rate indicates a need to resubmit (failure to achieve acceptable quality on at least one review) which is
not good. Similarly, if a high percentage of companies are resubmitting only 0-10% of their applications, this could
mean that applications do not need to be
resubmitted (good) or that companies are not
diligent about resubmission (bad). The bottom Over 50% of companies submitting commercial
line is that the above histograms suggest that a applications resubmitted 90-100% of them at least
reasonable portion of companies (approximately once. Over 40% of companies submitting internally
50% for commercially supplied applications and developed applications resubmitted 90-100%
40% for internally developed applications) are of them at least once. This indicates reasonable
being diligent by resubmitting 90-100% of the diligence but there is room for improvement.
applications that need improvement.
60 60
PERCENT OF COMPANIES
40 40
20 20
0 0
0 20 40 60 80 100 0 20 40 60 80 100 0 20 40 60 80 100
Figure 5 shows a similar analysis to the previous figure, but this time
broken down by Industry. Approximately 40% of companies in the Financial Resubmission rates
industry vertical resubmitted 90-100% of their applications. Government indicate moderate
and Software companies had resubmission rates that were significantly remediation activities
higher at approximately 60% and 55% of companies resubmitting 90-100% across industry verticals.
of their applications. In general this shows moderate efforts across industry
verticals to remedy the vulnerabilities in their software applications.
12
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
50 50
PERCENT OF COMPANIES
40 40
30 30
20 20
10 10
0 0
0 20 40 60 80 100 0 20 40 60 80 100 0 20 40 60 80 100
Next we performed the same analysis of resubmission activity broken down by application business criticality. The
results are depicted in Figure 6. We expected to see higher resubmission activity with increased business criticality
for three reasons. First, organizations often commence with a broad vulnerability discovery process that spans their
application inventory and then prioritize remediation activities for their higher criticality applications. Second, the criteria
for achieving acceptable security quality become more demanding as application critically increases. Third, the security
quality is presumably more important as the business critically of applications increases. What is surprising is that only
slightly more than 50% of companies resubmit 90-100% of their very high criticality applications. This is lower than
we expected. Also, the difference in remediation activity for “High” and “Medium” criticality applications is not
statistically significant. This is not consistent with our expectation that remediation activity for high criticality applications
would be greater than for medium applications. This is something that we will be tracking as our sample size continues
to grow. Our recommendation to
customers is to perform vulnerability
assessments across their entire
It is surprising that only slightly more than 50% of
application portfolio and use business
companies resubmit 90-100% of their “Very High”
criticality as one of the prioritization
business criticality applications. Our recommendation
criteria for remediation activities.
to customers is to perform vulnerability assessments
Automated vulnerability assessments
across their entire application portfolio and use
can help accelerate the vulnerability
business criticality as one of the prioritization criteria
discovery process across large
for remediation activities. Automated vulnerability
application inventories.
assessments can help accelerate the vulnerability
discovery process across large application inventories.
13
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
100
VERACODE SECURITY QUALITY SCORE
90
80
70
60
50
Resubmission activity
40 does lead to higher
security quality scores
build over build.
In addition to investigating resubmission activity, we wanted to look at whether or not the activity leads to more
robust and secure software. Indeed it does, as depicted in Figure 7 above. This analysis compares the range of
Veracode Security Quality Score (SQS) as achieved on the first, second, and third reviews. The non-overlapping
notches (around the median SQS line at the narrowest width of the boxes) in the above whisker plot suggest a
statistically significant increase in SQS from build one to two to three. The width of the whiskers depicts a depleting
sample size of application build increases. This sample size depletion is due to the fact that a significant portion of
applications that did not achieve security policy on the first try, do achieve it on the second. This is also true for the
decrease in sample size between build 2 and build 3. Collectively, these results suggest that resubmission activity
does lead to higher SQS and presumably more secure software.
14
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
80
SECURITY QUALITY SCORE
MEAN VERACODE
75
70
QUARTER
15
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Outsourced *
Open Source
Internally Developed
Commercial
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
The figures presented previously in this section explore the resubmission rate exhibited across various dimensions
such as supplier type and business criticality. Generally the purpose of resubmitting remediated builds is to close
the gap between the security quality of the application upon initial submission and the acceptability as dictated by
business criticality. Figure 9 measures the time it takes get to acceptable security quality (as measured by Veracode’s
risk adjusted verification methodology). Instead of just reporting a mean number of days per supplier type, above we
depict much more information in the form of a distribution of acceptable security quality achievement timeframes,
ranging from 0 days (success on the first try) to over a year. Applications that were found to be of acceptable security
quality upon initial submission are included in
this dataset within the 0-1 month category.
More than 80% of applications across supplier The overwhelming majority of applications across
types achieve acceptable security quality supplier types achieve acceptable security quality
within 1 month. May indicate that once within the first month. This is encouraging to see
security and development professionals are as it indicates that once security and development
made aware of security weaknesses in their professionals are made aware of security
applications they are quick to take action. weaknesses in their applications they are quick
to take action.
16
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
One challenge that will continue to plague web applications is the pervasiveness of vulnerabilities such as Cross-site
scripting (XSS). Because the presence of a single XSS flaw will designate an application as Not Acceptable by OWASP
Top 10 policy, most web applications will have a difficult time reaching Acceptable status until developers focus more
steadfastly on eradicating these common issues. Given the lack of improvement we’ve observed in XSS quarter over
quarter (see Figure 20), it would be surprising to see the Acceptable percentage surpass 50% any time soon.
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Figure 10: OWASP Top 10 Compliance by Supplier on First Submission (Web Applications)
Figure 11 examines suppliers’ ability to deliver applications as measured by compliance against the CWE/SANS
Top 25 Most Dangerous Software Errors. Only non-web applications were included in this analysis as web applications
are more commonly measured against the OWASP Top 10, as shown in Figure 10. This is different from our last
report, where CWE/SANS Top 25 compliance was reported across all applications. Internally Developed applications
performed the best with 62% of applications meeting acceptance. Commercial applications fared slightly worse. This
is unsurprising given that many enterprises are just beginning to factor the software supply chain into their software
assurance programs where many of those applications may have never been independently tested before.
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Figure 11: CWE/SANS Top 25 Compliance by Supplier on First Submission (Non-Web Applications)
17
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Cross-site Scripting 52% Cross-site Scripting 47% Cross-site Scripting 36% CRLF Injection 37%
(XSS) (XSS) (XSS)
CRLF Injection 13% Information Leakage 14% Information Leakage 14% Cross-site Scripting 37%
(XSS)
Information Leakage 13% CRLF Injection 8% Directory Traversal 13% Information Leakage 8%
Time and State 1% Potential Backdoor 3% SQL Injection 3% Time and State 1%
This is one of the most rapidly developing parts of our business and has contributed substantially to the growth of the
dataset that is included in this report. This section reveals some key characteristics of this fast growing third-party risk
assessment market and establishes not just its viability but the real benefits that can be realized by both the software
producer and the purchaser that engage in this process.
18
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
31%
25% Software/IT Services
4% Financial
Other
19
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
10% Operations
8% 4%
Financial
3%
27% Learning and Growth
Customer Support
48%
Security Products and Services
Other
20
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Acceptable
25% Not Acceptable
75%
21
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Security of Applications
The previous section presented information from the software supplier and purchaser perspectives in an attempt
to help enterprises properly manage application risk in the software supply chain. In this section of the report we
explore security risks related to web and non-web applications, programming languages, types of vulnerabilities, and
industry alignment. New in this report, we provide a deeper investigation of application security within the software
and IT services industry vertical.
As background, software vulnerabilities are the attack points in applications used by hackers to compromise a
system. Different types of applications have different attack points. For example, web applications have different
attack surfaces than desktop software or databases. Additionally, vulnerabilities can vary significantly by programming
language and platforms such as the Windows versus Java operating systems. It is also possible for applications in
different industries to have different vulnerabilities based on the secure coding skills of the engineering population
serving those industries (e.g. Financial Services versus Retail) and the sophistication of their software development
practices or central security teams.
While no software will ever be perfectly secure, understanding what makes applications more or less vulnerable
provides the basis for CIOs, CISOs, and software professionals to manage application portfolio risk rather than
remain blindly susceptible to breaches carried out by the successful exploits of zero-day and other application
layer vulnerabilities.
Web Applications
25% Non-Web Applications
75%
22
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
12% Java
6%
27% .NET
2%
52% C/C++
PHP
ColdFusion
In our last report we showed the relative distributions of five development platforms—Java, C/C++,.NET, PHP,
and ColdFusion. The biggest change this time around is that C/C++ apps comprise only 12% of the data, down
from 19%. An increase in PHP and ColdFusion accounts for this gap. Java and .NET still account for nearly 80%
of all applications submitted for analysis, suggesting that many enterprises’ application security strategy may not
extend beyond public-facing web applications. This is also corroborated by the fact that three-quarters of our
dataset represents web applications.
To explore the impact of programming language on application security, Table 3 shows the median flaw density for
each. The median flaws per thousand lines of code (KLOC) for Java, C/C++, and .NET are similar. Many people ask
whether switching languages will improve application security.
23
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Both ColdFusion and PHP exhibited much higher flaw densities, with medians of 2.6 and 0.3 flaws per KLOC,
respectively. In our last report we also noted that ColdFusion’s flaw density was unusually high. We speculated that
this could be due to the compactness of the ColdFusion language as well as the sophistication of ColdFusion
developers relative to Java or .NET developers. PHP could be explained similarly. While PHP code is not as compact
as ColdFusion code, both languages are very easy to learn and encourage less disciplined coding practices than
other languages.
We acknowledge that flaw density is an imperfect metric. For example, larger applications may contain higher
proportions of framework code or interface classes, both of which inflate the KLOC count without actually adding
functionality. Code comments are an additional source of inflation. Alternatively, we could measure flaws per
megabyte of compiled code, but this would skew the metric differently, putting bytecode languages at an inherent
disadvantage and producing different measurements based on compiler settings and optimizations.
In web applications, Cross-site Scripting (XSS) remains the Cross-site Scripting (XSS) remains
most prevalent vulnerability category by frequency, accounting the most prevalent vulnerability
for 53% of all vulnerabilities in the data set (Figure 17). The category by frequency, accounting
next three categories behind XSS—Information Leakage, CRLF for 53% of all vulnerabilities in
Injection, and Cryptographic Issues—maintain the same rankings web applications.
as we observed in our last two reports.
24
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Cryptographic Issues 4%
SQL Injection 4%
Directory Traversal 3%
Encapsulation 2%
Buffer Overflow 1%
Credentials Management 1%
Potential Backdoor 1%
API Abuse 1%
Error Handling 1%
0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 55%
Figure 17: Top Vulnerability Categories (Overall Prevalence for Web Applications)
In non-web applications, buffer overflows and error handling account for over one-third of all vulnerabilities detected
(Figure 18). This should not be surprising, as buffer overflows and related memory corruption vulnerabilities are
notoriously difficult to eradicate due to the variety of ways in which they can manifest. Exacerbating the situation,
many companies still have not banned the use of known dangerous functions (e.g. strcpy, strcat) despite the fact
that safe alternatives have existed for years.
25
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Numeric Errors 6%
Information Leakage 4%
CRLF Injection 2%
SQL Injection 2%
Credentials Management 1%
Dangerous Functions 1%
OS Command Injection 1%
Figure 18: Top Vulnerability Categories (Overall Prevalence for Non-Web Applications)
26
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Even though a vulnerability category may account for a small percentage of the total vulnerabilities, the frequency
with which it appears across different applications may be a more illuminating statistic. Viewing the vulnerabilities by
affected web applications, Information Leakage tops the list, with over two-thirds of applications containing at least
one vulnerability in this category (Figure 19). Information
Leakage comprised flaws such as verbose error messages,
disclosure of exception stack traces, and extraneous files on Viewing the vulnerabilities by affected
the server (detected dynamically), among others. Cross-site web applications, Information Leakage
Scripting and Cryptographic Issues were also extremely tops the list, with over two-thirds of
widespread, appearing in 70% and 58% of all web applications containing at least one
applications, respectively. vulnerability in this category.
Encapsulation 22%
0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 55% 60% 65% 70% 75%
Figure 19: Top Vulnerability Categories (Percent of Applications Affected for Web Applications)
We also took a closer look at the trends in XSS and SQL Injection, the two most commonly discussed issues in web
application security. Looking at the percent of applications affected, quarter over quarter since the beginning of 2009,
we see XSS remaining nearly flat (Figure 20). Statistically speaking, the trend is flat. This is discouraging, particularly
given that XSS is a hot-button issue in many enterprises and one that most organizations are actively trying to
reduce. This trend could indicate that testing and remediation efforts are just barely keeping pace with development
of new applications. It will be interesting to keep an eye on this trend over the coming years; the success or failure
of XSS eradication efforts may be a bellwether for application security progress.
27
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
80
APPLICATIONS AFFECTED
PERCENTAGE OF WEB
60
40
20
QUARTER
Figure 20: Quarterly Trend for XSS
The trend in SQL Injection is more promising. Over the past eight quarters, the percentage of applications affected
by SQL Injection has gradually decreased by 2.4% per quarter, a statistically significant amount according to linear
regression (Figure 21). One factor that may explain this progress is that SQL Injection is a very easy problem to
understand and to fix. Unlike XSS where developers need to understand and apply context-specific encoding
mechanisms, fixing SQL Injection is a matter of replacing ad-hoc database
queries with parameterized prepared statements. There are some edge
SQL Injection has cases, but even those tend to be straightforward to fix. On one hand, it’s
gradually decreased by reassuring that the industry seems to be making progress at reducing SQL
2.4% per quarter while Injection; on the other hand, it’s disappointing that we’re not seeing a steeper
XSS is remaining flat. downward trend. SQL Injection has repeatedly been reported as the initial
attack vector for high-profile, targeted breaches.
100
80
APPLICATIONS AFFECTED
PERCENTAGE OF WEB
60
40
20
QUARTER
28
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 55%
Figure 22: Top Vulnerability Categories (Percentage of Applications Affected for Non-Web Applications)
29
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Across the board we see XSS still dominating all the languages typically used to write web applications. Java and
.NET are significantly lower than ColdFusion and PHP. This is likely because Java and .NET are used in more mature
enterprise development environments where there is more awareness of the need to prevent XSS.
The other major web vulnerability that is the source of so many breaches that it makes the news almost daily is
SQL Injection. This category doesn’t make the top five for either Java or .NET but is ranked second for ColdFusion
and third for PHP. This is another data point suggesting that more mature enterprise development teams have this
common and dangerous vulnerability more under control with their development processes than teams using
ColdFusion and PHP.
The rest of the top 5 most prevalent issues for web development languages share the same issues—Information
Leakage, Directory Traversal, Cryptographic Issues, and OS Command Injection—but there is one standout that is
unique to Java: CRLF Injection. Java applications tend to log much more than applications written in other languages.
Logging is one of the many functions that is susceptible to CRLF Injection.
The non-type safety of C/C++ brings three of the top five to the list: Buffer Overflow, Numeric Errors (integer
overflow and others), and Buffer Mgmt Errors. Error Handling is also more difficult in C/C++ which brings it to the
number two position. Potential Backdoor, which is issues such as hardcoded passwords and keys, is also uniquely
popular to C/C++.
The high prevalence of these top categories suggests that developers can make their applications much more
secure by focusing on just a few vulnerability categories during their SDLC. C/C++ programmers need to focus on
buffer issues, numeric issues, and backdoors. Web developers need to focus on XSS, CRLF Injection, SQL Injection,
Command Injection, Directory Traversal, and
Information Leakage. This focused approach lines
up quite well with the top four hacking root cause C/C++ programmers need to focus on buffer
issues listed in the Verizon 2010 Data Breach issues, numeric issues, and backdoors. Web
Investigations Report: Backdoor/Control Channel, developers need to focus on XSS, CRLF Injection,
SQL Injection, Command Injection, XSS.5 SQL Injection, Command Injection, Directory
Traversal, and Information Leakage.
5 www.verizonbusiness.com/resources/reports/rp_2010-data-breach-report_en_xg.pdf
30
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Cross-site 50% Cross-site 89% Buffer Overflow 27% Cross-site 44% Cross-site 80%
Scripting (XSS) Scripting (XSS) Scripting (XSS) Scripting (XSS)
CRLF Injection 17% SQL Injection 9% Error Handling 23% Information 23% Directory 8%
Leakage Traversal
Information 14% OS Command <1% Potential 22% Cryptographic 11% SQL Injection 6%
Leakage Injection Backdoor Issues
Veracode provides automated static analysis for all types of applications and automated dynamic and manual testing
for web applications. Each testing technique has strengths and weaknesses and there is no silver bullet. In many
situations, such as with high business risk applications it is prudent to use multiple testing techniques. For other
situations there may only be enough resources to perform one type of testing. To enable this decision making it is
useful to compare automated static and automated dynamic analysis test results to see the efficacy of the different
methods in finding the vulnerability categories that are putting your organization at risk.
Table 5 lists the mean flaws detected per application by vulnerability category for all the applications that Veracode
performed both static and dynamic analysis on. The applications under test are all web applications. The table is
sorted by static analysis prevalence.
The first data point that jumps out is the sum of the top 15 categories is much higher for static vs. dynamic:
635 vs. 29, which is a 22 times difference. The majority of this drastic difference in quantity is caused by the top
two categories: XSS and CRLF Injection which make up 77% of the static results.
31
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
If you look at the nature of XSS it is something that can be reported on every output of a web application containing
untrusted user data that is not output encoded. Because static analysis can view every single output of the
application, even rare edge and error outputs, static analysis gets excellent code coverage for detecting XSS.
Dynamic analysis is challenged to find all the rare outputs of the application because it is impossible to create every
possible state of the application in a reasonable amount of time. For XSS detection, static analysis has a great
advantage over dynamic analysis.
CRLF Injection is an example of a flaw that can occur in places within an application where dynamic analysis has
no visibility. Many instances of CRLF Injection occur during logging which dynamic analysis cannot see because
it is internal to the application.
Static vs. Dynamic: Mean Flaws Detected per Application by Vulnerability Category
Information Leakage 41 20
SQL Injection 32 4
Encapsulation 16 0
Directory Traversal 14 0
Race Conditions 5 0
Potential Backdoor 4 0
Credentials Management 3 0
API Abuse 2 0
Table 5: Static vs. Dynamic: Mean Flaws Detected per Application by Vulnerability Category
32
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Information leakage is a category where dynamic analysis does quite well compared to static analysis. Static finds
more flaws but it is only a two to one ratio in number of flaws found. Both techniques were able to find SQL
Injection although static analysis found about 8 times as many for this set of applications.
What accounts for the disparity between static and dynamic methods, independent of vendor? One major contributing
factor is that static analysis provides comprehensive coverage of the application whereas dynamic analysis only tests
code paths that it can discover externally. Often, dynamic (and even manual) testing completely overlooks portions
of the application that are only reachable under certain circumstances. For example, application functionality may be
gated behind a series of forms that trigger different behavior depending on how they are filled out. Also, applications
that support different types of users (e.g. view-only, author, editor, administrator, power user, etc.) often restrict the
functionality that each user level can access, meaning that the application must be scanned multiple times, iterating
over all of the user roles, in order to maximize coverage.
It is not a surprise that XSS is the first or second most prevalent risk for all the categories but Government applications
stands out as being the worst on XSS issues. On the other hand Government applications do the best on Information
Leakage out of all the industries.
The only other category that is a standout by industry is prevalence of potential backdoor flaws found for the
Software industry. This is typically hardcoded passwords and keys and is often just poorly implemented debug or
support functionality. It makes sense that the Software industry, which often provides remote product support for
customer deployments, would have a greater prevalence of this vulnerability.
33
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Cross-site Scripting 58% Information Leakage 22% Cross-site Scripting 81% Cross-site Scripting 48%
(XSS) (XSS) (XSS)
Information Leakage 11% Cross-site Scripting 17% SQL Injection 7% CRLF Injection 16%
(XSS)
CRLF Injection 11% CRLF Injection 9% CRLF Injection 4% Information Leakage 14%
Insufficient Input 1% Error Handling 6% Insufficient Input <1% Time and State 2%
Validation Validation
Time and State 1% Time and State 3% Credentials Mgmt <1% Potential Backdoor <1%
Error Handling <1% SQL Injection 3% Encapsulation <1% Error Handling <1%
Potential Backdoor <1% Buffer Mgmt Errors 2% Error Handling <1% Untrusted Search <1%
Path
Credentials Mgmt <1% Credentials Mgmt 1% Potential Backdoor <1% Insufficient Input <1%
Validation
Race Conditions <1% Encapsulation <1% API Abuse <1% Credentials Mgmt <1%
API Abuse <1% API Abuse <1% Buffer Mgmt Errors <1% API Abuse <1%
Industry Group Definitions: The Finance-related industries group combines applications from the Financial Service, Insurance, and Banking
industries (self identified); the Computer-related industries category combines applications from the Computer Software, Computer Services,
and Security Products and Services industries; Government is unclassified US federal, state, and local government agencies (self-identified).
Other combines applications from from all other industries including Energy, Healthcare, Pharmaceuticals, Media and Entertainment,
Computer Hardware, Manufacturing, Education, Aerospace and Defense and Telecommunications (self identified).
34
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
We investigated the performance of applications upon initial submissions relative to their business criticality.
As Figure 23 shows only 14% of applications designated as “Very High” business criticality were deemed to have
acceptable performance on initial submission. This is a significant downturn from the last report where 32% of the
applications were found to be of acceptable security quality. However, results from applications of “High” business
criticality remained the same with 38% acceptable upon initial submission. Performance on initial submission of
the most mission-critical applications in an organization remains poor. Clearly a lot needs to be done to improve
the security posture of the most mission critical applications in an organization.
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
We explored the impact of industry on the application performance above, to determine whether some industry
verticals have more security-aware development teams and more formal development practices. The results of
our analysis in Figure 24 show Government and Financial continue to maintain the top two spots. Software-related
Industries continue to fare the worst with only 34% found to be acceptable. Given that this has been a consistent
theme in our reporting we decided to perform a deep dive of the Software industry to help understand why this
may be the case.
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
35
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Security Quality Score Distribution for Public vs. Private Software Company
Private Public
100
90
VERACODE SECURITY QUALITY SCORE
80
70
60
50
40
30
Figure 25: Security Quality Score Distribution for Public vs. Private Software Company
36
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
100
90
VERACODE SECURITY QUALITY SCORE
80
70
60
50
40
30
37
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Customer Support and Content Management and Collaboration Software were the next two highest scoring categories
with median scores of 74 and 78 respectively. Surprisingly Operations and Security Products and Services were at the
bottom of the stack with median scores of 73 and 76 respectively. This was disappointing given the criticality of these
types of software applications to the reliable and secure functioning of an organization’s technology infrastructure.
100
90
VERACODE SECURITY QUALITY SCORE
80
70
60
50
40
30
Application Purpose Definitions: Customer Support category includes customer relationship management,
web customer support and other types of customer support applications; Financial category includes traditional
accounting and finance applications and newer mobile banking applications; Content Management and Collabora-
tion Software category includes website content management, content collaboration and sharing and web
conferencing types of applications; Operations category includes applications supporting day-to-day non-financial
business activity such as product development, information management utilities, IT management and SDLC
tools etc.; Security Products and Services category includes applications that are being used to perform a security
function; Other is a combination of remaining types of applications and includes healthcare applications.
38
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
39
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Operations
Financial
Customer Support
Other
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Figure 29: Time to Acceptable Security Quality for Software Industry Sub-segments
Figure 30 shows the percentage distribution by sub-segment for the dataset used for the Software industry analysis.
Financial
Customer Support
Other
40
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
The Veracode eLearning service offers several graded exams that are
either taken by themselves or following an eLearning course. This More than 50% of students
report looks at the performance of developers on four assessments: achieved a rating of C or lower
the Veracode Application Security Fundamentals Assessment, the when tested for application
Secure .NET Coding exam, the Secure Java Coding exam, and the security fundamentals. More
Introduction to Cryptography exam. For the purposes of this analysis, than 30% had a failing grade
a grading scale was assigned to the results: A: >90; B: between 80 of D or F.
and 89; C: between 70 and 79; D: between 60 and 69; F: less than 60.
A B C D F
Application Security
Fundamentals Assessment
Introduction to Cryptography
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Measurements of initial security knowledge: While a customer is free to take the assessments in any order,
the Veracode Application Security Fundamentals Assessment is commonly taken as the first step in the eLearning
program as a skills assessment to determine future coursework. The assessment covers knowledge of security
concepts, including common threats, and may be taken by developers, managers, or QA testers. This assessment
had the lowest number of students achieving an A (29%) and the highest number achieving a D or F (31% combined).
This suggests that while there is a sizable population of developers who have a good knowledge of security
fundamentals, there is also a large population who have a poor grasp of the fundamentals of application security.
It should also be noted that this test is generally taken before any coursework to evaluate the baseline understanding
of users on common application security principles. That may also explain lower scores as compared to the other
tests which are generally taken after appropriate coursework.
41
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Measurements of developer knowledge: The two Secure Coding exams are targeted at developers, and are gener-
ally taken following structured courses on their topics and include questions that ask the student to evaluate the se-
curity of code samples as well as concept testing. While a larger portion of users scored an A on these tests (35%
for .NET, 40% for Java), there were still a substantial number who scored a D or F. Of note, the same percentage
(31%) of the students taking the Java exam scored a D or F as on the Security Fundamentals Assessment.
Figure 32 represents the percentage of students taking the different courses depicted in Figure 31.
Application Security
48% Fundamentals Assessment
42
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
The above corporate breaches are examples of the two major threat space trends going on today.
1. Attackers are discovering and exploiting common vulnerabilities on internally developed web applications
to steal the data they manage or as stepping stones to penetrate deeper into organizations.
2. Attackers are taking advantage of vulnerabilities found in common desktop software purchased by organiza-
tions in order to compromise employee workstations as pivot points to get deeper toward their goal.
Some organizations are stepping up to these enhanced attack trends and putting in place comprehensive application
security or application risk management programs. These programs seek to instill application security across the entire
organization application portfolio, whether the software is developed in-house or delivered from an external source
such as an outsourced, open source project or traditional software vendor. Most organizations that have a relatively
mature internal SDLC process are moving to add a third-party risk or supply chain risk program.
The majority of corporations and government organizations are not at this level of maturity and are still tackling
application security as a project covering just their highest risk internal applications. This isn’t nearly enough. HBGary
was compromised with a SQL Injection vulnerability in a modified open source CMS. Night Dragon attackers hit any
vulnerable perimeter web application at the energy companies they targeted. RSA was done in by a vulnerability in a
common software component for document viewing. It is safe to say that the vulnerable software that allowed these
organizations to be penetrated was not covered by their application security projects.
Besides the threat space trends wreaking new havoc on the traditional desktop and server platforms there are new
non-traditional platforms coming on line in the corporate and government world: mobile and cloud. Cloud platforms
came first, but mobile is growing like wildfire and is becoming part of the enterprise ecosystem faster than a CEO
can say, “Hook my iPad up to the Exchange server.” It isn’t just executives though. Everyone wants to do more
enterprise computing on the new mobile platforms.
43
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
RIM’s Blackberry platform has been a mainstay in corporate and government IT departments for many years. The
platform was built for enterprise worthy email and device security. Perhaps in an odd way its security was enhanced
by lack of many 3rd party apps. New mobile platforms including iOS and Android are changing all this with a lack
of enterprise features and a rich consumer ecosystem of third-party apps. While there are many thousands of
compelling apps for these new mobile platforms and that is a great part of their appeal, all it takes is a few dangerous
ones to leave enterprise security teams scrambling for solutions to keep their mobile users productive and happy
while protecting corporate assets from exposure.
The way to secure these new mobile platforms for the enterprise is still evolving but it is clear something has to
happen at the app layer. The Android marketplace has allowed a few trojaned applications to be downloaded by users
with the DroidDream attack being the largest, downloaded by over 50,000 users. The walled garden approach of
Apple has shown itself to be more secure due to the higher scrutiny of the approval process. This ecosystem is
incredibly dynamic so mobile app security, in its infancy now, will likely be in for tremendous growth in 2011.
Organizations will continue to run more applications in cloud environments, but unlike mobile, enterprises are
moving more cautiously with this new environment. Efforts such as the Cloud Security Alliance are helping to
educate enterprise development teams and security departments how to build secure applications for the cloud.
44
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Addendum
Methodology
In any study of this size there is a risk that sampling issues will arise because of the nature of the way the data was
collected. For instance, it should be kept in mind that all the applications in this study came from organizations that
were motivated enough about application security to engage Veracode for an independent assessment of software
risk. Care has been taken to only present comparisons where a statistically significant sample size was present.
45
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Very High Mission critical for business/safety of life and limb on the line
High Exploitation causes serious brand damage and financial loss with long term business impact
Medium Applications connected to the Internet that process financial or private customer information
High (AL4)
This is typically an important multi-user business application reachable from the Internet and is critical that the
application maintain high availability to accomplish its mission. Exploitation of high assurance applications cause
serious brand damage and business/financial loss and could lead to long term business impact. Exploitation is
a result of a breach in any two impact categories of confidentiality, integrity and availability of the application.
Medium (AL3)
This is typically a multi-user application connected to the Internet or any system that processes financial or private
customer information. Exploitation of medium assurance applications typically result in material business impact resulting
in some financial loss, brand damage or business liability. Exploitation is a result of a breach in confidentiality, integrity or
availability of the application. An example is a financial services company’s internal 401K management system.
Low (AL2)
This is typically an internal only application that requires low levels of application security such as authentication
to protect access to non-critical business information and prevent IT disruptions. Exploitation of low assurance
applications may lead to minor levels of inconvenience, distress or IT disruption. An example internal system is
a conference room reservation or business card order system.
46
VERACODE STATE OF SOFTWARE SECURITY REPORT: VOLUME 3
Veracode, Inc. ABOUT VERACODE
4 Van de Graaff Drive Veracode is the only independent provider of cloud-based application intelligence and security
Burlington, MA 01803 verification services. The Veracode platform provides the fastest, most comprehensive solution
to improve the security of internally developed, purchased or outsourced software applications
Tel +1.781.425.6040
and third-party components. By combining patented static, dynamic and manual testing, extensive
Fax +1.781.425.6039
eLearning capabilities, and advanced application analytics Veracode enables scalable, policy-driven
www.veracode.com application risk management programs. Veracode delivers unbiased proof of application security
to stakeholders across the software supply chain while supporting independent audit and
© 2011 Veracode, Inc. compliance requirements for all applications no matter how they are deployed, via the web,
All rights reserved. mobile or in the cloud. The company’s more than 175 customers include Barclays PLC, California
Public Employees’ Retirement System (CalPERS), Computershare and the Federal Aviation
Administration (FAA). For more information, visit www.veracode.com, follow on Twitter:
SSSR /0411 @Veracode or read the ZeroDay Labs blog.