Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
GMO Developer Day 2021 - DevSecOps 推進の取り組みの紹介.pdf
mrtc0
September 16, 2021
Technology
3
800
GMO Developer Day 2021 - DevSecOps 推進の取り組みの紹介.pdf
mrtc0
September 16, 2021
Tweet
Share
More Decks by mrtc0
See All by mrtc0
GMO ペパボ株式会社 23卒・24卒向け セキュリティ勉強会 実践 DevSecOps パイプライン
mrtc0
0
63
実践 DevSecOps パイプライン ~システム開発へのセキュリティの取り入れ方~
mrtc0
1
62
脅威モデリングで考える Kubernetes セキュリティ / CloudNative Days Tokyo 2021 #CNDT2021 #CNDT2021_B
mrtc0
6
1.4k
ProSec-IT 2021 Container Security
mrtc0
1
270
Web セキュリティ研修 / GMO ペパボ 新卒研修 2021
mrtc0
4
23k
実践コンテナ & Kubernetes セキュリティ
mrtc0
12
2.9k
Introduction to Seccomp
mrtc0
4
5.8k
Kubernetes Security for penetration testers
mrtc0
2
1.8k
Container Security - Linux container isolation and breakout techniques
mrtc0
0
750
Other Decks in Technology
See All in Technology
次期LTSに備えよ!AOS 6.1 HCI Core 編
smzksts
0
170
三越伊勢丹の接客DXを支える「DevOps基盤」とは
imdigitallab
0
250
JAWS-UG 朝会 #33 登壇資料
takakuni
0
350
220428event_karibe_part
caddi_eng
0
180
AWS CloudShellという推しサービスについて / lt-20220502-jawsug-cli
becominn
0
620
Learning from AWS Customer Security Incidents [2022]
ramimac
0
280
暗号資産ウォレット入門(MetaMaskの入門~NFTの購入~詐欺の注意事項など)
kayato
2
130
5分で完全理解するGoのiota
uji
3
1.6k
[SRE NEXT 2022]ヤプリのSREにおけるセキュリティ強化の取り組みを公開する
mmochi23
1
230
msal.jsのあれこれ
takas0522
0
1.3k
SRE_チーム立ち上げから1年_気づいたら_SRE_っぽくない仕事まで貢献しちゃってる説
bitkey
PRO
0
1.6k
【OCHaCafe#5】その Pod 突然落ちても大丈夫ですか?
k6s4i53rx
2
110
Featured
See All Featured
Docker and Python
trallard
27
1.5k
Creatively Recalculating Your Daily Design Routine
revolveconf
205
10k
The Mythical Team-Month
searls
208
39k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
125
8.5k
Optimizing for Happiness
mojombo
365
63k
Unsuck your backbone
ammeep
659
55k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
268
11k
What the flash - Photography Introduction
edds
61
9.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
Debugging Ruby Performance
tmm1
65
10k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
151
12k
The Art of Programming - Codeland 2020
erikaheidi
31
5.8k
Transcript
DevSecOps 推進の取り組みの紹介 GMO Pepabo, Inc. / Kohei Morita @mrtc0 GMO
Developer Day 2021 #GMOdevday
whoami Kohei Morita / @mrtc0 GMO Pepabo, Inc. セキュリティ対策室 シニアエンジニア
OWASP Fukuoka Chapter Leader セキュリティ・キャンプ 講師 / ステアリングコミッティメンバー blog.ssrf.in / container-seucrity.dev
About • ペパボにおける DevSecOps への最近の取り組みについてお話しします About this talk 1. 脅威モデリング
2. Inventory Management 3. SAST 4. セキュリティモニタリング 5. コミュニケーション ペパボテックカンファレンス #14 でお話した内容も含め、最近の取り組みについてお話します。 https://tech.pepabo.com/pdf/pepabo-tech-conference-14-security-team-slide.pdf
DevSecOps シフトレフトと自動化によって開発サイクルにセキュリティ対策を組み込んでいく DevSecOps 「DevSecOps」で検索すると ∞ な表現をイメージした図が出てきます
DevSecOps DevSecOps 手戻りのコストを小さくする 協力によりサイロ化を防いで 人材育成にも寄与
DevSecOps 継続的なセキュリティ強化を行うために ... Security as Code • DevOps プロセスにセキュリティツールを統合する •
「あるべき状態」をコードやポリシーで定義する • 自動化する Security as Code, Policy as Code, Test Driven Security で継続的かつ確実なセキュリティ対策を実施 セキュリティエンジニアリングとしての領域として発展させていくミッションの一つ
DevSecOps セキュリティ対策室 各事業部がセキュリティ対策を実施 2018年 🔥 セキュリティ・インシデントが発生 2018年 3月 セキュリティ対策室発足 2018年
12月 セキュリティインシデントの 再発防止策完了 2019年 インシデントハンドリング手法の 標準化 DevSecOps へのマインド切り替え 2021年 DevSecOps を実現するための ツールや仕組みを開発 事業部横断のセキュリティ対策を実施する組織として活動
DevSecOps ペパボでも「セキュリティを対策を意識しなくても実施されている状態」を目指している DevSecOps Cycle in Pepabo Code • 脅威モデリング •
セキュアコーディングトレーニング • SAST, DAST Test Monitoring • 各種インベントリ情報の管理 • ポートやファイル改竄などの監視 Incident Response • sssbot による支援 • Slack reacji 等による情報共有の工夫 例えば... 詳しくはペパボテックカンファレンス #14 のスライドをご覧ください https://tech.pepabo.com/pdf/pepabo-tech-conference-14-security-team-slide.pdf
DevSecOps • OpenStack ベースのプライベートクラウド Nyah 上で稼働 ◦ 一部 AWS や
GCP を利用し、ハイブリッドクラウドになっているサービスもある • ソースコード管理は GitHub Enterprise Server ◦ CI も GitHub Actions Self-hosted Runner を使用 ◦ コンテナレジストリも GitHub Packages を使用 ペパボのサービスとセキュリティ対策基盤 マネージドサービスは利用せず、セキュリティ基盤を自前で構築しているのが特徴
Threat Modeling
Threat Modeling • 潜在的な脅威を特定しサービスのセキュリティを向上させるために、脅威モデリングをサービスの開 発者 + セキュリティ対策室で実施 • 事前に Dataflow
を書いてもらい、STRIDE を使って評価。リスクの深刻度を判断して、対策や緩和策 を実施 Threat Modeling Dataflow の例. draw.io を利用. 脅威モデリングを実施する上で必要な情報が記載されているか確認のためのチェックリスト
Threat Modeling • 特定した脅威は「脅威」「手法」「前提」「攻撃元」「攻撃先」をまとめて記録 • リスク評価を行い、対策 /緩和策をアクションアイテムとして追加 Threat Modeling 脅威は
S.T.R.I.D ごとに Notion にまとめ 特定した脅威の対策を実施
Inventory Management
Inventory Management • 既知の脆弱性のトリアージなどを目的に、様々なインベントリを管理している Inventory Management アプリケーションの依存ライブラリ cyclone-dx で SBOM
にして Dependency-Track で管理 OS のバージョンやパッケージなど Wazuh の syscollector で収集、別 DB で管理 オンプレ/VM 含めたサーバー一覧 Wazuh がインストールされているかを 確認するためにも収集、リポジトリで管理
SAST
SAST • ペパボではコードレビュー時にセキュリティチェックを必ず行うことにしている • セキュリティレビューを支援するために「脆弱性の可能性のある」箇所を自動で指摘する GitHub Actions を活用している ◦ Semgrep
+ 各言語の SAST ツール コードレビュー時のセキュリティ支援 PHP のセキュリティレビュー支援 Bot による指摘の例 検出した内容とチェック項目に加えて、 その脆弱性に関するガイドライン等へのポインタを記載
SAST • https://semgrep.dev/ • Tree-sitter でパースした構文木に対して grep ができるツール Semgrep 関数としての
exec() の使用を検出し、文字 列としての exec() は検出しない
SAST • ルールは YAML で定義し`message` の文字列をレビューコメントとして投稿 Semgrep + GitHub Actions
# php-xss-echo.yaml rules: - id: xss-echo patterns: - pattern: | echo $X; - pattern-not: | echo "..."; - pattern-not: | htmlspecialchars(..., ENT_QUOTES, "UTF-8"); ... message: | :warning: Found XSS! See https://security-guide... languages: ["php"] severity: WARNING
Security Monitoring
Security Monitoring • Agent / Manager で構成される OSS のセキュリティプラットフォーム ◦
FIM や Log Analysis, Vulnerability Detection など機能が多彩 例えば SSH のログを拾って、ルールに基づいてアラートを上げ、アラートによっては自動でトリ アージを行うことが可能 Wazuh • ペパボでは全サーバーへの導入を目標としており、現在 1500台以上のサーバーを監視している
Security Monitoring Wazuh による監視の仕組み (logcollector) Wazuh Agent のコンポーネントの例 • syscheck
… FIM • syscollector … Inventory の収集 • logcollector … ログやコマンド実行結果の収集
Security Monitoring • デプロイなどの正常な変更についてもアラートが発砲されてしまい、狼少年状態に... 異常なアラートのみ通知するために、正常なアラートを自動トリアージする Auto triage Wazuh alerts •
通知モデルの変更 (ossec integration → kafka + WebApp) • 流量の制限とサマリ化 • 動的/静的な Mute ポリシーの実装 • シグネチャ収集によるアラート削減 • プロビジョニングツールによるデプロイ前後のコンテキスト取得 • Annotation によるトリアージ支援 • ルールをテストできる環境の整備
Security Monitoring • プライベートクラウド Nyah 上に Kubernetes クラスタを構築するツール • 各サービスのセキュリティレベルを揃えるためにデフォルトでセキュアになるようにしている
NKE (Nyah Kubernetes Engine) kube-apiserver の監査ログの取得 Secret などへのアクセスログを取得し、有事の際に対応できるように Falco による監視 Wazuh など既存のツールではコンテナ上のイベント監査ができないため Gatekeeper の導入 PSS を定義し、準拠しない Pod の作成をモニタリング & ブロック
Communication
Communication 「DevOps」vs「Sec」 の対立にならないようにする DevSecOps の推進 コミュニケーションが「セキュリティを当たり前とする文化」を育てるレバレッジとなる • セキュリティを組織文化として育む • 小さな異変や気づきを気軽に共有できる組織
• 平時・緊急を問わず、迅速・正確な対応につなげる ツールを導入して終わり! ではなく、コミュニケーションを通して組織のセキュリティマインドを育てる
Commincation CO3 ( Communication / Completeness / Continuous ) セキュリティ対策室の方針
• Communication … コミュニケーションを取る。「みんなと仲良くする」。 • Completeness … インシデントを収束させる。対策を完了する。 • Continuous … 対策を継続する。継続にレバレッジする技術を使う。
Communication • セキュアコーディング研修や新卒研修でのトレーニング • SSS Tuesday (中途入社者向けのセキュリティオンボーディング ) • 社内イベント(ペパボテックフライデー
)で宣伝と啓蒙 コミュニケーションの取り組み DevSecOps モデルの理解を得てもらうために様々な取り組みをしている 研修での「sss」絵文字リアクションの様子 インシデント訓練や研修時でも sssbot を利用
Communication 自動化(基盤構築)とコミュニケーションが DevSecOps 推進のポイント 💡 DevSecOps の推進 • ツールの導入、自動化でセキュリティ対策を "継続"
する • セキュリティ文化を醸成するために "コミュニケーション" に力を入れる • 上記を実施することで迅速・正確な対策を "完了" できる もちろん、組織によっては、これだけでは足りないこともあると思います。 DevSecOps やシフトレフトへの切り替えは、組織ごとにアプローチが変わってきますが、参考になれば幸いです。
We are hiring ! 以下、一つでもマッチする方を募集しています!!1 我々のミッションや取り組みに共感、興味を持って頂いた方へ • 技術力、コミュニケーションで DevSecOps の推進に貢献したい方
• プロダクトのセキュリティエンジニアリングに関わりたい方 • この発表を聞いて「面白そう!」となった方 「ペパボ 採用」[ 検索 ] https://recruit.pepabo.com/