映画やテレビ番組は、コンピュータ ハッカーを困難なタスク、詳細な筋書き、精巧な計画と関連付けることを教えてくれました。
セキュリティ研究者の Carlos Fernández と私がオープンソース レジストリで最近見つけたものは、別の話をしています。また、悪意のあるコードを次のレベルに引き上げるために、ChatGPT によって支援される新しい機能も追加しています。
Software-as-a-Service ( SaaS ) と同様に、 DuckLogs 、 Redline Stealer 、 Racoon Stealerなどの Malware-as-a-Service (MaaS) 製品がアンダーグラウンド市場で非常に人気になった理由の一部は、それらがアクティブなカスタマー サポート チャネルとその製品は、洗練されたユーザー フレンドリーな傾向があります。これらのボックスにチェックを入れ、このフォームに記入し、このボタンをクリックしてください。すぐに使用できるマルウェア サンプルです。言うまでもなく、これらの製品は多くの場合、プロのサイバー犯罪者によって構築されています。
Discordトークン グラバーZ3USなど、私たちが実際に見つけたあまり人気のない MaaS 製品では、人間中心の設計原則を取り入れようとしていますが、製品はカスタマー サポートで失敗しています。関連する Telegram アカウントは、ほとんどが 10 代の若者によって操作および消費されており、「生涯保証」の約束が守られていないため、苦情や敵対的な「仲間の話」でいっぱいです。
ソナタイプに入社する前から、現代のサイバー犯罪の様相はどうなっているのだろうと思っていました。そして、世界中の一連のキャンペーンや悪意のある人物を追跡しているうちに、何かが明らかになりました。セキュリティ研究チームが私の注意を引いた悪意のあるパッケージのほとんどは、パーカーを着た風変わりな天才の産物ではありません。モニターでいっぱいの暗い地下室からのコーディング。 MaaS の単純な性質のおかげで、最小限のセットアップ コストと技術的な知識で、誰でも簡単にマルウェアサンプルを作成してオープンソース レジストリにアップロードできます。
アバストの研究者は、進行中の Covid-19 パンデミックが始まって以来、Discord や Telegram などのプラットフォームが若い世代の間でますます人気が高まっていることを観察しています。これらの 10 代の若者は、主流のソーシャル メディアを使用するのではなく、親の監視から離れてゲーム、チャット、および社交を目的として、Discord でマルウェア コミュニティを作成します。これらのコミュニティは通常、最も技術に精通したメンバーによって主導されており、競合するサーバーの所有権を取得したり、無防備な被害者から盗んだ情報を含むスクリーンショットを共有したりすることで誇示します.また、プログラミング スキルやキャンペーンに貢献できる可能性に基づいて、他のメンバーを積極的に探しています。
これらの活動の意図しない結果として、私たちが依存している回復力のあるオープンソース レジストリは、リソースの過負荷に直面しています。先月だけでも、 npm および PyPI レジストリにアップロードされた 6,933 個のパッケージが悪意のあるものであることがセキュリティ研究者によって確認されました。
私たちは最近、PyPI に 5,000 以上のパッケージをアップロードした EsqueleSquad と呼ばれるスペイン語を話すグループのキャンペーンを追跡しました。これらのパッケージのペイロードは、PowerShell コマンドを使用して、Dropbox、GitHub、および Discord から Windows トロイの木馬をダウンロードしようとしました。
その後、SylexSquad と呼ばれる別のグループ (おそらくスペイン出身) の活動を調査しました。このグループは、機密情報を盗み出すように設計されたマルウェアを含むパッケージを作成しました。 YouTube ビデオで製品を宣伝し、市場で販売することに加えて、新しいメンバーを募集するための小さな Discord コミュニティがあります。そして、オープンソース ソフトウェアのサプライ チェーンを汚染する十分な時間があるようです。
4 月の第 1 週に、当社の AI システムは、PyPI にアップロードされた一連のパッケージに疑わしいものとしてフラグを立て、その後、セキュリティ研究者によって悪意があることが確認されました。これらのパッケージには、接頭辞「py」の後にウイルス対策ソフトウェアへの参照が続く命名パターンがありました: pydefenderultra 、 pyjunkerpro 、 pyanalizate 、およびpydefenderpro 。
Carlos Fernández さんは、パッケージがグループ SylexSquad にクレジットされていることに気付きました。これは、パッケージreverse_shellとsintaxisoyyoが関与する前に追跡したキャンペーンの継続を示唆しています。この発見の後、私たちは彼らの活動のマッピングを開始しました。
いたちごっこのように、これらのパッケージの 1 つが悪意のあるものであることを確認するたびに、PyPI チームがその削除を支援し、数時間後、悪意のある人物が同様の名前のパッケージに忍び込みました。
このキャンペーンの全体像を把握するために、最初の調査結果を要約してみましょう。
開発者が PyPI パッケージreverse_shellをインストールした場合、 setup.py
bypass.py
を実行します。これは、GitHub でホストされ、ASCII コードに対応する一連の数字としてエンコードされた、軽く難読化されたスクリプトです。
難読化を解除した後、永続化のために Windows 上に新しいレジストリ値を作成し、その結果、別の GitHub にホストされたファイルであるWindowsDefender.py
を呼び出し、情報を盗みます。ブラウザ情報 (履歴、Cookie、パスワードなど)、Steam アカウント、Telegram アカウント、クレジット カード、被害者のデスクトップのスクリーンショットなどの機密データは、攻撃者の Discord Webhook を使用してアップロードされます。
このグループにクレジットされている新しいパッケージに早送りすると、「4 層のアルゴリズムによる保護」を約束するサービスであるPyobfuscateで生成された、高度に難読化されたコード (AES 256 暗号化) で構成されるまったく異なるsetup.py
が見つかります。カルロスが難読化解除プロセスのために袖をまくる前に、カモフラージュされたコードの海から、サービスの URL と読み取り可能なメッセージの 2 つの情報しか識別できませんでしたwhy, are, you, reading, this, thing, huh
' そのメッセージの各単語は、難読化解除プロセスに使用される変数でした。
Pyobfuscate がどのように機能するかについては詳しく説明しませんが、Carlos は忍耐と専門知識を駆使してコードの難読化を解除し、その真の姿を明らかにすることに成功しました。彼は、難読化されたコンテンツがsetup.py
だけでなく、最初は GitHub から取得され、現在はtransfer.shサービスから取得され、以前は読み取り可能であったWindowsDefender.py
にも存在することに興味をそそられました。
悪意のある人物が十分な速さで行動しない場合、私たちのようなセキュリティ研究者 ( およびプラットフォームをマルウェア CDN として使用することを許可しないというGitHub の規則) が彼らの計画を台無しにする可能性が高くなります。 WindowsDefender.py
の場合がこれに該当します。これは、PyPI パッケージpycrackerおよびpyobfpremiumで使用されたときに最初に GitHub リポジトリ「joeldev27」でホストされ、その後すぐに非アクティブになりました。
このファイル名は一貫して使用されていたため、調べてみると、 WindowsDefender.py
CosasRandoms480という GitHub リポジトリでホストされていることがわかりました。この発見を Carlos と共有したところ、彼はsetup.py
そうに答えてくれました。インストール後、 WindowsDefender.py
という非常に難読化されたスクリプトを見つけたリポジトリからダウンロードします。このスクリプトは、永続化メカニズムを確立し、以前に調査した情報スティーラー (同じくWindowsDefender.py
) をダウンロードします。」
彼の予測は、「CosasRandoms480」をマルウェア CDN として効果的に使用して、30 分も経たないうちに PyPI にパッケージpyobfadvance が出現したときに現実のものとなりました。 PyPI チームに報告したところ、すぐに削除されました。
科学者や哲学者は、私たちがコンピューター シミュレーションの世界に住んでいるのかどうか疑問に思ってきました。セキュリティ研究者として働くことは、確かにそのように感じます。調査、発見、報告のループに陥り、同じ脅威が何度も発生し続けます。
2 日後、SylexSquad がクレジットした新しいパッケージpydefenderpro がシステム上でフラグ付けされました。同じ難読化されたsetup.py
。同じ永続化メカニズム コードで同じWindowsDefender.py
を実行し、 WindowsDefender.py
で情報スティーラーを同じ実行する、同じGitHub リポジトリからの同じ URL。すべてが同じように見えますが、ファイルはもはや難読化されておらず、新しいスクリプトがtransfer.shから呼び出されていました。
「RATだ!」 Carlos はSlackで私にメッセージをくれました。 「それと、情報盗み役――」
「RATミュータント?」私は、リモート アクセス トロイの木馬と情報窃取型マルウェアを組み合わせた一種のマルウェアの世界で私たちが追跡してきた傾向について言及しました。
「まさに」カルロスは言った。
OSINT の調査によると、新しい RAT コードはオリジナルではなく、 DiscordRATのコピーのコピーであることが明らかになりました。
洗い流して繰り返す: 悪意のあるパッケージは PyPI チームに報告され、PyPy チームはそれを削除します。
もちろん、新しいパッケージpydefenderultra がすぐに登場しました。ここでの違いは、攻撃者がWindowsDefender.py
ダウンロードするために GitHub ではなく、 pastebin.plサービスに移行したことです。これは、おそらく「CosasRandoms480」リポジトリが非アクティブ化されたためです。
WindowsDefender.py
の読み取り可能なバージョンにより、 GitHub の規則に違反していることを確認しやすくなったと思われます。しかし、なぜ攻撃者はスクリプトの難読化を解除することにしたのでしょうか?彼らの単純なプロセスには複雑すぎましたか?
RAT は変異し続けました。メニューとコメントがスペイン語に翻訳され、機能が追加されました。
彼らが別のパッケージpyjunkerproをアップロードしたとき、サイクルは続きました。今回追加された機能には、キーロガー、オーディオ レコーダー、OS データの抽出、および被害者から攻撃者の Discord チャネルに任意のファイルをアップロードする機能が含まれていました。コードに関するコメントは異常に豊富で、通常はチュートリアル コードにのみ関連付けられており、マルウェアには関連付けられていません。
「待ってください」とカルロスは声に出して考えながら言いました。
GPTZeroやCopyleaksなどのツールは、AI によって生成されたテキストを検出するための出発点として適しています。ただし、AI によって生成されたコードを特定することは依然として困難です。現在、正確に実行できる (私が知っている) ツールが存在しないためです。幸いなことに、人間はまだパターンを認識するのが得意です…
私はすぐに ChatGPT タブを開き、スペイン語で「PyAudio を使用してリモート コンピューターからオーディオをアップロードする Discord ボットの Python コードを記述します」というプロンプトを入力しました。私が得た出力は不気味に似ていました:
さまざまなソースからコードをコピーし、ChatGPT を使用して新しい機能を追加したスクリプト キディを追跡していたようです。結果として得られた固有のコードにより、 YouTubeで宣伝したり、独自の市場で販売したりする自信が得られました。そして、それがオリジナルの創造物ではないと誰も疑うことはありません.
これは興味深い問題を提起します: これらの悪役を何と呼ぶべきでしょうか? AIスクリプトのキディ?プロンプトのキディ?
私が ChatGPT に尋ねたところ、「個人が ChatGPT を使用してマルウェアに新しい機能を追加している場合、その人は従来のスクリプト キディよりも高度なタイプのハッカーと見なされる可能性がある」とのことでした。代わりに、「ハッカー」または「AI 支援型ハッカー」と呼ぶ方が正確かもしれません。
魅力的な。
ChatGPT は彼らにより多くのステータスを与えています。
実験のために、Carlos はプロンプトを試して、このツールが悪意のある人物の活動についてさらに洞察を得るのにも役立つかどうかを確認したいと考えました。
「Discord API をボットとして (トークンを使用して) 使用できる Python コードが必要です。スクリプトはボットに接続し、ギルド情報、ギルド メンバー、ギルド チャンネル、メッセージ履歴を表示する必要があります。」
予想どおり、ChatGPT は多くのコメントが付けられたコードと、開始するための明確な手順を生成しました。このコードを使用するには、「your_bot_token_here」をボット トークンに置き換えて、Python スクリプトを実行します。そこで、「AI 支援型ハッカー」がMicrosoftUpdate.py
に追加したトークンをコピーし、AI が生成した Python スクリプトに貼り付けました。
そのコードを実行しました…
…そして私たちは入っていました!メンバー (MEE6、$Demon666、$̷y̷n̷t̷a̷x̷E̷r̷r̷o̷r̷、aitanaxx05 + 4 担当者、Esmeralda、SylexNaranjoDomina、AI Image Generator)、チャネル、およびメッセージ履歴に関する情報を収集しました。判明したのは、彼らはすでに数人のユーザーに感染していたということです。1 つはキューバからの IP、もう 1 つはインドからの IP を特定しました。また、OS 情報は、感染した被害者のユーザー名にちなんで名付けられたチャネルに流出していました。
管理者権限を持つ「SylexNaranjoDomina」というボットに接続されていることがわかりました。これにより、誰かがメンバーを追加したり、Webhook を削除したり、既存のチャネルを変更したりできる可能性があります。
誰かが簡単にギルド名を「The server of Demon666」から「The server of a Script Kiddie」に簡単に変更できます。これは、このタイプの悪役にふさわしい説明ですが、ChatGPT はその考えに眉をひそめるかもしれません。
この調査から明らかなように、MaaS の普及と AI 支援型コードの使用により、技術的にあまり熟練していない悪意のある人物に新たな機会が生まれています。これらのツールや製品を利用するユーザーが増えるにつれて、悪意のあるパッケージがビルド環境に感染する機会がさらに増えます。サイバーセキュリティの状況が進化し続けるにつれて、防御も進化しなければなりません。常に情報を入手し、用心深く、保護することで、絶え間なく変化するサイバー犯罪の脅威に対して一歩先を行くことができます。