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 ヘッダー
  • • フレームワークの自動エスケープ機能を使用