Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DevSecOps入門:Security Development Lifecycleによる開発...
Search
yuriemori
January 25, 2025
Technology
820
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DevSecOps入門:Security Development Lifecycleによる開発プロセスのセキュリティ強化
2025/01/25の.NETラボで登壇させて頂いたときの資料です。
yuriemori
January 25, 2025
More Decks by yuriemori
See All by yuriemori
GitHub CopilotのFinOps- AI CreditのObservabilityと価値を生むためのエージェント設計
yuriemori
0
480
DevOps, SRE & Platform Engineering- A Journey Toward the Ideal Development Environment
yuriemori
0
150
GitHub Copilot のこれまでとこれから: From Copilot to Collaborative Agents
yuriemori
1
610
プロンプトエンジニアリングを超えて:自由と統制のあいだでつくる Platform × Context Engineering
yuriemori
0
570
GitHub Advanced Security × Defender for Cloudで開発とSecOpsのサイロを超える: コードとクラウドをつなぐ、開発プラットフォームのセキュリティ
yuriemori
1
320
管理者向けGitHub Enterpriseの運用Tips紹介: 人にもAIにも優しいプラットフォームづくり
yuriemori
0
520
Agentic AI 時代の DevOps セキュリティ 2.0- GitHub Advanced Security × Defender for Cloud による Platform Protection
yuriemori
1
280
プロンプトエンジニアリングを超えて:自由と統制のあいだでつくる Platform × Context Engineering
yuriemori
1
1.1k
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
520
Other Decks in Technology
See All in Technology
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
140
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.3k
会社説明資料
persolserverworks
0
9.7k
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
160
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
USB PDを使ってスマホを労わりたい
raspython3
0
170
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
1
710
go-sqletch
moznion
0
140
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
7
2.7k
ゲームのリアルタイム通信から見た QUIC と MoQ
segadevtech
0
120
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
110
[JAWS-UG彩の国埼玉#12]そろそろ準備する?re:Invent2026をやさしく解説 / reinvent2026-sainokuni
sh_fk2
1
200
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How to Ace a Technical Interview
jacobian
280
24k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
A better future with KSS
kneath
240
18k
Agile that works and the tools we love
rasmusluckow
331
22k
Balancing Empowerment & Direction
lara
6
1.3k
Navigating Team Friction
lara
192
16k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
520
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Transcript
DevSecOps入門: Security Development Lifecycleに よる開発プロセスのセキュリティ強化 2025/01/25 Yurie Mori
INTRODUCTION
今日話すこと • DevSecOpsで対応すべき脅威と対応策 • セキュリティを開発プロセスに組み込む • セキュリティ戦略の設計 • GitHub Advanced
Securityの機能の仕組みの概要 • 考え方とか概要の紹介が中心(デモ見たかった人はすいません)
AGENDA • Introduction • DevSecOpsとSDL(Security Development Lifecycle) • SDLのプロセスとセキュリティ対策のプラクティス •
GitHub Advanced Securityによるセキュリティ脅威への対応 • まとめ • References
YURIE MORI(森 友梨映) • DevOps Engineer(Sr.Consultant)@Avanade • Microsoft MVP for
Developer Technologies(DevOps) 2024~ • Zennでの記事執筆(Azure DevOpsを使ったAgile/DevOpsの実践, エンタープライズでGiHub を使うとか) • TFSUGでの登壇 • 書籍執筆(AZ-400の試験対策本) • お仕事 • AgileとDevOpsの実践の支援 • エンタープライズでのDevOpsソリューション( Azure DevOps/GitHub )の導入・構築 • 技術スタック • Azure DevOps, GitHub, Azure, .NET, C# • Please follow me
DevSecOpsとSDL (Security Development Lifecycle)
WHY DEVSECOPS NOW? DevOps • Dev(開発)とOps(運用)がコラボレーションによる無駄 のない(Lean)ソフトウェア開発 • 継続的に顧客に価値を届けるための人、プロセス、テクノ ロジーの集合
DevSecOps • DevOpsの取り組みにおいてセキュリティをどのように担保 するか • DevOpsの実践はソフトウェア開発、デリバリーを高速 化するがその中でどのようにセキュリティを担保するか が重要になってくる Security/Complianceの担保 +
セキュリティのシフトレフト セキュリティ対策を後回しにしてしまうと、リリースの直前にセキュリティの問題が発覚し、修正のために膨大な時 間やコストがかかってしまう
継続的なセキュリティ DevOps のスピード感に、自動化プラクティス、運用環境、その他のパイプライン要素にセキュリティを組み込む 画像出典:https://learn.microsoft.com/ja-jp/training/modules/explore-devops-continuous- security-operations/2-explore-continuous-security
SDLのプロセスとセキュリティ対策のプ ラクティス
Security Development Lifecycle(SDL) MicrosoftのMichael Howard、Steave Lipner によって提唱されたセキュリティをソフトウェア開発の初期段 階からリリース後の運用・保守に至るまでの各段階でセキュリティ対策を実践するためのフレームワーク • セキュリティ要件を明確化
• 開発/運用するソフトウェアが満たす べきコンプライアンスやデータプライバ シー要件、データ保護方針、業界 標準へのセキュリティ規格の参照 • セキュリティに対する脅威、対 応策について学ぶ • 脅威モデリングを活用し、どこにセ キュリティリスクが潜んでいるかを洗 い出し、それに応じたアーキテクチャ 上の対策を検討 Implementation Design Requirement Training Response Release Verification • 定められたセキュリティ要件を満た すように、設計した対策を実装 • 開発環境をセキュリティで保護 • 出荷するコードの検証を行う • 静的コード解析 • シークレットスキャン • 構成の検証 • ペネトレーションテスト • 依存関係の脆弱性スキャン • 一気にリリースしない • 影響度ごとに展開範囲を定義し、影響度 が低い範囲(リング)から徐々に展開を 広げる • リング0: 開発チーム • リング1: 内部ユーザー • リング2: 外部の特定のユーザー • リング3: 全ユーザー • セキュリティインシデントが発生した 場合の対応手順を予め定義してお く • MS Defender for Cloud/for Identityを活用し、不審なアクティビ ティを監視/アラート通知ができるよ うにしておく
• 出荷されるソースコードは安全か? • 外部のパッケージやライブラリを使用している場合、それは安全か? • コンテナは安全? • いかに即座に脆弱性を検知できるか • 特定された脆弱性はいかに即座に修正できるか(MTTR:
Mean Time to Recovery) DevSecOpsにおける検討事項
DevSecOpsにおける脅威とセキュリティ対策 攻撃を受けやすいコード シークレットの流出による 不正アクセス 外部パッケージやOSSに含まれる 脆弱性 コンテナイメージに含まれる 脆弱性 ソースコードの静的解析(SAST) シークレット管理、
シークレットスキャン 依存関係の脆弱性スキャン コンテナイメージのスキャン 対策 ソフトウェア開発中に発生しうる脅威 プラクティス 使用できるツール • GitHub Advanced SecurityのCodeQLス キャン • SonarQube/Cloud • MS Defender for DevOps • HashiCorp Vault • Gitleaks • Azure Key Vault • GitHub Advanced Security • OWASP Dependency-Check • MendBolt(旧Whitesource Bolt) • Snyk • GitHub Advanced Security • MS Defender for Containers • Docker Scout • Clair
脅威モデリングによるセキュリティ戦略の設計 構築しようとしているシステムに対して予測される攻撃、脅威、リスクを特定し、セキュリティ戦略を検討する Design Break Fix Verify • 構築しようとしているシステムの目 的、実行環境、シナリオなどシステ ムに関する情報をベースにデータフ
ローダイアグラムを作成 • データフローダイアグラムをベースに、 STRIDEフレームワーク等を使用してシ ステムに対する潜在的な脅威を特定 • 特定した脅威に対して、対策を検 討 • 考えた対策がセキュリティ要件をク リアしているかを確認 Step1:データフローの可視化 Step2:脅威の特定 Step3:脅威への対策を識別 Step4:対策の有効性の検証 Design
STRIDEによる脅威の分解と特定 システムに対する脅威を5つのカテゴリの頭文字を合わせたもの。各カテゴリごとに脅威を分類し、それに対する対 策を考える 脅威の種類 具体例 対策例 Spoofing (なりすまし) 攻撃者が他のユーザーやシステムになりす ます
• 多要素認証 • 強力なパスワードポリシー • 証明書の使用 Tampering (改ざん) データが不正に変更される • 通信暗号化 Repudiation (否認) 攻撃者がログの削除や改ざんを行ってユー ザーが行った操作を否認する • ログの監査 Information disclosure (情報漏洩) 個人情報や資格情報などの機密情報が 不正に取得される • データのアクセス制御 • 暗号化による保護 • セキュアな通信プロトコル Denial of service (サービス拒否) サービスに過剰な負荷を与えて利用不可 状態にする • Rate limit • WAF(Web Application Firewall) Elevation of privilege (権限昇格) 攻撃者が不正に強力な権限(管理者権 限など)を取得して操作する • 最小特権の原則 • RBAC Design
Microsoft Threat Modeling Toolによる 脅威モデリング データフロー↓ STRIDEベースの脅威の 検出→ https://learn.microsoft.com/ja-jp/azure/security/develop/threat-modeling-tool
GitHub Advanced Security によるセキュリティ脅威への対応
GitHub Advanced Securityのセキュリティ機能 • コードスキャン • シークレットスキャン • 依存関係の脆弱性スキャン
GitHub Advanced SecurityのCodeQLによるコードの静的解析 Repository 分析対象のソースコード my-custom-suite.qls より高度な解析を行う場合、カスタ ムのクエリスイートファイルを作成して 解析に使用 GitHub
Actions github/codeql-action/init@v2 CodeQL データベースを作成 リレーショナル データと ソース参照を生成 データベースに対してCodeQL クエリを実行(脆弱性の特定) 分析結果の出力 クエリ実行結果の解釈 SARIFファイル エクストラクタ CodeQLによるソーススキャンはGitHub Actionsによって実行される クエリの参照 参照 出力 SQL/path injection, XSSなど一般的なセキュリティ脆弱性を検知する。 分析対象のソースコードを言語ごとにDB化(codeql dbの作成)して、クエリを実行することによって ソースの解析を行う。 高度な分析をしたい場合は自分でカスタムクエリを書くことも可 Verification バリアント分析: 既知のセキュリティ脆弱性をシードとして、 類似の脆弱性を検出する Response
CodeQLによる分析を外部から使いたい CodeQL CLIを使うことによってCodeQLの機能を使用できる
CodeQLの様々なユースケース • ケース1: • ソースコードはGitHubにある。 • リポジトリはPublic • →CodeQL CLIは使わなくていい。リポジトリのcode
securityから有効化できる • →GitHubのパブリックリポジトリではCodeQLが無料で使用できる • ケース2: • ソースコードはGitHub外(Azure DevOpsとか) • コードスキャンでCodeQL使いたい • GitHubのリポジトリは持っていない • →CodeQL CLIを使用することでローカルでCodeQLによる分析を実行できる。 • →ただ、分析結果をAzure DevOps上でレンダリングするとかは無理なので、分析結果の SARIFファイルのviewerが必要 • →Azure DevOpsでCodeQLが使いたいなら、いっそのことGitHub Advanced Security for Azure DevOpsを使ったがいいかも(別途課金が必要)
GitHub Advisory Database CVE*1に基づいて脆弱性を一意に識別 CWE *2に基づいて脆弱性を分類 CVCC *3に基づいて 脆弱性をスコアリング Repository
分析対象のソースコード Package.jsonなど依存関係を定義し たマニフェストファイル Dependency Graph ①リポジトリの依存関係の定義ファイル、 GitHub Advisoryに更新が入ると 依存関係グラフが更新される Dependabotアラート Dependabot セキュリティアップデート Dependabot バージョンアップデート セキュリティ的な脆弱性 バージョン乖離による脆弱性 自動アップデート Pull Request アラート生成 ③検知された脆弱性の種類により、自 動アップデートのPRが自動で作成される Dependabotによる 自動アップデートのPR作成 Dependency Review ②依存関係由来の脆弱性が検知さ れるとDependabotアラートが生成 ↑PRの変更適用による 依存関係変更の表示 GitHub Advanced Securityによる依存関係の 脆弱性の検知と対応 Verification • CVE(Common Vulnerability and Exposures)*1: • ソフトウェアの脆弱性やセキュリティリスクを一意に管 理する識別子 • CWE (Common Weakness Enumeration)*2: • ソフトウェアにおける脆弱性を分類・整理した体系 • CVCC (Common Vulnerability Scoring System)*3: • 脆弱性の深刻度を評価するためのスコアリングシステム Response
GitHub Advanced SecurityをAzure DevOpsで使う • GitHub Advanced SecurityがAzure DevOpsでも使えるGitHub Advanced
Security for Azure DevOps(GHAzDO)という機能がある • GitHubアカウントは不要 • 以下の条件をクリアすることで有効にできる • 導入する人がProject Collection Administratorsの権限を持っている • 導入対象のReposのソース管理方式がGitであること • Azure DevOpsの使用料とは別でお値段が掛かるのでご注意($49/月 ※1ア クティブコミッター) • Organization/Project/Reposのレベルで有効化が可能
GHAS/GHAzDOとMS Defender for Cloudの統合(1/3) GitHub Advanced Security(GHAS)またはGitHub Advanced Security for
Azure DevOpsとMS Defender for Cloudを 統合することによって、コードベース/DevOps Platformのセキュリティ状況とデプロイ先のセキュリティ状況を監視することができる。 DevOps Platformだけでなくクラウド環境も含めた包括的なDevSecOpsの実現が可能 Response
GHAS/GHAzDOとMS Defender for Cloudの統合(2/3) Response
GHAS/GHAzDOとMS Defender for Cloudの統合(3/3) DevOps上のセキュリティ的な脆弱性がいくつあるか、コードスキャンによって何件の脆弱性が確認されたかなど、 DevOpsプラットフォーム上(GitHub、Azure DevOpsなど)で確認されたセキュリティの状態を確認するこ とができる Response
Universe2024で発表されたアップデート: Found Means FIX( 見つけたら即修正) Copilot Autofix for CodeQL Code
scanning alertがGA Security Campaign • CodeQLで検出された脆弱性をCopilotが自動で修正してくれる • 全パブリックリポジトリで無料で利用可能 • 一度に最大数千件のセキュリティアラートをトリアージして、タイプ、重大度、 リポジトリ、チームごとにフィルタリング→Copilot Autofix による修正提案 • セキュリティ負債の一括返済
まとめ
• ソフトウェア開発の早期段階でセキュリティ対策を実施することでセキュリティ負債の増大、リリース前 の手戻り発生、インシデント発生などの悲しい事故を回避 • SDLなどの方法論の整備・発展とGitHub Advanced Securityなどのツールによって以前より比 較的容易にセキュリティを開発プロセスに組み込みやすくなっている(一生懸命YAMLを書かなくて も最低限のチェックができる。。。) •
ので、積極的にDevSecOpsを実践していきましょうね٩(`・ω・´)و まとめ
• DevSecOps • https://learn.microsoft.com/ja-jp/devops/operate/security-in-devops • 継続的セキュリティ • https://learn.microsoft.com/ja-jp/training/modules/explore-devops-continuous-security-operations/2-explore-continuous- security •
SDL(Security Development Lifecycle) • https://learn.microsoft.com/ja-jp/compliance/assurance/assurance-microsoft-security-development-lifecycle • 脅威モデリング • https://learn.microsoft.com/ja-jp/training/modules/tm-introduction-to-threat-modeling/1b-threat-modeling-phases?ns-enrollment- type=learningpath&ns-enrollment-id=learn.security.tm-threat-modeling-fundamentals • https://learn.microsoft.com/ja-jp/azure/well-architected/security/threat-model • Microsoft Threat Modeling Tool • https://learn.microsoft.com/ja-jp/azure/security/develop/threat-modeling-tool-getting-started#analyzing-threats • GitHub Advanced SecurityのCodeQL/依存関係管理(以下blogに出典まとまってます) • https://zenn.dev/yuriemori/articles/45fee4f19a9184 • GHAS/GHAzDOとMS Defender for Cloudの統合(以下blogに出典まとまってます) • https://zenn.dev/yuriemori/articles/0d7ef5b16c9655 • https://zenn.dev/yuriemori/articles/0d7ef5b16c9655 • Found Means FIX • https://github.blog/news-insights/product-news/universe-2024-previews-releases/ References
THANK YOU ☺ Yurie Mori X: @1115_lilium