|
Sandbox có thể là một công cụ hữu dụng cho việc trợ giúp bảo vệ hệ thống chống lại sự thỏa hiệp, miễn là bạn sử dụng nó sáng suốt. Trong bài này sẽ giới thiệu cho các bạn một Sandbox cụ thể, chroot, đây là một Sandbox đơn giản, dễ sử dụng, cũng như khả năng có sẵn cao.
Nhiều vấn đề bảo mật ứng dụng liên quan đến việc cho phép. Nếu ai đó tăng sự cho phép để thực hiện một số nhiệm vụ nào đó trên máy tính mà thực sự bạn không muốn người này có khả năng đó, thứ gì xay ra chắc bạn đã biết, bạn đã bị thỏa hiệp.
Việc chọn các ứng dụng được biết đến hoặc chí ít là được tin là được thiết kế an toàn hơn so với các sản phẩm khác là một hành động cần thực hiện để bảo đảm an toàn cho hệ thống của bạn. Thêm vào đó là cần phải quan tâm đến việc cấu hình đúng cách mọi thứ, để những người dùng không có thẩm quyền không có được sự cho phép không cần thiết. Mặc dù khi đã áp dụng tất các bước hợp lý để bảo mật nhưng vẫn có khả năng thứ gì đó có thể đi sai đường. Dù có siêng năng đến cỡ nào bạn cũng cần phải biết được rằng hệ thống của bạn có thể là hệ thống đầu tiên một số kẻ tấn công mã độc test lỗ hổng mới được khám phá với một khai thác zero-day. Do đó để không gặp phải vấn đề này, bạn cần phải được bảo vệ trước những gì có thể xảy ra.
Những nỗ lực luôn được thực hiện để có được nhiều cách bảo vệ chống lại những gì không mong đợi. Một hệ thống biệt lập với đặc quyền mạnh được xây dựng trong một hệ điều hành, chẳng hạn như trường hợp với các hệ thống Unix điển hình, là một ví dụ cho kiểu suy nghĩ này. Những hành động bảo vệ này không bị hạn chế trong việc bảo vệ chống lại các tấn công bảo mật mã độc; chúng cũng có thể cung cấp sự bảo vệ chống lại những người dùng không manh mối, và những lỗi đơn giản xảy ra bởi quản trị viên hệ thống và những vấn đề khác. Một phương pháp để bảo vệ bản thân bạn với những gì không mong đợi đến từ sandbox.
Trong thuật ngữ bảo mật ứng dụng, sandbox là một cơ chế kỹ thuật mà với cơ chế đó, một số hoạt động của các ứng dụng có thể được cô lập với phần còn lại của hệ thống theo một cách nào đó, hy vọng nó sẽ bảo vệ hệ thống của bạn chống lại được bất cứ ác tâm hay những điều không may có thể rơi vào các ứng dụng đó.
Các máy ảo chẳng hạn như VirtualBox cung cấp một phương pháp khá thú vị và hoàn chỉnh cho việc sandbox, nơi toàn bộ một hệ điều hành được load vào một sandbox được duy trì bên trong môi trường hệ điều hành khác. Theo lý thuyết, bất cứ ứng dụng nào chạy bên trong máy ảo đều tránh được sự ảnh hưởng của bất cứ thứ gì chạy bên ngoài sandbox máy ảo.
Các sandbox đặc biệt hơn, chẳng hạn như Sandboxie cũng tồn tại, cho phép ai đó có thể chạy một ứng dụng cụ thể bên trong một ứng dụng sandbox.
Hầu hết các hệ điều hành được thiết lập để trở thành một thực thi cho hình thức lý tưởng Platonic mà chúng ta biết đến như Unix đều đi kèm với một chroot()system call, một thành phần có thể được sử dụng để tạo nên các sandbox cho riêng bạn. Một số ứng dụng được thiết kế đặc biệt để có thể tự triệu gọi chroot() cho bản thân chúng khi được khởi chạy, tự động sandboxing. Mặc dù vậy cũng có một tiện ích dòng lệnh chroot có thể được sử dụng để truy cập vào system call (một system call là cách một chương trình yêu cầu một dịch vụ từ nhân của hệ điều hành mà bình thường không được phép chạy), để nó có thể được sử dụng trong việc sandbox các ứng dụng đặc biệt khi cần.
Tiện ích chroot thường là một cách đơn giản nhất, nhanh nhất và có thể nói là dễ dàng nhất cho việc sandbox một ứng dụng nào đó – đặc biệt một máy chủ - nơi vấn đề bảo mật là quan trọng hàng đầu.
Khi sử dụng chroot, một mẩu phần mềm sẽ được khởi chạy bên trong một kiểu cấu trúc thư mục root lỗi, theo lý thuyết là làm cho phần mềm bị “đánh lừa” và nghĩ rằng không có gì bên ngoài cấu trúc thư mục đó, vì vậy sẽ cách ly phần còn lại của hệ thống với bất cứ vấn đề có tiềm ẩn sự ảnh hưởng gây hại trong việc chạy phần mềm này. Bất cứ quá trình nào được chroot root đều tránh được sự truy nhập trực tiếp vào cấu trúc thư mục root lỗi của nó, tuy nhiên vẫn tiềm ẩn một số ứng dụng có thể chạy phần mềm khác và được lợi dụng để tạo các quá trình có thể phá hủy môi trường chroot. Phương pháp kinh điển để phá hủy sandbox đó là bảo tạo khả năng có thể gắn lại (remount) thư mục hiện hành.
Với những hạn chế của chroot() system call, chúng ta cần phải thật cẩn thận về cách nó được sử dụng như thế nào trước khi dựa vào nó để bảo mật cho hệ thống của mình. Bạn luôn phải nhớ rằng các sandbox không an toàn như những gì chúng tuyên bố, mà việc sử dụng một sandbox là một cố gắng để bảo đảm rằng các lỗi bảo mật trong ứng dụng được sandbox sẽ không thể ảnh hưởng đến bất cứ thứ gì khác ngoài môi trường được sandbox.
|