Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps

GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps

「開発を加速するGitHub x Azure 最新開発ベストプラクティス vol.3」でお話した資料です。

Kazumi IWANAGA

June 05, 2023
Tweet

More Decks by Kazumi IWANAGA

Other Decks in Technology

Transcript

  1. 岩永かづみ / Kazumi IWANAGA • Microsoft MVP for Azure •

    ZEN Architects 所属 • GitHub公認トレーナー • 得意な領域 • Infrastructure as Code • GitHub Actions による自動化 • 技術コミュニティ • Code Polaris / Hack Everything. • @dz_ • @dzeyelid • @dzeyelid • dzeyelid
  2. 参考 • GitHub セキュリティを備えた DevSecOps - Azure Architecture Center |

    Microsoft Learn • コードとしてのインフラストラクチャ (IaC) 向け DevSecOps - Azure Architecture Center | Microsoft Learn
  3. Dependabot Code scanning プルリクエスト Dependabot GitHub Actions Secret scanning Secret

    scanning デフォルトブランチ 作業ブランチ push push
  4. Dependabot 関連機能一覧 機能(無料で使える) 説明 Dependency graph 依存関係の一覧を表示する Dependabot alerts 依存関係の中に脆弱性を検出した場合、通知する

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

    updates の有効化 • Dependebot alerts を確認してみる • Dependabot security updates によるプルリクエストを確認して みる • Dependabot version updates の有効化、設定
  6. Dependabot 参考 • サプライ チェーンのセキュリティについて - GitHub Docs • 依存関係グラフについて

    - GitHub Docs • Dependabot アラートについて - GitHub Docs • Dependabot のセキュリティ アップデート - GitHub Docs • GitHub Dependabot のバージョンアップデートについて - GitHub Docs • 依存関係レビューの構成 - GitHub Docs
  7. Secret scanning Code scanning プルリクエスト Dependabot GitHub Actions Secret scanning

    Secret scanning デフォルトブランチ 作業ブランチ push push
  8. Secret scanning 機能一覧 パブリックリポジトリ プライベートリポジトリ プライベートリポジトリ (GHASあり) パートナーへの通知(防御実施) 必ず行われる 利用不可

    有効 or 無効 GitHub上での通知表示 有効 or 無効 利用不可 有効 or 無効 Push protection 利用不可 利用不可 有効 or 無効 カスタムパターン 利用不可 利用不可 追加できる(最大100) ※ GHAS = GitHub Advanced Security
  9. Secret scanning(GHASあり) • プライベートリポジトリで Secret scanning を利用したい場合は、 GHAS が必要 •

    パブリックリポジトリでできることに加え、Push protectionやカスタ ムパターンによる検出を行える
  10. Secret scanning(GHASあり) Code scanning プルリクエスト Dependabot GitHub Actions Secret scanning

    Secret scanning デフォルトブランチ 作業ブランチ push push Push protection
  11. 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)
  12. GitHubが提供する静的解析をすぐ使える • 設定から静的解析をすぐ適用できる • より柔軟に設定したい場合は、GitHub Actions のワークフローを出力し、カ スタマイズができる • パブリックリポジトリの場合は無料で利用できる

    • プライベートリポジトリで利用したい場合は、GitHub Advanced Security(GHAS) が必要 • 解析は GitHub が提供する CodeQL を用いており、様々な言語や フレームワークに対応しており、クエリを自作することもできる
  13. 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.
  14. Defender for DevOps 資料 • Microsoft Defender for DevOps -

    利点と機能 | Microsoft Learn • Microsoft Security DevOps GitHub アクションを構成する | Microsoft Learn
  15. GitHubセキュリティ関連の利用可否まとめ パブリックリポジトリ プライベートリポジトリ プライベートリポジトリ (GHASあり) Dependency graph 〇 〇 〇

    Dependabot alerts 〇 〇 〇 Dependabot security updates 〇 〇 〇 Dependabot version updates 〇 〇 〇 Dependency review 〇 × 〇 Secret scanning 〇 × 〇 Secret scanning(Push protection, カスタムパターン) × × 〇 Code scanning 〇 × 〇
  16. GitHub Advanced Security とは • GitHub Enterprise Cloud または Server

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