悪意のあるnpmパッケージにVidarインフォスティーラーが含まれる

研究者によると、マルウェアは2週間リポジトリに存在しており、悪意のあるパッケージから身を守るための注意を呼びかけている。

悪意のあるコードがオープンソースリポジトリにアップロードされ続けており、責任ある開発者がそこにあるものを信頼することや、CISOがオープンソースコードを含むアプリケーションを信頼することが困難になっています。

最新の例はDatadog Securityの研究者によるもので、先月、npmリポジトリでダウンローダーマルウェアを含む17個のパッケージ(23リリース)を発見したと発表しました。このマルウェアはWindowsシステム上でpostinstallスクリプトを通じて実行されます。

これらの関連パッケージは、Telegramボットのヘルパーパッケージやアイコンライブラリ、CursorやReactなど既存プロジェクトの正規に見えるフォークを装っています。これらは正規の機能を提供しますが、実際の目的は被害者のシステムでVidarインフォスティーラーマルウェアを実行することです。Datadogは、Vidarマルウェアがnpmパッケージ経由で配布されたことが公に明らかになったのは今回が初めてだと考えています。

これらのパッケージを提供していた両アカウント(aartje および saliii229911)はすでに禁止されています。しかし、これらは約2週間レジストリに存在し、悪意のあるパッケージは少なくとも2,240回ダウンロードされました。ただし、研究者はこれらの多くは自動スクレイパーによるものであり、一部はパッケージが削除されて空のセキュリティ保持パッケージに置き換えられた後に発生したと考えています。

あらゆる種類の危険な事態

オープンソースコンポーネントの悪意ある改ざんは、あらゆる種類の危険な事態を引き起こす可能性があります。まず、脅威アクターが開発者の認証情報を盗み、コードにバックドアを挿入することができます。次に、ダウンロードされたコンポーネント自体に含まれる悪意のあるコードが、開発者の顧客に世界中へ拡散する可能性があります。

Datadogの発見は、npm、PyPI、GitHub、その他のオープンソースリポジトリにアップロードされた悪意のあるコードの長いリストの中の一例にすぎません。

先週、Koi Securityはnpmで126個の悪意のあるパッケージを発見したと報告し、9月にはStep Securityの研究者が数十のnpmライブラリが認証情報を盗むコードに置き換えられていたと報告しました。同じ月に、Aikidoの研究者が非常に人気がありダウンロード数の多い18個のnpmパッケージが汚染されていたことを報告しました。

「新たに提出されたコードすべてに完全なセキュリティチェックを要求しない限り、この問題を簡単に解決する方法はわかりません。それは迅速でも安価でも簡単でもありません」と、KnowBe4のデジタル防衛CISOアドバイザーであるRoger Grimes氏はコメントしています。

「しかし、信頼できて安全なオープンソースコードを求めるなら、それが唯一の答えです。」

皮肉なことに、彼によれば、世界がオープンソースコードを利用する最大の理由の一つは、容易にレビューできること、つまり誰でも見て脆弱性を発見・阻止できるという点です。「しかし現実には、数千万行にも及ぶオープンソースコードのほとんどは誰もセキュリティレビューしていません」と彼は指摘します。

「デフォルトでより多くのコードレビューを実装しようとしたオープンソースプロジェクトは何十もありましたが、すべて失敗しています」と彼は述べています。「私がこれまで聞いた中で最も好きな関連の引用の一つは、『オープンソースコードを使う前にユーザーにレビューを求めるのは、航空機の乗客に飛行前にジェット機の外に出て安全性を確認するよう求めるようなものだ』というものです。誰が最初に言ったのかは分かりませんが、ボランティアによるオープンソースコードレビューが実際には機能しない理由を見事に要約しています。」

タイポスクワッティング

オープンソースソフトウェアのサプライチェーンに感染させようとする脅威アクターのお気に入りの戦術の一つがタイポスクワッティングです。これは、正規のパッケージ名に似た名前のパッケージを作成し、特定のライブラリを探している開発者を騙す手法です。例えば、2018年には脅威アクターがPythonリポジトリに偽のライブラリ「diango」「djago」「dajngo」などを作成し、人気の「django」Pythonライブラリを探している開発者を騙していたことが研究者により発見されています。

CISOは、従業員にタイポスクワッティングの問題について教育し、何に注意すべきかを学ばせるべきです。IT部門は、すべての承認済みソフトウェアで使用されているコンポーネントの包括的なインベントリを保持し、監査を実施できるようにして、承認されたコンポーネントのみが使用されていることを保証する必要があります。このインベントリと監査は、新しいコンポーネントが導入された際にそれを検証するために実施すべきです。

他にできることは?

オープンソースリポジトリの悪意のあるパッケージの被害を避けるために、開発者やIT・情報セキュリティリーダー向けのアドバイスは尽きません。

一つの戦術は、IT部門が取得するすべてのアプリケーションにソフトウェア部品表(SBOM)を含めることです。これにより、DevOps/DevSecOpsチームはソフトウェアコンポーネントを追跡し、脆弱性を特定し、コンプライアンスを確保できます。

2021年、米国サイバーセキュリティ・インフラセキュリティ庁(CISA)と米国国立標準技術研究所(NIST)は、ソフトウェアサプライチェーン攻撃からの防御という勧告を発表し、安全なオープンソースアプリの作成に関するアドバイスを提供しました。これは、サプライチェーンリスクが組織全体、経営層や運用担当者、IT、調達、法務、リスク管理、セキュリティなどの支援部門の担当者にまで注目されるよう、正式なサプライチェーンリスク管理プログラムの作成から始まります。

  • 構成を変更管理下に置くこと;
  • セキュリティ影響分析の実施;
  • ソフトウェア、オペレーティングシステム、ファームウェアを強化するためにメーカーが提供するガイドラインの実装;
  • 情報システムコンポーネントのインベントリの維持。

さらに、Open Source Web Application Security Project(OWASP)はnpmを利用する開発者に以下のアドバイスを提供しています:

  • インストールするサードパーティモジュールについて、必ず審査とデューデリジェンスを行い、その健全性と信頼性を確認する;
  • 新バージョンへの即時アップグレードは控え、パッケージの新バージョンがしばらく流通するのを待ってから試す;
  • アップグレード前に、アップグレード対象バージョンのチェンジログやリリースノートを必ず確認する;
  • パッケージをインストールする際は、ignore-scriptsサフィックスを追加して、サードパーティパッケージによるスクリプトの実行を無効化する;
  • ignore-scriptsを.npmrcプロジェクトファイルやグローバルnpm設定に追加することも検討する。

最後に、Datadogのセキュリティアドボカシー責任者であるAndrew Krug氏は、以下の追加のヒントを提供しています:

  • 開発者にインストール時のリアルタイムパッケージスキャンを実行できる権限を与える;
  • タイポスクワッティングや依存関係の混乱を防ぐため、承認済みパッケージのガードレールとして内部パッケージリポジトリの利用を優先する;
  • ソフトウェア部品表(SBOM)を維持する;
  • ソフトウェア開発ライフサイクルのすべての段階でSCA(ソフトウェア構成分析)を導入する。従来のSCAツールは定期的にコードのスナップショットを分析するだけですが、効果的な検出には、運用環境を含むデプロイ済みサービスへのリアルタイムの可視性が不可欠であり、問題の優先順位付けと、機密性の高い環境で露出している問題への集中が必要です。

本記事は元々InfoWorldに掲載されたものです。

翻訳元: https://www.csoonline.com/article/4086415/malicious-npm-packages-contain-vidar-infostealer-2.html

ソース: csoonline.com