AWSのコンテナイメージスキャン⼿法をまとめてみたAWS事業本部コンサルティング部2022/08/04たかくに1
View Slide
2⾃⼰紹介
3⾃⼰紹介名前︓たかくに所属︓AWS事業本部コンサルティング部⼊社︓2022年1⽉にジョイン好きなAWSサービス︓Amazon VPCTwitter︓@takakuni_
4シフトレフトって何︖世はシフトレフト時代・製品開発などで⾏われる特定の⼯程を通常よりも前倒しして実施すること。・今回のコンテナイメージスキャンなどの脆弱性テストつまりどういうこと︖「運⽤でカバー」を減らしていく動き「What CISOs Are Saying: Shifting Left」より引⽤
5なんで流⾏っているの︖世はシフトレフト時代「How Snyk helps satisfy White House cybersecurity recommendations」より引⽤InstanceOn-premiseServeror開発者の守備範囲が広がって来た。
6なんで流⾏っているの︖世はシフトレフト時代「How Snyk helps satisfy White House cybersecurity recommendations」より引⽤InstanceOn-premiseServerorAWS Fargate Amazon ECS Amazon EKSAWS CDK AWS CloudFormation Terraform開発者の守備範囲が広がって来た。
7なんで流⾏っているの︖世はシフトレフト時代開発者の守備範囲が広がって来た。「How Snyk helps satisfy White House cybersecurity recommendations」より引⽤InstanceOn-premiseServerorAWS Fargate Amazon ECS Amazon EKSAWS CDK AWS CloudFormation Terraform得意︖
8OWASP Top10「OWASP Top 10 - 2021 へようこそ」より引⽤A04:2021-安全が確認されない不安な設計2021年に新設されたカテゴリーで、設計上の⽋陥に関するリスクに焦点を当てています。⼀業界として、我々が純粋に「シフトレフト」することを望むのであれば、脅威モデリングや、安全な設計パターンと原則、また、リファレンス・アーキテクチャをもっと利⽤していくことが必要です。安全が確認されない不安な設計は完璧な実装によって修正されることはありません。定義上、(つまり設計⾃体が問題なので)特定の攻撃に対して必要なセキュリティ対策が作られることがありえないからです。
9第⼀歩として、コンテナセキュリティ
10今⽇話すところ世はシフトレフト時代・コンテナイメージスキャン※コンテナラインタイムセキュリティは話しません。「How Snyk helps satisfy White House cybersecurity recommendations」より引⽤InstanceOn-premiseServerorAWS Fargate Amazon ECS Amazon EKSAWS CDK AWS CloudFormation Terraform
11コンテナイメージスキャン⼿法世は今回は次の⼿法を説明・ECR イメージスキャン(ベーシックスキャン)・ECR イメージスキャン(拡張スキャン)・docker scanコマンド・Snyk Container
12ECR イメージスキャン(ベーシックスキャン)世は・ECRで⾏うスキャン・Clair プロジェクトの共通脆弱性識別⼦ (CVE) データベースを使⽤・⼿動スキャンと⾃動スキャン(Scan on Push)が選べる・⼿動スキャンは24時間に1回まで・無料
13ECR イメージスキャン(拡張スキャン)世は・Inspectorがサービスロールを使ってスキャン・ 複数のデータベース(Snyk, GitHub Advisory Databaseなど)を使⽤・⾃動スキャンのみサポート・(デフォルト)初回Push時 、関連する新しい CVE が公開されたとき・有料
14ベーシックスキャンと拡張スキャンを⽐較世は拡張スキャンの場合・OSに加えてプログラミング⾔語パッケージもスキャン対象・対応OSも若⼲異なる。(SUSEをサポート)・ AWS Security Hub、Organizationsとの統合ベーシックスキャンの場合・導⼊のしやすさ(Inspectorの有無)・出⼒結果(InformationalやUndefinedをどうするか)
15docker scan コマンド世は・docker-scan-pluginを利⽤したスキャン・ローカルのDockerイメージに対して⾏う、CLIベースのスキャン・ Snykのデータベースを使⽤・無料(Docker Hubの1ユーザーあたり毎⽉10回まで)「Docker ローカルイメージに対するぜい弱性スキャン」より引⽤
16Docker Hub世は・Docker Hub上で脆弱性スキャン・イメージスキャンの仕様は、docker scanと同じ・有料(Pro、Team、Business プランで利⽤可能)「Docker Hub のぜい弱性スキャン」より引⽤
17まとめてみたベーシックスキャン 拡張スキャン docker scan Docker Hub脆弱性データベースClair Snyk, GitHubなど Snyk Snykスキャン範囲 OSのみ OS, ⾔語パッケージ OS, ⾔語パッケージ OS, ⾔語パッケージスキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動料⾦ 無料 有料無料※10回/⽉有料※プランの機能
18まとめてみたベーシックスキャン 拡張スキャン docker scan Docker Hub脆弱性データベースClair Snyk, GitHubなど Snyk Snykスキャン範囲 OSのみ OS, ⾔語パッケージ OS, ⾔語パッケージ OS, ⾔語パッケージスキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動料⾦ 無料 有料無料※10回/⽉有料※プランの機能
19Snykってなんぞや︖
20Snyk世は開発者が利⽤するために作られたセキュリティプラットフォーム次の製品を提供・Snyk Container︓コンテナのイメージスキャン・Snyk Code︓プログラミングコードの脆弱性スキャン・Snyk Open Source︓オープンソースライブラリの脆弱性スキャン・Snyk IaC︓Infrastructure as Codeの静的スキャン「Snyk Press Kit」より引⽤
21Snyk世は開発者が利⽤するために作られたセキュリティプラットフォーム次の製品を提供・Snyk Container︓コンテナのイメージスキャン・Snyk Code︓プログラミングコードの脆弱性スキャン・Snyk Open Source︓オープンソースライブラリの脆弱性スキャン・Snyk IaC︓Infrastructure as Codeの静的スキャン「Snyk Press Kit」より引⽤
22まとめてみたベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container脆弱性データベースClair Snyk, GitHubなど Snyk Snyk ︖スキャン範囲 OSのみ OS⾔語パッケージOS⾔語パッケージOS⾔語パッケージ︖スキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ︖料⾦ 無料 有料無料※10回/⽉有料※プランの機能︖New
23Snyk Container世は・Snyk CLIでローカルスキャン or コンテナレジストリと統合して⾃動スキャン・ECRと統合する場合はIAMロールを使⽤する・Snykのデータベースを使⽤・OSに加えてプログラミング⾔語パッケージもスキャン対象・「⽇次」や「週次」の定期スキャン、新しい CVE が公開された場合・無料と有料プランがある(無料プランは100回/⽉までテスト可能)
24まとめてみたベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container脆弱性データベースClair Snyk, GitHubなど Snyk Snyk Snykスキャン範囲 OSのみ OS⾔語パッケージOS⾔語パッケージOS⾔語パッケージOS⾔語パッケージスキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ⼿動/⾃動料⾦ 無料 有料無料※10回/⽉有料※プランの機能無料/有料※無料100回/⽉
25疑問その1ベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container脆弱性データベースClair Snyk, GitHubなど Snyk Snyk Snykスキャン範囲 OSのみ OS⾔語パッケージOS⾔語パッケージOS⾔語パッケージOS⾔語パッケージスキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ⼿動/⾃動料⾦ 無料 有料無料※10回/⽉有料※プランの機能無料/有料※無料100回/⽉🤔 同じデータベース︖
26Yes# docker scan コマンドdocker scan public.ecr.aws/docker/library/neo4j > result_docker.txt# Snyk CLIを使⽤したSnyk Container コマンドsnyk container public.ecr.aws/docker/library/neo4j --app-vulns > result_snyk.txt# 差分diff result_docker.txt result_snyk.txt# 出⼒結果(抜粋)409a410,411> Learn more: https://docs.snyk.io/products/snyk-container/getting-around-the-snyk-container-ui/base-image-detection>コマンドで出⼒結果を確認
27疑問その2ベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container脆弱性データベースClair Snyk, GitHubなど Snyk Snyk Snykスキャン範囲 OSのみ OS⾔語パッケージOS⾔語パッケージOS⾔語パッケージOS⾔語パッケージスキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ⼿動/⾃動料⾦ 無料 有料無料※10回/⽉有料※プランの機能無料/有料※無料100回/⽉🤔 同じデータベース︖
28No拡張スキャンは、Snykのデータベースを⼀部利⽤している【拡張スキャン︓全体】緊急︓10、⾼︓9、中︓20、低︓6【拡張スキャン︓Snykのみ】緊急︓2、⾼︓2、中︓9、低︓2【Snyk Container】緊急︓2、⾼︓98、中︓7、低︓46
29まとめ世は・Dockerイメージスキャンにはさまざまな⽅法がある・docker scanとSnyk Containerは同じ出⼒結果・利⽤形態や無料枠に注意・ECR拡張スキャンの⼀部にSnykが使われている・スキャン結果に優劣があるわけではない・「量より質」は忘れてはならない・紹介したスキャン⽅法以外にも「Sysdig」や「Trivy」も有名だよ
30