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

運用して初めてわかったDevinのセキュリティ課題 - Devin Meetup Tokyo ...

Avatar for Hi120ki Hi120ki
July 26, 2025
1.5k

運用して初めてわかったDevinのセキュリティ課題 - Devin Meetup Tokyo 2025

Avatar for Hi120ki

Hi120ki

July 26, 2025
Tweet

Transcript

  1. 2 ⾃⼰紹介 Hiroki Akamatsu @hi120ki 株式会社メルカリAI Security Team所属 • 外部AIツールのセキュリティレビュー

    • 安全な利⽤⽅法やガイドライン策定 • 社内のAIの取り組みのセキュリティ確保 • Platform(クラウド‧GitHub等)整備 • 社内LiteLLM基盤構築
  2. 14 2. DevinのPull Request Branch Rulesetでレビュー必須化 推奨: Require a pull

    request before merging • Required approvals = 1 • Require review from Code Owners • Require approval of the most recent reviewable push → このままの設定だとDevinが作ったPull Requestを⾃⼰承認可 → 他の⼈のチェックなくコードが本番環境で動作
  3. 15 2. DevinのPull Requestの⾃⼰承認 Devinが作ったPull Requestを⾃⼰承認 1. Devinに指⽰ 2. DevinがPull

    Requestを作成 3. Pull Requestを指⽰者が⾃⾝で承認‧マージ チェックなくコードがマージされ本番環境へ → Devinだけではなく他のAI Coding Agentサービスも同様
  4. 16 2. DevinのPull Requestの⾃⼰承認 AI Coding Agent以外でも起きるPull Requestの⾃⼰承認 GitHubのBranch Protectionの突破⽅法

    - Mercari Engineering 1. 別の⼈がPull Requestを作成 2. GitHub Action経由で1のブランチに変更を追加 3. Pull Requestを承認‧マージする チェックなくコードがマージされ本番環境へ
  5. 17 2. DevinのPull Requestの⾃⼰承認対策 2⼈の承認を必要とするワークフロー整備 (Devinが作るPull Requestのセルフマージを禁⽌する - newmo 技術ブログ)

    ⽋点 1. 設定によっては制限を回避可 ◦ ワークフロー⾃体を書き換え検査を無効化 ◦ 同じ名称のStatusを書き込み 2. 組織内の全レポジトリへの⼀括適⽤が不可 ◦ Requiring workflows with Repository Rulesetsでは pull_request_reviewイベントはサポート対象外 3. AI Coding Agentの追加で更新が必要
  6. 19 2. DevinのPull Requestの⾃⼰承認対策 policy-botの運⽤ • “⼈”のみがコミット‧Pull Requestを作成 → 別の1⼈からの承認が必要

    • “⼈”だけでなく“機械”がコミット‧Pull Requestを作成 → 2⼈(指⽰者+別の1⼈)からの承認が必要 この条件を逐次検査しStatusに反映 GitHub組織設定からStatusの通過を必須に設定 → Devinだけではなく他社AI Agent‧他経路からの⾃⼰承認を防⽌
  7. 20 DevinとGitHubのセキュリティのまとめ 組織のBranch Ruleset設定 + policy-bot • Require a pull

    request before merging ◦ Required approvals = 1 ◦ Require review from Code Owners ◦ Require approval of the most recent reviewable push • 回避が不可かつ組織設定から適⽤可能なセキュリティコントロール 安全にDevinの変更を受け⼊れられる環境を構築
  8. 23 3. Devinとツール連携のセキュリティ 1. テスト環境やプラットフォーム連携はGitHub Actionで ◦ GitHub Actionsでのシークレット管理はレポジトリシークレットを使 わない(どのワークフローからも取得可)

    ◦ Workload Identity FederationやAssumeRoleWithWebIdentityと クラウド上のシークレット管理 2. Devin Secretで最低限の認証情報を管理 ◦ 個⼈に紐づかないサービスアカウントからの認証情報 ◦ 読み取り権限のみ‧範囲を指定 ◦ 定期的に取り替え
  9. 25 Devin環境内の認証情報 1. GitHub AppのInstall Access Token ◦ Organizationに登録されたレポジトリの読み書き権限 ◦

    有効期限は1時間 2. Devin Secretに保存されている認証情報 3. Session内に保存された認証情報 → Devinはこれらの認証情報を⾃由に扱うことができる 3. Devinとツール連携のセキュリティ
  10. 27 (1) Prompt Injection攻撃によりDevinが攻撃者に誘導‧⾏動 Web検索等で読み込んだコンテキストから指⽰が上書き Codex agent internet access Preset

    domain listsなど軽減は可 根本対策はインターネットの遮断 → ⽣産性への影響 3. Devinとツール連携のセキュリティ
  11. 28 (2) Supply-chain攻撃で間接的に流出 Devinが偽のツールやライブラリを導⼊して流出 • 有名ライブラリに名前を似せた偽ライブラリやツール • 有名ライブラリ⾃体が乗っ取られて改ざん Vulnerability DB

    - Snyk Malicious Package DevinにはEDR等の⼀定の対策が存在しない → 認証情報が盗まれたことに気付けない → プロンプトで導⼊させない指⽰‧Sessionの監視による軽減 → 認証情報の定期的な取り換え 3. Devinとツール連携のセキュリティ
  12. 31 4. どうやってDevinを安全に制御する? 攻撃を受けなくてもDevin(= AI Agent)がやらかしてしまう 暴⾛して本番環境‧テスト環境を破壊 • Devinから本番環境へデプロイしない •

    Devinには最⼩のアクセス権限を付与 AIは実⾏可能なすべての⾏動‧利⽤可能なすべての権限を使う前提 → プロンプトで完全な制御はできない
  13. 33 Devinの安全な利⽤のために 現在AI Agentのエコシステムは発展途上 1. 技術的なガードレール整備が追いついていない ◦ 根本対策と軽減策が⼊り乱れる ◦ ⽣産性とのバランスを考える必要

    2. ユーザーもAIのセキュリティをキャッチアップ中 ◦ まずは基本的なセキュリティ対策から ◦ ⼀旦セキュリティチームに相談する⽂化
  14. 34 Devinの安全な利⽤のために 現在AI Agentのエコシステムは発展途上 1. 技術的なガードレール整備が追いついていない ◦ 根本対策と軽減策が⼊り乱れる ◦ ⽣産性とのバランスを考える必要

    2. ユーザーもAIのセキュリティをキャッチアップ中 ◦ まずは基本的なセキュリティ対策から ◦ ⼀旦セキュリティチームに相談する⽂化 技術の改善とリテラシー向上で事故なくAI活⽤を続ける
  15. 35 Devinにリクエストしていること 1. Devin SecretのCreate API追加 → 将来的なSecretの⾃動取り替え実装 2. ある⼈が作成したSessionを他の⼈からRead-onlyに

    → 別の⼈のSession操作による意図しない変更や情報流出の阻⽌ → 最終的には個⼈ごとに厳密な権限管理が実装されることを期待 3. コミット署名のサポート → GPGキーの共有やghcommit CLIではなく公式のサポートを よりDevinをSecure by Defaultに