Tải bản đầy đủ (.pdf) (2 trang)

043_Phân tích thiết kế và xây dựng hệ thống phòng chống virus thông minh dựa trên hành vi hoạt động của Virus

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (161.2 KB, 2 trang )

-18-

PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG DIỆT VIRUS THÔNG
MINH DỰA TRÊN HÀNH VI CỦA NÓ

Đoàn Văn Công
MSV: 0320037
Email:
Cán bộ hướng dẫn: ThS. Nguyễn Cảnh Hoàng

1. Giới thiệu
Trong thời đại công nghệ thông tin ngày
càng phát triển mạnh, yêu cầu bảo mật dữ liệu
ngày càng được quan tâm và tập trung nhiều
công sức. Cùng với công nghệ thông tin cũng
như vấn đề bảo mật virus - một loại chương
trình với mục đích xấu phá hại hoặc ăn trộm
thông tin của nạn nhân cũng ra đời và phát triển
mạnh mẽ.
Hiện chưa có chương trình hoàn hảo để phát
hiện và loại trừ virus một cách triệt để. Phương
pháp cũ, nhận dạng virus dựa trên chữ ký của
virus giờ đã quá “già” trước “sức trẻ” của virus.
Trong khóa luận, chúng ta sẽ tập trung vào
công nghệ mới nhất hiện nay nhằm phát hiện và
loại trừ virus: Diệt virus thông minh dựa trên
hành vi ứng xử của chương trình mà đưa ra các
quyết định tương ứng.
Trong khóa luận chúng ta tập trung nghiên
cứu trên hệ điều hành window, các hệ điều
hành khác có thể có cách xử lý hơi khác nhưng


nguyên lý là như nhau.
2. Cơ sở lý thuyết
Hệ điều hành có cấu trúc 4 vòng, từ ngoài
vào trong với quyền của từng vòng tăng theo
thứ tự đó, vòng ngoài cùng có quyền ít nhất và
quyền của vòng trong cùng lớn nhất - có khả
năng điều khiển toàn bộ phần m
ềm cũng như
phần cứng. Muốn kiểm soát được hành động
của các chương trình khác phải nâng quyền của
tiến trình diệt virus, đồng thời phải can thiệp
vào giữa chương trình và hệ điều hành, kiểm
soát các hành động nhạy cảm trước khi nó được
thực hiện.
Các chương trình ứng dụng tương tác với hệ
điều hành thông qua các hàm API. Điều này
đưa đến một ý tưởng: kiểm soát các chương
trình ứng dụng thông qua việc ngăn chặn, đổi
hướng các hàm API. Việc ngăn chặn đổi hướng
API được gọi là Hook API.
Không giống như các hệ điều hành họ
Linux, Window không cung cấp tập hàm cho
phép hook API trực tiếp. Để làm được điều này

trước hết phải nghiên cứu cụ thể quá trình
tương tác giữa chương trình ứng dụng và nhân
hệ điều hành, ngoài ra cũng cần nghiên cứu cấu
trúc các file thực thi, từ đó đưa ra phương pháp
tốt nhất để có thể kiểm soát được các API.
Cấu trúc file thực thi gồm có 3 phần, phần

đầu là phần tiêu đề (PE Header) lưu giữ thông
tin về tác giả, thời gian tạo lập... Đồng thời lưu
trữ một bảng con trỏ API gọi là Import Table.
Hệ điều hành cũng lưu trữ một bảng tương
tự gọi là System Import Table.
Khi một API được gọi, chương trình ứng
dụng tìm địa chỉ API đó trong Import Table, đặt
các tham số vào Stack và thực hiện lệnh Call
tới địa chỉ vừa tìm được. Chính xác hơn lệnh
Call này trỏ tới System Import Table. Từ
System Import Table hệ điều hành tìm được địa
chỉ thực của API trong Kernel và thực thi API.
3. Phương pháp giải quyết dựa trên cơ sở lý
thuyết

Trên cơ sở lý thuyết đó, việc đầu tiên là
nâng quyền cho tiến trình thực thi việc can
thiệp vào chương trình ứng dụng.
Việc này được thực hiện thông qua một
driver do driver có khả năng điều khiển cả phần
cứng lẫn phần mềm.
Khó khăn hơn là việc chiếm quyền kiểm
soát các API từ ứng dụng. Dựa trên cơ chế gọi
hàm API chúng ta có thể thay thế để có thể
kiểm soát ở một trong hai vị trí:
+ Thay địa chỉ các API trong Import Table,
thay vì chỉ tới System Import Table, Import
Table sẽ chỉ tới Module tiến trình diệt virus, sau
đó Module tiến trình diệt virus trỏ tới System
Import Table. Cách thực hiện như vậy được gọi

là Hook API User Mode do nó thực hiện đối
với các chương trình ứng dụng, sâu hơn là các
Module được tải từ ứng dụng. Việc này cần
phải kiểm soát quá trình các chương trình ứng
dụng hay các Module được tải vào bộ nhớ.
+ Thay địa chỉ các API trong System Import
Table. Thực hiện theo cách này gọi là Hook
API Kernel Mode do chỉ cần thay 1 lần, không
-19-

cần quan tâm để ý việc có bao nhiêu tiến trình
đang hoạt động, tiến trình hay module được nạp
khi nào ...
Khi chiếm được việc kiểm soát hành động
của chương trình, chúng ta đưa ra 2 thuật toán
cơ bản nhất, nghiên cứu đưa ra kết luận đâu là
virus đơn giản về cả cấu trúc lẫn cài đặt nhưng
không kém hiệu quả:
a)
Xác định virus dựa trên độ nguy hiểm
trung bình
+ Mỗi hành động nguy hiểm được đánh một
trọng số.
+ Sau mỗi khoảng thời gian, chúng ta kiểm
tra so sánh độ nguy hiểm trung bình có được
trong khoảng thời gian đó với giá trị giới hạn.
Chương trình ứng dụng là virus nếu độ nguy
hiểm trung bình vượt giới hạn.
calulateTime isVirus


Cải tiến: khoảng calculateTime động, quá trình
kiểm tra virus diễn ra mỗi khi hành động nguy
hiểm được thực hiện:
caculateTime isVirus

k – n k

k – n + 1 k + 1
b)
Xác định virus dựa trên tần số thực
hiện hành động nguy hiểm
Thuật toán này đặt giới hạn cho mỗi loại
hành động nhạy, giới hạn này được dùng để so
sánh kiểm tra xác thực virus. Khi chương trình
ứng dụng là virus nếu nó thực hiện hành động
nhạy cảm với tần số lớn hơn tần số cho phép.
Mỗi lần, chương trình ứng dụng thực thi
hành động nguy hiểm, tầ
n số trung bình được
cập nhật đồng thời hàm isVirus được kiểm tra.
caculateTime isVirus

k – 1 k

c)
Kết hợp hai thuật toán cho thuật toán
bù đắp hạn chế cả hai thuật toán.

Mỗi khi chương trình thực hiện hành vi
nguy hiểm, bước kiểm tra có phải là virus được

thực hiện tương tự hai thuật toán, tuy nhiên ở
đây giá trị so sánh được tính bằng tích hai giá
trị và giá trị giới hạn bằng tích hai giá trị giới
hạn.
4.
Khôi phục hệ thống đã bị nhiễm virus

a.
Nhiễm virus thông thường

- Chiếm quyền giống như chưa bị virus
- Ngăn chặn và loại bỏ virus
b. Nhiễm Rootkit
- Rootkit có cơ chế hoạt động tương tự tiến
trình diệt virus
- Unhook API do Rootkit hook trước khi
tiến hành loại bỏ virus bằng cách sửa lại Import
Table và System Import Table
- Loại bỏ Rootkit giống như các virus thông
thường.
5.
Thực nghiệm

Tôi đã thực hiện cài đặt hệ thống với bài
toán đơn giản kiểm soát đối với một số hành
động nghi vấn:
+ Thực thi như các file autorun trong các
thiết bị di động USB Flash
+ Tự copy chính mình (tự sao)
+ Đặt mình vào hàng đợi khởi động cùng hệ

thống
+ Đăng ký kiểm soát hành động bàn phím
Kết quả thực nghiệm cho thấy việc nắm bắt,
kiểm soát theo hành vi thích hợp tối đa đối với
các mẫu virus mới chưa được phát hiện, đồng
thời giúp người dùng kiểm soát việc sử dụng
các thiết bị, giảm bớt nỗi lo ngại lây nhiễm
virus.
6. Kết luận
Trong khóa luận này tôi đã thực hiện việc
nghiên cứu cách tương tác của chương trình
ứng dụng với hệ điều hành, từ đó tìm ra cơ chế
kiểm soát từ đó can thiệp, tìm ra đâu là virus
dựa trên chính những hành động đó.
k k + 1

×