PyPIの「Revival Hijack」により数千のアプリケーションが危険にさらされる

セキュリティ研究者によると、新たなソフトウェア・サプライチェーン攻撃が実際に悪用されているという。

この手法は、Python Package Index(PyPI)を通じて配布されるPythonアプリケーションを標的にしている。

ソフトウェア・サプライチェーンセキュリティ企業JFrogの研究者は、「Revival Hijack(リバイバル・ハイジャック)」と呼ばれるこの攻撃が、既存のPythonパッケージ2万2000件に影響し得ると考えている。ひいては、数千万件規模の感染ダウンロードにつながる可能性がある。

Revival Hijackは、作者がPyPIリポジトリからプロジェクトを削除した際に生じる可能性のあるセキュリティ上の隙を悪用する。

開発者がPyPIからパッケージを削除すると、そのパッケージ名は他のユーザーが登録できる状態になる。するとハッカーはそのパッケージ名を乗っ取り、悪意あるコードの配布に利用できる。

「かつて安全だった」サプライチェーン攻撃のリスク

Revival Hijackは、被害者が「かつて安全だった」パッケージを、改ざんや感染に気づかないまま不用意に更新してしまい得るという事実を利用する。さらに、CI/CDマシンはパッケージ更新を自動的にインストールするよう設定されていることが多い。

JFrogの研究者であるBrian Moussalli氏とAndrey Polkovnichenko氏は、これは、タイポスクワッティング、すなわち人的ミスに依存して悪意あるコードを配布していた従来のソフトウェア・サプライチェーン攻撃よりも、はるかに大きなリスクをもたらすと警告している。

研究チームは、同じ名前だが異なるバージョン番号で、コードも完全に別物である偽装パッケージを用いて攻撃を再現した。追加のテストでは、「安全に乗っ取られた」パッケージが3か月で20万回ダウンロードされていたことが分かった。

「Revival Hijackは単なる理論上の攻撃ではありません。私たちの研究チームは、すでに実環境で悪用されているのを確認しています」と、JFrogのリサーチチームリーダーであるBrian Moussalli氏は説明した。

「削除されたパッケージの扱いにおける脆弱な挙動を利用することで、攻撃者は既存パッケージを乗っ取れました。これにより、ユーザーの操作なしに標的システムへインストールできるようになります。」

開発者向け:感染コードに関する警告

JFrogの研究者によると、サイバーセキュリティチームはタイポスクワッティングによるリスクを低減してきた。これにより、悪意あるハッカーはRevival Hijackのように、感染コードをリポジトリへ混入させる別の手段に目を向けざるを得なくなっている。

PyPIにおけるタイポスクワッティングについて詳しく読む:PyPIで新たなタイポスクワッティングおよびRepojackingの手口が判明

PyPIは、パッケージを削除する開発者に対して、その名前が再利用され得ることを警告し、またパッケージの特定バージョンの置き換えを制限してはいるものの、JFrogの研究者は「パッケージ名の再利用を完全に認めない、より厳格なポリシー」を求めている。

クラウドセキュリティ専門企業Sysdigの脅威リサーチディレクターであるMichael Clark氏は、Infosecurityに対し、コードリポジトリを利用する開発者も警戒を怠らない必要があると述べた。

「PyPIのようなリポジトリは、開発者から暗黙に信頼されがちなため、セキュリティの観点では難しい課題を突きつけます」と同氏は語った。

 「名前さえ正しければ、危険だという感覚は薄れます。Revival Hijack攻撃はこの問題を示しています。悪意あるリポジトリの名前が、以前に信頼されていた名前と一致するからです。このベクターを用いた攻撃を防ぐには、これらのリポジトリ由来の依存関係に対する静的解析と実行時解析が必須です。」

翻訳元: https://www.infosecurity-magazine.com/news/pypi-revival-hijack/

ソース: infosecurity-magazine.com