OWASP Top 10:2025 の見取り図
10個は症状でなく根本の原因で分けた入れ物で、1つに平均25のCWEが入る。名前を覚えるより、自分のコードのどの層に属するかで引けるようにしておく。
要点
- 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年版からの移り変わり
| 2025年版 | 2021年版 | 変化 |
|---|---|---|
| A01 | A01 と A10 | 1位のまま。2021年の A10 SSRF を取り込んだ |
| A02 | A05 | 5位から2位。挙動を設定で決める部分が増えたため |
| A03 | A06 | 古い部品の問題を、依存、ビルド、配布の仕組み全体の侵害へ広げた。調査で回答の50%が1位に選んだ |
| A04 | A02 | 2位から4位 |
| A05 | A03 | 3位から5位。CVEの数は全カテゴリで最多 |
| A06 | A04 | 4位から6位。A02 と A03 に追い越された |
| A07 | A07 | 名前を Identification and Authentication Failures から変えた |
| A08 | A08 | 名前を Software and Data Integrity Failures から変えた。A03 より低い水準の完全性の検証を扱う |
| A09 | A09 | 名前を Security Logging and Monitoring Failures から変え、通知を強調した。調査から選ばれた |
| A10 | 無し | 新設。誤った例外処理、論理の誤り、失敗したときに開いてしまう作りを集めた |
どの層に守りを置くか
カテゴリは重なる。OWASP 自身が、重なりの無い10個は作れないと書いている[2]。レビューでは、変更がどの層に触れたかから、見るべきカテゴリを引く。
| 変更の種類 | まず見るカテゴリ |
|---|---|
| 新しい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]。
参照
- OWASP Top Ten OWASP Foundation。プロジェクトのページ
- Introduction, OWASP Top 10:2025 OWASP Foundation
- OWASP/Top10 の変更履歴 GitHub。2025年12月24日の Removed RC from title と Remove Release Candidate CSS from 2025 site
- OWASP Top 10:2025 日本語版 OWASP Foundation
- A01:2025 Broken Access Control から A10:2025 Mishandling of Exceptional Conditions までの各ページ OWASP Foundation
- OWASP Application Security Verification Standard OWASP Foundation
- OWASP Web Security Testing Guide OWASP Foundation
- OWASP Top 10:2021 日本語版 OWASP Foundation。図1の左の名前