最新のInstagram「エクスプロイト」は、私が見た中で最もあきれるものだ
(0xsid.com)- InstagramアカウントのusernameだけでMetaのカスタマーサポートAIをだましてパスワード再設定とアカウント乗っ取りが可能になる脆弱性で、Obama White Houseアカウントなど多数の有名アカウントが被害を受けた
- 攻撃者は被害者の都市近郊のVPN・プロキシで接続してセキュリティアルゴリズムの疑いを回避した後、サポートAIに「アカウントがハッキングされた」と伝え、任意のメールアドレスに認証コードを送るよう依頼
- そのメールアドレスがユーザーが以前使っていたものかどうかを追加検証なしでコードが送信され、攻撃者がコードを返すとパスワード再設定リンクがそのまま渡されるゼロ認証(zero auth)パスワード再設定
- この復旧フローが所有者本人による完全なアカウント初期化として処理されるため、既存の2FAが回避され、セッション無効化・パスワード変更が通知なしで進行
- 1.5兆ドル規模企業のサポートAIが依頼だけで紐づけメールアドレスを変更してしまうガードレール不在が核心的な問題であり、すでにパッチ適用済みだが数週間〜数か月にわたって有効だった
アカウント乗っ取りの流れ
-
Step 01 — 位置偽装とサポート依頼の開始
- 攻撃開始に必要なのは対象アカウントのusernameひとつだけで、公開プロフィールや「About」セクションなどさまざまな経路からユーザーの位置を容易に把握できる
- 被害者の都市近郊のVPNまたはプロキシで接続し、Instagramのセキュリティアルゴリズムに不審がられないよう、リクエスト元の地域を正常に見せかける
- 正しい地域からのリクエストのように見えれば、MetaサポートAIにアカウントがハッキングされたと伝えたうえで、攻撃者が管理する任意のメールアドレスへ認証コード送信を依頼
-
Step 02 — これで終わり
- 実際これで全部であり、本番環境で確認された初のゼロ認証パスワード再設定事例
- 提供されたメールアドレスがユーザーが実際に使っていたものかどうかについての追加確認はない
- AIが攻撃者のメールアドレスへセキュリティコードを送ると、攻撃者がそのコードを返して検証完了となり、プラットフォームが新しいパスワード再設定リンクを渡して完全な所有権移転が起きる
-
動画セルフィー検証
- InstagramのAIが本人確認用の**動画セルフィー(video selfie)**を要求する場合もあれば、しない場合もある
- 現時点では判別能力が高くなく、対象フィードの公開写真をAIでアニメーション化しただけでも通過すると広く報告されている
2FAでも防げない
- システムがこの高権限の復旧フローを「本物の」所有者による完全なアカウント初期化として扱うため、その過程で既存の2FAが完全に回避される
- 既存セッションは無効化され、パスワードは変更されるが、メール・SMS・プッシュ通知がまったくない
- 実際の所有者はメールアドレスと電話番号がすでに攻撃者に紐づけられていて復旧を開始できず、エスカレーション先もないままチャットと格闘しながら制御権の回復を試みる状況
- A/BテストでAIサポートオプションが有効化されたアカウントに属している場合、そのオプションを無効化することもできない
ブラックマーケットが活況
- 複数のブラックマーケットTelegramグループが高額な料金と短い処理時間を掲げて「アカウント乗っ取り(account takeover)」サービスを提供
- 短いハンドル(short handle)は数十万ドルから数百万ドルに及ぶ価値を持つため、このような市場が形成されるのは驚くことではない
- 実例として
heyのようなアカウントが取引されたり、obamawhitehouse・ocmssf(米宇宙軍最上級下士官のアカウント)のように宣伝(propaganda)用途で悪用されたりしている
現在はパッチ適用済み
- Metaはすでにパッチを適用したようで、Telegramグループも静かになったが、この手法は数週間〜数か月にわたって有効だったとみられる
- 1.5兆ドル規模の企業が堅牢なガードレールを備えないまま、サポートAIが十分に丁寧に頼まれれば誰の紐づけメールアドレスでも変更してしまうという事実そのものが核心的な問題だ
1件のコメント
Hacker Newsの意見
大企業のセキュリティチェーンでは、サポート依頼が常に最も弱いリンクだった。
以前にも人間が2段階認証を無効にして私のアカウントを渡してしまったことがあり、LLMが同じことをするとしても驚くような話ではない気がする。
下級サポート担当が2段階認証の解除をできるという事実自体に腹が立つし、手続きの目的を台無しにしている。
フェイルセキュアならメールを失った瞬間にアカウントは永遠にロックされ、フェイルセーフならメールを失ってもアカウントが永久にロックされることはないが、誰かがその状況を装ってアカウントを奪える。
これは電子ドア制御装置が電源を失ったとき、ドアが閉じたままか開いたままかになるのと同じで、火災時には人が避難できるよう開いている必要があるが、泥棒は電源を切って侵入できてしまう。
停電時に永久ロックされるドアが許されるのは、セキュリティ最優先の極端なケースだけであり、Instagramアカウントは火災時のドアほど重要ではない。
さらに悪いことに、その後サポートシステムを変えたらしい時期に、同じ乗っ取り犯が再び私のアカウントを狙い、実際に数時間は乗っ取られてTwitterアカウントまで侵害された。
これはfElonが大規模解雇を行い、アカウントから電話ベースの2段階認証を削除していた時期と重なっていた。
Crazy DomainsとNewfold Digital(旧EIG)は本当に最悪で、結局fElonがGrokのたわごとに使うために私のOGユーザー名まで持っていき、失うことになった。
[1] https://news.ycombinator.com/item?id=47913341
[2] https://news.ycombinator.com/item?id=47859496
[3] https://news.ycombinator.com/item?id=47856983
緊急で空き容量を確保するためストレージボリュームを削除する必要があったのだが、破壊的な操作なので、ベンダーがこちらの鍵と組み合わせる第2の鍵の役割を果たす形でロックされていた。
私たちはこの設定をきちんと整えたことがなく、私自身も彼らのサポートアカウントにログインしたことすらなかった。
ベンダーは、こちら側の承認済み連絡先2名がその作業を確認しなければならないと言っており、実際の手順はSev1障害を処理していた同僚が私をZoom通話に呼ぶ程度のものだった。
サポート担当は私の2段階認証を求めたが、設定したことがなくメールアドレスも登録されていないので受け取れないと伝えると、外注と思われる担当者はコードをZoomチャットに貼り付け、それを私が読み上げれば十分だと判断して手続きを進めた。
当時は驚きすぎて深く考えられなかったが、彼らが予想される生成コードを見られて、自分たちのシステムに直接入力できるという事実は興味深かった。
結果としてSev1がSev0へ悪化するのは防いでくれたが、全体としてはソーシャルエンジニアリング攻撃や内部犯行に非常に弱い構造だ。
この種の迂回権限を明らかな一次・二次サポート担当に与えることはないだろうし、より高権限へのエスカレーションが必要ではあるものの、時間単位ではなく分単位で処理できる別の形で隠しているのだと思う。
ただ、組織が大きくなるほどこうしたバランスはますます難しくなる。
父のFacebookアカウントはおそらくフィッシングでハッキングされたのだが、取り戻すために連絡できる相手が誰もいなかった。
アカウントを盗んだクズが違法コンテンツまで投稿し、その結果アカウントと約10年分の個人的な思い出が、いかなる救済手続きもなく削除され、Metaの実在の人間と話すことは不可能だった。
あるのは狂ったように役に立たないFAQページだけだった。
自分と家族のすべてのソーシャルメディアアカウントから個人データをダウンロードしてバックアップしておくことを強く勧める。
こういう大企業は、中国製の直送ガラクタ広告やAIゴミTikTokを見せること以外、ユーザーに関心などない。
AIエージェントが、2段階認証の解除、アカウントのメールアドレスの無視、依頼者へのアカウント引き渡しまで可能な特権アクセスを持っていたということか。
正直あまりにもひどい過失で、その「機能」を実装したチームが予定されていたレイオフの前にMetaにできるだけ目立たない損害を与えようとしたのではないかと疑いたくなるレベルだ。
誰かが運用テーブル全削除まで試さなかったのが惜しいくらいだ。
高権限のSREのふりをして致命的な運用バグを解決しなければならず、唯一の解決策がデータベース削除だと主張すればよかったのに。
https://www.cia.gov/static/5c875f3ec660e092cf893f60b4a288df/...
私はInstagramの最初の6000人のうちのユーザーで、文字どおりのユーザー名を数年前に盗まれた
認証済みアカウントのサポートチームは問題を認めたが、何もできないと言った
今回はAIの悪用だが、私のケースでは外注サポートの悪用で、誰かが金を払って私のユーザー名を手動で変更させたうえで、別のユーザーに渡した
責任ある人間のサポートが存在せず、これに違反した従業員に刑事上の結果がないなら、アカウントにアクセスする方法は常に生まれる
紐づいたInstagramアカウントは無事だったが、Meta Verifiedサポートを使おうとすると、すでにサポート割り当てをすべて使い切ったとして、すべてのリクエストを拒否された
銀行が買いに来るまで持ちこたえているところだ
AIが任意のアドレスにメールを送れるツール権限を与えられていたというのは信じがたい
ユーザーの要求に応じて2段階認証コードを送ること自体はあり得るとしても、アカウントに紐づいたアドレスに2段階認証メールを送るボタンだけ押せるべきで、残りは手書きのコードで処理すべきだ
AIが2段階認証コードそのもの、メッセージ件名、本文、受信者アドレスなどにアクセスする理由はない
いったいなぜそんな権限を与えたのかわからない
同じフローは静的にコーディングしても実現できたはずで、実際そうだった可能性もある
ここでチャットボットが実際どれだけやったのかはわからない
今回が必ずそうだというわけではないが、実際に何が起きたのかについては推測がある
これまで見たところでは、Meta AI Support Assistant、つまり「MAISA」には、a) 特定のメール、電話番号、またはアカウントに紐づいた連絡先ポイントへのメール認証を開始するツール呼び出しと、b) メール認証試行に基づいてアカウントのパスワードリセットリンクを生成するツール呼び出しがあったようだ
実際のコードそのものにアクセスしたわけではないが、メール認証試行に対するハンドルまたはIDと、ユーザーが入力した認証コードが「パスワードリセットリンク生成」ツール呼び出しに渡され、そのツール呼び出しがその認証試行に使われたメールがアカウントに属するかを適切に検証できず、アカウント乗っ取りが可能になったのではないかと見ている
MAISAのパスワードリセットリンク生成ツール呼び出しは、アカウントに紐づいていないメールに対応する認証試行が入ってきたら失敗すべきだった
Facebookで似たようなものをテストしたときは実際にエラーになって防がれていたようだが、Instagram側で、攻撃者に乗っ取られたアカウントを復旧できるよう、最近紐づけ解除された少し古いメールも使えるようにする変更を行った可能性がある
そうなると、現在アカウントに紐づいていないメールも使え、ユーザーのデフォルトメールとして設定する必要が生じる
また、MAISAのツール呼び出し変更が誤ったAPIを呼んだか、成功した任意のメール認証試行を使えるようにする何かがあったのに、エンジニアが無関係なメール認証試行をツール呼び出しに入れるエンドツーエンドテストを十分に追加しなかった可能性もある
ここに最も注目すべきだと思う
攻撃者が出力に影響を与えられるエージェントのツール呼び出しは、誰でもアクセス可能な外部APIとして扱い、そのようにテストすべきだ
もちろんこれはすべて推測であり、アカウント復旧の試行の有効性を判断する複数のシグナルを反映しておらず、かなり外れているかもしれないが、Metaのセキュリティを多く見てきた立場からすると、今回の件を可能にしたと考えられる最も近い説明だ
「AIエージェントがパスワードリセットを手伝えるようにしてくれ」と言って、変更に対する人間のレビューがまったくなかったように見える
数年前、私のFacebookアカウントもTOTPベースの2段階認証が無効化されたあとに侵害された
そのときFacebookのセキュリティポリシーにはまったく安心できず、今回の新しい攻撃はその印象を改めて裏づけた
セキュリティサポートにジュニアエンジニアを割り当てるのはばかげている
若い人たちは、セキュリティが時にどれほど致命的になり得るかを十分に理解しておらず、プライバシーもそれほど重視していないからでもある
「本番環境で見た最初のまともな認証なしパスワードリセット」と言っていたが、以前のLinkedInにもそういうものがあった
発見報奨金ができる前だったのか、まともな返答は得られなかったが、結局は修正された
やり方はこうだった
LinkedInは、あるアドレスに送ったメールを読めるなら、そのアドレスはあなたの所有で、アカウントに追加してよいと仮定していた
そこで私があるメールアドレスにLinkedIn招待を送り、相手が招待受諾ボタンを押すと、そのメールアドレスが相手のアカウントに追加された
私が管理するアドレス、たとえば foo@example.com に招待を送ったあと、偽造したメール内の招待ボタンリンクを別の人に送ると、その人がクリックした瞬間に foo@example.com がその人のアカウントにこっそり追加された
友達になったという応答を受け取れば、そのユーザーアカウントに私の知っているメールアドレスが追加されたこともわかり、最初に送った foo@example.com を使って完全なパスワードリセットができた
誰かがメーリングリスト全体を招待し、クリック後にメーリングリストのアドレスが複数人のアカウントに突然追加されたのを見て、これを発見した
「リクエストが正しい地域から来たように見えれば、MetaサポートAIにアカウントがハッキングされたと伝え、攻撃者が支配する任意のメールアドレスに認証コードを送るよう依頼する」とは、Instagramはいったい何をしているんだ
なぜリセットをそのアカウントではなく任意のメールに送るのか理解できない
実際の人間ではなくAIサポートの結果のように聞こえるし、「AIサポートのオプションが有効化されたA/Bテスト対象アカウントに入っていたなら運が悪い、しかもオフにもできない」という状況だ
週末のあいだにInstagramのパスワード再設定メールを15通も受け取った理由が気になっていた
おかげでInstagramアカウントがあることを思い出し、すぐにログインして削除しようとした
Instagramが出たばかりのころに作ったアカウントで、一度も使わず完全に忘れていた
ところが、以前ログインしていた端末でログインしなければならないという妙な状況に引っかかり、10年以上も前のことなので、アカウント作成やアクセスに使ったはずの端末はもう存在しない
アカウントに使ったメールアドレスと電話番号の両方にはアクセスできたが、それだけでは十分ではなかった
あまりに滑稽なほど無能なのでCCPA苦情を出した
電話番号なしで作成され、パスワードも分かっているのに、ログインしようとすると不審なアクティビティとして扱われ、実行可能な復旧フローがない
あまりに多くの悪用が愚かに見えるせいで、自分なら試しさえしなかっただろうと思わされることがいつも少し示唆的だ
単にパスワードを要求すればよくて、それで通るのか?
この件の含意はかなり不安だ
Metaは人間のレビューなしに、ユーザーアカウントに対する特権的な読み書きアクセス権をエージェントに与えていたのか?
狂っている
自分のFacebookの代替アカウントの認証情報の1つが、以前使っていた別の代替アカウントとどういうわけか統合されている
つまり、あるアカウントのメールで別のアカウントにログインでき、この統合はそのまま維持されているようだ
Metaは何らかの形でその2つのアカウントが同一人物のものだと判断したらしい