OWASPとは何か?
Webアプリケーションセキュリティに携わっている方なら、OWASPの名前を耳にしたことがあるでしょう。しかし、それは具体的に何であり、なぜアプリケーションセキュリティリスクを理解するためのグローバル標準となったのでしょうか?
OWASP(Open Worldwide Application Security Project)は、ソフトウェアセキュリティの向上に取り組む非営利財団です。2001年9月9日にMark Curpheyによって設立されたOWASPは、シンプルなメーリングリストと文書集として出発しました。今日では32,000人を超える会員、8,500人の貢献者、そして300以上のアクティブなプロジェクトを擁し、サイバーセキュリティ分野で最も影響力のある組織の一つに成長しています。
OWASPを特別な存在にしているのは、完全なオープン性へのコミットメントです。すべてのプロジェクト、ツール、ドキュメント、フォーラム、チャプターは無料で、アプリケーションセキュリティに関心を持つ誰もがアクセスできます。このオープン性により広く採用され、OWASP Top 10はPCI DSS、DISA-STIG、米国連邦取引委員会を含む主要な標準で参照されています。
OWASPが重要な理由
アプリケーションセキュリティ、そしてOWASPのガイダンスが重要である理由は、数字が物語っています:
2023年初頭、OWASPの理事会は「W」を「Web」から「Worldwide」に変更することを決議しました。これは、組織の活動がWebアプリケーションを超えて拡大していることを反映するものです。OWASPは現在、IoT、システムソフトウェア、APIなども対象としています。
OWASP Top 10:Webアプリケーションセキュリティリスク
OWASP Top 10は、アプリケーションセキュリティ分野で最も認知されているドキュメントです。2003年に初めて発表されて以来、Webアプリケーションが直面する最も重要なセキュリティリスクに関する広範なコンセンサスを示しています。世界中のセキュリティ組織からのデータに基づき、数年ごとに更新されます。
2021年9月にリリースされた現行版は、脅威ランドスケープの大きな変化を反映しています。3つの新しいカテゴリが追加され、Broken Access Controlは第5位からトップに躍進しました。これは、アクセス制御の不備が支配的なセキュリティ問題となっていることの表れです。
2021 Top 10リスト
OWASPが示す、Webアプリケーションにとって最も重要な10のセキュリティリスクは以下のとおりです:
A01 - Broken Access Control(不適切なアクセス制御)
第1位のリスク。テストされたアプリケーションの94%にアクセス制御の不備がありました。ユーザーが想定された権限を超えて行動できる場合に発生します。
A02 - Cryptographic Failures(暗号化の失敗)
旧称「Sensitive Data Exposure」。暗号化に関連する失敗が機密データの漏えいを引き起こします。
A03 - Injection(インジェクション)
SQL、NoSQL、OS、LDAPインジェクション。信頼できないデータがコマンドやクエリの一部としてインタープリタに送られることで発生します。
A04 - Insecure Design(安全でない設計)
2021年版で新規追加。設計とアーキテクチャの欠陥に焦点を当てます。脅威モデリングとセキュアデザインパターンを求めます。
A05 - Security Misconfiguration(セキュリティの設定ミス)
セキュリティ強化の欠如、不要な機能の有効化、デフォルトアカウントの放置、過度に詳細なエラーメッセージ。
A06 - Vulnerable Components(脆弱なコンポーネント)
既知の脆弱性を持つライブラリ、フレームワーク、モジュールの使用。直接依存関係および推移的依存関係の双方を含みます。
A07 - Authentication Failures(認証の失敗)
旧称「Broken Authentication」。攻撃者がパスワードやトークンを侵害できるセッション管理の弱点。
A08 - Software Integrity Failures(ソフトウェアの完全性の失敗)
2021年版で新規追加。完全性検証を欠くコードとインフラ(CI/CDパイプライン、自動更新など)に関連します。
A09 - Logging & Monitoring Failures(ロギングと監視の失敗)
2021年版で新規追加。不十分なロギング、検知、監視、アクティブレスポンス。侵害検知の平均日数は277日。
A10 - Server-Side Request Forgery(サーバーサイドリクエストフォージェリ)
SSRFの欠陥は、Webアプリがユーザー提供のURLを検証せずにリモートリソースを取得した際に発生します。
OWASP API Security Top 10
APIが現代のアプリケーションの中核となるにつれ、OWASPはAPIセキュリティリスクに特化した別のプロジェクトを立ち上げました。API Security Top 10 2023は、API設計と実装に固有の脆弱性に対処します。
APIは、従来のWebアプリケーションとは異なるセキュリティ上の課題を抱えています。マシン間通信のために設計され、より多くの機能を露出することが多く、攻撃者の主要な標的となっています。今では攻撃の約6件に1件がAPIを狙っています。
API Security Top 10(2023)
| # | 脆弱性 | 主要リスク |
|---|---|---|
| API1 | Broken Object Level Authorization (BOLA) | API攻撃の40%がBOLAを悪用 ― オブジェクトIDの改ざんによる不正データアクセス |
| API2 | Broken Authentication | 盗まれたトークン、クレデンシャルスタッフィング、APIエンドポイントへの総当たり攻撃 |
| API3 | Broken Object Property Level Authorization | 過剰なデータ露出やマスアサインメントの脆弱性 |
| API4 | Unrestricted Resource Consumption | レート制限の欠如によりDoS、経済的損害、リソース枯渇に至る |
| API5 | Broken Function Level Authorization (BFLA) | 権限のないユーザーが管理用APIを実行 |
| API6 | Unrestricted Access to Sensitive Business Flows | ビジネスロジックの自動化された悪用(チケット転売、スパムなど) |
| API7 | Server-Side Request Forgery (SSRF) | ユーザー提供のURIを検証せずリソースを取得するAPI |
| API8 | Security Misconfiguration | パッチ未適用、不要機能の有効化、権限設定の不備 |
| API9 | Improper Inventory Management | シャドウAPI、アクセス可能な古いバージョン |
| API10 | Unsafe Consumption of APIs | サードパーティAPIデータを検証せずに信頼する |
Broken Object Level Authorization(BOLA)は、すべてのAPI攻撃のおよそ40%に関与しています。これは、APIエンドポイントがリクエストを行うユーザーに該当リソースへのアクセス権限があるかを適切に検証しない場合に発生します。攻撃者はリクエスト内のオブジェクトIDを書き換えるだけで、不正にデータへアクセスできます。
WAFがOWASPの脅威からどのように保護するか
Webアプリケーションファイアウォール(WAF)は、OWASP Top 10の脆弱性に対する防御で最も有効なツールの一つです。HTTP/HTTPSトラフィックをリアルタイムで検査することにより、WAFはアプリケーションに到達する前に攻撃を検知・遮断できます。
最近のデータによれば、WAFによる仮想パッチが2024年にWeb攻撃の62%、API攻撃の71%をブロックしました。これにより、WAFはあらゆる多層防御セキュリティ戦略において不可欠なレイヤーとなっています。
OWASPカテゴリ別のWAF保護
| OWASPリスク | WAF機能 | 保護手法 |
|---|---|---|
| Injection (A03) | SQL/XSS/コマンドインジェクションルール | パターンマッチング、入力検証、エンコーディング検知 |
| Broken Access Control (A01) | アクセスポリシーの強制 | IPレピュテーション、地理ブロッキング、認証統合 |
| Security Misconfiguration (A05) | 仮想パッチ適用 | 未パッチ脆弱性への即時保護 |
| SSRF (A10) | リクエスト検証 | URL許可リスト、内部ネットワーク保護 |
| Cryptographic Failures (A02) | SSL/TLSの強制 | 証明書検証、暗号スイート制御 |
| BOLA/BFLA (API1/API5) | APIセキュリティルール | スキーマ検証、認可チェック、レート制限 |
OWASPセキュリティの実装
OWASPの脆弱性からアプリケーションを保護するには、多層的なアプローチが必要です:
OWASPルールセット付きWAFを採用する
事前構築されたOWASP Core Rule Set(CRS)保護を備えたWAFを導入します。これにより、一般的な攻撃パターンへの即時カバレッジが得られ、自社アプリケーションに合わせてカスタマイズできます。
セキュアな開発プラクティスを導入する
開発者にOWASPのリスクを教育し、セキュリティテストをCI/CDパイプラインに組み込みます。開発中の自動セキュリティスキャンにはOWASP ZAPのようなツールを活用します。
コンポーネントインベントリを維持する
すべてのライブラリ、フレームワーク、依存関係を把握します。セキュリティアドバイザリを購読し、脆弱性に迅速にパッチを当てます。侵害の90%以上が既知の未パッチの脆弱性を悪用しています。
包括的なロギングを有効化する
セキュリティ関連イベントをログ記録し、異常を監視します。平均277日とされる侵害検知時間は、適切なロギングとSIEM統合により大幅に短縮できます。
APIを個別に保護する
APIには、レート制限、スキーマ検証、すべてのエンドポイントでの適切な認可など、専用のセキュリティ制御が必要です。Webアプリ向けに設計された従来のWAFルールだけに頼ってはいけません。
よくある質問
OWASP自体はコンプライアンス標準ではありませんが、そのガイドラインはPCI DSS、DISA-STIGをはじめ、各種規制フレームワークで参照されています。多くの組織がOWASP Top 10への準拠を基本的なセキュリティ要件として利用しています。
OWASP Top 10は通常3〜4年ごとに更新されます。現行版は2021年版で、OWASPは現在2025年版のリリース候補を開発中です。更新は、世界中のセキュリティ組織から提供される脆弱性データに基づきます。
OWASP Top 10は従来のWebアプリケーション脆弱性に焦点を当て、API Security Top 10はAPI固有のリスクに対処します。APIには、メインのTop 10ではカバーされないBOLA、不適切なインベントリ管理、ビジネスロジック乱用などの固有の懸念があります。
WAFは多くのOWASP脆弱性、特にインジェクション攻撃に対して強力な保護を提供しますが、完全なソリューションではありません。Insecure Design(A04)やSoftware Integrity Failures(A08)のような問題には、セキュアな開発プラクティスが必要です。WAFは多層防御戦略の一部として位置づけるべきです。
owasp.orgを訪問すると、すべてのOWASPリソースに無料でアクセスできます。主要プロジェクトには、Top 10、API Security Top 10、Application Security Verification Standard(ASVS)、OWASP ZAPのようなセキュリティテストツールがあります。OWASPは世界各地にローカルチャプターも有しています。
OWASP対応の保護
TR7のWAFは、事前構成されたルールセット、リアルタイム脅威検知、仮想パッチ機能により、OWASP Top 10およびAPI Security Top 10の脆弱性に対する包括的な保護を提供します。
WAF機能を見る