Wednesday, September 18, 2013

CHROOT Linux

Hiện nay an toàn thông tin đang là một vấn đề được nhiều người quan tâm, đặc biệt là trong lĩnh vực công nghệ thông tin. Trong lĩnh vực quản trị hệ thống nói riêng, công việc bảo mật cho hệ thống là rất quan trọng và cần tiến hành thực thi các chính sách bảo mật được đề ra trong đó có việc bảo mật cho các dịch vụ chạy trên Server như dịch vụ Web, dịch vụ FTP, dịch vụ DNS ... là một trong số các dịch vụ có tính bảo mật không cao.

Chúng ta có thể tưởng tượng toàn bộ hệ thống của chúng ta bị gián đoạn, trường hợp xấu nhất có thể bị sụp đổ hoàn toàn chỉ vì 1 dịch vụ nào đó đang chạy trên hệ thống bị Attacker xâm nhập và tấn công. Nếu Attacker đã giống như người quản trị trực tiếp hệ thống của bạn thì anh ta có quyền thực thi một số công việc rất nguy hiểm như xóa file, stop các dịch vụ đang chạy... Điều này tất cả chúng ta đều không muốn xảy ra với hệ thống của mình.

Bài viết này tôi sẽ giới thiệu với các bạn ý nghĩa của việc sử dụng chroot (nhà tù hóa) các dịch vụ có tính bảo mật kém trên hệ thống.

Chroot trên các hệ điều hành Unix là một công đoạn thay đổi thư mục root cho các tiến trình đang chạy hiện tại và các tiến trình con của nó.

Các chương trình (gói phần mềm) trên hệ thống Unix/Linux muốn chạy được cần phải gọi đến các chương trình khác đã được cài đặt trên hệ thống gọi là các gói dependencies và các thư viện cần thiết (libraries) phục vụ cho việc chạy chương trình đó. Như vậy khi chúng ta thay đổi môi trường làm việc cho một chương trình (thay đổi đường dẫn đến một chương trình) thì chương trình đó chỉ chạy được trong môi trường đã được thay đổi và không thể gọi đến các chương trình khác hoặc các thư viện khác ở ngoài thư mục đang chứa chương trình đó. 

Môi trường đã được thay đổi cho một chương trình được gọi là một nhà tù chroot “chroot jail” hay còn được gọi là “chroot prison”.

Như vậy trước khi chúng ta “giam” một chương trình nào đó chúng ta cần tiến hành kiểm tra xem chương trình đó khi chạy cần gọi đến các chương trình nào khác (trên hệ thống Unix/Linux thường là các file cấu hình cho chương trình) và các thư viện cần thiết để chạy chương trình đó.

Nếu một Attacker tấn công vào một chương trình đã được “giam” (chroot) trên hệ thống (/chroot/<thư mục chứa chương trình>) Attacker chỉ có quyền hạn làm bất kỳ việc gì trong thư mục đã được chroot và không thể vượt ra ngoài thư mục chroot. Như vậy chương trình có thể bị Attacker tấn công nhưng hệ thống của chúng ta không bị ảnh hưởng và vẫn hoạt động bình thường. 

Chroot được giới thiệu trong quá trình phát triển phiên bản thứ 7 của hệ điều hành Unix năm 1969 và sau đó chroot được Bill Joy tích hợp vào hệ thống BSD năm 1982. 

Với những ưu điểm của chroot, các dịch vụ cần tính bảo mật cao chạy trên các máy chủ đều được chạy trong nhà tù chroot. Ví dụ dịch vụ FTP Server và DNS Server là 2 trong một số dịch vụ có tính bảo mật không cao. 

Mô hình mình họa CHROOT trên hệ thống Unix/Linux

Hình ảnh

Related Posts:

  • Enable log slow query mysqlIn order to enable slow query logs for MySQL on your system you would need to do the following. 1st Step is to edit your my.cnf file which is located in your /etc directory. vi /etc/my.cnfPlain Text Once you have your my.cnf… Read More
  • Tối Ưu Hóa Và Bảo Mật Apache 1. Edit một số directive default trong httpd.conf để giảm thiểu việc lộ lọt thông tin cấu hình của máy chủ hoặc các tác vụ ko cần thiết:TraceEnable Off : Disable TRACE request methodServerSignature Off : Disable vi… Read More
  • Disable module apache#LoadModule auth_basic_module modules/mod_auth_basic.so#LoadModule auth_digest_module modules/mod_auth_digest.so#LoadModule authn_file_module modules/mod_authn_file.so#LoadModule authn_alias_module modules/mod_authn_alias.so#… Read More
  • Copy a folder linux I'm a new Linux user. How do I copy a directory or folder under Linux operating system using command line options and bash shell?You can use various command to copy a folder under Linux operating systems. cp Command cp … Read More
  • Giám sát hệ thống Linux với netstat Netstat là một công cụ hữu ích của Linux cho phép bạn kiểm tra những dịch vào nào đang kết nối đến hệ thống của bạn. Nó rất hữu ích trong việc phân tích cái gì đang xảy ra trên hệ thống của bạn khi bạn cố gắng ngăn chặn một … Read More