malware

Leiden Institute of Advanced Computer Science の研究者は、さまざまな脆弱性に対する偽の概念実証 (PoC) エクスプロイトを提供する GitHub 上の何千ものリポジトリを発見しました。その中にはマルウェアが含まれていました。

GitHub は最大のコード ホスティング プラットフォームの 1 つです。研究者はこれを使用して PoC エクスプロイトを公開し、セキュリティ コミュニティが脆弱性の修正を検証したり、欠陥の影響と範囲を判断したりできるようにしています。

Leiden Institute of Advanced Computer Science の研究者が作成したテクニカル ペーパーによると、PoC を取得する代わりにマルウェアに感染する可能性は、証明済みの偽物やいたずらを除いて 10.3% にもなる可能性があります。

データの収集と分析

研究者は、次の 3 つのメカニズムを使用して、2017 年から 2021 年の間に公開された脆弱性のエクスプロイトを宣伝する 47,300 を少し超えるリポジトリを分析しました。

  • IP アドレス分析: PoC のパブリッシャー IP をパブリック ブロックリスト、VT および AbuseIPDB と比較します。
  • バイナリ分析: 提供された実行可能ファイルとそのハッシュに対して VirusTotal チェックを実行します。
  • 16 進数および Base64 分析: バイナリおよび IP チェックを実行する前に、難読化されたファイルをデコードします。
分析方法
データ分析の方法(Arxiv.org)

抽出された 150,734 の一意の IP のうち、2,864 の一致したブロックリスト エントリ、1,522 が Virus Total のアンチウイルス スキャンで悪意のあるものとして検出され、そのうち 1,069 が AbuseIPDB データベースに存在していました。

さまざまなブロックリストで見つかった IP アドレス
さまざまなブロックリストで見つかった IP アドレス(Arxiv.org)

バイナリ分析では、6,160 の実行可能ファイルのセットを調べ、1,398 のリポジトリでホストされている合計 2,164 の悪意のあるサンプルを明らかにしました。

合計で、テストされた 47,313 のリポジトリのうち 4,893 のリポジトリが悪意があると見なされ、そのほとんどが 2020 年の脆弱性に関するものでした。

年間の悪意のあるリポジトリ
年間の悪意のあるリポジトリ(Arxiv.org)

このレポートには、マルウェアを配信した偽の PoC を含む少数のリポジトリが含まれています。ただし、研究者は BleepingComputer と、まだ生きていて GitHub によって削除される過程にある少なくとも 60 の他の例を共有しました。

PoC のマルウェア

これらのケースのいくつかを詳しく調べたところ、研究者は、リモート アクセス トロイの木馬から Cobalt Strike に至るまで、さまざまなマルウェアや有害なスクリプトが多数あることを発見しました。

興味深いケースの 1 つは、CVE-2019-0708 の PoC のケースです。これは一般に「BlueKeep」として知られています。これには、Pastebin から VBScript をフェッチする base64 で難読化された Python スクリプトが含まれています。

スクリプトは Houdini RAT で、Windows CMD を介したリモート コマンド実行をサポートする古い JavaScript ベースのトロイの木馬です。

難読化されたスクリプトと難読化解除された Houdini
難読化されたスクリプトと難読化解除された Houdini

別のケースでは、研究者は、システム情報、IP アドレス、およびユーザー エージェントを収集する情報窃盗プログラムである偽の PoC を発見しました。

これは別の研究者がセキュリティ実験として以前に作成したものであるため、自動化されたツールでそれを見つけることで、研究者は自分たちのアプローチが有効であることを確認できました。

偽の PoC 流出の例
偽の PoC 流出の例(Arxiv.org)

研究者の 1 人で、Darktrace のセキュリティ研究者でもある El Yamani Soufian は親切にも、BleepingComputer にテクニカル レポートに含まれていない追加の例を提供してくれました。

Virus Total で悪意のあるフラグが付けられた base64 でエンコードされたバイナリを含む PowerShell PoC。

偽の PowerShell PoC
偽の PowerShell PoC

Virus Total で悪意があるとフラグ付けされた base64 でエンコードされたペイロードをデコードするワンライナーを含む Python PoC。

PoC を装った悪意のあるワンライナー ペイロード
PoC を装った悪意のあるワンライナー ペイロード

ほとんどのウイルス対策エンジンによって悪意のあるものとしてフラグ付けされ、Cobalt Strike として識別される実行可能ファイルを含む偽の BlueKeep エクスプロイト。

Cobalt Strike が偽の PoC 経由でドロップ
Cobalt Strike が偽の PoC 経由でドロップ

悪意のある非アクティブなコンポーネントを含む偽の PoC 内に隠れているスクリプトで、作成者が望む場合は損害を与える可能性があります。

無害だが偽のPoC
無害だが偽の PoC

安全を保つ方法

検証されていないソースからの GitHub のリポジトリを盲目的に信頼するのは悪い考えです。コンテンツはモデレートされていないため、使用する前にユーザーがレビューする必要があるからです。

ソフトウェア テスターは、ダウンロードした PoC を慎重に精査し、実行する前にできるだけ多くのチェックを実行することをお勧めします。

Soufian は、すべてのテスターが次の 3 つの手順に従う必要があると考えています。

  1. あなたまたはあなたの顧客のネットワークで実行しようとしているコードを注意深く読んでください。
  2. コードが難読化されすぎていて、手動で分析するには時間がかかりすぎる場合は、環境 (隔離された仮想マシンなど) でコードをサンドボックス化し、疑わしいトラフィックがないかネットワークを確認してください。
  3. VirusTotal などのオープンソースのインテリジェンス ツールを使用してバイナリを分析します。

研究者は、発見したすべての悪意のあるリポジトリを GitHub に報告しましたが、すべてが確認されて削除されるまでには時間がかかるため、多くはまだ一般に公開されています。

Soufian が説明したように、彼らの研究は GitHub での 1 回限りのクリーンアップ アクションとして機能するだけでなく、アップロードされたコード内の悪意のある命令にフラグを付けるために使用できる自動化されたソリューションを開発するきっかけとして機能することを目的としています。

これはチームの研究の最初のバージョンであり、検出器の改善に取り組んでいます。現在、検出ツールは、より強力な難読化を使用してコードを見逃しています。