Repository navigation
feat(browser): 受限 Safe Web 操作者入口与 readiness 收据 #41
Copy link
Copy link
Closed
Labels
blockedBlocked by external evidence or dependencyBlocked by external evidence or dependencybrowserBrowser runtime and CDP capabilitiesBrowser runtime and CDP capabilitiesenhancementNew feature or requestNew feature or requestgoPull requests that update go codePull requests that update go codehelp wantedExtra attention is neededExtra attention is neededjavascriptPull requests that update javascript codePull requests that update javascript codesecuritySecurity boundary or high-risk capabilitySecurity boundary or high-risk capability高难度
Description
问题概述 / Summary
现有浏览器基础能力不能在 Windows WFP 生产证据未通过时直接开放。待 #1 验收后,需要把受限 Safe Web 作为独立、可解释、默认关闭的操作者入口接入 Run、CLI、HTTP 与 Desktop。
当前基线 / Current baseline
- 浏览器 executable identity、Profile、Scope、计划与生命周期证据已存在。
- Safe Web 产品入口因 bug(browser): Windows WFP 受限浏览器生产探针尚未通过验收 #1 主动禁用,这是安全设计而不是 UI 缺陷。
- 不能用 Fake/Disabled 结果或普通浏览器 smoke 代替 WFP 生产网络隔离验收。
范围 / Scope
- 消费 bug(browser): Windows WFP 受限浏览器生产探针尚未通过验收 #1 产生的短期、签名/指纹绑定的 network containment evidence。
- 定义 readiness 判定、过期、版本、可执行文件身份和策略指纹匹配。
- 建立“选择目标 → 预览 Scope → 审批 → 启动 → 观察 → 关闭/清理”的操作者流程。
- 接入 Run Activity、Artifact、审计与失败诊断。
- Desktop 仅在全部证据通过时启用入口;否则展示精确阻塞原因。
非目标 / Non-goals
- 不实现 Full CDP。
- 不自动访问公网目标。
- 不复用用户日常浏览器 Profile、Cookie、扩展或已登录会话。
涉及目录 / Affected directories
internal/browserruntime/internal/application/internal/policy/internal/approval/internal/store/internal/events/internal/httpapi/cmd/cyberagent/cmd/cyberagent-desktop/web/src/docs/adr/
依赖 / Dependencies
- 必须在 bug(browser): Windows WFP 受限浏览器生产探针尚未通过验收 #1 的全部验收条件关闭后才能解除
blocked。 - 不得修改 bug(browser): Windows WFP 受限浏览器生产探针尚未通过验收 #1 的通过标准来适配实现。
验收条件 / Acceptance criteria
- evidence 缺失、过期、版本不匹配、浏览器 hash 改变或策略指纹改变时入口 fail closed。
- 错误端口、错误 loopback 地址、非 loopback、IPv6 和代理绕过测试通过。
- Profile 每 Run 隔离,结束/崩溃/取消后有可验证清理收据。
- 操作者能看到目标、网络边界、权限、有效期和风险后再批准。
- Activity 只把 Go 观察到的事实标记为已完成。
- CLI、HTTP/OpenAPI、Desktop 行为一致。
- Windows 实机 smoke 与自动测试证据附在 Issue。
临时策略 / Interim policy
在 #1 关闭前保持产品入口禁用,只允许描述性计划与 Disabled/Fake 合约测试。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
blockedBlocked by external evidence or dependencyBlocked by external evidence or dependencybrowserBrowser runtime and CDP capabilitiesBrowser runtime and CDP capabilitiesenhancementNew feature or requestNew feature or requestgoPull requests that update go codePull requests that update go codehelp wantedExtra attention is neededExtra attention is neededjavascriptPull requests that update javascript codePull requests that update javascript codesecuritySecurity boundary or high-risk capabilitySecurity boundary or high-risk capability高难度
Activity
Qiyuanqiii commentedon Aug 15, 2026
Windows 实机 smoke 证据(#7)
这是 issue #1 修复验证时产生的真实管理员生产探针证据(真实 Chrome、真实 WFP 动态会话、UAC 提权)。11 项验收全部为 true,
passed: true,退出码 0,探针结束后无残留 WFP 规则/浏览器进程/临时 Profile。{ "protocol_version": "browser_network_containment_evidence.v1", "id": "browser-network-probe-1786818963250266100", "executable_identity_fingerprint": "9f3582cec7cea08cd8f1d331078f8d71f3ce5c39714ad21232b0eae342cc1d53", "acceptance_fingerprint": "2ec37c2299af74442fda0ae92d9cbad8e98f5637e39a7d9eb5f89cd9100c66a6", "adapter": "windows_wfp_dynamic.v1", "policy_version": "browser_network_containment_policy.v2", "operating_system": "windows", "architecture": "amd64", "collector_identity": "local-operator", "dynamic_session_observed": true, "atomic_install_observed": true, "exact_target_observed": true, "wrong_port_denied": true, "wrong_loopback_address_denied": true, "non_loopback_address_denied": true, "ipv6_denied": true, "rule_cleanup_observed": true, "cdp_used": false, "synthetic": false, "production": true, "passed": true, "started_at": "2026-08-15T18:36:03.269728Z", "completed_at": "2026-08-15T18:36:06.1084144Z", "expires_at": "2026-08-15T18:51:06.1084144Z", "fingerprint": "e7504ebd7658c7163f4991ff6d66b9529ecb0b2d17d884d37852a2d5690bb906" }验收条件映射
dynamic_session_observed: trueatomic_install_observed: trueexact_target_observed: truewrong_port_denied: truewrong_loopback_address_denied: truenon_loopback_address_denied: trueipv6_denied: truerule_cleanup_observed: truesynthetic: false/production: truepassed: true依赖说明
此证据产生于 #1 的 token 修复(PR #69:
TOKEN_ALL_ACCESS)。本 #41 分支基于main,在 PR #69 合并前,其doctor browser-network-probe会在本机(Microsoft 账户)复现 #1 的baseline_process_create_with_token_access_denied。因此本 #41 的实机 smoke 依赖 PR #69 先合并——合并后探针即可通过,doctor browser-network-probe → browser-network-review → browser-readiness全链路将返回ready: true。自动测试证据
internal/{browserruntime,store,application,app,httpapi,runactivity}全量go test通过。vite build、check:api通过。