$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Conta...
Search
Akira Kuriyama
September 27, 2024
2
460
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Container vulnerabilities on CICD
Akira Kuriyama
September 27, 2024
Tweet
Share
More Decks by Akira Kuriyama
See All by Akira Kuriyama
Datadog On-Calを本番導入しました / Datadog On-Cal now in production
sheepland
0
420
Datadog Logsで実現するオブザーバビリティの向上 / Enhancing Observability with Datadog Logs
sheepland
0
170
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話 / Speeding Up Container Builds with Docker Build Cloud
sheepland
0
180
Design Doc のすすめ / The Importance of Design Docs
sheepland
0
1.1k
Datadogのグラフにデプロイタイミングを表示する / deploy timing on datadog graph
sheepland
1
710
英語学習の始め方 / How to start learning English
sheepland
0
120
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
12k
BBQ
matthewcrist
89
9.9k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
4 Signs Your Business is Dying
shpigford
186
22k
How STYLIGHT went responsive
nonsquared
100
6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
100
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Writing Fast Ruby
sferik
630
62k
Context Engineering - Making Every Token Count
addyosmani
9
510
Code Review Best Practice
trishagee
74
19k
Speed Design
sergeychernyshev
33
1.4k
Transcript
令和最新版 他人に自慢したいヤバいCI/CD LT会 @yabaibuki.dev #2 Akira Kuriyama (@sheepland) コンテナ脆弱性修正を Renovate/Dependabot
のように行う
自己紹介 名前 : 栗山 聖(くりやま あきら) X : @sheepland 職種
: SRE 所属 : 株式会社スタディスト
補足 今回の話すコンテナ脆弱性とは、OSのパッケージの脆弱性です。 アプリケーションのパッケージの脆弱性は対象外。
みなさんコンテナ脆弱性修正 しておりますでしょうか? 突然大きな脆弱性が見つかりSNSで話題に。 話題にならなくても日々脆弱性は発見されている。
しかし、修正しようにも面倒ですよね? なにが面倒か • どのコンテナに脆弱性があるのか分からない • どうやって脆弱性を修正していいか分かりづらい • コンテナ再ビルドすればパッケージが更新されるので修正できるが、ビルド キャッシュ効いていると更新されない問題 •
手動でビルドキャッシュを消すのが面倒 • 脆弱性修正PRという形でPRを出しづらい
なにが面倒か • どのコンテナに脆弱性があるのか分からない • どうやって脆弱性を修正していいか分かりづらい しかし、修正しようにも面倒ですよね? バージョンアップしたいけど バージョン指定してない RUN apt-get
update && apt-get install -y \ package-bar \ package-baz \ package-foo \ …
しかし、修正しようにも面倒ですよね? なにが面倒か • どのコンテナに脆弱性があるのか分からない • どうやって脆弱性を修正していいか分かりづらい • コンテナ再ビルドすればパッケージが更新されるので修正できるが、 ビルドキャッシュ効いていると更新されない問題 ◦
手動でビルドキャッシュを消すのが面倒 • 脆弱性修正PRという形でPRを出しづらい
しかし、修正しようにも面倒ですよね? なにが面倒か • どのコンテナに脆弱性があるのか分からない • どうやって脆弱性を修正していいか分かりづらい • コンテナ再ビルドすればパッケージが更新されるので修正できるが、 ビルドキャッシュ効いていると更新されない問題 ◦
手動でビルドキャッシュを消すのが面倒 • 脆弱性修正PRという形でPRを出しづらい
おれたちはただ、Renovate/Dependabotのように コンテナ脆弱性修正PRをマージするだけで脆弱性を修正 したいだけなんだ…!
実現しました! 開発者側のフロー 1. Slackに脆弱性通知がくる 2. Slack通知内のPRリンクを開く 3. PRに対して脆弱性スキャンCIやアプリケーションのCIが 通っていることを確認する 4.
mergeしてリリースする 5. 脆弱性解消! かなりDependabotやRenovateと近しい体験
実現しました! CI/CD側のフロー 1. CI/CDで毎日最新のイメージに対して脆弱性スキャン 2. 脆弱性が見つかれば脆弱性内容が記載されたGitHubのIssueを自動作成 3. そのIssueに紐付ける形で脆弱性修正PRを自動作成 4. Slackに脆弱性が見つかったことをPRのリンク付きで通知
Slack通知
Pull Request
Issue
ポイントを簡単に説明をします
脆弱性スキャンについて 脆弱性スキャンにはTrivyを使用しています。 以下のオプションを指定しています。 • vuln-typeオプションでOSパッケージのみを脆弱性スキャン対象に • severityオプションで緊急度の高い脆弱性のみを対象に • ignore-unfixedオプションでパッチが提供済みの脆弱性のみを対象に
FROM node:22 # apt-getでinstallしたパッケージをアップデートする場合は以下のバージョンを上げる RUN echo "package-cache-v1" > /dev/null RUN
apt-get update && apt-get install -y \ package-bar \ package-baz \ Dockerfileは `RUN`のコマンド内容が変わると以降はキャッシュが使われなくなります。 これを利用して、RUNの内容を更新することでキャッシュが使われないようにしています。 (RUNの内容はなんでもよいです) 脆弱性修正PRについて
脆弱性修正PRでは、"package-cache-v◦"のv◦の部分の数値を上げる 脆弱性修正PRについて
CIとTrivyを組み合わせて、簡単にコンテナ脆弱性 を修正できる仕組みを作りました! まとめ
「コンテナイメージ脆弱性検知と対応フローの紹介」 https://studist.tech/container-image-vulnerability-scan-3b8a04a9577 詳しくはテックブログを参照下さい!
ご静聴ありがとうございま した!