三井物産セキュアディレクション株式会社(MBSD)は10月5日、Cookie Prefixのバイパスについて同社ブログで発表した。執筆者はプロフェッショナルサービス事業部の寺田健氏。
「Cookie Prefix」は、対象サイト向けのCookieを他人のブラウザにインジェクトしようとする「Cookie Injection」への対策。
Cookie Injectionの方法は主に下記の2つで、これらの方法で植え付けられるCookieは、本来あるべきSecure属性が無い場合や、本来のものと違うDomain属性を持つ場合がある。例では対象サイトを「https://www.example.jp」としている。
1.非HTTPSの通信(通信経路上の攻撃者が制御できる)から被害者のブラウザにCookieをセットする
例: 被害者を http://www.example.jp にアクセスさせて、通信経路上の攻撃者がSet-Cookie付き(Secure属性無し)の応答を返す
2.関連するドメイン(攻撃者が一定の制御を持つサブドメイン等)から被害者のブラウザにCookieをセットする
例: attacker-controlled.example.jp から Domain=example.jpのCookieをセットすると、www.example.jpにもそのCookieが送られる
被害者のブラウザにCookieを植え付けることで、攻撃者は「Session Fixation(攻撃者アカウントでログイン済みのセッションIDを被害者に使わせるタイプの攻撃(Authenticated-as-Attacker)を含む)」「Cookieを利用したXSSやOpen Redirect」「サービス利用の妨害」などの攻撃を行える可能性がある。
上記の攻撃への対策として2016年頃に作られたのがCookie Prefixで、特別なPrefixを持つCookieについては、非HTTPSやサブドメインからのセットが出来ないようにする仕組みとなっている。XSSや通常のSession FixationはCookie Prefix以外の根本的な対策があるが、それがないAuthenticated-as-Attackerの攻撃については、Cookie Prefixでの対策が容易とし、定義された「__Secure-」「__Host-」を解説している。
さらに本題のCookie Prefixのバイパスについて、4種類の攻撃/脆弱性を紹介している。