Snyk
Snyk はコードの脆弱性を自動で検知するツールです。
登録・導入〜実行
1. 登録
Snyk のアカウントを作ります。
2. 導入
npm パッケージとして導入します。
npm install -g snyk
3. 認証
次を実行するとブラウザが開いて認証画面が出ます。
snyk auth
4. 分析
プロジェクトルートに移動して次を実行すると分析が始まります。
snyk monitor
URL が表示されるのでブラウザで開くと分析結果のダッシュボードが見られます。
使う対象
2020 年の 6 月頃に作って放置していた React で UI を構築している electron アプリに Snyk を使いました。
出てきた脆弱性
重大性が High とされたものについてはその内容を調べました。
Command Injection
脆弱なアプリケーションを介して OS 上で任意のコマンドを実行できる脆弱性です。
Regular Expression Denial of Service
正規表現の計算量が膨大になる入力が存在するという脆弱性です。
Prototype pollution
Javascript のプロトタイプを汚染して、オブジェクトの初期値を操作することができる脆弱性。
Arbitrary File Overwrite
シンボリックリンク保護が不十分な脆弱性。
対応
パッケージのバージョンを上げると検知された脆弱性は解消されました。
まとめ
1年半放置した結果、多くの脆弱性が発見できる状態になっていました。
パッケージはアップデートに伴って脆弱性を解消していっています。
可能な限り最新版に保ちましょう。