攻撃と脅威
クッキーポイズニング
定義
HTTP クッキーが Web アプリへ送信される前にその内容を書き換え、信頼・本人性・業務ロジックの判断を歪める攻撃。
クッキーポイズニングは、ユーザー ID、権限、価格、フィーチャーフラグ、署名済みトークンなどアプリケーションの状態を載せたクッキーを、クライアント側で改ざんする攻撃です。サーバーが整合性検証なしにクッキーを信頼している場合、権限昇格、カート合計の改変、テナント切り替え、認可回避などが可能になります。攻撃者は自身のブラウザで直接、または XSS、HTTPS 非対応経路での中間者攻撃を介して書き換えを行います。対策は、機密状態を整合性のない状態でクライアントに保存しないこと、HMAC や強力に署名された JWT、サーバーサイドセッションを用いること、サーバーで毎回検証すること、Secure・HttpOnly・SameSite 属性を付け TLS を強制すること、そしてすべてのクッキー値を信頼できないユーザー入力として扱うことです。
例
- ユーザーがクッキーの role=user を role=admin に書き換え、サーバーが整合性を検証しないため管理画面にアクセスできてしまう。
- EC サイトが価格をクッキーに保持しており、攻撃者が決済前にそれを 1 円へ書き換えて購入する。
関連用語
クッキーハイジャック
ユーザーの HTTP クッキー(通常はセッションや認証用クッキー)を盗み、再利用して Web アプリ上でそのユーザーになりすます攻撃。
セッションハイジャック
セッション識別子を盗用または偽造して被害者の認証済みセッションを乗っ取り、攻撃者が認証情報なしで本人として振る舞う攻撃。
パラメータ改ざん
攻撃者が HTTP リクエスト、Cookie、隠しフォームフィールドのパラメータを書き換え、アプリの挙動を操作する攻撃。
アクセス制御の不備
認可ルールが欠落または誤って適用され、ユーザーが本来の権限を超えた操作やデータにアクセスできてしまう脆弱性カテゴリ。
クロスサイトスクリプティング(XSS)
他のユーザーが閲覧するページに悪意あるスクリプトを注入し、当該サイトのオリジンとして被害者のブラウザで実行させる Web 脆弱性。
Session Management
Session Management — definition coming soon.