npmにおける大規模なスパムパッケージ問題
- Phylumの研究チームは、Teaプロトコルに関連するスパムパッケージがnpmで急増していることを発見
- Teaプロトコルは、オープンソースへの貢献に対して暗号資産で報酬を与える仕組みで、開発者が貢献を水増しするよう誘導している
- 2024年第2四半期にnpmへ公開されたパッケージのうち、約25%がTeaプロトコル関連のスパムパッケージと推定される
簡単な要約
- Teaプロトコルは、開発者が貢献を水増しするよう誘導するアルゴリズムを使っている
- npmは、こうしたスパムパッケージによって深刻に汚染されている
- スパムパッケージの特徴は、ランダムに生成されたパッケージ名、不審な依存関係リスト、そして
tea.yaml ファイルである
新たな視点
- 2024年初頭からnpmに公開されるパッケージ数が急増
- 2024年4月8日には、1日で48,000個を超えるパッケージが公開された
- 第2四半期に公開されたnpmパッケージのうち、21.25%から25.5%がスパムパッケージと推定される
- 新規パッケージに範囲を絞ると、スパムパッケージの比率は68.66%から74.67%に上昇する
脅威はあるのか?
- 現時点では、これらのスパムパッケージに悪意ある攻撃が含まれているという証拠はない
- しかし、この種のスパムはオープンソース生態系を汚染し、AIモデルの学習データを歪める可能性がある
- さらに、実際の悪性パッケージが紛れ込みやすい環境を生み出す
攻撃者の視点で考える
sournoise パッケージを例にすると、npmのWebサイトではこのパッケージが axios に依存しているように表示されるが、実際にはスパムパッケージに依存している
- これは、npmが依存関係を処理し、ユーザーに表示する方法による副作用である
- 推移的依存関係によって、開発者が望まない、あるいは予想していないパッケージが含まれる可能性がある
結論
- オープンソースソフトウェア生態系の汚染は、誰にとっても問題である
- Teaプロトコルのプロジェクトは、この問題を解決するための対策を講じている
- npmも一部のスパムパッケージを削除しているが、新規公開の速度に追いついていない
- この問題はnpmだけに限らず、RubyGemsでも類似のスパムパッケージが見つかっている
- Phylumはこの分野を積極的に研究しており、こうした主体が戦術を適応させる中で、このスパムを検出する新たな方法を模索していく見込みである
GN⁺の整理
- Teaプロトコルの報酬システムが、開発者に貢献の水増しを促している
- オープンソースの持続可能性を目指すプロジェクトの意図は良かったのかもしれないが、それに伴う副作用や悪用事例を見落としていたように見える。貢献度の測定方法と報酬設計について、綿密な設計と継続的な監視が必要に思われる
- このような大規模なスパムパッケージの氾濫は、単なる個別パッケージの安全性の問題を超えて、オープンソース生態系全体の信頼性と健全性を脅かしうる。根本的な解決には、エコシステム全体での取り組みと協力が必要になりそうだ
- AIモデルの学習データとして利用された場合にバイアスの問題が生じうる点は、非常に懸念される。データ品質管理と検証に関するガイドライン整備が急務に思われる
- 推移的依存関係を通じた予期しないパッケージのインストール可能性は、開発者に十分な警戒心を与える。自動化された依存関係管理ツールの必要性とあわせて、パッケージ選定においては開発者自身の注意とレビューが依然として重要であることを示している
- 長期的には、ブロックチェーンベースのパッケージレジストリやレピュテーションシステムなど、より透明で検証可能な代替案を模索する必要がありそうだ
1件のコメント
Hacker Newsの意見
npmのパッケージ依存関係の扱い方が問題
tea.yamlを使うすべてのパッケージを削除する必要がある
スパムアカウントは永久にブロックして削除すべき
AIモデルはスパムパッケージによって歪められる可能性がある
Teaプロトコルのインセンティブモデルが問題
要約:
Teaプロトコルの目標はオープンソースソフトウェアの経済を強化すること
人気プロジェクトをコピーし、ランダムなラテン語の名前でnpmに公開する事例がある
Teaに似たプロジェクトがあった
パッケージ管理者には評価システムがある