snyk monitorコマンドでプロジェクトをSnykに登録して脆弱性を継続的に監視する
こんにちは、CX事業本部 IoT事業部の若槻です。
前回のエントリでは、Snyk CLIのsnyk test
コマンドを使用して、プロジェクト内の脆弱性をスキャンしてみました。
そしてこの脆弱性(およびライセンスの問題)のスキャンを継続的に行ってくれるコマンドがsnyk monitor
です。
今回は、snyk monitorコマンドを使用して、プロジェクトをSnykに登録して脆弱性を継続的に監視してみました。
前提
Snykアカウント
まだの場合はSnykアカウントにサインアップしておきます。
ちなみにSnykは個人又は小規模なチームであれば無料で利用可能です。詳しくは下記を御覧ください。
環境
Snyk CLIを使用する端末の環境情報です。
$ node --version v14.17.0 $ npm --version 8.5.0 $ sw_vers ProductName: macOS ProductVersion: 11.6 BuildVersion: 20G165 $ snyk --version 1.859.0
スキャン対象
AWS CDKプロジェクトを作り、さらにその配下にReactプロジェクトを作ります。これらのnpmプロジェクトをスキャン対象とします。
$ mkdir aws-cdk-v2-app && cd aws-cdk-v2-app $ cdk init --language typescript $ npx create-react-app web
CDKプロジェクトaws-cdk-v2-app
の配下にReactプロジェクトweb
がある構成です。
やってみた
snyk monitor
コマンドを実行してみます。--all-projects
オプションを使用すれば、ワーキングディレクトリ配下のすべてのプロジェクトを対象とできます。
$ snyk monitor --all-projects Monitoring /Users/wakatsuki.ryuta/projects/cm-rwakatsuki/aws-cdk-v2-app (aws-cdk-v2-app)... Explore this snapshot at https://app.snyk.io/org/cm-rwakatsuki/project/eb23630e-ed53-4a9a-906b-45d6fdaf902c/history/7fcd8bd4-2d9b-40e2-b258-d4e2aa97b6dd Notifications about newly disclosed issues related to these dependencies will be emailed to you. ------------------------------------------------------- Monitoring /Users/wakatsuki.ryuta/projects/cm-rwakatsuki/aws-cdk-v2-app (web)... Explore this snapshot at https://app.snyk.io/org/cm-rwakatsuki/project/a83cca92-5cc1-48d5-8f94-bce540305975/history/ef4c0d82-1415-4b6a-82a7-1eea7530c022 Notifications about newly disclosed issues related to these dependencies will be emailed to you.
検知されたaws-cdk-v2-app
およびweb
の2つのプロジェクトのスナップショットがSnykに登録されました。そして登録直後にweb
プロジェクトの方で2つの脆弱性が検知された旨のメール通知がSnykアカウントのメールアドレス宛に早速届きました。
また、コマンドの実行結果に出力されているそれぞれのURLにアクセスしてみると、プロジェクトの登録情報や、検知された既知の脆弱性の一覧が確認できます。
aws-cdk-v2-app
の方は、既知の脆弱性はないため表示されていません。
web
の方は、2件の脆弱性が確認できます。先程メール通知されたものと同じです。
脆弱性はフィルターを使用して柔軟に表示を絞り込むことが出来ます。
登録したプロジェクトのスナップショットに対する脆弱性の監視は継続的に行われ、新しい脆弱性が検知された際には都度先程のようなメール通知が行われます。
メール通知の設定はAccount Settingsから変更可能です。リポジトリ毎やプロジェクト毎の通知基準を設定できます。
GitHub統合との比較
リポジトリのGitHub統合(GitHub integration)を使用すれば常にプロジェクトの最新をスキャン対象とできます。
それに比べるとsnyk monitor
はプロジェクトに変更がある都度スナップショットの登録を更新する必要がありますが、GitHubへのアクセス権限などは不要なため、GitHub統合と比べて簡単に脆弱性監視ができるというメリットがあると思います。
参考
以上