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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Akira Kuriyama
September 27, 2024
540
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Container vulnerabilities on CICD
Akira Kuriyama
September 27, 2024
More Decks by Akira Kuriyama
See All by Akira Kuriyama
ゼロから始める全社横断プロダクトセキュリティ / Building Organization-Wide Product Security
sheepland
0
170
Datadog On-Calを本番導入しました / Datadog On-Cal now in production
sheepland
0
640
Datadog Logsで実現するオブザーバビリティの向上 / Enhancing Observability with Datadog Logs
sheepland
0
210
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話 / Speeding Up Container Builds with Docker Build Cloud
sheepland
0
230
Design Doc のすすめ / The Importance of Design Docs
sheepland
0
1.4k
Datadogのグラフにデプロイタイミングを表示する / deploy timing on datadog graph
sheepland
1
800
英語学習の始め方 / How to start learning English
sheepland
0
140
Featured
See All Featured
Bash Introduction
62gerente
615
220k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
The Curse of the Amulet
leimatthew05
2
13k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
460
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
870
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 詳しくはテックブログを参照下さい!
ご静聴ありがとうございま した!