1
Luận văn: Cách tiếp cận mới về virus máy tính,
Bảo vệ năm 2012
MỤC LỤC
Trang
LỜI NÓI ĐẦU 3
Chương 1 TỔNG QUAN VỀ VIRUS VÀ HACKER 6
1.1. Tổng quan về Virus 6
1.1.1. Virus là gì 6
1.1.2. Các loại virus máy tính 6
1.2. Tổng quan về Hacker 10
1.2.1. Hacker là gì 10
1.2.2. Phân loại Hacker 11
Chương 2 CÁCH TIẾP CẬN MỚI VỀ VIRUS 14
2.1. Đặc trưng về tần số 14
2.2. Đặc trưng về thời gian 15
2.3. Đặc trưng về kích thước 16
2.4. Hướng giải quyết 17
Chương 3 THỰC NGHIỆM 19
3.1. Phân tích chức năng chương trình 19
3.1.1. Chức năng liệt kê 19
3.1.1.1. Liệt kê các phần mềm đã cài trong máy tính 19
3.1.1.2. Liệt kê các tiến trình đang hoạt động 20
3.1.2. Chức năng loại bỏ 22
2
3.1.2.1. Kết thúc tiến trình đang hoạt động 23
3.1.2.2. Tìm kiếm, thống kê, loại bỏ file 24
3.2. Thực nghiệm 26
nguy hiểm như: Chiếm quyền điều khiển hệ thống, không cho hiển thị file ẩn, tự
động cài đặt những phần mềm quảng cáo, liên tục mở những trang web lạ, những
trang web không lành mạnh… Chúng ta có thể dựa trên những đặc trưng chung
4
này và những hành động của chúng để đưa ra kết luận đó có phải là virus hay
không.
Vấn đề này cũng đã được một vài tác giả đề cập đến [3], tuy nhiên mới chỉ
dừng ở nghiên cứu một đặc tính của virus: đưa ra cảnh báo nguy hiểm với những
tệp có số lần xuất hiện quá 3 lần. Vì cách tiếp cận là đơn giản, nên kết quả thực
nghiệm chưa thực sự thuyết phục.
Từ những phân tích trên em xin mạnh dạn lựa chọn đề tài “Một số cách
tiếp cận mới về bảo mật máy tính” làm khóa luận tốt nghiệp của mình.
2. Mục đích nghiên cứu
Nghiên cứu về phát hiện virus dựa trên đặc trưng và hành vi.
3. Nhiệm vụ nghiên cứu
- Tìm hiểu tổng quan về virus và hacker;
- Nghiên cứu lý thuyết về phát hiện virus dựa trên đặc trưng và dựa trên
hành vi;
- Cài đặt chương trình thử nghiệm.
4. Phương pháp nghiên cứu
- Nghiên cứu lý thuyết;
- Tiến hành thực nghiệm;
- Tham khảo ý kiến chuyên gia.
5. Cấu trúc đề tài
Khóa luận bao gồm ba chương:
Chương 1: Tổng quan về virus và hacker.
Chương 2: Cách tiếp cận mới về virus.
Chương 3: Thực nghiệm.
7
điều hành được nạp lên [3].
8
1.1.2.2. File virus
Là những virus lây vào những file chương trình, phổ biến nhất là trên hệ
điều hành Windows, như các file có đuôi mở rộng .com, .exe, .bat, .pif, .sys
Khi ta chạy một file chương trình đã bị nhiễm virus cũng là lúc virus được kích
hoạt và tiếp tục tìm các file chương trình khác trong máy tính để lây vào [3].
1.1.2.3. Macro virus
Là loại virus lây vào những file văn bản (Microsoft Word), file bảng tính
(Microsoft Excel) hay các file trình diễn (Microsoft Power Point) trong bộ
Microsoft Office. Macro là tên gọi chung của những đoạn mã được thiết kế để bổ
sung tính năng cho các file của Office. Chúng ta có thể cài đặt sẵn một số thao
tác vào trong macro, và mỗi lần gọi macro là các phần cài sẵn lần lượt được thực
hiện, giúp người sử dụng giảm bớt được công lặp đi lặp lại những thao tác giống
nhau. Có thể hiểu việc dùng Macro giống như việc ta ghi lại các thao tác, để rồi
sau đó cho tự động lặp lại các thao tác đó bằng một yêu cầu duy nhất.
Ngày nay, trên thực tế các loại Macro virus cũng gần như “tuyệt chủng” và
hầu như không ai còn sử dụng đến các macro nữa [3].
1.1.2.4. Worm (sâu)
Worm (sâu) là loại virus có sức lây lan rộng, nhanh và phổ biến nhất hiện
nay. Worm kết hợp cả sức phá hoại của virus, đặc tính âm thầm của Trojan và
hơn hết là sự lây lan đáng sợ mà những kẻ viết virus trang bị cho nó để trở thành
một kẻ phá hoại với vũ khí tối tân. Tiêu biểu như Mellisa hay Love Letter. Với
sự lây lan đáng sợ chúng đã làm tê liệt hàng loạt hệ thống máy chủ, làm ách tắc
đường truyền Internet.
Với sự lây lan nhanh và rộng lớn như vậy, Worm thường được cài thêm
nhiều tính năng đặc biệt, như khả năng định cùng một ngày giờ và đồng loạt từ
Phần mềm quảng cáo bất hợp pháp - Adware và phần mềm gián điệp -
Spyware: Thay đổi trang web mặc định (home page), các trang tìm kiếm mặc
định (search page)… hay liên tục tự động hiện ra (popup) các trang web
quảng cáo khi bạn đang duyệt web. Chúng thường bí mật xâm nhập vào máy
của bạn khi bạn “ghé thăm” những trang web có nội dung không lành mạnh,
các trang web bẻ khóa phần mềm… hoặc chúng đi theo các phần mềm miễn
phí không đáng tin cậy hay các phần mềm bẻ khóa (crack, keygen) [2, tr4].
1.1.2.6. Rootkit
Rootkit là bộ công cụ phần mềm thường được người viết ra nó sử dụng để
che giấu sự tồn tại và hoạt động của những tiến trình hoặc những file mà họ
mong muốn.
Đặc điểm của Rootkit là có khả năng ẩn các tiến trình, file và cả dữ liệu
trong registry (với Windows). Nếu chỉ dùng những công cụ phổ biến của hệ điều
hành như "Registry Editor", "Task Manager", "Find Files" thì không thể phát
hiện ra các file và tiến trình này.
Ngoài ra nó còn có thể ghi lại các thông số về kết nối mạng, ghi lại các
phím bấm (giữ vai trò của keylogger). Cũng có thể Rootkit được dùng trong
những việc tốt, nhưng trong nhiều trường hợp, Rootkit được coi là Trojan vì
chúng có những hành vi như nghe trộm, che giấu hoặc bị lợi dụng để che giấu
các chương trình độc hại [3].
1.2. Tổng quan về Hacker
1.2.1. Hacker là gì
11
Hacker là người có thể viết hay chỉnh sửa phần mềm, phần cứng máy tính
bao gồm lập trình, quản trị và bảo mật. Những người này hiểu rõ hoạt động của
hệ thống máy tính, mạng máy tính và dùng kiến thức bản thân để làm thay đổi,
chỉnh sửa nó với nhiều mục đích tốt xấu khác nhau. [3].
1.2.2. Phân loại Hacker
Có nhiều tiêu chí để phân loại Hacker, trong phần này chúng ta sẽ phân loại
13
Ở những chương tiếp theo, đề tài sẽ trình bày một số cách tiếp cận mới về
virus máy tính.
Nội dung bảo mật liên quan đến hacker có thể được hiểu đơn giản như sau:
dựa vào đặc trưng về hành vi (vượt tường lửa, giả mạo,…), về cấu trúc các gói
tin truyền và nhận trên mạng, từ đó hệ thống bảo mật tiến hành ngăn chặn hoặc
đưa ra cảnh báo cho người quản trị. Để giải quyết những vấn đề như vậy, chương
trình bảo mật cần có chức năng “Chặn, bắt và phân tích các gói tin”. Nội dung lý
thuyết chuyên sâu và những thực nghiệm về vấn đề này vượt ngoài phạm vi
nghiên cứu của đề tài. 14
Chương 2
CÁCH TIẾP CẬN MỚI VỀ VIRUS
Hiện nay, virus máy tính ngày càng phát triển nhanh, mạnh và phức tạp.
Chúng xóa sạch các thông tin trên ổ cứng, làm tắc nghẽn lưu lượng mạng, phát
tán thư rác, ăn cắp các thông tin cá nhân, cài đặt lén lút các phần mềm quảng
cáo, gây ra lỗi phần cứng… Để ngăn chặn virus, cần phải sử dụng những phần
mềm diệt virus đủ mạnh, và phải thường xuyên cập nhật những phiên bản mới.
Nhưng điều đó không đảm bảo là máy tính của chúng ta sẽ thoát khỏi sự phá
hoại của virus. Bởi hàng ngày có hàng trăm loại virus mới ra đời nên các phần
mềm diệt virus khó có thể cập nhật hết. Điều này dẫn đến trường hợp virus thâm
nhập, phá hoại dữ liệu thì chương trình diệt virus mới phát hiện được. Nguyên
nhân là bởi hầu hết các chương trình diệt virus hiện nay đều sử dụng phương
pháp so mã để phát hiện virus [2, tr2].
Virus có những đặc trưng riêng như đặc trưng về tần số xuất hiện, đặc trưng
về thời gian tạo lập, về kích thước… Vì vậy, thay vì sử dụng phương pháp so
mã, chúng ta có thể căn cứ vào những đặc trưng, những hành vi mà chương trình
là có. Chẳng hạn, một tệp văn bản có thể có nhiều phiên bản khác nhau. Nhưng
những phiên bản này sẽ có sự khác biệt về thời gian tạo lập lớn.
Dựa vào những phân tích trên ta có đưa thêm cách phát hiện virus như sau:
Nếu một file xuất hiện quá n lần và thời gian tạo lập của nó là như nhau thì ta có
thể kết luận file đó là virus.
Từ ý tưởng trên ta xây dựng thành thuật toán như sau:
Giả sử ta có một file xuất hiện n lần
16
- B1: Ta tính thời gian tạo lập trung bình của n file đó (bằng tổng thời gian
tạo lập của n file chia cho n).
- B2: Lấy một file có thời gian tạo lập lớn nhất rồi so sánh với thời gian
tạo lập trung bình để tính độ lệch về mặt thời gian.
- B3: Nếu độ lệch thời gian bằng 0. Điều này có nghĩa là các file trên được
tạo ra trong cùng một khoảng thời gian, nguy cơ file này là virus rất cao. Ngược
lại, nếu độ lệch thời gian khác 0 thì có thể những file này là file có thể do người
dùng tạo ra.
2.3. Đặc trưng về kích thước
Như đã nói ở trên virus copy một file thành hàng nghìn file trong một thời
gian ngắn nên kích cỡ các file sẽ hoàn toàn giống nhau.
Với người dùng, cho dù muốn nhân bản để lưu trữ dữ liệu thì cũng không
thể dẫn đến tình huống như xảy ra với virus.
Vì vậy: Nếu một file nào đó xuất hiện quá n lần và kích thước của chúng là
như nhau thì ta có thể kết luận file đó là virus.
Ta xây dựng thuật toán tương tự như trên:
Giả sử có một file xuất hiện n lần
- B1: Tính kích thước trung bình của n file đó (bằng tổng kích thước của n
file chia cho n).
- B2: Lấy một file có kích thước lớn nhất rồi so sánh với kích thước trung
bình để tính độ lệch về kích thước.
18
+ Nếu tần suất lớn hơn 1 và các file có kích thước khác nhau thì điểm
kích thước = 1000/độ lệch kích thước. Trong đó, độ lệch kích thước =
|file có kích thước lớn nhất – kích thước trung bình| (chọn số 1000 là
dựa trên phân tích: một file virus thường có kích thước khá nhỏ, giả sử
là 1KB xấp xỉ bằng 1000byte (độ lệch kích thước tính theo byte). Lấy
1000 chia cho độ lệch kích thước nhằm làm cho điểm kích thước nhỏ
hơn 3 chữ số trong trường hợp không phải virus).
19
Chương 3
THỰC NGHIỆM
3.1. Phân tích chức năng chương trình
Chương trình có hai chức năng chính là: Liệt kê và xóa bỏ đối tượng (tệp,
tiến trình).
3.1.1. Chức năng liệt kê
Hình 3.1. Giao diện chính của chương trình
3.1.1.1. Liệt kê các phần mềm đã cài trong máy tính
20
Như chúng ta đã biết một trong những mục đích của virus khi xâm nhập vào
máy tính là cài đặt lén lút các phần mềm, có thể là phần mềm quảng cáo hay các
phần mềm gián điệp nhằm ăn cắp thông tin cá nhân của người dùng. Vì vậy liệt
kê các phần mềm đã được cài đặt vào máy tính là một chức năng hết sức cần
thiết để người dùng phát hiện xem có phần mềm lạ nào xuất hiện hay không.
Những phần mềm đó có thể là do virus cài đặt vào từ đó người dùng sẽ có những
xử lý thích hợp.
3.1.2.1. Kết thúc tiến trình đang hoạt động
24
Hình 3.5. Giao diện chương trình “Kill process”
Đối với chức năng kết thúc tiến trình đang hoạt động. Để tránh việc người
dùng vô tình đóng những tiến trình của hệ thống làm máy tính không hoạt động
được thì trong chức năng này chỉ cho phép liệt kê những tiến trình đang hoạt
động của người dùng.
Để kết thúc tiến trình trước hết ta phải biết người dùng đang chạy những
tiến trình nào. Ta nhấn List Process để liệt kê tất cả tiến trình của người dùng,
sau đó muốn kết thúc tiến trình nào thì tích vào ô bên cạnh tiến trình đó, rồi nhấn
Kill Process.
3.1.2.2. Tìm kiếm, thống kê, loại bỏ file
25
Hình 3.6. Giao diện chương trình “Kill File”
Trong chương trình này chúng ta cần hiểu ý nghĩa của một số nút lệnh
- Find File: Tìm kiếm file trong thư mục theo loại file. Kết quả sẽ được
hiển thị trên danh sách bên trái theo thứ tự tên file giảm dần.
- Kill File: Xóa bỏ những file được đánh dấu (tick) trong danh sách bên
trái. Việc xóa file ở đây được hiểu là xóa file vĩnh viễn (không đưa vào thùng
rác).
- Frequency: Là thanh trượt dùng để lựa chọn tần số xuất hiện của file.
- File Statistics: Nút lệnh này sẽ thống kê những file xuất hiện không ít hơn
số lần đã chọn trên thanh trượt, kết quả sẽ được hiển thị trên danh sách bên phải
theo thứ tự độ nguy hiểm giảm dần (cách tính độ nguy hiểm đã được nói rõ trong
chương 2).
- Good File: Là chức năng lựa chọn file tốt. Đây là một phần giao tiếp với