1 ポイント 投稿者 GN⁺ 2023-12-23 | 1件のコメント | WhatsAppで共有

発見の経緯

  • WhatsAppでリンクプレビュー機能を通じてHTTPリクエストを実行する方法を調査した。
  • リンクとプレビューが別々に送信されることを確認し、これを利用して実際のリンクとは異なるプレビューを持つメッセージの生成に成功した。

問題点 #1 - リンクプレビューの不一致

  • WhatsAppメッセージに含まれるリンクとプレビューデータを分析し、不一致を作り出す方法を模索した。
  • メッセージを傍受して改変し、プレビューと実際のリンクが異なるメッセージの送信に成功した。

問題点 #2 - リンク偽装(2K2E)

  • Unicode文字を使ってテキスト表現を変更する方法を実験した。
  • U+202E(Right-To-Left Override)文字を使用してリンクを逆順に表示し、これによって偽のURLを本物のURLのように見せる方法を開発した。

最終結果

  • Instagramに見えるURLを作成したが、実際には攻撃者のブログへ接続されるリンクを生成した。
  • これにより、ユーザーが正規のリンクだと勘違いしてクリックしてしまう脆弱性を発見した。

攻撃シナリオ

  • 攻撃者が偽ドメインを購入し、正規ドメインのプレビューを使うメッセージを生成する。
  • matchedText 属性を削除し、text 属性をU+202E文字と偽URLに変更してメッセージを改変する。
  • このように改変されたメッセージを被害者に送信する。

Metaの反応

  • Metaはさまざまなプラットフォームと環境をサポートしているため、URL正規化ロジックを動的に調整できるシステムを持っている。
  • しかしMetaはこのセキュリティ問題を解決する意思がなく、スパムとして検知された場合にのみ対応するように見える。

緩和策

  • Metaにこの問題を解決する意思がないため、WhatsApp上のリンクは信頼できない。
  • リンクをクリックする前にコピーし、クリップボードのプレビューでU+202E文字が浄化されたリンク先アドレスを確認する必要がある。

アップデート

  • WhatsApp以外にも、適切な浄化が行われておらず、2K2Eに脆弱な他のサービスがある。

GN⁺の見解:

  • この記事で最も重要なのは、WhatsAppで発見されたクリックジャッキング脆弱性であり、ユーザーに実際のリンクとは異なる偽リンクをクリックさせる攻撃手法が詳しく説明されている点である。
  • この記事が興味深い理由は、一般に信頼されているメッセージングプラットフォームで予想外のセキュリティ脆弱性が見つかったことであり、リンクをクリックする前に常に注意を払うべき理由をユーザーに思い出させるためである。
  • また、Metaの反応はこの問題を積極的に解決する意思がないことを示しており、ユーザー自身がセキュリティにさらに注意を払う必要性を強調している。

1件のコメント

 
GN⁺ 2023-12-23
Hacker Newsの意見
  • 機能の悪用を巧妙に組み合わせたものだが、攻撃者が警察や情報機関などでない限り追加の攻撃が必要になるため、セキュリティへの影響は低いと評価する。技術的な正確さのために言うと、これを「クリックジャッキング」と呼ぶのは適切ではないと思う。クリックジャッキングは特定の技術を指し、見えないHTMLフレームを別のコンテンツの上に重ねることを意味する。
  • クリックジャッキングとは、ユーザーがクリックしようとしている要素ではなく別の要素がクリックイベントを奪うことを指す。攻撃者はユーザーが何をクリックしたかを把握できる。OPが見つけたものは見事で、実際にはクリックジャッキングではない別の仕組みでリンク表示を変更する方法を見つけている。
  • ユーザーはリンクをクリックする際にドメインを認識するのに苦労しており、多くの人は理解できないか見分けられない。リンクは追跡可能で怪しく見えるのに、誰も問題を提起しない。
  • Metaは、メッセージのURLとプレビューのURLが異なる可能性がある問題を認め、解決策を用意すべきだ。これはURL短縮の展開のためかもしれないが、MetaとWhatsAppなら賢い解決策を用意できるはずだ。
  • 問題はWhatsAppやUnicodeの逆順文字ではなく、URLそのものが難しいことだ。visa.securesite.comのような単純なURLでさえ多くの人をだませる。近い将来によい解決策が出るとは思えない。
  • Metaがこの問題を解決せず、研究者にバグバウンティを支払わなかったことに失望している。
  • この攻撃が「リバースエンジニアリング」に分類されたのは興味深い。
  • RTLは存在している間ずっと大きなセキュリティ脆弱性の原因だった。RTLを使わない人が危険にさらされないよう、OSにはRTLを無効化する設定があるべきだ。
  • この攻撃はとても見事で、文章も読みやすく理解しやすい。WhatsAppのWebアプリでデバッガーを使ったのか、スマホに適用したのか、エミュレーターを使ったのかといった基本的な疑問がある。
  • 興味深いアイデアと脆弱性を共有してくれてありがとう。簡潔で明快な要約だ。
  • リンクとプレビューが別々に送信されることが確認された。ユーザーが安全のためにリンクとプレビューを比較しなければならないUI設計のほうが、より大きな問題だ。