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

【20260528 AI×DevOpsStudy #15】GitLab環境で脆弱性の検知からA...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

【20260528 AI×DevOpsStudy #15】GitLab環境で脆弱性の検知からAIによる修正(MR作成)、チャット通知までを自動化する仕組み

■AI×DevOps Study #15 の概要
2026年5月28日に開催した「AI×DevOps Study」第15回のアーカイブ動画です。

「AI×DevOps Study」は、AI駆動開発やそこに関係するマイクロサービスについて理解を深める場になります。
株式会社ScalarではAIを使ったチーム開発を進めており、参画しているメンバーや協力会社の方から、具体的なAI駆動開発を実施する方法、その中で生まれたマイクロサービスアーキテクチャを使用したAI駆動開発の事例や実際に使えるエージェントについてお話頂き、参加者の皆様と知識の共有や交換を目的としています。
(弊社製品であるScalarDBも絡んだお話も一部出てきますが、汎用的な内容となっておりますのでフラットにお楽しみいいただけます)

■今回のテーマ
「GitLab環境で脆弱性の検知からAIによる修正(MR作成)、チャット通知までを自動化する仕組み」

アウトライン

1. イントロダクション.
・昨今のAIを取り巻く環境と脅威:Claude Mythos等のAI進化で悪用リスクが高まっており、脆弱性の早期検出と解決がより重要になっています。
・セキュリティ対応の課題: 昨今のセキュリティ事故増加を受け、開発の現場では、脆弱性の放置リスクや修正リードタイム短縮を新たな課題として認識しています。

2. 自動修正仕組み導入の前提条件.
・AI活用の最大化:AIツールを導入するだけでこのような仕組みを活用できるわけではありません。脆弱性検知に必要なツール、AIの修正影響度の限定が前提として必要になります。
・前提条件の提示:自動修正の仕組みを活用するにあたって必要な前提条件を、「ツール軸」と「アーキテクチャ軸」に分けて紹介します。

3. 脆弱性検出からAIによる自動修正.
・ジョブのスケジュール実行と動作担保: テストカバレッジによる既存動作の保証を前提とし、自動修正ジョブを他ジョブに干渉しないよう定期実行させる仕組みについて説明します。
・脆弱性チェックとAIによる自動修正: APIを用いた脆弱性の抽出から、未対応の脆弱性を自動でIssue化し、AIが自動修正・MRを開発者に通知するまでの処理フローを、実際のログを用いて解説します。

4. 開発セキュリティ運用におけるAI活用.
・自動化がもたらす効果: 仕組みの導入による、定性的・定量的な効果を共有します。
・AI活用範囲の拡張: 今回の自動修正にとどまらず、今後開発セキュリティ運用でAI活用を広げていくための展望を提示します。

■登壇者情報(敬称略)
増田小波
札幌の株式会社マーベリックスで、フロントエンドを中心にWebエンジニアを務めています。現在はAI駆動型開発案件に参画しており、AIとの協働に留まらず「AI活用でいかに人間の作業を自動化できるか」を日々探求しています。効率化を進める中でセキュリティへの関心も深めており、安全性を担保した上での自動化や堅牢なフロントエンド実装のあり方を模索しています。

■関連コンテンツ
・Youtube(過去の勉強会動画も公開中!)
www.youtube.com/@scalar-labs

・Zenn ブログ
https://zenn.dev/p/scalar_sol_blog

・イベントページ(connpass)
https://scalar.connpass.com/

Avatar for Scalar, Inc.

Scalar, Inc. PRO

May 28, 2026

More Decks by Scalar, Inc.

Other Decks in Technology

Transcript

  1. 発表の⽬次 1. 背景と課題 ◦ セキュリティ危機と運⽤の課題 2. 前提 ◦ AI駆動の仕組みを最⼤限活⽤するための ツール‧プロジェクト構成

    3. 解決策‧実装詳細 ◦ ⼈間の⼿動確認からAIを活⽤した⾃律的脆弱性対応への移⾏ ◦ 仕組みのフロー詳細 4. デモ ◦ ログのご紹介 5. 導⼊効果‧今後の展望 ◦ 仕組み導⼊後の効果‧AIを活⽤したセキュリティ運⽤について 4
  2. 『CVE surge: Why the record rise in new vulnerabilities?』より 種類

    脆弱性の発見頻度 大型フレームワーク (Spring / Rails / Django) 数ヶ月に1回〜毎月 Webサーバ (Apache / Nginx) 年数回 JavaScript ecosystem (npm packages) 毎週〜毎月 OS・ブラウザ 毎月 対応項目 頻度 dependency scan 毎日 dependency update 毎週 security patch 即日〜1週間 major upgrade 四半期 背景:AIの登場により脆弱性が数多く⾒つかる
  3. 課題:セキュリティ対応のラグ • 脆弱性の検出後、通知されない ◦ 誰かに⾔われるまで気づけない。脆弱性レポート画⾯を⾒に⾏く運⽤ • 脆弱性検知に気付けない → 確認するまで放置してしまうリスク •

    セキュリティ事故が多発する昨今、修正までのリードタイムを短縮したい • 脆弱性が検知されたら通知する = 放置リスクを排除する • AIに⾃動で修正させる = AIによる初動対応で放置期間を極⼒短縮 8
  4. 課題:既存機能のスコープ • GitLab Duo エージェント型⾃動修正の制約 ◦ 対応スコープ:SAST のみ(dependency_scanning は⾮対応) ◦

    利⽤要件:GitLab 18.9+ / Ultimate プラン / Duo Enterprise ◦ 今回の主要ユースケース(npm依存の脆弱性修正)はカバー外 • 独⾃実装で実現した付加価値 ◦ SAST + dependency_scanning を統⼀フローで処理 ◦ npm audit による修正結果の⾃動検証ループ(最⼤2回リトライ) ◦ 既存Issue管理‧ラベル‧レビュアー割り当てとの統合 ◦ Google Chat 通知による即時フィードバック 9
  5. GitLab > セキュリティ > セキュリティ設定 • リポジトリに最適な セキュリティツール を設定 •

    CI/CDパイプラインで⾃動実⾏(囲っているもの = 仕組み導⼊先で使⽤) GitLabセキュリティツール:AST 13
  6. レイヤー別マルチリポジトリのマイクロサービス構成 • 役割を分離したアーキテクチャ によるAI活⽤の最適化 ◦ 縦割りのリポジトリ分割:Frontend / BFF / Backend

    の疎結合構成 ◦ 単⼀責任での機能分解:機能コンポーネントを適切に分解‧独⽴させる ◦ コントラクトベースの遵守: コンポーネント間の連携ルールを厳格化 • なぜこの⼟台が必要なのか? ◦ 💭 モノリス構成 → AI修正により、他の機能に影響が出るリスクあり。⼈間によるテストが毎回 必要になり、⾃動化が破綻する ◦ ✅ 今回のアーキテクチャ → 修正時の影響範囲が限定されるため、他の機能に影響しない。AIに コードの書き換えを任せられる安全な環境が担保されている 17 AIツールを導⼊するだけでは⾃動化は実現しない 安全にAIを稼働させるには、以下のアーキテクチャが必要
  7. 技術スタック • 基盤‧パイプライン:GitLab リポジトリ / GitLab CI • AIモデル: Claude

    Code ◦ Sonnet 4.6をメイン使⽤ - サブタスクではClaudeが判断しHaikuも利⽤ ◦ なお使⽤モデルはAWS Bedrock側で⾃由に選択可能 • AIインフラ(LLM基盤): Amazon Bedrock ◦ ※プロジェクト既存のAWS環境を利⽤ • 通知: Google Chat API ◦ ※弊社内使⽤ツールのため 20
  8. • 定期実⾏スケジュール設定 ◦ 実⾏忘れを防ぐ ◦ 定期⾃動実⾏ = ⾮属⼈化 • 他ジョブとは異なる実⾏形態

    ◦ 単体テストなど他のジョブはコミットやMRごと に実⾏される ◦ 他パイプラインジョブに⼲渉しないよう設定 スケジュール実⾏ 23
  9. • 脆弱性の抽出 ◦ GitLab Vulnerabilities API で脆弱性有無の確認 ◦ 重要度/レポートタイプ/詳細情報(ロケーション、ソ リューションなど)を取得

    ◦ 後続の⾃動修正ジョブにアーティファクトとして渡す ◦ 特に、ソリューションをClaudeCodeで修正時に使⽤ • Issue作成 ◦ 脆弱性が検出されなければジョブは終了 ◦ 検出される且つ紐づくIssueがない時のみ実⾏ ▪ すでにIssueに紐づく脆弱性の重複対応を防ぐ 脆弱性チェックジョブ 24
  10. • ClaudeCode による修正 ◦ 作業ブランチの有無確認、なければ作成 ◦ 受け取ったアーティファクトから脆弱性のソリュー ションを参考に修正対応を実施 ◦ 修正もれがないか確認(依存関係のみ)

    • ドラフトMR作成 ◦ ⾃動修正のドラフトMRを作成 ◦ ⼈間によるレビューを必須にする ▪ AIによる修正はあくまで「⼀次対応の⾃動化」 ▪ 完璧な修正ができる魔法の道具ではないため、 ⼈間によるレビューと最終判断が前提となる • チャット通知 ◦ Google ChatのWebhookを利⽤した通知 ⾃動修正ジョブ 25
  11. 補⾜:ジョブの条件と例外ケース 各処理の実⾏条件 失敗‧例外ケースの扱い ◦ Claude Codeが修正できなかった場合:未修正件数をMRの説明に記載(要⼈間レビュー) ◦ ⾃動修正ジョブが失敗した場合:Issueにジョブ失敗コメントを⾃動投稿(⼿動対応へ誘導) ◦ ※

    Google Chat通知はMR作成成功時のみ 26 処理 スキップ条件 ① 脆弱性チェック 修正するものがない場合 ② Issue作成 紐づくIssueがすでに存在する場合 ③ 自動修正 修正ブランチがすでにある場合
  12. • Issueタイトル ◦ 深刻度 = Critical の脆弱性検出 の場合に表記 ◦ 緊急度がひと⽬でわかる

    • 概要 ◦ 脆弱性⼀覧 ▪ 主たる情報のみ ◦ 実⾏したパイプラインのURL 実例:脆弱性検出Issue 29
  13. 導⼊効果 定量的効果 • 脆弱性の検出通知:都度⼿動確認 → 最⼤7⽇以内の⾃動通知に改善 • 対応開始までの時間:担当者が気づき次第 → 検出後即時のMR⾃動作成に改善

    • 副次効果:仕組みを導⼊したことで脆弱性を意識的に気にかけるようになった(個⼈の感想) 定性的効果 • 作業負担‧属⼈化の解消 ◦ 修正作業の⼼理的ハードル低下 • 「気づいた⼈‧⼿すきの⼈が対応する」という曖昧な作業分担を改善 ◦ 対応漏れ‧先送りの防⽌ • 仕組みとしての堅牢性 ◦ Issue‧MRが⾃動⽣成されることで監査証跡が残る(いつ‧何を‧どう修正したかを記録) • サービスが増えても対応コストが増えないスケーラビリティ 34
  14. 開発セキュリティへのAI活⽤の拡張 • 今回の⾃動修正のジョブでは… ◦ 脆弱性の検出‧Claude Codeを活⽤して修正‧MR作成を⾃動化 ◦ 今後はこのAI活⽤をさらに広げ、開発環境全体のセキュリティ強化に取り組んでいく • Clearwing

    の活⽤ ◦ オープンソースの⾃律型セキュリティエージェント(脆弱性スキャナー兼ソースコードハン ター) ◦ 通常は外部に委託する「ペネトレーションテスト(侵⼊テスト)」をAIによって内製化が可能 ◦ リリース前にシステム全体を通したホワイトボックステストとして活⽤ ◦ AIを取り巻く環境の変化(Claude Mythos等の影響による新たな脅威)にも継続的に対応する 37
  15. 1. 導⼊した仕組みの総括 … 本仕組みがもたらす価値 • 脆弱性の検知‧AI修正‧MR通知 までを⼀気通貫で⾃動化する仕組みを紹介 • 放置リスクをなくし、セキュリティ対応の「ラグ(遅れ)」を⼤幅に短縮可能 2.

    仕組みを成⽴させる2つの前提 • ツール導⼊だけではなく、アーキテクチャやテストという前提もあってAIによる⾃動 化を活⽤できている 3. 開発セキュリティへのAI活⽤の拡張 • 今回の⾃動修正ジョブにとどまらず、AIを活⽤した⾃律型セキュリティエージェント (ex. Clearwing)の導⼊により、ペネトレーションテストの内製化など、開発環境全 体のセキュリティ強化へとAI活⽤の範囲を広げていく まとめ 39