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