$30 off During Our Annual Pro Sale. View Details »

JAWS-UG 朝会 #36 登壇資料

takakuni
August 04, 2022

JAWS-UG 朝会 #36 登壇資料

takakuni

August 04, 2022
Tweet

More Decks by takakuni

Other Decks in Technology

Transcript

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

    View Slide

  2. 2
    ⾃⼰紹介

    View Slide

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

    View Slide

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

    View Slide

  5. 5
    なんで流⾏っているの︖
    世は
    シフトレフト時代
    「How Snyk helps satisfy White House cybersecurity recommendations」より引⽤
    Instance
    On-premise
    Server
    or
    開発者の守備範囲が広がって来た。

    View Slide

  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
    開発者の守備範囲が広がって来た。

    View Slide

  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
    得意︖

    View Slide

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

    View Slide

  9. 9
    第⼀歩として、
    コンテナセキュリティ

    View Slide

  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

    View Slide

  11. 11
    コンテナイメージスキャン⼿法
    世は
    今回は次の⼿法を説明
    ・ECR イメージスキャン(ベーシックスキャン)
    ・ECR イメージスキャン(拡張スキャン)
    ・docker scanコマンド
    ・Snyk Container

    View Slide

  12. 12
    ECR イメージスキャン(ベーシックスキャン)
    世は
    ・ECRで⾏うスキャン
    ・Clair プロジェクトの共通脆弱性識別⼦ (CVE) データベースを使⽤
    ・⼿動スキャンと⾃動スキャン(Scan on Push)が選べる
    ・⼿動スキャンは24時間に1回まで
    ・無料

    View Slide

  13. 13
    ECR イメージスキャン(拡張スキャン)
    世は
    ・Inspectorがサービスロールを使ってスキャン
    ・ 複数のデータベース(Snyk, GitHub Advisory Databaseなど)を使⽤
    ・⾃動スキャンのみサポート
    ・(デフォルト)初回Push時 、関連する新しい CVE が公開されたとき
    ・有料

    View Slide

  14. 14
    ベーシックスキャンと拡張スキャンを⽐較
    世は
    拡張スキャンの場合
    ・OSに加えてプログラミング⾔語パッケージもスキャン対象
    ・対応OSも若⼲異なる。(SUSEをサポート)
    ・ AWS Security Hub、Organizationsとの統合
    ベーシックスキャンの場合
    ・導⼊のしやすさ(Inspectorの有無)
    ・出⼒結果(InformationalやUndefinedをどうするか)

    View Slide

  15. 15
    docker scan コマンド
    世は
    ・docker-scan-pluginを利⽤したスキャン
    ・ローカルのDockerイメージに対して⾏う、CLIベースのスキャン
    ・ Snykのデータベースを使⽤
    ・無料(Docker Hubの1ユーザーあたり毎⽉10回まで)
    「Docker ローカルイメージに対するぜい弱性スキャン」より引⽤

    View Slide

  16. 16
    Docker Hub
    世は
    ・Docker Hub上で脆弱性スキャン
    ・イメージスキャンの仕様は、docker scanと同じ
    ・有料(Pro、Team、Business プランで利⽤可能)
    「Docker Hub のぜい弱性スキャン」より引⽤

    View Slide

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

    View Slide

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

    View Slide

  19. 19
    Snykってなんぞや︖

    View Slide

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

    View Slide

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

    View Slide

  22. 22
    まとめてみた
    ベーシックスキャン 拡張スキャン docker scan Docker Hub Snyk Container
    脆弱性
    データベース
    Clair Snyk, GitHubなど Snyk Snyk ︖
    スキャン範囲 OSのみ OS
    ⾔語パッケージ
    OS
    ⾔語パッケージ
    OS
    ⾔語パッケージ

    スキャン頻度 ⼿動/⾃動 ⾃動 ⼿動 ⾃動 ︖
    料⾦ 無料 有料
    無料
    ※10回/⽉
    有料
    ※プランの機能

    New

    View Slide

  23. 23
    Snyk Container
    世は
    ・Snyk CLIでローカルスキャン or コンテナレジストリと統合して⾃動スキャン
    ・ECRと統合する場合はIAMロールを使⽤する
    ・Snykのデータベースを使⽤
    ・OSに加えてプログラミング⾔語パッケージもスキャン対象
    ・「⽇次」や「週次」の定期スキャン、新しい CVE が公開された場合
    ・無料と有料プランがある(無料プランは100回/⽉までテスト可能)

    View Slide

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

    View Slide

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

    View Slide

  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
    >
    コマンドで出⼒結果を確認

    View Slide

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

    View Slide

  28. 28
    No
    拡張スキャンは、Snykのデータベースを⼀部利⽤している
    【拡張スキャン︓全体】
    緊急︓10、⾼︓9、中︓20、低︓6
    【拡張スキャン︓Snykのみ】
    緊急︓2、⾼︓2、中︓9、低︓2
    【Snyk Container】
    緊急︓2、⾼︓98、中︓7、低︓46

    View Slide

  29. 29
    まとめ
    世は
    ・Dockerイメージスキャンにはさまざまな⽅法がある
    ・docker scanとSnyk Containerは同じ出⼒結果
    ・利⽤形態や無料枠に注意
    ・ECR拡張スキャンの⼀部にSnykが使われている
    ・スキャン結果に優劣があるわけではない
    ・「量より質」は忘れてはならない
    ・紹介したスキャン⽅法以外にも「Sysdig」や「Trivy」も有名だよ

    View Slide

  30. 30

    View Slide