新たなフィッシング攻撃はGoogle翻訳とIPFS分散型ネットワークを利用
Nicolas Joffre
—4月 20 2023
—1 分で読める
Vade は、Wallet Connect(モバイル暗号通貨ウォレットを分散型アプリケーションに接続するためのオープンソースアプリケーション)になりすまし、InterPlanetary File System(IPFS)分散型ネットワークを使ってGoogle翻訳を悪用し、被害者の暗号通貨ウォレットを侵害する新手のフィッシングキャンペーンを検出しました。
この攻撃では、サイバー犯罪者はソーシャルエンジニアリングの手法を使って、被害者をだまして秘密鍵や個人情報を入手します。ハッカーはこの情報を使って被害者の暗号通貨ウォレットにアクセスしてコントロールします。メールセキュリティシステムは、正当なソースからのURLをブロックしない傾向があります。Googleは評価が高く、広く使用されているため、サイバー犯罪者はGoogleを利用することで検出を回避して、メールユーザーの受信トレイに到達できる可能性を高めます。
攻撃は1分もかからないうちに遂行され、約1,000件のフィッシングメールが送信されました。
最初に検出されたフィッシングメール:2023年3月31日午前10時29分08秒
最後に検出されたフィッシングメール: 2023年3月31日午前10時29分50秒
Vadeが検出したフィッシングの数量
攻撃の仕組み
以下は、キャンペーンで検出されたフィッシングメールのスクリーンショットです。
Wallet Connectになりすましたフィッシングメール
差出人: Crypto Security Update <CyptoManager_2@mail[.]com>
件名: 最終警告:まもなくウォレットアカウントが停止されます
IP: 168.245.59.205 (xvfrpbcd[.]outbound-mail[.]sendgrid[.]net)
このメールは、サイバー犯罪者が被害者に切迫感と恐怖感を与える一般的なソーシャルエンジニアリングの手法が使われています。このケースでは、受信者に自分のウォレットが承認されていないことが通知されています。アカウントの一時停止を回避するには、認証プロセスを完了しなければなりません。このメールは、受信者をだまして悪意のあるURLをクリックさせ、認証情報収集ページに誘導することを目的としています。
このフィッシング攻撃のペイロードは次のURLです。
目を引くのは、「translate[.]goog/」というGoogle翻訳機能を指す文字列です。
この書き換えられたURLにたどり着くために、ハッカーはベースURLを変換しなければなりません。ベースURLは、フィッシングページのソースコードに組み込まれています。
ハッカーは、Google翻訳を介してオプション「ウェブサイト」を使用してドメインを翻訳します。
Webサイト翻訳用のGoogle翻訳ページ
その後、Google翻訳がURLを書き換え、攻撃者はそれを使ってフィッシングキャンペーンを送信します。
URLを詳しく調べると、文字列「[.]ipfs[.]dweb[.]link」が表示されます。これは、攻撃者がIPFSの分散型ネットワークを利用してフィッシングキットをホストしていることを示しています。
IPFSはWEB3.0テクノロジーの一部です。これは、ここ数年で登場したピアツーピア(P2P)ネットワーキングに基づく分散型ストレージおよび配信ネットワークです。IPFSを使用すると、世界中のユーザーがファイルを交換できるため、サイバー犯罪者にとって魅力的な標的となっています。
集中型システムとは異なり、IPFSはファイルパスではなく一意のコンテンツ識別子(CID)に従って実行されるアドレス指定を使用します。デフォルトでは、ファイルをIPFSにアップロードしたりダウンロードしたりするには、特別なソフトウェア(IPFSクライアント)が必要です。ただし、被害者は、プロキシとして使用されるゲートウェイのおかげで、デバイスでIPFSクライアントが実行されているかどうかにかかわらず、ファイルを開くことができます。それがこのフィッシングキャンペーンの仕組みです。
さらに、IPFSのおかげで、サイバー犯罪者はフィッシングキットの保管費用を負担する必要がありません。また、第三者がアップロードしたファイルを削除することもできません。システムからファイルを削除できるのはオーナーだけです。
フィッシング URL に戻ると、使われているIPFSアドレスの形式が次のようになっていることがわかります。
http://<cid>.ipfs.<gateway host>/<path>.
ID |
値 |
<cid> |
bafybeihgz6fcprtblzi3emabeiw734ebiqxouqzqxhgr4edkpgtz3fs6a4 |
<gateway host> |
dweb[.]link |
<path> |
btcmin[.]htm |
では、フィッシング犯が悪意のあるURLを作成した方法をまとめましょう。
- 彼らはIPFSの分散型ネットワークを利用してフィッシングキットをホストしている。
- その後、Google翻訳を使用してURLを高権限ドメインで書き換え、URLの検出を回避した。
ハッカーは、Google翻訳を使ってIPFSのURLのパターンを変更した可能性もあります。Google翻訳のおかげで、URLの形式が「http://<cid>.ipfs.<gateway host>/<path>」から、[.]を[-]に置き換えて「http://<cid>[-]ipfs[-]<gateway host>/<path>」に変わります。このようにして、攻撃者はメールでIFPSのURL形式を識別する可能性があるセキュリティシステムを回避します。
被害者が悪意のあるリンクをクリックすると、アプリケーションがロボットではないかどうかの検証作業をしていることを示すページが表示されます。Google翻訳のバナーには、ページ上のテキストが翻訳されたことが示されているため、そのページは正当なものに見えます。
偽の検証Webページ
コードを見れば、検証プロセスがないことがわかります。ここでの目的は、被害者がそのページを信頼できるものと見なすように仕向けることです。フィッシングページのHTMLを確認すれば、3つのノード、つまりデータ構造で構成されていることも分かります。
- firstgoat
- secondgoat
- thirdgoat
ノードfirstgoat
最初のノードは、偽の検証画面を5秒間表示します。攻撃者は CSSプロパティを使って被害者に何を表示するかを決定します。
ここでは、CSSプロパティ「display: block」によって、ノード「firstgoat 」が表示されます。
ノードsecondgoat
2番目のノードは、フィッシングページを被害者に表示します。
Connect Walletのフィッシングページ
最初のノードを削除して2番目のノードに置き換えるために、攻撃者はJavascriptとCSSのプロパティを組み合わせて使用します。
このコードは、CSSプロパティ「css('display', 'none') 」により、5秒後に最初のノードを非表示にします。次に、2番目のノード(secondgoat)が画面に表示されます。ハッカーは、以下のJavascriptとCSSを使って、いつ、どのコンテンツを表示するかを決定します。
攻撃のこの段階では、2番目のノードのみが表示されます。ユーザがフィッシングページで 「Connect Wallet」をクリックすると、次のコマンドが実行され、1番目と 2番目のノードが非表示になり、3番目のノードが表示されます。
新しいページには、被害者が接続できる21個のなりすまし暗号通貨ウォレットのリストが表示されます。
なりすましの暗号通貨ウォレットをリスト表示する偽のウィンドウ
被害者が接続する暗号通貨ウォレットを選択すると、フィッシングページにウォレットのサービスとの接続をシミュレートするウィンドウが表示されます。
暗号ウォレットとの接続をシミュレートする偽のウィンドウ
次に、ページが更新されて別のウィンドウが表示されます。今度は被害者に、リカバリフレーズ、キーストアJSON、秘密鍵などのウォレットの認証情報を入力するように指示します。Vadeの研究者は、この攻撃で使用されたフィッシングキットが2022年のキャンペーンに登場したことを確認しています。
認証情報を収集するためのフィッシングページ
被害者の個人情報を盗むために、フィッシングページはJQueryと Ajaxを使用します。以下は、悪意のあるページのコードです。
上記のコードスニペットのさまざまな要素を検討してみましょう。
- dataType:'JSON':サーバーから返されると予想されるデータの種類。
- url: リクエストの送信先URLを含む文字列。
- type: 'POST':httpリクエスト(POST)の種類。
- data:サーバーに送信されるフォームのデータ、つまり被害者の個人情報。
特に、URLはエンコードされていると思われます。atob()メソッドは、base-64でエンコードされた文字列をデコードします。それをデコードすると、被害者の個人情報を盗むために呼び出されたスクリプトは「hxxps[://]waitakimotorcamp[.]co[.]nz/collab/」にある「phrase[.]php」であるとわかります。
スクリプトをさらに詳しく見ると、被害者が個人情報を提供した後にリダイレクトされる場所もわかります。
被害者が不審に思うのを避けるために、被害者をwww.walletconnect.comのWebサイトにリダイレクトします。
モバイルデバイスに対するフィッシング攻撃
ここまでは、デスクトップコンピュータの観点から攻撃を検討してきました。では、フィッシング攻撃がモバイルデバイスでどのように表示されるかを確認しましょう。次の画像は、3つのノードがそれぞれ表示されている場合のフィッシングページの表示です。
モバイルデバイスで表示されたフィッシングキャンペーン
ご覧のとおり、2番目のノードが表示されると、何かが浮き上がって表示されます。1番目と3番目のノードとは異なり、2番目のノードはCSSプロパティのおかげで、Google翻訳のトップバーのコンテンツを隠せます。このトリックにより、このフィッシングページは、Google翻訳のトップバーが表示されていることを不審に思うユーザーに対して説得力を増すことができます。
フィッシング攻撃から身を守る方法
結論として、このフィッシング攻撃は、さまざまな高度な手法と戦術を用いています。
- 被害者を操作するためのソーシャルエンジニアリングの手法。
- 被害者の受信トレイにアクセスするために、正当なサービス(Google翻訳)を悪用。
- InterPlanetary File Systemを利用したフィッシングホスティング。
- JavaScriptおよびCSSの難読化手法。
このキャンペーンは、Googleのサービスや企業になりすますフィッシング活動が最近急増したことを受けたものです。Vadeは、正当なYouTubeのアトリビューションリンクとCloudflareのCAPTCHAを使って検出をすり抜ける新しいフィッシングキャンペーンを検出しました。これは、サイバー犯罪者が正当な信頼できるサービスを悪用する傾向が強まっていることを示しています。また、組織と消費者がユーザーの認識と警戒を強化する必要があることも示しています。
保護された状態を保つために、適切なサイバー衛生に常に注意を払いましょう。メールを使ってアカウントにログインするのはやめましょう。フィッシングの疑いのあるメールを見分けて対処し、報告する方法について自分自身と従業員を教育しましょう。これには、先の攻撃でのGoogle翻訳の使用などの異常や一風変わったものに見えるものすべてを精査することが含まれます。さらに、Google WorkspaceやMicrosoft 365が提供する基本的なメールセキュリティを、統合されたサードパーティソリューションで補完しましょう。インシデント対応能力を強化し、高度なフィッシング攻撃をブロックできるソリューションを探しましょう。