セキュリティ4 択難易度 標準

状況

CI の npm audit で、直接は使っていない依存(依存の依存)に深刻度 critical の脆弱性が報告された。npm audit fix --force を使うと、主要なライブラリのメジャーバージョンが上がると表示されている。

対応として最も適切なものは?

正答

  1. 直接使っていない依存なので、影響はないものとして記録だけ残す
  2. 表示に従って本番ブランチで --force を実行し、そのままデプロイする
  3. CI が落ちて開発が止まらないよう、npm audit を CI から外しておく
  4. 影響する使い方か確かめ、更新を作業ブランチで試してテストを通す

解説

直接 import していなくても、依存の依存はアプリと一緒に動いており、脆弱な機能が使われていれば攻撃される。まず公開された情報で、どの機能にどんな条件で影響するかを確かめる。npm audit fix --force は、互換性のないメジャーバージョンへの更新も含めて実行するため、確かめずに本番ブランチで実行してそのまま出すと、別の不具合で止まりかねない。作業ブランチで更新し、テストと動作確認を通してから出す。すぐ直せないときは、影響の有無と期限を決めて記録する。CI から検査を外すのは、警報を止めて火事を見なくするのと同じ。

参考: docs.npmjs.com

dependencynpm-auditvulnerability

この問題を含む セキュリティ のテストを制限時間つきで解く

セキュリティクイズへ