「OWASP Top 10とは何?どのようなリスクがあるの?」
「自社のWebサービスに必要なセキュリティ対策は何を優先すべき?」
Webサービスの普及に伴い、Webアプリケーションを狙ったサイバー攻撃は年々増加しています。その中で、実際の脆弱性データや専門家の分析をもとに整理されたOWASP Top 10は、優先的に対策すべきリスクを把握する指標として注目されています。
OWASP Top 10を理解せずに開発や運用を行うと、重要な脆弱性を見落とし、情報漏洩や不正アクセスといった重大な被害につながるかもしれません。適切な対策を講じるためには、リスクの全体像を把握することが不可欠です。
本記事では、OWASP Top 10について以下の内容を解説します。
- OWASP Top 10の概要と注目されている背景
- 【2025年版】OWASP Top 10の各項目の詳細
- 生成AIに特化した「OWASP Top 10 for LLM」の概要
- セキュリティリスクに対応するための実践的な対策
本記事を読むことで、Webアプリケーションにおける主要なセキュリティリスクと、その対策の考え方がわかるでしょう。安全なアプリケーション開発や運営に携わる方は、ぜひ最後までご覧ください。

OWASP Top 10 とは
OWASP Top 10とは、Webアプリケーションにおける重大なセキュリティリスクをまとめたリストのことです。セキュリティの向上を目的とした非営利団体である「OWASP」が、実際の脆弱性データや専門家の知見をもとに定期的に公開しています。インターネット上の脅威からWebサイトを守るための標準的な指標となっており、世界中で広く活用されるようになりました。
このリストは一定の期間ごとに内容が見直されており、実績として約4年に1回のペースで更新されています。技術の進化に伴ってサイバー攻撃の手口も変化し続けるため、その時代のトレンドに合わせて内容が変更になっています。
OWASP Top 10が注目されている背景
近年はWebサービスの普及に伴い、Webアプリケーションを狙ったサイバー攻撃が増加しています。企業のサービスや業務システムがインターネット上で提供される機会が増えたことで、攻撃者にとっての標的も広がっている状況です。ひとたび脆弱性を突かれると、情報漏洩やサービス停止といった深刻な被害につながるおそれがあります。
こうした背景の中で、実際の攻撃トレンドをもとにリスクを体系的に整理しているOWASP Top 10は、優先的に対策すべきポイントを把握できる指標として注目されています。どのような脆弱性が狙われやすいのかを理解することで、限られたリソースの中でも効果的なセキュリティ対策を講じやすくなるでしょう。
【2025年版】OWASP Top 10の概要
OWASP Top 10の2025年版では、Webアプリケーションにおいて特に注意すべき主要なセキュリティリスクが体系的に整理されています。実際の脆弱性データや攻撃トレンドをもとに、優先的に対策すべき項目が明確化されている点が特徴です。
主なリスクは以下の通りです。
- A01:アクセス制御不備
- A02:セキュリティ設定不備
- A03:ソフトウェアサプライチェーンの不備
- A04:暗号化不備
- A05:インジェクション
- A06:安全性を欠いた設計
- A07:認証不備
- A08:ソフトウェアまたはデータの完全性の不備
- A09:セキュリティログとアラートの不備
- A10:例外的な状況への相応な対応
それぞれの項目を正しく理解し、安全なサービス運営に活かしましょう。
A01:アクセス制御不備
アクセス制御不備とは、ユーザーが本来アクセスできないはずの情報や機能にアクセスできてしまう脆弱性のことです。例えば、管理者にしか許されていないページを一般の利用者が操作できたり、他人の個人情報を閲覧できたりするケースが該当します。
この脆弱性が放置されると、機密情報の漏洩やデータの改ざん、システムの破壊といった事態を招きかねません。また、第三者が本人になりすまして勝手に業務操作を行うリスクも生じます。
不備が起きやすい理由は、権限判定のロジックはアプリケーションごとに固有であるためだと考えられます。そのため、開発者の実装ミスや設計の抜け漏れが、重大な脆弱性につながるでしょう。
A02:セキュリティ設定不備
セキュリティ設定不備とは、サーバーやWebアプリケーションの設定に不備があることで生じる脆弱性のことです。例えば、初期設定のパスワードをそのまま使い続けたり、本来隠すべきエラーメッセージを画面に表示させたりする状態が該当します。
セキュリティの設定ミスは、2021年版の第5位から第2位へと大きく順位を上げました。背景には、ノーコード開発の広がりやクラウドサービスの普及により、高度な知識がなくても設定だけでシステム構築できる機会が増えたことが挙げられます。
システムを立ち上げる作業が簡略化された一方で、設定項目の増加に伴って人為的なミスが発生するリスクも高まっています。不備をなくすには、構築後の徹底した確認作業が欠かせません。
A03:ソフトウェアサプライチェーンの不備
ソフトウェアサプライチェーンの不備とは、開発からビルド、配布に至るまでの一連のプロセス(サプライチェーン)に存在する脆弱性やリスクのことです。利用しているライブラリや外部サービス、ビルド環境などに問題があると、自社のシステムが安全であっても、間接的に攻撃の影響を受けてしまう可能性があります。
従来は「脆弱で古くなったコンポーネント」に焦点が当てられていましたが、2025年版では依存関係やビルド環境、配布インフラなど、より広い範囲のリスクが含まれるようになりました。その結果、順位は6位から3位へと上昇しています。
また、コミュニティ調査では、回答者の約50%がこのリスクを最も重要として評価しており、開発現場において非常に懸念されています。開発プロセス全体に目を配る姿勢が、これまで以上に重要となるでしょう。
A04:暗号化不備
暗号化不備とは、機密情報を保護するために必要な暗号化が適切に行われていない状態です。通信内容や保存データが十分に保護されていない場合、攻撃者に情報を盗み取られるリスクが高まり、不正アクセスやなりすまし被害につながる可能性があります。
具体的には、SSL/TLSの設定不備により通信が暗号化されていないケースや、脆弱な環境でパスワードを保存しているケースなどが挙げられます。
A05:インジェクション
インジェクションとは、アプリケーションが外部からの入力を適切に検証しないことで発生する脆弱性です。攻撃者が悪意のあるコマンドを入力データに紛れ込ませると、システムがそれを正規の命令だと誤解して実行してしまいます。その結果、本来は見られないはずのデータが盗まれたり、システムそのものが乗っ取られたりする危険性があるのです。
代表的な例としては、データベースを不正に操作する「SQLインジェクション」や、サーバー上で不正なコマンドを実行させる「コマンドインジェクション」が挙げられます。また最近では、ChatGPTなどの大規模言語モデル(LLM)に対して、不適切な回答を引き出すための指示を送る「プロンプトインジェクション」も注目されるようになりました。
入力データの扱いを誤ることで重大な被害につながる点は共通しており、適切な検証と安全な実装が不可欠といえます。
▼関連記事
A06:安全性を欠いた設計
安全性を欠いた設計とは、アプリケーションの設計段階でセキュリティが十分に考慮されていない状態を指します。プログラミング上の単純なミスではなく、そもそも仕組み自体に欠陥があるケースです。
例えば、「秘密の質問」への回答だけでパスワードをリセットできる仕組みは、攻撃者に推測されると不正アクセスにつながるおそれがあります。この場合、どれだけ正確にプログラムを記述したとしても、第三者が不正アクセスできてしまうという根本的な不備は防げません。そのため、要件定義や設計の段階からセキュリティのリスクを予測し、対策を組み込んでおく必要があります。
A07:認証不備
認証不備とは、システムを利用する人が本当に本人であるかを確認する仕組みに不備がある状態です。具体的には、推測されやすいパスワードの設定を許していたり、多要素認証(MFA)が導入されていなかったりすると、第三者に不正ログインされるリスクが高まります。
認証周りに不備があると、悪意のある第三者にアカウントを乗っ取られる危険性が高まります。具体的な攻撃手法の一つが、さまざまなパスワードの組み合わせを試す「ブルートフォース攻撃」です。また、他のサイトから漏洩したIDとパスワードのリストを使い、機械的にログインを試みる手口もあります。
▼関連記事
A08:ソフトウェアまたはデータの完全性の不備
ソフトウェアまたはデータの完全性の不備とは、信頼できないデータやコードを、あたかも正しいものとして受け入れてしまう問題のことです。この不具合があると、アプリケーションやインフラは情報の送り主が本当に信頼できる相手かどうかを正しく判断できません。
例えば、更新プログラムの検証が不十分な場合、正規のソフトウェアが知らないうちに侵害されたコードに置き換えられる可能性があります。このような脆弱性が放置されれば、システム全体が攻撃者の思い通りに操られるリスクも生じるでしょう。
A09:セキュリティログとアラートの不備
セキュリティログとアラートの不備とは、不正アクセスや攻撃の兆候を適切に記録・検知できない状態のことです。システムへの不審なアクセスや操作の記録が残らないため、管理者が被害に気付くのが難しくなります。
こうした監視の不備があると、攻撃が進行して被害が拡大するおそれがあります。また、ログが残っていないため、事後の原因究明や復旧に向けた対応も困難になるでしょう。
A10:例外的な状況への相応な対応
例外的な状況への相応な対応とは、プログラムが予想外の出来事に対して適切に防止・検知・対応できない状態です。
この不備が放置されると、システムが突然動かなくなったり、意図しない挙動を見せたりする可能性があります。また、エラーメッセージに内部情報が含まれている場合、攻撃者にシステム構成や脆弱性のヒントを与えてしまうリスクも否定できません。
【2025年版】OWASP Top 10 for LLMの概要
OWASP Top 10 for LLMは、生成AIや大規模言語モデル(LLM)を利用するシステムに特有のセキュリティリスクを整理したリストです。従来のWebアプリケーションとは異なる脅威が存在するため、生成AI活用の拡大に伴い新たに注目されるようになりました。
リストに含まれる主な項目は、以下の表の通りです。
| 項目 | 概要 |
|---|---|
| LLM01:プロンプトインジェクション | 悪意のある指示を入力して生成AIを不正に操作する攻撃 |
| LLM02:機密情報の開示 | 生成AIの回答の中に機密情報が含まれる不備 |
| LLM03:サプライチェーン | サプライチェーンのいずれかで、汚染データ混入や改ざんなどが行われるリスク |
| LLM04:データとモデルの汚染 | LLMの学習データに、悪意のある操作が加えられるリスク |
| LLM05:不適切な出力処理 | 生成AIの回答を検証せずにそのまま受け入れてしまう不備 |
| LLM06:過剰なエージェンシー | 生成AIが必要以上の権限で勝手に操作を行ってしまうリスク |
| LLM07:システムプロンプトリーク | システムプロンプトが、意図せず機密情報を含んでしまうリスク |
| LLM08:ベクトルと埋め込みの弱点 | RAGを悪用して有害コンテンツの注入、モデル出力の操作などが行われるリスク |
| LLM09:誤情報 | 事実とは異なる情報を、本当のことのように生成してしまう不備 |
| LLM10:無制限の消費 | LLMに過剰な処理要求が集中し、サーバーなどのリソースが過度に消費される脆弱性 |
生成AIを活用した便利なサービスを安全に運用するには、上記の脅威を正しく把握しておく必要があります。それぞれの項目をチェックし、設計や開発の段階で適切な対策を講じましょう。
▼関連記事
OWASP Top 10に対応する実践的対策
OWASP Top 10への対策は、単一のセキュリティ製品を導入するだけで完結するものではありません。システムの設計から日々の運用に至るまで、あらゆる段階で対策を積み重ねる「多層防御」の考え方が不可欠です。設計・検査・防御・監視の各フェーズで適切なアプローチを組み合わせることで、強固なセキュリティを実現できます。
具体的に取り組むべき実践的な対策は、以下の6つです。
- セキュア設計を徹底する
- アクセス制御と認証を強化する
- 入力値検証と安全な実装を行う
- サプライチェーンリスクを管理する
- ログ設計と監視体制を整える
- 定期的に脆弱性診断・ペネトレーションテストを実施する
①:セキュア設計を徹底する
セキュア設計とは、システムの開発が始まる前の設計段階からセキュリティを考慮する手法です。後の工程でミスを修正するよりも、初期段階で対策を組み込む方がコストやリスクを抑えられます。
はじめに脅威分析を実施し、どのような攻撃が想定されるかをあらかじめ洗い出します。分析結果をもとに、認証や認可、入力値の検証といった機能を設計段階から盛り込むと、脆弱性を防げるはずです。
さらに、定期的なセキュリティレビューを開発プロセスの一部として習慣化することも有効です。複数の視点で設計上の弱点を確認すれば、自分たちでは気づきにくい欠陥を早期に見つけ出し、より強固なシステムを構築できるでしょう。
②:アクセス制御と認証を強化する
アクセス制御と認証を強化するためには、「最小権限の原則」を徹底するのが有効です。最小権限の原則とは、ユーザー一人ひとりに対して、業務に必要な最低限の権限だけを与えるという考え方を指します。この原則を守ることで、万が一アカウントが不正利用された際でも、被害の拡大を未然に防げるでしょう。
また、認可チェックはフロントエンドだけに依存せず、必ずサーバー側で実施する必要があります。フロントエンド側で制限していても、リクエストを直接送信されると不正操作が行われる可能性があるため、バックエンドでの制御が欠かせません。
さらに、多要素認証の導入やセッション管理の強化も有効な対策です。認証情報が漏洩した場合でも不正ログインを防ぎやすくなり、システム全体のセキュリティレベルを高められます。
③:入力値検証と安全な実装を行う
入力値検証と安全な実装を行うために、ユーザーから受け取るデータを適切に検証・エスケープしましょう。不正な入力をそのまま処理すると、SQLインジェクションやクロスサイトスクリプティング(XSS)といった攻撃が成立するおそれがあります。
これらのリスクを防ぐには、安全なフレームワークを活用し、パラメータ化クエリなどの仕組みを取り入れることが有効です。入力データを信頼せず、常に検証を行う設計を徹底することで、不正な処理の実行を防ぎやすくなります。
さらに、WAFを導入するとより強固な多層防御を構築することが可能です。WAFは通信の内容を監視し、既知の攻撃パターンなどを検知して遮断を試みます。万が一プログラム側に修正漏れがあったとしても、外部からのガードがあれば被害を未然に防げるでしょう。
▼関連記事
④:サプライチェーンリスクを管理する
サプライチェーンリスクを管理するためには、利用しているソフトウェアの構成を把握し、依存関係を可視化することが重要です。その手法の一つとして、SBOM(ソフトウェア部品表)の導入が挙げられます。SBOMは、ソフトウェアに含まれるライブラリやパッケージなどの構成要素を一覧化したものであり、どのコンポーネントに依存しているかを明確にできます。
SBOMを活用すれば、利用しているライブラリやパッケージに脆弱性が含まれていないかを把握可能です。問題が発見された場合には、速やかにアップデートや修正を行うことで、リスクの拡大を防げます。
さらに、脆弱性情報を継続的に監視し、CI/CDプロセスに依存関係チェックを組み込むことも有効な対策です。開発から運用まで一貫して管理する体制を整えることで、サプライチェーン全体の安全性を高められるでしょう。
⑤:ログ設計と監視体制を整える
ログ設計と監視体制を整えるためには、不正アクセスや権限変更などの重要なイベントを適切に記録することが重要です。必要なログが出力されていない場合、異常が発生しても気づかず、被害の拡大を招くおそれがあります。
ログは分散して管理するのではなく、SIEMを活用して一元的に収集・分析することが有効です。SIEMは、ファイアウォールやサーバーなど複数の機器から出力されるログを統合し、相関分析によって脅威の兆候を可視化する仕組みです。サイバー攻撃の予兆や内部不正の兆候を把握しやすくなります。あらかじめ異常な挙動に対してアラートを設定しておけば、被害が深刻化する前に迅速な対策を講じることが可能です。
▼関連記事
⑥:定期的に脆弱性診断・ペネトレーションテストを実施する
脆弱性診断やペネトレーションテストは、システムに潜むセキュリティ上の弱点を検証するための手法です。脆弱性診断では既知の問題点を網羅的に洗い出し、ペネトレーションテストでは実際の攻撃を想定して侵入の可否や影響範囲を確認します。診断を定期的に実施することで、見落とされていたリスクを早期に発見し、修正につなげられます。
また、リリース前や大規模な改修後など、システムに変更が加わったタイミングで実施することも不可欠です。継続的な検証を行うことで、セキュリティ対策が適切に機能しているかを確認し、安全性を維持しやすくなります。
▼関連記事
まとめ|最新の脅威トレンドに合わせた継続的な対策を
OWASP Top 10は、Webアプリケーションにおける重大なセキュリティリスクをまとめた世界的な指標です。技術の進歩に伴ってサイバー攻撃の手口も変化し続けているため、一度対策を行えば十分というものではなく、継続的な見直しが欠かせません。
本記事で解説した通り、セキュア設計の徹底やアクセス制御の強化など、多層的な防御を組み合わせる姿勢が求められています。脆弱性診断はシステム上の欠陥を早期に発見するために役立ち、WAFやSIEMは、外部からの攻撃や不正の兆候を早期に把握するうえで役立ちます。特に近年は、攻撃者がAI技術を悪用して短期間で脆弱性を突き止めるケースも報告されているため、対策を効率化する重要性が一層高まっているのが現状です。
Webアプリケーションの定期的な脆弱性診断を効率的に行いたい場合は、高精度な自動診断を提供するクラウド型Webアプリケーション脆弱性診断ツール「AeyeScan」が役立ちます。安全なWebアプリ開発・運営を目指す方は、まずAeyeScanの資料をダウンロードしてみてはいかがでしょうか。
著者:榊原敦子(シニアカスタマーマーケティングマネージャー)
技術監修:関根 鉄平(執行役員 兼 CX本部長)









