Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DevSecOps CI/CDツール導入のススメ
Search
Tommy(sigma)
December 15, 2023
Programming
1
140
DevSecOps CI/CDツール導入のススメ
セキュリティ勉強会 Sprout 2023年12月
SANS 540でCI/CDの概念やCI/CDの中に組み込めそうなツールについて学んだので実際に使ってみました。
Tommy(sigma)
December 15, 2023
Tweet
Share
More Decks by Tommy(sigma)
See All by Tommy(sigma)
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
430
#QiitaBash MCPのセキュリティ
ryosukedtomita
2
1.7k
#QiitaBash TDDでAIに設計イメージを伝える
ryosukedtomita
2
2k
#QiitaBash 良い記事は誰かを救う!2025/04/14
ryosukedtomita
0
9
CI/CDのセキュリティ対策にOSSツールを使ってみる
ryosukedtomita
0
48
生成AIの世界で君たちはどう生きるか
ryosukedtomita
0
120
Other Decks in Programming
See All in Programming
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
4
1.4k
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
150
Developing static sites with Ruby
okuramasafumi
0
190
配送計画の均等化機能を提供する取り組みについて(⽩⾦鉱業 Meetup Vol.21@六本⽊(数理最適化編))
izu_nori
0
140
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
420
dotfiles 式年遷宮 令和最新版
masawada
1
690
Microservices rules: What good looks like
cer
PRO
0
870
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
360
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
540
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
110
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
180
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
KATA
mclloyd
PRO
32
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
69k
Making Projects Easy
brettharned
120
6.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Balancing Empowerment & Direction
lara
5
790
YesSQL, Process and Tooling at Scale
rocio
174
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
Ryosuke Tomita DevSecOpsを 個人開発に取り入れてみた Sigma
最初に言っておこう • 自己研鑽でやったことの紹介に近いかも • 嘘言ってたらすみません • 手抜きで汚いスライド注意! ◦ 発表の見栄えを良くするよりも試行錯誤を優先してしまった
目次 • DevSecOpsとは • 取り入れたセキュリティ対策(ツールの導入) ◦ 環境紹介 ◦ 導入したツールの紹介等 ◦
感想
DevSecOpsとは
DevOpsとは 少人数のチームが全体をまとめてスピード感UP→個人開発と相性良 https://www.nri-secure.co.jp/service/consulting/devsecops
CI/CDパイプラインによる自動化 https://www.networld.co.jp/solution/container_businessmaster/chapter4_3.html
従来型の開発におけるセキュリティ • 基本設計: チェックリスト,ガイドラインの確認 • コーディング: コーディング規約 • リリース前のセキュリティ診断
DevOpsに対するセキュリティ(DevSecOps) DevOpsのセキュリティの問題点 • リリース速度が早く,毎回セキュリティ診断するのは大変 • ガイドラインが技術の変化に追いついていない • チェックリストを手動でチェックする負担大 開発の中にセキュリティを組み込むことが必用→DevSecOps
SHIFT LEFT DevSecOpsでは開発の俊敏性を損なわずにセキュリティ対策したい • 設計段階でセキュリティ対策: 設計評価 • 開発の中にセキュリティテストを組みこむ→ツールによる自動化
https://www.slideshare.net/pumasecurity/devsecops-key-controls-to-modern-security-success
取り入れた セキュリティ対策 やってみせろよマ フィティー
使用した技術 • Reactのアプリを • Dockerでビルドして • AWS ECS on Fargate公開しちゃおう(未完成)
セキュリティなんもわからん
全体構成図 Copilot CLI Code Pipeline ECS(開発) ECS(本番) Extensions Image Scan
コードスキャン 承認後に本番 デプロイ
Pre-Commitフェーズでの セキュリティ対策
Pre-Commit(コミット前の対策) • VSCodeのExtensions • pre-commit hooksによるコミット前の検査 • Rapid-Risk-Assessment • Peer
Code Review 脆弱なコードがリポジトリに取り込まれないようにする
VSCode Extensions • Hadolint: Dockerfileのベストプラクティス • ESLint: JS,TSの構文チェック • Prettier
ESLint: Formatter • (Code Spell Checker) コードを書く時にセキュリティを意識,書き方 を統一!
Rapid Risk Assessment • doc/rapid-risk-assessment.mdを配置 • どんなリスクがあるか洗い出しておく→個人の場合はがんばる
pre-commit hooks • コミット前に簡易的な検査を実行し,違反していたらコミットさせない • git-secrets: APIキーやパスワード等を検知 • 余力があれば,LinterとかFormatterをいれると良い ◦
Hadolint: Docker ◦ Prettier: TSのFormatter ◦ ESLint: ESのLinter ◦ CloudFormationのLinter: cfn_nag ◦ conftest: k8sのmanifestとか
None
Peer Code Review • ぼっちなので無理 • ChatGPTとGithub Copilotに助けてもらおう
Commitフェーズでの セキュリティ対策
Commit(CI) • SAST(Static Application Security Testing) • Unit Test •
Dependency Check: ライブラリのチェック • Image Scan Code Pipeline
SAST,Unit Testの自動化 • Semgrepと単体テストの実行を自動化 • GitHub Actionsを使ってコードをpush時+定期実行
None
None
Dependency Check • Trivyを使う • package.jsonやpom.xml等をスキャンして脆弱なライブラリを指摘して CVEと紐づけしてくれる
Image Scan • AWS Copilot CLIを使ってコンテナビルドを行う関係上, Image ScanはAWS側で行った • mainブランチにマージした時にCode
Pipelineのソースが更新され Image Scanとデプロイが進むようにした AWS Code Pipeline
None
脆弱性が見つかったらDocker Desktopのほうが見やすい
その他の部分 (あんまやれてない)
Acceptance • IaC化 • Config Management • DAST: OWASP ZAPを使う予定だったが取り入れられず。
AWS Copilot CLIが作ってくれた
PRODUCTION • Secrets Management: AWS SSM,Github Actions Secrets? • Safety
checks • Server Hardening • Security Smoke Test なにしたらいいかよくわかってない
OPERATIONS • Continuous Monitoring: AWS ConfigとかCloud Trailとか • Threat Inteligence:
piyokangoさんを見る • Penetration Test: 実施せず • Blameless Postmortems: 誰も攻めない自己分析は大事(組織作り?)
全体を通した感想など • いろいろな実装方法があるので親しみのあるもので環境作成したが, コストとか考えると最適解は難しい ◦ (AWS Copilot CLIの使い勝手がいいのでこれに合わせてしまった) • pre-commitは脆弱なコードをそもそもリポジトリに入れないのは素敵だが,可用性
が落ちるのでどこまでやるか要検討 • 脆弱性に気づけても直せるか,(直す気になるか)は別問題 • 生成AIしかり,ツールの出来が良くなってきているので時代に置いていかれないよ うにがんばりたい →体系的に学ぶだけでなく実践で学ぶ力が必用かも