CheatSheetSeries - 入力検証の落とし落としセクション追加

CheatSheetSeries コミット: 入力検証の一般的な落とし落とし + 現代MFA攻撃パターンの追加

概要

変更内容の要約

1. 入力検証チートシート — 「入力検証における一般的な落とし穴」セクション追加

実際の開発現場で見落とされがちな8つの重要な検証パターンを追加:

落とし穴 概要
デシリアライズ後の検証スキップ シリアライズ前に安全だったデータが、パース後に危険化する可能性。デシリアライズ後に必ず検証すること
内部API/マイクロサービスの過剰信頼 Zero Trust原則: ネットワーク位置だけで暗黙的に信頼してはならない。内部トラフィックも全検証が必要
ファイルアップロード/ファイル名の未検証 ファイル種別、サイズ、拡張子、ファイル名をすべて検証。パストラバーサル対策も必須
安全でない/過度に複雑な正規表現の使用 ReDoS(正規表現サービス拒否)のリスク。パターンはシンプルに、アンカー付きに、パフォーマンステスト済みであること
ネストされたJSONや大規模配列の無視 深さ、要素数、全体構造の制限を強制。リソース枯渇やパーサー攻撃を防止
Unicode正規化の見落とし 検証前に正規化が必要。ただし正規化だけでは不十分で、厳格な許可リストと正規化ルールと組み合わせる必要あり
JSON入力を自動的に安全とみなす 構造化されている≠信頼できる。フィールド存在、データ型、長さ、範囲、全体構造を検証すること
ロギング/保存前の検証忘れ 入力検証は構造化/型を保障するが、ログインジェクション対策には出力エンコーディングが必要

2. 多要素認証(MFA)チートシート — 「現代のMFA攻撃パターン(ベンダー中立)」セクション追加

製品固有ではなく、基盤となるアーキテクチャ的弱点に焦点を当てた7つの攻撃パターン:

攻撃パターン 概要
MFA疲労/プッシュ悪用 攻撃者がプッシュ通知を繰り返し送信し、ユーザーが誤ってまたは苛立ちで承認するまで待機
トークン盗難 セッションCookie、リフレッシュトークン、認証後トークンの盗難・再利用でMFAを完全迂回。認証をクライアントにバインドすること
リバースプロキシフィッシングキット ユーザーと正当なサービスの間に座り、MFAコードやセッショントークンをリアルタイムで傍受。フィッシング耐性MFAの導入が対策
クラウドMFA設定ミス レガシープロトコル、弱い条件付きアクセスルール、不完全なMFA強制がギャップを生む
リモートアクセスサービスでの弱いMFA RDP、SSH、VPNで一貫性のない/不正確なMFAが初期アクセスを可能にする
クロスプラットフォームMFAの弱点 Windows、Linux、SaaS、クラウド間で一貫性のないMFAが最も弱いリンクを攻撃者に提供
デバイス侵害 エンドポイントが侵害されると、プロンプト承認、トークン盗難、認証フローの傍受が可能に

セキュリティ関連詳細

参考情報