Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JAWS-UG 朝会 #36 登壇資料

08dd0b93e011904f40d60d5a1b54c671?s=47 takakuni
August 04, 2022

JAWS-UG 朝会 #36 登壇資料

08dd0b93e011904f40d60d5a1b54c671?s=128

takakuni

August 04, 2022
Tweet

More Decks by takakuni

Other Decks in Technology

Transcript

  1. AWSのコンテナイメージスキャン⼿法をまとめてみた AWS事業本部コンサルティング部 2022/08/04 たかくに 1

  2. 2 ⾃⼰紹介

  3. 3 ⾃⼰紹介 名前︓たかくに 所属︓AWS事業本部コンサルティング部 ⼊社︓2022年1⽉にジョイン 好きなAWSサービス︓Amazon VPC Twitter︓@takakuni_

  4. 4 シフトレフトって何︖ 世は シフトレフト時代 ・製品開発などで⾏われる特定の⼯程を通常よりも前倒しして実施すること。 ・今回のコンテナイメージスキャンなどの脆弱性テスト つまりどういうこと︖ 「運⽤でカバー」を減らしていく動き 「What CISOs

    Are Saying: Shifting Left」より引⽤
  5. 5 なんで流⾏っているの︖ 世は シフトレフト時代 「How Snyk helps satisfy White House

    cybersecurity recommendations」より引⽤ Instance On-premise Server or 開発者の守備範囲が広がって来た。
  6. 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 開発者の守備範囲が広がって来た。
  7. 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 得意︖
  8. 8 OWASP Top10 「OWASP Top 10 - 2021 へようこそ」より引⽤ A04:2021-安全が確認されない不安な設計

    2021年に新設されたカテゴリーで、設計上の⽋陥に関するリスクに焦点を当てています。 ⼀業界として、我々が純粋に「シフトレフト」することを望むのであれば、脅威モデリングや、安全な 設計パターンと原則、また、リファレンス・アーキテクチャをもっと利⽤していくことが必要です。 安全が確認されない不安な設計は完璧な実装によって修正されることはありません。定義上、(つまり設 計⾃体が問題なので)特定の攻撃に対して必要なセキュリティ対策が作られることがありえないからです。
  9. 9 第⼀歩として、 コンテナセキュリティ

  10. 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
  11. 11 コンテナイメージスキャン⼿法 世は 今回は次の⼿法を説明 ・ECR イメージスキャン(ベーシックスキャン) ・ECR イメージスキャン(拡張スキャン) ・docker scanコマンド

    ・Snyk Container
  12. 12 ECR イメージスキャン(ベーシックスキャン) 世は ・ECRで⾏うスキャン ・Clair プロジェクトの共通脆弱性識別⼦ (CVE) データベースを使⽤ ・⼿動スキャンと⾃動スキャン(Scan

    on Push)が選べる ・⼿動スキャンは24時間に1回まで ・無料
  13. 13 ECR イメージスキャン(拡張スキャン) 世は ・Inspectorがサービスロールを使ってスキャン ・ 複数のデータベース(Snyk, GitHub Advisory Databaseなど)を使⽤

    ・⾃動スキャンのみサポート ・(デフォルト)初回Push時 、関連する新しい CVE が公開されたとき ・有料
  14. 14 ベーシックスキャンと拡張スキャンを⽐較 世は 拡張スキャンの場合 ・OSに加えてプログラミング⾔語パッケージもスキャン対象 ・対応OSも若⼲異なる。(SUSEをサポート) ・ AWS Security Hub、Organizationsとの統合

    ベーシックスキャンの場合 ・導⼊のしやすさ(Inspectorの有無) ・出⼒結果(InformationalやUndefinedをどうするか)
  15. 15 docker scan コマンド 世は ・docker-scan-pluginを利⽤したスキャン ・ローカルのDockerイメージに対して⾏う、CLIベースのスキャン ・ Snykのデータベースを使⽤ ・無料(Docker

    Hubの1ユーザーあたり毎⽉10回まで) 「Docker ローカルイメージに対するぜい弱性スキャン」より引⽤
  16. 16 Docker Hub 世は ・Docker Hub上で脆弱性スキャン ・イメージスキャンの仕様は、docker scanと同じ ・有料(Pro、Team、Business プランで利⽤可能)

    「Docker Hub のぜい弱性スキャン」より引⽤
  17. 17 まとめてみた ベーシックスキャン 拡張スキャン docker scan Docker Hub 脆弱性 データベース

    Clair Snyk, GitHubなど Snyk Snyk スキャン範囲 OSのみ OS, ⾔語パッケージ OS, ⾔語パッケージ OS, ⾔語パッケージ スキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 料⾦ 無料 有料 無料 ※10回/⽉ 有料 ※プランの機能
  18. 18 まとめてみた ベーシックスキャン 拡張スキャン docker scan Docker Hub 脆弱性 データベース

    Clair Snyk, GitHubなど Snyk Snyk スキャン範囲 OSのみ OS, ⾔語パッケージ OS, ⾔語パッケージ OS, ⾔語パッケージ スキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 料⾦ 無料 有料 無料 ※10回/⽉ 有料 ※プランの機能
  19. 19 Snykってなんぞや︖

  20. 20 Snyk 世は 開発者が利⽤するために作られたセキュリティプラットフォーム 次の製品を提供 ・Snyk Container︓コンテナのイメージスキャン ・Snyk Code︓プログラミングコードの脆弱性スキャン ・Snyk

    Open Source︓オープンソースライブラリの脆弱性スキャン ・Snyk IaC︓Infrastructure as Codeの静的スキャン 「Snyk Press Kit」より引⽤
  21. 21 Snyk 世は 開発者が利⽤するために作られたセキュリティプラットフォーム 次の製品を提供 ・Snyk Container︓コンテナのイメージスキャン ・Snyk Code︓プログラミングコードの脆弱性スキャン ・Snyk

    Open Source︓オープンソースライブラリの脆弱性スキャン ・Snyk IaC︓Infrastructure as Codeの静的スキャン 「Snyk Press Kit」より引⽤
  22. 22 まとめてみた ベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container

    脆弱性 データベース Clair Snyk, GitHubなど Snyk Snyk ︖ スキャン範囲 OSのみ OS ⾔語パッケージ OS ⾔語パッケージ OS ⾔語パッケージ ︖ スキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ︖ 料⾦ 無料 有料 無料 ※10回/⽉ 有料 ※プランの機能 ︖ New
  23. 23 Snyk Container 世は ・Snyk CLIでローカルスキャン or コンテナレジストリと統合して⾃動スキャン ・ECRと統合する場合はIAMロールを使⽤する ・Snykのデータベースを使⽤

    ・OSに加えてプログラミング⾔語パッケージもスキャン対象 ・「⽇次」や「週次」の定期スキャン、新しい CVE が公開された場合 ・無料と有料プランがある(無料プランは100回/⽉までテスト可能)
  24. 24 まとめてみた ベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container

    脆弱性 データベース Clair Snyk, GitHubなど Snyk Snyk Snyk スキャン範囲 OSのみ OS ⾔語パッケージ OS ⾔語パッケージ OS ⾔語パッケージ OS ⾔語パッケージ スキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ⼿動/⾃動 料⾦ 無料 有料 無料 ※10回/⽉ 有料 ※プランの機能 無料/有料 ※無料100回/⽉
  25. 25 疑問その1 ベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container

    脆弱性 データベース Clair Snyk, GitHubなど Snyk Snyk Snyk スキャン範囲 OSのみ OS ⾔語パッケージ OS ⾔語パッケージ OS ⾔語パッケージ OS ⾔語パッケージ スキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ⼿動/⾃動 料⾦ 無料 有料 無料 ※10回/⽉ 有料 ※プランの機能 無料/有料 ※無料100回/⽉ 🤔 同じデータベース︖
  26. 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 > コマンドで出⼒結果を確認
  27. 27 疑問その2 ベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container

    脆弱性 データベース Clair Snyk, GitHubなど Snyk Snyk Snyk スキャン範囲 OSのみ OS ⾔語パッケージ OS ⾔語パッケージ OS ⾔語パッケージ OS ⾔語パッケージ スキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ⼿動/⾃動 料⾦ 無料 有料 無料 ※10回/⽉ 有料 ※プランの機能 無料/有料 ※無料100回/⽉ 🤔 同じデータベース︖
  28. 28 No 拡張スキャンは、Snykのデータベースを⼀部利⽤している 【拡張スキャン︓全体】 緊急︓10、⾼︓9、中︓20、低︓6 【拡張スキャン︓Snykのみ】 緊急︓2、⾼︓2、中︓9、低︓2 【Snyk Container】 緊急︓2、⾼︓98、中︓7、低︓46

  29. 29 まとめ 世は ・Dockerイメージスキャンにはさまざまな⽅法がある ・docker scanとSnyk Containerは同じ出⼒結果 ・利⽤形態や無料枠に注意 ・ECR拡張スキャンの⼀部にSnykが使われている ・スキャン結果に優劣があるわけではない

    ・「量より質」は忘れてはならない ・紹介したスキャン⽅法以外にも「Sysdig」や「Trivy」も有名だよ
  30. 30