JavaScript および Node.js 用の Node Package Manager を担当する企業 NPM は、水曜日に Web Cookie モジュールを改ざんしようとした悪質な人物を捕まえ、重大な被害が出る前にその人物と関連コードを排除することに成功した。
これは、ここ数年、ますます人気が高まっているライブラリ コレクションに関連するいくつかのセキュリティ問題を解決する必要があったコード レジストリにとって良い兆候です。
1月、NPMは自動スパム対策システムが推奨する制裁措置を審査しなかったため、開発者アカウントを誤って削除しました。また昨年8月には、NPMは2週間続いたタイポスクワッティング攻撃を見逃しました。
今回は、プロセスがもう少し外科的になりました。
「5月2日早朝、NPMセキュリティチームは、Cookie解析ライブラリを装いながらも悪意のあるバックドアを仕込んだパッケージに関する報告を受け、対応しました」と、セキュリティエンジニアのアダム・ボールドウィン氏はブログ投稿で明らかにしました。「調査の結果、3つのパッケージと、4つ目のパッケージの3つのバージョンがNPMレジストリから非公開となりました。」
不運なLinuxボックスがNPMコードアップデートとパッチの適用で蹂躙される
続きを読む
バックドアが仕込まれたパッケージは と呼ばれていましたgetcookies
。他に 2 つのパッケージ が関与しておりexpress-cookies
、 にgetcookies
は が含まれており、http-fetch-cookies
にはexpress-cookies
(したがって が含まれていましたgetcookies
)。4 番目のパッケージ は、 3 つの連続したバージョンにmailparser
組み込まれていました。http-fetch-cookies
このバックドアは、HTTPをスキャンしてコマンド文字列を探すように設計されていますrequest.headers
。Express.jsフレームワークと侵害されたモジュールのいずれかを使用してWebアプリケーションをセットアップした場合、攻撃者はリモートコマンドをWebリクエストとして送信し、アプリケーションと同じ権限レベルで任意のコードを実行する可能性があります。
調査の結果、NPMは悪意のあるコードに関連するdustin87のアカウントと、未公開のgetcookies
、を削除しました。express-cookies
また、安全でないモジュールを組み込んでいた3つのバージョン(2.2.3、2.2.2、2.2.1)http-fetch-cookies
も削除し、不正な亜種の出現を防ぐため、に関連付けられたNPMトークンをリセットしました。mailparser
http-fetch-cookies
mailparser
ボールドウィンmailparser module
氏によると、 は非推奨となっている。つまり、もはや推奨されておらず、可能な場合は製品コードから削除する必要があるということだが、それでも週に 64,000 回もダウンロードされているという。
長期戦を戦う
ボールドウィン氏は、 The Registerとの電話インタビューで、今回の攻撃はexpress-cookies
、 とのダウンロード数を水増ししてhttp-fetch-cookies
、開発者がウェブアプリケーション作成用の人気JavaScriptフレームワークである Express.js と組み合わせて と を使用するように人気があるように見せかけるためのものだと考えていると述べた。
この計画には、見かけ上の人気を誇張し、正当性を高めるために、それをhttp-fetch-cookies
含めるものの実際には使用しないことが含まれていました。mailparser
ボールドウィン氏は、攻撃者が何らかの方法で認証情報を入手しmailparser
、それを使用して侵害されたコードのバージョンを公開したと推測しています。
ボールドウィン氏は、NPM レジストリに公開されたパッケージには、バックドアを機能させるような方法で悪意のあるモジュールが組み込まれていなかったと主張している。
ただし、開発者が Express.js アプリケーションを作成し、悪意のあるモジュールの 1 つを組み込んだ場合、そのアプリケーションはバックドアを通じてアクセス可能になります。
「攻撃者は、このバックドアで使用されるペイロードを作成するために別のアプリケーションを使用した可能性が高いと考えています」とボールドウィン氏はThe Registerへの電子メールで述べた。
「これらのバックドア付きモジュールの目的は、Express ベースのアプリケーションに組み込めるほど正当なものに見せることでした。いったん導入されると、攻撃者はこのバックドアを通じてこれらのシステム上でリモートからコマンドを実行できる可能性があります。」
NPMは、問題を起こす人が集まることを認識し、セキュリティ体制を強化してきました。先月、Node Security Platformを開発し、Baldwinも含まれるグループである^Lift Securityを買収しました。先週は、脆弱なモジュールのインストールを試みた場合の警告や「audit」コマンドなどのセキュリティ機能を備えたnpm@6をリリースしました。
ボールドウィン氏は、NPM のレジストリには現在約 70 万個のパッケージと約 1,000 万人のユーザーが登録されており、マルウェアを配布しようとする人々を引きつける場所になっていると説明した。
「今後もこのようなソフトウェアを公開しようとする人は出てくるでしょう」と彼は述べた。「ここで覚えておくべきことは、誰でもNPMレジストリにコードを公開できますが、それが他の人に使われるという保証はないということです。仮に使われたとしても、悪意のある結果につながるような使い方をされるとは限らないのです。」®