CAPTCHA解読サービスや住宅用プロキシを使ってWebサービスを悪用する攻撃者
攻撃者が住宅用プロキシやCAPTCHA解読サービスを介して、アンチスパム対策、アンチボット対策、不正利用防止対策を回避する三つのケーススタディを紹介します。
今日のオンラインサービスでは、Webトラフィックが人間によるものか、自動化されたボットによるものかを判断することは必要不可欠な作業です。この作業により、スパム、不正なWebクローリング、偽アカウントの大量登録、捏造されたコメントやレビューの大量発生を防止することができます。そして何よりも重要な点として、ボットに起因するWebトラフィック攻撃を排除することが可能です。ボットを排除するためのツールとして一番に挙がるのは、CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)でしょう。
CAPTCHAは、チャレンジ&レスポンス認証の一種で、理論上、人間だけが通過できる認証テストです。一般的なCAPTCHAは、テクスチャを含む背景と曲がりくねった数字や文字で構成されており、ユーザはそれを識別してテキストボックスに入力する必要があります。より高度なCAPTCHAチャレンジでは、信号機や車等、特定のオブジェクトを正方形の画像から識別することが求められます。
数字や文字のようなシンプルなCAPTCHAは、光学式文字認識技術(OCR)によって突破されることがあります。一方、ねじれた文字のような難易度の高いCAPTCHAは、ML(機械学習)によって強化された自動ソルバーによって突破される可能性があります。このように、様々な手法でCAPTCHAが解読されてしまうため、グリッド内の特定のオブジェクトを識別させるもの、またオブジェクトを正しい位置に回転させるもの等、より高度なCAPTCHAチャレンジも開発されています。しかし、自動生成されたWebトラフィックにおいて、ボットではなく人間によるCAPTCHAソルバーを使用してCAPTCHAを突破する手口が出現しており、オンラインサービス事業者はさらなる課題に直面しています。
CAPTCHA解読サービスの台頭
攻撃者のCAPTCHAを突破しようとする需要を満たそうとして、複数のサービスが開発されてきています。これらのCAPTCHA解決サービスでは、OCR技術や高度な機械学習は使用せず、CAPTCHA解読作業を実際の人間に委託することで、この需要に対応しています。
このようなサービスでは、以下のような簡潔なワークフローを採用しています。
1. CAPTCHA解読サービスの利用者が、CAPTCHAに遭遇する
2. 利用者は、そのCAPTCHAをCAPTCHA解読サービスに送信する
3. CAPTCHA解読サービスは、人間の解読者にタスクを委託する
4. 人間の解読者がCAPTCHAを解き、その解答を利用者に提出する
5. 利用者は、CAPTCHAの解答を受信する
CAPTCHA解読サービスの利用者は、シンプルなAPIコールで上記ワークフローにアクセスすることができます。利用者は、CAPTCHAの解読タスクを人間に委託する複雑な作業を自ら行う必要はありません。APIを呼び出し、CAPTCHAを送信するだけです。その後、別のAPIを呼び出しCAPTCHAの解答を得ます。
https://captcha-solving-service.com/in.php?key=APIKEY&method=userrecaptcha&googlekey=6Le_xxxxxx__mJ
&pageurl=https://target.domain/homepage.html
OK|01234567890
OK|CAPTCHA_SOLUTION_HASHES
このため、CAPTCHA解読サービスの利用者は、対象のオンラインWebサービスに対応する自動化ツールを容易に開発することができます。また、実際の人間がCAPTCHAを解いているためCAPTCHAの効果は失われ、ボットトラフィックをフィルタリングすることはできなくなります。
しかし、CAPTCHAだけが自動生成のボットトラフィックを防ぐ手段ではありません。IPアドレスのブロックリスト化など、他の手段を採用することも可能です。一方で、ボットの運営者もIPアドレスのブロックリスト化を回避するための手段を複数有しています。中でも、プロキシウェアは多用される手段です。
プロキシウェアによる発信元IPの難読化
プロキシウェアは、フリーソフトウェアとして配布されていますが、潜在的なリスクを有するアプリです。このようなアプリは、密かに一般ユーザのコンピュータをプロキシノードへと変更します。複数のプロキシノードを作成することで、地理的に分散されたプロキシノードネットワークが形成されていきます。
つまり、これらのプロキシノードは住宅用ブロードバンドサービスを介してインターネットに接続するユーザのコンピュータ上に存在していますが、これらは、違法なWebトラフィックをルーティングする目的で使用される可能性があります。プロキシウェアはユーザをリスクや脅威にさらす危険性があるのです。
国際的に広がったプロキシノードネットワークの運営者は、多くの場合、プロキシサービスを住宅用プロキシとして一般に販売します。攻撃者は、このようなプロキシサービスを購入し、CAPTCHA解読サービスと組み合わせることにより、オンラインWebサービスが実装しているアンチスパム対策、アンチボット対策、また不正利用防止対策を回避します。CAPTCHA解読サービスの標的となった顕著な例(図1参照)を以下三つのケーススタディを用いて解説します。
ケーススタディ1: Poshmark
Poshmarkは、ファッション、ホーム、電気機器等さまざまなアイテムをユーザ同士で売買できる人気のソーシャルコマースマーケットプレイス(フリマアプリ)です。ソーシャルメディアの活用によりユーザとの交流を促進し、最終的に同プラットフォームから購入するように誘導します。
「Poshmarkショップ」の宣伝活動に長けた販売者は、月に数100ドルから1,000ドル以上の高収入を得ることができます。Posherとも呼ばれるPoshmarkの販売者は、購入者に彼らの「ショップ」を宣伝するために、様々なツールを使用することも可能です。これらのツールは、ショップのホームページや商品一覧のシェアをしたり、フォローバックや「シェアバック」をする等、Poshmarkにおける多くのプロモーションタスクを自動化することができるボットです。このようなボットの挙動に対しては、Poshmarkの不正使用防止セーフガードが発動され、CAPTCHAが表示されます。
そして、このような「Poshmarkボット」の最も注目すべき機能は、CAPTCHAを突破することです。これらのボットが販売者のプロモーションタスクを自動化するためには、当然のごとくCAPTCHA解読機能を内蔵している必要があるといえます。そうでなければ、大した自動化にはならないでしょう。さまざまなPoshmarkボットの機能を評価し、その機能に応じてランク付けするWebサイトまでも存在しています。
トレンドマイクロの観察によると、PoshmarkのWebサイトのCAPTCHAを対象として、多数のCAPTCHA解決タスクリクエストが送信されていることが判明しました。これらは、ある既知のCAPTCHA解読サービスに対して送られていました。収集したデータによると、これらのCAPTCHA解決リクエストは、既知のPoshmarkボットから発信されたものでした。
なお、これらのCAPTCHA解決リクエストが、プロキシウェアネットワークを経由していることは注目に値します。Poshmarkボットの運営者は、CAPTCHAを自動で突破することに加え、プロキシウェアユーティリティを使用することで発信元IPを難読化しています。これは、スパム対策を回避するための追加策です。
今回のケースでは、Poshmarkがブロックしている広告ツールであるPoshmark Pro Toolsが悪用されました。このツールは、一定の料金を支払うことでユーザのPoshmarkのタイムライン上で服や靴、アクセサリーを宣伝し、Poshersが入札する確率を高めます。このような自動プロモーションツールをブロックするために、PoshmarkはreCAPTCHA機能を使用することにより、ボットではなく、人間が商品を宣伝していることを確認しています。これに対し、Poshmark Pro Toolsは、2Captcha CAPTCHA解決サービスを利用して、reCAPTCHA機能を突破し、ボット活動を隠蔽します。
ケーススタディ2:Murakami.Flowers NFT
Murakami.Flowersは、人気アーティストである村上隆が発行したNFT(非代替性トークン)のセットです。2022年4月に、事前登録したユーザを対象に販売が行われました。人気アーティストのNFTであること、また比較的希少なNFTコレクションであることから、非常に貴重なセールであったといえます。
主催者は、Mukramami.Flowers NFTの購入希望者ができるだけ公平にセールに参加できるよう、以下のガイドラインを定めていました。
1. NFTコレクターは、Murakami.FlowersのWebサイトにおいてメールアドレスを登録する必要があります。
2. 登録後、NFTコレクターは、ウォレット及びユーザ名の登録Webサイトへのリンクを含む電子メールを受け取ります。
3. このウォレット及びユーザ名の登録は、NFTコレクターの抽選へのエントリーとして機能します。この抽選は、すべてのNFTコレクターに対し、Murakami.Flowers NFTをミントまたは購入する機会を公平に与えられるように意図されたものです。
パブリックミント実施後、このNFTは流通市場にも出回るようになります。
すでに抽選の開始前から、主にMurakami.Flowersの電子メール登録サイトを対象としたCAPTCHA解読行為(図3の赤数字)が多数確認されました。これらの行為は、Poshmarkのケースと同じCAPTCHA解読サービスを利用して行われていました。さらに、Poshmarkのケース同様、攻撃者の発信元IPアドレスを隠すためにプロキシウェアユーティリティを使用していることが判明しました。
なお、Murakami.Flowersに関連する攻撃者を特定することはできませんでした。しかしこれらの攻撃者は、より低い価格(0.108イーサリアム)でNFTを購入する資格を得るために、登録作業を行い抽選に参加したと推測されます。攻撃者の狙いは、NFTの転売により利益を上げることだったと想定されます。本NFTは、過去に5イーサリアムまで価格が上昇したことがあり、転売が成功すればおよそ50倍もの利益を上げることができた可能性があります。
ケーススタディ3:Crypto Faucetsからの収益の最大化
Crypto Faucets(クリプトフォーセット)とは、ユーザが簡単なタスクを行う対価として、少額の暗号資産を報酬として与えるアプリやWebサイトを指します。これらは多くの場合、記事を読む、ビデオを見る、広告を見る、ゲームをする、クイズに答える等、シンプルでわかりやすいタスクです。ただし、ユーザにリンクや広告を選択させたり、CAPTCHAを解読するよう求めるタスクの場合、時としてリスクを伴います。
フォーセットから得られる利益を最大化するために、マーケットで入手可能なボットを使用することでフォーセットのタスク実行を自動化しようと試みる攻撃者も存在します。しかし、フォーセットのWebサイトは、ボットと思しき挙動を抑制するために、Webサイト上にCAPTCHAチャレンジを組み込む等、スパム対策を実施しています。その結果、この対策に対抗するためのCAPTCHA解読サービスの需要が高まりました。
トレンドマイクロでは、既知のフォーセットサイトのCAPTCHAを標的とした CAPTCHA解読活動を観察しています。観測されたCAPTCHA解読のWebトラフィックは、主にログインページを標的としていました。ログインページは、CAPTCHAチャレンジが通常配置されている場所です。また、観測されたWebトラフィックでは、その頻度と特徴から、ボットが使用されたことが示唆されています。
まとめ
CAPTCHAは、スパムやボットの不正使用を防止するための一般的なツールですが、CAPTCHA解読サービスの利用が増加したことによりCAPTCHAの効果が薄れています。オンラインWebサービス提供者は攻撃者の発信元IPをブロックすることもできますが、プロキシウェアの悪用が増加しており、この方法もCAPTCHAと同様に効果が弱まっています。
そのため、オンラインWebサービスでは、CAPTCHAの使用や発信元IPのブロックに加えて、他の不正使用防止ツールを使用することが不可欠となっています。これらの不正使用防止ツールは設計どおり機能しますが、一方で、攻撃者はいとも簡単にCAPTCHAを突破するために作られた専用の有料サービスを購入することができます。このような有料サービスが時の経過とともに安価になるにつれ、攻撃者がこれらを悪用する価値は高まるでしょう。CAPTCHAとIPブロックを、より強固なセキュリティ対策で補うべき時が既に到来しています。具体的なセキュリティ対策については、次回のレポートで詳しく解説します。
参考記事
Abusing Web Services Using Automated CAPTCHA-Breaking Services and Residential Proxies
By: Joey Costoya
翻訳:新井 智士(Core Technology Marketing, Trend Micro™ Research)