BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 悪質なバックドアを含むパッケージがNPMに

悪質なバックドアを含むパッケージがNPMに

原文(投稿日:2018/05/06)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

NPMのセキュリティチームは、実際に悪意のあるバックドアを含んでいた、Cookieパーサになりすましているパッケージを、それに依存する他の3つのパッケージとともに削除した。バックドアにより攻撃者は実行中のサーバに任意のコードをインジェクトして実行することができた。

NPMの報告によると、getcookiesパッケージには、gCOMMANDhDATAiとしてフォーマットされたデータを探してHTTPヘッダーをパースした悪質なコードが含まれていたことが確認された。3つの異なるコマンドが利用できた。

  • 0xfffeでコードバッファをリセットする。
  • 0xfffaでバッファにあるコードを実行する。これは、vm.runInThisContextを実行することで達成される。
  • デフォルトでは、実行のためにリモートコードをメモリにロードする。

getcookiesと共に、他の3つのパッケージがレジストリから削除された。それは、express-cookieshttp-fetch-cookies、および廃止予定であったが広く使われているmailparserである。

NPMスタッフは次のとおり述べている。

npm Registryに公開されたパッケージには、バックドアを引き起こすような悪質なモジュールを使用したものは1つもありません。

しかし、悪質なパッケージを使用する外部アプリケーションが悪用される可能性がある。

一連の騒動について不可解な点として、mailparserパッケージは、今も毎週約64,000件ダウンロードされているが、どのような方法でも悪質なモジュールを使用していなかった。 NPMのセキュリティチームによると、これは将来の攻撃を実行するための準備段階であると説明できる。あるいは、get-cookieshttp-fetch-cookiesの評判を高めてより多くの開発者がそれをもっと使うように仕組む方法であると説明できる。

この発表により、Node開発者の間で多くの反応があった。この種の問題はNPMも例外でないことが一般的に認められているが、NPM特有の特徴によって実際にそのような問題が発生する可能性がより高いとのコメントがあった。特に、NPMパッケージの役割が小さく、最小限の機能セットに焦点を当てる場合、一般的にはアプリケーションは非常に多数の外部モジュールに依存し、それは数百に上る場合も多い。その場合、すべての依存関係を監査して、それらがすべて合法であることを保証することが特に困難になる。さらに、NPMを使用すると、開発者は最小のバージョンで依存関係を表現できる。例えば、mailparser@^2.2.0は、メジャー番号を変更しない上位バージョンは互換性があるとみなされnpm installを実行するとインストールされる。これにより、依存関係の監査がさらに困難になる。

mailparserのように、もはや管理されておらず、数か月間更新されなかったパッケージが、未使用の依存関係を含む3つの新しいバージョンを取得する方法は明らかでない。さらに、mailparser GitHubリポジトリには、NPMに公開された悪意のあるバージョン2.2.1、2.2.2、2.2.3に変更された形跡がない。したがって、mailparserの作者が悪意のある依存関係を追加するように仕組まれたか、未知のNPMの脆弱性が悪用されて、作者が知らないうちに新しいバージョンを公開したかは分からない。InfoQはこの件について、詳しい情報が新しく入り次第、報告する。

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

BT