第13章のレビュー定型文で観点として渡した「OWASP Top 10:2025」を、この章では原典に当たって読みます。10項目それぞれについて、一言でいうと何か、ミニ銀行で起きたら何が壊れるか、論文では何件あったか、そして実践編のどの演習で確かめられるかを対応づけます。Top 10は「チェックリスト」ではありません。何のための文書かを知ると、使い方が変わります。
この章の学習目標
- OWASPという団体とTop 10の位置づけ、2021年版から2025年版への変更点を説明できるようになる
- A01〜A10の各項目を、ミニ銀行で起きる事象、論文での件数、自分で確かめる演習章に対応づけられるようになる
- Top 10が「意識づけの文書」であることを理解し、より厳密な検証にはASVSとCheat Sheet Seriesを使う、という使い分けができるようになる
OWASPとは何か、Top 10とは何か
OWASP(Open Worldwide Application Security Project)は、ソフトウェアの安全性を高めるための非営利団体です。2001年に活動が始まり、2004年に財団として法人化されました。世界に250以上の支部があり、文書はすべて無料で読めます。
Top 10はその中で最も知られた文書で、「Webアプリケーションで最も重大なリスク10種類」を数年おきに改訂しています。2025年版は、12の組織と匿名の提供者から集めた280万件以上のアプリケーションのデータを基に、589種類のCWE(Common Weakness Enumeration、弱点の種類を番号で整理した一覧)を分析して作られました。10項目のうち8つはデータから、2つは実務者へのコミュニティ調査から選ばれています。
OWASP自身は、この文書を「標準的な啓発資料(Awareness document)」と位置づけています。2021年版の「Top 10をスタンダードとして使うには」のページでは、「OWASP Top 10 は、主に意識向上を目的とした文書です」と述べ、標準を採用したい人には ASVS(Application Security Verification Standard)を使うよう勧めています。監査でいえば、Top 10は「重点監査項目の通達」で、ASVSが「監査基準」に当たります。ASVSは第20章で扱います。
2021年版から何が変わったか
2025年版の序文によれば、「2つのカテゴリが新設され、1つが統合され」ました。変更点を表にまとめます。
| 2025年版 | 2021年版との関係 |
|---|---|
| A01 アクセス制御の不備 | 引き続き1位。SSRF(サーバーに外部へ要求を出させる不備)を統合 |
| A02 セキュリティ設定の不備 | 5位から2位へ上昇 |
| A03 ソフトウェアサプライチェーンの不備 | 2021年の「脆弱で古くなったコンポーネント」(A06)を拡張。コミュニティ調査で回答者のちょうど半数が1位に挙げた |
| A04 暗号化の不備 | 2位から4位へ |
| A05 インジェクション | 3位から5位へ |
| A06 安全性を欠いた設計 | 4位から6位へ |
| A07 認証の不備 | 7位を維持。「識別と認証の不備」から改称 |
| A08 ソフトウェアまたはデータの完全性の不備 | 8位を維持 |
| A09 セキュリティログとアラートの不備 | 9位を維持。「セキュリティログと監視の不備」から改称し、行動を促す「アラート」を強調 |
| A10 例外的な状況への不適切な対応 | 2025年版の新カテゴリ |
読み取れるのは2つです。設定の不備が2位まで上がったこと(第12章の重みが増しました)、そして「部品」の問題がサプライチェーンという広い枠に広がり、実務者の最大の関心事になったこと(第16章)です。
A01〜A10を、自分のアプリに当てはめる
10項目を4つの観点で並べます。「論文での件数」は第14章のTable 2の数字です。「確認する章」は、実践編のどの演習がその項目に対応するかです。
| 項目 | 一言でいうと | ミニ銀行で起きたら | 論文 | 確認する章 |
|---|---|---|---|---|
| A01 アクセス制御の不備 | 「誰に何を許すか」をサーバーが確かめていない | URLの口座番号を変えると他人の残高が見える、他人の口座から振込できる | 339件 28.58% | 第10章 |
| A02 セキュリティ設定の不備 | 土台の設定が初期状態のまま、または緩い | RLSが無効で、公開用の鍵だけで全テーブルが読める | 108件 9.11% | 第12章 |
| A03 ソフトウェアサプライチェーンの不備 | 他人が作った部品や、作る工程が汚染される | 使っているパッケージの更新に悪意ある処理が入り、全利用者のブラウザで動く | 73件 6.16% | 第12章、第16章 |
| A04 暗号化の不備 | 守るべきデータの保存や通信が平文、または弱い暗号 | データベースが一度読まれると全利用者のパスワードがそのまま流出 | 112件 9.44% | 第9章、第10章 |
| A05 インジェクション | 入力が命令として解釈される | 振込メモから全取引履歴が読み出される。メモに仕込まれた文字が他人の画面で実行される | 199件 16.78% | 第11章 |
| A06 安全性を欠いた設計 | コードの書き方以前に、仕組みの設計に守りがない | 残高不足でも振込が通る。限度額の確認がブラウザ側にしかない | 62件 5.23% | 第8章、第13章 |
| A07 認証の不備 | 本人確認が甘い | 短いパスワードを何度でも試せる。ログアウトしても保護画面が残る | 176件 14.84% | 第10章、第12章 |
| A08 ソフトウェアまたはデータの完全性の不備 | 受け取るコードやデータが改ざんされていないことを確かめていない | 外部サービスからの入金通知を検証せずに残高へ反映する | 12件 1.01% | 第13章 |
| A09 セキュリティログとアラートの不備 | 何が起きたか記録されず、気づけない | 他人の口座への不正な振込があっても、いつ誰がやったか分からない | 64件 5.40% | 第18章 |
| A10 例外的な状況への不適切な対応 | エラーや想定外の状況で、安全でない側に倒れる | 振込の途中で通信が切れ、引落しだけ残る。エラー画面にSQLが出る | 41件 3.46% | 第11章、第12章 |
上位3つ:A01、A05、A07
論文では、この3項目で全体の60.20%を占めました。いずれも実践編で手を動かした項目です。A01は第10章で、テスト用アカウント2つを使って「他方のデータが拒否されること」を確かめました。A05は第11章で、無害な太字タグが文字のまま表示されることを確かめました。A07は第10章と第12章で、Supabase Authの設定とログアウト後の挙動を見ました。原典の対策の節には、A01に「公開リソースを除き、原則としてすべてのアクセスを拒否してください」「各レコードの所有権に基づいたアクセス制御をモデル上で強制してください」、A07に「ログイン失敗時の試行を制限、あるいは遅延させてください」「ログアウトやタイムアウト時には必ずサーバー側で無効化してください」とあります。第10章でやったことの根拠は、ここにあります。
設定と部品と設計:A02、A03、A06
A02は第12章そのものです。原典の対策は「開発、QA、本番の各環境は同一の設定とし、認証情報のみを環境ごとに使い分ける」「不要な機能、コンポーネント、ドキュメント、サンプルを含まない最小限のプラットフォーム」で、個人開発では「管理画面の目視」に置き換わります。A03は第16章で詳しく扱います。A06の「安全性を欠いた設計」は、他と性質が違います。コードを直しても直らない、仕組みの問題だからです。原典は「認証、アクセス制御、ビジネスロジック、および主要なデータフローに対して、脅威モデリングを継続的に実施」し、「各層において、妥当性チェック(Plausibility Checks)を統合」するよう求めています。ミニ銀行なら「残高を超える振込は拒否」「1日の限度額」をサーバー側でも確かめることがそれで、第13章でAIに「持ち主への質問」として列挙させた項目の答えが、この設計に当たります。
見えにくい4つ:A04、A08、A09、A10
A04は、パスワードを自分で保存しないという第10章の方針で大半が片づきます。A08は、外部から受け取るものの検証です。論文では最も少ない12件でしたが、決済サービスからの通知を扱うアプリを作るなら避けて通れません。A09は、起きたことに気づくための記録で、第18章で扱います。A10は新設項目で、原典は「最悪の事態を想定する」「失敗したら安全側に倒す(fail closed)」「情報技術において無制限なものは何一つあってはなりません」と書いています。第11章で長い文字列を入れてエラー画面を見た確認と、第12章のエラー表示の確認が、この項目の入口です。
チェックリストではなく、意識づけの文書
Top 10を「10項目に印を付ければ安全」と使うのは、OWASP自身が勧めていない使い方です。10項目は「種類」であって「確認項目」とは違い、A01の中だけでもIDOR、権限昇格、CORSの不備など多くの形があります。項目名に出てこない弱点が、どこかの項目に含まれていることもあります。たとえばCSRF(ログイン中の利用者になりすました不正な送信)は項目名にはありませんが、2025年版ではA01「アクセス制御の不備」に紐づく弱点(CWE-352)として含まれています。何がどの項目に入っているかは、各項目のページにある「紐付けられたCWE一覧」で確かめます。順位はデータの母集団に依存し、あなたのアプリの順位ではありません。
正しい使い方は、「レビューや設計のときに、必ずこの10の観点を頭に置く」ことです。第13章の定型文はこの使い方でした。項目ごとに本当に確かめるなら、ASVSの要件一覧(第20章)に進みます。内部統制でいえば、Top 10は「リスク評価で重点を置く領域の一覧」、ASVSは「統制の整備・運用状況を評価する手続書」です。
OWASP Cheat Sheet Series の使い方
Top 10が「何が危ないか」の文書なら、Cheat Sheet Series は「どう守るか」の文書です。OWASPは「特定のアプリケーションセキュリティの話題に関する、価値の高い情報の簡潔な集まり」と説明していて、2026年時点で137ほどのシートが公開されています。Top 10の項目ごとに関連シートを引ける索引(IndexTopTen)があり、第5章で参照した Authorization、CSRF Prevention、第12章の HTTP Headers もその一部です。他に Input Validation、Logging、Secrets Management、Vulnerable Dependency Management、Software Supply Chain Security、LLM Prompt Injection Prevention などがあります。
非エンジニアにとっての使い方は、自分で実装することより、AIに渡す参照先にすることです。「A01を直して」と頼むより、「OWASPのAuthorization Cheat Sheetに従って直して」と頼むほうが、第4章の実験でいう「当たり前を文書で渡す」に近づきます。
第13章のレビューで「A01 アクセス制御の不備」として指摘された次の箇所を修正してください。 対象:(ファイル名と行番号) 指摘内容:(レビュー報告の該当行を貼る) 条件: - OWASP Cheat Sheet Series の「Authorization Cheat Sheet」の推奨(すべてのリクエストで権限を検証する、初期状態は拒否、サーバー側で判断する)に従ってください - 同じ処理をしている他の箇所(取得・更新・削除)にも同じ守りが入っているかを確認し、漏れがあれば一覧にしてください(修正はまだしないでください) - 変更した箇所を差分で示し、「何を」「なぜ」変えたかを一行ずつ説明してください - 業務ルール(誰に何が許されるべきか)が分からない箇所は、修正せずに質問として列挙してください
演習:自分のアプリのTop 10対応表を作る
- 点検ノートに、A01〜A10を縦に並べた表を作ります。列は「該当する機能」「確認した章と日付」「状態(確認済み/要対応/未確認/非該当)」の3つです。
- 第8章で描いた全体図を横に置き、項目ごとに「自分のアプリのどの機能がこの項目に関係するか」を書きます。ログインがなければA07は非該当、他人のデータを扱わなければA01は限定的、というように、第3章のリスク段階で判断します。
- 第9〜13章で確認済みの項目に、実施した章と日付を書きます。
- 「未確認」の項目について、OWASPの原典(日本語版)の該当ページを開き、「対策方法」の節を読みます。自分のアプリで何に当たるかが分からなければ、ページの項目名をAIに伝えて聞きます。
- 「要対応」が残れば、上の定型文で、該当する Cheat Sheet を参照先として修正を依頼します。修正後は第10章・第11章の確認を再実行します。
まとめ
- OWASPは2001年に始まった非営利団体で、Top 10:2025は280万件以上のアプリのデータと実務者調査から作られた。2025年版では2項目新設(A03サプライチェーン、A10例外的な状況)、1項目統合(SSRFをA01へ)、設定の不備が5位から2位へ上がった。
- A01〜A10はそれぞれ、ミニ銀行で起きる事象と実践編の演習章に対応づけられる。論文では上位3つ(A01、A05、A07)で60.20%。母集団の違う数字を並べるときは、どちらが何の数字かを添える。
- OWASP自身がTop 10を「意識向上を目的とした文書」と位置づけ、標準にはASVSを勧めている。「どう守るか」はCheat Sheet Seriesにあり、非エンジニアはそれをAIへの参照先として渡す。
出典
- OWASP Top 10:2025(日本語版)(OWASP, 2025)
- OWASP Top 10:2025 イントロダクション(2025年版での変更点、データの基盤)(OWASP, 2025)
- OWASP Top 10:2021「OWASP Top 10 をスタンダードとして使うには」(OWASP, 2021)
- OWASP Top 10:2025 A03 ソフトウェアサプライチェーンの不備(OWASP, 2025)
- OWASP Top 10:2025 A10 例外的な状況への不適切な対応(OWASP, 2025)
- OWASP Foundation「About the OWASP Foundation」(OWASP)
- OWASP Cheat Sheet Series(OWASP)
- OWASP Cheat Sheet Series「OWASP Top Ten: Related Cheat Sheets」(OWASP)
- Junquan Deng, Zhiyu Fan, Ruijie Meng「Understanding the (In)Security of Vibe-Coded Applications」(arXiv:2606.23130、2026年6月、v4は2026年9月14日)