ssecutils
Security / Browser-native guide

OWASP Top 10 入門

著者 aki公開 9

OWASP Top 10 とは

OWASP(Open Worldwide Application Security Project)は Web アプリケーションセキュリティのオープンコミュニティで、ボランティアによって運営されています。彼らが数年に一度公開する Top 10 は、世界中の脆弱性データを集計して「実務で本当に多発している Web リスクの上位10カテゴリ」を示したもので、事実上の業界標準として ISO 27001 や PCI DSS の参照資料にも組み込まれています。

本記事では、最新版である OWASP Top 10 - 2021 の10項目を初学者向けに俯瞰します(次版は2025〜2026年中に出る見込み)。各項目には「何が問題か」「典型例」「対策の要点」を1セクションずつ。

A01: Broken Access Control(アクセス制御の不備)

前回(2017)から1位に躍進した、現在最も多発しているカテゴリです。「ログインしているユーザー X が、ユーザー Y のデータを閲覧/編集できてしまう」が典型。

  • URL の /users/123/profile123456 に変えると他人のページが見える(IDOR)
  • 管理画面 /admin がリンク無いだけで認証チェックされていない
  • API で「自分のデータだけ返す」ロジックを忘れて全件返してしまう

対策の要点: 「URL に出てる ID は信用しない」が鉄則。すべての操作で「セッション上のユーザーがそのリソースに権限を持つか」をサーバ側で必ず確認。デフォルト拒否、ホワイトリスト方式、ログ監査。

関連: ゼロトラストの考え方

A02: Cryptographic Failures(暗号化の失敗)

2017 年版では「機密データの露出」だったカテゴリ。原因が「適切な暗号化が無い/弱い」に絞られ改名。

  • ログインページが HTTP(盗聴可能)
  • パスワードを MD5 や SHA-1 で生のハッシュ保存(GPU で即時総当たり)
  • 古い TLS 1.0 / 1.1 で運用
  • 独自暗号アルゴリズム(ほぼ確実に弱い)

対策の要点: 通信は TLS 1.2 以上必須 + HSTS。パスワード保存は bcrypt / scrypt / Argon2。一般データ暗号化は AES-GCM 等の認証付き暗号。「自作するな、標準ライブラリを使え」。

関連: パスワードハッシュの選び方 · パスワード強度 · 公開鍵暗号 · HTTPS と TLS

A03: Injection(インジェクション)

SQL インジェクション、コマンドインジェクション、LDAP インジェクション、そして XSS もこのカテゴリに統合されました。共通点は「ユーザー入力を、別の言語の構文として解釈する場所にそのまま流し込んだ」こと。

  • SQLi: "SELECT * FROM users WHERE id = " + req.query.id
  • OS コマンド: exec("ping " + req.query.host)
  • XSS: html = "<p>" + userInput + "</p>"

対策の要点: パラメータ化クエリ(プリペアドステートメント)出力時エスケープ。「文字列連結で組み立てない」が原則。ORM、テンプレートエンジンを通すこと。

関連: XSS の基礎と防御 · SQL インジェクション

A04: Insecure Design(セキュアでない設計)

2021 年版で新設。コーディングミスではなく 設計段階で抜けている脅威を扱います。

  • パスワードリセットを「秘密の質問」だけで通す(Q&A は公開情報になりがち)
  • レート制限なしで「年齢確認」だけで子供アカウント作成可
  • 無料試用を電話番号で識別 → SMS の使い捨て番号で無限取得可

対策の要点: 設計レビューに 脅威モデリング(STRIDE 等)を組み込む。ビジネス要件と一緒に「悪用シナリオ」も列挙する。実装前に「この機能を悪用されたら何が起きるか」を必ず議論。

A05: Security Misconfiguration(セキュリティ設定ミス)

コードは正しいのに、サーバ・フレームワーク・クラウドの設定で穴を開けてしまうカテゴリ。

  • 本番にデバッグモードが有効でスタックトレースが出ている
  • S3 バケットがパブリック公開
  • 不要なサービス(管理ポート、デフォルト管理者アカウント)が開いたまま
  • CSP / HSTS / X-Frame-Options 等のセキュリティヘッダ未設定

対策の要点: 「最小権限」「不要なものは無効化」。Infrastructure as Code(Terraform 等)で設定を版管理し、定期スキャンで逸脱検出。本サイト自身も securityheaders.com で A 評価を維持しています。

関連: HTTP セキュリティヘッダー詳解 · クリックジャッキング · Security Headers Analyzer(採点ツール)

A06: Vulnerable and Outdated Components(古い・脆弱なコンポーネント)

Apache Struts の脆弱性で Equifax が 1.5 億人分の個人情報を流出させた事件が代表例。使っているライブラリ・OS・フレームワークが脆弱なまま放置されているケース。

対策の要点: SBOM(依存リスト)の管理自動アップデート。GitHub なら Dependabot、Node なら npm audit、Python なら safety、コンテナイメージは Trivy / Snyk でスキャン。本サイトも Dependabot + npm audit を CI に組み込み済みです。

関連: サプライチェーン攻撃の6類型と防御

A07: Identification and Authentication Failures(識別・認証の失敗)

旧「Broken Authentication」。ログイン・セッション管理周りの脆弱性全般。

  • クレデンシャルスタッフィング(漏洩パスワード辞書での総当たり)に無防備
  • セッション ID が予測可能 / URL に出ている
  • パスワードリセットで脆弱なトークン
  • 多要素認証なし

対策の要点: 強いパスワードポリシー + 漏洩パスワードチェック(HIBP API)レート制限・アカウントロックTOTP / FIDO2 (Passkey) による MFA、セッション ID は cryptographically random。

関連: MFA / TOTP / FIDO2 · セッション認証と JWT · JWT のセキュリティ問題

A08: Software and Data Integrity Failures(整合性の検証不足)

2021 年版で新設。サプライチェーン攻撃と CI/CD パイプラインへの注目で追加されました。

  • npm パッケージを署名検証なしで取得(依存パッケージ乗っ取りで RCE)
  • CDN から JS を読み込むが SRI(Subresource Integrity)未設定で改ざん検出不可
  • 署名なしオートアップデート(SolarWinds 事件型)
  • シリアライズデータの逆シリアライズで任意コード実行

対策の要点: ライブラリは lockfile + ハッシュ検証、外部スクリプトは SRI、デプロイは署名済みアーティファクト。逆シリアライズは信頼できる入力のみ。

関連: サプライチェーン攻撃

A09: Security Logging and Monitoring Failures(ロギング・監視の不足)

実際に侵害が起きても気付けない、調査できない問題。検知までの平均日数(MTTD)は業界平均で 200 日以上と言われています。

  • ログイン失敗・権限拒否・入力バリデーションエラーが記録されていない
  • ログが平文で書かれパスワードまで含む
  • アラートがそもそも設定されていない

対策の要点: 認証・権限・入力検証・サーバ側エラーは必ず記録。中央集約型のログ基盤(ELK / CloudWatch / Datadog)と異常検知。インシデント対応プレイブックを事前に用意。

関連: インシデント対応の進め方

A10: Server-Side Request Forgery(SSRF)

2021 年版で新設。「サーバ側で URL を取得しに行く機能」を悪用される攻撃。クラウド時代の代名詞的な脆弱性です。

// プレビュー機能で任意URLをfetch
const url = req.body.url
const html = await fetch(url).then(r => r.text())

攻撃者が http://169.254.169.254/latest/meta-data/iam/security-credentials/(AWS インスタンスメタデータ)を渡すと、サーバは内部ネットワークから一時クレデンシャルを取得して返してしまいます(Capital One 事件型)。

対策の要点: URL ホワイトリスト内部ネットワーク・IMDS への接続を ファイアウォールで遮断、IMDSv2 強制、HTTP リダイレクト追跡しない / 追跡先も検証。

関連: SSRF の仕組みと対策

使い方: チェックリストとして

OWASP Top 10 は「これだけ守れば安全」というリストではない点に注意。あくまで「最頻出のカテゴリ」であって、業界・サービス特性によっては他のリスクが上回ることも普通にあります。とはいえ、新規プロジェクトの設計レビューや既存システムの自己診断には最良の出発点

実務での使い方の例:

  1. 新機能の設計時、10項目をチェックリストで通す
  2. 外部監査・ペネトレ依頼前のセルフチェック
  3. セキュリティ研修の構成テンプレ
  4. SOC 2 / ISO 27001 等のコンプライアンス文書の参照

おわりに

OWASP Top 10 はWebセキュリティの共通言語。エンジニア・PM・経営層が同じ用語で会話するために整備されているとも言えます。各項目を深掘りした記事は本サイトの Learn に順次追加していくので、関連記事リンクから掘り下げてみてください。

参考(一次情報)

この記事を書いた人
akiサイバーセキュリティ実務者 / エンジニア

サイバーセキュリティ業界で実務に携わるエンジニア。脆弱性・認証・暗号・ネットワークなど、現場で必要になる知識を開発者・運用担当者向けにかみ砕いて解説しています。

運営者・編集方針について

本記事は一般的な情報提供を目的とした解説であり、特定環境での動作・安全性・成果を保証するものではありません。実際の対策の適用は、各自の環境と責任において判断してください。

Related reading

関連記事

Security22
日本国内の主要セキュリティインシデント事例(2020–2025)国内の主要なセキュリティインシデント12件を一覧で俯瞰し、VPN未更新・委託先/グループ経由・弱い認証という繰り返し現れる侵入経路と失敗パターン、日本企業が今すぐ確認すべき対策チェックリストを事例研究として整理します。
Security12
ノートン vs ウイルスバスター 比較2026 - どちらを選ぶべきかNorton 360とウイルスバスタークラウドを料金・機能・サポート・動作の軽さで比較。VPN・バックアップ内蔵のオールインワンか、Pay Guard・24時間日本語電話サポートの国内安心感か。用途別の選び方を解説します。
Security10
ウイルスバスター クラウド レビュー - 機能・料金・特徴を解説トレンドマイクロのウイルスバスタークラウドの機能・料金プランを解説。AI検知・ランサムウェア対策(フォルダシールド)・Pay Guard・フィッシング対策など、国内シェアNo.1セキュリティソフトの全体像をまとめます。
Security10
ノートン 360 レビュー - 機能・料金・特徴を解説【世界No.1】世界販売台数No.1のノートン(Norton 360)の機能・料金プランを解説。リアルタイム保護・VPN・パスワードマネージャー・クラウドバックアップ・ダークウェブモニタリングなど、オールインワンセキュリティの全体像をまとめます。