OWASP Top 10
OWASP(Open Web Application Security Project)が発表 した Web アプリケーションセキュリティリスク Top 10。
A01 - Broken Access Control
権限 制御 の不備 。アプリケーションの認証 、認可 、セッション管理 などにおいて不適切 な設定 や実装 があり、攻撃者 が許可 されていないリソースへのアクセスや操作 を実行 できてしまう。
A02 - Cryptographic Failures
暗号化 の失敗 。ソフトウェアアプリケーションで使用 される暗号化 方式 や実装 にエラーがあり、攻撃者 が機密 情報 を読 み取 ったり変更 したり、またはシステムに不正 アクセスを行 える可能性 がある。
A03 - Injection
インジェクション攻撃 。アプリケーションがユーザー入力 データを適切 に検証 ・フィルタリングしないため、攻撃者 が悪意 のあるコマンドやコードを実行 環境 に挿入 して実行 できる。
主 な種類 :
- SQL Injection
- XML Injection
- LDAP Injection
- OS Command Injection
- Code Injection
開発者 がユーザー入力 データを適切 に検証 ・フィルタリング・エスケープしなかったり、安全 でないライブラリやメソッドを使用 したことが原因 となることが多 い。
A04 - Insecure Design
安全 でない設計 。ソフトウェア設計 に欠陥 があり、システムが攻撃 を効果的 に防御 できない。欠陥 には以下 が含 まれる:
- 不適切 なシステムアーキテクチャ
- 不完全 なセキュリティモデル
- セキュリティリスク分析 の不足
- 不適切 な権限 管理
A05 - Security Misconfiguration
セキュリティの設定 ミス。アプリケーションやシステムが適切 に設定 ・更新 ・保護 ・監視 されていないため、攻撃 や侵入 を受 けやすくなる。攻撃者 はこれらの設定 上 の脆弱性 を悪用 して不正 アクセス権限 を取得 し、機密 データを窃取 したりシステムを破壊 したりする可能性 がある。
A06 - Vulnerable and Outdated Components
脆弱 で古 いコンポーネント。アプリケーションで使用 される外部 コンポーネント、データベース、フレームワークなどにセキュリティ脆弱性 があったり、古 くなっていたりすると、攻撃者 がそれらを悪用 してアプリケーションを攻撃 できる。
A07 - Identification and Authentication Failures
識別 ・認証 の失敗 。システムがユーザーの身元 を適切 に識別 ・検証 できない。この脆弱性 は以下 に起因 する可能性 がある:
- 不適切 なアカウント・パスワード管理
- 不適切 なセッション管理
- 認証 情報 の保護 不足
- 不適切 な ID 管理
A08 - Software and Data Integrity Failures
ソフトウェアとデータの完全性 の失敗 。アプリケーションがデータやソフトウェアの悪意 ある変更 、削除 、改竄 を防止 できない。これによりアプリケーションの動作 異常 や不適切 なアクセス権限 の付与 が発生 し、機密性 と可用性 のリスクにつながる可能性 がある。
A09 - Security Logging and Monitoring Failures
セキュリティログと監視 の失敗 。Web サイトやアプリケーションに効果的 なセキュリティ監視 メカニズムがなく、すべてのセキュリティイベント、エラー、攻撃 などを記録 し適時 に対応 できない。適切 な監視 メカニズムがないと、攻撃 を受 けても検出 できない可能性 がある。
A10 - Server-Side Request Forgery (SSRF)
サーバーサイドリクエストフォージェリ。アプリケーションが外部 クライアントからの送信 リクエストを適切 に制限 しなかったり、受信 したリクエストを適切 に検証 しなかったりすると、攻撃者 がこの脆弱性 を悪用 して被害 システムに任意 のリクエストを送信 できる。
テストツール
Zed Attack Proxy (ZAP)
OWASP が公式 に維持 しているオープンソースの Web 侵入 テストツール。システムに模擬 攻撃 と分析 を行 い、セキュリティ脆弱性 を特定 できる。