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. 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.
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:
Commercial and open-source scanners
Security researcher Shay Chen maintains an up-to-date and exhaustive list of both commercial and open-source web application security scanners. 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.
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's usually not possible to know how good a specific security scanner is if you don't 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 (they 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 nonpatched computers are extremely hard to clear off some networks used by a large amount 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.
References
External links
- Web Application Security Scanner Evaluation Criteria from the Web Application Security Consortium (WASC)
- Web Application Vulnerability Scanners, a wiki operated by the NIST
- Challenges faced by automated web application security assessment from Robert Auger
- The WASC security scanner list
- List of Web-based Application Scanners, Mosaic Security Research
- Identifying Web Applications from Fabian Mihailowitsch