Bài giảng An toàn hệ điều hành - Rootkit
ROOTKIT
1
Rootkit là gì?
ꢀ Rootkit là một "kit" gồm các chương trình nhỏ và
hữu dụng cho phép attacker duy trì việc truy xuất
đến root (user có quyền lực nhất trên máy tính).
ꢀ Rootkit là một tập chương trình cho phép duy trì
sự hiện diện lâu dài và chắc chắn trên máy tính
mà không bị phát hiện bởi các phương tiện quản
trị và an ninh thông thường.
2
Các dịch vụ được cung cấp bởi Rootkit
ꢀ Command and Control (C2)
ꢀ Surveillance (giám sát thu thập)
ꢀ Concealment (che giấu)
3
Rootkit là Post-Intrusion Tool
4
Rootkit hoạt động như thế nào?
ꢀ Rootkits làm việc dựa trên phương thức sửa đổi.
ꢀ Xác định và sửa đổi các phần mềm khiến cho
chúng đưa ra các quyết định sai lầm.
ꢀ Có nhiều chỗ có thể sửa đổi trong phần mềm.
5
Patching
ꢀ Software logic có thể bị thay đổi nếu các data
byte bị sửa đổi. Kỹ thuật này được gọi là patching
ꢀ Byte patching là một trong những kỹ thuật chính
được dùng bởi các hoạt động bẻ khóa phần
mềm.
6
Easter Eggs
ꢀ Sự thay đổi software logic có thể được thiết lập một
cách cố ý từ đầu.
ꢀ Người lập trình có thể đặt một back door trong
chương trình do họ viết ra.
ꢀ Back door này không được trình bày trong tài liệu và
nó là đặc tính bị giấu.
ꢀ Dạng này được gọi là Easter Egg.
ꢀ Có thể được dùng như chữ ký
7
Spyware Modifications
ꢀ Một chương trình sẽ sửa đổi chương trình khác
để chèn vào một spyware. Ví dụ spyware theo
dõi các website là người dùng truy cập.
ꢀ Khó phát hiện spyware
ꢀ Ví dụ: spyware đánh lừa các trình duyệt hay
shell, rất khó xóa chúng.
8
Source-Code Modification
ꢀ Người lập trình có thể chèn vào mã nguồn các
dòng mã độc.
ꢀ Một back door được thực hiện như một bug trong
phần mềm. Ví dụ một chương trình bị cài một lỗ
hổng buffer overflow.
ꢀ Khó phát hiện vì xem như một bug
9
Sửa đổi trong User Mode
10
Sửa đổi trong Kernel Mode
11
Các thủ thuật thông thường
Mu
̣
́
̀
̀
đă
̣
̀
̣
Sửa Data
• Call Tables
• Kernel Objects
Sửa Code có sẵn
• In-Place Patching
• Detour Patching
Đệ trình Code mới
• Filter Drivers
• Hypervisors
• DLL & Thread Injection
• COM & BHO Objects
12
Call Tables
ꢀ Là mảng của các con trỏ hàm (function pointers)
13
Kernel Objects
ꢀ Không phải đối tượng như trong lập trình hướng
đối tượng
ꢀ Là sự trừu tượng hóa tài nguyên hệ thống
ꢀ Được hiện thực như một cấu trúc trong C
ꢀ Ví dụ: nt!_EPROCESS, nt!_DRIVER_OBJECT,
nt!_TOKEN
ꢀ Có thể kiểm tra bằng kernel debugger
14
In-Place Patching
Có thể thay đổi code mà không phải thay đổi hướng thực thi
Thay je SHORT $LN2@routine (đó là 0x74 0x24)
bởi
NOP NOP
(đó là 0x90 0x90)
Code ở trong ngoặc luôn được thực thi!
15
Detour Patching
Trampoline là tấm bạt che giấu
16
Filter Drivers (1/2)
ꢀ Filter driver được chèn vào một stack hiện hữu
17
Filter Drivers (2/2)
ꢀ Can thiệp và sửa đổi các IRP (I/O Request Packet)
đi qua chúng
18
DLL & Thread Injection
ꢀ Cách hiệu quả, Microsoft đã cài đặt các chức năng
chống lại như UIPI*
19
Những gì không phải là rootkit
ꢀ Rootkit không phải là Exploit
ꢀ Rootkit không phải là Virus
Virus Problem
Các virus áp dụng công nghệ rootkit, do đó càng
khó phát hiện và ngăn chặn
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An toàn hệ điều hành - Rootkit", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_he_dieu_hanh_rootkit.pdf

