採用面接を偽装した3000件超のフィッシング攻撃が判明、ブラウザ内ブラウザ手法で企業アカウントとMFAをリアルタイム奪取
要点
-
サイバーセキュリティ企業のCTM360が、採用活動を装って企業の認証情報を詐取する大規模なフィッシング攻撃を公表した。
-
攻撃者は14業界・50以上の組織と実在の採用担当者を騙り、2か月間で3,000件以上の偽URLを展開していた。
-
「Browser-in-the-Browser(BitB)」技術を用いて偽のログイン画面を表示し、正規の認証画面と誤認させる手口が使われていた。
-
SvelteやSocket.IOを用いた動的な仕組みにより、多要素認証(MFA)の要求をリアルタイムで中継して認証を突破していた。
-
広告やSNSの管理権限を持つマーケティング職が主な標的となり、個人の無料メールアドレスは除外して企業アカウントを選別していた。
-
サイバーセキュリティ企業CTM360は、実在する企業の採用面接を装ってログイン情報を盗み出す大規模なフィッシング攻撃キャンペーンを確認したと発表した。公開された調査レポート『RecruitTrap』によると、過去2か月間で3,000件以上のフィッシングURLが特定されている。この攻撃は、Webブラウザの画面内に偽のポップアップを描画する技術やリアルタイム通信を組み合わせ、多要素認証(MFA)を突破する高度な仕組みを備えているという。
50以上の組織を騙りマーケティング職を標的に
レポートによると、このキャンペーンでは14の業界にわたる50以上の組織において、実在する採用担当者の情報や実際の採用プロセスが悪用されていた。攻撃者は、標的となる人物の経歴に言及した上で面接や情報交換への参加を促す、心当たりのないメールや会議の招待状を送信することから攻撃を開始する。
今回の攻撃では、確認された標的の大半をマーケティング担当者が占めていた。マーケティング関連のアカウントを侵害することで、企業の広告運用プラットフォームや公式ソーシャルメディア、顧客データ、社内メールといった重要システムへのアクセス権を奪う目的があったとみられている。
2つの誘導経路とBitBによる偽ログイン画面
誘い込まれた被害者は、日程調整ツールの「Calendly」に似せた偽ページか、各企業を模した専用の採用ポータルのいずれかに誘導される。偽ページ上には、実在する採用担当者の氏名や顔写真、役職など、公開されている情報がそのまま流用されていた。
どちらのページでも、日時の選択や連絡先の入力を進めると「Googleで続行」または「Facebookで続行」という認証ボタンが表示される。ここで利用されるのが「Browser-in-the-Browser(BitB)」と呼ばれる手法である。BitBとは、Webページ内の要素として偽のアドレスバーや南京錠アイコンを含む認証ウィンドウを描画し、本物のポップアップ画面のように見せかける手法を指す。この画面により正規のログイン画面が開いたように錯覚させられるほか、モバイル端末では全画面の偽ログインページが表示される場合があったという。
SvelteとSocket.IOを用いた動的なフィッシング基盤
CTM360がCalendly風のフィッシングページを詳細に解析したところ、単なる静的な入力フォームではなく、背後で状態遷移を制御する「状態マシン」として機能していたことが判明した。
フロントエンドにはWebフレームワークのSvelteおよびSvelteKitが採用されており、CAPTCHA認証、ユーザー名入力、パスワード入力、そして二要素認証の各段階へと画面が順次遷移する設計になっていた。ブラウザのsessionStorage(ブラウザのタブごとに一時データを保持する仕組み)にセッション識別子が保存され、常時接続を実現するプロトコルであるSocket.IOを通じて、攻撃者側のバックエンドから次にどの画面を表示するかがリアルタイムに制御されていた。
さらに、このページにはCAPTCHAやブラウザのリロード確認によるアクセスの選別機能が備わっていたほか、個人の無料メールアドレスを入力した場合は処理が進まず、企業の業務用ドメインのアカウントのみを次の段階へ進めるフィルタリング機能が組み込まれていた。これにより、標的価値の高い企業アカウントのみを選択的に収集していたとされる。
多要素認証のリアルタイム中継とセッション奪取
被害者が偽の画面にIDとパスワードを入力すると、攻撃者側のシステムがその情報を使って実際の正規サービスへのログインを試みる。
正規サービス側でワンタイムパスワード(OTP)や電話番号の照合、末尾番号の確認といった多要素認証(MFA)が要求されると、フィッシングページ側にも同じ認証要求がリアルタイムに反映される。被害者が偽画面に認証コードを入力すると、そのコードが即座に攻撃者へ送られ、正規サービスの認証が完了する仕組みとなっていた。
認証が成功すると、攻撃者は有効な認証済みセッションを獲得する。一方、被害者は不審に思われないよう本物のCalendlyページなどに転送され、攻撃に気づきにくいよう偽装されていたと報告されている。