Sandbox là một kỹ thuật giúp cô lập các ứng dụng, giúp bảo vệ và không cho các phần mềm độc hại xâm nhập vào máy tính, điện thoại để hạn chế hỏng hệ thống máy hoặc rò rỉ các thông tin cá nhân.

Trong thế giới máy tính, mỗi một phần mềm hay ứng dụng được cài lên đều chia sẻ chung một bộ nhớ và đều dùng chung một CPU. Một khi các tài nguyên này được dùng chung, sẽ dẫn đến khả năng một chương trình hay ứng dụng sẽ chiếm toàn bộ máy tính của bạn, truy cập đến tất cả vị trí bộ nhớ hay sử dụng CPU không có kiểm soát. Vì vậy, sandbox ra đời để đặt các chương trình, ứng dụng nằm trong phạm vi quản lý.

Máy tính vốn được thiết kế để chia sẻ tài nguyên phần cứng máy tính cho các ứng dụng để làm được nhiều việc khác nhau cùng một lúc. Các thiết bị như như điện thoại, máy tính, máy tính bảng hay kể cả đồng hồ thông minh cũng đều được thiết kế làm nhiều việc cùng lúc nhằm đáp ứng được nhu cầu của chúng ta.
Tuy nhiên, việc các ứng dụng dùng chung tài nguyên máy tính này sẽ dẫn đến các tác dụng phụ không mong muốn. Nếu như một chương trình hay ứng dụng bị lỗi sẽ dẫn đến các ứng dụng khác bị lỗi theo, hoặc có thể có một ứng dụng độc hại và lợi dụng việc dùng chung tài nguyên với các ứng dụng khác và cố gắng truy cập đến các khu vực riêng tư nhằm một mục đích xấu gây ảnh hưởng đến người dùng máy tính. Vì vậy, sandbox là một kỹ thuật rất quan trọng nhằm tăng tính bảo mật của bất kỳ chương trình hay ứng dụng nào.
2. Vai trò của sandbox
Hiểu đơn giản, sandbox đóng vai trò là một môi trường dùng để chạy phần mềm và môi trường đó được kiểm soát nghiêm ngặt và chặt chẽ.
Sandbox sẽ giới hạn chức năng của một đoạn mã nào đó và cấp quyền cho chúng chỉ được hiện một số chức năng nhất định, không cho nó thực hiện những chức năng khác gây nguy hại đến máy tính của bạn.
Một ví dụ của việc ứng dụng sandbox trên các phần mềm chính là các trình duyệt web bạn sử dụng hàng ngày. Bất kỳ trang web nào bạn truy cập cũng đều được chạy trong môi trường sandbox. Sandbox sẽ giới hạn và chỉ cho phép website chạy trong trình duyệt và can thiệp một phần nhỏ vào tài nguyên hệ thống.
Bất kỳ việc sử dụng tài nguyên nào trên máy cũng đều phải được bạn cho phép. Nếu không có sandbox, thì khả năng máy bạn bị tấn công rất cao khi chẳng may truy cập vào các website chứa mã độc.

Xung đột chương trình
Trước đây, khi máy tính chưa phải phải làm nhiều việc, CPU sẽ phân phối tài nguyên hệ thống dựa trên cơ sở ai đến trước được phục vụ trước. Tuy nhiên, điều này đã không còn phù hợp với hiện tại.
Ngày nay, máy tính phải xử lý khối lượng việc phức tạp và lớn hơn gấp nhiều lần và cơ chế này đã không còn phù hợp. CPU sẽ không cho phép các chương trình truy cập vào các tài nguyên chúng đã phân bổ. Nếu một chương trình cố gắng sử dụng tài nguyên mà chưa được CPU chỉ định, sẽ dẫn đến lỗi của không chỉ một mà hàng loạt chương trình khác trên máy tính.
Các chương trình có thể dễ dàng phân bố trước các tài nguyên nếu chạy trong sandbox, chẳng hạn như bộ nhớ và không gian ổ đĩa trước khi chương trình được thực hiện bất cứ điều gì. Các tài nguyên sẽ luôn đảm bảo và sẵn sàng cho chương trình cho bất kỳ khi nào chúng cần. Điều này cũng đảm bảo rằng sẽ không ứng dụng hay chương trình nào khác sử dụng tài nguyên đó.
Chương trình ngừng hoạt động vì các chương trình phụ thuộc được nâng cấp
Bên trong các ứng dụng chính mà chúng ta sử dụng hàng ngày đều có các chương trình phụ thuộc liên quan. Ứng dụng chính chạy đúng cách hay không đều nhờ vào các chương trình phụ thuộc này. Cũng giống như ứng dụng thông thường, các ứng dụng phụ thuộc này luôn được cập nhật và thay đổi liên tục.
Và nếu trong thời gian cập nhật này, ứng dụng chính cần sử dụng tính năng mà do chương trình phụ thuộc cung cấp, ứng dụng chính sẽ bị dừng hoạt động ngay lập tức. Các nhà phát triển ứng dụng thường xuyên gặp phải vấn đề này và sandbox chính là cách hiệu quả để giải quyết nó.
Nhiễm các chương trình độc hại
Giả sử một tình huống, có một ứng dụng chia sẻ máy tính của bạn với tất cả các ứng dụng đang chạy khác, và một trong số các chương trình đó chứa thông tin nhạy cảm của bạn. Khi các ứng dụng không có sandbox, các ứng dụng độc hại tồn tại trên máy bạn sẽ luôn thăm dò các khu vực lưu thông tin bảo mật trên các ứng dụng đó, tìm ra các lỗ hổng của chương trình và đánh cắp thông tin nhạy cảm của bạn.
Sandbox sẽ là giải pháp hữu hiệu giải quyết các vấn đề đó. Nó cung cấp khả năng bảo vệ các chương trình và chống lại các chương trình độc hại. Khi một ứng dụng chạy trong sandbox, nó chỉ có thể truy cập vào các khu vực bộ nhớ đã được cấp phép cho nó. Vì vậy, việc mở các tài liệu nhạy cảm sẽ ngăn không cho các malware hay ứng dụng độc hại xâm nhập, vì tài liệu này không nằm cùng khu vực bộ nhớ với các chương trình độc hại đó.
4. Một số nền tảng sử dụng sandbox
Sandbox trình duyệt
Sandbox trình duyệt là cách gọi chung các sandbox được áp dụng trên các nền tảng chạy trên trình duyệt để bảo vệ người dùng, cụ thể như:
- Các website: các trình duyệt web của bạn sẽ cô lập các trang web mà bạn truy cập. Các website sẽ được phép chạy các mã JavaScript, nhưng chúng chỉ được phép sử dụng các dữ liệu mà bạn cho phép. Sandbox sẽ ngăn chặn Javascript nếu chúng truy cập dữ liệu của các bạn trên máy mà không có sự cho phép của bạn.
- Plug-in trình duyệt: Môi trường sandbox cũng sẽ được chạy trên bất cứ nội dung nào plug-in trình duyệt (Flash hay Silverlight) tải. Sandbox sẽ cô lập chúng, ngăn không cho các ứng dụng chạy trên plug-in này truy cập trái phép vào máy tính.
- Trình duyệt web: Hầu hết các trình duyệt phổ biến ngày nay đều thược thiết kế chạy trong sandbox của riêng chúng mà người dùng không cần phải thiết lập điều gì. Sandbox trên trình duyệt web sẽ làm tăng tính bảo mật, bảo vệ người dùng khỏi các malware hay các hacker tấn công bạn trên internet.
PDF, Microsoft Office
Trình đọc file PDF là Adobe Reader cũng đã áp dụng sandbox, cho phép chạy các file PDF trong môi trường sandbox, ngăn chặn nguy cơ các file PDF bị cài mã độc tấn công dữ liệu máy tính của bạn. Microsoft Office cũng có trình sandbox của riêng mình, ngăn không cho các đoạn mã độc thâm nhập vào máy tính của bạn.
Ứng dụng Windows
Các ứng dụng Windows truyền thống không được thiết lập mặc định chạy trong sandbox. Tuy nhiên, người ta vẫn dùng các phương pháp sandbox thủ công để thiết lập các ứng dụng chạy trong môi trường sandbox. Nếu bạn muốn thử các ứng dụng nào đó nhưng lại sợ ảnh hưởng đến máy tính của mình, các bạn có thể thử các phương pháp sau để chạy thử ứng dụng trong môi trường sandbox.
- Máy ảo
Một trong những Ứng dụng máy ảo nổi tiếng hiện nay là VirtualBox, có thể chạy máy ảo trên cả Windows lẫn macOS hay kể cả Linux. Các chương trình máy ảo sẽ giúp tạo ra một môi trường phần cứng ảo và chạy riêng một hệ điều hành. Hệ điều hành mới này sẽ tách biệt hoàn toàn với máy tính của bạn, tất cả các ứng dụng chạy trong máy ảo sẽ không được phép truy cập vào bất kỳ đâu bên ngoài máy ảo, nhờ vậy sẽ bảo vệ hệ thống thật của bạn trước các phần mềm không đảm bảo.

Ứng dụng máy ảo khác cũng nổi tiếng không kém chính là Parallels. Phần mềm này được viết riêng cho macOS và được thiết kế để chạy Windows trên máy ảo. Đây cũng là ứng dụng để người dùng macOS có thể chạy Windows trên MacBook của mình.

- Sandboxie
Sandboxie cũng là một ứng dụng tạo môi trường sandbox cho các ứng dụng Windows. Phần mềm này sẽ tạo ra một môi trường ảo để cô lập ứng dụng. Đây có thể là nơi để bạn thử nghiệm các ứng dụng mới nhưng vẫn đảm bảo an toàn cho máy tính của mình.

- QubesOS
Đây cũng là một ứng dụng tạo môi trường sandbox trên Windows. Điểm đặc biệt của ứng dụng này là nó khởi chạy nhiều hệ điều hành riêng biệt với nhau, cho phép sandbox các ứng dụng riêng lẻ, và các ứng dụng này chạy trong máy ảo của riêng mình thay vì tạo một máy ảo chung cho tất cả ứng dụng như VirtualBox.
