
Snyk ContainerでDockerfileをスキャンしてみる
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Snyk Containerでは、イメージに対してだけではなく、Dockerfileに対してもスキャンが可能です。
Scan your Dockerfile | Snyk User Docs
コンテナをBuild・Pushをする前にスキャンができるため、より早い段階で脆弱性を検知できます。
今回は、Snyk ContainerのDockerfileのスキャンを試してみました。
やってみた
Dockerfileを含んだリポジトリの用意
Snykのデモ用のリポジトリをフォークして使います。リポジトリは以下です。
ちなみに、Snyk Code & Open Sourceを試してみたい場合は、このリポジトリを使う以下のワークショップがおすすめです。
snyk-japan/snyk-sca-sast-workshop
Snykにリポジトリをインポート
Snykのコンソールで作業をします。
Snyk GitHub Integrationをまだ設定していない場合は、以下を参考に設定してください。
Projects -> Add projects -> GitHubの順に選択します。

前の手順でforkしたjuice-shopにチェックをつけて、Add selected repositoriesを選択します。

ターゲットにリポジトリが追加されていることを確認できます。

スキャン結果の確認
ターゲットリポジトリ名を選択すると、各Projectで検知された脆弱性の数が確認できます。
Dockerfileを選択して、詳細を確認します。

脆弱性の種類や概要、深刻度CWEといった情報が確認できます。


修正対応のPull Request作成
脆弱性の検知ができたので、修正を行います。
Snykで修正対応のPull Requestを作ることができます。
Open a fix PRを選択します。

以下のPull Requestが作成されました。
説明には、どの脆弱性を修正されるか等が記載されています。

ファイルの変更でイメージのバージョンが上がっていますね。

Pull Requestをマージすると、Snyk上でもイメージのバージョンが上がっていることを確認できました。(画面上部のRetest nowから手動でテストを再実行することも可能。)

おわりに
SnykでDockerfileスキャンをやってみました。
コンテナイメージだけではなく、Dockerfileもスキャンすることでより早い段階で脆弱性を検知することができます。
連携も簡単なのでぜひ試してみてください。
以上、AWS事業本部の佐藤(@chari7311)でした。






