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 "Category:Principle"
(→References) |
(→What's an application security principle?) |
||
Line 7: | Line 7: | ||
Principles are important because they help us make security decisions in new situations with the same basic ideas. By considering each of these principles, we can derive security requirements, make architecture and implementation decisions, and identify possible weaknesses in systems. | Principles are important because they help us make security decisions in new situations with the same basic ideas. By considering each of these principles, we can derive security requirements, make architecture and implementation decisions, and identify possible weaknesses in systems. | ||
− | The important thing to remember is that in order to be useful, principles must be evaluated, interpreted, and applied to address a specific problem. Although principles can serve as general guidelines, simply telling a software developer that their software must "[[fail | + | The important thing to remember is that in order to be useful, principles must be evaluated, interpreted, and applied to address a specific problem. Although principles can serve as general guidelines, simply telling a software developer that their software must "[[fail securely]]" or that they should do "[[defense in depth]]" won't mean that much. |
==Some proven application security principles== | ==Some proven application security principles== |
Revision as of 20:06, 9 June 2008
This category is for tagging articles related to application security principles.
What's an application security principle?
Application security principles are collections of desirable application properties, behaviors, designs and implementation practices that attempt to reduce the likelihood of threat realization and impact should that threat be realized. Security principles are language independent, architecturally neutral primitives that can be leveraged within most software development methodologies to design and construct applications.
Principles are important because they help us make security decisions in new situations with the same basic ideas. By considering each of these principles, we can derive security requirements, make architecture and implementation decisions, and identify possible weaknesses in systems.
The important thing to remember is that in order to be useful, principles must be evaluated, interpreted, and applied to address a specific problem. Although principles can serve as general guidelines, simply telling a software developer that their software must "fail securely" or that they should do "defense in depth" won't mean that much.
Some proven application security principles
- Apply defense in depth (complete mediation)
- Use a positive security model (fail safe defaults)(minimize attack surface)
- Fail safely
- Run with least privilege
- Avoid security by obscurity (open design)
- Keep security simple (verifiable)(economy of mechanism)
- Detect intrusions (compromise recording)
- Don’t trust infrastructure
- Don’t trust services
- Establish secure defaults (psychological acceptability)
Applying security principles
Consider the exercise of designing a simple web application that allows people to send email to a friend. By evaluating and interpreting each principle, we can arrive at many of the threats to this application and ultimately derive a set of protection requirements. We want to end up with a complete list of what is required to offer this service securely.
TBD: walk through this exercise
How to add a new Principle article
You can follow the instructions to make a new Principle article. Please use the appropriate structure and follow the Tutorial. Be sure to paste the following at the end of your article to make it show up in the Principle category:
[[Category:Principle]]
References
- Engineering Principles for Information Technology Security (EP-ITS), by Gary Stoneburner, Clark Hayden, and Alexis, NIST Special Publication (SP) 800-27 PDF versionTXT overview version
- Secure Design Principles Book Chapter from "Foundations of Security: What Every Programmer Needs To Know" by Neil Daswani, Christoph Kern, and Anita Kesavan (ISBN 1590597842)
Pages in category "Principle"
The following 24 pages are in this category, out of 24 total.
D
- Defense in depth
- Defense in depth (code modification prevention)
- Detect integrity violation incidents (code modification prevention)
- Detect intrusions
- Don't trust user input
- Don’t trust infrastructure
- Don’t trust local resources (code modification prevention)
- Don’t trust mobile OS infrastructure (code modification prevention)
- Don’t trust services