Cookieの動作をコントロールする「SameSite Cookie」

ハウツー

Cookie(クッキー)は、サイト訪問者のWebブラウザに履歴データを残し、再訪問した際の利便性を高める仕組みです。これまでは、ほかのWebサイトに移動するとき、リクエストに従って自動的にCookieが付与されていました。しかし近年、この一連の動作を悪用した攻撃が増加しており、ユーザとサイトの双方で危険性が高まっています。その対策として注目されているのが、SameSite属性です。ここでは、SameSite Cookieの基礎知識とその有効性、設置方法について解説していきます。

こちらもオススメ

「SameSite Cookie」とは?

「SameSite Cookie」とは、Cookieの送信を制御するSameSite属性の仕様のことを指します。Cookieは「各ユーザのWebブラウザ」にWebサーバが保持させるデータで、再訪問時の自動ログイン等を実現する仕組みとなっています。ただし、悪用されてしまうケースもあり、以前から問題のある仕様とされていました。

SameSite属性の目的は、「現在のドメイン」から「遷移先ドメイン」へCookieが送信されるのを制御することです。ドメインをまたぐリクエストに対してCookieを自動付与しないようにすることで、安全性の向上につなげていきます。

「SameSite Cookie」を利用すると、予期せぬ形で情報が漏えいしてしまう危険性を軽減することができます。「完全な防止策ではない」という意見もありますが、現時点では有効性の高い手法と言えます。

従来の「HTTP Cookie」より何が優れている?

「SameSite Cookie」は、従来の「HTTP Cookie」の脆弱(ぜいじゃく)性をカバーできるという利点があります。Cookieを悪用した攻撃には「CSRF(Cross Site Request Forgeries)」や「Timing Attack」などがありますが、こうした攻撃に対して、これまでは個別に対策をしなければなりませんでした。「SameSite Cookie」を活用すれば一つの設定で、一定の効果を期待できます。悪意のあるサイトからの「偽装されたリクエスト」に対してCookieを送らなくなるため、リスクを事前に回避できるようになります。

「SameSite Cookie」の設置方法は?

「SameSite Cookie」の設置方法は、大きく分けて3つあります。

  1. Strict
    設定されたCookieは、他ドメインのサイトに一切送信されません。Cookieの使用を完全にブロックするため、最上級のセキュリティ対策が行えます。
  2. Lax
    「top-level navigation」以外のリクエストにはCookieを付与しません。Strictよりも緩い設定となりますが、CSRFの対象からは外れます。

「Strict」と「Lax」は必要に応じて容易に変更できるので、サイト運用の状況を見ながら設定していくとよいでしょう。

  1. Read CookieとWrite Cookieを分離運用
    ユーザのログイン状態を制御する「Read Cookie」と、書き込みを制御する「Write Cookie」を別々に設定する方法です。Write CookieにStrictを適用することで、安全性を高めながら利便性を向上できます。

こちらは新規の開発や改修が可能な場合に限られるため、実装するには難易度の高い変更が求められます。実施が可能であれば、画一的な設定をするよりも機能性に富んだサイトになります。

「SameSite Cookie」のサポート状況について

続いては、「SameSite Cookie」のサポート状況について紹介します。現在、日本で使用されている主なWebブラウザは「ほぼ対応済み」になっています。ただし、バージョンによっては未対応の場合もあるので確認が必要です。未対応のブラウザは、「SameSite Cookie」を設定しても通常のCookieとして使用するため、セキュリティの効果が見込めません。

モバイル版のWebブラウザも「SameSite Cookie」に対応していますが、「UC Browser for Android」のように、一部未対応のブラウザも見受けられます

主なブラウザの「SameSite Cookie」対応状況は以下のとおりです。(2019年10月時点)

  • IE(Internet Explorer):Ver.6~10未対応、11は部分サポート
  • Microsoft Edge:Ver.12~15未対応、16以降は対応済み
  • Mozilla Firefox:Ver.2~59未対応、60以降は対応済み
  • Google Chrome:Ver.4~50未対応、51以降は対応済み
  • Safari:Ver.3.1~11.1未対応、12以降は部分サポート
  • Opera:Ver.10~38未対応、39以降は対応済み

まとめ:「SameSite Cookie」のセットが常識化する

Googleでは、Chrome 80以降のユーザに対して「Cookie指定の明確化を義務づける」と公表しています。マイクロソフトもIE 11以降、SameSite属性のサポートを部分的に開始しました。Cookieを悪用した攻撃により、意図しない不適切な書き込み、不正サイトへのアクセス、掲示板やアンケートフォームへの不正な書き込み、などの問題が発生しています。ユーザが疑われるだけでなく、企業側も大量の不正書き込みにさらされる恐れがあります。「SameSite Cookie」はWeb上のプライバシーとセキュリティを守り、こうした攻撃を回避するための施策です。今後は、SameSite属性を更新し、ユーザと自社サイトの保護に努めることが一般化していくと予想されます。

こちらもオススメ