Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


title: “OWASP Top 10 と API Security Top 10” part: “Part 1” chapter: “1-4”

OWASP Top 10(Web / API)の位置づけ

OWASP Top 10 は、Web アプリケーションや API における代表的なリスクを整理したドキュメントであり、セキュリティ教育やリスクコミュニケーションの事実上の標準として広く利用されている。本章では、2021 年版 Web Top 10 および 2023 年版 API Security Top 10 を前提に、その役割と実務での活用方法を整理する。

本章のゴール

  • 前提:代表的な脆弱性カテゴリ(アクセス制御不備、インジェクション等)の概要を理解している。
  • 到達目標:Top 10 を「分類軸・コミュニケーションの入口」として使う位置づけを説明し、ASVS / WSTG と組み合わせたテスト設計の考え方を整理できる。
  • 対応演習:任意の発見事項(または想定リスク)を Top 10 のカテゴリに分類し、どの標準(ASVS / WSTG 等)で詳細化・検証するかをメモとして残す。

OWASP Top 10 2021(Web)

Top 10 2021 では、以前のバージョンからカテゴリの統廃合や名称変更が行われているが、ここでは代表的なリスクの例を挙げる。

  • A01:2021 - Broken Access Control(アクセス制御の不備)
  • A02:2021 - Cryptographic Failures(暗号の失敗)
  • A03:2021 - Injection(インジェクション)
  • A04:2021 - Insecure Design(不適切な設計)
  • A05:2021 - Security Misconfiguration(セキュリティ設定不備)
  • A07:2021 - Identification and Authentication Failures(認証・識別の不備) など

重要なのは、各項目が「技術的な脆弱性」に留まらず、設計上の問題や運用ミスも含む広い概念として整理されている点である。Pentest の観点では、Top 10 をそのままチェックリストとして使うというより、「どのカテゴリに属する問題をどの程度検証したか」を報告書で示すための分類軸として利用するのが有効である。

OWASP API Security Top 10 2023

API に特化したリスクとして、OWASP API Security Top 10 が公開されている。2023 年版では、次のようなカテゴリが含まれる。

  • API1:2023 - Broken Object Level Authorization(オブジェクトレベルのアクセス制御不備、BOLA)
  • API2:2023 - Broken Authentication(認証の不備)
  • API3:2023 - Broken Object Property Level Authorization(プロパティレベルのアクセス制御不備)
  • API4:2023 - Unrestricted Resource Consumption(リソース消費の制限不備)
  • API5:2023 - Broken Function Level Authorization(機能レベルのアクセス制御不備)
  • API6:2023 - Unrestricted Access to Sensitive Business Flows(センシティブなビジネスフローへの制限不備)
  • API7:2023 - Server Side Request Forgery(SSRF)
  • API8:2023 - Security Misconfiguration
  • API9:2023 - Improper Inventory Management
  • API10:2023 - Unsafe Consumption of APIs

Web 向け Top 10 と比較すると、オブジェクトレベル/プロパティレベル/機能レベルといった「権限管理の粒度」に強くフォーカスしている点が特徴である。特に BOLA(旧 Broken Object Level Authorization)は、ID 連番や予測可能なリソース識別子を通じて他者データにアクセス可能となる典型的な API リスクとして、実務でも頻出である。

Top 10 の使い方

Top 10 は「完全なチェックリスト」ではなく、「代表的なリスクカテゴリの優先順位付きリスト」として理解すべきである。実務では次のような用途が考えられる。

  • 非技術者(経営層、ビジネス側担当者)に対して、どのようなリスクを主に対象としているかを説明する
  • Pentest レポートのサマリ部分で、「本評価では Top 10 のうち A01/A03/API1/API4 等を重点的に評価した」といった形でカバレッジを示す
  • 教育コンテンツやトレーニング計画を立てる際に、「まずは Top 10 を一通り理解する」ロードマップとして利用する

一方で、Top 10 に記載されていないリスク(例:特定クラウドサービス固有の設定ミス、組織固有のビジネスロジック欠陥など)も多数存在するため、Top 10 だけをもって「十分な診断が行われた」と判断することは適切ではない。

ASVS / WSTG との関係

Part 1 で前述した ASVS / WSTG と Top 10 は、次のような関係にある。

図1-5 は、Top 10 を「分類軸・コミュニケーションの入口」として使いながら、ASVS / WSTG で詳細化し、テスト計画・実施・報告に接続する関係を示す。

図1-5: Top 10 と ASVS / WSTG の接続(概要)

flowchart LR
    Top10[OWASP Top 10 / API Security Top 10\n(分類軸・入口)] --> ASVS[ASVS\n(要求/チェックリスト)]
    Top10 --> ReportAxis[報告でのカバレッジ提示\n(重点カテゴリの明示)]
    ASVS --> Plan[テスト計画/観点]
    WSTG[WSTG\n(手順/技法)] --> Plan
    Plan --> Exec[テスト実施]
    Exec --> Report[報告(再現手順/根拠/推奨対策)]
  • Top 10:
    リスクカテゴリを概観する「サマリ/教育用リスト」
  • ASVS:
    各カテゴリをより詳細な要件レベルに分解した「要求仕様」
  • WSTG:
    各要件を実際に検証するための「テスト手順」

Pentest 実務では、Top 10 を入り口として大まかなリスクイメージを共有しつつ、具体的なテスト設計や改善施策の検討には ASVS / WSTG といった詳細な標準を参照する、という組み合わせが現実的である。

次に読む Part

本章のポイント

  • OWASP Top 10 は「代表的なリスクカテゴリの優先順位付きリスト」であり、完全なチェックリストではない。
  • Web Top 10 と API Top 10 は焦点が異なり、API 側は特に認可(オブジェクト/プロパティ/機能レベル)やインベントリ管理に重きを置く。
  • Top 10 を分類軸・コミュニケーションの入口として用い、詳細なテスト設計は ASVS / WSTG と組み合わせるのが現実的である。