OWASP Top 10:2025 の見取り図

10個は症状でなく根本の原因で分けた入れ物で、1つに平均25のCWEが入る。名前を覚えるより、自分のコードのどの層に属するかで引けるようにしておく。

OWASP Top 10:2025 確定版。候補版として公開されたのち、2025年12月24日に公式サイトから候補版の表記が外れた[1][3]。2026年11月時点の公式の記載で書いています。

要点

  • 8番目の版で、280万を超えるアプリの検査データと、実務者への調査で決めた。データから8つ、調査から2つを選ぶ方式は2021年版と同じ[2]。
  • 新設は A03 ソフトウェアサプライチェーンの不備と A10 例外的な状況への不適切な対応の2つ。2021年の A10 SSRF は A01 に統合された。
  • 設定の不備が5位から2位へ上がり、暗号化の不備とインジェクションは2つずつ下がった。
  • A07、A08、A09 は順位を保ち、名前だけ変わった。

10のカテゴリ

日本語名は OWASP の公式の日本語版に合わせた[4]。核心の1行はこのサイトの要約で、主なCWEは各カテゴリのページが挙げるものから取った。

番号名前核心主なCWE
A01アクセス制御の不備
Broken Access Control
この主体がこの対象にこの操作をしてよいかを、サーバーが要求のたびに確かめていない。200, 201, 352, 918
A02セキュリティ設定の不備
Security Misconfiguration
安全でない既定値、不要な機能、詳しすぎる応答が、本番の設定に残っている。16, 611
A03ソフトウェアサプライチェーンの不備
Software Supply Chain Failures
自分で書いていないコードと、それを作って届ける仕組みを、把握も固めもしていない。1104, 1329, 1395
A04暗号化の不備
Cryptographic Failures
守るべきデータに暗号が無いか、弱い方式や誤った使い方で守ったつもりになっている。327, 331, 338, 1241
A05インジェクション
Injection
外からの入力が、データでなく解釈系への命令の一部として扱われる。79, 89
A06安全性を欠いた設計
Insecure Design
要る守りの仕組みが設計で用意されていない。完璧な実装でも直らない。256, 269, 434, 501, 522
A07認証の不備
Authentication Failures
正しくない利用者を、正しい本人として受け入れてしまう。259, 287, 297, 384, 798
A08ソフトウェアまたはデータの完全性の不備
Software or Data Integrity Failures
更新、部品、直列化したデータを、完全性を確かめずに信頼する。502, 829, 915
A09セキュリティログとアラートの不備
Security Logging and Alerting Failures
攻撃の記録が残らないか、残っても人の対応につながる通知が出ない。117, 532, 778
A10例外的な状況への不適切な対応
Mishandling of Exceptional Conditions
異常な状態を防がず、気づかず、安全側に倒さずに処理を続ける。209, 234, 274, 476, 636

2021年版からの移り変わり

2021年版の10個が2025年版のどこへ移ったかを線で結び、SSRFがA01へ統合され、A10が新設されたことを示す 2021年版 2025年版 A01 アクセス制御の不備 A02 暗号化の失敗 A03 インジェクション A04 安全が確認されない不安な設計 A05 セキュリティの設定ミス A06 脆弱で古くなったコンポーネント A07 識別と認証の失敗 A08 ソフトウェアとデータの整合性の不具合 A09 セキュリティログとモニタリングの失敗 A10 SSRF A01 アクセス制御の不備 A02 セキュリティ設定の不備 A03 サプライチェーンの不備 A04 暗号化の不備 A05 インジェクション A06 安全性を欠いた設計 A07 認証の不備 A08 完全性の不備 A09 ログとアラートの不備 A10 例外的な状況への不適切な対応 緑の線は順位が上がったもの。破線は統合。緑の箱は2025年版で新しく立てたカテゴリ
図1 2021年版から2025年版への対応。左は2021年版の日本語版の名前[8]。右の名前は図のために一部を縮めた
2025年版2021年版変化
A01A01 と A101位のまま。2021年の A10 SSRF を取り込んだ
A02A055位から2位。挙動を設定で決める部分が増えたため
A03A06古い部品の問題を、依存、ビルド、配布の仕組み全体の侵害へ広げた。調査で回答の50%が1位に選んだ
A04A022位から4位
A05A033位から5位。CVEの数は全カテゴリで最多
A06A044位から6位。A02 と A03 に追い越された
A07A07名前を Identification and Authentication Failures から変えた
A08A08名前を Software and Data Integrity Failures から変えた。A03 より低い水準の完全性の検証を扱う
A09A09名前を Security Logging and Monitoring Failures から変え、通知を強調した。調査から選ばれた
A10無し新設。誤った例外処理、論理の誤り、失敗したときに開いてしまう作りを集めた

出典は導入のページと各カテゴリのページ[2][5]。

どの層に守りを置くか

カテゴリは重なる。OWASP 自身が、重なりの無い10個は作れないと書いている[2]。レビューでは、変更がどの層に触れたかから、見るべきカテゴリを引く。

利用者の端末からアプリのコード、データと通信、実行環境、部品とビルドまでの層に、10のカテゴリを置いた図 利用者の端末 要求は改変できる アプリのコードと設計 A07 認証 誰か A01 認可 してよいか A05 入力の扱い 命令にしない A10 例外の扱い 失敗したら閉じる A06 設計 守りの仕組みがそもそもあるか A04 データと通信 暗号と鍵 A02 実行環境 サーバー、クラウドの設定 A03 と A08 部品、ビルド、更新 A09 ログとアラート どの層の失敗も、記録されて人に届かなければ気づけない
図2 カテゴリを守りの置き場所で並べた見取り図。このサイトの整理で、OWASP の図ではない
変更の種類まず見るカテゴリ
新しいAPIや画面の追加A01、A05、A07、A10
ファイルやURLを受け取る機能A01 の SSRF とパスの横断、A05、A06
依存部品の追加と更新、CIの変更A03、A08
インフラ、コンテナ、クラウドの設定A02、A03
パスワード、トークン、個人情報の保存と送信A04、A07、A09
外部サービスとの連携、決済、在庫など状態の変化A06、A10

使うときの注意

意識づけの文書であって、検証の基準ではない

OWASP は Top 10 を開発者向けの意識づけの標準の文書と位置づける[1]。10個を全部確かめても安全とは言えない。設計と検証の要件には ASVS 5.0 を、試験の手順には WSTG を使う[6][7]。

  • 数字の扱い。各カテゴリの発生率は、検査したアプリのうち、そのカテゴリのCWEが1件以上見つかった割合で、件数は数えていない[2]。手作業の診断と自動の走査で数え方が違うのを避けるため。
  • CWEの数。導入のページと各カテゴリのページで数が食い違うものがある。A03 は導入で5、カテゴリの表と一覧で6。A05 は導入で38、カテゴリのページで37。この講座では一覧に載ったCWEを数える。
  • 2025年版で分析したCWEは589種で、10カテゴリに入れたのは248。1カテゴリの上限を40にした[2]。

参照

  1. OWASP Top Ten OWASP Foundation。プロジェクトのページ
  2. Introduction, OWASP Top 10:2025 OWASP Foundation
  3. OWASP/Top10 の変更履歴 GitHub。2025年12月24日の Removed RC from title と Remove Release Candidate CSS from 2025 site
  4. OWASP Top 10:2025 日本語版 OWASP Foundation
  5. A01:2025 Broken Access Control から A10:2025 Mishandling of Exceptional Conditions までの各ページ OWASP Foundation
  6. OWASP Application Security Verification Standard OWASP Foundation
  7. OWASP Web Security Testing Guide OWASP Foundation
  8. OWASP Top 10:2021 日本語版 OWASP Foundation。図1の左の名前