Slide 1

Slide 1 text

GitHub と Azure でアプリ ケーションとインフラストラクチャ の守りを固める DevSecOps 開発を加速するGitHub x Azure 最新開発ベストプラクティス vol.3

Slide 2

Slide 2 text

岩永かづみ / Kazumi IWANAGA • Microsoft MVP for Azure • ZEN Architects 所属 • GitHub公認トレーナー • 得意な領域 • Infrastructure as Code • GitHub Actions による自動化 • 技術コミュニティ • Code Polaris / Hack Everything. • @dz_ • @dzeyelid • @dzeyelid • dzeyelid

Slide 3

Slide 3 text

ぶっちゃけ、セキュリティに割いて いる時間はないの。

Slide 4

Slide 4 text

シフトレフトで早めにセキュリティに対応することが有用なのは、 めちゃくちゃ賛同! だけど、その時間がないんだよなぁ~

Slide 5

Slide 5 text

セキュリティのための時間とお金 時間 お金

Slide 6

Slide 6 text

GitHub 使ってますか?

Slide 7

Slide 7 text

GitHub 使ってますか? GitHub ですぐできるセキュリティ対策、 教えちゃいます

Slide 8

Slide 8 text

GitHub でできるセキュリティ対策 Code scanning プルリクエスト Dependabot GitHub Actions Secret scanning Secret scanning デフォルトブランチ 作業ブランチ push push

Slide 9

Slide 9 text

参考 • GitHub セキュリティを備えた DevSecOps - Azure Architecture Center | Microsoft Learn • コードとしてのインフラストラクチャ (IaC) 向け DevSecOps - Azure Architecture Center | Microsoft Learn

Slide 10

Slide 10 text

GitHubで始める ゼロ"コスト" セキュリティ対策 Dependabot

Slide 11

Slide 11 text

Dependabot GitHubで始める ゼロ"コスト" セキュリティ対策

Slide 12

Slide 12 text

Dependabot Code scanning プルリクエスト Dependabot GitHub Actions Secret scanning Secret scanning デフォルトブランチ 作業ブランチ push push

Slide 13

Slide 13 text

Dependabot は無料ですぐ使える • 依存関係のスキャン、脆弱性の検出を行う • パブリック、プライベートリポジトリで無料で使える • 検出の対象は、デフォルトブランチ

Slide 14

Slide 14 text

Dependabot 関連機能一覧 機能(無料で使える) 説明 Dependency graph 依存関係の一覧を表示する Dependabot alerts 依存関係の中に脆弱性を検出した場合、通知する Dependabot security updates 検出された脆弱性のある依存関係を対処するための提案を行う(プルリ クエストが作成される) Dependabot version updates 依存関係のうち、新しいバージョンがあれば通知し、提案を行う(プルリク エストが作成される) 機能(※) 説明 Dependency review 依存関係をスキャンし、脆弱性を検出する機能が GitHub Actions の アクションとして提供されている = デフォルトブランチにマージする前に脆弱性を検出できる ※ パブリックリポジトリ、または GitHub Advanced Security(GHAS) が適用されたプライベートリポジトリでしか利用できない

Slide 15

Slide 15 text

Dependabot デモ • Dependency graph を確認してみる • Dependabot alerts, security updates の有効化 • Dependebot alerts を確認してみる • Dependabot security updates によるプルリクエストを確認して みる • Dependabot version updates の有効化、設定

Slide 16

Slide 16 text

Dependabot 参考 • サプライ チェーンのセキュリティについて - GitHub Docs • 依存関係グラフについて - GitHub Docs • Dependabot アラートについて - GitHub Docs • Dependabot のセキュリティ アップデート - GitHub Docs • GitHub Dependabot のバージョンアップデートについて - GitHub Docs • 依存関係レビューの構成 - GitHub Docs

Slide 17

Slide 17 text

GitHubで始める ゼロ"タイム" セキュリティ対策 Secret scanning, Code scanning: CodeQL

Slide 18

Slide 18 text

Secret scanning GitHubで始める ゼロ"タイム" セキュリティ対策

Slide 19

Slide 19 text

Secret scanning Code scanning プルリクエスト Dependabot GitHub Actions Secret scanning Secret scanning デフォルトブランチ 作業ブランチ push push

Slide 20

Slide 20 text

Secret scanning(パブリックリポジトリ) • パートナープログラムで提供されているシークレットパターンが検出さ れる • シークレットが検出されると、そのパートナーに通知され、シークレット の無効化などが対応される • リポジトリ管理者への通知は設定で有効化できる • 検出の契機は、push 時(どのブランチでも) • パブリックリポジトリの場合は無料で利用できる

Slide 21

Slide 21 text

Secret scanning 機能一覧 パブリックリポジトリ プライベートリポジトリ プライベートリポジトリ (GHASあり) パートナーへの通知(防御実施) 必ず行われる 利用不可 有効 or 無効 GitHub上での通知表示 有効 or 無効 利用不可 有効 or 無効 Push protection 利用不可 利用不可 有効 or 無効 カスタムパターン 利用不可 利用不可 追加できる(最大100) ※ GHAS = GitHub Advanced Security

Slide 22

Slide 22 text

Secret scanning(GHASあり) • プライベートリポジトリで Secret scanning を利用したい場合は、 GHAS が必要 • パブリックリポジトリでできることに加え、Push protectionやカスタ ムパターンによる検出を行える

Slide 23

Slide 23 text

Secret scanning(GHASあり) Code scanning プルリクエスト Dependabot GitHub Actions Secret scanning Secret scanning デフォルトブランチ 作業ブランチ push push Push protection

Slide 24

Slide 24 text

Secret scanning - Push protection

Slide 25

Slide 25 text

Secret scanning デモ • Secret scanning alerts を確認してみる • パブリックリポジトリでの設定 • GitHub Enterprise 配下の設定

Slide 26

Slide 26 text

Secret scanning 参考 • シークレット スキャンについて - GitHub Docs • secret scanning パターン - GitHub Docs • Secret scanning partner program - GitHub Docs • シークレット スキャンによるプッシュの保護 - GitHub Enterprise Cloud Docs(GitHub Enterprise) • シークレット スキャンのカスタム パターンの定義 - GitHub Enterprise Cloud Docs(GitHub Enterprise)

Slide 27

Slide 27 text

Code scanning GitHubで始める ゼロ"タイム" セキュリティ対策

Slide 28

Slide 28 text

GitHub でできるセキュリティ対策 Code scanning プルリクエスト Dependabot GitHub Actions Secret scanning Secret scanning デフォルトブランチ 作業ブランチ push push

Slide 29

Slide 29 text

GitHubが提供する静的解析をすぐ使える • 設定から静的解析をすぐ適用できる • より柔軟に設定したい場合は、GitHub Actions のワークフローを出力し、カ スタマイズができる • パブリックリポジトリの場合は無料で利用できる • プライベートリポジトリで利用したい場合は、GitHub Advanced Security(GHAS) が必要 • 解析は GitHub が提供する CodeQL を用いており、様々な言語や フレームワークに対応しており、クエリを自作することもできる

Slide 30

Slide 30 text

CodeQL analysis 導入デモ • Setup の操作 • Advanced を選択した場合のワークフロー • 検出されたアラートを確認してみる

Slide 31

Slide 31 text

CodeQL のセットアップは簡単

Slide 32

Slide 32 text

CodeQL デフォルト設定は自動判別 リポジトリにあるコードの言語を検出して、対応した言語を設定してくれる

Slide 33

Slide 33 text

検出結果をGitHub上で確認できる

Slide 34

Slide 34 text

検出結果詳細 コードの位置や、関連する脆弱性などの情報を確認できる

Slide 35

Slide 35 text

アプリケーションだけでなく、 インフラの脆弱性も Code scanning: Overview

Slide 36

Slide 36 text

サードパーティツールの結果を取り込める • Code Scanning は、SARIF 形式の解析結果をアップロードすると Overview で統合して扱える

Slide 37

Slide 37 text

サードパーティーツールによる解析 デモ • tfsec アクションの紹介 • microsoft/security-devops-action アクションの紹介 • github/codeql-action/upload-sarif によるアップロード

Slide 38

Slide 38 text

tfsec • Terraform のコードを解析をしてくれる • Azure などの主要なプラットフォームプロバイダのインフラ構成の解 析もサポートしている • aquasecurity/tfsec: Security scanner for your Terraform code (github.com)

Slide 39

Slide 39 text

microsoft/security-devops-action • オープンソースの解析ツールを統合してスキャンを実行してくれる • Bandit, BinSkim, Eslint – Python, バイナリ, JavaScript など解析 • Template Analyzer - ARMテンプレート、Bicep の解析 • Terrascan – Terraform やコンテナ周りの解析 • Trivy – コンテナ周りの解析 • microsoft/security-devops-action: Microsoft Security DevOps for GitHub Actions.

Slide 40

Slide 40 text

GitHub でのセキュリティ対策、 漏れはない? Microsoft Defender for GitHub

Slide 41

Slide 41 text

Microsoft Defender for DevOps

Slide 42

Slide 42 text

Defender for DevOps 資料 • Microsoft Defender for DevOps - 利点と機能 | Microsoft Learn • Microsoft Security DevOps GitHub アクションを構成する | Microsoft Learn

Slide 43

Slide 43 text

まとめ

Slide 44

Slide 44 text

GitHubセキュリティ関連の利用可否まとめ パブリックリポジトリ プライベートリポジトリ プライベートリポジトリ (GHASあり) Dependency graph 〇 〇 〇 Dependabot alerts 〇 〇 〇 Dependabot security updates 〇 〇 〇 Dependabot version updates 〇 〇 〇 Dependency review 〇 × 〇 Secret scanning 〇 × 〇 Secret scanning(Push protection, カスタムパターン) × × 〇 Code scanning 〇 × 〇

Slide 45

Slide 45 text

GitHub Advanced Security とは • GitHub Enterprise Cloud または Server のライセンスに付与す る追加ライセンス • 前述のように、プライベートリポジトリでセキュリティ関連の機能をフル に利用するために必要

Slide 46

Slide 46 text

Thank you so much🍩.