セキュリティ

形式検証がfuzzingの隣に並ぶ日——発表の数字と、公開リポジトリの数字の差

イーランサー・ジャパン株式会社
この記事の要点

Anthropicの研究チームは2026年10月22日、広く使われる123のライブラリについて、64MB未満のどんな入力でもプログラムが異常終了しないことを機械的に証明したと発表しました。証明の総量は約1億8,000万行です。ただし公開されたのは26ライブラリ分で、全体の一覧では20,164件の命題のうち証明済みは336件、未着手が19,594件です。対象はRISC-Vの単一スレッド構成に限られます。

用語の説明
  • ライブラリ/よく使う機能をまとめた部品で、多くのプログラムから呼び出して使われます。
  • 命題/ここでは、証明の対象となる一つひとつの主張のことを指しています。
  • 単一スレッド/処理を一本の流れだけで進める動き方で、同時に並行して動く場合は含みません。

形式検証は長らく「人的コストがボトルネック」でした。証明を書ける人が足りないので、航空・鉄道・暗号といった安全重要コードに用途が限られてきた。今回の主張は、その部分がトークン課金に置き換わったというものです。ただし発表の見出しと公開物の実体には差があります。どちらも数字で示されているので、並べて読みます。

要点

何が起きたか

Anthropicの Frontier Red Team が2026年10月22日、「LLMs are making formal software verification feasible at a much larger scale」を公開しました。Theorem Labs との共同成果です。

手法はこうです。

  1. OSS-Fuzzの各fuzzターゲットとライブラリをRISC-Vにコンパイルする
  2. Theorem製のRISC-V命令セマンティクスとLinuxプロセス実行モデル(LPS)を噛ませる
  3. 「クラッシュしない」という性質を付けて仕様文を機械生成する(クラッシュの定義はAddressSanitizerが検出するメモリ安全性違反とアサーション失敗)
  4. そこにモデルが証明を書き、Rocqのカーネルが検査する
  5. バグが出ればモデル自身がパッチを当て、パッチ後のコードから仕様を再生成して証明し直す

人間が1件ごとに止まらない設計になっているのがこの取り組みの核です。

なぜ「読まなくていい証明」が意味を持つのか

約60万行の証明を人間が読むわけにはいきません。それでも成立するのは、信頼ベース(trusted base)が小さいからです。

レビュワーが信じる必要があるのは3つだけです。

  1. RISC-VとLinuxプロセスの形式モデル
  2. 証明された定理文そのもの
  3. Rocqの証明チェッカー(およびその土台のOCamlコンパイラとOS)

証明本体はチェッカーが仕様に対して機械的に検査します。コードレビューの経済性が変わるのはここです。

再利用も効きます。各証明の多くはCランタイム初期化やASanといった共有コードを覆うため、無関係なプログラムの証明が重複する。依存ライブラリをパッケージ単位で一度検証すれば、依存する広い範囲に効きます。

エージェント側の工夫も数字が出ています。ワークスペースを共有して互いの証明をコピーさせると、36タスクのベンチでトークン消費が17%減り、共有時のみ成功するタスクもあったとされています。

公開リポジトリを読むと、話はもっと慎重になる

ここが本記事の要点です。発表の見出しと、公開リポジトリの実体には差があります。

さらに定理の形も、見出しの「クラッシュしない」とは違います。実際に証明されているのはサニタイザ有無の2ビルドの挙動一致です。

READMEの定義はこうです。plainビルドがメモリ予算内に収まる入力において、両ビルドともエラーに到達せず、同じ観測挙動の集合を示す。予算はASanで2GiB、UBSanで16GiB。

この形でも「サニタイザが検出しうるエラーは、その入力範囲で起こらない」ことは言えます。ただしREADME自身が範囲を明示しています。

全体インデックスの数字が、現在地をいちばん正確に表しています。20,164文中、証明済み336・反例つきで偽と判明5・モデルによるブロック229・未着手19,594(427プロジェクト、2,148ハーネス)。

1.8億行は「証明可能になった」ことの実証であって、OSS全体の検証が終わった話ではありません。

本記事の初出時点(2026年10月23日)では「25ライブラリ・60エントリポイント、証明済み138文、未着手19,797文」でした。2026年10月29日に公開リポジトリを再確認したところ「26ライブラリ・61エントリポイント、証明済み336文、未着手19,594文」に増えており、さらに反例つきで偽と判明した文が5件記録されていました。パイプラインは継続して回っています。

なぜ日本でまだ語られていないのか

一次ソースが発表記事、付録PDF、そしてTheorem Labsの2つのリポジトリに閉じているためです。

発表の数字と公開物の数字の差は、GitHubのREADMEまで降りないと見えません。しかもRocq(旧Coq)とfuzzingの両方を前提に読む必要がある。二次媒体が手を出しにくい構造になっています。

エンジニアにとって何が変わるか

①設計

対象はRISC-V・musl・シングルスレッド静的バイナリで、x86やARMのglibc動的リンクという実運用構成はまだ外です。明日の本番には効きません。

効くのは依存ライブラリの選定基準です。zstdやopensslのように証明が積まれるライブラリと、そうでないライブラリの差が、ライセンスやメンテ状況と並ぶ比較軸になります。Theoremは他のOSSにも同じパイプラインを回すと申し出ています。

②調達

コストはトークンに移ります。1証明に数億トークンかかるとされており、まだ自前で回す話ではありません。ただし「検証済みバイナリ」をベンダー評価の項目に入れる準備はできます。

③キャリア

価値が、証明を手書きする仕事から、仕様とモデルを書く仕事へ移ります。

報酬ハッキング対策として、パッチにペナルティを課し、パッチが変える入力の範囲を証明させ、全パッチを記録して監査したと明記されています。エージェントが「クラッシュしないようにプログラムを書き換えて定理を通す」のを防ぐ設計です。

したがってレビュワーの仕事は証明の中身ではなく、仕様文とモデルの妥当性、そしてパッチの監査になります。RocqやVerusと、脅威モデルを仕様に落とす力の組み合わせが、学術寄りだった領域から実務側に出てきます。

確認できなかった点

出典

本記事は2026年10月23日時点の発表内容に基づき、公開リポジトリの数値は2026年10月29日に再確認しています。発表側の数値は一次ソースと二次ソースの双方で照合しました。本記事の筆者はイーランサー・ジャパンであり、取り上げた研究の当事者ではありません。

CONSULTATION

セキュリティ人材をお探しの方へ

脆弱性診断の実施、報告書を受けての改修、その後の運用設計まで、必要な工程に応じた人材をご提案します。短期の診断案件から、社内体制の立ち上げまで対応可能です。

ご登録いただいた情報が企業に公開されることはありません。氏名・連絡先を伏せたスキルシートを使用します。登録から案件のご紹介、契約手続きまで費用は一切かかりません。

相談する
案件をお探しの方 人材をお探しの方