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

生成AI時代のセキュアCI/CDとソース管理

 生成AI時代のセキュアCI/CDとソース管理

Microsoft AI Tour2025でお話させて頂いた内容です。

生成AIの活用が進む中、ソフトウェア開発におけるセキュリティ対策の重要性が高まっています。本セッションでは、GitHub Advanced Security (GHAS) と Copilot Autofix を活用した、開発フローの早い段階で脆弱性を検出・修正するDevSecOpsの実践方法を紹介します。CodeQLによるコードスキャン、シークレットスキャン、Dependabotを活用した依存関係管理をCI/CDに統合し、Copilotによる自動修正を組み合わせることで、開発者の負担を最小限に抑えつつセキュアなコードベースを維持する方法を解説します。AI時代のセキュアな開発フローの実現に興味のある方はぜひご覧ください!

https://aitour.microsoft.com/pt-BR/sessions/560086e3-d351-47a5-b41e-eeaa62e7174b

yuriemori

March 27, 2025
Tweet

More Decks by yuriemori

Other Decks in Technology

Transcript

  1. 森 友梨映(Yurie Mori) • DevOps Engineer (Sr.Consultant)@Avanade Japan • Microsoft

    MVP for Developer Technologies(DevOps) 2024~ • Zennでのブログ執筆 • 各種カンファレンス、勉強会での登壇 • エンタープライズでのDevOpsソリューション(Azure DevOps/GitHub)の導入・構築 • DevOps/DevSecOpsの技術アドバイザリ • 技術スタック • Azure DevOps, GitHub, Azure, .NET, C# • Please follow me
  2. 「後回しにするほど高くつく」セキュリティリスクの負債 セキュリティ対策を後回しにしてしまうと、リリースの直前にセキュリティの問題が発覚し、修正のために膨大な時間やコストが かかってしまう。そのため、セキュリティ対策を開発プロセスの早期段階で実施する「セキュリティのシフトレフト」が必要 Plan Develop Deliver Test Operate Release! リリースの直前にソースの統合やテストを実行する

    と、 重大なセキュリティリスクや脆弱性、障害が見つ かったときのリカバリに掛かるコストが膨大になる 直前にバグやコンフリクト、セキュリティ脆弱 性がたくさん 見つかってリリースが遅れる、 リリース後にインシデントが発生する Plan Develop Operate Deliver Release! ソフトウェア開発ライフサイクルの早期にテスト、 セキュリティ対策を組み込んで継続的にチェックす ることによって脆弱性や障害を早期に発見する 継続的なテストやセキュリティ対策により、 早期に品質が保証されるのでリリース時や リリース後のリスクが低下する
  3. GitHub Advanced Security(GHAS) GitHub Code Security  $30/1 active committer/月

     Code Scanning  コードに含まれる脆弱性の検知  Dependabot  OSSの依存関係に含まれる脆弱性の検知  Copilot Autofix  Copilotによる脆弱性を含むコードの自動修正提 案  Security Campaign  これまで蓄積されたセキュリティ的な脆弱性を最 大数1000件規模でトリアージ&修正 GitHub Secret Protection  $19/1 active committer/月  Secret Scanning  Push Protection: シークレットが含まれる変更を pushさせないようにする  AIによるパスワード混入の検出 • *2025年3月まではこれら2つの機能はtwo-in-oneでGitHub Advanced Securityで$49で提供されている • *2025年4月よりこの2つの料金体系で分けて提供される • *DependabotはGHASがなくともPrivate Reposで利用可
  4. GitHub Advanced Securityによるコードベースの保護 攻撃を受けやすいコード シークレットの流出による 不正アクセス 外部パッケージやOSSに含まれる 脆弱性 コンテナイメージに含まれる 脆弱性

    ソースコードの静的解析(SAST) シークレット管理、 シークレットスキャン 依存関係の脆弱性スキャン コンテナイメージのスキャン 対策 ソフトウェア開発中に発生しうる脅威 プラクティス 使用できるツール • GitHub Code Security • Code Scanning • Azure Key Vault/GitHub Secret • GitHub Secret Protection • Secret Scanning • Push Protection • GitHub Code Security • Dependabot • MS Defender for Containers
  5. Copilot Autofix: Copilotによる脆弱性の修正提案  Code Scanningで検出された脆弱性に対して、Copilotが修正案を生成して提案  GitHub Copilotのライセンスは不要、GitHub Code

    Securityのライセンスに含まれる  Copilot Autofix による脆弱性修正の提案を行うために、Code Scanning の解析結果から GPT-4o に以下の情報 が送信されます  対象ブランチの最新のソースコード  ソース(入力)やシンク(出力)など、データの流れに関係する位置情報  アラートメッセージやデータフロー内で参照された場所の、周辺のコードスニペット関連する各ファイルの冒頭最大10行のコード  問題を検出した CodeQL クエリのヘルプテキスト  修正プログラムを生成するプロセスでは、上記の範囲を超えてユーザーのデータが収集または利用されることはない
  6. GitHub Repository PR Check • Build • Unit Test GitHub

    Actions Dev • Code Scanning • Dependency Check • Secret Scanning • Build • Unit Test • Integration Test • Publish Package • Deploy GitHub Actions GitHub Secret Protection GitHub Code Security CI/CD • Code Scanning • Dependency Check • Secret Scanning GitHub Secret Protection GitHub Code Security Integrate Security & Copilot to CI/CD GitHub Repository Review Provide suggestion for fix Merge to main Create PR Observe Publish build artifacts to Packages GitHub Packages GitHub Secrets Refer secrets Dev
  7. GitHub Advanced Securityによるコードベースの保護 • ymlを書かずにGUIベースの設定で基本的なセキュリティチェックを有効化 • コードベースに対する広範なセキュリティリスクに対応 • 攻撃を受けやすいセキュリティ的に脆弱なコード(SQLインジェクションやXSS, パスインジェクション)

    • シークレットのハードコード • 外部のライブラリに起因する脆弱性やバージョン乖離によるセキュリティリスク • ※より高度な分析や特殊なシナリオでのコードスキャンのためにはCodeQLクエリのカスタムが必要だが、基 本的な脆弱性はデフォルトの設定でコードを書かずに有効化できる • セキュリティリスクの即時検出→Copilotによる修正(Found means fix) • 履歴スキャンによるコードベースの継続的監視による、運用/保守の負担軽減