The Open Web Application Security Project, or OWASP, is an international non-profit organization that is dedicated to web application security. OWASP holds as a core principle that all of its materials be freely available and easily accessible on its website, thus making it possible for anyone with a browser to improve their own web application security. OWASP offers materials for this effort such as documentation, tools, videos, and forums. But its most famous project is the OWASP Top 10.
Now, the Top 10 is not some definitive list that applies to all software efforts. Every application at every organization has its own set of unique and different security issues.
But the Top 10 is made up of high-risk, common weaknesses and flaws that are seen over and over again. Types of vulnerabilities are chosen based on many criteria, such as how common the threats are, how easy they are to detect and remediate, and their potential technical and business impacts. All of them will have a high rate of return for remediation efforts taken against their occurrence.
1. SQL injection
This is the way an attacker can alter backend SQL statements through the manipulation of user supplied data. It happens when the user input is sent to an interpreter as part of command or query. This will trick the interpreter into executing unintended commands which in turn can give an attacker access to unauthorized data. Structures most vulnerable include input fields and URLs that are interacting with the database used by the application.
Remediation includes whitelisting the input fields as well as not displaying detailed error messages which might be useful to an attacker.
2. Cross site scripting
This is usually referred to as XSS. XSS targets scripts that are present in a web page but are executed on the user side. XSS usually occurs when the application takes “untrusted” data and sends it to the user’s web browser without proper validation.
A browser will not know if the script is to be trusted or not, so the script gets executed no matter what. Typical uses by an attacker include hijacking session cookies, defacing websites, or redirecting the user to an unwanted or malicious website.
Whitelisting the input fields as well as input output encoding can help in deterring XSS occurrence.
3. Broken authentication and session management
Websites usually create a session cookie and session ID for each valid session. Cookies likely contain sensitive data like a username or password. For each session there should be a new cookie. If new cookies are not generated by a session, the cookies of the site are then exposed to an attacker. They could then hijack a session and so gain disclosure or the ability to make a modification of unauthorized information.
Never exposing any credentials in URLs or logs will generally improve the security outcome of this situation.
4. Insecure direct object references
If reference is made in the server’s public facing code to an internal file, directory or database key by a URL or as a FORM parameter, a threat actor can use this information to access other objects to be used in the attack.
Keep the URLs clean of internal references or credentials.
5.Cross site request forgery
A CSRF attack forces a logged-on victim's browser to send a forged HTTP request that includes the victim's session cookie as well as any other automatically included authentication information of the current app, to be sent externally. When the user clicks on the URL (when logged into the original website), a link sent by the attacker to the victim causes data to be stolen.
In the next installment, the next five problem areas will be discussed.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.