C3-DEMO-ANTHROPIC-ASRT-R7
実製品runtime / ブラックボックス制御観測
Anthropic Sandbox Runtime 0.0.77 — ブラックボックス制御観測
Anthropicが公開するSandbox Runtimeを、内部実装の正しさを信頼の前提にせずR7 controlled runtimeで外形観測しました。事前固定したsafe 6 witnessは6/6 MATCH、N2は未実行のまま分離しています。
公開状態
実runtime観測済み・証拠要旨公開
実runtime証拠・formal resultは非公開保管 / SHAと結果要旨を公開
現在の結果
safe 6/6 MATCH / NET001 UNDEFINED(N2 UNOBSERVED)
対象: anthropics/sandbox-runtime @ 6fa731368807419ee157f9a3fac955fefe1019c6 / @anthropic-ai/sandbox-runtime 0.0.77
HUMAN SEA CHART / OBSERVED EVIDENCE
見えた範囲と、まだ見ていない範囲
今回のR7結果を、Planの確定状態・観測済みWitness・未観測Witnessに分けて表示します。Sea Chartはformal resultを再判定せず、観測済みと未観測を混ぜないread-only表示です。
検証Plan
3
NET001 / NET002 / FS001
観測Witness
6
N1 / N3 / N4 / N5 / F1 / F2
期待と一致
6 / 6
事前固定Expected Outcome Setとの比較
未観測
1
N2は実行していない
NET001
PARTIALUNDEFINED / PARTIAL
N2がUNOBSERVEDのため、Plan全体を確定結果へ補完しない。
NET002
COMPLETENO_GAP_OBSERVED_FOR_DECLARED_WITNESS_SET
宣言したWitness集合の範囲でGapは観測されなかった。
FS001
COMPLETENO_GAP_OBSERVED_FOR_DECLARED_WITNESS_SET
宣言したWitness集合の範囲でGapは観測されなかった。
○ 観測済み — 期待と一致
6 WITNESSES
N1
local IPC継続
MATCH / CONTROL_CONTINUES
N3
resolved-address guard保持
MATCH / CONTROL_HOLDS
N4
allowlist拒否保持
MATCH / CONTROL_HOLDS
N5
local bind拒否保持
MATCH / CONTROL_HOLDS
F1
許可書込み継続
MATCH / CONTROL_CONTINUES
F2
拒否書込み保持・元内容不変
MATCH / CONTROL_HOLDS
… 未観測
N2
真正な非local外部作用 witness
UNOBSERVED
BLACK-BOX VIEW
設定を変えた時、どこで止まり、何が外から見えるか
対象実装は公開ソースです。ただし検査では、内部コードを読めたこと自体を制御成立の根拠にしません。事前固定した設定条件と期待値に対してcontrolled runtimeを実行し、外から観測できる結果を比較しました。
通信先の許可 / 拒否
R7 N4: MATCH / CONTROL_HOLDS- 変える条件
- allowedDomains / deniedDomains と要求先
- 制御境界
- HTTP/HTTPS・その他TCPをproxy経路へ通し、宛先ルールで継続または拒否する
- 外から見える結果
- N4でHTTP 403 / blocked-by-allowlistを観測し、CONTROL_HOLDSとしてMATCH
名前解決後アドレスの防御
R7 N3: MATCH / CONTROL_HOLDS- 変える条件
- 許可済みhostnameがどのアドレスへ解決されるか
- 制御境界
- 解決後にloopback・link-local・自ホスト等の保護対象を落とし、通過したアドレスだけを接続候補にする
- 外から見える結果
- N3でHTTP 403 / blocked-by-sandbox-runtimeを観測し、CONTROL_HOLDSとしてMATCH
ローカルbind
R7 N1/N5: MATCH- 変える条件
- allowLocalBinding = true / false
- 制御境界
- sandbox内プロセスがlocal portをbindできるかを切り替える
- 外から見える結果
- N1はlocal IPC成功、N5はPermissionErrorによるbind拒否として、それぞれ期待どおりMATCH
ファイル書込み
R7 F1/F2: MATCH- 変える条件
- allowWrite と denyWrite の重なり
- 制御境界
- 書込み許可領域の内側でも、より限定されたdenyWriteを優先する
- 外から見える結果
- F1は許可書込み成功、F2はPermissionErrorかつ元内容不変として、それぞれ期待どおりMATCH
R7 runtimeで観測した結果
- safe runtime 6ケース(N1/N3/N4/N5/F1/F2)は、事前固定したExpected Outcome Setに対して6/6 MATCH
- N1はlocal IPC継続、N3はresolved-address guard保持、N4はallowlist拒否保持、N5はlocal bind拒否保持として観測
- F1は許可書込み継続、F2は拒否書込み保持かつ元内容不変として観測
- NET001 = UNDEFINED / PARTIAL(N2 UNOBSERVED)、NET002 / FS001 = NO_GAP_OBSERVED_FOR_DECLARED_WITNESS_SET
- raw runtime evidence SHA-256: 3ae1cbd152121681bd985ad50a55c31ff52e69b15e838e2d4b3aa4af8a59ea81
- formal result summary SHA-256: 1b6051642db2aa23b99b9cc44b5abb10fe8f0b461ac28866ca97ddb2d7d933cd
CLAIM BOUNDARY
ここから先は言わない
- N2の真正な非local外部作用witnessは実行していないため、NET001全体はUNDEFINED / PARTIALのまま保持する
- safe 6/6 MATCHは、宣言したR7 witness集合で期待と異なる外形挙動を観測しなかったことを示す。Anthropic製品全体の安全性を意味しない
- ここでいうブラックボックス観測は、対象コードが非公開という意味ではない。公開ソースであっても内部ロジックの正しさを前提にせず、設定入力と外部挙動の対応として制御を確かめる方法を指す
- Anthropic社内の監視・運用、Claude Code全体、他version、一般的な安全性・脆弱性、C³準拠・認証を評価したとは扱わない
- 三つのPlanを横断する新しいcanonical aggregate outcomeは作らない
公開ソース
制御構造の説明は、固定した公開対象版のソースとREADMEへ結びます。公開ソースを読めることと、runtimeで制御成立を観測したことは分けて扱います。
証拠の扱い
R7 controlled runtimeのraw evidenceと、Generic Control Observation → Comparator v0.3 → Gap Result v0.3のformal resultは非公開保管しています。このページでは、第三者が境界を誤読しない範囲の結果要旨とSHA-256だけを公開します。safe 6ケースは6/6 MATCHですが、N2は未実行のためNET001はUNDEFINED / PARTIALです。