PyPIでソフトウェアサプライチェーン攻撃

ほぼこもセキュリティニュース By Terilogy Worx

PyPIというものがあります。
Python Package Index(PyPI)は、Pythonプログラミング言語用のソフトウェアのリポジトリです。
Node.jsでのnpm、RubyでのRubyGemsのポジションのパッケージ管理システムです。
Pythonでアプリを書くときに、普通に使います。

このPyPIにて、いくつものパッケージが先日削除されました。
削除されたのは、そのパッケージが攻撃に使われる内容が実装されたものだったからです。
こういうものがありました。

  • importantpackage / important-package
  • pptest
  • ipboards
  • owlmoon
  • DiscordSafety
  • trrfab
  • 10Cent10 / 10Cent11
  • yandex-yt
  • yiffparty

いくつか見てみましょう。

  • importantpackage / important-package
  • 10Cent10 / 10Cent11

これらは、侵害されたマシンでリバースシェルを取得し、攻撃者が感染したマシンを完全に制御できる機構を持っています。
importantpackageには、攻撃者が制御するサーバーとの通信をpypi.orgとの通信との通信であるように見せる機構も搭載しています。

  • ipboards
  • trrfab

これらは、依存関係の解消の機構を悪用し、他の悪事を働くパッケージを読み込ませる動きをします。
いわゆるDependency Confusion Supply-Chain Attackです。
これにより、typoに頼ることなく、悪意あるパッケージを広めることができます。

  • ipboards
  • pptest

これらは、DNSトンネリングを使用してデータの持ち出しを実行します。
これまでPyPIのパッケージでこの種の機能が実装されているものは確認されていませんでしたが、ついに出てきてしまっています。

これらは、あわせて累積で41,000回以上ダウンロードされてしまうこととなりました。

いろいろなコンピュータ言語のパッケージ管理システムが攻撃者が道具を仕込む場所になってきてしまっています。
そろそろ他人事ではない感じがしてきました。
さて、どうやってソフトウェアサプライチェーン攻撃から身を守りましょうか。

参考記事(外部リンク):11 Malicious PyPI Python Libraries Caught Stealing Discord
Tokens and Installing Shells

thehackernews.com/2021/11/11-malicious-pypi-python-libraries.html