이 사이트에서는 Fortify Software Security Research Group과 Gary McGraw 박사가 함께 개발한 소프트웨어 보안 오류의 분류를 소개합니다. 각 취약점 범주마다 문제의 자세한 설명과 원래 출처에 대한 참조 그리고 적용 가능한 경우 문제를 더 잘 설명하기 위한 발췌된 코드가 있습니다.

분류 체계 구성은 생물학의 용어를 빌어서 설명합니다. 즉, 취약점 범주를 문(phyla)이라고 하며, 동일한 특징을 공유하는 취약점 범주의 모음을 계(kingdom)라고 합니다. 취약점 문(phyla)은 소프트웨어 보안에 대한 중요도의 순서에 따라 "7 + 1"의 유해성 계(kingdom)로 분류됩니다.

  1. Input Validation and Representation
  2. API Abuse
  3. Security Features
  4. Time and State
  5. Errors
  6. Code Quality
  7. Encapsulation
  8. * Environment

처음 7개의 계(kingdom)는 소스 코드의 보안 결함에 연관되며, 마지막 하나는 실제 코드 외부의 보안 문제를 기술합니다. 계(kingdom) 및 문(phyla) 설명을 찾아보려면 왼쪽의 분류 트리를 탐색하면 됩니다.

이 분류 정의의 기본 목적은 소프트웨어 개발자가 보안에 영향을 미치는 오류 종류를 이해하는 데 유용하게 사용할 수 있는 보안 규칙의 집합을 구성하는 것입니다. 시스템이 어떻게 실패하는지를 이해하면 개발자는 자신이 만드는 시스템을 더 효과적으로 분석하고, 보안 문제 발견 시 이를 더 쉽게 식별 및 해결할 수 있으며, 일반적으로 향후 동일한 실수의 반복이 방지됩니다.

분석 도구를 사용할 때 이 분류에 따라 구성된 보안 규칙 집합은 강력한 학습 메커니즘입니다. 오늘날 개발자들은 대체로 자신의 작업에 보안 문제를 초래할 수 있는 무수한 방법을 잘 모르기 때문에 이러한 분류를 갖춰놓으면 소프트웨어 보안 커뮤니티에 실질적인 장점이 됩니다.

또한 더 나은 분류 체계의 정의는 더 나은 도구로 이어질 수 있습니다. 즉, 문제를 더 잘 이해하면 연구자와 작업자가 문제를 찾아내는 더 나은 방법을 만드는 데 도움이 됩니다.

분류법에 대한 자세한 내용은 초판 7가지 유해성 계(Kingdom): 소프트웨어 보안 오류의 분류 및 최근에 출시된 분류법의 진화: 소프트웨어 보안 10년 백서를 참조하십시오.