This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

Difference between revisions of "OWASP Proactive Controls"

From OWASP
Jump to: navigation, search
Line 16: Line 16:
 
Introducing the OWASP Top Ten and one half Proactive Controls 2013.  
 
Introducing the OWASP Top Ten and one half Proactive Controls 2013.  
  
== Secure Requirements ==
+
== 1) Secure Requirements ==
 
- Core requirements for any project (technical)
 
- Core requirements for any project (technical)
 
- Business logic requirements (project specific)
 
- Business logic requirements (project specific)
  
== Secure Architecture and Design ==
+
== 2) Secure Architecture and Design ==
 
- When to use request, session or database for data flow
 
- When to use request, session or database for data flow
  
== Leverage secure coding frameworks and libraries ==
+
== 3) Leverage secure coding frameworks and libraries ==
 
- Shiro
 
- Shiro
 
- ESAPI
 
- ESAPI
  
== Identity and Authentication ==
+
== 4) Identity and Authentication ==
 
- Password Storage
 
- Password Storage
 
- Forgot Password Workflow
 
- Forgot Password Workflow
 
- Multi-Factor AuthN
 
- Multi-Factor AuthN
  
== Access Control ==
+
== 5) Access Control ==
 
- Permission based access control
 
- Permission based access control
 
- Limits of RBAC
 
- Limits of RBAC
  
== Query Parametrization ==
+
== 6) Query Parametrization ==
 
- Special case
 
- Special case
 
- SQL Injection protection  
 
- SQL Injection protection  
  
== Validation ==
+
== 7) Validation ==
 
- Whitelist Validation (struggles with internationalization)
 
- Whitelist Validation (struggles with internationalization)
 
- URL validation (as part of redirect features)
 
- URL validation (as part of redirect features)
 
- HTML Validation (as part of untrusted content from features like TinyMCE)
 
- HTML Validation (as part of untrusted content from features like TinyMCE)
  
== Encoding ==
+
== 8) Encoding ==
 
- Output encoding for XSS
 
- Output encoding for XSS
 
- Query Parameterization
 
- Query Parameterization
 
- Other encodings for LDAP, XML construction and OS Command injection resistance
 
- Other encodings for LDAP, XML construction and OS Command injection resistance
  
== Data Protection ==
+
== 9) Data Protection ==
 
- At rest and in transit
 
- At rest and in transit
 
- Secure number generation
 
- Secure number generation
Line 56: Line 56:
 
- Proper use of AES (CBC/IV Management)
 
- Proper use of AES (CBC/IV Management)
  
== Logging, Error Handling and Intrusion Detection ==
+
== 10) Logging, Error Handling and Intrusion Detection ==
 
- Information leakage avoidance
 
- Information leakage avoidance
 
- Attack detection
 
- Attack detection

Revision as of 19:42, 5 August 2013

PROJECT INFO
What does this OWASP project offer you?
RELEASE(S) INFO
What releases are available for this project?
what is this project?
Name: OWASP Proactive Controls (home page)
Purpose: A Top 10 like document, phrased in a positive, testable manner that describes the Top 10 controls architects and developers should absolutely, 100% include in every project.
License: Creative Commons Attribution ShareAlike 3.0 License
who is working on this project?
Project Leader(s):
how can you learn more?
Project Pamphlet: Not Yet Created
Project Presentation:
Mailing list: Mailing List Archives
Project Roadmap: View
Key Contacts
current release
Not Yet Published
last reviewed release
Not Yet Reviewed


other releases

It is not easy to build a secure, low-risk or risk-managed web application. Firewalls, “policy” and other traditional information security measures serve as either an incomplete or useless measure in the pursuit of web application security.

As software developers author the code that makes up a web application, they need to do so in a secure manner. All tiers of a web application, the user interface, the business logic, the controller, the database code and more – all need to be developed with security in mind. This can be a very difficult task and developers are often set up for failure. Most developers did not learn about secure coding or crypto in school. The languages and frameworks that developers use to build web applications are often lacking critical core controls or are insecure by default in some way. It’s also very rare when organizations provide developers with prescriptive requirements that guide them down the path of secure software. When it’s comes to web security, developers are often set up to lose the security game.

This document was written by developers, for developers to assist those new to secure development. It aims to guide developers and other software development professionals down the path of secure web application software development.

This document is neither scientific nor complete. In fact it’s a bit misguided. There are more than 10 issues that developers need to be aware of. Some of these “top ten” controls will be very specific, others will be general categories. Some of these items are technical, others are process based. Some may argue that this document includes items that are not even controls at all. All of these concerns are fair. Again, this is an awareness document meant for those new to secure software development. It is a start, not an end.

The number of people who influenced or contributed to this document in some way is to numerous to mentioned. I would like to especially thank Andrew van der Stock for starting this project. I would also like to thank the entire cheat-sheet series team whose content has been pulled from liberally for this document.

Introducing the OWASP Top Ten and one half Proactive Controls 2013.

1) Secure Requirements

- Core requirements for any project (technical) - Business logic requirements (project specific)

2) Secure Architecture and Design

- When to use request, session or database for data flow

3) Leverage secure coding frameworks and libraries

- Shiro - ESAPI

4) Identity and Authentication

- Password Storage - Forgot Password Workflow - Multi-Factor AuthN

5) Access Control

- Permission based access control - Limits of RBAC

6) Query Parametrization

- Special case - SQL Injection protection

7) Validation

- Whitelist Validation (struggles with internationalization) - URL validation (as part of redirect features) - HTML Validation (as part of untrusted content from features like TinyMCE)

8) Encoding

- Output encoding for XSS - Query Parameterization - Other encodings for LDAP, XML construction and OS Command injection resistance

9) Data Protection

- At rest and in transit - Secure number generation - Certificate pinning - Proper use of AES (CBC/IV Management)

10) Logging, Error Handling and Intrusion Detection

- Information leakage avoidance - Attack detection - Proper error handling workflow

Welcome to the OWASP Top 10 Proactive Controls Project! This project is the comprehensive reference for all OWASP projects and application security in general. All of the materials here are free and open source.

Status

We are currently seeking volunteers who will help developing stub/empty articles listed bellow and bring it up to a production level of quality. Join us now to take part in this historic effort, just drop a line to Jim Manico and Andrew van der Stock!

What's In It?

Original list from Andrew

  1. Security Architecture (including incorporating agile ideas)
  2. Use a (more) secure development frameworks and leverage enterprise frameworks (UAG, etc)
  3. Input validation
  4. Output Encoding
  5. Identity: Authentication and Session Management
  6. Access Control (service / controller, data, URL, function / CSRF, presentation, etc)
  7. Data Protection (Data at rest, including in cloud)
  8. Audit, Logging and Error Handling
  9. Secure Configuration
  10. Secure Communications (Data in transit)

Suggested changes by Jim

  1. Identity: Authentication and Session Management (same as you)
  2. Access Control: (service / controller, data, URL, function / CSRF, presentation, etc) (same as you)
  3. Query Parametrization: (this is not encoding or validation, but is essentially a per-compiled query plan into tabular data)
  4. Input validation (same)
  5. Output Encoding (same)
  6. Data Protection: (Data at rest, including in cloud, data in transport)
  7. Leverage secure development frameworks and libraries (Shiro, ESAPI, etc)
  8. Secure Requirements
  9. Secure Design and Architecture
  10. Audit, Logging, Error handling and Intrusion Detection