PyPI に新たな悪意のパッケージ:コンパイルされた Python コードで検出を回避

Malicious PyPI Packages Use Compiled Python Code to Bypass Detection

2023/06/02 infosecurity — ReversingLabs のセキュリティ研究者たちが発見したのは、検出回避のためにコンパイルされた、Python コードを用いる新たな攻撃の手法である。ReversingLabs の Reverse Engineer である Karlo Zanki によると、PYC (Python Byte Code) ファイルのダイレクト実行機能を利用する、最初のサプライチェーン攻撃の事例になる可能性があるという。大半のセキュリティ・ツールは、Python ソースコード (PY) ファイルのみをスキャンするため、このような攻撃を見逃す可能性がある。そのため、この手法は、将来的に新たな種類のサプライチェーン脆弱性をもたらすことになる。Zanki は、Python Package Index (PyPI) に関する有害な投稿の増加とも一致すると指摘している。


また、ReversingLabs は、発見されたパッケージである fshec2 を、PyPI セキュリティ・チームに報告している。同チームは、今回の件が新種の攻撃であることを認め、同日中に PyPI リポジトリから削除したと述べている。

Vulcan Cyber の Senior Technical Engineer である Mike Parkin は、「脅威アクターが悪意のライブラリを公開リポジトリにドロップするという、これまでの一般的なサプライチェーン攻撃の、新しいバリエーションとなる攻撃手法が登場した。既存のセキュリティ・ツールを回避するためのテクニックが駆使されている。そのため、防御用のツールが、コンパイルされた Python コードを扱えるようにアップデートされるまで、問題が生じるかもしれない」と説明している。

この攻撃者は、検出を回避するために、Importlib モジュールを採用する独自のロード・テクニックを使用している。Tanium の Chief Security Advisor である Timothy Morris は、「この難読化の技術により、コンパイルされたコードはセキュリティ・スキャナーを通り抜けることができる。この種のコードをキャッチするには、ソースコードの静的解析が必要だが、コンパイルされているため、不可能ではないにしても困難なことだ」とコメントしている。

このマルウェアは、リモートサーバから新しいコマンドをダウンロードし、攻撃の手法を進化させる C2  (Command-and-Control) インフラを備えているという。

Coalfire の副社長である Andrew Barratt は、「ReversingLabs が特定した PyPI マルウェアの斬新さは、DLL ハイジャックの特徴の一部を想起させる。つまり、信頼できる正規のアプリケーションにより、不正なコードがロードされることも生じる。厄介なのは、攻撃者が意図的にコード・リポジトリをターゲットにして、このようなテクニックを用いることで、ランサムウェア・キャンペーンの前兆のような、大量展開のベクターを探していることが明示されたことだ」と述べている。

先日には、Cyble が情報スティーラー機能を持つ、別の PyPI 悪用に注目していた。それから数週間後に、この ReversingLabs のレポートが公開された。

コンパイルされた Python コードで検出を回避するという、新しい PyPI 悪意のパッケージが登場したようです。どこかで、似たような記事を訳した記憶があったので、探してみたら、2023/01/30 の「Titan Stealer という情報スティーラーを発見:Golang ベースで検出を巧みに回避」という記事に、「Go でコンパイルされたバイナリ・ファイルはサイズが小さいため、セキュリティ・ソフトウェアによる検出がより困難になっている」という記載がありました。よろしければ、Python で検索と、Golang で検索も、ご利用ください。