まだ報告されている被害自体は多くないのですが、
・IDもパスワードも盗まれていない
・多要素認証(MFA)を設定していた
といった場合でも、
「インターネット上のサービスに不正ログインされてしまい、第三者に勝手にサービスを利用されてしまう」
という事件(被害)が発生しています。
それが「パス・ザ・クッキー(Pass-the-cookie)」と呼ばれる攻撃によるものです。
パス・ザ・クッキー(Pass-the-cookie)について詳しくご紹介する前に、インターネットサービスにおける「認証」の基本を確認しておきたいと思います。
インターネットサービスにおける「認証」としてはIDとパスワードが広く採用されています。
しかし、実は、IDとパスワードだけに頼った認証は攻撃に弱いと言われています。
なぜならば、IDとパスワードを第三者に知られてしまうと、不正ログインされてしまうからです。
そして、それはIDとパスワードをどれだけ厳重に管理していたとしても変わりません。
なぜならば、攻撃する側には、「パスワードを全パターン(総当たりで)試す事で、パスワードを判明させる」という攻撃手段があるからです。
もちろん、IDとパスワードが複雑であれば、そのリスクを軽減させる事は可能です。
しかし、パスワードが判明してしまう可能性をゼロには出来ません。
そこで、この問題に対応する為に生まれたのが「多要素認証(MFA)」という認証方式です。
この方式では、ログインに「自分しか提供する事の出来ない情報」が必要となります。
例えば、
「登録してあるスマホに使い捨てのパスワードが通知され、そのパスワードを入力しないとログイン出来ない」
といった仕組みにする事で、
「そのスマホが盗まれない限り、ログインは出来ない」
という事を実現させているのです。
※多要素認証には、スマホの代わりにハードウェアトークン(パスワードが表示される専用の機械)や生体情報(指紋など)を組み合わせる方式もあります。これらの場合も、考え方は同じです。
この為、「多要素認証であれば、不正利用される事はないだろう」と考えている人は多いはずです。
例えば、スマホを使った多要素認証を設定した利用者は、
「このスマホを攻撃者が手に入れて、かつ、スマホのロックまで解除して、サービスから送られてくる使い捨てパスワードを見るような事がない限り、不正ログインは出来ない。だから、不正利用はあり得ないはずだ。また、スマホが盗まれたらすぐに解るから、自分が知らない間に不正利用されるような事はあり得ないはずだ。」
と考えてしまうはずです。
その認識は基本的には正しいですし、だからこそ、多要素認証は重要視されてきました。
しかし、です。
その多要素認証すら無効化し、不正利用を成立させてしまうのが、今回取り上げる「パス・ザ・クッキー(Pass-the-cookie)」という攻撃なのです。
パス・ザ・クッキー(Pass-the-cookie)攻撃では、
・多要素認証に必要な機器など(例えば、スマホ)が盗まれていないのにも関わらず、
・自分が知らない間に、
・攻撃者が自分のアカウントを利用してしまう
という事が発生するのです。
怖いですね。
では、なぜ、そのような事が発生するのか。
理屈は、それほど複雑ではありません。
この攻撃では、攻撃者は、「認証に必要な情報」を盗むのではなく、「貴方が認証を終えた後の状態」を盗むのです。
始めて読まれた方は良く解らないと思いますが、こういう事です。
貴方が、あるサービスに正規にログインした場合、そのサービス側では、貴方の端末(パソコンやスマホなど)の事を、
「この端末は、正規にログインしたユーザーが使っている」
と判断します。
そう判断する事によって、その端末から行われる操作については、正規ユーザーが操作している有効な操作として扱うのです。
そして、その判定の為に、貴方の端末の中(厳密には、インターネットブラウザが情報を格納する場所)に、「貴方の端末である事が解るような情報」を保存する事があります。
その情報がないと、インターネットサービス側では、多くのアクセスがある中で、貴方の端末を見分ける事が困難になるからです。
この時、貴方の端末に保存される情報の事を、クッキー(cookie)と呼びます。
そして、多くのサービスでは、ユーザーが明示的に「ログアウト」をするまで、そのクッキーが登録された端末からのアクセスは、「正当なユーザーからのアクセスである」とみなして操作を受け付ける仕組みになっています。
※少し説明を簡略化しています。
もうお解りでしょうか。
今回のパス・ザ・クッキー(Pass-the-cookie)攻撃では、そのログインされた状態の証であるクッキー(cookie)を盗み出すのです。
先ほど説明させて頂いた通り、インターネットサービス側では、クッキー(cookie)をもとにアクセスしてきた端末を「正規のユーザーによるアクセスかどうか」を判断する事があります。
この為、このクッキー(cookie)が一致してしまうと、攻撃者の端末を、「認証が成功している端末からの操作である」と信じてしまう事があるのです。
これにより、どれだけ複雑な認証の仕組みがあったとしても、攻撃者は、それをすり抜ける事が出来るのです。
この「認証が成功した状態を盗む」という点が、パス・ザ・クッキー(Pass-the-cookie)攻撃の特徴です。
もちろん、攻撃者にとって、クッキー(cookie)を盗む事も簡単ではありません。
しかし、所詮は端末に保存された情報の一部です。
様々な方法によって、端末に保存された情報が盗まれる事があるのは、皆さまも良くご存じの通りだと思います(メールによるマルウェア攻撃など)。
それと同様に、このクッキー(cookie)も盗まれてしまう事があるのです。
※盗まれたクッキー(cookie)が売買されている闇サイトまで存在するそうです。
では、このパス・ザ・クッキー(Pass-the-cookie)攻撃には、どのように対応すれば良いのでしょうか。
利用者側として出来る対策として、3つの事を知っておいて頂きたいと思います。
まず、1つ目の対策は、「クッキー(cookie)を盗まれないようにする」という事。
説明した通り、クッキー(cookie)が盗まれない限り、パス・ザ・クッキー(Pass-the-cookie)攻撃は成立しません。
そして、クッキー(cookie)は端末に保存された情報の一部です。
ですから、情報を盗み出そうとする攻撃への一般的な対策(マルウェア対策)は有効です。
例えば、攻撃を防ぐ為のソフトウェアを導入したり、怪しいメールは開かないようにしたり、などの対策です。
従来から言われているような対策を徹底する事は、パス・ザ・クッキー(Pass-the-cookie)攻撃に対しても有効なのです。
2つ目の対策は、「有効なクッキー(cookie)を出来る限り端末に残さない」という事。
パス・ザ・クッキー(Pass-the-cookie)攻撃は、認証が成功した状態のクッキー(cookie)を盗む事で成立します。
ですから、認証が成功した状態のクッキー(cookie)が端末になければ、攻撃は成功しません。
ほとんどのサービスでは、明示的に利用を終了する作業(通常は、ログアウトやログオフと呼ばれる作業)をインターネットブラウザ上で行う事で、貴方の端末に保存されているクッキー(cookie)を「既に、認証済の状態ではない状態」」に変化させる事が出来ます。
複数人で同じパソコンを使うケースもある訳ですから、そのような仕組みがあるのは、本来、当然の事ですね(細かい仕様については、サービス毎に異なります)。
ですから、こまめに利用終了の作業を行う事で、一定の対策が可能となります。
最後の3つ目の対策は、「クッキー(cookie)に頼りすぎるサービスは利用しないようにする」という事です。
パス・ザ・クッキー(Pass-the-cookie)攻撃は、サービス側がクッキー(cookie)を信用するからこそ成立する攻撃です。
ですから、サービス側がクッキー(cookie)を信用し過ぎなければ、被害は最小限で済むのです。
実際、セキュリティ対策がしっかりとしているインターネットサービスでは、通常はクッキー(cookie)を使ってアクセスしてきた端末を「認証済の端末である」と認識していたとしても、重要な操作を行う前には、再度、「認証を行わせる」といった仕組みになっています。
このような仕組みになっているサービスであれば、その再度の認証の段階で攻撃者は進めなくなり、深刻な被害が避けられる事になります。
自分が使うサービスが、そのような仕組みになっているかどうかを確認して頂き、対策が不十分なサービスを使わないようにする事で、被害を防ぐ事は可能です。
もっとも、どうしても使わなければいけないサービスが、こうした問題に未対応の場合には、利用者側だけではどうしようもない場合もあります。
ただ、その場合でも、こまめにサービスにログインして、不正利用が発生していないか確認したり、といった対応をする事は検討して下さい。
以上、多要素認証さえ破られてしまうパス・ザ・クッキー(Pass-the-cookie)攻撃のご紹介と、利用者側で出来る対策についてでした。
皆さまも、くれぐれもお気を付け下さい。