Application Security- Buyers Guide
Application Security- Buyers Guide
contents
Application Security Buyer’s Guide 03
Securing code made harder by changing development 4
Selling the secure development lifecycle 5
Take stock and just get started 6
Three classes of tools for your developers 7
SAST, DAST, IAST: A lot of choices 14
The travails of Adobe show the danger of software bugs and the importance
of application security testing. Yet exorcising bugs is typically given short
shrift within companies. It is a hard task, even when a company has focused on
eliminating software flaws in its products.
3
Application Security Buyer’s Guide
This guide will briefly describe why application security presents special
challenges for organizations, even those that have made significant
investments in network and endpoint security. It will describe these challenges
“We are
in terms of actual experiences teams have faced, and it will include steps overspending
organizations can take to move toward app sec best practices. It will also in antivirus and
describe the essential classes of technologies that have proved useful in firewall and
support of those practices.
not enough in
And it concludes with a separate step-by-step guide to creating an RFP for
applications...”
readers actively seeking app sec vendors and tools.
“We are overspending in antivirus and firewall and not enough in applications,
which is what all the attacks are targeting,” says Jeremiah Grossman, co-
founder and CEO of Whitehat Security, a web-application security firm.
4
Application Security Buyer’s Guide
The situation is made more complex because developers are changing the
way they are creating software. Traditional waterfall development practices
engineered the application up front, with design mandates that flowed down
to the coders. Developers had months, even years, to produce working
software, which gave the security team natural breaks during which they
could review the code. But newer agile and DevOps models using short- or
continuous-development cycles aim to create a fast feedback loop on the
order of days, if not less. The shortening development cycle is a problem for
security teams looking to implement application-security testing.
Healthcare company Aetna, for example, has more than 3,000 applications
in development, two-thirds of which are written in Java, with much of
the remainder written in .NET and Ruby. Keeping the developers of those
applications focused on security is tough, but it can result in significant cost
savings, says Jim Routh, the company’s chief information security officer.
5
Application Security Buyer’s Guide
Too often, companies will buy an application security testing tool or subscribe
to a service, vet two or three applications, and then stop. Problems arise
when they try to use the results produced by the tools or try to expand their
coverage to their entire portfolio, says Dan Cornell, chief technology officer
for the Denim Group, a security-testing consultancy.
“Even after you get an application under testing, often no one knows what to
do with the results,” he says. “The interpretation, the prioritization—all of that
is a real challenge.”
“Enterprises must find a way to work closely between those two teams,” he
says. “Often the dev teams says, ‘That’s not my problem,’ that it’s the security
team who’s responsible to fix that. But they can’t protect the environment
optimally unless they know which hooks, libraries, and code are used by the
developers.”
6
Application Security Buyer’s Guide
For many companies, a good first step is to take stock of their application
portfolio and determine which third-party libraries and components are used
by developers. Development teams may not adequately track the versions
of the libraries embedded in their code, but they should know when a
vulnerability is released in a library that they use in their development, and
which applications are affected.
“Being able to quickly index which library’s components you have allows you
to then leverage other information sources, [which means] you don’t have
to do the homework yourself,” says Spanbauer. “You can quickly determine
whether that piece of vulnerable software is one that you are using.”
Expanding coverage
Once companies get testing tools running for a few applications, they should
broaden their efforts to the company’s full portfolio. As part of the expansion,
companies should track a few important metrics, such as what portion of
their application portfolio is under testing, as well as what percentage of
vulnerabilities are either remediated or have a workaround, according to
Denim Group’s Cornell.
“It is less about the specific technology and more about just getting that
workflow operating,” Cornell says.
As part of this step, companies need to take stock of all their applications
and who is lead developer on each. While top-down requirements for
development groups to use specific tools can work, often it works better to
offer the developers a specific menu of security tools and options and let them
use whatever tool best fits their purpose.
BACK TO
THE INDEX
7
Application Security Buyer’s Guide
SAST tools have a bad reputation for producing too many alerts for minor
software flaws and unexploitable defects and for finding only narrow
classes of bugs. Nonetheless, the tools are an important part of any secure
development lifecycle because they can be integrated into the development
environment, preventing developers from making fundamental security errors
that could produce vulnerabilities and teaching them to avoid making similar
mistakes in the future.
8
Application Security Buyer’s Guide
A very important quality of any SAST tool is how well it integrates into the
company’s existing development environments. Most tools support the major
web languages, Java and .Net. Static tools generally also support some form of
C, C++, or C#.
In addition to supporting the language that your development team uses, the
tools have to seamlessly plug into the most common integrated development
environments (IDEs).
A SAST system’s most common user should be the developer. The best
tools provide feedback to teach the developers how to use secure software
patterns, avoid code libraries deemed to be too insecure or infrequently
patched, and explicitly explain how to repair any potential vulnerabilities.
Providing developers with simple-to-use static analysis tools that can check
their code quickly and provide easy-to-understand feedback pays dividends
down the road. Aetna, for example, found that developers using static analysis
tools learned to produce more secure code.
BACK TO
THE INDEX
9
Application Security Buyer’s Guide
“A lot of static vendors were trying to get the most results, but what people
realize now is that there is a tax that comes along with all the stuff you found,”
he says. “So finding more stuff is not necessarily good. If I find too much stuff, I
have to wade around in all the results to find what is really important.”
The issue can be critical for companies focused on an agile or DevOps model,
who may find that static analysis tools take too long to run to be used in daily
development, Aetna’s Routh says.
“The longer it takes to run, the more difficult it is and the longer it takes
security people to weed out the false positives and the less integrate-able it is
with the development cycle,” he says.
The choice between adopting static or dynamic analysis tools first depends
on a company’s situation. Static analysis tools give developers feedback and
educate them at the same time. Dynamic analysis tools can give security
teams a quick win by immediately finding exploitable vulnerabilities.
10
Application Security Buyer’s Guide
“Dynamic scanning is something that you apply after you have a runtime
version of the software,” he says. “Dynamic scanning is typically done by the
QA teams. In a Scrum team, there may be a designated QA team that is part of
each sprint, but they are not the developers.”
The first step for most companies is to make sure they know which
applications are running on their network. Companies that embark on a new
application-security initiative can tie network scanning into the DAST process.
This requires first searching the network for applications, then testing those
applications for vulnerabilities. The process can help security teams stay
on top of unknown and rogue applications, says Frank Catucci, application-
security manager for Qualys, a network and application security firm.
“A lot of customers who come to us say they know what they need for
applications security, but they have so much that is out there running, there
may be Web services that they are not be aware of,” he says.
“Most companies do not know what they own, and that is a major issue,” he
says. “Down the road, when they get hacked, when they get compromised,
it is almost always because of a vulnerability in a web site they did not know
about.”
While static code analysis can find bad patterns in code and teach developers
more secure coding techniques, DAST is about catching exploitable
vulnerabilities before they get into a production environment. Development
groups and security teams should build a dynamic testing phase into the pre- BACK TO
THE INDEX
release quality assurance phase of any secure development lifecycle.
11
Application Security Buyer’s Guide
The goal is not about finding every vulnerability, but to find the most
exploitable issues, says WhiteHat’s Grossman.
Testing takes time, and making sense of the results of that testing can
take even more time. While false positives are less of an issue for dynamic
application security testing, security teams and developers should focus on
evaluating each product’s ability to quickly test for a required set of potential
vulnerabilities and produce reports that succinctly tell developers how to fix
the problems.
“It changes the way we test, and it forces companies to build a lot of their
own infrastructure,” he says. “So a big question is whether you can use an
API to script and automate the testing, not just integrate with the developer
systems.”
While static code analysis arrived about two decades ago and dynamic
analysis has become popular over the last decade, a new approach—known as
interactive application security testing (IAST) or “glass-box” testing—promises
to catch attacks that the other approaches cannot. By running an agent, IAST
allows companies to collect event data from their running applications for BACK TO
THE INDEX
analysis.
12
Application Security Buyer’s Guide
“Bottom line for me is that dynamic and static tools have been around for over
a decade without improving and are not likely to improve,” he says. “It’s a huge
problem that prevents doing application security at scale and leaves us all
vulnerable.”
The key of interactive analysis is turning the application into a tool that also
works for security. Either by installing software agents on an application
server, or by instrumenting the application at development time, interactive
analysis techniques allow the collection of data on application and security
events.
The data can detect software flaws that other techniques would miss. In
addition, combining agent-based instrumentation of applications with code
analysis and dynamic scanning can help reduce false positives and give
developers a better idea of where vulnerabilities exist in their code.
“I’ve always disliked the idea that security makes things less efficient,”
Contrast’s Williams says. “Security is an enabler. Done right, application
security technology speeds software development and operations by
providing continuous, accurate, useful information in real time and at scale.”
The same agents and libraries that can be used to detect the signs of
vulnerabilities in programs can also block bad behavior—a likely sign of an
attack. The use of runtime application self-protection (RASP) technology can
prevent attacks and deliver immediate benefits to companies. For security
teams that need to protect applications that may not be actively developed,
an application firewall or runtime application self-protection (RASP) agent may
BACK TO
work well. RASP is best thought of as a specific type of IAST. THE INDEX
13
Application Security Buyer’s Guide
“RASP sits inside applications and can monitor and block vulnerabilities,” says
Maria Bledsoe, a senior manager with HP Enterprise’s security products group.
“RASP is a compensating control.”
“We see it as something that we are definitely doing,” says Jim Routh, CISO
of Aetna. “So we are going through a process of evaluating the products. The
tools are relatively immature, but they are promising.”
While static analysis aims to help developers produce better and more
secure code, dynamic analysis heads off exploitable vulnerabilities before
they are released. IAST instruments an application so that information about
potential malicious activity can be gathered while the software is running. And
some IAST systems also block the attack, which is the function of runtime
application self-protection, or RASP, technique described above.
“Whether you have SAST or DAST or IAST, it doesn’t matter how many bugs
you have at the moment,” Valtman says. “The only thing that matters is the BACK TO
THE INDEX
trending chart—reducing the number of bugs that you have.”
14
Guide to creating an RFP for
application security testing
tools and services
Companies looking to query vendors about potential tools and services for
application security can use this guide in creating a request for proposal.
While there are a lot of questions in this model RFP, companies should choose
no more than ten that are critical to their business. Rather than waiting for the
perfect product, companies should find the one that best matches their most
important criteria.
15
Application Security Buyer’s Guide
Many model RFPs start with a statement of a company’s goals—in this case,
security goals. But often, when companies embark on an initiative to improve
the security of their development process, the company’s security effort is
not mature enough to state firm goals. Instead, companies should focus on
highlighting their security problems.
So, state your goals for application security testing if you can do this, but
most important is that you clearly state the greatest concerns for company
management.
Products or services
Automated code review (static analysis)
Automated penetration tests and vulnerability assessments (dynamic
analysis)
Automated analysis of instrumented applications (interactive analysis)
Because vendors and service providers will often act in the role of a partner or
provider, companies should also state their problems, which will aid vendors in
determining if unasked-for services or products may be a better fit. Here are
examples of some potential problems:
BACK TO
THE INDEX
16
Application Security Buyer’s Guide
Statement of resources
1. Vendor information
BACK TO
THE INDEX
17
Application Security Buyer’s Guide
3. Deployment
18
Application Security Buyer’s Guide
4. Operations
How long does the tool take to run? Will it slow down my development
process? Is it appropriate for DevOps or agile development?
Can the tool be run by individual developers? Is it run as part of the
development process or as part of the QA process?
How easily can the product be managed? Approximately how many full-
time employees (FTEs) does it take to manage?
How can learning (data output and analysis) from the system be
incorporated into our development lifecycle?
What types of reports do you offer and who are the consumers
BACK TO
THE INDEX
19
Application Security Buyer’s Guide
Purpose: Source code is a sensitive business asset. This section asks vendors
how that information is protected.
Good luck!
BACK TO
THE INDEX
20