From e07183ee6d3e57da325213e898cdcd6687320f53 Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Thu, 13 Aug 2026 23:20:20 +0900 Subject: test(security): close on-demand elevation acceptance gaps Add an actual-process acceptance harness for the administrative Named Pipe boundary. Exercise production pipe creation and peer PID inspection, remote-form client rejection, Task and protocol identity mismatch, duplicate network application, oversized frames, and an intentional helper-crash recovery point without adding test-only operations to the privileged protocol. Add a reusable PowerShell attack-matrix runner that preserves the helper parent-image check and drives the self-contained published helper through real UAC. Refactor the client pipe setup into internal diagnostic hooks while leaving the production DACL, PIPE_REJECT_REMOTE_CLIENTS, PID comparison, and helper lifetime behavior unchanged. Record the completed UAC rejection, HTTP MCP server-continuity, helper crash, startup Recovery rejection/success, loopback restoration, WFP residue, and regression evidence. Promote the three on-demand elevation traceability rows from PARTIAL to PASS and capture the 80-test Windows Security/Recovery result and final Bundle checksum. Verified: Release build warning/error 0; Core 105 PASS; Planner 10 PASS; administrative boundary 4 PASS; Windows Security/Recovery 80 PASS with skip 0; actual IPC attack matrix PASS; actual Task-time and Recovery-time UAC rejection PASS; Journal/backup/main/helper residue 0; fresh self-contained Bundle show PASS. --- plans/RequirementTraceability.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'plans/RequirementTraceability.md') diff --git a/plans/RequirementTraceability.md b/plans/RequirementTraceability.md index 241866a..f0f47f2 100644 --- a/plans/RequirementTraceability.md +++ b/plans/RequirementTraceability.md @@ -4,9 +4,9 @@ | Requirement | 実装 | 検証 | 状態 | | --- | --- | --- | --- | -| 非昇格Server / Task時昇格 | main/admin manifest、`WindowsPlatformCheck`、遅延`process_run`初期化 | embedded manifest、通常token stdio/HTTP、実UAC、file-only無昇格、terminal error unit | PARTIAL — 実UAC拒否操作は未再検証 | -| WFP / loopback Process境界 | `Agent.Admin.Host`、固定Named Pipe protocol | static call graph、strict schema、PID検証、none実HTTP、Windows suite | PARTIAL — hostile peer/remote pipeの実Process matrixは未再検証 | -| Recovery | 既存`TaskResourceJournal`と通常/昇格Recovery振分け | Windows crash matrix、legacy `wfp.dynamic`、loopback helper unit | PARTIAL — 実helper crashと実UAC startup Recoveryは未再検証 | +| 非昇格Server / Task時昇格 | main/admin manifest、`WindowsPlatformCheck`、遅延`process_run`初期化 | embedded manifest、通常token stdio/HTTP、実UAC、file-only無昇格、terminal error unit、2026-08-13実UAC拒否HTTP MCP | PASS | +| WFP / loopback Process境界 | `Agent.Admin.Host`、固定Named Pipe protocol | static call graph、strict schema、PID検証、none実HTTP、Windows suite、actual-Process IPC attack matrix | PASS | +| Recovery | 既存`TaskResourceJournal`と通常/昇格Recovery振分け | Windows crash matrix、legacy `wfp.dynamic`、実helper強制終了、startup Recovery拒否/成功、WFP/loopback残留0 | PASS | Sandbox Configuration schema version 2後の現行実装を対象とする。2026-08-13以前の結果は`plans/progress/`と本書末尾に履歴として保持するが、schema version 2の現行PASS判定には使用しない。 @@ -72,6 +72,11 @@ Internal Tool testは件数を仕様としてassertしない。`Design.md`のToo | published HTTP MCP on-demand elevation | 2026-08-13 / main standard-user、helper Task時UAC / `deepseek-v4-flash:cloud` | completed 3/3。cmd→cmd/curl/Python 3.14、Network none、昇格request/success、WFP/ACL cleanup、helper残留0 | | published stdio Operational E2E | 2026-08-13 / main standard-user、helper Task時UAC / `deepseek-v4-flash:cloud` | completed 4/4。複雑Python実装、9 unittest、Python subprocess、cleanup PASS | | on-demand elevation manifests / Bundle | 2026-08-13 / fresh extraction | main `asInvoker`、helper `requireAdministrator/uiAccess=false`、固定`admin/`配置、local資産保持を確認。ZIP SHA-256 `59c6d110c919cb616812272cb3189b03e5a0cb1b42178942cc23748a57d3d0e8` | +| actual UAC rejection / Server continuity | 2026-08-13 / main standard-user、UAC拒否 | HTTP MCP `agent_run` Task `0530fea1-90dd-40f1-bf7d-4deac7546ae8`が`failed/sandbox.elevation_cancelled`。同一Server PIDで直後の`tools/list`成功 | +| administrative IPC actual-Process matrix | 2026-08-13 / standard-user+Task単位helper UAC | local peer PID取得、remote-form pipe拒否、別Task ID、別protocol version、二重apply、64 KiB超messageを全件拒否 | +| helper crash / startup Recovery | 2026-08-13 / standard-user+Recovery helper UAC | network適用後にhelperを強制終了。Recovery UAC拒否はexit 2・bind前fatal・Journal保持、次回承認で`recovery.end=clean`、Journal/loopback/WFP filter/sublayer/helper残留0 | +| post-adversarial Windows Security/Recovery suite | 2026-08-13 / Windows Security childのみadministrator | 80 PASS、fail/skip 0。共有Application Profile/WFP状態を直列実行 | +| post-adversarial self-contained Bundle | 2026-08-13 / fresh extraction | `show` PASS、deploymentのlocal設定とApplied Configuration保持、ZIP SHA-256 `e473bb52cb384857012971ed545db9f7c9cc92284105930b7181e5823567944e` | | schema v2 Release build | 2026-08-13 / non-elevated | warning 0、error 0 | | schema v2 Agent.Core.Tests / Planner.Tests | 2026-08-13 / non-elevated | Core 104 PASS、Planner 10 PASS、fail/skip 0 | | schema v2 Windows Security/Recovery + README operational | 2026-08-13 / administrator | 環境非依存56件と実環境19件の計75 PASS、fail/skip 0。LPAC/ACL/Job/WFP、PowerShell/cmd/venv Python、Network、ACL monkeyを含む | -- cgit v1.2.3