Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
re:Invent 2023 コンテナイメージスキャンどうなった!?
Search
takakuni
December 14, 2023
2.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
re:Invent 2023 コンテナイメージスキャンどうなった!?
takakuni
December 14, 2023
More Decks by takakuni
See All by takakuni
ECS Express Mode
takakuni
0
37
AWS WAF Anti-DDoS Protection in 5 Minutes!
takakuni
0
650
AWS Backup Air-Gapped Vaults with Multi-Party Approval Explained in 5 Minutes!
takakuni
0
330
5min GuardDuty Extended Threat Detection EKS
takakuni
0
400
OpenAI models overview 202505
takakuni
0
460
[Sample] Validate hyperlink for Amazon Bedrock Data Automation
takakuni
0
320
Classmethod AI Talks #13
takakuni
0
450
About Extended Threat Detection in Amazon GuardDuty
takakuni
0
430
SageMaker Hyperpod 101 #regrowth_sapporo
takakuni
1
450
Featured
See All Featured
Building an army of robots
kneath
306
46k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
770
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
410
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Embracing the Ebb and Flow
colly
88
5.1k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
Producing Creativity
orderedlist
PRO
348
40k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
210
Six Lessons from altMBA
skipperchong
29
4.3k
Faster Mobile Websites
deanohume
310
32k
Facilitating Awesome Meetings
lara
57
7k
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
Transcript
re:Invent 2023 コンテナイメージスキャンどうなった!? AWS 事業本部コンサルティング部 たかくに 2023.12.14 1
2 NIST SP 800-190
3 NIST SP 800-190 ‧イメージのリスク ‧レジストリのリスク ‧オーケストレータのリスク ‧コンテナのリスク ‧ ホスト
OS のリスク
4 NIST SP 800-190 ‧イメージのリスク ‧レジストリのリスク ‧オーケストレータのリスク ‧コンテナのリスク ‧ ホスト
OS のリスク
5 NIST SP 800-190 イメージのリスク ‧イメージの脆弱性 ‧イメージの設定の不備 ‧埋め込まれたマルウェア ‧埋め込まれた平⽂の秘密情報 ‧信頼できないイメージの使⽤
6 イメージのリスク ‧イメージの脆弱性 → イメージスキャン ‧イメージの設定の不備 → イメージの作り⽅ ‧埋め込まれたマルウェア →
マルウェアスキャン ‧埋め込まれた平⽂の秘密情報 → Systems Manager ‧信頼できないイメージの使⽤ → イメージの署名 NIST SP 800-190
7 イメージのリスク ‧イメージの脆弱性 → イメージスキャン ‧イメージの設定の不備 → イメージの作り⽅ ‧埋め込まれたマルウェア →
マルウェアスキャン ‧埋め込まれた平⽂の秘密情報 → Systems Manager ‧信頼できないイメージの使⽤ → イメージの署名 NIST SP 800-190
8 re: Invent 2023 以前の状況
9 コンテナイメージスキャン ECR ベーシックスキャン Inspector v2 拡張スキャン エンジン Clair Inspector
v2 スキャン範囲 OS のみ OS, 言語パッケージ スキャン頻度 手動 / 自動 初回プッシュ時 / 継続的 CI / CD 組み込める 頑張れば組み込める☆ 料金 無料 初回スキャン:$ 0.11 / 1イメージ 再スキャン:$ 0.01 / 1回
10 コンテナイメージスキャン ECR ベーシックスキャン Inspector v2 拡張スキャン エンジン Clair Inspector
v2 スキャン範囲 OS のみ OS, 言語パッケージ スキャン頻度 手動 / 自動 初回プッシュ時 / 継続的 CI / CD 組み込める 頑張れば組み込める☆ 料金 無料 初回スキャン:$ 0.11 / 1イメージ 再スキャン:$ 0.01 / 1回
11 ベーシックスキャンの CI / CD パターン
12 ベーシックスキャンの CI / CD パターン version: '0.2' phases: #
抜粋 build: commands: # 抜粋 # イメージスキャンの実施 - aws ecr start-image-scan --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID # ecr wait で結果を待つ - aws ecr wait image-scan-complete --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID # 結果の取得 - aws ecr describe-image-scan-findings --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID --query 'imageScanFindings.findings' --output text
13 ベーシックスキャンの CI / CD パターン version: '0.2' phases: #
抜粋 build: commands: # 抜粋 # イメージスキャンの実施 - aws ecr start-image-scan --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID # ecr wait で結果を待つ - aws ecr wait image-scan-complete --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID # 結果の取得 - aws ecr describe-image-scan-findings --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID --query 'imageScanFindings.findings' --output text
14 Inspector v2 の CI / CD パターン https://aws.amazon.com/jp/blogs/security/use-amazon-inspector-to-manage-your-build-and-deploy-pipelines-for-containerized-applications/
15 今回のアップデートで...
16 (再掲)コンテナイメージスキャン ECR ベーシックスキャン Inspector v2 拡張スキャン エンジン Clair Inspector
v2 スキャン範囲 OS のみ OS, 言語パッケージ スキャン頻度 手動 / 自動 初回プッシュ時 / 継続的 CI / CD 組み込める 頑張れば組み込める☆ 料金 無料 初回スキャン:$ 0.11 / 1イメージ 再スキャン:$ 0.01 / 1回
17 コンテナイメージスキャン ECR ベーシックスキャン Inspector v2 拡張スキャン エンジン Clair Inspector
v2 スキャン範囲 OS のみ OS, 言語パッケージ スキャン頻度 手動 / 自動 初回プッシュ時 / 継続的 CI / CD 組み込める よりシンプルに組み込める☆ 料金 無料 初回スキャン:$ 0.11 / 1イメージ 再スキャン:$ 0.01 / 1回
18 (再掲)Inspector v2 の CI / CD パターン https://aws.amazon.com/jp/blogs/security/use-amazon-inspector-to-manage-your-build-and-deploy-pipelines-for-containerized-applications/
19 Inspector v2 の CI / CD パターン
20 Inspector CI/CD Support アップデート内容 ‧inspector-scan API ‧inspector-sbomgen ‧Inspector v2
の有効化不要 ‧Jenkins, TeamCity とマネージドに統合
21 inspector-scan API
‧AWS CLI, SDK で利⽤可能 ‧ScanSbom アクション ‧SBOM ファイルから脆弱性を検出 ※ SBOM(Software
Bill of Materials) ソフトウェア部品表:ソフトウェアに含まれるコン ポーネントや依存関係を⼀覧化したリスト 22 inspector-scan API
23 inspector-sbomgen
Amazon Inspector SBOM Generator ‧SBOM 作成ツール ‧CycloneDX 1.5 形式での出⼒に対応 ‧対応リソース
‧コンテナイメージ ‧localhost ‧バイナリ(Go か Rust でコンパイルされたもの) 24 inspector-sbomgen
推奨スペック ‧4x core CPU ‧8 GB RAM その他 ‧Linux(AMD, ARM)コンテナのみ対応
‧プライベートレジストリ対応 ‧docker login または環境変数 25 Amazon Inspector SBOM Generator
26 あれ?Inspector v2 って SBOM Export できるよね?
Inspector v2 SBOM Export ‧Inspector v2 で管理しているリソースの SBOM ⽣成 ‧Organizations
や リソース単位でエクスポート可能 ‧Athena, QuickSight で分析可能 27 あれ?Inspector v2 って SBOM Export できるよね?
Inspector v2 SBOM Export ‧Inspector v2 で管理しているリソースの SBOM ⽣成 ‧Organizations
や リソース単位でエクスポート可能 ‧Athena, QuickSight で分析可能 ‧出⼒形式 ‧CycloneDX 1.4(1.5 が必要) ‧SPDX 2.3 28 あれ?Inspector v2 って SBOM Export できるよね?
29 Inspector v2 の有効化不要
IAM のスキーマが Inspector v2 と別管理 ‧Inspector v2 ‧inspector2:CreateSbomExport など ‧Inspector
Scan ‧inspector-scan:ScanSbom 30 Inspector v2 の有効化不要
31 Jenkins, TeamCity とマネージドに統合
32 Jenkins, TeamCity とマネージドに統合 https://aws.amazon.com/jp/blogs/aws/three-new-capabilities-for-amazon-inspector-broaden-the-realm-of-vulnerability-scanning-for-workloads/
33 やってみた
34 Inspector v2 の CI / CD パターン
35 ‧AWS CLI バージョン上げ ‧ビルドしたイメージタグ情報の受け渡し ‧トリアージどうするのか Codebuild(スキャン)で意識すること
利⽤可能なバージョン AWS CLI v2:2.13.38 〜 AWS CLI v1:1.30.5 〜 マネージドイメージ(5.0-23.07.28)
AWS CLI v2:2.13.35 〜 36 AWS CLI バージョン上げ
アクションレベル変数の利⽤(ビルドステージ) 37 ビルドしたイメージタグ情報の受け渡し version: 0.2 env: # 省略 exported-variables: -
IMAGE_URL phases: pre_build: commands: - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-10) - IMAGE_TAG=${COMMIT_HASH:=latest} # 省略 post_build: commands: # 省略 - IMAGE_URL=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
アクションレベル変数の利⽤(ビルドステージ) 38 ビルドしたイメージタグ情報の受け渡し version: 0.2 env: # 省略 exported-variables: -
IMAGE_URL phases: pre_build: commands: - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-10) - IMAGE_TAG=${COMMIT_HASH:=latest} # 省略 post_build: commands: # 省略 - IMAGE_URL=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
39 トリアージどうするのか
40 トリアージどうするのか
41 トリアージどうするのか
42 トリアージどうするのか aws inspector-scan scan-sbom --sbom file:///tmp/sbom.json --output-format INSPECTOR --query
'sbom.vulnerabilities[?severity==`critical` || severity==`high`]' critical または high のみフィルターする例
44