[論文レビュー] Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages
本稿では、メタデータ、静的解析、動的解析を用いて、解釈型言語用パッケージマネージャー(PyPI、Npm、RubyGems)におけるサプライチェーン攻撃を検出するための比較フレームワークと分析パイプライン、MalOSSを提案する。339個の悪意あるパッケージを同定し、そのうち278個(82%)が削除され、3個がCVEに割り当てられた。レジストリ管理者に対する実行可能なセキュリティ改善策を提供する。
Package managers have become a vital part of the modern software development process. They allow developers to reuse third-party code, share their own code, minimize their codebase, and simplify the build process. However, recent reports showed that package managers have been abused by attackers to distribute malware, posing significant security risks to developers and end-users. For example, eslint-scope, a package with millions of weekly downloads in Npm, was compromised to steal credentials from developers. To understand the security gaps and the misplaced trust that make recent supply chain attacks possible, we propose a comparative framework to qualitatively assess the functional and security features of package managers for interpreted languages. Based on qualitative assessment, we apply well-known program analysis techniques such as metadata, static, and dynamic analysis to study registry abuse. Our initial efforts found 339 new malicious packages that we reported to the registries for removal. The package manager maintainers confirmed 278 (82%) from the 339 reported packages where three of them had more than 100,000 downloads. For these packages we were issued official CVE numbers to help expedite the removal of these packages from infected victims. We outline the challenges of tailoring program analysis tools to interpreted languages and release our pipeline as a reference point for the community to build on and help in securing the software supply chain.
研究の動機と目的
- 解釈型言語用パッケージマネージャーのセキュリティおよび機能的特徴を体系的に分析・比較すること。
- PyPI、Npm、RubyGemsなどのレジストリにおける最近のサプライチェーン改ざんの背後にある根本的要因および攻撃ベクトルを特定すること。
- 解釈型言語向けにカスタマイズされた、再利用可能で拡張可能なスケーラブルな分析パイプラインを構築すること。
- レジストリのセキュリティ強化およびソフトウェアサプライチェーンの硬化に向けた、実行可能で証拠に基づいた提言を提供すること。
- MalOSSパイプラインおよびマルウェアサンプルを公開し、コミュニティおよび今後の研究を支援すること。
提案手法
- パッケージマネージャーのエコシステム間における機能的・セキュリティ的・信頼関連の特徴を評価するための比較フレームワークを設計する。
- 解釈型言語向けに最適化された、メタデータ解析、静的コード解析、動的実行監視を統合した独自のパイプラインMalOSSを実装する。
- PyPI、Npm、RubyGemsの全100万個以上のパッケージにパイプラインを適用し、異常および悪意ある行動を検出する。
- 受動DNSデータを用いて、検出された悪意あるパッケージの実世界における広がりを推定する。
- 脅威インテリジェンスサービス(例:VirusTotal)と手動による検証を活用し、誤検出を低減し、既知の攻撃を確認する。
- 発見結果をレジストリ管理者に報告し、高リスクのパッケージについてCVE当局と連携する。
実験結果
リサーチクエスチョン
- RQ1解釈型言語用パッケージマネージャー間の主なセキュリティ的および機能的差異は何か。これらはサプライチェーン攻撃表面をどのように拡大させるか。
- RQ2PyPI、Npm、RubyGemsにおける悪意あるパッケージは、信頼関係やレジストリメカニズムをどのように悪用しているか。
- RQ3既存のプログラム解析技術(静的解析、動的解析、メタデータ解析)は、解釈型言語エコシステムにおける実世界のサプライチェーン攻撃をどの程度検出可能か。
- RQ4受動DNSデータを用いた推定により、検出された悪意あるパッケージの実世界への影響および広がり率はどの程度か。
- RQ5信頼性、検出、是正の強化に向け、どのような実行可能で具体的な改善策を提案できるか。
主な発見
- MalOSSパイプラインは、PyPIで7個、Npmで41個、RubyGemsで291個の悪意あるパッケージを検出し、合計339個の報告パッケージとなった。
- 報告された339個のパッケージのうち278個(82%)が、確認後、レジストリ管理者によって正常に削除された。
- 報告された悪意あるパッケージのうち3個は10万回以上のダウンロードを記録しており、公式のCVE識別子が割り当てられた。
- 本研究では、資格情報盗難、リモートコード実行、タイポスラッキングを用いたソーシャルエンジニアリングなど、洗練された攻撃パターンが明らかになった。
- 受動DNS解析により、一部の悪意あるパッケージが広範に配布されていることが示され、実世界への影響が確認された。
- フレームワークおよびパイプラインは、脅威の同定および検証に成功し、解釈型言語エコシステムにおける大規模かつ自動化された検出の実現可能性を示した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。