1. Webセキュリティ入門と基本原則 MOC

2. 一般的なWeb脆弱性とその対策 MOC (OWASP Top 10ベースで拡張)

2.1. インジェクション攻撃 (Injection Attacks) MOC

  • インジェクション攻撃の概要 (信頼できないデータがコマンドやクエリの一部として送信される)
  • SQLインジェクション (SQLi) MOC
    • [[SQLiの仕組みと影響 (データ窃取、改ざん、破壊)]]
    • [[SQLiの種類 (エラーベース, UNIONベース, ブラインドSQLi: ブーリアンベース/時間ベース)]]
    • [[SQLi攻撃の具体例]]
    • SQLi対策
      • [[プリペアドステートメント (Parameterized Queries)]] (最重要)
      • [[ストアドプロシージャ (限定的効果)]]
      • [[入力値のエスケープ (最終手段、不完全な場合あり)]]
      • [[ORMの安全な使用]]
      • [[最小権限の原則 (DBユーザー権限)]]
      • [[Web Application Firewall (WAF)による緩和]]
  • NoSQLインジェクション MOC (MongoDB, CouchDBなど)
    • [[NoSQLインジェクションの仕組みと攻撃例]]
    • [[対策 (適切なクエリ構築、入力サニタイズ)]]
  • OSコマンドインジェクション MOC
    • [[OSコマンドインジェクションの仕組みと影響 (サーバ乗っ取り)]]
    • [[攻撃例 (ping, lsなどの悪用)]]
    • [[対策 (外部コマンド呼び出しの回避、エスケープ、安全なAPI利用)]]
  • LDAPインジェクション MOC
  • XQueryインジェクション MOC
  • XML外部実体参照 (XXE - XML External Entities) MOC (OWASP Top 10:2017 A4)
    • [[XXEの仕組みと影響 (情報漏洩、SSRF)]]
    • [[XXE攻撃の例 (外部DTD利用)]]
    • [[対策 (XMLパーサの安全な設定、外部実体参照の無効化)]]
  • テンプレートインジェクション (Template Injection) MOC (SSTI - Server-Side Template Injection)

2.2. クロスサイトスクリプティング (XSS - Cross-Site Scripting) MOC (OWASP Top 10:2021 A03)

2.3. XSRF - Cross-Site Request Forgery) MOC (OWASP Top 10:2017 A8)

2.4. 認証の不備 (Broken Authentication) MOC (OWASP Top 10:2021 A07)

2.5. アクセス制御の不備 (Broken Access Control) MOC (OWASP Top 10:2021 A01)

2.6. セキュリティ設定ミス (Security Misconfiguration) MOC (OWASP Top 10:2021 A05)

2.7. 機密データの公開 (Sensitive Data Exposure) MOC (OWASP Top 10:2017 A3, 2021 A02:暗号化の失敗)

2.8. 安全でないデシリアライゼーション (Insecure Deserialization) MOC (OWASP Top 10:2017 A8, 2021 A08:ソフトウェアとデータの完全性の不備)

2.9. 脆弱性のあるコンポーネントの使用 (Using Components with Known Vulnerabilities) MOC (OWASP Top 10:2021 A06)

2.10. 不十分なロギングとモニタリング (Insufficient Logging & Monitoring) MOC (OWASP Top 10:2021 A09)

2.11. サーバーサイドリクエストフォージェリ (SSRF - Server-Side Request Forgery) MOC (OWASP Top 10:2021 A10)

2.12. リダイレクトとフォワードの不備 (Unvalidated Redirects and Forwards) MOC

  • [[オープンリダイレクトの危険性 (フィッシングサイトへの誘導)]]
  • [[対策 (リダイレクト先のホワイトリスト検証, ユーザーへの警告)]]

2.13. UI Redressing) MOC

  • [[クリックジャッキングの仕組み (透明なiframeによるユーザー操作の乗っ取り)]]
  • [[対策 (X-Frame-Optionsヘッダ, CSPのframe-ancestorsディレクティブ)]]

2.14. ファイルアップロード脆弱性 MOC

  • [[危険なファイルタイプ (実行ファイル、スクリプト) のアップロード許可]]
  • [[ファイル名や拡張子の検証不備]]
  • [[アップロードされたファイルの不適切な配置場所とアクセス権限]]
  • [[コンテンツタイプの検証不備 (MIMEスニッフィング悪用)]]
  • [[対策 (ホワイトリスト形式でのファイルタイプ検証, ファイル名無害化, 非公開ディレクトリへの保存, ウイルススキャン)]]

2.15. Path Traversal) MOC

  • [[ディレクトリトラバーサルの仕組み (../などを用いた不正なファイルアクセス)]]
  • [[対策 (ユーザー入力の正規化と検証, 絶対パスの使用, chroot環境)]]

2.16. ビジネスロジックの脆弱性 MOC

  • [[アプリケーション固有のロジックの欠陥を悪用する攻撃]]
  • [[例 (価格改ざん、不正なワークフロー操作、過度なクーポン利用)]]
  • [[対策 (徹底したユースケース分析と異常系のテスト、ドメイン知識の活用)]]

3. セキュアコーディングプラクティス MOC (再掲・集約)

4. Web認証と認可のセキュリティ MOC (再掲・集約)

4.1. パスワードセキュリティ強化 MOC

  • [[安全なハッシュ化アルゴリズム (bcrypt, scrypt, Argon2, PBKDF2)]]
  • [[ソルト (Salt) の適切な使用]]
  • [[ストレッチング (Stretching) / キー派生関数の反復回数]]
  • [[パスワードポリシーの設定 (長さ、複雑性、定期変更の是非)]]
  • [[パスワード漏洩チェックサービスとの連携 (Have I Been Pwned)]]
  • [[パスワードマネージャーの推奨]]

4.2. セッション管理のセキュリティ強化 MOC

  • [[セキュアなCookie属性 (HttpOnly, Secure, SameSite=Strict/Lax)]]
  • [[セッショントークンの十分なランダム性と長さ]]
  • [[セッションタイムアウト (アイドルタイムアウト、絶対タイムアウト)]]
  • [[ログイン時のセッションID再生成 (セッション固定化対策)]]
  • [[ログアウト時の確実なセッション無効化]]
  • [[ユーザーエージェントやIPアドレスの変動監視 (オプション)]]

4.3. トークンベース認証 (JWTなど) のセキュリティ強化 MOC

  • [[JWTの署名アルゴリズムの選択 (HS256vs.RS256など)]]
  • [[秘密鍵/公開鍵の安全な管理]]
  • [[algヘッダのnone脆弱性対策]]
  • [[JWTの有効期限 (exp) の適切な設定]]
  • [[JWTの失効メカニズム (ブラックリスト方式、短命トークン+リフレッシュトークン)]]
  • [[JWTのペイロードに含める情報の吟味 (機密情報を含めない)]]
  • [[JWTのストレージ (localStorage vs. sessionStorage vs. Cookie)]]

4.4. 多要素認証 (MFA) の実装 MOC

  • [[MFAの種類 (TOTP, SMS/電話, プッシュ通知, セキュリティキー - FIDO/WebAuthn)]]
  • [[MFA導入のベストプラクティスとユーザビリティ]]
  • [[リカバリーコードの実装]]

4.5. OpenID Connect (OIDC) のセキュリティ実践 MOC

  • [[リダイレクトURIの厳格な検証]]
  • [[stateパラメータによるCSRF対策]]
  • [[PKCE (Proof Key for Code Exchange) の利用 (特にパブリッククライアント)]]
  • [[Implicitフローの非推奨とAuthorization Codeフロー with PKCEへの移行]]
  • [[アクセストークンのスコープ最小化]]
  • [[トークン漏洩対策]]

4.6. アクセス制御 (認可) の設計と実装 MOC

  • [[RBAC, ABACなどのモデルの適切な選択と実装]]
  • [[機能レベルとデータレベルのアクセス制御]]
  • [[デフォルト拒否の原則]]
  • [[アクセス制御ルールの集中管理とテスト]]

5. HTTPSと暗号化通信 MOC (再掲・詳細)

6. ブラウザセキュリティメカニズム MOC (再掲・詳細)

  • 同一生成元ポリシー (SOP - Same-Origin Policy) MOC
    • [[オリジン (プロトコル, ホスト, ポート) の定義]]
    • [[SOPによる制限 (Cookie, DOM, XMLHttpRequest/Fetch)]]
  • CORS (Cross-Origin Resource Sharing) MOC
    • [[オリジン間リソース共有の仕組み (プリフライトリクエスト - OPTIONS)]]
    • [[サーバーサイドでのCORSヘッダ設定 (Access-Control-Allow-Originなど)]]
    • [[CORSのセキュリティリスクと適切な設定]]
  • Content Security Policy (CSP) MOC
    • [[CSPの目的 (XSS, データインジェクションなどの軽減)]]
    • [[CSPディレクティブ (default-src, script-src, style-src, img-src, connect-src, frame-ancestorsなど)]]
    • [[unsafe-inline, unsafe-eval の回避]]
    • [[nonce, hashの利用]]
    • [[report-uri/report-to ディレクティブによる違反報告]]
  • その他のセキュリティ関連HTTPヘッダ
    • [[X-Frame-Options]] (クリックジャッキング対策 - DENY, SAMEORIGIN, ALLOW-FROM)
    • [[X-Content-Type-Options: nosniff]] (MIMEスニッフィング攻撃対策)
    • [[Referrer-Policy]] (リファラ情報の制御)
    • [[Permissions-Policy (旧 Feature-Policy)]] (ブラウザ機能の利用許可制御)
    • [[Strict-Transport-Security (HSTS)]] (再掲)
  • Subresource Integrity (SRI) MOC (CDNなど外部リソースの改ざん検知)
  • HTML5セキュリティ機能
    • [[sandbox 属性]]
    • [[rel=“noopener noreferrer”]] (リンクからの情報漏洩対策)

7. Webセキュリティテストと監視 MOC

  • セキュリティテストの種類 (再掲・集約)
    • [[静的アプリケーションセキュリティテスト (SAST)]] (ソースコードスキャン)
    • [[動的アプリケーションセキュリティテスト (DAST)]] (実行中のアプリケーションへのテスト)
    • [[インタラクティブアプリケーションセキュリティテスト (IAST)]] (SASTとDASTの組み合わせ)
    • [[ソフトウェアコンポジション解析 (SCA)]] (依存ライブラリの脆弱性スキャン)
    • [[手動ペネトレーションテスト]]
    • [[セキュリティコードレビュー]]
  • 脆弱性診断ツール
    • [[OWASP ZAP (Zed Attack Proxy)]]
    • [[Burp Suite]]
    • [[Nmap (ポートスキャン)]]
    • [[Nikto, SkipfishなどのWebスキャナ]]
    • [[SQLMap (SQLiテスト)]]
    • [[各種SAST/DAST/SCAツール (SonarQube, Veracode, Snyk, Trivyなど)]]
  • セキュリティ監視とインシデント対応
    • [[WAF (Web Application Firewall) のログ監視]]
    • [[IDS/IPS (Intrusion Detection/Prevention System) のログ監視]]
    • [[SIEM (Security Information and Event Management) の活用]]
    • [[インシデントレスポンス計画 (IRP) の準備]]
    • [[フォレンジック調査の基本]]
  • バグバウンティプログラムと責任ある開示 (Responsible Disclosure)

8. DevSecOpsとシフトレフトセキュリティ MOC

9. Webセキュリティの最新トレンドと将来展望 MOC

10. Webセキュリティアンチパターン MOC

  • [[全ての入力を信頼する]]
  • [[エラーメッセージで詳細な内部情報を漏洩する]]
  • [[ハードコードされた認証情報]]
  • [[脆弱なデフォルト設定のまま運用する]]
  • [[HTTPSを使用しない、または不完全に設定する]]
  • [[既知の脆弱性のあるライブラリを使い続ける]]
  • [[セキュリティテストを軽視する、または実施しない]]
  • [[ログを適切に収集・監視しない]]
  • [[セキュリティは専門家の仕事だと開発者が考えない]]
  • [[インシデント発生時の対応計画がない]]