views:

1353

answers:

3

I've seen a lot of questions here about specific types of attacks against websites, including SQL injection, denial-of-service, and cross-site scripting.

I would like to get a list of the common types of attacks against web sites/services, how to prevent them, how to know if you've been attacked, and how to recover from an attack, all in one place so I can present it to my management team.

A: 

Robots and Scripting for Forms

Methods to Prevent:

  • Non-viewable to user content box. If text is there, disqualify
  • Validate zip code, phone... to be numerical only (not valid against targeted attack)
  • Captcha
IPX Ares
+5  A: 

The definitive place to look is the OWASP top ten list. Thisis the best starting point you'll find and there is a lot of good info.

David Stratton
+2  A: 

As posted previously to this thread, the definitive answer to this is the OWASP Top Ten.

The most recent list was assembled in 2007. For convenience and in the name of further propagating the message, I'm posting the 2007 list again here:

A1 - Cross Site Scripting (XSS)

XSS flaws occur whenever an application takes user supplied data and sends it to a web browser without first validating or encoding that content. XSS allows attackers to execute script in the victim's browser which can hijack user sessions, deface web sites, possibly introduce worms, etc.

A2 - Injection Flaws

Injection flaws, particularly SQL injection, are common in web applications. Injection occurs when user-supplied data is sent to an interpreter as part of a command or query. The attacker's hostile data tricks the interpreter into executing unintended commands or changing data.

A3 - Malicious File Execution

Code vulnerable to remote file inclusion (RFI) allows attackers to include hostile code and data, resulting in devastating attacks, such as total server compromise. Malicious file execution attacks affect PHP, XML and any framework which accepts filenames or files from users.

A4 - Insecure Direct Object Reference

A direct object reference occurs when a developer exposes a reference to an internal implementation object, such as a file, directory, database record, or key, as a URL or form parameter. Attackers can manipulate those references to access other objects without authorization.

A5 - Cross Site Request Forgery (CSRF)

A CSRF attack forces a logged-on victim's browser to send a pre-authenticated request to a vulnerable web application, which then forces the victim's browser to perform a hostile action to the benefit of the attacker. CSRF can be as powerful as the web application that it attacks.

A6 - Information Leakage and Improper Error Handling

Applications can unintentionally leak information about their configuration, internal workings, or violate privacy through a variety of application problems. Attackers use this weakness to steal sensitive data, or conduct more serious attacks.

A7 - Broken Authentication and Session Management

Account credentials and session tokens are often not properly protected. Attackers compromise passwords, keys, or authentication tokens to assume other users' identities.

A8 - Insecure Cryptographic Storage

Web applications rarely use cryptographic functions properly to protect data and credentials. Attackers use weakly protected data to conduct identity theft and other crimes, such as credit card fraud.

A9 - Insecure Communications

Applications frequently fail to encrypt network traffic when it is necessary to protect sensitive communications.

A10 - Failure to Restrict URL Access

Frequently, an application only protects sensitive functionality by preventing the display of links or URLs to unauthorized users. Attackers can use this weakness to access and perform unauthorized operations by accessing those URLs directly.

-http://www.owasp.org/index.php/Top_10_2007

With regard to incident response, you should consider the use of an Intrusion Detection System to notify your ops team of possible attacks, though no IDS will be able to catch everything. You should also consider implementing code reviews by a Senior developer who has knowledge of security issues as well as performing specialized security testing prior to your initial product launch and at set intervals thereafter.

A few security related books I recommend:

Mark Hammonds