CAPEC

Common Attack Pattern Enumeration and Classification
Common Attack Pattern Enumeration and Classification

A Community Knowledge Resource for Building Secure Software

Home > About CAPEC   View the CAPEC List

About CAPEC
About CAPEC

Challenge

Building software with an adequate level of security assurance for its mission becomes more and more challenging every day as the size, complexity, and tempo of software creation increases and the number and the skill level of attackers continues to grow. These factors each exacerbate the issue that, to build secure software, builders must ensure that they have protected every relevant potential vulnerability; yet, to attack software, attackers often have to find and exploit only a single exposed vulnerability. To identify and mitigate relevant vulnerabilities in software, the development community needs more than just good software engineering and analytical practices, a solid grasp of software security features, and a powerful set of tools. All of these things are necessary but not sufficient. To be effective, the community needs to think outside of the box and to have a firm grasp of the attacker’s perspective and the approaches used to exploit software. An appropriate defense can only be established once you know how it will be attacked.

Solution

Attack patterns are descriptions of common methods for exploiting software providing the attacker’s perspective and guidance on ways to mitigate their effect. They derive from the concept of design patterns applied in a destructive rather than constructive context and are generated from in-depth analysis of specific real-world exploit examples.

This information when captured in such a formalized way can bring considerable value for software security considerations through all phases of the software development lifecycle (SDLC) and other security-related activities, including:

  • Requirements gathering
    • Identification of relevant security requirements, misuse and abuse cases
  • Architecture and design
    • Provide context for architectural risk analysis and guidance for security architecture
  • Implementation and coding
    • Prioritize and guide activities of secure code review
  • Software testing and quality assurance
    • Provide context for appropriate risk-based and penetration testing
  • Systems operation
    • Leverage lessons learned from security incidents into preventative guidance
  • Policy and standard generation
    • Guide the identification of appropriate prescriptive organizational policies and standards

Of course, attack patterns are not the only useful tool for building secure software. Many other tools, such as misuse/ abuse cases, security requirements, threat models, knowledge of common weaknesses and vulnerabilities, coding rules, and attack trees, can help. Attack patterns play a unique role amid this larger architecture of software security knowledge and techniques.

Contact Us

To discuss the CAPEC effort in general, the impacts and transition opportunities noted above, or any other questions or concerns, please email us at capec@mitre.org.

 
Page Last Updated: March 12, 2007