eSecurity Planetは10月12日(米国時間)、「Vulnerable API Exposes Private npm Packages|eSecurityPlanet」において、サイバー攻撃者によってプライペートなnpmパッケージが公開されてしまう危険性があると伝えた。セキュリティ研究者の調査により、npmのAPIに対してタイミング攻撃を行われることで、プライベートのnpmパッケージの存在が暴かれることが明らかとなった。
今回、サイバー攻撃者がnpmパッケージが存在するかを判断するために複数の連続したリクエストを送信することがわかった。このタイミング攻撃は、「https://registry.npmjs.org/@< scope_name>>/< secret_package_name>」のようなエンドポイントをリクエストしようとする不正または未認証のユーザーに対してnpmが404エラーを返すことで機能する。存在するプライベートパッケージと存在しないプライベートパッケージの検索にかかる時間を比較することで、プライペートパッケージの存在が攻撃者にばれてしまうとのことだ。
攻撃者はプライベートパッケージの存在を知ることで、正当なプライベートパッケージを装った悪意のあるパブリックパッケージを作成し、開発者をだましてダウンロードさせる可能性がある。
この問題の緩和策としてすべてのプライベートおよびパブリックパッケージを記録することが推奨されている。また、タイポスクワッティングやなりすましのパッケージを探す必要があるとし、内部のプライベートパッケージと同じ名前のパッケージが他にないことを確認すること、類似のパッケージを見つけた場合はマルウェアが含まれていないことを確認し、関連する利害関係者に通知することなどが推奨されている。