自衛のためのサイバー攻撃の仕組み講座(AI時代・エンジニア水準)

区分3 Webサイトとサーバーを狙う攻撃★★★

No.08 OWASP Top 10:2025を自分のサイトで読む

OWASP Top 10 は、Webアプリの弱点を10の型にまとめた世界共通の地図です。この回では、10項目を暗記するのではなく「自分のサイトなら、どこの話か」で読みます。比較表が主役です。数字や順位は2026年10月時点の最新版(2025年版)です。
目次
  1. 第0章 前提知識
  2. 第1章 設計と設定の問題(A01・A02・A06)
  3. 第2章 部品・暗号・認証・完全性の問題(A03・A04・A07・A08)
  4. 第3章 コード・記録・エラーの問題(A05・A09・A10)
  5. 第4章 比較表:自分のサイトで読む
  6. 確認問題

第0章 前提知識

① OWASP と Top 10 :弱点の世界共通の地図

OWASP(オワスプ)は、Webの安全を高めるための非営利の団体です。 Top 10 は、その団体が数年おきに出している「よく起きる弱点の10分類」です。最新は2025年版で、No.07 で見た入力の話も、この10分類の一部に入っています。

地図と同じで、すべての道は載っていません。 でも「どの地域で事故が多いか」が分かるので、点検の順番を決めるときに使えます。

② 10項目は「検査表」ではなく「分類」 必ず覚える

10個すべてを同じ深さで覚える必要はありません。 この表は、自分のサイトを点検するときに「どの引き出しを開けるか」を決める道具です。 順位は、見つかった頻度と深刻さを元にした目安で、あなたのサイトで1位が一番危ないとは限りません。

2025年版では、前回(2021年版)から次の変更がありました。

③ 言葉の整理

第1章 設計と設定の問題(A01・A02・A06)

自分で書いたコードよりも、「そもそも誰に見せるか」「どう設定するか」の問題です。小さな会社のサイトで、一番起きやすい所でもあります。

① A01 アクセス制御の不備 必ず覚える

1位です。「ログインした人に、見せてはいけない物まで見える」状態をいいます。

たとえば、会員ページのURLの番号を1つ変えるだけで、他の会員の画面が開いてしまう。 管理者だけのはずの画面が、ログインしていれば誰でも開ける。 どちらも、サーバーが「この人に許していいか」を確かめていないことが原因です。

自分のサイトなら、次の所を見ます。

守りの基本は「初期値は拒否、必要な人にだけ許す」です。 画面でボタンを隠すだけでは足りません(No.07 第1章②)。

② A02 セキュリティ設定の不備 必ず覚える

2位です。部品は正しくても、設定が甘くて穴になる状態です。

自分のサイトなら、次の所を見ます。

「足し算より引き算」が効く領域です。No.09 で詳しくやります。

③ A06 安全でない設計 さらっと

設計の段階で、守りが考えられていない状態です。コードを直しても治りません。 たとえば、パスワードを忘れた人の確認が「生年月日だけ」の設計は、どれだけ丁寧に作っても弱いままです。

自分でWebアプリを作るときは、作る前に「この機能を悪用するとしたら?」を一度考えます。No.03 の脅威モデルの小さい版です。

第2章 部品・暗号・認証・完全性の問題(A03・A04・A07・A08)

他人が作った物、守りの道具そのもの、更新の信用に関する問題です。

① A03 ソフトウェアサプライチェーンの不備 必ず覚える

3位で、2025年版の新顔です。自分が使う部品、作る道具、配る経路のどこかが壊されて、そこから入られる問題です。

WordPress で言えば、プラグインの脆弱性は代表例です。 更に広く、拡張機能、パッケージ、ビルドの仕組みなども含みます。

OWASP が書いている守りは、次の通りです。

詳しい攻撃の流れは No.12 で扱います(後で出ます)。この回では「自分が使っている部品の一覧を持つこと」だけ持ち帰ってください。

② A04 暗号化の不備 さらっと

暗号化が無い、弱い、使い方が間違っている状態です。

自分のサイトなら、HTTPS が全ページで効いているか、設定ファイルや控えのファイルが外から見えないか、を見ます。 自分で暗号の仕組みを作るのは避け、WordPress や言語の標準の物を使います。

③ A07 認証の不備 必ず覚える

7位です。本人確認の仕組みが弱い状態です。使い回し、弱いパスワード、何度でも試せる、2段階認証が無い、などが入ります。

これは No.05・No.06 の内容そのままです。 Web側の守りとして足すのは、次の3つです。

④ A08 ソフトウェアやデータの完全性の不備 さらっと

「届いた物が、本当に正しい物か」を確かめていない状態です。

自分のサイトなら、外のサービスのスクリプト(広告や解析のタグ)が入っている数と、提供元を確かめます。 外のスクリプトは、提供元が壊れると、あなたのページで動いてしまうからです。

第3章 コード・記録・エラーの問題(A05・A09・A10)

① A05 インジェクション 必ず覚える

5位です。No.07 第2章で見た「データが命令として読まれる」弱点がここに入ります。 SQLインジェクション、XSS、OSコマンドインジェクションなどです。

守りは、No.07 第3章の通りです。命令と値を分けて渡し、出す所でエスケープします。 自作のプラグインや、AIに書かせたコードでは、ここが一番の確認対象です。

② A09 ログと警告の不備 必ず覚える

9位です。何が起きたかの記録が無い、あっても誰も見ない状態です。 OWASP は、名前を「監視」から「警告」に改めました。記録を取るだけでなく、気づいて動くところまでが対策だからです。

自分のサイトなら、次の所を見ます。

気づく仕組みは No.15 で作ります。

③ A10 例外的な状態の誤った扱い さらっと

2025年版の新顔です。想定外のこと(通信が途切れた、入力が異常に大きい、権限が足りない)が起きたとき、アプリの動きが壊れる問題です。

OWASP が挙げる例は次の通りです。

守りの考え方は「失敗したときは、閉じる側に倒す」です。 権限の確認がエラーで落ちたなら、通さずに断ります。

第4章 比較表:自分のサイトで読む

ここまでの10項目を、あなたの環境に当てはめた表です。 右端の「最初の一手」は、自分のサイトで今日できる範囲だけを書いています。

項目 一言で あなたの環境で見る所 最初の一手
A01 アクセス制御 見せてはいけない人に見せる 会員ページ、共有リンク、WordPress の権限 未ログインで、会員ページのURLを開いてみる
A02 設定 設定が甘い 使っていないプラグイン、開いた入口、残ったファイル 使っていないプラグインを削除する
A03 サプライチェーン 使う部品・道具が壊れる プラグイン、テーマ、拡張機能、パッケージ 部品の一覧を書き出す
A04 暗号化 守りの暗号が無い・弱い HTTPS、鍵、バックアップの置き場 全ページが HTTPS か確かめる
A05 インジェクション データが命令になる 自作プラグイン、フォーム、検索窓 外の値をつなげて使う書き方を探す
A06 設計 作りが弱い パスワード再設定、会員の本人確認 再設定の手順を、自分で一度たどる
A07 認証 本人確認が弱い WordPress、SSH、各種管理画面 2段階認証を、すべての管理画面で有効にする
A08 完全性 本物かを確かめない 更新、外部スクリプト、復元 読み込んでいる外部スクリプトを数える
A09 ログ・警告 気づけない アクセスログ、ログイン失敗の通知 ログが何日分残るか確かめる
A10 例外 想定外で壊れる エラー画面、失敗時の動き 存在しないURLを開き、エラー画面に内部情報が出ないか見る

この表を見て、右端の一手がすぐ出来そうな物から手を付けると、順番が決まります。 優先は、A02(引き算)・A07(2段階認証)・A03(更新と一覧)の3つです。コストが小さく、効きが大きいからです。

○ 受講生によく聞かれる質問:「Top 10 を全部対策すれば安全ですか」
→ 答え方:いいえ。Top 10 は、よく起きる物の地図で、すべての弱点の一覧ではありません。OWASP 自身も、これだけで十分とは言っていません
○ 関係する単元:No.07 Webの仕組み、No.09 WordPressとVPS、No.12 サプライチェーン攻撃(後で出ます)、No.15 気づく仕組み(後で出ます)

Top 10 は「10の引き出し」。まず自分のサイトで、設定の引き算(A02)・本人確認(A07)・部品の一覧と更新(A03)を見る。インジェクション(A05)は、命令と値を分ければ塞げる。

確認問題

問1 会員制のページで、ログインした会員が、URLの番号を変えただけで他の会員の画面を見られました。どの項目に当たりますか?

問2 2025年版で新しく入った項目は、どの組み合わせですか?

問3 小さな会社のWordPressサイトで、まず手を付けるものとして適切なのはどれですか?

問4 A10「例外的な状態の誤った扱い」の守りの考え方として、正しいのはどれですか?

出典:OWASP Top 10:2025(https://top10.owasp.org/2025)/同「Introduction(2021年版からの変更)」(https://top10.owasp.org/2025/0x00_2025-Introduction/)/同 A03:2025 Software Supply Chain Failures(https://top10.owasp.org/2025/A03_2025-Software_Supply_Chain_Failures/)/同 A10:2025 Mishandling of Exceptional Conditions(https://top10.owasp.org/2025/A10_2025-Mishandling_of_Exceptional_Conditions/)/同 A01:2025 Broken Access Control(https://top10.owasp.org/2025/A01_2025-Broken_Access_Control/)/同 A09:2025 Security Logging and Alerting Failures(https://top10.owasp.org/2025/A09_2025-Security_Logging_and_Alerting_Failures/)/IPA「安全なウェブサイトの作り方」(https://www.ipa.go.jp/security/vuln/websecurity/about.html)