悪用リスクに注意 プライベートなnpmパッケージの存在を外部から確認可能――セキュリティ研究者が発見

Aqua Securityのセキュリティ研究者がプライベートなnpmパッケージの存在の有無を確認する方法を発見した。この事象は既にGitHubに報告されているが、GitHubはアーキテクチャの制約によってこの手の攻撃を回避することはできないと回答している。

» 2022年10月15日 07時00分 公開
[後藤大地有限会社オングス]

この記事は会員限定です。会員登録すると全てご覧いただけます。

 オープンソースソフトウェアのエコシステム活用が進む中、サイバー犯罪者は人気のあるバージョン管理システムやホスティングサービスをサイバー攻撃に利用している。こうしたサイバー攻撃のルートとしてNode.jsのデフォルトのパッケージマネジャー「npm」の悪用が進む可能性がある。

 Aqua Securityは2022年10月12日(現地時間)、同社のブログでプライベートなnpmパッケージの存在の有無を確認する方法が存在すると伝えた。この方法を利用されるとプライベートに保持しているnpmパッケージを犯罪者に知られる可能性があり、そのリストを使ってサイバー攻撃を実施される可能性があるとされている。

Aqua Securityは、プライベートなnpmパッケージに関する脅威アラートを公開した(出典:Aqua SecurityのWebサイト)

プライベートnpmが存在するかどうかを調べる方法

 Aqua Securityのセキュリティ研究者が発見したのは一連のnpm API要求を連続して送信し、対応時間を計測する方法だ。約5回の連続送信でプライベートパッケージが存在するかどうか、または過去には存在していたが現在は削除されているかどうかを調査できるとされている。

 サイバー攻撃には、任意の正規パッケージを装って実際にはその中に悪意あるコードを忍ばせるという手法があるが、今回Aqua Securityが発見した方法もこうしたサイバー攻撃に悪用される可能性がある。

 Aqua SecurityはすでにGitHubに同脆弱(ぜいじゃく)性を報告している。しかしGitHubは「アーキテクチャの制限によって、タイミング攻撃を使って特定のプライベートパッケージがnpmに存在するかどうか調べるのを防ぐことは難しい」と回答している。つまりこの方法は今後長期にわたって存在し続ける可能性が高いと言える。

 Aqua Securityは対策として、パッケージ管理プラットフォームにおける組織のプライベートパッケージとパブリックパッケージの一覧を収集し、プライベートパッケージと同じ名前のパッケージが他に存在していないかどうか、あえて間違いやすいように似た名前を使ったパッケージが存在しないかどうかを調査し、存在する場合にはそれらのパッケージにマルウェアが含まれているかどうかを確認することを推奨している。

 また事前にサイバー攻撃に利用されることを防ぐために、プライベートパッケージと同じ名前のパブリックパッケージが存在しなかった場合には、プレースホルダーとして同じ名前でパブリップパッケージを作成することを検討するようにアドバイスしている。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ