この記事を書こうと思ったきっかけは、日々数多あるSNSの乗っ取り事件の中で「これは珍しい事例かも」と思った事件に遭遇したからであります。遭遇と言っても私自身が被害に遭ったわけではなく、そのSNSで繋がっている方が被害に遭ったのですが、完全に攻撃者に掌握されるまではリアルタイムで投稿もしていたので「最悪の状況かもしれないなあ」と思いつつ眺めていた次第です。眺めていたというと「専門家なのに冷たいな」と言われるかもしれませんが、被害に遭った方は私の言うことを聞くような人間では無いのと、最悪の状況だと「為す術がない」からです。決して突き放したわけではありません。

さて、その事件については御本人がブログにまとめていらっしゃるので、そちらを見て頂くとして…
Facebookが不正アクセスで乗っ取られ、アカウント停止処分を受けました。

「数多あるSNSの乗っ取り事件」のパターンとしては今では基本的に一つのパターンに集約されていて「フィッシング」に引っ掛かってアカウント情報(二要素認証のコードも含む)を悪意の第三者に渡してしまうというパターンになります。その結果として、乗っ取られてしまうわけですが最近はSNS側で「攻撃者のセッションを追い出す」事も可能になっていたりするので、攻撃者よりも先にパスワードを変更した上で追い出す事で対応は可能です。この場合には「パスワードの変更」は有効な手段になります。何故なら騙して盗み出したアカウント情報を使って表口から入っているわけですから、パスワードを変更する=表口の鍵を変える事になるので再度の乗っ取りは不可能になるわけです。

しかしながら、先の事例では被害に遭われた方が「パスワードを変更した」はずなのに再度侵入されているような投稿をしていたので私の方では「最悪の状況」なんだろうなと考えていました。ただ、何故に最悪の状況が発生したのかについては思い浮かぶ節はなかったのです。大手SNSですから「最悪の状況」を生み出す脆弱性はないでしょうし、今のブラウザでは「最悪の状況」を生み出す脆弱性は無いはずなのです。

そんな中、こんな記事を見つけました。
新しい悪意のある ChatGPT Chrome 拡張機能によって Facebook アカウントがハイジャックされる
(この記事を書いている段階ではオリジナルが閲覧不可能になっている為、Googleキャッシュのリンクを貼っています)

要するにChromeの拡張機能がマルウェアと化し、ブラウザに保存されているFacebookのセッション情報を盗み出し、アカウント(というかログイン状態のセッション)を乗っ取ってしまうという事なのです。

「最悪の状況」と言うのはセッションハイジャックがなされ、完全に本人に成り代わっている状態(本人のクローンになり裏口から顔パスで侵入している状態)という事なのです。この状態では、おそらく先に記した「攻撃者のセッションを追い出す」事は不可能と思われ(何故なら、自分のクローンが出来ている状態なので攻撃者だけを選択的に追い出すことが不可能であるから)、攻撃者を追い出せないのでパスワードの変更には何の意味も無くなってしまう(それ故に、パスワードの変更を繰り返しても攻撃者に変えられてしまう)訳ですし、そもそもセッションを奪取して乗っ取っているので二要素認証も何ら意味をなさない状態になっているのです。

一般的に、セッションハイジャックを行うためには条件があり、ウェブサイト側にセッション情報を固定化出来る脆弱性がある事だったり、セッション情報の通信を傍受可能である事等が挙げられますが、現実問題としては前者についてはウェブサイト側でログイン後にセッションを書き換える等で対応可能(攻撃者に固定化されたセッション情報が破棄される)ですし、後者については暗号化通信(いわゆるSSL)の強制がなされていれば傍受不可能です。可能性があるとすれば、無線LANの偽アクセスポイントに接続し、偽サイトにアクセスし、ブラウザが出す警告を突破するという力業を行った場合という事になります。

ところが、ブラウザの拡張機能はブラウザに保存されているセッション情報にアクセスすることが可能です。なので、拡張機能がマルウェア化しアクセスしたセッション情報を外部に持ち出せれば先の条件を一切満たさなくてもセッションハイジャックが可能になってしまいます。拡張機能がマルウェア化する要因としては、メンテナンスがされなくなった拡張機能に脆弱性が残り、そこを突かれてしまうと言う例や、ソースコードが漏れるなどしてマルウェアを仕込まれたバージョンがリリースされてしまう等が考えられます。あるいは、拡張機能制作者が意図的に拡張機能をリリース後にマルウェアを仕込んだバージョンを出して自動アップデートによって知らぬ間に侵入させるという可能性も考えられます。

拡張機能のマルウェア化による被害を防ぐには、不正な外部への通信を遮断する機能を持ったセキュリティ製品の導入を行う以外には手段はないかと思います。そもそも、リリースされている拡張機能がマルウェア化したことに気が付くこと自体が難しいですからね。

そして、ここではSNSの乗っ取り事件の事例を取り上げましたが、業務で使っているクラウドサービスのセッションを乗っ取ることも可能ですので「SNSの話か」と高を括る事なく、対策を十分に行うことが重要です。