AIが、まだ知られていないプログラムの弱点を見つけ、その弱点を使ってどこまでシステムを突破できるのか。OpenAIはGPT-6 Astraに攻撃する側の役割を与え、その能力をテストしました。 一方で、Astraは一般の利用者にも提供されています。攻撃にも使えるほど高い能力を持つAIを、どのように安全に公開しているのでしょうか。私の環境でもAstraが使えるようになり、テストで使われたAstraと、普段使っているAstraにどのような違いがあるのか気になりました。 この記事では、AIが未知の弱点を見つける仕組み、攻撃と防御の関係、一般提供されるAstraに設けられた制限や安全対策について解説します。
- AIは未知の脆弱性をどう発見するのか
- 学んだ知識を使い、目の前のプログラムを調べる
- GPT-6 Astraは、評価でどこまでできたのか
- サイバー攻撃にも使えるAIを、なぜ開発・公開するのか
- 同じ弱点が、攻撃者には侵入口、防御側には修正箇所になる
- AIで調査を進め、攻撃される前の修正につなげる
- 評価で使われたAstraと、私たちが使うAstraは何が違うのか
- 能力評価と一般提供では、実行できる作業の範囲が違う
- 高度なサイバー作業は、対象を絞って提供する
- Astraを安全に提供するため、どんな対策をしているのか
- 危険な依頼を断る学習と、実行中の監視を組み合わせる
- 安全対策を破ろうとするテストで、効果を確かめる

AIは未知の脆弱性をどう発見するのか
学んだ知識を使い、目の前のプログラムを調べる
情報漏えいや不正アクセスにつながる、プログラムやシステムの弱点を「脆弱性」と呼びます。では、AIはプログラムの脆弱性をどうやって調べるのでしょうか。
その方法を、Googleが2024年6月に公開した研究「Project Naptime」をもとに見ていきましょう。この研究では、AIにプログラムを読む道具や動作を調べる道具を持たせ、調査とテストを進められるようにしています。
AIは、学習で身に付けたプログラミングの知識を使って、調査対象のプログラムを読みます。そこで、どんなデータを入れると不具合が起きそうかを考え、テスト用の環境で実際に入力して確かめます。
不具合が起きれば、原因となる処理を調べます。正常に動けば、入力するデータを変えて再び試す。こうして、プログラムを読む作業と、動かして確かめる作業を繰り返していきます。
調査中に得られる情報も、発見につながります。プログラムが途中で止まった場合には、止まった場所やエラーの内容を手がかりに、原因を絞り込めます。学んだ知識を使いながら、目の前のプログラムで起きたことを調べるため、まだ知られていない問題にもたどり着けるのです。
GPT-6 Astraは、評価でどこまでできたのか
OpenAIは、Astraにどれほどのハッキング能力があるかを調べるため、安全なテスト環境でどこまでシステムを突破できるのかを検証しました。OpenAIの評価報告では、Astraは未知の弱点を発見し、その弱点を利用してコンピューターに命令を実行させるところまで進んだとしています。
対象には、セキュリティ対策を強化したブラウザやOSが含まれます。ブラウザ内の処理を隔離する仕組みを突破したり、複数の弱点を組み合わせて管理者権限を得たりしたという内容です。
管理者権限とは、システムの重要な設定などを変更できる強い権限のことで、評価では、弱点を見つけた先にある、実際の悪用まで確かめています。
サイバー攻撃にも使えるAIを、なぜ開発・公開するのか
同じ弱点が、攻撃者には侵入口、防御側には修正箇所になる
ここまで読むと、そんなAIを公開して、攻撃者を助けることにならないのかと気になります。公開する理由を考えるには、弱点を見つけた後に何をするかへ目を向ける必要があります。
攻撃者なら、見つけた弱点からシステムへ侵入しようとします。防御する側なら、原因を調べ、プログラムを直して侵入を防ぎます。どちらにとっても、弱点がどこにあり、どうすると問題が起きるかを知ることが出発点です。
防御側にとっても、実際に悪用できるかを確かめる作業には意味があります。被害につながる条件を把握できれば、修正の優先順位を決めたり、修正後に同じ攻撃を防げるか確認したりする材料になるからです。
AIで調査を進め、攻撃される前の修正につなげる
この調査をAIが支援できれば、防御側は弱点の発見から修正までを早く進められます。OpenAIが示す提供理由の一つも、防御担当者による発見と修正を支えることです。
実際に、Astraのリリース発表では、AIの主な用途として「コードの安全性の確認や修正」を挙げています。開発者がAIと一緒にプログラムを点検し、弱点を先回りして直す使い方です。
目指すのは、攻撃者に悪用される前に防御側が対処すること。そのために高度な機能を防御側の専門家へ届けつつ、攻撃に悪用されかねない機能をどこまで認めるか(制御するか)が、提供における大きな課題となっています。
評価で使われたAstraと、私たちが使うAstraは何が違うのか
能力評価と一般提供では、実行できる作業の範囲が違う
私のChatGPT Plusの環境でもAstraが使えるようになり、Codexで作業を任せています。そこで気になったのが、評価で高いサイバー能力を示したAstraと、私たちが使っているAstraでは、利用できる機能や作業の範囲にどのような違いがあるのかという点でした。
公式説明で確認できる違いは、実行を認める範囲です。一般提供ではコードの安全性確認や修正に対応する一方、脆弱性を悪用できることを示す実証プログラムの作成など、高度なサイバー作業への依頼は拒否すると説明されています。
では、一般向けには能力を落とした別のモデルを用意しているのでしょうか。内部のモデルが完全に同一かどうかは、公開資料では未確認です。明らかにされているのは、危険な依頼を断るための学習や、操作を監視する安全対策を施して提供する方針です。
高度なサイバー作業は、対象を絞って提供する
先ほど説明したように、防御側にも、弱点が悪用できるかを確かめたい場面があります。そこで設けられているのが、対象者を絞って高度な作業を認める提供方法です。
OpenAIには、承認された利用者が防御目的のサイバー作業を行うためのDaybreakという仕組みがあります。Astraの評価結果は、通常の利用環境ではなく、Daybreak Blueへのアクセスがある条件で調べた能力を反映しています。この条件では、ブラウザやOSから未知の脆弱性を見つけ、実際に侵入につながるかまで確認しました。
OpenAIは、Daybreakを通じて高度なサイバー作業を使える対象を段階的に広げる方針です。脆弱性が悪用できるかの検証や、悪意あるソフトウェアの分析など、防御に必要な作業から利用を広げていく計画としています。
Astraを安全に提供するため、どんな対策をしているのか
危険な依頼を断る学習と、実行中の監視を組み合わせる
利用できる作業を決めた後には、そのルールを実際に守らせる仕組みが必要です。OpenAIの安全性の説明では、モデルへの学習と、作業中の監視を組み合わせています。
学習では、危険な要求を断ることや、許可された範囲で行動することを身に付けさせます。言い方を変えて安全対策をすり抜けようとする試みにも、対応を強化したとしています。
監視は、AIが道具を使って作業を進める間に行います。推論や行動を確認し、許可されていない操作の可能性を検知したら止める仕組みです。依頼を受けた時点での判断に加え、実際に何をしようとしているかも確かめます。
これには、悪意ある依頼への対策とともに、AIが仕事を終わらせようとして許可の範囲を越えることを防ぐ役割があります。正当な作業が誤って止まる場合もあり、ChatGPTやCodexでは、続行前に利用者へ確認を求めることがあります。
安全対策を破ろうとするテストで、効果を確かめる
安全対策が本当に機能するかを確かめるため、OpenAIは社内外で、安全対策をすり抜けようとするテストを行っています。危険な要求にAstraが適切に対応できるかを調べ、問題が見つかれば対策を修正して再びテストします。
これとは別に、Astra自身に妨害する側の役割を与え、監視を避けながら行動するよう指示するテストも行っています。その行動を監視システムが検知できるかを調べたところ、一部の妨害行為でAstraが監視をすり抜ける場合がありました。
これは、Astraが普段から監視を避けようとしているという意味ではありません。監視を避けるよう意図的に指示した特殊な条件での結果です。OpenAIは、決められた範囲を守る能力は改善したと報告する一方、AIの考え方や行動を監視する技術には、まだ改善すべき点があるとして研究を続けています。
今回の発表で注目したいのは、AIが弱点を見つける能力だけではありません。その発見を、実際の修正や被害の防止につなげられるかも重要です。今後は「どれだけ多くの脆弱性を見つけたか」だけでなく、AIによってどれだけ早く安全な状態に直せたのかにも注目していきたいところです。
GPT-6 Astraと未知の脆弱性まとめ
- AIはプログラムを読み、テストして弱点を探す
- Astraは評価で未知の弱点の悪用まで進んだ
- 弱点の発見は、防御側の修正にも役立つ
- 一般提供では高度なサイバー作業に制限がある
- 学習と監視で、危険な依頼や操作に対処する
- 安全対策の検証と改善は継続している

