AISubHub/AI ニュース
研究

詳しい解説 · 読了目安 9 分

Claudeによる123ライブラリの証明研究、保証の範囲は具体化しても万能にはならない

AnthropicとTheoremは123ライブラリの239個のファジング入口について証明を報告した。機械モデルの前提と、結果が示せる範囲の限界が重要になる。

当サイトの公開日
原典の公開日
出典確認日

Anthropicは10月22日の研究記事で、Theoremと協力し、Claudeが生成したソフトウェアの証明を機械で検査する取り組みを紹介した。有用な成果は、定義されたモデルの下で選ばれた実行プログラムについて得られる保証であり、ライブラリ全体やあらゆる配備環境の安全性を認定する証明書ではない。

ニュースを聴く

この記事を読み上げるか、ニュースを続けて聴けます。

Claudeによる123ライブラリの証明研究、保証の範囲は具体化しても万能にはならない

読み上げを準備中…

端末の音声

読み上げはブラウザーまたは端末が処理します。AISubHub は文章を音声 API に送りません。利用できる音声やロック画面での再生は端末によって異なります。

再開時に短い部分を繰り返す場合があります。

要点

  • 研究者は、必要に応じて発見した不具合を修正した後、123個のOSS-Fuzzライブラリにある239個の入口について、明示した前提の下で64 MB未満の入力ではクラッシュしないことを証明したと報告している。
  • 主体となる実験の対象は、muslと静的リンクした単一スレッドのRISC-Vプログラムと、モデル化されたLinuxの動作である。一般的なx86やARMでの配備に自動的に適用されるわけではない。
  • モデルごとのトークン必要量と証明の共有は、別の小規模タスク実験で比較されている。報告された削減率はその実験に固有のもので、一般的な価格や性能の保証ではない。

証明の対象は、定義した機械上の一つの入口

何を単位として対象を数えるかが重要だ。OSS-Fuzzの入口は、開発者がプログラムに入力を渡し、失敗を検出するために用意する経路を指す。Anthropicは数週間で、123個のライブラリにある239個の入口の証明を完成させたと報告した。239個のライブラリ全体を検証したという意味でも、123個のライブラリのあらゆる経路を網羅したという意味でもない。生成されたRocqの証明コードは約1億8000万行で、典型的な証明は約60万行だった。一方、対象バイナリのRISC-V命令数の中央値は1万8000だった。

主張の範囲はモデル化した実行条件で決まる。入力は64 MB未満、メモリ予算は固定、スレッドは一つで、muslと静的リンクしたRISC-V実行ファイルを用い、Linuxの応答とメモリ配置も定められている。これらが数学的命題を定義する。AISubHubの読み方では、印象的な証明の総行数だけを見るよりも、対象範囲の分母とビルド構成を確かめる方が、この結果の評価に役立つ。

ファジングを小さなカーネルが検査する命題に変える

ファジングは大量の生成入力を試し、反例を発見できるが、試行に合格したからといって入力空間を尽くしたことにはならない。この研究では既存のファジングテストとコンパイル済み実行ファイルを形式仕様に変換する。Claudeは、許されたどの入力でも選ばれたテストがクラッシュしないことを示す論証を作る。テストに元からあるアサーションは、圧縮後に解凍すると元のデータに戻る、といった意味のある性質も表現できる。

モデルが自分の証明を正しいと宣言するわけではない。Rocqが命題に照らして証明を検査する。そのため、信頼の対象は正確な命題、RISC-VとLinuxの意味論、そして検査器とその基盤となるハードウェアやソフトウェアへと移る。生成された何百万行も読むよりレビュー対象は小さくなるが、依存関係がなくなるわけではない。証明自体が正しくても、不正確な機械モデルが本番システムを忠実に表しているとは示せない。

証明の失敗が有用な修正につながる理由

研究者によれば、証明を試みる過程で不具合が見つかった。例には、特殊な配置の約20 MBの入力が必要な解凍処理の問題や、64 MBの入力と2 GBを超えるメモリが必要な画像デコーダーの不具合がある。これらは、小さな入力を中心とする探索が重要な動作を見逃す理由を説明している。いずれも原文が報告する発見であり、AISubHubが独立に再現した脆弱性ではない。

処理の流れではプログラムを修正し、仕様を再生成してから、修正後の成果物を証明できた。この新しい成果物の証明を、変更前の元のリリースの証明として扱ってはならない。また、エージェントが有用な動作を削除し、クラッシュしないという命題を簡単に満たす近道を選ぶ危険もある。著者は、パッチへのペナルティー、動作が変わる入力を特定するインセンティブ、パッチ監査を説明している。これらは特定の失敗の仕方に対処する措置であり、修正が意図した動作を保つか確認する必要をなくすものではない。

トークン削減は二つの別の実験から得られた

別に設けた36個の小規模な検証タスクについて、記事はOpus 5.5が半数のタスクを証明するのに必要なトークンがOpus 5より約40%少ないと述べている。各タスクには単一エージェントによる独立した試行が3回与えられ、予算は1回につき500万トークンだった。グラフでは最初に証明に成功した試行の完了時点で、そのタスクを成功として数えた。これは特定のタスク集合と予算での比較である。より大きな123ライブラリの取り組みに使った全モデルは記事で明示されておらず、全体をOpus 5.5の成果と言い換えてはならない。

共有ワークスペースの実験では、エージェントが互いの証明を再利用でき、単独作業よりトークンが17%少なかったと報告された。36個の証明を示す図では、単独作業が完了した34件の比較のうち30件で共有側のトークン使用量が少なく、残る2件は単独エージェントが完了できなかった。ランタイム初期化やメモリエラー検出器の証明を再利用することは、削減が起きる具体的な仕組みを示す。どちらの比率も、普遍的なドル費用、経過時間の短縮率、あるいは独立に測定した配備上の効果を示すものではない。

他の事例が測る正しさの種類は異なる

記事は、RFCから導いた仕様に対し、x86の意味論を使ってzlibを検証した実験も説明している。これは別の事例であり、主体となるRISC-Vの結果がすでにあらゆるx86ソフトウェアに適用される証拠ではない。また、Pythonの大きな部分集合を扱うRust製インタープリターを、Verusを使ってモデル化されたCPythonの意味論に照らして検査し、その後、170万個を超えるランダム生成プログラムでCPythonと経験的に比較した。

報告された99.95%の動作一致率は、この経験的比較の結果である。あらゆるPythonプログラムとの互換性を証明したものではない。この違いは重要だ。形式証明は特定の形式的命題を示し、テストの割合は標本を用いた実験を説明する。これらをモデルの一般的な正答率にまとめると、仕様、ツール、残る境界的なケースの違いが見えなくなる。

工学的な価値は保証の境界を明確にすること

著者は残る不足を明示している。AddressSanitizerは一部のメモリエラーを検出できず、研究はすべての入口を対象にしていない。仮に全ファジング入口を検証しても、ライブラリの全動作やデッドコードまで網羅するとは限らない。呼び出し側が検証済みの前提を外れてライブラリを誤用する可能性もある。一般的な配備で使われる動的リンク、glibc、x86、ARMは主体実験と異なる。未修正の不具合を明かさないよう一部の証明は公開されず、より広いエコシステムに向けたロードマップも提案の段階にある。

AISubHubの分析:実践的な次の一歩は、それぞれの保証を正確なビルド、テスト入口、入力上限、信頼する機械モデルと結び付け、それらが変われば再評価することだ。これはテストやレビューを補完できるが、プロジェクト全体でそれらを廃止する根拠にはならない。当サイトは記事と必要な図を読んだが、証明の再実行、外部の付録や公開リポジトリの監査、パッチの安全性検証、トークン削減の再現は行っていない。結果と将来への見通しは、引き続き研究者の報告・判断として扱う。

注目する理由

AISubHubの分析:生成された証明は、範囲を限定しレビュー可能なソフトウェアの性質を確立し、再利用する費用を下げる可能性がある。実際に利用できる成果は、前提を伴う正確な検証済み成果物と命題であり、AIによってソフトウェアから不具合がなくなったという一般論ではない。

制約と提供状況

本稿は研究者が公開した説明を分析したものであり、独立したセキュリティ監査や再現実験ではない。主体実験の入力、アーキテクチャ、リンク方式、メモリ、入口の制限は不可欠であり、外部の付録やリポジトリ内容は監査していない。

出典と根拠

Anthropic Frontier Red Team / Theorem · Formal software verification

原典の公開日: · 出典確認日:

AI を活用した編集記事を、記載した一次情報で確認しています。企業の主張は出典を明示し、掲載は推奨を意味しません。