ua-parser-js 事件まとめ
UAParsesr.js
ブラウザの UserAgent をパースして、ブラウザのバージョン、OS のバージョン、CPU などの各種情報を取り出してくれるツール
週間DL数 800万+
事件
2021年10月22日に ua-parser-js の作者の npm アカウントが乗っ取られた
攻撃者は 0.7.28、0.8.0、1.0.0 にそれぞれ攻撃コードを仕込んだ状態で npm 上に publish した
攻撃発生から4時間後にOSSコミュニティと作者が気づいて対応。問題のあるバージョンを npm から削除して、正常なバージョンをリリースして問題解消。
攻撃手段
ua-parser-js の preinstall スクリプトでマルウェアをダウンロードして実行するようなコードが仕込まれていた
OS が Linux の場合、暗号通貨のマイニングソフトウェアを DL して実行
OS が Windows の場合、暗号通貨マイニングソフトウェア + 100種類ぐらいのソフトウェア(含むブラウザ)のパスワード抜き取りソフトを DL して実行
OS が Mac の場合は特に無し
補足: IPアドレスがロシア/ウクライナ/ベラルーシ/カザフスタンの場合は攻撃を実行しない、というロジックも入っている
補足:
事件の数日前に別のパッケージ名で予行演習しているのを sonatype という会社が発見していた
影響を受けているかどうか
攻撃開始から解消までの4時間の間に、lock ファイルを使わないで npm install / yarn install をしていた場合に攻撃を受けている可能性がある
今後の対策
なるべくロックファイルを使って install する事を心がける
ロックファイルを使わないインストールをする場面をなるべく限定する
参考:
攻撃手法の細かい解説あり