Phân loại Rootkits

Một phần của tài liệu BÀI TẬP NHÓM AN TOÀN THÔNG TIN (Trang 37 - 39)

Rootkit được phân chia thành hai loại: user mode, kernel mode rootkit phụ thuộc vào phạm vi ảnh hưởng và liệu chúng chỉ tồn tại trong bộ nhớ hay sau khi khởi động lại (được ghi lên ỗ đĩa) persiten và non-persitent rootkit.

Đây là rootkit có cơ chế điều khiển và phạm vi ảnh hưởng lên hệ điều hành khác nhau. Cơ chế điều khiển thông qua đặc quyền mà nó giành được, đặc biệt quyền càng lớn phạm vi ảnh hưởng càng tăng.

Bất kể là chế độ nào đi nữa, thì mọi rootkit đều dựa trên cơ sở: các chương trình giao tiếp với nhau nhờ các lời gọi hàm. Tùy vào mức đặc quyền của chương trình, nó có thể tạo lời gọi trực tiếp tới kernel hay gián tiếp qua một bên xử lý thứ ba đứng giữa nó và kernel. Hay người ta gọi là ser mide và kernel mode.

 Rootkit mức user là mức đặc quyền thấp nhất, nó phải sử dụng giao diện ứng dụng chương trình API để gửi tới yêu cầu tới hệ thống. Các lời gọi này sẽ thông qua thư viện liên kết động mức user (DLL) để được chuyển thành thông điệp mà kernel có thể hiểu. Thực tế thì chương trình mức user không tự chứa tất cả các khả năng xử lý, nó sẽ phải dùng tạo các system call tới kernel. Ví dụ, user click chuột OK, Windows chuyển thông tin đó thành một system call để hệ thống xử lý. Ngôn ngữ mà Window cung cấp để thực hiện giao tiếp giữa kernel và chương trình mức user gọi là API. Để vận hành tốt hơn, mỗi chương trình user tạo một bảng riêng chứa địa chỉ của tất cả API hoặc system function mà nó sẽ cần gọi tới. Bảng đó được gọi là IAT (import address table). Gián tiếp liên lạc với kernel làm hạn chế mức ảnh hưởng của user mode rootkit. Lợi điểm của nó là dễ tạo, không làm hệ thống bị treo hay gặp sự cố. Nhưng để có kết quả nhất định, user mode roofkit còn khá nhiều việc phải làm.

 Kernel mode rootkit: kernel là phần mềm tương ứng với đơn vị xử lý trung tâm - bộ não của hệ điều hành, là thành phần căn bản. Kernel duy trì và điều khiển nhiều tài nguyên quan trọng, và các hàm như thông tin bộ nhớ, an ninh, lập lịch xử lý, giao tiếp giữa phần cứng và tất cả các ứng dụng tất cả các chương trình đều phải tương tác với kernel theo một cách nào đó. Và nếu rootkit thao túng được kernel, nó sẽ ở vị trí điều khiển tất cả. Không giống user mode rootkit hoạt động ở Ring 3, kernel mode rootkit hoạt động ở Ring 0, tương tác trực tiếp với kernel. Kernel mode rootkit sẽ cài đặt một driver sẽ chuyển hướng các system function call sang mã lập trình của nó để thi hành.

 Persistent và non-persistent rootkit

 Persistent rootkit: để có thể tồn tại sau khi hệ thống khởi động rootkit phải thay đổi được nội dung ổ cứng: rootkit sẽ chèn thêm một mục autostart và Registry, nhờ đó nó được load vào bộ nhớ và tự động thực thi mỗi lần

máy tính khởi động. Dù các thay đổi vật lý làm tăng khả năng bị phát hiện nhưng vẫn rất nhiều tiện ích hệ thống cũng như chương trình quét malware lại bỏ qua rootkit.

Non-persistent rootkit: chỉ tồn tại trên bộ nhớ và mất đi khi hệ thống khởi động lại. Các chương trình mà bỏ qua việc quét các nơi lưu trữ vật lý sẽ không phát hiện ra rootkit này. Non-persister rootkit có vẻ như ít đe dọa tới những ai mà việc khởi động lại máy tính là thường xuyên. Nhưng đối với một mạng server với hàng trăm máy tính client, việc reboot thường rất hiếm. Các rootkit nằm trên bộ nhớ thường lợi dụng điểm này, hơn nữa, rootkit kiểu này không để lại manh mối vật lý nào đề có thể bị phát hiện.

Một phần của tài liệu BÀI TẬP NHÓM AN TOÀN THÔNG TIN (Trang 37 - 39)