6 ポイント 投稿者 GN⁺ 2024-08-09 | 1件のコメント | WhatsAppで共有

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件のコメント

 
GN⁺ 2024-08-09
Hacker Newsの意見
  • npmのパッケージ依存関係の扱い方が問題

    • package.jsonにキーがあるだけで、実際のパッケージと無関係でも依存関係と見なされる
    • これにより依存関係のエコシステムがより脆弱になる
  • tea.yamlを使うすべてのパッケージを削除する必要がある

    • Teaプロトコルが悪意ある行動を誘発している
    • システムを損なっている
  • スパムアカウントは永久にブロックして削除すべき

    • たとえば、無意味なパッケージを1781個持つアカウントがある
    • 通報手続きが複雑で煩雑
  • AIモデルはスパムパッケージによって歪められる可能性がある

    • "garbage in, garbage out" の原則が当てはまる
  • Teaプロトコルのインセンティブモデルが問題

    • 開発者がnpmにスパムを投稿するよう誘導している
    • エコシステムを損なっている
  • 要約:

    • 暗号通貨ベースのOSS開発資金調達の仕組みがスパムを誘発している
    • package.jsonを通じて依存関係を偽装するのが容易
  • Teaプロトコルの目標はオープンソースソフトウェアの経済を強化すること

    • しかしインセンティブモデルが誤っていて、スパムを誘発している
    • "コブラ効果" と "グッドハートの法則" が当てはまる
  • 人気プロジェクトをコピーし、ランダムなラテン語の名前でnpmに公開する事例がある

    • 数百件のスパム報告を提出した
  • Teaに似たプロジェクトがあった

    • プロジェクトが失敗して資金が尽きるまで、毎月少額のビットコインを受け取っていた
  • パッケージ管理者には評価システムがある

    • スパムパッケージがAIに影響を与える可能性は低い
    • 信頼できる企業はスパムパッケージを使わない