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
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Conta...
Search
Akira Kuriyama
September 27, 2024
2
350
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Container vulnerabilities on CICD
Akira Kuriyama
September 27, 2024
Tweet
Share
More Decks by Akira Kuriyama
See All by Akira Kuriyama
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話 / Speeding Up Container Builds with Docker Build Cloud
sheepland
0
110
Design Doc のすすめ / The Importance of Design Docs
sheepland
0
290
Datadogのグラフにデプロイタイミングを表示する / deploy timing on datadog graph
sheepland
1
590
英語学習の始め方 / How to start learning English
sheepland
0
110
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Gamification - CAS2011
davidbonilla
80
5.1k
What's in a price? How to price your products and services
michaelherold
244
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
BBQ
matthewcrist
87
9.5k
Making Projects Easy
brettharned
116
6k
KATA
mclloyd
29
14k
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 詳しくはテックブログを参照下さい!
ご静聴ありがとうございま した!