Agent: Windows process containment and environment allowlist (follow-up to #320)

Đang mở
#346 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
12/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
docker, electron, nodejs, powershell, typescript
Lĩnh vực
desktop-dev, devops, security

Hướng nghiên cứu

The work spans runtime/process-tree.ts (killTreeAndEscapees), runtime/command-environment.ts (the win32 denylist to replace with an allowlist) and a Job Object wrapper that needs a native addon or ffi. Start by reading how killTreeAndEscapees and the environment filter are wired, then decide the native-addon approach with maintainers. Done means a grandchild reparented outside the tree is killed on Stop in Windows CI, and git, node, npm and python still run under the allowlist.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Not finishable safely without Windows hardware or a native addon, so split out from the 0.3.7 follow-ups.

  1. Job Object (H2, Windows). Node cannot create a Job Object with KILL_ON_JOB_CLOSE without a native addon (e.g. a small N-API module or ffi). 0.3.7 ships a PowerShell ParentProcessId sweep plus taskkill /T /F (runtime/process-tree.ts, killTreeAndEscapees), which cannot reach processes started through WMI/schtasks or whose parent already exited. Spawn the shell inside a Job Object and close the handle on Stop/timeout. Test on Windows CI with a grandchild that is reparented.
  2. Windows environment allowlist (H3 / N7). runtime/command-environment.ts still passes the whole environment minus a denylist on win32. Kept today: STRIPE_SECRET_KEY, DJANGO_SECRET_KEY, LITELLM_MASTER_KEY, _KEY, GITHUB_PAT, PGPASSWORD, MYSQL_PWD, DATABASE_URL, REDIS_URL, SENTRY_DSN, SLACK_WEBHOOK_URL, DOCKER_AUTH_CONFIG, NODE_OPTIONS, ELECTRON_RUN_AS_NODE. Use an allowlist: SystemRoot, windir, ComSpec, PATHEXT, PATH, TEMP, TMP, USERPROFILE, APPDATA, LOCALAPPDATA, ProgramData, ProgramFiles, SystemDrive, HOMEDRIVE, HOMEPATH, USERNAME, USERDOMAIN, COMPUTERNAME, OS, PROCESSOR_*, NUMBER_OF_PROCESSORS, PSModulePath. Check that git, node, npm, python still run on windows-latest CI.
  3. Already-daemonised processes (POSIX). The ppid walk cannot find a process that was reparented to init before Stop (double fork that outlived its parent). Options: tag the run's environment with a unique MUSTER_RUN_ID and sweep ps eww for it on Stop (Linux: /proc/*/environ), or a cgroup/subreaper where available.
  4. A background job that outlives a successful command is never cleaned up (matches the Codex route); decide whether to sweep after each command.

Source: scratchpad/sec320-REVERIFY.md (H2, H3, N2, N7).

Ngôn ngữ chính
TypeScript
Star
3
Fork
0
Merge trung bình
17 giờ 33 phút
Pull request đã merge (30 ngày)
163

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của musterhq/muster-code

Tất cả issue của musterhq/muster-code

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.