Pythonのパッケージ侵害とPSFがとっているセキュリティ対策

こんにちは、Pythonエンジニア育成推進協会 顧問理事の寺田です。私は試験の問題策定とコミュニティ連携を行う立場です。

ここ最近、Pythonのサードパーティ製ライブラリにマルウェアが混入していることや脆弱性が含まれていたという事件が立て続けに起きました。

今回はパッケージ侵害と対処方法、今後、Python Software Foundation(PSF)がとっている対策や展望についてお話ししたいと思います。

ライブラリへのマルウェア混入事件が増加

2026年3月中旬に、LiteLLMというPython 向けのLLM統合ライブラリにマルウェアが混入されるという事件が発生しました。

さらに、2026年3月末には、npmで広く使われている非同期HTTP通信ライブラリ「axios」にマルウェアが混入していたことが判明しています。

どちらも人気の高いライブラリで、かなり危険な脆弱性だったため、非常に大きな話題となりました。いずれも日本時間の日中帯の出来事で、3時間ほどで侵害版は削除されていますが、ダウンロードしてしまった人たちは対処に大変な思いをされたかと思います。

最近、こういったパッケージにマルウェアやウイルスが混入されてしまうということが実際にいろいろなところで起きています。公開されてから数時間で対処されたとしても、それでも数時間は危険な状態にさらされていたことに変わりはありません。

では、なぜこうしたことがいま起きているのか。また、こうした事態に対してどのように対処していくべきなのか。そして、今後の展望といった部分についてお話ししたいと思います。

ライブラリの開発・活用が活発化した結果、攻撃者はそれに乗じている

まず、axiosやLightLLMに関して言えば、言語は違いますし、パッケージの配布元も異なっていますが、起きていることの本質は同じことです。

昨今の開発現場では、各言語に入っている基本機能だけではなく、サードパーティ製ライブラリを使った開発は一般的に行われています。

例えば、Pythonの場合、NumPyやpandas、FastAPIといった様々なものが一般的によく利用されています。こうしたことはJavaScriptやTypeScript、それ以外の多くの言語でも同様に行われています。

また、利用される外部ライブラリは、さらに別の外部ライブラリに依存していることが一般的に多くなっています。pandasを入れれば最低でもNumPyが入りますし、それ以外のライブラリが同時にインストールされるようになっています。

これはpip installであっても、JavaScript、TypeScriptの世界でのnpmインストールであっても同様で、その依存の先にさらに依存があるというのも通常のことです。

これが何を意味するかと言えば、自身が選定したライブラリのみを利用するのではなく、その先で利用されているサードパーティ製ライブラリが無数に利用されているということであり、そしてそれが、手元のPCや開発・本番サーバに展開され、利用されているということを意味しています。

正直なところ、これを止めること自体は少々難しいというのが現実です。

であれば、インターネットを遮断して、こうしたものを使わないようにするという手段もあるかもしれませんが、それは開発を遅らせるだけです。また、実際にみんなが標準的に使っている良いものもたくさんありますのであまり現実的ではありません。かといって、一度審査を行ってからアップするというのも現実的にみると難易度は高いです。

このライブラリという仕組み自体は開発を安定的にスピードアップして、良いものが作りやすいという環境であるというのも事実なので、否定せず肯定すべきことであるといえます。

ただその反面で、攻撃者の視点で見ると、こういったわかりにくいところにマルウェアは仕込みやすく、実際にそれを経由してハッキングしようとしてきます。

実際問題、PyPIなどのパッケージを配布するサイトの例をみても言えることですが、最近は、仮想環境がよく作られていますし、またCI/CDの発展によって、非常に多くのアクセス数とダウンロード数があります。

私自身も、pipインストールや、npmインストールを気軽に行います。そして、環境を新しく作り直すということもよくあることです。

また、最近ではAIエージェンティックコーディングにおいても、ライブラリの提案とインストールが行われており、新しいライブラリをそう意識せずにどんどんインストールがされて行きます。

これが昨今の世の中の流れであるというのが現状です。

マルウェアがどうやって仕込まれていくのか

さて、PyPIや、npmレジストリをはじめ、様々な言語向けのパッケージインデックス上で提供されているライブラリの多くは、有志の方々や企業がオープンソースとして提供しているものがほとんどです。これらは審査が入らないことが多く、アップデートも自由に行われます。攻撃者はそうしたパッケージインデックスに対して、マルウェアが入った新しいバージョンに置き換え、新しくリリースしてしまうということが今起こっていることです。

これについては非常に問題視されており、今後、より大きな問題になるだろうことが予想されています。そのため、この問題への対策は現在もとられており、順次回避策がとられています。

例えばPyPIでは、リリースできるのはGitHubやGitLabなどでビルドされ、信頼されたものにする動きがあります。

気づかないうちに侵害されないように自分たちができること

さて、乗っ取られてしまうケースには様々な手段があり、攻撃者はそれらを試していきます。どういった手段で乗っ取りにあったのかという詳細自体を公開されることはあまりありません。

では、私たちができる守るべきことにはどういったものがあるのでしょうか。

Pythonの例で言えば、適切なロックファイルを作り、安全に同じものが入るようにするということ自体は使われている方法です。例えばバージョンを固定して安定的に動かすというような、これなら大丈夫だというものに固定しています。これ自体は業務上で一般的にやられていることだとは思います。

そのため、Pythonの世界ではロックファイルが規格として決まっていますし、少し前であれば、constraints.txt (コンストレイントファイル)を使い、バージョンをしっかり固定していました。これを使うことで、新しくリリースされたものに飛びつかせず、しっかり安定したバージョンを選んで使ってもらうための1つの方法として知られています。他にも、リリース後一定期間(例えば10日間とか)たった物しか利用しないという運用をしている場合も有ります。

とはいえ、今から新しいプロジェクトをやるというときには、新しいバージョンを選択したいということはあるかと思います。その際、依存関係にあるうちのパッケージどれかが偶然汚染されていた場合には、マルウェアが入ったまま固定されてしまうという可能性はあり得ますので、判断が非常に難しくなることもあるとは思います。だからこそ、安全にライブラリが使えるよう、きちんと情報を収集し、プロジェクトメンバー全員で環境を整えていく必要があると考えています。

PSFが取り組んでいるセキュリティ対策方針と実行状況

PyPIのセキュリティ問題に対して、現在は2人のセキュリティ専任エンジニアが配属され、様々な対応に取り組んでいます。先ほど挙げたようなGitHubやGitLabといった信頼されたところからのリリースを標準化する、、2段階認証を必須化するといった動きを進めており、徐々に対策が進んでいます。

PSFとしても、セキュリティ対策の重要性を認知しており、毎年大金を投資しています。これに対しては新しいものを生むものではありませんが、守る側として重視していること、そして非常に大変な思いをしながら取り組んでいる姿勢が見受けられます。

そんな中、今年に入ってAIで有名なAnthropic社から2年間総額で150万ドル(約2億円超)を寄付されるということがありました。

これはPyPIやサプライチェーンに関わるエコシステムのセキュリティ強化のための予算として使われることが決まっています。

オープンソースのセキュリティを守る必要性を、大手企業も認めているということを意味しており、PSFに寄付をするということによって、より強固なシステムづくりをしようということになります。

パッケージインデックスがなくなる未来はもはや想像できないくらいには浸透しています。

こうした事件が最近多発しており、ほんの数時間差で感染してしまうということもあり得ますし、引っかかったとしても不思議ではない状況というのもあり得ます。

感染してしまった場合、パソコンの中を掃除するのは相当な労力が必要です。ウィルスソフトが気付いてくれる可能性はありますが、そもそもウィルスソフトは感染させないよう結構手前で対策をしているため、個人の感覚を緩ませている可能性もあります。とはいえ厳しくしすぎてしまえば何もインストールできません。

怖がりすぎて何もできなくなってしまうのは本末転倒なので、必要なことを確実に一つずつ実行していくことが個人でできることかと思います。

PSFはかなりまじめに取り組んでくれていますが、数か月程度で成果が出るようなものではありません。今後、セキュリティ強化に関しての動向について期待して見守っていきたいと考えています。

PAGE TOP