数日前の通知 悪意のあるコードを含む11個のパッケージがPyPIディレクトリで識別されました (Pythonパッケージインデックス)。
問題が特定される前に、 パッケージは合計で約38回ダウンロードされました 検出された悪意のあるパケットは、攻撃者のサーバーとの通信チャネルを隠すための高度な方法の使用で注目に値することに注意してください。
発見されたパッケージは次のとおりです。
- 重要なパッケージ (6305ダウンロード)e 重要なパッケージ (12897):これらのパッケージ 外部サーバーへの接続を確立する pypi.python.orgへの接続を装って システムへのシェルアクセスを提供する (逆シェル)そして、trevorc2プログラムを使用して通信チャネルを非表示にします。
- pptest (10001)と IPボード (946): 情報を転送するための通信チャネルとしてDNSを使用 システムについて(最初のパケットでは、ホスト名、作業ディレクトリ、内部IPと外部IP、XNUMX番目のパケットでは、ユーザー名とホスト名)。
- ふくろう (3285) Discordセーフティ (557)Y イーフパーティー (1859)-システム上のDiscordサービストークンを識別し、それを外部ホストに送信します。
- トルファブ (287):/ etc / passwd、/ etc / hosts、/ homeの識別子、ホスト名、およびコンテンツを外部ホストに送信します。
- 10cent10 (490)-外部ホストへの逆シェル接続を確立しました。
yandex-yt (4183):侵害されたシステムに関するメッセージを表示し、nda.ya.ru(api.ya.cc)を通じて発行された追加のアクションに関する追加情報を含むページにリダイレクトされました。
これを考えると、 パケットで使用される外部ホストにアクセスする方法には特別な注意を払う必要があります importantpackageおよびimportant-packageは、PyPIカタログで使用されているFastlyコンテンツ配信ネットワークを使用してアクティビティを非表示にします。
実際、リクエストはpypi.python.orgサーバーに送信されましたが(HTTPSリクエスト内のSNIでpython.orgの名前を指定することを含む)、攻撃者によって制御されるサーバーの名前はHTTPヘッダー「Host »。 コンテンツ配信ネットワークは、データを送信するときにpypi.python.orgへのTLS接続のパラメーターを使用して、攻撃者のサーバーに同様の要求を送信しました。
のインフラストラクチャ PyPIは、Varnishの透過プロキシを使用するFastly Content DeliveryNetworkを利用しています。 一般的なリクエストをキャッシュし、エンドポイントサーバーではなくCDNレベルのTLS証明書処理を使用して、プロキシ経由でHTTPSリクエストを転送します。 宛先ホストに関係なく、要求はプロキシに送信されます。プロキシは、HTTP「ホスト」ヘッダーによって目的のホストを識別し、ドメインホスト名はすべてのFastlyクライアントに一般的なCDNロードバランサーのIPアドレスにリンクされます。
攻撃者のサーバーもCDNFastlyに登録します、これはすべての人に無料料金プランを提供し、匿名登録も可能にします。 特に スキームは、「リバースシェル」を作成するときに被害者にリクエストを送信するためにも使用されます。 しかし、攻撃者のホストによって開始されました。 外部からは、攻撃者のサーバーとのやり取りは、PyPITLS証明書で暗号化されたPyPIディレクトリとの正当なセッションのように見えます。 「ドメインフロンティング」と呼ばれる同様の手法は、以前はロックをバイパスし、一部のCDNネットワークで提供されるHTTPSオプションを使用し、SNIでダミーホストを指定し、ホストの名前を渡すことでホスト名を非表示にするために積極的に使用されていました。 TLSセッション内のHTTPホストヘッダー内。
悪意のあるアクティビティを隠すために、TrevorC2パッケージが追加で使用されました。これにより、サーバーとの対話が通常のWebブラウジングと同様になります。
pptestパケットとipboardsパケットは、DNSサーバーへの要求で有用な情報をエンコードすることに基づいて、ネットワークアクティビティを非表示にするために異なるアプローチを使用しました。 悪意のあるソフトウェアは、DNSクエリを実行して情報を送信します。このクエリでは、コマンドおよび制御サーバーに送信されるデータは、サブドメイン名にbase64形式を使用してエンコードされます。 攻撃者は、ドメインのDNSサーバーを制御することにより、これらのメッセージを受け入れます。
最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。