セキュリティ・ID

OWASP Top 10とは|1位でも3.73%——この順位は「よく起きる順」ではない

OWASP Top 10の順位は何を基準に決まっているのか上から順に10個潰せば安全になるのか2025年版で何が変わったのか

自分の作ったサービスにセキュリティ対策を入れようとして、まずOWASP Top 10を開く。1位から順にメモを取り、10項目のチェックリストを作る——多くの人がここから始めます。そのチェックリストは、作った瞬間から目的とずれています

OWASP Top 10:2025で1位のBroken Access Controlは、検査されたアプリの3.73%でしか見つかっていません。逆に、データ上の出現が最も少ないカテゴリが3位に入っています。この順位は「遭遇しやすい順」ではないからです。では何の順なのか。答えは公式の方法論のページに書かれています。

この記事の要点

  • OWASP Top 10は脆弱性のランキングではなくカテゴリの一覧。2025年版は248個のCWEを10個に束ねたもの
  • 順位は出現率だけで決まらない。10個のうち2つはコミュニティ投票で押し上げられる
  • 1位のBroken Access Controlでも検査対象の3.73%。「ほとんどのアプリにある」という意味ではない
  • 使い方はチェックリストではなく分類。自分の設計のどこが手薄かを言語化する道具として使う

「上から10個潰す」が機能しない理由|順位は出現率ではない

順位を出現率だと読むと優先順位を間違える。データ上の出現が最少のカテゴリが3位に入っており、10個のうち2つはデータではなく投票で決まっている。

OWASP Top 10の順位がどう決まるかは、公式が方法論の節で明言しています。“remains data-informed, but not blindly data-driven”。データに基づくが、盲目的にデータ駆動ではない——この一文が順位の性格を決めています。

具体的な手順はこうです。貢献されたデータで12カテゴリを順位付けし、そのうち2つをコミュニティ調査の回答で押し上げる。つまり10項目のうち2つは、測定結果ではなく現場の実務者による投票で入っています。

投票を混ぜる理由は「データが過去しか映さない」から

併用の理由も公式に書かれています。データを見ることは本質的に過去を見ることであり、新しい弱点を大規模に検査できるようになるまでには数年かかる、という説明です。検査ツールが対応していない脅威は、どれだけ実在してもデータに現れません。

この構造がそのまま表れているのがA03です。ソフトウェアサプライチェーンはデータ上の出現が10カテゴリで最も少ないのに3位に入っています。公式は理由を、コミュニティ調査で最大の懸念として票を集めたこと、そしてCVEから算出した平均の攻撃容易性と影響度が10カテゴリで最も高いことだと説明しています。

3.73%が意味するのは「件数」ではなく「割合」

順位は横軸だけでは決まらない。A03は出現率が10カテゴリで最少なのに3位。出現率で優先順位を組むと、最も影響の大きい領域を後回しにする。

投票で押し上がる領域最優先順位が下がる領域件数で効いてくる領域深刻限定的1件あたりの影響と攻撃容易性データに現れにくい多くのアプリで検出検査データでの出現率A03 サプライチェーンA01 アクセス制御A02 設定不備A09 ログと通知A03はデータ上の出現が最少だが、CVEの平均攻撃容易性と影響度が最も高い。A09も検査データでは常に過小評価され、今回もコミュニティ調査で順位入りしている。
図1 ── 2025年版の主要カテゴリを「出現率」と「1件あたりの影響」で置いた。順位は両軸の合成で決まるため、片方だけを見ると順序が理解できない(出典: OWASP Top 10:2025 Introduction、2026-08-16取得)
3.73%を「ほとんどのアプリにある」と読まない1位のBroken Access Controlの3.73%は、検査されたアプリのうち該当CWEが1つ以上見つかった割合です。件数ではありません。公式は「アプリに4件あっても4,000件あっても計算には入れない」と明記しています。頻度を無視するのは、手動検査と自動検査で件数の数え方が違い、実際の広がりが隠れるためです。
余談 順位より「自分に該当するか」の方が先

順位はあくまで全体の平均像です。決済を持たないサービスにとってのA04(暗号化の不備)と、カード情報を扱うサービスにとってのA04では、同じ4位でも意味がまったく違います。順位を自分の優先順位として輸入しない——これが編集部の見立てです。使うべきは順位ではなく分類の方です。

This installment of the Top Ten remains data-informed, but not blindly data-driven. We ranked 12 categories based on the data contributed, and allowed two to be promoted or highlighted by responses from the community survey.
出典OWASP Top 10:2025「Introduction」Methodology 節 一次情報を確認2026-08-16 この内容の有効期限2027-02-16

2025年版で何が動いたか|新設2つ・統合1つと、その意味

8回目の改訂で新設されたのはサプライチェーンと例外条件。SSRFは独立カテゴリをやめてアクセス制御に吸収された。名前の変更にも意図がある。

OWASP Top 10:2025は8回目の版です。分析対象は約17.5万件のCVE記録で、2021年版の約12.5万件から増えました。マッピングされたCWEは589個に及び、そのうち248個が10カテゴリに収まっています

順位カテゴリ2021年版から含まれるCWE数
A01Broken Access Control(アクセス制御の不備)1位を維持・SSRFを統合40
A02Security Misconfiguration(設定不備)5位から上昇16
A03Software Supply Chain Failures(サプライチェーン)新設(旧A06を拡張)5
A04Cryptographic Failures(暗号化の不備)2位から下降32
A05Injection(インジェクション)3位から下降38
A06Insecure Design(安全でない設計)4位から下降
A07Authentication Failures(認証の不備)7位を維持・改称36
A08Software or Data Integrity Failures(完全性の不備)8位を維持
A09Security Logging & Alerting Failures(ログと通知)9位を維持・改称
A10Mishandling of Exceptional Conditions(例外条件の扱い)新設24
表1 ── OWASP Top 10:2025の全10カテゴリと2021年版からの動き(出典: OWASP Top 10:2025 Introduction、2026-08-16取得)

SSRFがカテゴリをやめた——症状ではなく根本原因へ

2021年版で10位だったSSRF(Server-Side Request Forgery)は、独立したカテゴリではなくなりA01に統合されました。公式は改訂の方針を「症状より根本原因に焦点を当てる」と説明しています。サーバーに意図しない宛先へリクエストさせる問題を、アクセス制御の失敗の一種として扱い直したということです。

同じ考え方は改称にも表れています。A09は「Logging and Monitoring」から「Logging & Alerting」へ変わりました。理由は明快で、通知のない優れたログは、インシデントの特定にほとんど価値がないという判断です。記録することと気づくことは別だ、という指摘になっています。

A10新設が示すもの——「壊れ方」が評価対象になった

新設のA10は、不適切なエラー処理・論理エラー・フェイルオープンなど、システムが異常な状態に置かれたときの振る舞いを24個のCWEでまとめたものです。攻撃そのものではなく失敗したときにどう倒れるかが独立した観点になりました。

アクセス制御を実装するなら、A01の具体的な失敗例を知っておくと役に立ちます。当メディアではIDOR(安全でない直接オブジェクト参照)CSRFを個別に解説しています。どちらもA01と隣接する領域です。

A01:2025 - Broken Access Control maintains its position at #1 as the most serious application security risk; the contributed data indicates that on average, 3.73% of applications tested had one or more of the 40 Common Weakness Enumerations (CWEs) in this category.
出典OWASP Top 10:2025「Introduction」What's changed 節 一次情報を確認2026-08-16 この内容の有効期限2027-02-16

チェックリストにしない使い方|分類してから、手薄な列を探す

10項目を潰す作業に変換せず、自分の機能を10カテゴリへ割り当てる。1つも該当機能が書けないカテゴリが、検討していない領域を指している。

OWASP Top 10を実務で使う方法は、上から順に対策する形にはなりません。10カテゴリは248個のCWEを束ねた分類であって、検査項目の一覧ではないからです。使い道は分類器として使うことにあります。

手順——機能を先に書き、カテゴリを後から当てる

  1. 自分のサービスの機能を10〜20個ほど箇条書きにする(ログイン、プロフィール編集、ファイルアップロード、決済、管理画面など)
  2. 各機能に、触れているカテゴリのA番号を書き込む。1つの機能に複数付いて構わない
  3. 10カテゴリを縦に並べ、1つも機能が割り当たらなかった行を探す。そこが検討していない領域
  4. 空いた行について「本当に該当しないのか、考えていないだけか」を判定する。A03とA10は空きやすい

この順番が重要です。カテゴリから始めると一般論の対策メモになりますが、機能から始めると自分のコードの話になります。空白行が出たときに初めて、そのカテゴリの詳細ページを読む価値が生まれます。

最初に手を付けるならA01——認証の直後に穴が開く

どこから着手するか迷うなら、A01のアクセス制御が最初の候補です。認証(本人確認)を実装した直後は、ログイン済みであれば誰のデータでも触れる状態になりがちで、認可(権限確認)の実装が抜けやすい箇所だからです。

確認の方法は単純で、自分のアカウントでログインした状態のまま、URLやAPIのIDを他人のものに書き換えて叩くだけです。データが返ってきたらA01に該当します。この検証はIDORの記事で具体的な手順を扱っています。

分類カバー率の試算 ── 何割のカテゴリを検討済みにできているか
10カテゴリに対する確認済みの割合 30%
  • 30着手段階(A01中心)
  • 70主要領域を一巡した水準

分母は常に10。割り当てただけの数ではなく、実際にコードを見た数で計算する。割り当てと確認の差が、そのまま未着手の量になる。

余談 「該当なし」と書ける状態が成果物

この作業の成果は対策の実装ではなく、10行の表が埋まることだと編集部は考えています。「A03は依存パッケージがnpmの公式レジストリのみ、ビルドはGitHub Actions、該当あり」と書ける状態と、空欄のまま放置されている状態では、次に何を調べるべきかの見え方が変わります。空欄は無害ではなく、単に見ていない場所です。

この節は一次情報での裏取りが未了です。 OWASP Cheat Sheet Series「Authorization Cheat Sheet」(2026-08-16 記載)

よくある質問

OWASP Top 10の10項目を全部対策すれば安全ですか?
なりません。2025年版の10カテゴリに含まれるCWEは248個で、データセット全体の589個の一部です。Top 10は最も重大なリスクへの注意を集めるための文書であり、網羅的な検査項目の一覧ではありません。
順位はどうやって決まっているのですか?
貢献されたデータで12カテゴリを順位付けし、そのうち2つをコミュニティ調査の回答で押し上げる、という併用方式です。公式はこれを「データに基づくが、盲目的にデータ駆動ではない」と説明しています。
2021年版と2025年版のどちらを見ればいいですか?
2025年版が最新です。SSRFがA01に統合され、ソフトウェアサプライチェーンと例外条件の扱いが新カテゴリとして追加されました。ただし2021年版を前提にした社内規程や監査項目が残っている場合は、対応関係の確認が必要です。
個人開発でも見る価値はありますか?
あります。特にA01のアクセス制御は、認証を実装した直後に「ログインしていれば他人のデータも見られる」状態を作りやすい領域です。自分の実装が10カテゴリのどれに触れているかを一度分類するだけでも、抜けている観点が見えます。

まとめ

  • Top 10の順位は出現率・影響度・投票の合成。単独の指標ではない
  • 1位でも3.73%という数字は、「珍しいが最も重大」という設計思想の表れ
  • 2025年版はサプライチェーンと例外条件を新設し、SSRFをアクセス制御へ統合した
  • 上から潰すのではなく、自分の設計を10カテゴリに分類して手薄な箇所を探す

今日から始められること

  1. 自分のサービスの機能を10カテゴリに分類し、1つも該当機能がないカテゴリを探す
  2. アクセス制御(A01)について、他人のIDを入れたときの挙動を実際に試す
  3. 依存パッケージの取得元とビルド経路を書き出す(A03の範囲を把握する)
  4. エラー時に何が起きるかを1つの機能で追う(A10の失敗パターンを確認する)

実務で組んだOWASP Top 10のワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る