Rootkit đơn giản là một bộ công cụ có thể duy trì quyền truy cập đặc quyền của người chủ vào hệ điều hành. Một rootkit phần mềm độc hại thường sẽ mang mã / phần mềm độc hại được triển khai bí mật vào hệ thống mục tiêu. Để duy trì quyền truy cập backdoor đối với phần mềm độc hại, rootkit có thể khai thác các quy trình hệ thống nền ở các cấp đặc quyền khác nhau. Trong hệ thống Windows, điều này thường có nghĩa là tấn công ở chế độ người dùng hoặc chế độ hạt nhân. 1 :Tầm quan trọng của việc hiểu vector tấn công Trái ngược với nhận thức phổ biến, rootkit không tự xâm phạm đến bảo mật hệ thống. Việc xâm nhập hệ thống phòng thủ của hệ điều hành được xử lý bằng phương pháp được sử dụng để lây nhiễm hệ thống. Có nhiều cách để thực hiện điều này ngày nay: *Gửi tệp bị nhiễm / Trojan dưới dạng tệp đính kèm email *Tạo ứng dụng phần mềm độc hại giả dạng biểu ngữ / cửa sổ bật lên vô hại trên các trang web *Sử dụng các cuộc tấn công lừa đảo và phần mềm độc hại khác như keylogger cung cấp cho tin tặc quyền truy cập root, sau đó có thể được sử dụng để đưa rootkit Một rootkit bắt đầu công việc bẩn thỉu của nó khi vector đã xâm nhập thành công hệ thống, tạo cơ hội cho nó vào các chế độ đặc quyền root bên trong hệ điều hành. Sau khi có quyền truy cập, tùy thuộc vào mức độ tấn công của nó, rootkit có thể thay đổi phần mềm đã cài đặt hoặc thậm chí các phần của hệ điều hành. Điều này có thể làm cho việc lây nhiễm rootkit khó bị phát hiện, hoặc thậm chí hầu như không thể nhìn thấy. 2:Hiểu vị trí của rootkit trong hệ điều hành Windows có hai chế độ để thực thi mã - chế độ người dùng và chế độ hạt nhân(kernel). Trong số này, chế độ hạt nhân là quan trọng nhất, vì nó đóng vai trò là liên kết trực tiếp giữa mã phần cứng và phần mềm. Đây là chế độ đặc quyền cao nhất , hay còn gọi là "root" trong hệ thống Windows. Nhưng không phải tất cả các chương trình và quy trình đều yêu cầu quyền truy cập vào toàn bộ sức mạnh xử lý và phần cứng hệ thống. Các chức năng cấp thấp hơn này được xử lý ở chế độ có đặc quyền thấp hơn - chế độ người dùng. Trong chế độ hạt nhân, hệ điều hành chạy mã trực tiếp để thực thi tất cả các tác vụ cấp cao của việc quản lý hệ thống. Ngược lại, chế độ người dùng sử dụng Giao diện lập trình ứng dụng (API) để thực thi gián tiếp các mã. Trong quá trình hoạt động bình thường của hệ thống, API thực hiện các lệnh gọi hàm tới hạt nhân và nhận lại thông tin. Một rootkit thường chiếm quyền điều khiển các lệnh gọi hàm này, ở chế độ người dùng hoặc chế độ hạt nhân, tùy thuộc vào thiết kế của nó. 3: Rootkit chế độ người dùng và đưa vào DLL Trong Windows, API hooking là một kỹ thuật thường được sử dụng để sửa đổi hoặc thay đổi luồng lệnh gọi API. Rootkit ở chế độ người dùng khai thác kỹ thuật này để đưa mã độc vào bộ nhớ của chương trình trong khi vẫn được che giấu. Để điều này hoạt động, rootkit phải chèn mã của nó vào một quy trình thường được gọi là victim . Trong Windows, Thư viện liên kết động (DLL) là lựa chọn hoàn hảo cho việc này, vì chúng được gọi bởi nhiều chương trình khác nhau được cài đặt trong hệ điều hành. DLL injection là phương pháp được người dùng rootkit (hacker) sử dụng để chèn mã độc vào các chương trình khác nhau thực hiện lệnh gọi API trong hệ điều hành. Có một số cách để đạt được điều này: *Sửa đổi các giá trị đăng ký để thêm một DLL độc hại mới vào hệ thống Windows *Sử dụng tính năng nối toàn cầu trong Windows để ảnh hưởng đến tất cả các lệnh gọi API chương trình *Bằng cách tạo một chuỗi từ xa cho quy trình đích để thêm DLL bị nhiễm vào nó 4:IAT hooking vs inline hooking Điểm yếu chính của rootkit cấp người dùng là nó thiếu quyền truy cập trực tiếp vào nhân hệ điều hành. Vì vậy, họ sử dụng API để khai thác. Có hai kỹ thuật khác nhau thường được sử dụng ở đây - nối IAT và nối nội tuyến(inline hooking). Trong Windows, Bảng địa chỉ nhập (IAT) được sử dụng để hợp lý hóa quyền truy cập vào các tệp DLL với các địa chỉ hàm biến đổi của chúng. IAT lưu trữ các con trỏ chức năng của các DLL khi chúng được tải bởi bộ tải Windows trong khi gọi API. Sử dụng IAT hooking, rootkit có thể thực hiện các thay đổi đối với danh sách lệnh gọi hàm DLL, thay thế các hàm hiện có bằng địa chỉ của chính nó. Khi một ứng dụng thực hiện lệnh gọi API cho hàm đó, mã rootkit được tải thay thế vào không gian bộ nhớ của chương trình nạn nhân. Ngược lại, nối nội tuyến trực tiếp thực hiện các sửa đổi đối với mã chức năng của các chương trình cụ thể. Đây là một cách tiếp cận có mục tiêu và hẹp hơn so với IAT hooking. Nhưng giống như IAT hooking, mục đích ở đây là làm cho các lệnh gọi API của chương trình tải mã độc hại từ địa chỉ rootkit. 5:Kernel mode rootkits và hooking techniques Việc sử dụng DLL injection làm cho việc phát hiện nhiễm rootkit ở chế độ người dùng tương đối dễ dàng hơn. Nhưng rootkit chế độ hạt nhân hoàn toàn là một con thú khác. Nó nằm ở cùng cấp với hầu hết các phần mềm phát hiện phần mềm độc hại và có thể tránh bị phát hiện bằng cách tự thay đổi các phần của mã nhân. Một rootkit chế độ nhân có thể thực hiện các thay đổi đối với hệ thống bằng cách sử dụng một số kỹ thuật nối khác nhau. Bao gồm các: 5.1 Ổ cứng SSDT Trong Windows, các lệnh gọi hệ thống tới hạt nhân được quản lý theo Bảng điều phối dịch vụ hệ thống hoặc SSDT. Bảng này chứa các địa chỉ bộ nhớ quan trọng của các hàm chính được gọi. Nếu rootkit có được quyền truy cập hạt nhân, nó có thể thực hiện các thay đổi đối với SSDT, với kết quả tương tự như trong IAT hooking. 5.2 IDT hooking Chế độ nhân của Windows cũng chứa Bảng mô tả ngắt (IDT) để xử lý mọi ngắt do phần mềm hoặc phần cứng gây ra. Một ví dụ đơn giản sẽ là một ngắt phần cứng do bàn phím gây ra. Một rootkit có thể sử dụng IDT hooking để thu thập thông tin quan trọng, bao gồm cả dữ liệu bàn phím.
- vừa được xem lúc
ROOTKIT và Các loại Rootkit
0 0 10
Người đăng: Retired Contribute
Theo Viblo Asia