形式検証がfuzzingの隣に並ぶ日——発表の数字と、公開リポジトリの数字の差
Anthropicの
- ライブラリ/よく
使う 機能を まとめた 部品で、 多くの プログラムから 呼び出して 使われます。 - 命題/ここでは、
証明の 対象と なる 一つ ひとつの 主張の ことを 指しています。 - 単一スレッド/処理を
一本の 流れだけで 進める 動き方で、 同時に 並行して 動く 場合は 含みません。
形式検証は
要点
- 発表/OSS-Fuzz由来の123ライブラリ・239エントリポイントに
ついて、 「64MB未満の あらゆる 入力で クラッシュしない」 ことを 証明したとされる - 規模/証明の
総量は Rocqで約1億8,000万行。 典型的な 1証明が約60万行、 対象バイナリは RISC-V命令で中央値18,000命令 - 副産物/作業中に
数百件の バグを 発見・修正。libexpatの CVE-2026-56132を し、再発見 デコンプレッサの カウンタ・アンダーフローに よる 領域外 書き込みも 検出 - 公開物/ただし
公開されたのは 部分集合。 リポジトリ側は26ライブラリ・61エントリポイント - 全体
像 /全体インデックスは20,164文の うち 証明済み336、 反例つきで 偽と 判明5、 モデルに よる ブロック229、 未着手19,594 - 前提/RISC-V/musl libc/シングルスレッド静的バイナリ。
x86・ARM・glibc動的リンクと いう 実運用構成は まだ 射 程外
何が起きたか
Anthropicの
手法は
- OSS-Fuzzの
各fuzzターゲットと ライブラリをRISC-Vに コンパイル する - Theorem製の
RISC-V命令セマンティクスとLinuxプロセス実行モデル (LPS) を噛ませる - 「クラッシュしない」と
いう 性質を 付けて仕様文を 機械生成 する(クラッシュの 定義は AddressSanitizerが 検出する メモリ安全性違反と アサーション失敗) - そこに
モデルが 証明を 書き、Rocqの カーネルが する検査 - バグが
出れば モデル自身が パッチを 当て、 パッチ後の コードから 仕様を 再生成して 証明し直す
人間が
なぜ「読まなくていい証明」が意味を持つのか
約60万行の
レビュワーが
- RISC-Vと
Linuxプロセスの 形式モデル - 証明された
定理文そのもの - Rocqの
証明チェッカー (およびその 土台の OCamlコンパイラと OS)
証明本体は
再利用も
エージェント側の
公開リポジトリを読むと、話はもっと慎重になる
ここが
- 発表/123ライブラリ・239エントリポイント
- 公開リポジトリ/26ライブラリ・61エントリポイント(Rocq 9.2.0で
検査済み。 boost-beast、 cjson、 openssl、 simdjson、 zstdなど)
さらに
READMEの
この
- モデルの
限界 /「LPSはbest effortで 。完全ではない」 Linuxの 一部を 記述し、 検査しない 仮定を 含む。 証明は LPSの 正しさを 超えない - 正しさではない/ライブラリが
正しい 。ことは 言っていない サニタイザが 検出できない 誤り (誤った 結果、 メモリリーク)は 除外されない - 範囲/ライブラリ全体ではなく、1エントリポイントが
到達する にコード ついての 主張 - 停止性/
公開時点でどの 証明も 停止性を 主張しない
全体
1.8億行は
本記事の
なぜ日本でまだ語られていないのか
一次ソースが
発表の
エンジニアにとって何が変わるか
①設計
対象は
効くのは依存ライブラリの
②調達
コストは
③キャリア
価値が、証明を
報酬ハッキング対策と
したがってレビュワーの
確認できなかった点
- 公開範囲/全239エントリポイントの
証明が いつ・どこまで 公開されるか - 入力制限の
対応 /発表記載の「64MB未満の 入力」と、 リポジトリ記載の メモリ予算 (ASan 2GiB/UBSan 16GiB)の 厳密な 対応関係 - コスト/1証明あたりの
実コスト ( 「数億トークン」との 記述のみで 金額換算なし) - x86/x86セマンティクスは
zlibの ケーススタディで 生成されたと あるが、 その 成果物の 公開状況 - 第三者検証/外部に
よる 証明の 再検査結果。 検証手順は 公開されているが、 追試の 報告は 確認できていない
出典
- 一次/Anthropic
「LLMs are making formal software verification feasible at a much larger scale」 (2026年10月22日) および付録PDF - 一次/theorem-labs/oss-verify-proofs の
README/収録ライブラリ数、 定理の 形、 メモリ予算、 LPSの 限界、 全体インデックスの 件数 - 一次/theorem-labs/rocq-linux-process-semantics/RISC-Vと
Linuxプロセスの セマンティクス - 二次/AiCybr ほか
/発表側の 数値 (1.8億行、 60万行、 18,000命令、 123ライブラリ・239エントリポイント、 CVE-2026-56132、 ワークスペース共有17%減)の 独立確認
本記事は
セキュリティ人材をお探しの方へ
脆弱性診断の
ご登録いただいた
