Tạo môi trường thử nghiệm thủ công mà không cần phần mềm bổ sung trong môi trường thực tế.

  • Sandboxing thiết lập các giới hạn rõ ràng đối với tệp, quy trình, mạng và thông tin đăng nhập để ngăn chặn lỗi và các cuộc tấn công.
  • macOS, Linux và Windows đều cung cấp các chức năng cơ bản tích hợp sẵn để tạo môi trường biệt lập mà không cần cài đặt thêm công cụ.
  • Windows Sandbox cho phép bạn chạy phần mềm và tập tin đáng ngờ trên một máy tính để bàn dùng một lần, an toàn.
  • Việc kết hợp môi trường thử nghiệm (sandbox), chính sách mạng, quản lý bí mật và cài đặt dựa trên dự án sẽ tăng cường tính bảo mật của các tác nhân mã.

Hướng dẫn sử dụng hộp cát

Khi làm việc với phần mềm, các tác nhân AI hoặc các tệp tải xuống từ internet, một trong những nỗi sợ hãi phổ biến nhất là làm hỏng thứ gì đó trên hệ thống của bạn, bị nhiễm phần mềm độc hại hoặc rò rỉ dữ liệu nhạy cảm mà hầu như không hề hay biết. Bạn không cần phải quá lo lắng: một lần thực thi thất bại duy nhất có thể xóa cơ sở dữ liệu, làm hỏng quá trình triển khai hoặc gây ra lỗi trong hệ thống của bạn.

Tin tốt là hiện nay bạn có nhiều cách để tạo ra một môi trường biệt lập, nơi bạn có thể thử nghiệm mọi thứ mà không lo bị hư hại , và nhiều cách trong số đó đã được tích hợp vào chính hệ điều hành hoặc vào các nền tảng được thiết kế cho các tác nhân mã. Chúng ta gọi đây là "hộp cát": chạy mã bên trong một loại "bong bóng" được kiểm soát, để ngay cả khi có điều gì đó sai sót hoặc độc hại, thiệt hại cũng được giới hạn.

Việc thiết lập môi trường biệt lập thủ công mà không cần phần mềm bổ sung là như thế nào?

Trong lĩnh vực bảo mật và phát triển phần mềm, việc nói về môi trường sandbox có nghĩa là xác định chính xác những gì một chương trình hoặc tác nhân có thể truy cập khi đang chạy . Nó không chỉ đơn thuần là "chạy nó ở một nơi khác", mà là xác định các ranh giới rõ ràng: nó có thể xem những tệp nào, nó có thể khởi chạy những tiến trình nào, liệu nó có quyền truy cập mạng hay không, nó có thể sử dụng thông tin xác thực nào, môi trường đó tồn tại trong bao lâu và trạng thái của nó sẽ như thế nào khi kết thúc.

Cụm từ "thủ công" và "không cần phần mềm bổ sung" dễ gây hiểu nhầm. Trong nhiều trường hợp, bạn có thể dựa vào các tính năng đã có sẵn trong hệ điều hành hoặc nền tảng phát triển của riêng bạn , chẳng hạn như Windows Sandbox, các công cụ cơ bản của Linux (Landlock, seccomp) hoặc các cơ chế của macOS. Bạn không cần cài đặt một bộ phần mềm ảo hóa hoàn chỉnh, nhưng bạn cần học cách kích hoạt và quản lý các cơ chế tích hợp sẵn này để chúng hoạt động như một rào cản giữa mã bạn muốn kiểm thử và máy tính thực tế của bạn.

Tại sao các tác nhân mã cần môi trường biệt lập?

Các công cụ lập trình hiện đại không còn chỉ là những trợ lý ảo đơn giản gợi ý các đoạn mã nữa: chúng là môi trường thực thi được kết hợp với mô hình ngôn ngữ . Chúng có thể đọc kho lưu trữ của bạn, chỉnh sửa tệp, thực thi các lệnh trên thiết bị đầu cuối, cài đặt gói, xây dựng container , giao tiếp với API bên ngoài và thậm chí mở các phiên trình duyệt.

Các nền tảng như Claude Code, một số "Deep Agents" của LangChain, và các sandbox cụ thể được phân phối bởi Docker và các công cụ khác mô tả rõ ràng cách các tác nhân này hoạt động trên các hệ thống tệp thực, khởi chạy các luồng và phân công nhiệm vụ cho các tác nhân con chuyên biệt . Nói cách khác, chúng khá giống với một lập trình viên tập sự có quyền truy cập vào các công cụ của bạn… chỉ khác là chúng được tự động hóa và hoạt động rất nhanh.

Trong bối cảnh này, câu hỏi bảo mật chính chuyển từ "Liệu nó có phản hồi chính xác với lời nhắc không?" sang "Phạm vi hoạt động của nó là gì khi nó mắc lỗi, bị lệch hoặc bị can thiệp?" . Ví dụ, nếu một mô hình có thể chạy pytest, cài đặt các gói npm, quản lý nhánh hoặc kiểm tra lỗi biên dịch, thì nó chỉ cần vài bước nữa là có thể can thiệp vào các tập lệnh triển khai, sửa đổi các hook Git hoặc đánh cắp thông tin bí mật sang một dịch vụ từ xa.

Câu trả lời đơn giản thường là yêu cầu sự chấp thuận của con người cho mỗi lệnh. Điều đó có ích, nhưng lại gặp phải một vấn đề thường trực: sự mệt mỏi do phải phê duyệt quá nhiều. Trong môi trường mà các kỹ sư khởi chạy nhiều tác nhân hoặc quy trình công việc song song, khối lượng yêu cầu khổng lồ dẫn đến việc hầu hết mọi thứ đều được phê duyệt mà không cần đọc kỹ. Khi hơn 90% yêu cầu cấp phép được phê duyệt tự động, cơ chế đó không còn là biện pháp kiểm soát an ninh thực sự mà chỉ trở thành hình thức.

Làm thế nào để tách biệt môi trường làm việc và giải trí?
Bài viết liên quan:
Làm thế nào để tách biệt môi trường làm việc và giải trí?

Đó là lý do tại sao môi trường thử nghiệm (sandbox) lại quan trọng đến vậy: chúng không làm cho mô hình trở nên hoàn hảo hay khắc phục được lỗi chèn lệnh , nhưng chúng làm giảm "phạm vi lan truyền" của lỗi. Nếu AI gặp sự cố hoặc ai đó chiếm quyền điều khiển các lệnh của nó, thiệt hại sẽ được giới hạn trong môi trường biệt lập thay vì lan trực tiếp đến hệ thống sản xuất hoặc máy tính xách tay của bạn.

Những hạn chế chính của môi trường thử nghiệm mã nguồn (code agent sandbox)

Một môi trường thử nghiệm nghiêm túc để lập trình các tác nhân dựa trên nhiều loại ranh giới khác nhau, chứ không chỉ đơn thuần là "một thư mục khác" hay "một container khác". Mỗi loại ranh giới bao gồm một khía cạnh rủi ro khác nhau, và việc hiểu rõ chúng là điều cần thiết để thiết lập môi trường thử nghiệm thủ công hiệu quả với các tài nguyên hiện có của bạn.

ranh giới hệ thống tập tin

Bước đầu tiên là quyết định xem tác nhân có thể truy cập và chỉnh sửa những thư mục nào . Trong một môi trường thử nghiệm được thiết lập đúng cách, tác nhân chỉ nên được phép đọc và ghi vào không gian làm việc hoặc các ổ đĩa mà bạn đã gắn kết rõ ràng cho nó. Phần còn lại của hệ thống (thư mục chính của người dùng, đường dẫn hệ thống, các dự án khác) nên được giữ ngoài tầm với của nó.

Các framework agent và nền tảng sandbox làm rõ điều này: sandbox là rào cản ngăn chặn việc truy cập vào các tệp trên máy chủ vượt quá phạm vi được chia sẻ . Trong các mô hình dựa trên microVM, quy tắc thậm chí còn nghiêm ngặt hơn: chỉ thư mục bạn gắn kết (thường có quyền đọc-ghi) mới vượt qua ranh giới giữa máy ảo và máy chủ. Mọi thứ khác vẫn không thể truy cập được trừ khi bạn mở chúng.

ranh giới quy trình và nhân

Hạn chế quan trọng thứ hai là những gì tác nhân nhìn thấy ở cấp độ tiến trình và nhân hệ điều hành. Nếu, trong môi trường biệt lập, nó cài đặt dịch vụ, khởi động container hoặc khởi chạy luồng , tất cả các hành động này phải được đóng gói, không chia sẻ tiến trình hoặc nhân hệ điều hành trần với máy chủ.

Nhiều hệ thống sandbox mạnh mẽ dựa vào các máy ảo siêu nhỏ (microVM) hoặc máy ảo nhẹ với nhân Linux riêng, được tăng cường bằng các kỹ thuật seccomp, cgroups, namespaces và jail. Một số khác sử dụng các lớp như gVisor hoặc Kata Containers để chèn một lớp ảo hóa hoặc mô phỏng giữa tiến trình bị cô lập và nhân của nút. Ý tưởng cơ bản là: nếu ai đó khai thác lỗ hổng bên trong, việc chuyển sang máy chủ sẽ khó khăn hơn nhiều so với trong một container chia sẻ nhân đơn giản.

Ranh giới mạng

Các tác nhân mã thường rất "nghiện mạng": chúng muốn cài đặt các thư viện phụ thuộc, tham khảo tài liệu, gọi API của LLM, truy cập kho lưu trữ từ xa, hoặc thậm chí duyệt web. Nếu không có chính sách rõ ràng, một môi trường "cô lập" có thể trở thành một đường hầm đánh cắp dữ liệu tuyệt vời.

Do đó, ngày càng nhiều nền tảng đang triển khai chính sách từ chối mặc định đối với lưu lượng truy cập đi ra : HTTP/HTTPS bị chặn ngoại trừ trong một số trường hợp nhất định, TCP/UDP/ICMP bị hạn chế, và điều rất quan trọng là, quyền truy cập vào các dải địa chỉ riêng tư và địa chỉ cục bộ bị cấm. Việc liên lạc chỉ được cho phép với các máy chủ hoặc tên miền được liệt kê rõ ràng trong danh sách cho phép, và thường thông qua một máy chủ proxy do máy chủ đó kiểm soát.

Giới hạn thông tin xác thực

Việc khóa chặt tác nhân (agent) sẽ chẳng có ích gì nếu bên trong "lồng" đó, nó có thể đọc được khóa API, mã thông báo triển khai hoặc bí mật cơ sở dữ liệu của bạn. Thiết kế hiện đại của nhiều môi trường sandbox không bao giờ đưa trực tiếp các bí mật thô vào môi trường biệt lập , mà thay vào đó sử dụng một máy chủ proxy trên máy chủ để thêm thông tin xác thực vào tiêu đề của các yêu cầu HTTP mà sandbox muốn gửi đi.

Với phương pháp này, quy trình bên trong môi trường sandbox sử dụng thông tin xác thực nhưng không bao giờ nhìn thấy chúng . Điều này làm giảm đáng kể tác động của việc tác nhân có thể chiếm quyền điều khiển. Tuy nhiên, ngay khi bạn lưu trữ khóa trong một tệp hoặc biến môi trường bên trong môi trường sandbox, lợi thế đó sẽ biến mất: mô hình khi đó có thể đọc trực tiếp khóa đó, và bất kỳ lệnh nào được chèn vào đều có thể hướng dẫn nó lọc khóa đó.

Ranh giới và trạng thái vòng đời

Cuối cùng, đó là ràng buộc về thời gian: những gì được lưu giữ và những gì bị phá hủy khi môi trường dừng lại . Các tác nhân không phải là các tiến trình tại một thời điểm nhất định: chúng đọc, biên dịch, gỡ lỗi, mở nhiều giả thuyết, từ bỏ một số, tiếp tục những giả thuyết khác… Điều này đòi hỏi một môi trường thực thi quản lý trạng thái một cách thông minh: khởi động nhanh, tạm dừng, chụp ảnh nhanh, phân nhánh và xóa an toàn.

Một số nền tảng cung cấp ảnh chụp nhanh trong bộ nhớ, nhóm môi trường được khởi tạo sẵn và các hàm phân nhánh từ một trạng thái cụ thể (ví dụ: trình duyệt đã được xác thực hoặc biểu đồ phụ thuộc được giải quyết một phần). Điều này tạo nên sự khác biệt giữa một tác nhân hữu dụng—một tác nhân có thể tương tác lặp đi lặp lại—và một tác nhân mất rất nhiều thời gian để lặp lại cùng một thiết lập hết lần này đến lần khác.

Các phương pháp triển khai hộp cát trên macOS, Linux và Windows

Hướng dẫn sử dụng hộp cát

Ngoài các sản phẩm thương mại, nhiều nhóm đã chọn tận dụng các cơ chế cách ly hiện có trong hệ điều hành để xây dựng môi trường sandbox cho mã nguồn của riêng họ, mà không cần thêm các lớp bảo mật phức tạp hơn. Điều quan trọng là phải hiểu rõ những gì mỗi nền tảng mang lại.

Chế độ bảo mật Sandbox trên macOS: Dây an toàn và cấu hình động

Trên macOS, một số mô hình đã được đánh giá: App Sandbox, container, máy ảo và Seatbelt. Các tùy chọn đầu tiên có những nhược điểm đáng kể đối với môi trường phát triển: App Sandbox yêu cầu ký điện tử cho mọi tệp nhị phân mà tác nhân có thể thực thi và kế thừa sự tin cậy của chữ ký, điều này mở ra các lỗ hổng bảo mật nếu chính tác nhân tạo ra hoặc sửa đổi các tệp nhị phân; container bị giới hạn trong hệ sinh thái Linux; máy ảo truyền thống làm tăng đáng kể độ trễ khởi động và mức tiêu thụ bộ nhớ.

Giải pháp thay thế thiết thực là dựa vào Seatbelt, có thể truy cập thông qua sandbox-exec . Mặc dù Apple đã đánh dấu nó là lỗi thời từ nhiều năm nay, nhưng nó vẫn được sử dụng bởi các ứng dụng quan trọng như Chrome . Nó cho phép thực thi các lệnh trong môi trường sandbox, hạn chế hành vi của toàn bộ cây tiến trình con.

Hồ sơ này xác định quyền hạn với độ chi tiết cao: nó có thể lọc các lệnh gọi hệ thống cụ thể và các thao tác đọc hoặc ghi trên các tệp và thư mục cụ thể , sử dụng một ngôn ngữ chính sách duy nhất. Một số triển khai tạo ra chính sách này một cách động trong thời gian chạy, kết hợp cấu hình không gian làm việc, chính sách quản trị viên và các tệp bỏ qua của người dùng, để tác nhân có thể hoạt động mà không cần truy cập vào các khu vực có khả năng nguy hiểm.

Môi trường biệt lập (sandboxing) trên Linux: Landlock và seccomp

Linux mang lại cả sự linh hoạt hơn nhưng cũng đòi hỏi nhiều công việc hơn: nhân hệ điều hành cung cấp các hàm cơ bản như Landlock và seccomp , nhưng trách nhiệm kết hợp chúng thành một môi trường hoạt động mạch lạc và dễ quản lý lại thuộc về không gian người dùng.

Thay vì chỉ dựa vào các dự án bên ngoài, một số nhóm chọn sử dụng trực tiếp seccomp để chặn các lệnh gọi hệ thống được coi là nguy hiểm và Landlock để hạn chế quyền truy cập hệ thống tập tin. Một cách tiếp cận phổ biến là gắn kết không gian làm việc của người dùng lên một lớp phủ hệ thống tập tin và thay thế các tập tin được đánh dấu là bị bỏ qua bằng các bản sao đặc biệt được bảo vệ bởi Landlock , để tiến trình bị cô lập không thể đọc hoặc sửa đổi bất cứ thứ gì bạn muốn ẩn.

Phần chậm nhất của phương pháp này thường là việc định vị và gắn lại tất cả các tệp đó, vì Linux không cung cấp cách dễ dàng để tìm đường dẫn đầy đủ của một tệp trong bộ lọc seccomp-bpf . Tuy nhiên, kết quả là một môi trường thử nghiệm khá tinh vi: tác nhân có thể làm việc với cây dự án của nó trong khi các đường dẫn bị cấm, trên thực tế, bị loại trừ khỏi môi trường của nó.

Môi trường biệt lập trên Windows: dựa vào WSL2

Trên Windows, câu chuyện lại khác. Việc tạo ra một môi trường sandbox đa năng phức tạp hơn nhiều vì nhiều cơ chế cách ly hiện có được thiết kế cho trình duyệt hoặc các phần mềm rất cụ thể khác , và không tương thích tốt với các công cụ phát triển đa năng.

Một giải pháp thiết thực là chạy một môi trường sandbox Linux bên trong WSL2 . Bằng cách này, bạn có thể tái sử dụng các công cụ cách ly của Linux (Landlock, seccomp, namespaces, v.v.) trên nền tảng ảo hóa, giúp cách ly phiên làm việc phát triển khỏi máy chủ Windows. Song song đó, Microsoft đang tiếp tục nghiên cứu để phát triển các thành phần cơ bản mới, cuối cùng sẽ cho phép tạo ra môi trường sandbox tự nhiên hơn cho các công cụ phát triển.

Windows Sandbox: một không gian biệt lập được tích hợp vào hệ thống.

Đối với những người sử dụng Windows 10 hoặc 11 phiên bản Pro, Enterprise hoặc Education, có một công cụ đặc biệt thú vị: Windows Sandbox . Đây là một máy ảo nhẹ được tích hợp vào hệ thống, cho phép bạn chạy các ứng dụng không đáng tin cậy hoặc các tập tin đáng ngờ trong một môi trường dùng một lần.

Ý tưởng rất đơn giản: khi mở Windows Sandbox, bạn sẽ khởi động một môi trường Windows tạm thời, sạch sẽ, giống như một lần cài đặt mới . Mọi thứ bạn sao chép hoặc cài đặt trong đó—chương trình, tài liệu, tập lệnh—chỉ tồn tại trong phiên bản đó. Nếu bạn đóng cửa sổ, môi trường sẽ bị phá hủy: phần mềm, tập tin và trạng thái hệ thống sẽ bị loại bỏ, và lần tiếp theo bạn mở Windows, bạn sẽ bắt đầu lại từ đầu.

Các tính năng chính của Windows Sandbox

Tính năng này đi kèm với một số đặc tính rất hữu ích cho việc thiết lập môi trường thử nghiệm thủ công mà không cần dựa vào các công cụ của bên thứ ba:

  • Một phần của WindowsMọi thứ bạn cần đều đã được bao gồm trong các phiên bản tương thích (Pro, Enterprise, Education). Bạn không cần phải tải xuống ảnh hệ thống hoặc duy trì các máy ảo bên ngoài.
  • Dùng một lần và sạch sẽMỗi lần chạy đều sạch sẽ như một lần cài đặt Windows mới. Không có thao tác nào của bạn được lưu lại trên thiết bị sau khi bạn đóng môi trường này.
  • An toàn theo thiết kếNó dựa vào công nghệ ảo hóa được hỗ trợ phần cứng (Hyper-V) để cách ly nhân hệ điều hành môi trường sandbox khỏi nhân hệ điều hành máy chủ. Nó sử dụng trình giám sát ảo hóa của Microsoft để giữ cho hai môi trường này tách biệt.
  • Có hiệu quảQuá trình khởi động diễn ra nhanh chóng, chỉ trong vài giây, với khả năng quản lý bộ nhớ thông minh và hỗ trợ GPU ảo, sử dụng ít tài nguyên hơn so với máy ảo truyền thống.

Về mặt kỹ thuật, nó hoạt động như một máy ảo Windows nhỏ , dùng một lần, hoàn toàn phù hợp để kiểm tra trình cài đặt, truy cập các trang web đáng ngờ hoặc mở các tệp đính kèm email mà bạn không tin tưởng có thể chạy trên hệ thống thực của mình.

Các tình huống thực tế khi sử dụng Windows Sandbox

Có một số trường hợp điển hình mà Windows Sandbox tỏ ra rất hữu ích như một giải pháp cách ly thủ công đơn giản:

  • Hãy thử phần mềm không xác địnhKhi bạn tải xuống một ứng dụng hoặc tập tin thực thi từ internet và không chắc chắn về nguồn gốc của nó, bạn có thể cài đặt nó trước trong Windows Sandbox và xem nó hoạt động như thế nào mà không gây rủi ro cho máy tính của bạn.
  • Duyệt web an toàn hơn: cho Truy cập các trang web có khả năng nguy hiểm, chứa phần mềm độc hại hoặc trang web lừa đảo.Bạn có thể mở trình duyệt của mình bên trong môi trường sandbox. Nếu có sự cố xảy ra, chỉ cần đóng cửa sổ là mọi dấu vết sẽ biến mất.
  • Mở các tệp đính kèm và tệp không đáng tin cậyNếu bạn nhận được tệp đính kèm đáng ngờ hoặc tệp ZIP không đáng tin cậy, hãy sao chép nó vào môi trường thử nghiệm (sandbox), mở nó ở đó, và sau khi xem xét, hãy quyết định xem có đáng để giải nén bất cứ thứ gì vào hệ thống chính của bạn hay không.
  • Trình diễn và thử nghiệm công cụ cụ thểNó rất phù hợp để tạo bản demo phần mềm, thử nghiệm các phiên bản xem trước, tiện ích mở rộng hoặc bổ sung mà không làm rối rắm thư mục cài đặt chính của bạn.
  • Duy trì nhiều môi trường phát triển riêng biệt.Bạn có thể tạo các không gian riêng biệt, độc lập cho từng nhóm ngôn ngữ hoặc phiên bản, chẳng hạn. một môi trường thử nghiệm riêng biệt cho mỗi phiên bản Python và các thư viện phụ thuộc của nó.để các thí nghiệm không làm ảnh hưởng đến môi trường ổn định của bạn.

Yêu cầu và giấy phép để sử dụng Windows Sandbox

Không phải ai cũng có thể sử dụng Windows Sandbox, nhưng nó đã có sẵn trong nhiều môi trường chuyên nghiệp. Để kích hoạt nó trên máy tính của bạn, bạn cần:

  • Phiên bản Windows tương thíchWindows 10/11 Pro, Enterprise, Pro Education/SE hoặc Education. Phiên bản Home không được hỗ trợ.
  • Hỗ trợ ảo hóaViệc có được Các chức năng ảo hóa trong BIOS/UEFI (Intel VT-x, AMD-V hoặc tương đương).
  • Tài nguyên tối thiểuYêu cầu cấu hình tối thiểu: 4 GB RAM (khuyến nghị 8 GB), 1 GB dung lượng ổ cứng trống — tốt nhất là SSD — và tối thiểu 2 lõi CPU (lý tưởng là 4 lõi với công nghệ siêu phân luồng).
  • cập nhật hệ điều hànhKhả năng tương thích bắt đầu từ một số phiên bản nhất định (ví dụ: Windows 10 phiên bản 18305 trở lên và các phiên bản Windows 11 hiện đại). Trên kiến ​​trúc ARM64, khả năng tương thích được bổ sung từ các phiên bản mới hơn.

Về vấn đề cấp phép, các phiên bản Pro, Enterprise và Education đều bao gồm quyền sử dụng Windows Sandbox mà không cần phải trả phí cho các giấy phép phần mềm ảo hóa bổ sung. Chỉ cần kích hoạt là bạn có thể sử dụng được.

Khi nào việc tối ưu hóa làm giảm trải nghiệm sử dụng máy tính và cách tránh điều đó
Bài viết liên quan:
Làm thế nào để kiểm thử phần mềm mà không để lại dấu vết trên hệ thống?

Cách kích hoạt Windows Sandbox mà không cần công cụ bổ sung

Để khởi động và vận hành, bạn không cần bất cứ thứ gì bên ngoài hệ thống:

  1. Mở menu Bắt đầu và tìm tùy chọn "Bật hoặc tắt các tính năng của Windows".
  2. Trong danh sách các tính năng, hãy đánh dấu Hộp cát Windows Và xác nhận.
  3. Khởi động lại máy tính khi được yêu cầu.
  4. Sau khi khởi động lại, hãy tìm "Windows Sandbox" trong menu Bắt đầu và chạy nó.

Nếu bạn muốn sử dụng phương pháp kỹ thuật hơn, bạn cũng có thể kích hoạt tính năng này bằng PowerShell với lệnh `Enable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -All -Online` , với điều kiện bạn có quyền quản trị. Sau khi được kích hoạt, môi trường sandbox sẽ luôn khả dụng bất cứ khi nào bạn cần "máy ảo thứ hai" an toàn đó.

Các tập tin cấu hình và tùy chỉnh

Windows Sandbox hỗ trợ các tệp cấu hình đơn giản cho phép bạn tùy chỉnh một số tham số môi trường nhất định : ví dụ, gắn kết các thư mục máy chủ ở chế độ chỉ đọc hoặc đọc-ghi, vô hiệu hóa mạng, chạy tập lệnh khi khởi động, v.v. Các tệp này có sẵn bắt đầu từ một số bản dựng cụ thể của Windows 10 và 11.

Trên thực tế, khả năng này giúp bạn tạo ra các "công thức" môi trường thử nghiệm: một cấu hình với mạng bị vô hiệu hóa để mở phần mềm độc hại , một cấu hình khác với thư mục dự án được gắn ở chế độ chỉ đọc để xem xét các tệp, hoặc một cấu hình hướng đến việc kiểm thử phần mềm với một số công cụ được cài đặt sẵn trong ảnh hệ thống cơ bản.

Làm thế nào để dạy các tác nhân AI sử dụng môi trường thử nghiệm (sandbox) một cách chính xác?

Môi trường thử nghiệm (sandbox) chỉ thực sự hiệu quả nếu chính tác nhân mã (code agent) hiểu được môi trường mà nó đang hoạt động và biết khi nào nó có thể hoạt động tự do và khi nào cần yêu cầu thêm quyền hoặc sự hỗ trợ của con người.

Để đạt được điều này, nhiều nền tảng đã phải sửa đổi triệt để cơ sở hạ tầng mô tả các công cụ theo mô hình. Ví dụ, cập nhật mô tả công cụ shell để giải thích rõ ràng:

  • Môi trường thử nghiệm (sandbox) áp đặt những hạn chế nào? (quyền truy cập vào hệ thống tập tin, git, mạng).
  • Làm thế nào mà người đại lý có thể yêu cầu nâng cấp giấy phép Khi một thao tác nào đó thất bại do thiếu quyền hạn.
  • Những loại lệnh nào có khả năng bị chặn cao nhất?

Những thay đổi này không phải lúc nào cũng hoạt động hoàn hảo ngay từ lần đầu tiên: chúng thường yêu cầu thử nghiệm thủ công rộng rãi các quy trình triển khai thực tế , phân tích xem mô hình gặp trục trặc ở đâu và điều chỉnh các lời nhắc và hướng dẫn. Bằng cách đo lường hành vi có và không có môi trường thử nghiệm trong các bài kiểm tra nội bộ, các mẫu lỗi được xác định, chẳng hạn như các tác nhân liên tục thực thi cùng một lệnh mà môi trường thử nghiệm chặn thay vì hiểu rằng chúng cần yêu cầu thêm quyền hoặc sửa đổi chiến lược của mình.

Một cải tiến thiết thực là hiển thị lý do cụ thể cho việc chặn do môi trường sandbox gây ra trong kết quả của công cụ và thậm chí đề xuất rõ ràng rằng tác nhân nên yêu cầu quyền quản trị khi cần thiết. Gợi ý nhỏ này giúp giảm đáng kể số lần thử lại không cần thiết và cải thiện khả năng phục hồi từ các lỗi liên quan đến sandbox, cả trong thử nghiệm ngoại tuyến và môi trường sản xuất.

Để đảm bảo rằng việc sử dụng môi trường thử nghiệm (sandboxing) không làm giảm trải nghiệm người dùng, nhiều công ty đã lựa chọn triển khai theo từng giai đoạn , thu thập phản hồi nội bộ và bên ngoài trước khi kích hoạt mặc định. Dữ liệu thường cho thấy rõ ràng: một phần đáng kể các yêu cầu (ví dụ, khoảng một phần ba) được thực hiện trong môi trường thử nghiệm trên các nền tảng tương thích, với sự giảm đáng kể cả thời gian yêu cầu phê duyệt và thời gian xem xét thủ công.

Các mô hình cách ly và bài học an toàn thực tiễn

Trên thực tế, không có một "môi trường thử nghiệm" hoàn hảo nào duy nhất. Có những khác biệt quan trọng giữa container nhân dùng chung, môi trường thử nghiệm kiểu gVisor, microVM và máy ảo đầy đủ . Sự phân biệt này rất quan trọng khi chúng ta nói về việc cho phép tác nhân chạy Docker, cài đặt các gói tùy ý, hoặc thậm chí khởi chạy các trình duyệt và luồng phức tạp.

Các sự cố bảo mật trong quá khứ nhấn mạnh tầm quan trọng của việc lựa chọn kỹ lưỡng: các lỗ hổng như CVE-2019-5736 hoặc CVE-2024-21626 , cho phép chuyển hướng từ container sang máy chủ hoặc thao tác với các tệp nhị phân hệ thống, chứng minh rằng khi giới hạn độ tin cậy của bạn là môi trường chạy container trên nhân hệ điều hành của máy chủ, một lỗi nghiêm trọng có thể phá vỡ toàn bộ rào cản.

Vấn đề này càng trở nên nghiêm trọng hơn với các tác nhân mã hóa vì chúng thường thực thi mã biên dịch không đáng tin cậy, xây dựng ảnh hệ thống, cài đặt các thư viện phụ thuộc chưa được kiểm duyệt và nói chung là xử lý các đầu vào rất không đồng nhất. Hơn nữa, áp lực "trao cho chúng nhiều quyền hơn" rất lớn: nếu chúng không thể chạy một số công cụ nhất định, chúng thường không hoàn thành được nhiệm vụ của mình.

Do đó, nhiều thiết kế hộp cát tác nhân hiện đại có xu hướng tăng cường ranh giới bằng cách sử dụng các máy ảo siêu nhỏ hoặc máy ảo nhẹ , ngay cả khi phải trả giá bằng sự phức tạp tăng lên một chút. Điều này làm giảm sự phụ thuộc trực tiếp vào nhân hệ điều hành máy chủ và cung cấp thêm một lớp cách ly chống lại việc thoát khỏi container. Trong môi trường đa người dùng hoặc thực thi mã không đáng tin cậy trên quy mô lớn, gVisor hoặc Kata Container chiếm vị trí trung gian, đánh đổi khả năng tương thích để có được sự cách ly cao hơn.

Sự chấp thuận của con người, sự chấp thuận của chính trị và môi trường thử nghiệm: làm thế nào để kết hợp tất cả lại với nhau

Một mô hình lặp đi lặp lại là các yêu cầu cấp quyền thường xuyên không hiệu quả khi mở rộng quy mô . Ở chế độ demo, việc tác nhân yêu cầu quyền trước khi truy cập tệp là ổn. Tuy nhiên, trong môi trường sản xuất, với các quy trình làm việc bán tự động và vô số thao tác nhỏ, mô hình "nhấp OK cho mọi thứ" trở nên kém hiệu quả.

Cách tiếp cận hoàn thiện hơn kết hợp nhiều lớp:

  • Hộp cát chắc chắn để bảo vệ máy chủ và giới hạn môi trường thực thi.
  • Chính sách mạng hạn chế để kiểm soát các thiết bị đầu cuối mà tác nhân có thể giao tiếp.
  • Quản lý thông tin xác thực thông qua máy chủ proxyĐể mô hình sử dụng chúng mà không cần nhìn thấy chúng.
  • Cấu hình phiên bản ở cấp độ dự án (quyền hạn, các điểm kết nối, máy chủ bên ngoài) để các nhóm có một nguồn thông tin duy nhất đáng tin cậy trong kho lưu trữ.
  • Các tác nhân phụ chỉ đọc Để phục vụ cho việc khám phá và lên kế hoạch, hãy để việc viết lách diễn ra trong những trường hợp được kiểm soát chặt chẽ hơn.
  • Sự chấp thuận của con người chỉ dành cho những hành động thực sự tế nhị.: phát hành các gói phần mềm, thay đổi cơ sở hạ tầng, xoay vòng mã bí mật hoặc cập nhật lên các nhánh quan trọng.

Hơn nữa, điều quan trọng là phải xem xét phạm vi điều khiển mà bạn cung cấp cho tác nhân thông qua các tệp cấu hình, plugin và kỹ năng của riêng bạn. Các hướng dẫn từ các nhà cung cấp như OpenAI đã cảnh báo rõ ràng rằng việc để lộ các danh mục khả năng mở hoặc cho phép bất kỳ ai định nghĩa các lệnh mạnh mẽ trong kho lưu trữ có thể dẫn đến rò rỉ dữ liệu hoặc các hành động phá hoại nếu kẻ tấn công tìm cách chèn các lệnh độc hại vào các tệp README, sự cố, tài liệu hoặc tệp mẫu.

Trong thiết kế âm thanh, hộp cát không được coi là một thủ thuật thần kỳ giúp khắc phục vấn đề bảo mật ngay lập tức, mà là một ranh giới khác trong một kiến ​​trúc bao gồm các chính sách, xác minh độc lập, quản lý bí mật cẩn thận và xem xét cấu hình . Do đó, ngay cả khi giả sử một ngày nào đó tác nhân đọc và tuân theo các chỉ thị độc hại, hệ thống được thiết kế để hạn chế tác động: không có quyền truy cập trực tiếp vào khóa, không có mạng mở và không có khả năng bí mật sửa đổi các tập lệnh mà bạn sau đó chạy trên máy thật của mình.

Hướng dẫn sử dụng hộp cát
Bài viết liên quan:
Cách sử dụng tập lệnh .wsb để cấu hình Windows Sandbox

Tóm lại, việc thiết lập một môi trường thử nghiệm thủ công tốt mà không cần dựa vào phần mềm bổ sung phụ thuộc vào việc tối đa hóa khả năng của macOS, Linux và Windows — các cấu hình Seatbelt, Landlock và seccomp, Windows Sandbox và WSL2 — kết hợp với các quy tắc mạng rõ ràng, thông tin đăng nhập và quản lý vòng đời môi trường. Thêm vào đó là các chuyên viên được đào tạo bài bản, hiểu rõ các hạn chế này, các chính sách hợp lý và một số kỷ luật về những gì họ được phép truy cập trong không gian làm việc của bạn, và bạn có thể kiểm thử mã, công cụ và tệp có rủi ro cao hơn với sự an tâm lớn hơn, biết rằng nếu có sự cố xảy ra, vấn đề sẽ nằm trong môi trường thử nghiệm và sẽ không làm ảnh hưởng đến hệ thống hoặc dữ liệu quan trọng của bạn. Hãy chia sẻ thông tin này để nhiều người dùng hơn có thể biết đến nó.


Thêm vào danh sách nguồn ưu tiên trên Google.