CAPTCHA(コンピュータと人間を区別するための完全に自動化された公開チューリングテスト)は、もともとボット、マルウェア、人工知能(AI)が Web ページとやり取りするのを防ぐために設計されました。 90 年代には、これはスパム ボットを防ぐことを意味していました。 最近では、組織は、クレデンシャルスタッフィングなどのより悪質な自動攻撃を防ぐために CAPTCHA を使用しています。
しかし、CAPTCHA が導入されるとすぐに、サイバー犯罪者はそれを回避する効果的な方法を開発しました。 善良な人たちは「強化された」CAPTCHA で応答しましたが、結果は同じでした。自動化を阻止しようとするテストは自動化によって回避されました。
CAPTCHA を破る方法は複数あります。 一般的な方法は、開発途上国の低コストの人力を活用して CAPTCHA 画像を解読する CAPTCHA 解読サービスを利用することです。 サイバー犯罪者は CAPTCHA ソリューションのサービスに加入し、API を介して自動化ツールに統合して、対象の Web サイトに回答を入力します。 こうした怪しい企業は至る所に存在しており、Google で簡単に検索すれば、次のような企業が数多く見つかります。
この記事では、2Captcha を使用して、攻撃者がソリューションを統合してクレデンシャル スタッフィング攻撃を組織化する方法を説明します。
2Captcha.com のサイトにアクセスすると、以下の画像が表示され、1) 2Captcha で働くか、2) 2Captcha をサービスとして購入するかを尋ねられます。
2Captcha で働くには、アカウントを登録し、支払い入金用のメールアドレスと PayPal アカウントを入力するだけです。 テスト中、アカウントは数分以内に検証されました。
新しい従業員は、CAPTCHA を素早く解く方法を教える 1 回限りのトレーニング コースを受講する必要があります。 大文字と小文字が区別される場合と区別されない場合などのヒントも提供します。 十分な精度でトレーニングを完了すると、労働者は収入を得始めることができます。
「作業を開始」を選択すると、作業者は上に示すワークスペース画面に移動します。 次に、作業者に CAPTCHA が提供され、解決策を送信するように求められます。 正しく解くと、お金は電子「財布」に預けられ、作業者はいつでも支払いを要求できます。 ワークスペースに表示される CAPTCHA の数には終わりがないように見え、サービスに対する安定した需要があることを示しています。
2Captcha 作業員は、Uber のドライバーが優れたサービス (顧客評価) を提供するようインセンティブを与えられるのと同じように、正しい解答を提出するようインセンティブを与えられま す。 2Captcha の顧客は、受け取った CAPTCHA ソリューションの精度を評価します。 2Captcha ワーカーの評価が一定の基準を下回ると、そのワーカーはプラットフォームから排除されます。 逆に、最も高い評価を得たワーカーは、需要が低いときに CAPTCHA の配布で優先権を得ることで報酬を得られます。
2Captcha をサービスとして使用するには、顧客 (つまり、攻撃者) が 2Captcha API を攻撃に統合してデジタル サプライ チェーンを作成し、ターゲット サイトから CAPTCHA パズルを自動的に入力し、ターゲット サイトに入力するソリューションを受け取ります。
2Captcha は、C#、JavaScript、PHP、Python など、さまざまなプログラミング言語で API 呼び出しを生成するためのサンプル スクリプトを便利に提供します。 Python で記述されたサンプル コードを以下に再現します。
攻撃者はクレデンシャルスタッフィング攻撃で 2Captcha をどのように使用するのでしょうか? 以下の図は、CAPTCHA バイパス プロセスでさまざまなエンティティがどのように相互作用するかを示しています。
Selenium や PhantomJS などの Web テスト フレームワークと組み合わせると、攻撃者は人間のようにターゲットの Web サイトと対話しているように見せかけ、多くの既存のセキュリティ対策を効果的に回避して、クレデンシャル スタッフィング攻撃を開始できます。
このような優れたソリューションが導入された場合、金融エコシステムはどのようになり、各当事者はどのようにして収益を得るのでしょうか?
CAPTCHA ソルバーとして働くことは、決して儲かる仕事ではありません。 2Captcha の Web サイトで提供されている指標に基づいて、次の支払額を計算することができます。
CAPTCHA 1 つあたり 6 秒かかると仮定すると、作業者は 1 分間に 10 個の CAPTCHA、つまり 1 時間あたり 600 個の CAPTCHA を送信できます。 1 日 8 時間で 4,800 個の CAPTCHA になります。 2Captcha の従業員としてトライアル中に稼いだ金額 (ソリューション 1 つあたり約 0.0004 ドル) に基づくと、これは 1 日あたり 1.92 ドルに相当します。
これは先進国の人にとっては時間の無駄ですが、1日数ドルで比較的稼げる地域に住んでいる人にとっては、CAPTCHA 解決サービスは簡単にお金を稼ぐ方法です。
攻撃者は、サードパーティの 2Captcha に CAPTCHA ソリューションを 1,000 個単位で支払います。 攻撃者はソリューションに入札し、バンドルごとに 1 ドルから 5 ドルを支払います。
多くの攻撃者は、CAPTCHA 解決サービスを、より大規模なクレデンシャル スタッフィング攻撃のコンポーネントとして使用しており、その費用は正当化されます。 たとえば、攻撃者がターゲット サイトの Pastebin から 100 万件の資格情報をテストする攻撃を開始しているとします。 このシナリオでは、攻撃者は資格情報のセットごとに 1 つの CAPTCHA を回避する必要があり、コストは約 1,000 ドルになります。 認証情報の再利用率が 1.5% であると仮定すると、攻撃者は 15,000 を超えるアカウントを取得し、そのすべてを収益化することができます。
2Captcha は、1000 CAPTCHA ごとに攻撃者から支払いを受け取ります。 前述のように、顧客 (つまり攻撃者) は CAPTCHA 1,000 個あたり 1 ~ 5 ドルを支払います。 2Captcha のようなサービスは入札価格から一部を徴収し、残りを人間の労働者に分配します。 CAPTCHA 解決サービスは大規模なソリューションとして使用されるため、利益は順調に増加します。 2Captcha が CAPTCHA を 1,000 個解決するごとに 1 ドルしか受け取らないとしても、1 バンドルあたり最低 60 セントの利益が得られます。 これらのサイトの所有者は開発途上国にいることが多いため、一見低い収益でもかなりの額になります。
今年3月、Googleは「Invisible reCAPTCHA」と呼ばれるreCAPTCHAのアップグレード版をリリースしました。 すべてのユーザーに悪名高い「私はロボットではありません」ボタンをクリックさせる「no CAPTCHA reCAPTCHA」とは異なり、Invisible reCAPTCHA では、既知の人間のユーザーは通過でき、疑わしいユーザーにのみ reCAPTCHA 画像チャレンジが表示されます。
攻撃者はテストされているかどうか分からないので、これでは困惑するだろうと思われるかもしれません。 しかし、Google が Invisible reCAPTCHA を導入したわずか 1 日後に、2CAPTCHA はそれを破る方法についてブログ記事を書きました。
Google がユーザーが人間であることを認識する方法は、ユーザーが要求されたページを以前に訪問したかどうかであり、Google はブラウザの Cookie をチェックしてこれを判断します。 同じユーザーが新しいデバイスの使用を開始したり、最近キャッシュをクリアしたりした場合、Google にはその情報がないため、reCAPTCHA チャレンジを発行せざるを得なくなります。
攻撃者が 2Captcha を使用してクレデンシャル スタッフィング攻撃を自動化するには、CAPTCHA チャレンジを保証する必要があります。 したがって、Invisible reCAPTCHA を回避する 1 つの方法は、攻撃スクリプトにコード行を追加して、リクエストごとにブラウザをクリアし、解決可能な reCAPTCHA チャレンジを保証することです。
Invisible reCAPTCHA の少し厄介な点は、CAPTCHA チャレンジが隠されていることです。ただし、回避策があります。 CAPTCHA は、「要素の検査」ブラウザ ツールを使用して「見つける」ことができます。 そのため、攻撃者は、隠された CAPTCHA が配置されている場所を詳細に示すパラメータを含む POST を 2Captcha に送信できます。 攻撃者が 2Captcha から CAPTCHA ソリューションを受け取ると、Invisible reCAPTCHA は、次の 2 つの方法のいずれかで自動化によって破られる可能性があります。
Invisible reCAPTCHA が回避できるのは、新しい CAPTCHA の設計に致命的な欠陥があったからではありません。 それは、合格条件が分かっている場合、逆チューリングテストは本質的に破ることができるということです。
CAPTCHA が存在する限り、2Captcha のようなサービスが存在し続けるでしょう。なぜなら、経済的に犯罪者にとって非常に有利だからです。 低コストの人的労働力を利用することで、事業コストを最小限に抑え、サイバー犯罪者は大規模に数百万ドルを超える利益を獲得できるようになります。 また、世界には常に人件費の安い地域が存在するため、2Captcha 側では需要が一定であるため供給が一定に保たれます。
このアプローチ全体には根本的な限界があるため、世界はより優れた CAPTCHA を開発する必要はありません。 代わりに、これらの制限を認識し、パス条件が不明であるか、少なくとも攻撃者が確認するのが困難な場合に防御を実装する必要があります。
ホームズ、タマラ E. 「プリペイドカードとギフトカードの統計」 CreditCards.com 。 Creditcards.com、2015年12月1日。 ウェブ。
ハント、トロイ。 「自動化された人間による CAPTCHA の突破」 ブログ投稿。 トロイ・ハント。 トロイ・ハント、2012年1月22日。 ウェブ。
本山、マルティ、キリル・レフチェンコ、クリス・カニッチ、ステファン・サベージ。 返信: CAPTCHA - 経済的背景における CAPTCHA 解決サービスの理解。 第 19 回 USENIX セキュリティ シンポジウム議事録、ワシントン DC。印刷。