GitHub

研究者は、攻撃者が GitHub Codespaces のポート転送機能を悪用して、マルウェアや悪意のあるスクリプトをホストおよび配布する方法を実証しました。

GitHub Codespaces を使用すると、開発者はクラウドでホストされる IDE プラットフォームを仮想化されたコンテナーにデプロイして、Web ブラウザー内で直接コードを記述、編集、およびテスト/実行できます。

2022 年 11 月に広く利用できるようになって以来、GitHub Codespaces は、プロジェクトに必要なすべての必要なツールと依存関係を備えた構成済みのコンテナーベースの環境を好む開発者の間で人気のある選択肢になりました。

GitHub Codespaces をマルウェア サーバーとして使用する

Trend Micro による新しいレポートで、研究者は、トラフィックが Microsoft から来るため、潜在的に検出を回避しながら、悪意のあるコンテンツを配布するための Web サーバーとして機能するように GitHub Codespaces を簡単に構成できる方法を示しています。

GitHub Codespaces を使用すると、開発者は TCP ポートをパブリックに転送できるため、外部ユーザーはアプリケーションをテストまたは表示できます。

Codespace VM でポートを転送する場合、GitHub 機能は、そのポートで実行されているアプリにアクセスするための URL を生成します。これは、プライベートまたはパブリックとして構成できます。

プライベート ポート転送では、URL にアクセスするためにトークンまたは Cookie の形式での認証が必要です。ただし、パブリック ポートは、認証を必要とせずに URL を知っている人なら誰でもアクセスできます。

Codespaces のポート可視性設定
Codespaces のポート可視性設定
出典:トレンドマイクロ

この GitHub 機能により、開発者はコードのデモを柔軟に行うことができますが、トレンドマイクロによると、今日の攻撃者はこれを悪用して、プラットフォーム上にマルウェアをホストすることが容易にできます。

理論的には、攻撃者は単純な Python Web サーバーを実行し、悪意のあるスクリプトまたはマルウェアを Codespace にアップロードし、VM で Web サーバー ポートを開き、「公開」可視性を割り当てることができます。

生成された URL は、フィッシング キャンペーンや、他のマルウェアによってダウンロードされた悪意のある実行可能ファイルをホストするために、ホストされているファイルにアクセスするために使用できます。

これはまさに、攻撃者がマルウェア配布キャンペーンのために Google Cloud、Amazon AWS、Microsoft Azure などの他の信頼できるサービスを悪用する方法です。

「脅威モデリングの悪用シナリオに関する仮説を検証するために、ポート 8080 で Python ベースの HTTP サーバーを実行し、ポートを転送して公開しました」とTrend Micro のレポートは述べています。

「その過程で、URL と認証用の Cookie がないことを簡単に見つけました。」

アナリストによると、Codespaces のポート転送システムではデフォルトで HTTP が使用されていますが、開発者は HTTP を HTTPS に設定して、URL のセキュリティの幻想を高めることができます。

GitHub は信頼できる場所であるため、ウイルス対策ツールが警告を発する可能性は低く、攻撃者は最小限のコストで検出を回避できます。

Codespaces Abuse 攻撃の図
Codespaces Abuse 攻撃の図(Trend Micro)

攻撃を進める

トレンドマイクロのアナリストは、GitHub Codespaces のDev Containersを悪用して、マルウェアの配布操作をより効率的にすることも検討しています。

GitHub Codespaces の「開発コンテナー」は、特定のプロジェクトに必要なすべての依存関係とツールを含む構成済みのコンテナーです。開発者はこれを使用して迅速に展開したり、他のユーザーと共有したり、VCS 経由で接続したりできます。

攻撃者は、スクリプトを使用してポートを転送し、Python HTTP サーバーを実行し、Codespace 内に悪意のあるファイルをダウンロードできます。

次に、ポートの可視性がパブリックに設定されます。これにより、悪意のあるファイルをターゲットに提供するオープン ディレクトリを持つ Web サーバーが作成されます。

トレンド マイクロは、Web サーバーが削除される前に、URL にアクセスしてから 100 秒の遅延を使用して、この概念実証 (PoC) を作成しました。

機能の経験がなくても、Codespaces を使用して「悪意のある」Web サーバーの作成を 10 分以内に複製することができました。

オープン ディレクトリを使用した Web サーバーの作成
GitHub Codespaces VM で Web サーバーを実行する
ソース:

「このようなスクリプトを使用すると、攻撃者は GitHub Codespaces を悪用して、コードスペース環境でポートを公開することにより、悪意のあるコンテンツを急速に提供することができます。作成された各 Codespace には一意の識別子があるため、関連付けられたサブドメインも一意です」と Trend Micro は説明しています。レポート。

「これにより、攻撃者は開いているディレクトリのさまざまなインスタンスを作成するのに十分な根拠を得ることができます。」

GitHub のポリシーでは、非アクティブなコードスペースは30 日後に自動的に削除されるため、攻撃者は 1 か月間同じ URL を使用できます。

現時点で GitHub Codespaces の悪用は確認されていませんが、レポートは現実的な可能性を強調しています。攻撃者は一般に、セキュリティ製品によっても信頼されている「無料で使用できる」プラットフォームを標的にすることを好むからです。

は、トレンドマイクロのレポートについてコメントするために GitHub に連絡しましたが、まだ応答を待っています。