Sandbox Runtime 0.0.81 không phải một bản tăng số phiên bản cho vui. Toàn bộ thay đổi của release ngày 20/10/2026 đều dành cho Windows, trong đó có write-restricted token, cơ chế cấp quyền đọc profile và bộ lọc WFP mới. Người đang dùng bản cũ phải chạy lại bước cài đặt; nếu không, session mới sẽ dừng với lỗi reinstall_required.
Điểm quan trọng hơn là cách kiểm. Một file có allowedDomains và allowWrite nhìn rất yên tâm, nhưng không tự chứng minh process thực sự bị chặn. Với bản 0.0.81, nên xem boundary thành nhiều lớp rồi thử cả đường được phép lẫn đường phải bị từ chối. Bài này dùng tài liệu và release chính thức, đồng thời nói rõ phần nào mới chỉ được kiểm ở mức package/CLI.
Mục lục [Hiển thị]
- 0.0.81 đổi đúng phần Windows nào?
- Boundary thực tế gồm năm lớp
- Phần nào đã kiểm được mà không thay đổi hệ thống?
- Lab tối thiểu phải có positive và negative control
- Bốn chỗ dễ tạo cảm giác an toàn quá mức
- Nâng cấp và rollback sao cho không để lại quyền cũ?
- Khi nào nên dùng, khi nào cần boundary mạnh hơn?
- Chốt lại
0.0.81 đổi đúng phần Windows nào?
release v0.0.81 của Anthropic ghi thẳng rằng macOS và Linux không đổi. Trên Windows, lệnh sandbox chạy bằng tài khoản cục bộ srt-sandbox, dưới write-restricted token. Thay đổi này nhằm ngăn một process tận dụng quyền ghi mà nhóm Users hoặc Authenticated Users vốn có ở những thư mục ngoài allowlist.
Bản mới cũng sửa một đường thoát qua AppContainer child, đổi cách giữ ACL trên project lớn, làm rõ Secondary Logon bị tắt và đưa proxy variables về chữ thường. Node fetch, http và https được hướng qua proxy bằng NODE_USE_ENV_PROXY=1. Đây là các thay đổi có tác động thật tới boundary, không chỉ là API đẹp hơn.
Package chính thức là @anthropic-ai/sandbox-runtime 0.0.81, yêu cầu Node từ 22.12.0 và dùng giấy phép Apache-2.0. Tuy nhiên README của dự án vẫn gọi toàn bộ runtime là Beta Research Preview, còn mục Windows ghi trạng thái alpha. Vì vậy chưa nên mô tả nó như lớp cô lập đã được chứng nhận hoặc một bản thay thế tương đương container.
Boundary thực tế gồm năm lớp
Có thể đọc luồng từ ngoài vào trong. Process gọi runtime; runtime chuyển lệnh sang tài khoản srt-sandbox; target chạy với token hạn chế ghi; ACL xác định cây nào được đọc hoặc sửa; cuối cùng WFP chặn kết nối trực tiếp và buộc traffic phù hợp đi qua proxy có allowlist. Mỗi lớp trả lời một câu hỏi khác nhau.
| Lớp | Việc chính | Câu hỏi cần kiểm |
|---|---|---|
| Tài khoản cục bộ | Tách SID khỏi người gọi | Target có thực sự chạy dưới srt-sandbox? |
| Restricted token | Loại quyền ghi thừa của nhóm chung | Thư mục ngoài allowWrite có bị từ chối? |
| ACL | Cấp/deny đường dẫn cụ thể | Secret giả có còn đọc được qua link, rename hay parent? |
| WFP fence | Chặn direct egress theo SID | Bỏ proxy variables có còn kết nối trực tiếp? |
| Proxy allowlist | Quyết định host/domain được đi | Domain cho phép đi được và domain khác bị chặn? |
Microsoft mô tả WFP là nền tảng API và dịch vụ hệ thống để ứng dụng lọc dữ liệu ở nhiều lớp của network stack; WFP tự nó không phải một firewall hoàn chỉnh. Trong Sandbox Runtime, bộ lọc được gắn với SID của tài khoản sandbox. Hiểu chỗ này sẽ tránh suy diễn rằng mọi traffic phát sinh gián tiếp trên máy cũng được fence.
Phần nào đã kiểm được mà không thay đổi hệ thống?
Trên Windows 11 Pro build 26300 với Node 24.19.0, lệnh npx @anthropic-ai/sandbox-runtime@0.0.81 --version trả đúng 0.0.81. Metadata npm khớp yêu cầu Node, license và package name; CLI help có hai lệnh windows-install và windows-uninstall.
Đó chỉ là kiểm tra package và bề mặt lệnh. Lượt kiểm tra này không chạy windows-install, không tạo local user và không cài WFP filter vì bước đó tự nâng quyền bằng UAC và thay đổi cấu hình toàn máy. Do đó bài không tuyên bố đã đo filesystem isolation, network deny hay loopback trên máy này. Muốn có kết luận như vậy phải dùng VM hoặc máy test được phép thay đổi, rồi lưu bằng chứng trước–sau.
Cách tách hai mức bằng chứng này giống nguyên tắc trong bài test xanh chưa đủ cho code AI: một tín hiệu tốt không đại diện cho toàn bộ rủi ro. Tương tự, security review trước commit giúp bắt lỗi code nhưng không thay cho lớp containment khi agent thật sự chạy lệnh.
Lab tối thiểu phải có positive và negative control
Trên môi trường disposable, tạo một fixture không chứa dữ liệu thật: file public để đọc, thư mục output được phép ghi, file fixture-secrets/.env chứa token giả và một thư mục nằm ngoài project. Với network, chọn một endpoint HTTPS vô hại trong allowlist và một domain không được phép. Mỗi case cần ghi command, exit code, stderr đã loại thông tin nhạy cảm và trạng thái file trước–sau.

Positive control quan trọng không kém negative control. Nếu mọi lệnh đều lỗi, ta chỉ biết môi trường hỏng chứ chưa biết policy đúng. Một ma trận tối thiểu cần chứng minh: đọc file công khai được, đọc secret giả bị chặn; ghi trong allowWrite được, ghi ra ngoài bị chặn; gọi domain cho phép được, domain khác bị chặn.
Loopback cần một cặp riêng. Trên Windows, network.allowLocalBinding: true chỉ hợp lệ khi máy đã được cài bằng windows-install --allow-loopback. Cấu hình session và mode toàn máy lệch nhau sẽ trả wfp_loopback_mismatch trước khi target chạy. Khi mở, toàn bộ service nghe trên loopback, trừ port 1, có thể được sandbox truy cập; request trực tiếp đó cũng không đi qua domain allowlist.
Bốn chỗ dễ tạo cảm giác an toàn quá mức
Profile grant. Cài đặt mặc định có thể cấp read + execute trên profile của người dùng, trừ danh sách credential store. Một số file cấu hình như .npmrc, pip, NuGet, Maven, Gradle và .gitconfig có thể đọc được theo thiết kế để package manager hoạt động. Trên máy dùng chung, tài liệu khuyên dùng --skip-profile-grant hoặc srt-win profile forget; sandbox vẫn chạy mà không có grant này.
Schannel. Write-restricted token không nhận TLS credential từ Windows. Vì vậy system curl.exe, PowerShell web request, .NET HttpClient, NuGet và các client dựa trên WinHTTP/WinINet/Schannel có thể thất bại bên trong sandbox. Lỗi HTTPS của chúng không phải bằng chứng domain đã bị network policy chặn. Node, Python, Java, Go hoặc Git for Windows dùng OpenSSL là nhóm được tài liệu nêu là có thể hoạt động.
SMB và WSL. Known limitations nói kết nối SMB có thể do kernel redirector thực hiện, còn WSL đi qua service riêng. Hai luồng này không nhất thiết mang SID srt-sandbox mà WFP filter đang match. Tài liệu chính thức vì thế cảnh báo không dựa vào allowedDomains/deniedDomains để bao phủ SMB share hoặc WSL.
Code chủ động né fence. README còn mô tả anonymous token hoặc bản sao token có user SID ở trạng thái deny-only có thể không match rule. Dự án định vị network filter cho command kết nối trực tiếp, không phải phòng thủ trước code được viết riêng để phá sandbox. Đây là ranh giới threat model cần ghi ở đầu đánh giá, không nên giấu dưới cuối checklist.

Nâng cấp và rollback sao cho không để lại quyền cũ?
Nếu đang ở bản trước 0.0.81, pin phiên bản rồi chạy lại windows-install bằng đúng release mới. Tài liệu cho biết setup version tăng từ 2 lên 3; network filters chỉ đổi khi bước cài lại chạy. Sau đó kiểm tra dependency/fence, trạng thái profile grant, mode loopback và chạy đủ ma trận control. Đừng bỏ qua cảnh báo chỉ vì CLI đã in đúng version.
npx @anthropic-ai/sandbox-runtime@0.0.81 windows-install --skip-profile-grant
# Chỉ chạy trong VM/máy test đã được phép thay đổi cấu hình toàn máy.
Nếu cần quay về bản cũ, README yêu cầu uninstall bằng release hiện tại trước, hoặc dọn kept ACL grants cho từng người dùng đã chạy session. Bản cũ không biết cách gỡ các grant mới; cài đè ngược phiên bản có thể để lại project root ghi được dưới token không còn phù hợp. Đây là đoạn rollback đáng viết vào runbook trước khi thử, không phải tới lúc lỗi mới tìm.
Nguyên tắc giới hạn quyền cũng nối với bài chặn workflow GitHub Actions đáng ngờ: cấu hình chỉ đáng tin khi có deny rõ, scope nhỏ và bằng chứng lặp lại được. Với agent local, nên thêm snapshot phiên bản, install mode và kết quả control vào chính checklist release.
Khi nào nên dùng, khi nào cần boundary mạnh hơn?
Sandbox Runtime 0.0.81 hợp với máy developer một người dùng, local MCP server hoặc coding agent cần giảm blast radius của lệnh thông thường. Nó nhẹ hơn container và cho phép mô tả filesystem/network policy gần workflow. Giá trị lớn nhất là biến quyền mặc định rộng thành một tập lỗ mở có chủ đích.
Ngược lại, shared host, workload nhiều tenant, máy có SMB/WSL quan trọng hoặc môi trường compliance cần isolation được chứng nhận không nên lấy file allowlist làm hard boundary duy nhất. Khi đối thủ có thể chạy code chủ động né token/fence, cần VM, container/hypervisor phù hợp hoặc lớp network độc lập, cộng thêm quản lý secret không dựa riêng vào ACL của runtime.
Chốt lại
0.0.81 sửa những điểm Windows đáng kể: token hạn chế ghi, WFP fence mới, profile grant có thể bỏ, loopback mode rõ ràng và nhiều lỗi thoát/khởi chạy được xử lý. Nhưng nhãn alpha và danh sách known limitations vẫn còn đó.
Cách dùng an toàn là pin phiên bản, cài lại trên môi trường được phép, kiểm từng lớp bằng positive/negative controls và ghi vùng không được fence. CLI chạy được mới là điểm bắt đầu. Tới khi read, write, network và loopback đều có bằng chứng thật thì mới nên nói boundary hoạt động như mong đợi.