Revival Hijackは攻撃手法の名前です。
コンピュータ言語のリポジトリをインフラとした攻撃です。
この領域ですぐに思いつくのは、タイポスクワッティングによる攻撃があります。
ちょっとだけ名前を構成する文字が異なるパッケージを公開して、利用者を誘い込むというものです。
Revival Hijackは、それとは異なる手法となっています。
- Revival Hijack
これは、名前が内容をそのまま示しています。
以前登録されていたが、現在はリポジトリから削除されている正当なパッケージと同じ名前を使用して、悪意のあるパッケージをリポジトリに再登録し、組織がそれをダウンロードするのを待つ、というものです。
復活してハイジャックする、そのままですね。 - 今回の舞台はPyPI
Revival Hijackの活動が観測されています。
今回の舞台はPyPIです。
PyPIはPython用のリポジトリです。
この攻撃は厄介です。
開発の現場では、多くのライブラリが利用されています。
そして、直接利用しているライブラリだけでなく、依存関係で利用されているライブラリもあります。
これらのひとつひとつが攻撃に悪用される可能性があるということになります。
以前公開されていたものが公開されなくなるケースは、いくつかあります。
同じ方向性のライブラリに組み込まれたので単独で公開している必要がなくなった、とか、メンテナンスする人がいなくなったので公開を終了した、とか、名前を変えて新しいものの公開を開始した、とかでしょうか。
こういった場合、その公開されていたライブラリの公開は終了されます。
利用者側では、どうでしょう。
利用していたものの入手ができなくなっていたら、変わりが何かあるのか、どう対応するべきかということを調べることになると思います。
しかし、あるライブラリの公開が終了された後、利用者が気が付く前に同じ名前で再度公開されている状態になったらどうでしょうか。
その利用者は気が付くことなく、そのまま利用を継続することになるのではないでしょうか。
しかも、その公開しなおされたソフトウェアのバージョンを示す文字列が、より新しくなっている構造のものとなっていた場合、その実際には別のソフトウェアなんだけれども新しいバージョンにみえるものを自分の環境に取り込んで動作させてしまうのではないでしょうか。
想定された被害者は開発者だけではありません。
開発者が設置したCI/CD環境が自動的に新しいものを取り込む形で被害にあう可能性も十分にあります。
そして、この攻撃はPyPIに限って発生するというものでもありません。
一旦公開が終了されたパッケージの同じ名前での再公開が禁止されていないすべてのリポジトリはこの攻撃のインフラになる可能性があるといえます。
それぞれのリポジトリでは、それぞれに安全に利用できるための運用を今後加えていくことになると思います。
利用者側では、まずはこういった手法の攻撃があるのだということを認識することでしょうね。
Revival Hijack – PyPI hijack technique exploited in the wild, puts 22K packages at risk
https://jfrog.com/blog/revival-hijack-pypi-hijack-technique-exploited-22k-packages-at-risk/
この記事をシェア |
---|