OWASP Top 10
Webアプリケーションの重大な脆弱性(2021年版)
1
Broken Access Control
アクセス制御の不備
認可されていないリソースへのアクセス
対策:適切なアクセス制御、デフォルト拒否
2
Cryptographic Failures
暗号化の失敗
機密データの保護不足
対策:強力な暗号化、TLS使用、機密データの最小化
3
Injection
インジェクション
SQL、OS、LDAPインジェクション
対策:パラメータ化クエリ、入力検証、エスケープ
4
Insecure Design
安全でない設計
設計段階でのセキュリティ欠如
対策:脅威モデリング、セキュアデザインパターン
5
Security Misconfiguration
セキュリティ設定ミス
デフォルト設定、不要機能の有効化
対策:最小構成、自動化された設定確認
6
Vulnerable Components
脆弱なコンポーネント
既知の脆弱性を持つライブラリ
対策:依存関係の監視、定期的な更新
7
Auth Failures
認証の失敗
弱いパスワード、セッション管理不備
対策:MFA、強いパスワードポリシー
8
Data Integrity Failures
データ整合性の失敗
改ざん検知なしの更新、CI/CDパイプライン侵害
対策:署名検証、整合性チェック
9
Logging Failures
ログ記録の失敗
セキュリティイベントの記録不足
対策:適切なログ記録、監視、アラート
10
SSRF
SSRF
サーバーサイドリクエストフォージェリ
対策:URL検証、許可リスト、ネットワーク分離
SQLインジェクションの例
SELECT * FROM users WHERE id = '{input}'
入力: 1' OR '1'='1 → 全ユーザー取得
対策: パラメータ化クエリ
SELECT * FROM users WHERE id = $1
XSS(クロスサイトスクリプティング)の例
<div>{userInput}</div>
入力: <script>alert('XSS')</script>
対策: エスケープ、CSP
- • HTMLエンティティエスケープ
- • Content-Security-Policy ヘッダー
- • フレームワークの自動エスケープ機能を使用