OWASP Plan

advertisement
Introducing the Web
Application Security Scanner
Evaluation Criteria
OWASP
Brian Shura
Project Leader - WASSEC
AppSec Consulting
bshura73@gmail.com
November 12, 2009
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
Agenda
WASSEC Overview
Sections of the WASSEC
Advice for Conducting a Scanner Evaluation
OWASP
2
Definition of a Web Application Security Scanner
An automated tool to test web applications for
common security problems.
Crawls a web application and locates
application-layer vulnerabilities by:
Manipulating HTTP messages
Inspecting HTTP messages for suspicious attributes
Scanners are an important part of most
application security programs.
OWASP
3
WASSEC - Background
Web application scanners are a complex class of
tools.
Many scanners are available, both free and
commercial tools.
Quality and usefulness varies greatly.
Wide variety of strong opinions on which
scanners are “best”
No formal criteria for conducting a detailed
evaluation
“Kick the tires a bit and go with your gut feel.”
OWASP
4
WASSEC Overview
Ongoing project promoted by the Web
Application Security Consortium (WASC).
Goals
Provide scanner users with a reference that can be
used to conduct a thorough scanner evaluation and
make an informed decision.
Provide scanner developers with a list of capabilities
to compare their tools against to help them create a
roadmap of future enhancements
OWASP
5
WASSEC Project Contributors
 Anurag Agarwal (Whitehat
Security)
 Vijay Agarwal (Foundstone)
 Robert Auger (WASC)
 Emilio Casbas (S21sec)
 Leonardo Cavallari (NSRAV)
 Matthieu Estrade (Bee Ware)
 Romain Gaucher (Cigital, Inc.)
 Jeremiah Grossman (Whitehat
Security)
 Robert Hansen (SecTheory)
 Amit Klein
 Chad Loder (Rapid7)
 Ken Pfeil (WestLB AG)
 Tyler Reguly (nCircle Network
Security)
 Ivan Ristic (Breach Security)
 Ory Segal (IBM)
 Sheeraj Shah (Blueinfy
Solutions Pvt. Ltd.)
 Chris Shiflett (OmniTI)
 Brian Shura (AppSec
Consulting) [Project Leader]
 Tom Stripling (Security PS)
 Chris Sullo (CIRT, Inc.)
OWASP
6
WASSEC Sections
1.
2.
3.
4.
5.
6.
7.
8.
Protocol Support
Authentication
Session Management
Crawling
Parsing
Testing
Command and Control
Reporting
OWASP
7
WASSEC Sections
 Protocol Support
 HTTP versions supported, SSL/TLS,
proxy support, etc.
 Authentication
 Very important section to consider
 What types of authentication are used
by the application you’ll be scanning?




HTML form-based
HTTP negotiate (NTLM, Kerberos)
Single Sign-On
Login process that can’t be fully automated
(OTP, CAPTCHA)
OWASP
8
WASSEC Sections
 Session Management
 For dynamic applications, establishing and
maintaining a valid session is essential to achieving
a thorough scan.
 Does scanner properly establish a session at
beginning of test?
 Can scanner detect when its session is no longer
valid and log back in?
 What types of session tokens does the scanner
support? (cookies, HTTP parameters, URL path)
OWASP
9
WASSEC Sections
 Crawling
 Scanner must first find the page in order to
find the vulnerability!
 How effectively does the scanner crawl your
application?
 The best scanners have many configuration
options for fine-tuning the crawl.
 Can the scanner automatically submit forms
during the crawl?
 How well does the scanner support
redirects? AJAX?
 Lots of details in this section for developers
who would like to improve their scanners!
OWASP
10
WASSEC Sections
 Parsing
 Closely tied to crawling.
 Scanner should be able to parse common web content types and
extract information such as URLs, forms, parameters, etc.
 Which content types are used by the applications you’ll be
scanning?




HTML, Javascript, CSS
XML
Flash
ActiveX
 Is it possible to customize the parser to handle special
situations?
 http://www.some.site/appEntry?param1^^value1::param2^^value
2...paramN^^valueN
OWASP
11
WASSEC Sections
Testing
Testing capabilities – a long list of security issues that
a black-box scanner should be able to test for
Test configuration - it is often important to exclude
certain pages, parameters, file extensions, etc. from
testing.
Can test policies be created to run a subset of
available tests against your application?
What type of support does the scanner provide for
creating custom tests?
OWASP
12
WASSEC Sections
Command and Control
Does scanner allow you to view the real-time status
of running scans?
Can scans be paused and resumed?
Can multiple scans be run simultaneously?
Does scanner support multiple users?
What type of control interfaces are provided?
 CLI, client application with GUI, web-based interface…
Does the scanner have an API and the ability to
integrate with common bug-tracking systems?
OWASP
13
WASSEC Sections
 Reporting
 What types of reports are available?
 How useful is the information provided for
each vulnerability?
 Severity rating, CVSS score, remediation
advice, etc.
 Can reports be customized? For example:




Adding custom notes to vulnerabilities
Modifying severity levels
Marking issues as false positives
Adding company logo to report footer or
header
OWASP
14
Advice for Conducting a Scanner Evaluation
Go through the WASSEC and choose which
criteria are important to you.
In most cases you won’t care about every feature
described in the WASSEC.
Add the relevant criteria to your evaluation
spreadsheet and assign them weights.
If certain criteria are “must have”, mark them as
such!
OWASP
15
Advice for Conducting a Scanner Evaluation
Factor in non-technical criteria such as:
Purchase cost
Ongoing support cost
Ease of use
Quality of documentation
Quality of technical support
Availability of training
Frequency of updates
Licensing restrictions
Usefulness of results
OWASP
16
Advice for Conducting a Scanner Evaluation
Decide which scanners will be in-scope for
evaluation.
A thorough evaluation is a great learning experience
but can be time-consuming.
Eliminate scanners that don’t meet your “must have”
criteria.
OWASP
17
Advice for Conducting a Scanner Evaluation
Obtain latest version of each scanner that is inscope for hands-on evaluation
For commercial scanners, contact vendor for free
trial.
Don’t download old versions off of PirateBay!
OWASP
18
Advice for Conducting a Scanner Evaluation
Decide which applications will be scanned during
evaluation. Some advice:
Avoid well-known vulnerable apps like WebGoat or
HackMe Bank.
Chose a variety of technologies that represent what
you’ll be scanning.
 Java, ASP.Net, AJAX or Flash-heavy applications, etc.
Choose complex applications that will allow you to
learn more.
 Large # of dynamic pages, single sign-on, spanning multiple
hostnames, multi-step sequences, multiple user roles, etc.
OWASP
19
Advice for Conducting a Scanner Evaluation
Prepare the applications for scanning
Best to use a non-Production environment
If scanning Production:
 Back up the database first
 Notify Production Support personnel of your plans
If you intend to publish your results, document the
application setup so others can repeat it.
OWASP
20
Advice for Conducting a Scanner Evaluation
 Multiple scans may be necessary using a variety of scan
configurations.
 “Point and shoot”
 Login credentials and form-training
 Monitor running scan to ensure it’s not just “spinning its
wheels”.
 For example, getting a 401 or “Session Timeout” response to
every test…
 Running scan through a proxy can help if you need to closely
analyze activity, determine whether scanner is logging in
successfully, etc.
Target
Website
Scanner
HTTP Proxy
OWASP
21
Advice for Conducting a Scanner Evaluation
Score each of the scanners on the criteria you’ve
selected and add up the weighted scores.
For results, focus the amount of useful,
actionable information provided by scanner, not
just quantity.
Tally up the scores. You can now make an
informed decision on which scanner to use,
purchase, or recommend.
OWASP
22
Advice for Conducting a Scanner Evaluation
OWASP
23
For More Information
View the WASSEC:
http://webappsec.org/projects/wassec
Join the project mailing list:
wasc-wassec-subscribe@webappsec.org
Contact project leader:
bshura73@gmail.com
OWASP
24
Download