このサイトでは、Fortify ソフトウェアのセキュリティ研究グループが Gary McGraw 博士と共同で策定したソフトウェア セキュリティ エラーの分類を提供しています。脆弱性カテゴリごとに、問題の詳細な説明と元のソースへの参照が含まれており、必要に応じて、問題をよりわかりやすく解説するためのコード引用が追加されています。

この分類体系の編成は、生物学の用語を流用して説明されています。脆弱性カテゴリは門 (phylum) と呼ばれ、同じテーマを共有する脆弱性カテゴリのコレクションは界 (kingdom) と呼ばれます。脆弱性門は、ソフトウェア セキュリティへの重要度の順に並んだ「7 + 1」個の有害界に分類されます。

  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 つの界は、ソース コードのセキュリティ不具合に関連するもので、最後の 1 つは、実際のコード以外のセキュリティ問題について説明しています。界と門の説明を参照するには、左側にある分類ツリーをたどってください。

この分類を定義する第 1 の目的は、セキュリティ ルールのセットを整理して、セキュリティに影響を及ぼすエラーの種類をソフトウェア開発者が理解しやすくすることです。システムでどのように障害が発生するかの理解を深めることで、開発者は自分が作成するシステムをより的確に分析し、セキュリティ問題を発見したら速やかに特定して対処するようになり、通常はその後同じミスを繰り返さなくなります。

この分類に従って編成されたセキュリティ ルールのセットを分析ツールで利用できるようにすると、教育という面でも効力を発揮します。全般的に見て、今日の開発者は、自分の成果物にさまざまな手段でセキュリティ問題が取り込まれる可能性があることを意識していないため、このような分類を使用できるようにすれば、ソフトウェア セキュリティ コミュニティには目に見える効果が現れるでしょう。

より優れた分類体系を定義すれば、ツールも向上し、研究者と実践者の問題への理解が深まれば、より優れた問題検出手段を作成できます。

分類について詳しくは、オリジナルの論文 『7 つの有害界: ソフトウェア セキュリティ エラーの分類』 および新しく発表された 分類の進化: ソフトウェアセキュリティの10年 論文を参照してください。