月曜の朝、小さな開発チームのチャンネルに三つの知らせが同時に届く。コードを変えるたびに自動でビルドとテストを行う継続的インテグレーションに新しい警告が出た。イメージのスキャン報告には高リスクの脆弱性が 30 件並んでいる。そして AI のセキュリティツールが、そのまま適用できる修正を 12 件まとめ、それぞれにテスト結果を付けてきた。ボタン一つで、すべて出せてしまう。

この速さは本物だ。2026 年 5 月、OpenAI は Daybreak という取り組みを始めた。自社のモデルとコードのセキュリティツールを組み合わせ、コードリポジトリの中で脆弱性を自動で見つけ、修正を作り、限られた権限の中でテストを回す。修正が機械の速さで作られるようになると、ボトルネックは「直せるか」から「どの修正を人の承認なしに出してよいか」に移る。決め手は、AI の書き方の上手さではない。問題が起きたとき戻せるかどうかだ。

テストを通っても、本番に出せるとは限らない

AI の修正にテスト結果が付いていると、もう検証が済んだように見える。だがテストが示すのは「テストが対象にしている部分は壊れていない」ということであって、「変更が触れるべきでない場所に触れていない」ことではない。パッケージのバージョンを上げる修正が、ついでにログインの挙動を変えているかもしれない。権限の設定を直す修正のせいで、一部の利用者が急にデータを見られなくなるかもしれない。既存のテストがそれを捉えるとは限らない。

Security Boulevard は Daybreak を報じる中で、システムが監査に使える証拠を社内の追跡システムに返して検証できるようにする、と伝えている。だが誰が検証するのか、適用の前に人の承認が必要なのかは書かれていない。つまり証拠を用意するのはツールにできても、「誰が出すことを決めるのか」は、使うチームが自分で決めるしかない。

「戻せるか」で自動化の度合いを決める

米国国立標準技術研究所(NIST)は、企業向けのパッチ管理の指針で、パッチの適用を技術の予防保守と位置づけ、パッチを日常的に回せる戦略を組織が作るよう勧めている。侵害、データ漏えい、業務の中断のリスクを下げるためだ。パッチを日常的に回すには、まず速くしてよいものとそうでないものを分ける必要がある。

分けるための問いは一つだ。この修正で問題が起きたら、数分で一つ前の版に戻せて、戻した後に害が残らないか。

  • 戻せて、範囲もはっきりしている: たとえば、機微な機能に触れないパッケージを一つ上げるだけで、自動テストが網羅し、デプロイ後にワンクリックで戻せる。AI に用意させ、簡単に確認したら速く出してよい。
  • 戻せるが、影響範囲がはっきりしない: 変更が複数のサービスにまたがる、あるいはテストが一部しか網羅していない。エンジニアがまず影響範囲を確かめてから決める。
  • きれいに戻せない、あるいは戻す前に害が出うる: ログイン、決済、認証情報、顧客データ、暗号化、データベースの構造変更、デプロイ用スクリプトに触れる修正。AI がテスト済みでも、必ず責任者が審査してから出す。データベースの構造を変えてしまえば、あるいはデータが漏れてしまえば、コードの版を戻しても取り返せない。
広告

出す前に答えるべき四つの問い

出そうとする修正はどれも、四つの問いに答えられなければならない。答えられないなら、下書きにとどめる。

  1. 影響範囲: どのサービス、どのデータの流れ、どの利用者に影響するか。
  2. 変更の中身: 変えるのはバージョンか、設定か、権限か、手順か。上に挙げた機微な領域に触れるか。
  3. テストの証拠: 自動テストや手動確認の記録があり、今回の変更に対応しているか。
  4. 戻し方: 問題が起きたらどう戻すのか。誰がいつ始めるのか。実際に練習したことはあるか。

アプリケーションセキュリティに取り組むオープンなコミュニティである OWASP の AI エージェントのセキュリティ指針も、外部に影響する高リスクの動作には、単純な承認の確認画面以上の管理が必要で、承認は具体的な動作とパラメーターに結びつけるべきだとしている。修正に当てはめれば、承認する人は「すべて適用」を押すのではなく、今回具体的に何が変わるのかを見なければならない。

脆弱性がいままさに攻撃されているとき

この分け方をすると、機微な領域の修正は遅くなる。脆弱性がいままさに攻撃されているなら、遅くなること自体がリスクだ。そういうときは、コードを変えずに露出を減らす方法を先に取る。影響を受ける機能を一時的に止める、ファイアウォールのルールを足す、などだ。そのうえで正式な修正を人が審査する。急ぐからといって審査を飛ばしてはいけない。

また、四つの問いに答えるには、チームにテストとデプロイの記録があることが前提になる。自動テストがなく、変更を特定のコミットまでたどれないチームなら、まず整えるべきはその土台で、AI にもっと修正させることではない。

次の一歩として、AI が今週提案した修正の一覧を取り出し、一件ずつ印を付けてほしい。戻せて範囲がはっきりしている、戻せるが範囲がはっきりしない、きれいに戻せない。速くすることを考えてよいのは一つ目だけだ。どの脆弱性から直すかについては、脆弱性の優先順位は点数だけで決めず、まず実行経路と外部からの入力を調べるを参考にしてほしい。コンテナイメージのスキャン結果なら、AI のコンテナスキャナー自身もここに線を引いている。機械的な修正は自動でよく、ベースイメージの変更は人が決めるも参考になる。

AI 整理カード

修正の一群を、速く出せるものと人が審査すべきものに AI と分ける このプロンプトは、システムと修正の一覧を確かめたうえで、問題が起きたとき戻せるかどうかで修正を分類し、出す前にまだ足りない証拠を挙げる。

AI のセキュリティツールから脆弱性の修正をまとめて受け取った。どれを速く出してよく、どれを人が審査すべきか判断したい。
判断方法はこの記事による:https://boosterminiclass.com/ja/posts/ai-security-patching-needs-human-triage/
記事の見方はこうだ。修正を人の承認なしに出してよいかは、問題が起きたとき戻せるかで決まる。戻せて範囲がはっきりし、テスト済みの小さな更新は速くしてよい。ログイン、決済、認証情報、顧客データ、暗号化、データベースの構造、デプロイ用スクリプトに触れる修正は、必ず人が承認する。どの修正も、出す前に影響範囲、変更の中身、テストの証拠、戻し方に答えられなければならない。

まず私に 3 つ質問してほしい:
1. それぞれの修正は何を変えるのか(パッケージのバージョン、設定、権限、プログラムのロジック);
2. 自動テストと、ワンクリックで戻せるデプロイの仕組みはあるか;
3. いま攻撃されている、あるいは特に急ぐ脆弱性はあるか。

私の回答をもとに、次を出力してほしい:
- 修正ごとに一行:変更の中身/機微な領域に触れるか/テストの証拠/戻し方/分類(速く出せる、エンジニアの確認が必要、責任者の審査が必要);
- それぞれ、出す前にまだ足りない証拠;
- 急ぐが人の審査が必要な項目について、コードを変えずに先に露出を減らす方法;
- チームがいちばん補うべき土台を一つ(テストや戻しの仕組みなど)。
修正を適用したり設定を変えたりしないこと。出すかどうかは責任者が決める。

分類は出発点にすぎない。どの修正を本番に出すかは、システムのセキュリティに責任を持つ人が決める。

広告

Share

このミニクラスを共有

このミニクラスが仕事の詰まりをほどく助けになったら、AI の使い方を考えている人にも共有してください。

参考資料