Skip to main content

OpenSSFによる
悪意のあるパッケージに関する
リポジトリの紹介

本ブログは、Introducing OpenSSF’s Malicious Packages Repository by Caleb Brown, Google Open Source Security Team and Jossef Harush Kadouri, Software Supply Chain Security at Checkmarx の参考訳です。

本日、OpenSSFパッケージ分析チームは、悪意のあるパッケージに関するリポジトリの立ち上げを発表できることを嬉しく思います。これは、悪意のあるパッケージのクロスエコシステム レポートを収集し、公開するための、初のオープンソース システムです。

このリポジトリは、悪意のあるオープンソース パッケージを含む攻撃の発生率の増加への対応によるものです。たとえば、今年初め、Lazarus Group (北朝鮮国家支援の多大なハッキンググループ) がブロックチェーンと仮想通貨の分野を標的にしました。このグループは高度な手法を用いており、偽装したnpmパッケージなどの利用し、さまざまなソフトウェア サプライ チェーンを侵害しました。共有すべき情報を一元的にまとめたリポジトリがあれば、コミュニティに攻撃についてより早く警告でき、オープンソース コミュニティのあらゆる種類の脅威に対する理解を助けられる可能性があります。私たちの希望は、悪意のあるパッケージに関するリポジトリがこれらの解決を助けるリソースになることです。

悪意のあるパッケージとは?

悪意のあるパッケージは、オープンソース パッケージとして配信され、PyPI や NPMなどのパッケージ リポジトリに公開されるマルウェアの形式です。脆弱なコードには意図せずに作成された悪用される可能性のある弱点を持つ場合がありますが、悪意のあるコードは被害者に損害を与えたり侵害したりするように意図的に設計されています。悪意のあるパッケージは、知らないうちにこれらのパッケージをインストールして実行する開発者や企業を攻撃するために使用されます。これらのパッケージは、不正な権限の取得、個人情報の漏洩、コンピューティング リソースの消費、さらにはデータの破壊や削除などの攻撃に使用される可能性があります。これらの攻撃フローは、ほとんどのエンドポイントウイルス対策ソフトウェアでは阻止できません。

Package Analysisプロジェクトは、一般的なオープンソース パッケージ リポジトリの公開時にパッケージをダウンロード、インストール、実行することで、そのような悪意のあるパッケージをできるだけ早く見つけるために作成されました。パッケージが実行されると、実行されたコマンドがキャプチャされ、ネットワーク トラフィックが分析されます。次に、観察した振る舞いに対して一連のルールが適用し、パッケージが悪意のある動作をしているかどうかを判断します。そのような振る舞いが存在する場合、レポートが生成され、新しい悪意のあるパッケージに関するリポジトリに公開されます。

統合されたシステム

現在、各オープンソース パッケージ リポジトリには、悪意のあるパッケージに対応するための独自のアプローチがあります。悪意のあるパッケージがコミュニティによって報告されると、パッケージ リポジトリのセキュリティ チームがパッケージとそれに関連するメタデータを削除するのが一般的です。しかし残念なことに、こうした行為は公に記録されることなく行われることがよくあります。どのような悪意のあるパッケージが存在するかを発見するには、多くの多種多様な公開されているデータ、または独自の脅威インテリジェンスのフィードを介してデータをつなぎ合わせる必要があります。

悪意のあるパッケージに関するリポジトリは、オープンソース リポジトリで発見された悪意のあるパッケージのレポートを集約するパブリック データベースを作成することで、データのギャップを埋めるのに役立ちます。このデータベースには、悪意のある依存関係が CI/CDパイプラインを通過するのを阻止し、検出エンジンをより良くし、スキャンにより環境内での使用を防止し、インシデント対応を迅速化する可能性があります。

悪意のあるパッケージ情報を管理するリポジトリのレポートは、オープンソース脆弱性(OSV)形式を使用します。OSVは、オープンソース プロジェクトの脆弱性を示すために使用されるJSONフォーマットです。悪意のあるパッケージに対してOSV形式で情報を記述することで、 osv.dev APIosv-scannerツール、deps.devなどの既存のシステムと統合することができます。OSV形式は拡張可能でもあり、侵害の兆候や分類データなどの追加データを記録できます。

悪意のあるパッケージ情報を管理するリポジトリは、オープンなコミュニティ主導のプロジェクトです。データベースの網羅性を確保し、高水準の品質を維持するために、コミュニティ メンバーは、新しいレポートを投稿したり、既存のレポートを修正して注釈を付けたり、レポートに異議を唱えたりすることを推奨しています。このリポジトリは、信頼できる研究者がデータをリポジトリに迅速かつ効率的に提供できるよう、自動化された継続的な取り込みもサポートしています。

このリポジトリにはすでに15,000件を超える悪意のあるパッケージのレポートがあり、現在のデータはOpenSSFパッケージ分析プロジェクト、Checkmarxセキュリティ、およびGitHubが記録している悪意のあるパッケージの情報より提供を受けています。

参加する

将来を見据えて、パッケージ分析チームは、セキュリティ研究者からの貢献を通じてより多くのレポートを収集し、悪意のあるパッケージ専用のOSVスキーマへの拡張機能を定義することで、侵害の兆候や攻撃の分類など、悪意のあるパッケージに関する追加データでレポートを充実させることで、データベースを拡大し続けたいと考えています。この追加データは、研究者が個々の悪意のあるパッケージだけに焦点を当てるのではなく、傾向や特定の攻撃者を識別するのを助け、その結果、全体の対応策が向上します。

また、レポート データの使用方法を文書化したり、ツールやサービスと新たな連携方法を構築したりすることで、消費者がデータにアクセスしやすくすることもできます。私たちの目標は、データに簡単にアクセスできるようにして、コミュニティが攻撃に迅速に対抗できるようにすることです。

参加したいですか? プロジェクトの貢献ガイドラインを確認してください。パッケージやコードに貢献する方法を学ぶことができます。私たちのチームは、OpenSSFのPackage Analysis slackチャンネルでチャットすることができます。また、OpenSSF Securing Critical Projects Working Groupに参加して、プロジェクトについてさらに議論することもできます。

翻訳協力:松本央

著者について

Caleb BrownCaleb Brown

Caleb Brown は、Google オープンソース セキュリティ チームのシニア ソフトウェア エンジニアであり、業界で 20 年以上の経験があります。彼は現在、オープンソース パッケージの動作を理解し、悪意のあるパッケージを検出して報告するためのオープンソース ソリューションの構築に注力しています。

 

Jossef Harush KadouriJossef Harush Kadouri

Jossefはオープンソース コミュニティに貢献することが大好きで、Stack Overflowでは上位1%にランクされています。Jossefは、2021年に Checkmarxによって買収されたソフトウェア サプライ チェーン セキュリティ会社Dusticoを2020年に共同設立し、それ以前はいくつかのサイバーセキュリティ会社で働いていました。Jossefと彼の研究チームは、ソフトウェア サプライ チェーンの攻撃者を捜索し、エコシステムの安全を保っています。