ライブラリに擬態したマルウェアを見てく
今作ってるツールでどうしても複数の事例を知っておく必要があるので、
半分自分用に乱雑にまとめていく。
この記事では、主にPypi (Pythonのパッケージマネージャ)にて配布されていた
「ライブラリに似せた名前」のマルウェアのコードを見ていく。
とはいえ、かなりシンプルなものばかりだったので、
記事の内容的には微妙かも。
はじめに
近年、タイトルにある通りライブラリに擬態したマルウェアというのがそれなりに配布されていたりする。
これらは大抵の場合、 Typo Squatting
と呼ばれる攻撃手法をベースにしてライブラリとして公開・配布されている。
これらのマルウェアは、インストール・使用した端末に対して、なにかしらの悪性なコードを実行させることを狙っている。
そもそも Typo Squatting
とは、(大抵は)フィッシングサイトなどで悪用される攻撃テクニックで、
google[.]com
などと、正規のドメインをタイピングしなければならないところを、
タイピングミスを狙って gooogle[.]com
などと言った、少しだけズラしたドメインで、
悪性なサイトをホスティングし、被害者がタイポして悪性ドメインに訪れてくるのを待つ・・・という感じの攻撃が行われる。
先ほども書いた通り、大抵はフィッシングサイトで使われる攻撃手法だったのだが、
近年(特に観測範囲だと node.js, python 周り)で pypi などのパッケージマネージャーなどに
マルウェアが上げられていることがある。
これらのマルウェアでは、先ほど言った Typo Squatting
と呼ばれる攻撃手法が利用され、
有名なライブラリー名を少しだけズラした形でマルウェアが公開されていたりする。
つい最近の記事だと -
というライブラリが npm で配布されており、
70万回ダウンロードされたとか。
https://labs.cybozu.co.jp/blog/akky/2021/08/empty-npm-package-downloaded-sub-one-million-times/
こう言った背景もあり、Pypi から抽象構文木(AST)を使ったマルウェア検出を行った人がいたりする。
https://bertusk.medium.com/detecting-cyber-attacks-in-the-python-package-index-pypi-61ab2b585c67
まとめると、「問題ないライブラリと思ったら実はマルウェアでした」というのがこの攻撃の手法であり、
近年話題のサプライチェーン攻撃としてカテゴライズされている。
今回は「この辺りをもうちょっと(防御面で)なんとかできんのかー」と思い、
セコセコ亀のスピードで開発をしているツールのために、数個のマルウェアのコードを読んでいこうと思う。
なお、本記事はGithubやブログなどのオープンな情報をベースとしており、
マルウェアの流布などを目的とした反社会的行為を推奨してるわけではない。
続きを読む