The 10 most critical Web application security problems for government and the private sector were unveiled Monday by the Open Web Application Security Project (OWASP), the Washington, D.C.-based open source community project. The list of vulnerabilities was created to focus government and industry on the most serious of the problems.
According to the report, the flaws are "surprisingly common" and can be exploited by unsophisticated attackers with easily available tools. When an organization deploys a web application, OWASP says, they invite the world to send HTTP requests. Attacks buried in these requests "sail past firewalls, filters, platform hardening, SSL, and IDS without notice" because they are inside legal HTTP requests.
Therefore, the report concludes, web application code is part of the security perimeter and cannot be ignored.
"The OWASP Top Ten list shines a spotlight directly on one of the most serious and often overlooked risks facing government and commercial organizations," said Jeffrey Williams, CEO of web application security firm Aspect Security. "A stunning number of organizations spend big bucks securing the network and somehow forget about the applications."
The report also stresses that the security issues raised are not new.
"In fact, some have been well understood for decades. Yet for some reason, major software development projects are still making these mistakes and jeopardizing not only their customers' security, but also the security of the entire Internet," the OWASP Web site states.
Added Peter G. Neumann, moderator of the ACM Risks Forum, "The underlying reality is shameful: most system and Web application software is written oblivious to security principles, software engineering, operational implications, and indeed common sense."
The list includes:
Invalidated Parameters: Information from web requests is not validated before being used by a web application. Attackers can use these flaws to attack backside components through a web application.
Broken Access Control: Restrictions on what authenticated users are allowed to do are not properly enforced. Attackers can exploit these flaws to access other users accounts, view sensitive files, or use unauthorized functions.
Broken Account and Session Management: Account credentials and session tokens are not properly protected. Attackers that can compromise passwords, keys, session cookies, or other tokens can defeat authentication restrictions and assume other users identities.
Cross-Site Scripting Flaws: The web application can be used as a mechanism to transport an attack to an end users browser. A successful attack can disclose the end users session token, attack the local machine, or spoof content to fool the user.
Buffer Overflows: Web application components in some languages that do not properly validate input can be crashed and, in some cases, used to take control of a process. These components can include CGI, libraries, drivers, and web application server components.
Command Injection Flaws: Web applications pass parameters when they access external systems or the local operating system. If an attacker can embed malicious commands in these parameters, the external system may execute those commands on behalf of the web application.
Error Handling Problems: Error conditions that occur during normal operation are not handled properly. If an attacker can cause errors to occur that the web application does not handle, they can gain detailed system information, deny service, cause security mechanisms to fail, or crash the server.
Insecure Use of Cryptography: Web applications frequently use cryptographic functions to protect information and credentials. These functions and the code to integrate them have proven difficult to code properly, frequently resulting in weak protection.
Remote Administration Flaws: Many web applications allow administrators to access the site using a web interface. If these administrative functions are not very carefully protected, an attacker can gain full access to all aspects of a site.
Web and Application Server Misconfiguration: Having a strong server configuration standard is critical to a secure web application. These servers have many configuration options that affect security and are not secure out of the box.