Web application security scanner

From HandWiki

A web application security scanner is a program which communicates with a web application through the web front-end in order to identify potential security vulnerabilities in the web application and architectural weaknesses.[1] It performs a black-box test. Unlike source code scanners, web application scanners don't have access to the source code and therefore detect vulnerabilities by actually performing attacks. Web applications have been highly popular since 2000 because they allow users to have an interactive experience on the Internet. Rather than just view static web pages, users are able to create personal accounts, add content, query databases and complete transactions. In the process of providing an interactive experience web applications frequently collect, store and use sensitive personal data to deliver their service.

Customers benefit from the convenience of these applications, while tacitly taking on risk that private information stored in web applications will be compromised through hacker attacks, insider leaks etc. According to the Privacy Rights Clearinghouse, more than 18 million customer records have been compromised in 2012 due to insufficient security controls on corporate data and web applications.[2]

Overview

A web application security scanner facilitates the automated review of a web application with the expressed purpose of discovering security vulnerabilities, and are required to comply with various regulatory requirements. Web application scanners can look for a wide variety of vulnerabilities, such as input/output validation: (e.g. cross-site scripting and SQL injection), specific application problems and server configuration mistakes.

In a copyrighted report published in March 2012 by security vendor Cenzic, the most common application vulnerabilities in recently tested applications include:[3]

Vulnerability statistics reports covering occurrences and breaches related to such vulnerabilities from Verizon and edgescan are available here [4] [5]

37% Cross Site Scripting
16% SQL Injection
5% Path Disclosure
5% Denial of Service
4% Code Execution
4% Memory corruption
4% Cross Site Request Forgery
3% Information Disclosure
3% Arbitrary File
2% Local File Inclusion
1% Remote File Include
1% Buffer overflow
15% Other (PHP Injection, Javascript Injection, etc.)

Commercial and open-source scanners

Security researcher Shay Chen has previously compiled a exhaustive list of both commercial and open-source web application security scanners.[6] The list also highlights how each of the scanners performed during his benchmarking tests against the WAVSEP.

The WAVSEP platform is publicly available and can be used to evaluate the various aspects of web application scanners: technology support, performance, accuracy, coverage and result consistency.[7]

Listing of Vulnerability Scanners

Here is a list of vulnerability Scanners currently available in the market. [8]

Name Owner License Platform
w3af w3af.org GPL v2.0 Linux and Mac
Vega Subgraph Commercial / Free (Limited Capability) Windows, Linux, Mac
Probe.ly Probe.ly Commercial / Free (Limited Capability) SaaS
Nexpose Rapid7 Commercial / Free (Limited Capability) Windows, Linux
Netsparker MavitunaSecurity Commercial Windows, SaaS
Nessus Tenable Commercial Windows
Grabber Romain Gaucher Open Source Python 2.4, BeautifulSoup and PyXML
GamaScan GamaSec Commercial Windows
AppSpider Rapid7 Commercial Windows
AppScan IBM Commercial Windows
Acunetix WVS Acunetix Commercial / Free (Limited Capability) Windows, SaaS
DefenseCode Web Security Scanner DefenseCode Commercial / Free Windows

Strengths and weaknesses

As with all testing tools, web application security scanners are not perfect and have strengths and weaknesses.

Strengths and advantages

These tools can detect vulnerabilities of the finalized release candidate versions prior to shipping. Scanners simulate a malicious user by attacking and probing, identifying results which are not part of the expected result set.

As a dynamic testing tool, web scanners are not language dependent. A web application scanner is able to scan engine-driven web applications. Attackers use the same tools, so if the tools can find a vulnerability, so can attackers.

Weaknesses and limitations

Free tools are usually not updated with the latest language-specific security flaws contained in recently updated languages; while this might be a minority of vulnerability the competent attackers are expected to try those attacks --- especially if they can learn which language the target website uses.

It is usually not possible to know how good a specific security scanner is if you do not have some security know-how yourself; and small business owners are hard to convince to run at least 5 free tools if the first found nothing.

Attackers could theoretically test their attacks against popular scanning tools in order to find holes in websites made by people who use security scanners excessively (there could, for example, be a typo away from what the free tools scan for), for purpose of making spam-sending botnets. As such at least all the free tools are weak against the competent and broad-targeting attackers.

Botnets and other attacks where the attackers can update the malware on the remaining unpatched computers are extremely hard to clear off some networks used by a large number of undisciplined users; such as some university networks who don't teach computers at all.

Because the tool is implementing a dynamic testing method, it cannot cover 100% of the source code of the application and then, the application itself. The penetration tester should look at the coverage of the web application or of its attack surface to know if the tool was configured correctly or was able to understand the web application.

It is really hard for a tool to find logical flaws such as the use of weak cryptographic functions and information leakage. Even for technical flaws, if the web application doesn't provide enough clues, the tool cannot catch them.

The tool cannot implement all variants of attacks for a given vulnerability. So the tools generally have a predefined list of attacks and do not generate the attack payloads depending on the tested web application. The tools are also quite limited in their understanding of the behavior of applications with dynamic content such as JavaScript and Flash.

Furthermore, these tools don't test for social engineering holes that are plainly obvious to competent attackers.

A recent report found that the top application technologies overlooked by most Web application scanners includes JSON (such as jQuery), REST, and Google WebToolkit in AJAX applications, Flash Remoting (AMF) and HTML5, as well as mobile apps and Web Services using JSON and REST. XML-RPC and SOAP technologies used in Web services, and complex workflows such as shopping cart, and XSRF/CSRF tokens were also listed.[9]

References

External links