GitHubがDependabotのマルウェアアラートを拡張、8つのエコシステムで悪意あるパッケージを検出

GitHubは、npmに限定されていたDependabotのマルウェアアラートの対象を拡大し、PyPI、Maven、RubyGems、NuGet、Go、crates.io、PHP Composerを含む複数のパッケージエコシステムにわたって悪意のある依存関係の検出を可能にしました。

Antivirus& Malware

今回の展開は、OpenSSFの悪意あるパッケージリポジトリ向けに新設されたGitHub Advisory Databaseインポーターによって支えられており、これら8つのエコシステム全体にわたるサプライチェーン検出を強化するものです。

GitHubがDependabotのマルウェアアラートを拡張

これまでGitHubのマルウェアアラートシステムはnpmに特化しており、同社独自の検出能力に依存していました。エコシステムごとに個別の検出システムを構築するのは時間がかかるうえ、広範な保守作業が必要になります。

そこでGitHubは、Open Source Vulnerabilities(OSV)形式でまとめられた15,000件超のマルウェア報告を含み、コミュニティおよび自動化されたソースの双方から情報提供を受けているOpenSSFのフィードを統合する道を選びました。

パッケージエコシステム マルウェアアラート対応 代表的な悪意あるパッケージのリスク
npm 対応 タイポスクワッティング、認証情報窃取、悪意あるインストールスクリプト
PyPI 対応 依存関係の混同、トロイの木馬化されたPythonパッケージ、トークン窃取
Maven 対応 改ざんされたアーティファクト、悪意あるJavaライブラリ、ネームスペースの悪用
RubyGems 対応 バックドア入りgem、アカウント乗っ取り、依存関係の差し替え
NuGet 対応 悪意ある.NETパッケージ、タイポスクワッティング、サプライチェーン侵害
Go 対応 汚染されたモジュール、悪意ある依存関係、リポジトリのなりすまし
crates.io 対応 Rustクレートのタイポスクワッティング、組み込みマルウェア、メンテナーの侵害
PHP Composer 対応 バックドア入りPHPライブラリ、Webシェルの展開、パッケージのなりすまし

このリポジトリは、タイポスクワッティング、依存関係混同攻撃、メンテナーアカウントの侵害、悪意あるビルド済みバイナリといった脅威を監視しています。

GitHubのインポーターは変更されたファイルを精査し、必須のスキーマフィールドと型に照らして各OSVレコードを検証したうえで、無効なエントリはAdvisory Databaseに到達する前に拒否し、ログに記録します。このフェイルクローズ方式により、不正な形式の報告が気づかれないまま修正・公開されることを防いでいます。

検証を通過したレコードは、ソース、識別子、判明している場合はCVE、上流アドバイザリの保存済みスナップショット、そしてGitHubの公開パイプラインに必要なデータを含む正規化されたフィードエントリに変換されます。

正規化処理では、エコシステム名の表記揺れ、影響を受ける特定バージョンのリスト、欠落しているバージョン情報、内容の乏しい説明文、重複する報告、取り下げられたアドバイザリといった不整合に対処しています。例えば、OpenSSFでは「PyPI」と呼ばれるものが、GitHubのデータベースでは「pip」というエコシステム名で扱われています。

GitHubはまた、自社のnpmマルウェアアドバイザリが自社のデータベースに逆流してしまう事態を防ぐ必要もありました。GitHub自身がOpenSSFのリポジトリに報告を提供しているため、インポーターはOSVの出所メタデータを確認し、「ghsa-malware」とタグ付けされたエントリはすべて破棄します。

Antivirus& Malware

実データによる検証の過程で、GitHubは毎月新たに提出されるnpm関連の報告のうち半数以上が、フィードを経由して舞い戻ってきた自社のアドバイザリであることを発見しました。

このパイプラインには、不正確な上流の情報がもたらしうる被害を抑えるための安全策が組み込まれています。設定可能なバッチ上限により、提案されたアドバイザリの件数が指定された閾値を超えた場合には、一部だけを公開するのではなく、インポート処理そのものを完全に停止できます。

インポートされた各アドバイザリは、由来の確認やインシデント調査のために上流のコミットとひも付けられます。

さらに、バッチ単位でまとめてロールバックすることも可能で、これにより個々のレコードを手作業で削除することなく、侵害されたインポートを取り除くことができます。

標準的な脆弱性アドバイザリとは異なり、これらのマルウェアアドバイザリは自動的に公開され、Dependabotアラートを生成することができます。GitHubは、パッケージのインストールによって認証情報が即座に流出したり、有害なコードが実行されたりする可能性があるため、迅速性が極めて重要だと強調しています。

同社は、誤検知やパッケージ名の誤り、上流での侵害といったリスクがあることを認めています。それでも、上限設定や由来の追跡、バッチロールバックの仕組みによって、こうした事態を軽減できるとしています。

マルウェアアラートは、リポジトリ・組織・エンタープライズの各レベルで引き続きオプション機能として提供されます。有効化すると、Dependabotは宣言された依存関係をマルウェアアドバイザリと照合し、既存のレコードを更新します。これにより開発チームは、ソフトウェアのサプライチェーンにすでに存在している可能性のある悪意あるパッケージについて、より高い可視性を得られるようになります。

新たなフィッシングやマルウェアが貴社を侵害する前に阻止しましょう。 世界中の15,000のSOCからのライブインテリジェンスを統合

翻訳元: https://gbhackers.com/github-expands-dependabot-malware-alerts/

ソース: gbhackers.com