You are on page 1of 13

What Executives Need to

Know About Web Application


Development Security

Secure SDLC enhances


the traditional Software
Development Life Cycle
to incorporate security as
a base requirement.

6450 Via Real, Suite3


Carpinteria, CA 93013

WHITE PAPER
800-721-9177
805-684-6858
TABLE OF CONTENTS
1 Executive Summary

2 The Business Impact of Security

3 How the Current Development Process Creates Risk for


the Business

4 An Executive View of the Software Development Life Cycle

5 Secure SDLC – The Secure Software Development Life Cycle

6 Business Impact of Addressing Security Early

7 Four Steps to Immediately Improve the Security of


Your Applications

8 Conclusion

Page 1 | www.redspin.com 2009 | White Paper


Executive Summary
It is common knowledge that security is not one task at a given point in time but
an ongoing process, yet currently, the most common approach to securing a web
application involves doing a single security test, usually a Web Application Security
Assessment, when a development project is completed. While this is still a requirement
for secure software development, this paper discusses why security needs to be
incorporated earlier and throughout the Software Development Life Cycle (SDLC). We
also describe an improved model for developing more secure web applications – the
secure SDLC – and provide steps that you can take to immediately improve the security
of your existing web applications and development process. This applies to both new
application development and also existing applications that have been released to
production.

The Business Impact of Security


The days of “oops, we got hacked,” security in all phases of development
The days of “oops, being an acceptable management from initial requirements development
response after an intrusion are long by the marketing department to ongoing
we got hacked,” gone. Customers, regulators, and the operations and maintenance after
news-reading public expect security deployment.
being an acceptable to be the default operating condition.
Security breaches have tremendous The impact of a security breach continues
management financial, brand and regulatory impact to rise in terms of hard costs, litigation
and the “oops” response is no longer and lost brand value. The Heartland
response after a reasonable means of protecting a Payment Systems, TJX/TJ Stores and
CISO’s career. Security is expected. CardSystems, Inc. incidents are
an intrusion are examples of how high these costs can
But security is hard. Even the most basic be: hundreds of millions of dollars and
long gone. web application can be quite complex, dozens of lawsuits for Heartland and TJX
so it is no surprise that making them respectively, while CardSystems is just a
secure is no easy task. It is also not shell of its old self as it lost essentially all
surprising that creating a web application of its customers after its breach. As the
that comes off the production line as business impact of a breach increases,
secure must have been developed with executives are finding that maximizing
security in mind since inception. After shareholder value means minimizing
all, you can’t expect a web application security risk. This is a significant step
coded with lackluster standards and which takes a management commitment
coding flaws to be secure upon release. to make security a requirement for all
Secure applications do not just happen web applications. A goal of this paper is
randomly; they are part of a deliberate to help executives — those in leadership
commitment to a robust development roles, LoB GMs, CISOs and CIOs —
process with high security standards. better understand the secure SDLC
Secure application development requires so that secure development becomes
a long-term commitment to a structured ingrained in the business culture.
development process that embraces

Page 2 | www.redspin.com 2009 | White Paper


How the Current Development Process
Creates Risk for the Business
Here is a typical scenario in a web time the bugs are uncovered. Because
development project: development is business unit leaders and the marketing
complete and the application is ready department had no idea that security
to be deployed or has already been specifically needed to be called out
deployed (sometimes for years in the as a requirement, they are surprised by
case of legacy applications) and then any additional cost and schedule delays
the project team decides to require a caused by these security fixes. Security
security test before the application goes related schedule delays can be difficult
into production to verify that it is secure. to explain to customers as well.
Often, the decision is made based on
fear due to a recent security breach 2. Risk
reported in the news or by a competitor The second big impact is risk. Software
or as a last minute requirement stipulated systems, even simple ones, can be quite
by a big client. In these cases the complex. While a Web Application
cost of a Web Application Security Security Assessment does a pretty good
Assessment has not been factored into job at assessing risk, it is not 100%
the development budget, which is one effective. There are potential flaws
indication that security was a last minute in a web application that may not be
task add-on rather than a core front-end uncovered by an assessment. Some of
requirement. Furthermore, because not these flaws may be uncovered much
only was security testing not budgeted, later as new testing methodologies
it was not scheduled, introducing delays are developed — perhaps by testers,
into the release schedule. or maybe by hackers. Furthermore,
no software can be perfect, therefore,
This is not all bad of course, if security one aspect of secure application
was not considered early on in the design is to build in layers of security,
development process then doing a so if one aspect of the security model
Web Application Security Assessment, fails, the impact would be minimized.
if done properly and thoroughly, may This type of security design minimizes
be the single biggest thing to minimize risk and reflects an understanding of
the risk of a major security breach. the complexity of software and the
However, it is not without impact to the ever-changing landscape of risk. It is
organization. There are two significant really unreasonable to expect that a
impacts that go beyond budget and development process that is not built
project management schedules that are around security, would result in a secure
indicative of considering security late in application.
the development cycle.
Many managers are responsible for
1. Surprise legacy web applications that were
The first is surprise. Development teams inherited or acquired. In these cases a
are often surprised with the extent of Web Application Security Assessment
the security issues identified as part of might be a requirement to quickly identify
a Web Application Security Assessment. security risk. In these situations, surprise is
Because fixing security issues and a given, but with new development there
managing delays often involve other is no need to be surprised by security at
groups, the surprise is felt throughout the end of the development life cycle.
the organization. The system architect In the following sections we’ll discuss
needs to evaluate the security flaws, a new model for web development
then the developers need to code up the that incorporates security up front and
fix. Whether the development team is minimizes both the surprise factor and the
outsourced or works in-house, they have risk with a predictable and repeatable
often moved on to other projects by the process to develop robust software that
adheres to security best practices.

Page 3 | www.redspin.com 2009 | White Paper


An Executive View of the Software
Development Life Cycle
Secure SDLC enhances the traditional Development
software development life cycle During this phase software developers
to incorporate security as a base are focused on writing code to build the
requirement. Security affects nearly all application itself. This phase typically
parts of a software system, from the begins with a heavy programming
operating systems and programming emphasis, with an increased amount of
languages used, to the data it transmits time spent on quality assurance testing
and stores, to the customers/users and as the phase progresses.
their capabilities. So as you might expect,
incorporating security as a requirement Deployment
impacts all phases of development. The final phase is ongoing. It begins with
Before we discuss a secure SDLC, let’s a final test, including security testing,
review the traditional SDLC. and is then released. Once live, the web
application must be maintained along
Many models have been developed with the network and server environment
to characterize and guide the software in which it is hosted. Bugs are fixed,
development process and many features are added and the software is
companies have modified these or generally maintained.
adopted their own to suit their specific
needs. While each company’s SDLC The many models of SDLC reflect the
may vary, they generally include the evolution of thought on the subject (new
following four phases. Our discussion of models are developed all the time) and
secure SDLC will use this terminology. there is a need for organizations to
leverage a model that works for them.
Requirements For example, the model used by a
This is where the software is dedicated software company working on
conceptualized and specific features are a big project, might not be appropriate
defined by a product team to address for a small team project. Whatever
a specific business need or customer the model and naming conventions,
demand. the basic progression of development
is pretty consistent. In the next section,
Design we’ll see how security is incorporated
In the design phase detailed specifications into these phases.
for the software are developed along
with an overall application architecture.

Page 4 | www.redspin.com 2009 | White Paper


Secure SDLC – The Secure Software
Development Life Cycle
Figure 1 incorporates initiatives associated with a secure SDLC into the four phases of a
traditional SDLC - requirements, design, development and deployment. These additions
are shown below each phase. While there are a variety of ways to integrate a secure
development process into an organization, and the differing structures, goals and
processes of each organization dictate a flexible approach, Figure 1 represents some
of the most basic elements that are likely part of most secure SDLCs.

To better understand the secure SDLC, we’ll provide a quick description of each of the
above tasks.

FOR ALL PHASES OF DEVELOPMENT

The fundamental requirement for any secure SDLC is education and management
commitment as these apply to all phases of the model.

Education
Security education applies to all development project stakeholders. For example, product
marketing needs to learn about the importance of security and the nature of security risk.
This will facilitate defining security requirements in the early phases of development
and also helps them understand the need to incorporate security testing into the project
timeline. Developers, for example, need technical education and training on secure
coding, while the Quality Assurance (QA) team needs to learn how to apply security
testing techniques. Then, farther down the line, the operational IT team would need to
be educated about securing the network and operating system environment.

Management Commitment
Security starts at the top. If executive management is not committed to cultivating a
culture of secure application development, then it is hard to imagine that the additional
investment of a secure SDLC would be considered a priority throughout the organization.
Integrating security into a development project moves the time allocation and some budget
items for security tasks earlier in the process. While this approach is widely accepted
as significantly reducing the security risk of a data breach that could impact business

Secure Software
Development Life
Cycle

Figure 1. Secure SDLC

Page 5 | www.redspin.com 2009 | White Paper


profitability and brand, it’s tempting to ignore security until later in the process as this
might speed up development and cut out some short term costs. Accepting incremental
development cost and time increases for the sake of long term risk management is a
strategic management decision.

REQUIREMENTS PHASE

Communication
Communication in the context of secure SDLC means ensuring that all development
project stakeholders are aware that security is strategic to the business. It is the statement
that adherence to fundamental security best practices, organizational security policies
and application level security requirements is central to the development effort. Early
articulation of the importance of these security principles is a starting point for ensuring
that the project does not lose sight of security.

Web Application Security Policy


A web application security policy serves as the documented version of the previous
communication step. It defines some of the high-level best practices, organization
security policies that specifically address web applications and security requirements
that are applicable to the entire portfolio of web applications in a given business. It is
a policy that ensures that multiple projects within a company are applying the secure
SDLC consistently. This codifies the secure SDLC and may include some of the basic
building blocks shown in Figure 1 as standards for development.

Use and Mis-Use Cases


Use case modeling in development is a way to characterize how users interact with a
system to use specific functionality of the software. Use cases provide a practical way
to describe common scenarios for how users will use certain functional requirements of
a system. Mis-use cases are similar except that they model how an attacker may use
the system in a way that is not intended by its designers to compromise the system.
Understanding mis-use cases helps determine the kinds of controls needed in the
application.

Security Requirements
In a pre-security oriented development process, the requirements phase captures the
features that need to be included in the application. This is an opportunity to define
what functionality the application will include. In secure SDLC, the requirements phase
is expanded to include any specific security considerations that need to be factored into
the development. This is the opportunity to specify any compliance- or data security-
driven security requirements, as well as any industry-specific best practices that are
relevant to web applications in general, or specific to an industry.

DESIGN PHASE

Secure Architecture
In secure SDLC, secure architecture refers to the design considerations that, when
incorporated as a fundamental building block of a system, minimize the inherent security
risk of an application. These include defense-in-depth, in which there are layers of
security controls implemented such that if one fails there is another layer as a backup.
Other examples are: least-privilege – users are only enabled with the minimum level of
functionality needed for their use; secure by default – the default settings of the system
are secure; minimize attack surface area – expose the minimum number of critical
functions that might be vulnerable to attack; fail secure – if the application should fail, it
does so in a way that does not expose the application to compromise; avoid security-
by-obscurity – there is nothing wrong with minimizing the public knowledge of your
systems, but this is not an appropriate security measure.

Design Review/Assessment
These refer to a similar process, where design review is completed internally and design
assessment is completed by an objective third-party. In either case the goal is the same,

Page 6 | www.redspin.com 2009 | White Paper


to have an objective review of the architecture, to ensure if the web application design
is consistent with the project security requirements and best-practice security architecture
principles.

Ship Criteria
Defining specific criteria that must be met before a project is deployed ensures that the
basic security objectives will not be forgotten as the web application project schedule
nears the end. For example, an application may only be allowed to be released if it is free
from vulnerabilities identified during the final Web Application Security Assessment.

Attack Surface Analysis


The surface area of a web application refers to the number of features and the extent
to which users can access them. More functional access by more users is more surface
area. More surface area represents more risk. One goal of application design should
be to minimize the attack surface area. Measuring the attack surface area can provide
an effective metric of risk and be used as a baseline as the system is developed to verify
that the attack surface area has not grown. Significant growth in attack surface area
may reflect coding errors or feature creep that significantly increases overall risk.

Threat Modeling
Threat modeling refers to a methodology used to identify risk in an application.
Understanding risk, including the vectors of attack, the probability of attack and the
potential impact is a cornerstone of secure application development. The ability to
prioritize risk enables the developers to focus their efforts on controls that matter most.
Microsoft has developed two methodologies to implement threat modeling. The first is
STRIDE which is a method for characterizing known threats. This acronym stands for:

S poofing Identity
Tampering With Data
R epudiation
I nformation Disclosure
D enial Of Service
E levation Of Privilege

Microsoft has developed a second methodology known by the acronym DREAD which
is used to create a risk rating that can be used to prioritize risk:

D amage Potential
R eproducibility
E xploitability
A ffected Users
D iscoverability

There are other frameworks for threat modeling; further review of these should provide
some guidelines on implementing this process for your next application.

DEVELOPMENT PHASE

Coding and Testing Standards


In secure SDLC traditional coding and testing standards are expanded to include security
considerations. Secure coding standards across an enterprise minimize the risk that a
developer will introduce a security vulnerability into the system – that may or may not be

Page 7 | www.redspin.com 2009 | White Paper


identified in the later Web Application Security Assessment phase of the project. Secure
testing standards ensure that the QA team incorporates mis-use cases and other specific
security scenarios into testing.

Static Analysis
Static analysis refers to automated code analysis tools that detect security vulnerabilities.
This is essentially a source code review that is automated and can be provided to
developers so they can periodically scan their code as they are developing features and
helps provide near real-time feedback on coding errors.

Source Code Review


A third-party review, either by a peer within the organization or another company, helps
ensure that coding standards are met and that their code does not include security
vulnerabilities. When source code review is included as a milestone in the development
plan, it reinforces to the team that secure coding practices are important and valued
highly throughout the business unit.

Unit Penetration Testing


This is a build level Web Application Security Assessment. In web development, the
application is typically incorporated into a web server or web application framework
such that at various phases in development the source code can be built so a running
application (with limited features) can be tested. Unit penetration testing focuses on
specific features or parts of the code base to capture potential security vulnerabilities
while the application is still in development. The idea is to provide feedback to the
developers while they are still in development and testing mode, rather than waiting until
later when they may have moved onto other projects.

DEPLOYMENT PHASE

Environment Hardening
This task includes all the steps needed to create a secure environment in which an
application is hosted. For example, robust source code does not reduce the overall
security risk much if one of the servers that it runs on is configured with a default password
that can be guessed by an attacker. Components of environmental hardening include
securing any servers that host the application and databases used in the production
environment, building a secure network environment surrounding the system and ensuring
that all the necessary physical controls are in place.

Application Penetration Testing


This involves conducting a Web Application Security Assessment against the final
application before it goes into production. This is the one step that is often included
even in non-secure-SDLC development shops. When implementing this phase in the
context of a secure development process the number of vulnerabilities identified is
reduced significantly (i.e. you find fewer surprises). In secure SDLC, this phase serves
more as a final security review milestone rather than a test that will likely have to be
completed multiple times to validate the remediation of a significant number of security
vulnerabilities.

Application Vulnerability Plan and Vendor Vulnerability Plan


A vulnerability plan refers to the documented process incorporated into secure SDLC
to address the inevitable scenario that a vulnerability will be identified in the system.
The plan should answer these types of questions: who will monitor the vulnerability
databases for new vulnerabilities? Who should they notify? How soon should the issue
be addressed? The application vulnerability plan refers to vulnerabilities identified
specifically with the custom code developed for a custom application, while the vendor
vulnerability plan addresses vulnerabilities found within the vendor applications, such as
the application server framework or the server operating systems.

Incident Response Plan


While it is commonly accepted that a secure development process improves the security
of applications and minimizes the overall risk of a security incident, it is also widely
agreed upon that web applications will never be completely free of risk. Having an

Page 8 | www.redspin.com 2009 | White Paper


incident response plan in place before any incident occurs will allow the stakeholders
to consider an action plan without the pressure and time constraints typical of incident
crisis management.

Security Requirements
This refers to the same requirements discussed in the first phase of development. During
this phase there must be an ongoing process to capture new security requirements as
they emerge. Whether customer driven or due to new regulation, these new requirements
must be communicated to the necessary stakeholders within a project.

Business Impact of Addressing Security Early


Figure 2 characterizes how development Addressing Security Late
cost and risk are impacted by moving Because security flaws coded into
security earlier vs. later in the development an application early in the process,
process. generally result in a less secure
application, it is pretty intuitive that
Addressing Security Early delaying security considerations until
Security integrated early yields a more late in the process constitutes higher risk.
robust application that is generally What is less evident, is that this also
considered to minimize risk. Also note results in unanticipated costs. At best,
that, while there is a cost associated these costs are due to additional coding
with these security tasks, these can be and QA cycles that result from having the
planned into the process and budgeted Web Application Security Assessment
for – they are integrated and expected. produce findings that must be fixed
before release. At worst, the extremely
high cost of a security breach.

Business Impact
of Addressing
Security Early

Figure 2.

Page 9 | www.redspin.com 2009 | White Paper


Secure SDLC Self Assessment -
“How secure is my current
development process?”
One question many of our clients have is Microsoft and OWASP that can help
- How secure is our current development anyone do a self assessment of their own
process? One service Redspin provides development environment.
is a secure SDLC Process Assessment in
which we review the current development The table below provides some
process and provide a gap analysis and questions that will help you determine
recommendations to get our clients on the maturity level of integrating security
track toward a more secure process. into your development process. These
While this provides rapid and thorough questions will help IT decision makers
guidance along with a set of priorities so determine components of the application
organizations can focus on the tasks that development process that must be
would provide the best return on effort, bolstered.
there are a number of resources from

Secure SDLC Self Assessment Questions


Has security specifically been communicated by management as an important
consideration in development?
Do you categorize your applications based on risk?
Are compliance requirements defined and stated as a requirement during early
phases of a project?
Do you have documented coding standards?
Is code reviewed to ensure consistency with coding standards?
Does the QA team specifically test for security vulnerabilities during testing?
Are likely security threats to an application discussed and documented?
Are mis-use cases discussed and documented?
Is there awareness among team members from marketing, development and operations
about security principles?
Are projects required to perform a Web Application Security Assessment before release?
Are Web Application Security Assessments performed during early testing of a project?
Is there a documented web server hardening process used before servers are deployed?
Is there a consistent patch management process in place for the web hosting environment?
Are web hosting environments required to be subject to a network penetration test before an
application goes into production?
Is a structured change control and source control process used to manage code and updates?

Table 1.

Page 10 | www.redspin.com 2009 | White Paper


Four Steps to Immediately Improve the
Security of Your Applications
Of course many organizations either don’t have an existing secure SDLC or they have
a portfolio of legacy applications inherited from other business units or acquisitions,
or they pre-date secure SDLC. In any event, these applications can be migrated to a
secure SDLC. However, because those applications may embody significant risk to
the business in that at any time they could be compromised, a focused approach to
minimizing risk is essential. The following five steps should be considered immediately
for legacy applications.

1. Education, Communication & Management Commitment


Management commitment is more than a step of course; it’s a culture; it’s a commitment
to understanding the modern threat landscape such that security is prioritized. With
management commitment comes education; most security best practices, including the
steps involved in secure SDLC are fairly intuitive once the nature of security risk is
understood. It’s a bit of a what came first the chicken or the egg question when it
comes to management commitment and education as each one tends to follow the
other, however, both of these are critical components to build into an organization.
With these two components in place communication throughout an organization is a
natural progression – if management states that it understands and respects the need for
security, it can become a priority. And with communication comes the need for further
education specific to the parties involved – for example, where product managers may
need high-level security training, developers may need specific secure coding classes.

2. Web Application Security Assessment


This assessment is a specific task in secure SDLC. It involves an objective third-party
penetration test of the application to identify security vulnerabilities. While doing this
step when no other secure SDLC components are in place may yield a significant
number of findings that need to be addressed, the process often uncovers show-stopping
critical vulnerabilities that need to be addressed immediately. If nothing else has been
done to address security, this is something that should be considered.

3. Web Application Risk Assessment


Doing a risk assessment of your web application involves a scaled back version of
a number of steps of the secure SDLC as a single combined deliverable. The goal
of the risk assessment is to quickly gauge the nature and severity of the security risk
of an application. Out of this process yields the obvious next steps that should be
addressed to secure the application. Because each application is different, the security
considerations for each application vary significantly. For example, a publicly-facing
application which stores millions of healthcare records would have different security
requirements than an intranet used for team training. A web application risk assessment
involves threat modeling, attack surface analysis, application complexity quantification,
security architecture review and environment analysis. The goal is to quickly identify risk
and can typically be completed in one to five days.

4. Web Application Portfolio Analysis


A web application portfolio analysis is a cross-enterprise risk assessment. The goal is to
quickly identify web applications that are at-risk of a high impact security incident such
that they can be prioritized for additional security review. This is a great first step for
those organizations with a variety of legacy web applications.

Page 11 | www.redspin.com 2009 | White Paper


Conclusion
While no application can be completely secure, the consensus among the security
and development community is that those applications developed with a process that
integrates security early on and throughout the development process significantly reduces
security risk (while limiting surprises). Armed with an understanding of the secure SDLC
and its basic components IT decision makers should be able to communicate both the
need for security and the benefits of secure SDLC.

About Redspin www.redspin.com


Redspin delivers the highest quality Information Security Assessments through technical
expertise, business acumen and objectivity. Redspin customers include leading companies
in areas such as healthcare, financial services and hotels, casinos and resorts as well as
retailers and technology providers. Some of the largest communications providers and
commercial banks rely upon Redspin to provide an effective technical solution tailored to
their business context, allowing them to reduce risk, maintain compliance and increase
the value of their business unit and IT portfolios. Penetration Testing

Page 12 | www.redspin.com 2009 | White Paper

You might also like