1. アプリケーションセキュリティ入門 MOC

2. セキュアな設計とアーキテクチャ MOC

  • セキュア設計原則
    • [[攻撃対象領域の最小化]]
    • [[デフォルトでセキュア]]
    • [[最小権限]]
    • [[多層防御]]
    • [[信頼しない (Zero Trust の考え方)]]
    • [[シンプルさを保つ]]
    • [[失敗時の安全性を確保]]
    • [[特権の分離]]
  • アーキテクチャリスク分析
  • トラスト境界の明確化
  • セキュアなAPI設計 (API設計MOCと連携)
  • 認証と認可アーキテクチャの設計 (認証と認可MOCと連携)
  • ロギングと監視アーキテクチャの設計
  • コンポーネントの分離とサンドボックス化

3. セキュアコーディングプラクティス MOC (言語非依存)

3.1. 入力検証 (Input Validation) MOC

  • 入力検証の原則: “すべての入力を信頼するな”
  • 検証のタイミングと場所 (クライアントサイド vs. サーバーサイド)
  • 検証の種類
    • [[型チェック]] (数値、文字列、ブーリアンなど)
    • [[長さチェック]] (最小長、最大長)
    • [[範囲チェック]] (数値の範囲)
    • [[フォーマットチェック]] (メールアドレス、電話番号、日付など)
    • [[存在チェック]] (必須項目)
  • ホワイトリスト方式 vs. ブラックリスト方式
    • [[ホワイトリスト (許可リスト) の推奨]]
  • 正規表現 (Regex) を用いた検証と注意点 (ReDoS攻撃)
  • ファイルアップロードの検証 (拡張子、MIMEタイプ、ファイルサイズ、ウイルススキャン)

3.2. Escaping) MOC

  • 出力エンコーディングの目的 (インジェクション攻撃の防止)
  • コンテキストに応じた適切なエンコーディング
    • [[HTMLコンテキスト (HTML Entity Encoding)]]
    • [[HTML属性コンテキスト]]
    • [[JavaScriptコンテキスト (JavaScript Escaping)]]
    • [[CSSコンテキスト]]
    • [[URLコンテキスト (URL Encoding / Percent Encoding)]]
  • 実績のあるライブラリの利用

3.3. 認証とセッション管理の実装 MOC

  • [[安全なパスワード保存 (bcrypt, scrypt, Argon2)]] (再掲)
  • [[安全なパスワードリセット機能の実装]] (再掲)
  • [[多要素認証 (MFA) の実装]] (再掲)
  • [[セキュアなセッショントークンの生成と管理]]
  • [[セッションタイムアウトの実装]]
  • [[ログイン/ログアウト処理のセキュリティ]]

3.4. 認可とアクセス制御の実装 MOC

  • [[機能レベルとデータレベルでのアクセス制御の実装]]
  • [[リクエストごとの権限チェックの徹底]]
  • [[安全でない直接オブジェクト参照 (IDOR) の防止]]
  • [[クライアント側でのみ認可チェックを行わない]]

3.5. 安全なエラー処理とロギング MOC

  • エラー処理
    • [[詳細なエラーメッセージをユーザーに表示しない]] (スタックトレース、DBエラーなど)
    • [[汎用的で安全なエラーページの表示]]
  • ロギング
    • [[何をログに記録すべきか (認証試行、アクセス制御失敗、重要な操作など)]]
    • [[何をログに記録すべきでないか (パスワード、セッショントークン、個人情報などの機密情報)]]
    • [[ログの改ざん防止]]
    • [[構造化ロギングの活用]]

3.6. 安全な暗号技術の利用 MOC (暗号技術MOCと連携)

  • [[実績のある標準的な暗号アルゴリズムとライブラリを使用する]]
  • [[自作の暗号アルゴリズムを使用しない]]
  • [[鍵管理のベストプラクティス (ハードコーディングしない)]]
  • [[適切な暗号モードの選択 (ECBの回避、AEADの利用)]]
  • [[乱数生成器の適切な利用 (暗号論的擬似乱数生成器 - CSPRNG)]]

3.7. メモリ管理のセキュリティ MOC

  • [[バッファオーバーフロー対策]] (境界チェック、安全な関数の使用)
  • [[整数オーバーフロー対策]]
  • [[フォーマット文字列脆弱性対策]]
  • [[解放後使用 (Use-after-free) / 二重解放 (Double free) の防止]]
  • [[機密情報のメモリからの確実な消去]]

3.8. ファイル管理のセキュリティ MOC

  • [[安全なファイルアップロード処理]] (再掲)
  • [[ディレクトリトラバーサル対策]]
  • [[ファイルパーミッションの適切な設定]]

4. 主要なアプリケーション脆弱性の詳細 MOC (WebセキュリティMOCと連携・集約)

  • [[インジェクション攻撃 (SQLi, OS Commandなど) の対策]] (プリペアドステートメント、エスケープ)
  • [[クロスサイトスクリプティング (XSS) の対策]] (出力エンコーディング, CSP)
  • [[クロスサイトリクエストフォージェリ (CSRF) の対策]] (CSRFトークン, SameSite Cookie)
  • [[安全でないデシリアライゼーションの対策]] (信頼できないデータのデシリアライズ禁止)
  • [[XXE (XML External Entity) の対策]] (XMLパーサの安全な設定)
  • [[アクセス制御の不備 (IDOR, 権限昇格) の対策]]
  • [[ビジネスロジック脆弱性の発見と対策]]
  • [[情報漏洩の防止]]
  • [[サーバーサイドリクエストフォージェリ (SSRF) の対策]]

5. アプリケーションセキュリティテスト (AST) MOC

6. 依存関係とサプライチェーンセキュリティ MOC

7. シークレット管理 (Secrets Management) MOC

  • シークレットとは (APIキー, DB認証情報, 暗号鍵, パスワードなど)
  • シークレット管理の課題
    • [["シークレット・スプロール" (Secret Sprawl)]]
    • [[コードへのハードコーディング (最悪のアンチパターン)]]
  • シークレット管理のベストプラクティス
    • [[シークレットをバージョン管理に含めない (.gitignore)]]
    • [[動的なシークレットとリース期間]]
    • [[最小権限の原則に基づくアクセス制御]]
    • [[監査ログ]]
    • [[シークレットのローテーション]]
  • シークレット管理ツール
    • [[HashiCorp Vault]]
    • [[AWS Secrets Manager]]
    • [[Azure Key Vault]]
    • [[Google Cloud Secret Manager]]
    • [[Git-secrets, TruffleHogなどの漏洩検知ツール]]
  • 環境変数による管理と注意点

8. 開発ライフサイクルとセキュリティ (DevSecOps) MOC (再掲・集約)

  • シフトレフトセキュリティの考え方 (開発の早期段階からセキュリティを)
  • CI/CDパイプラインにおけるセキュリティゲート
    • [[コミット/PR時: SAST, SCA, シークレットスキャン]]
    • [[ビルド時: コンテナイメージスキャン]]
    • [[テスト環境デプロイ後: DAST, IAST]]
    • [[本番デプロイ前: 手動ペネトレーションテスト (定期的)]]
  • セキュリティチャンピオン制度 (開発チーム内のセキュリティ推進者)
  • セキュアなコードレビューのチェックリスト
  • Infrastructure as Code (IaC) のセキュリティ (Terraform/CloudFormationの静的解析)

9. コンテナとデプロイメントのセキュリティ MOC (再掲・AppSec視点)

  • セキュアなDockerfileの作成
    • [[最小限のベースイメージの使用]]
    • [[非rootユーザーでの実行]]
    • [[マルチステージビルドによるビルドツール等の排除]]
    • [[イメージ内のシークレットの排除]]
  • コンテナイメージの脆弱性スキャン (Trivy, Clair, Snykなど)
  • コンテナランタイムセキュリティ
    • [[読み取り専用ファイルシステム]]
    • [[権限昇格の防止]]
    • [[seccomp, AppArmor, SELinuxによるシステムコール制限]]
  • Kubernetesにおけるアプリケーションセキュリティ
    • [[Pod Security Standards]]
    • [[NetworkPolicyによる通信制御]]
    • [[Secretリソースの適切な利用]]

10. 特定アプリケーションタイプのセキュリティ MOC

11. アプリケーションセキュリティの成熟度モデル MOC

12. アプリケーションセキュリティの将来とトレンド MOC