1.1. Giới thiệu đềtài
1.1.1. Lý do chọn đềtài
Ngày nay công nghệthông tin trởthành một lĩnh vực mũi nhọn trong công
cuộc phát triển kinh tếxã hội. Cùng với công nghệsinh học và năng lượng mới,
công nghệthông tin (CNTT) vừa là công cụ, vừa là động lực thúc đẩy quá trình
công nghiệp hóa, hiện đại hóa đất nước. Trong giai đoạn hội nhập quốc tế, CNTT
giữvai trò đặc biệt quan trọng trong việc xửlý tính toán dữliệu, kết nối thông tin
liên lạc của các đơn vịtổchức trong và ngoài nước. Bảo vệan toàn dữliệu cho các
hệthống tính toán, giữvững an ninh mạng, đảm bảo liên lạc thông suốt, duy trì chất
lượng phục vụluôn là vấn đềquan tâm hàng đầu của các nhà quản trịhệthống.
Sựphát triển của Internet tạo điều kiện cho các loại hình xâm nhập luận lý
trái phép vào các hệthống CNTT cảchiều rộng (lây lan trên quy mô toàn thếgiới)
và chiều sâu (can thiệp vào hạt nhân hệthống đích). Mỗi ngày các hệthống mạng
phải đối phó với hàng loạt đợt tấn công bằng mã độc (malicious, harmful code) của
tin tặc, khiến nhiều hệthống bị đình trệ, tắc nghẽn và tê liệt; gây thiệt hại không
nhỏ. Dựán nghiên cứu vềsự phát triển toàn cầu của Viện Hàn lâm Công nghệQuốc
gia Mỹ(National Academy of Engineering, USA - 2008) nhận định vấn đềan ninh
thông tin và virus máy tính là một trong 14 thách thức công nghệlớn nhất của thế
kỷ21 mà nếu giải quyết được, cuộc sống con người sẽ được cải thiện đáng kể[92].
Virus máy tính (từ đây gọi tắt là virus, phân biệt với từ“virút” trong y học) thực sự
trởthành mối đe dọa thường xuyên và cấp bách của các hệthống CNTT hiện nay.
Trong bối cảnh đó, đềtài “Tiếp cận Máy học và Hệchuyên gia đểnhận
dạng, phát hiện virus máy tính” được tiến hành nhằm góp phần giải quyết vấn đề
bảo vệan toàn dữliệu cho các hệthống CNTT ởViệt Nam.
1.1.2. Mục tiêu của đềtài
Đểphòng chống virus máy tính, các hệthống CNTT sửdụng các phần mềm
chống virus (anti-virus, gọi tắt là AV). Qua khảo sát, phần lớn các AV chỉphát huy
tác dụng trên các mẫu virus xác định, khảnăng dự đoán virus mới còn hạn chếnên
thường bị động khi có dịch virus bùng phát.
Trên cơsởxác định loại hình nghiên cứu của đềtài là nghiên cứu ứng dụng,
mục tiêu của đềtài là tìm giải pháp cho bài toán nhận dạng virus máy tính và lựa
chọn mô hình thích hợp đểxây dựng HệPhòng chống virus máy tính hướng tiếp
cận Máy học và Hệchuyên gia MAVES - Machine Learning Approach to Anti-Virus Expert System(gọi tắt là MAV) với các chỉtiêu cơbản:
- Nhận dạng nhanh, phát hiện chính xác các trường hợp lây nhiễm, tiềm ẩn của
các virus đã biết trên hệthống đích.
- Có khảnăng dựbáo biến thểvirus; ngăn chận kịp thời, chủ động phòng tránh
các tình huống lây nhiễm khi hệthống chưa cập nhật mẫu virus mới.
1.1.3. Các giai đoạn thực hiện đềtài
Quá trình nghiên cứu đềtài được tiến hành qua các bước nhưsau:
• Giai đoạn 1 - Thu thập dữliệu: Khảo sát tình hình thực tiễn, thu thập dữliệu
(mẫu virus, các phần mềm diệt virus trong nước và nước ngoài, các bài viết,
tài liệu liên quan ). Nghiên cứu tài liệu, tìm hiểu các phương pháp, tiếp cận
đã biết, tham khảo các anti-virus đang sửdụng phổbiến. Phác họa bức tranh
tổng thể, tìm hiểu các công nghệnhận dạng virus máy tính qua các thời kỳ.
• Giai đoạn 2 - Phân loại dữliệu: Sắp xếp, phân loại, tìm hiểu đặc điểm dữ
liệu, cơchếlây nhiễm của từng loại virus trên vật chủtương ứng. Sàng lọc,
loại bỏdữliệu dưthừa (các mẫu virus “chết” hoặc không phù hợp với môi
trường, điều kiện nghiên cứu ). Bổsung, làm giàu dữliệu từnhiều nguồn
khác nhau (dữliệu mẫu của các lớp vật chủ, tập chỉthịthi hành ).
• Giai đoạn 3 - Xửlý dữliệu: Dựa vào các lớp dữliệu đã phân loại, lựa chọn,
sắp xếp dữliệu, xây dựng các mô hình, công cụxửlý thích hợp trên cơsởlý
thuyết máy học. Phân tích, nhận xét, đánh giá hiệu quảcủa từng mô hình.
• Giai đoạn 4 - Tổng kết: Khái quát hóa và rút ra kết luận chung cho đềtài.
Viết báo cáo, công bốkết quảnghiên cứu đềtài.
1.2. Đối tượng, phạm vi nghiên cứu của đềtài
1.2.1. Virus máy tính và các hệthống đích
Có ba vấn đềcân nhắc khi nghiên cứu virus máy tính là môi trường (hệ điều
hành, kiến trúc máy), phương tiện (vật chứa tin, cơchếlan tỏa) và cơhội (cộng
đồng sửdụng, tần suất kích hoạt, kỹthuật lây lan ). Mặc dù có nhiều loại virus
máy tính lây nhiễm trên nhiều hệthống và môi trường khác nhau, nhưng do tính
phổbiến của Windows nên virus máy tính trên hệ điều hành này cũng nhiều hơn.
Để đáp ứng nhu cầu thực tếbức thiết, đềtài tập trung nghiên cứu các loại virus máy
tính hoạt động trên các hệ điều hành (HĐH) Windows 9x/Me và Windows
NT/2000/XP dành cho máy tính IBM-PC (máy vi tính cá nhân đểbàn hoặc xách
tay, sửdụng kiến trúc vi xửlý x86/Pentium hoặc tương thích).
Mặc dù vậy, đềtài cũng được định hướng nghiên cứu đểcó thểmởrộng kết
quảnghiên cứu cho các hệanti-virus sửdụng các HĐH khác Windows.
1.2.2. Các hệhọc và khám phá tri thức
Con người đã tốn rất nhiều công sức đểgiải quyết bài toán nhận dạng virus
máy tính. Tuy nhiên, các anti-virus vẫn chưa làm chủ được tình hình. Virus máy
tính vẫn liên tục quấy nhiễu, thâm nhập mạng, đánh cắp thông tin, làm sai lệch dữ
liệu nhiều hệthống CNTT trên thếgiới.
Virus máy tính là sản phẩm của con người. Cuộc chiến giữa AV và virus
máy tính là cuộc đấu trí giữa chuyên gia hệthống và tin tặc, là trò chơi trí tuệ của
con người. Xuất phát từnhận định này, đềtài chọn cách phối hợp tiếp cận dựa trên
tri thức (knowledge based) và tiếp cận học (machine learning) đểtìm lời giải cho
bài toán nhận dạng virus máy tính. Đểkiểm tra và đánh giá kết quả, một phần mềm
thực nghiệm sẽ được thiết kếtrên mô hình các hệkhám phá tri thức nhằm phát hiện
các quy luật hình thành virus mới từcơsởdữliệu (CSDL) virus đã biết.
1.2.3. Các hệchuyên gia
Các hệchuyên gia là một loại hệcơsởtri thức (CSTT) được thiết kế đểphần
mềm máy tính hoạt động nhưmột chuyên gia (human expert) thực thụtrong một
lĩnh vực cụthể. Dựa trên tri thức, hệchuyên gia cho phép mô hình hóa tri thức của
chuyên gia (kiến thức, kinh nghiệm, lời khuyên ) đểgiải quyết các vấn đềphức
tạp trong từng lĩnh vực.
Trong y học, bác sĩcần khám bệnh đểbiết nguyên nhân (người bệnh nhiễm
loại virút gây bệnh nào, đặc điểm ra sao), chẩn đoán bệnh (dựa vào triệu chứng, xác
định bệnh), xét các điều kiện ràng buộc (sức khoẻbệnh nhân, trang thiết bịy tế, chi
phí cho phép ) và lựa chọn phương pháp chữa trị(phác đồ điều trị, công nghệxử
lý bệnh ).
Trong tin học, virus máy tính là tác nhân gây bệnh và các anti-virus là
“thuốc” chữa bệnh cho máy tính. Do “bệnh nhân” (máy tính nhiễm virus) không thể
đến “bệnh viện” (phòng nghiên cứu phần mềm) để được các “bác sĩ” (chuyên gia
anti-virus) khám chữa trịbệnh, giải pháp của đềtài là xây dựng một hệcơsởtri
thức vềvirus máy tính nhằm tưvấn chữa bệnh cho máy dựa trên kinh nghiệm của
chuyên gia anti-virus đã tích hợp trong hệthống.
1.3. Ý nghĩa khoa học và thực tiễn của đềtài
Giống nhưtrong công tác vệsinh dịch tễ, trong lĩnh vực phòng chống virus
máy tính, phòng bệnh vẫn là chủyếu với các hoạt động cơbản: nhận dạng bệnh cũ
và dựbáo bệnh mới. Các hoạt động này đều dựa vào các kỹthuật chủ đạo của lớp
bài toán nhận dạng. Giải quyết vấn đềan toàn dữliệu, đềtài nhận dạng virus máy
tính hướng tiếp cận máy học còn làm phong phú thêm tập lời giải cho các bài toán
nhận dạng cùng loại và có thểmởrộng đểnhận dạng các đối tượng biến đổi.
Ởnước ta mặc dù đã có nhiều đềtài nghiên cứu vềvirus máy tính, nhưng
chưa có công trình nào đềcập và giải quyết bài toán nhận dạng biến thểvirus máy
tính một cách khoa học và toàn diện. Không chỉdừng lại ởviệc nghiên cứu lý
thuyết, đềtài cũng đặt ra mục tiêu thực tiễn là xây dựng một hệphần mềm thông
minh chống virus máy tính, đáp ứng kịp thời nhu cầu bức xúc của xã hội, từng bước
giải quyết nạn virus máy tính, góp phần làm trong sạch môi trường CNTT hiện nay.
1.4. Cấu trúc của luận án
Luận án gồm năm chương. Chương 1 dẫn nhập và giới thiệu chung về đềtài.
Chương 2 trình bày các cơchếchẩn đoán virus máy tính và một sốvấn đềliên
quan. Trước tiên, Chương 2 sẽgiới thiệu các chiến lược nhận dạng virus; khảo sát
các hoạt động nghiên cứu ứng dụng phòng chống virus trong và ngoài nước; phân
tích các vấn đềmởcủa công nghệanti-virus; đánh giá tình hình và đềxuất hướng
tiếp cận, phương pháp giải quyết vấn đề. Kếtiếp, Chương 2 trình bày cơsởlý
thuyết của các hệkhám phá tri thức từCSDL, các hệhọc và hệchuyên gia. Phần
cuối Chương 2 trình bày quá trình tìm hiểu, phân tích các nghiên cứu hướng tiếp
cận máy học và hệchuyên gia trong lĩnh vực nhận dạng mã độc.
Các Chương 3 và Chương 4 chứa nội dung nghiên cứu chính của đềtài.
Chương 3 trình bày các cơchếmáy học chẩn đoán virus máy tính. Bằng chiến lược
“chia đểtrị”, bài toán nhận dạng virus máy tính được phân hoạch thành năm bài
toán con. Mỗi bài toán được xây dựng dựa vào các kỹthuật học từ đơn giản đến
phức tạp: học vẹt (lớp text virus), học tương tự(lớp macro virus), học chỉdẫn (lớp
boot virus), học tình huống (lớp file virus) và học quy nạp (lớp mã độc, sâu trình và
trojan horse).
Chương 4 trình bày phương pháp thiết kếhệthống MAV, hệphần mềm thực
nghiệm xây dựng trên cơsởcác nghiên cứu lý thuyết của đềtài. Phần đầu Chương 4
mô tảmô hình cơsởtri thức và mô hình tổng quát của hệ. Áp dụng tiếp cận máy
học và hệchuyên gia, MAV sẽ được triển khai qua ba giai đoạn. Giai đoạn Học dữ
liệu - mức chuyên gia, giai đoạn Xửlý dữliệu - thành phần cốt lõi (kernel) và giai
đoạn Tổng kết - mức người dùng. Triển khai trên hệthống mạng theo mô hình
client-server, MAV được thiết kếgồm hai gói cài đặt chạy trên máy chủ(dành cho
chuyên gia) và các máy trạm (dành cho người dùng). Mỗi gói có chức năng, cấu
trúc dữliệu sửdụng các thuật giải học phân cụm, phân lớp dữliệu khác nhau. Phần
cuối Chương 4 trình bày các kết quảthực nghiệm của đềtài.
Chương 5 tổng kết các đóng góp vềmặt lý thuyết, đánh giá ý nghĩa thực tiễn,
phân tích hạn chế, đềxuất các biện pháp khắc phục và dựkiến hướng phát triển
tương lai của đềtài.
Phần tài liệu tham khảo gồm (i) các công trình đã công bốtrong các tạp chí
chuyên ngành, kỷyếu hội nghịkhoa học trong nước - quốc tếvà (ii) các tài liệu
tham khảo sửdụng trong quá trình nghiên cứu đềtài.
Cuối cùng, phần phụlục nhằm làm rõ các vấn đềliên quan đến đềtài gồm
Phụlục 1: Khảo sát virus máy tính; Phụlục 2: Các định dạng dữliệu nhiễm virus
máy tính; Phụlục 3: Các tác tửhoạt động và thuật toán SID Tìm kiếm – Suy luận –
Chẩn đoán; Phụlục 4: Phân tích hệthống phần mềm MAV; Phụlục 5: Phân hệmáy
chủMAVSR và Phụlục 6: Phân hệmáy trạm MAVCL.
54 trang |
Chia sẻ: tuandn | Lượt xem: 2175 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận án Tiếp cận máy học và hệ chuyên gia để nhận dạng, phát hiện virus máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khảo sát virus máy tính
1. Các loại virus máy tính
1.1. Boot virus
Là thuỷ tổ của virus máy tính, boot virus lây vào các mẫu tin khởi động
(MTKĐ, boot record) trên hệ thống đĩa. Đối với đĩa mềm, MTKĐ nằm trên sector
đầu tiên thuộc track 0, side 0 của đĩa (boot sector). Khi khởi động máy bằng đĩa
mềm, sau quá trình tự kiểm tra (POST - Power On Self Test), thường trình khởi
động máy trong ROM-BIOS sẽ đọc và nạp 512 byte trên boot sector vào bộ nhớ rồi
trao quyền, không cần biết đoạn mã này sẽ thực hiện những công việc gì.
Nguyên tắc của boot virus là thay thế MTKĐ bằng đoạn mã của nó để giành
quyền khởi động máy. Khi được trao quyền, boot virus sẽ thường trú, khống chế các
tác vụ đọc/ghi đĩa rồi nạp tiếp phần khởi động gốc (Hình P1.1). Quá trình lây nhiễm
của boot virus trên đĩa mềm được minh họa như sau:
Đĩa mềm sạch: POST→ MTKĐ → HĐH
Đĩa mềm nhiễm: POST→ Boot virus → MTKĐ → HĐH
Đối với đĩa cứng, có 2 MTKĐ: master boot nằm ở sector đầu tiên thuộc track
0, side 0 và boot sector nằm ở sector đầu tiên của track 0, side 1. Trên đĩa cứng,
boot virus có thể lây vào master boot hoặc boot sector. Quá trình minh họa như sau:
Đĩa cứng sạch: POST→ Master boot→ Boot sector → HĐH
Đĩa cứng nhiễm: POST → Boot virus→Master boot→ Boot sector→ HĐH, hoặc
POST → Master boot → Boot virus → Boot sector → HĐH
Phụ lục 1
- 109 -
Do được kích hoạt trước HĐH nên boot virus có thể lây nhiều loại HĐH.
Tuy nhiên chúng cũng gặp nhiều trở ngại như:
- Cơ hội kích hoạt: người dùng ít khi khởi động máy từ đĩa mềm.
- Cơ hội lây lan: phần lớn các chip ROM được trang bị chức năng phát hiện
tác vụ ghi vào boot sector hoặc cấm khởi động từ đĩa mềm.
- Cơ hội tồn tại: do dung lượng nhỏ nên đĩa mềm ngày càng ít được sử dụng.
Hình P1.2a là MTKĐ chuẩn của Windows. Hình P1.2b là MTKĐ nhiễm virus.
EB 3C 90 2B 4A 48 54 56 49 48 43 00 02 01 01 00 02 E0 00 40 0B F0 09 00 12 00 02 00 00 00 00 00 00
00 00 00 00 00 29 E3 1E 5C 3F 4E 4F 20 4E 41 4D 45 20 20 20 20 46 41 54 31 32 20 20 20 33 C9 8E D1
BC FC 7B 16 07 BD 78 00 C5 76 00 1E 56 16 55 BF 22 05 89 7E 00 89 4E 02 B1 0B FC F3 A4 06 1F BD
00 7C C6 45 FE 0F 38 4E 24 7D 20 8B C1 99 E8 7E 01 83 EB 3A 66 A1 1C 7C 66 3B 07 8A 57 FC 75 06
80 CA 02 88 56 02 80 C3 10 73 ED 33 C9 FE 06 D8 7D 8A 46 10 98 F7 66 16 03 46 1C 13 56 1E 03 46
0E 13 D1 8B 76 11 60 89 46 FC 89 56 FE B8 20 00 F7 E6 8B 5E 0B 03 C3 48 F7 F3 01 46 FC 11 4E FE
61 BF 00 07 E8 28 01 72 3E 38 2D 74 17 60 B1 0B BE D8 7D F3 A6 61 74 3D 4E 74 09 83 C7 20 3B FB
72 E7 EB DD FE 0E D8 7D 7B A7 BE 7F 7D AC 98 03 F0 AC 98 40 74 0C 48 74 13 B4 0E BB 07 00 CD
10 EB EF BE 82 7D EB E6 BE 80 7D EB E1 CD 16 5E 1F 66 8F 04 CD 19 BE 81 7D 8B 7D 1A 8D 45 FE
8A 4E 0D F7 E1 03 46 FC 13 56 FE B1 04 E8 C2 00 72 D7 EA 00 02 70 00 52 50 06 53 6A 01 6A 10 91
8B 46 18 A2 26 05 96 92 33 D2 F7 F6 91 F7 F6 42 87 CA F7 76 1A 8A F2 8A E8 C0 CC 02 0A CC B8 01
02 80 7E 02 0E 75 04 B4 42 8B F4 8A 56 24 CD 13 61 61 72 0A 40 75 01 42 03 5E 0B 49 75 77 C3 03 18
01 27 0D 0A 49 6E 76 61 6C 69 64 20 73 79 73 74 65 6D 20 64 69 73 6B FF 0D 0A 44 69 73 6B 20 49 2F
4F 20 65 72 72 6F 72 FF 0D 0A 52 65 70 6C 61 63 65 20 74 68 65 20 64 69 73 6B 2C 20 61 6E 64 20 74
68 65 6E 20 70 72 65 73 73 20 61 6E 79 20 6B 65 79 0D 0A 00 00 49 4F 20 20 20 20 20 20 53 59 53 4D
53 44 4F 53 20 20 20 53 59 53 7F 01 00 41 BB 00 07 60 66 6A 00 E9 3B FF 00 00 55 AA
Hình P1.2a: Mẫu tin khởi động chuẩn của hệ điều hành Windows
Kiểm tra thiết bị
- Màn hình
- Bộ nhớ
- Bàn phím
- Các ổ đĩa...
Khởi động hệ thống
- Nạp MTKĐ vào bộ
nhớ máy tính
- Trao quyền cho
MTKĐ
Mẫu tin khởi động
- Tìm hệ địều hành
- Nạp hệ điều hành
- Trao quyền cho hệ
điều hành
Boot virus
- Thường trú
- Khống chế đọc/ghi
- Nạp MTKĐ gốc
- Trao quyền cho
MTKĐ gốc
Mẫu tin khởi động
bình thường
Mẫu tin khởi động
nhiễm boot virus
Hình P1.1: Nguyên tắc hoạt động của boot virus
- 110 -
EB 3C 90 2C 27 6A 79 76 49 48 43 00 02 01 01 00 02 E0 00 40 0B F0 09 00 12 00 02 00 00 00 00 00 00
00 00 00 00 00 29 00 ED 07 10 4E 4F 20 4E 41 4D 45 20 20 20 20 46 41 54 31 32 20 20 20 33 C9 8E D1
BC F0 7B 8E D9 B8 00 20 8E C0 FC BD 00 7C 38 4E 24 7D 24 8B C1 99 E8 3C 01 72 1C 83 EB 3A 66
A1 1C 7C 26 66 3B 07 26 8A 57 FC 75 06 80 CA 02 88 56 02 80 C3 10 73 EB 33 C9 8A 46 10 98 F7 66
16 03 46 1C 13 56 1E 03 46 0E 13 D1 8B 76 11 60 89 46 FC 89 56 FE B8 20 00 F7 E6 8B 5E 0B 03 C3
48 F7 F3 01 46 FC 11 4E FE 61 BF 00 00 E8 E6 00 72 39 26 38 2D 74 17 60 B1 0B BE A1 7D F3 A6 61
74 32 4E 74 09 83 C7 20 3B FB 72 E6 EB DC A0 FB 7D B4 7D 8B F0 AC 98 40 74 0C 48 74 13 B4 0E
BB 07 00 CD 10 EB EF A0 FD 7D EB E6 A0 FC 7D EB E1 CD 16 CD 19 26 8B 55 1A 52 B0 01 BB 00 00
E8 3B 00 72 E8 5B 8A 56 24 BE 0B 7C 8B FC C7 46 F0 3D 7D C7 46 F4 29 7D 8C D9 89 4E F2 89 4E
F6 C6 06 96 7D CB EA 03 00 00 20 0F B6 C8 66 8B 46 F8 66 03 46 1C 66 8B D0 66 C1 EA 10 EB 5E 0F
B6 C8 4A 4A 8A 46 0D 32 E4 F7 E2 03 46 FC 13 56 FE EB 4A 52 50 06 53 6A 01 6A 10 91 8B 46 18 96
92 33 D2 F7 F6 91 F7 F6 42 87 CA F7 76 1A 8A F2 8A E8 C0 CC 02 0A CC B8 01 02 80 7E 02 0E 75 04
B4 42 8B F4 8A 56 24 CD 13 61 61 72 0B 40 75 01 42 03 5E 0B 49 75 06 F8 C3 41 BB 00 00 60 66 6A
00 EB B0 4E 54 4C 44 52 20 20 20 20 20 20 0D 0A 52 65 6D 6F 76 65 20 64 69 73 6B 73 20 6F 72 20 6F
74 68 65 72 20 6D 65 64 69 61 2E FF 0D 0A 44 69 73 6B 20 65 72 72 6F 72 FF 0D 0A 50 72 65 73 73 20
61 6E 79 20 6B 65 79 20 74 6F 20 72 65 73 74 61 72 74 0D 0A 00 00 00 00 00 00 00 AC CB D8 55 AA
Hình P1.2b: Mẫu tin khởi động hệ điều hành Windows bị nhiễm boot virus
1.2. File virus
Khác với boot virus, file virus lây vào tập tin chương trình của hệ điều hành.
Tùy theo hệ điều hành và cơ chế hoạt động của vật chủ, file virus có cách lây nhiễm
khác nhau (Hình P1.3a và P1.3b). Cơ chế hoạt động của file virus như sau:
- Xác định điểm vào lệnh (IP-Instruction Pointer) gốc của vật chủ
- Ghép mã lệnh virus vào vật chủ. Tùy theo định dạng/tình trạng của vật chủ,
vị trí ghép có thể ở đầu, giữa hoặc ở cuối vật chủ.
- Thay điểm vào lệnh của vật chủ trỏ đến địa chỉ mã lệnh của virus
Khi vật chủ thi hành, file virus sẽ thực hiện các thao tác:
- Kiểm tra sự có mặt của virus trong vùng nhớ. Nếu chưa thường trú, chúng
tiến hành sao chép vào vùng nhớ đã được hệ điều hành cấp phát.
- Tìm kiếm các vật chủ khác để lây vào
- Thực hiện các hoạt động đã được lập trình (phá hoại, do thám, định thời…)
- Phục hồi điểm vào lệnh gốc và trao quyền cho vật chủ.
- 111 -
Nhược điểm của file virus là dễ bị phát hiện do kích thước file thay đổi và
chỉ lây mạnh trên các HĐH DOS và Windows 9x/Me. Trên Windows NT/2000/XP,
chúng thường vấp phải hàng rào bảo vệ hạt nhân hệ thống Kernel32. Vì vậy file
virus dần được hacker thay bằng các hình thức khác như worm, trojan horse…
1.3. Macro virus
Để tự động hóa thao tác sử dụng của người dùng, hãng Microsoft đã tích hợp
tập lệnh VBA (Visual Basic Application) vào bộ công cụ Microsoft Office. Theo
CSI (Cisco Safe Implementation), macro virus được định nghĩa như sau:
“Macro virus là loại virus máy tính được viết bằng ngôn ngữ VBA, thực thi
trong môi trường của Microsoft Word hoặc Excel. Macro là tập lệnh giúp tự động
hóa tác vụ của người dùng” (
Các macro virus lợi dụng các template trong môi trường tương tác VBA làm
nơi lưu trú. Khi người dùng mở tư liệu mới, các thủ tục của virus trong template sẽ
kết nhập vào tư liệu hiện thời dưới dạng các thủ tục VBA đã biên dịch (Hình P1.4).
Tùy theo phiên bản Microsoft Office, tập mã thủ tục VBA sẽ được chuyển dạng
tương thích đi lên, làm biến đổi mã lệnh của macro virus.
1.4. Worm, sâu trình
Theo Vesselin Bonchev, worm (tạm dịch sâu trình) là:
“Các chương trình có khả năng tạo bản sao chính nó (thường là qua mạng
máy tính) như một chương trình (hoặc tập các chương trình) độc lập, không phụ
thuộc vào sự tồn tại của ứng dụng chủ”.
Hình P1.3: Kỹ thuật lây nhiễm của file virus
a. Tập tin chương trình trước
khi nhiễm file virus
IP
Header Data Code
b. Tập tin chương trình sau
khi nhiễm file virus
Virus IP
Header Data Code
IP
- 112 -
Khai thác các dịch vụ vận chuyển dữ liệu như HTTP (HyperText Transfer
Protocol), FTP (File Transfer Protocol), IRC (Internet Relay Chat), DNS (Domain
Name Service), Drive Sharing, Email, Packet Routing…, sâu trình len lõi vào các hệ
thống đích để tìm cơ hội do thám, đánh cắp, phá hoại dữ liệu. Khác với virus, sâu
trình không đính vào các ứng dụng khác mà tồn tại trên hệ thống như một ứng dụng
độc lập (hình P1.5). Sâu trình khó phát hiện vì chúng có định dạng giống các ứng
dụng hợp thức. Tuy nhiên sâu trình cũng có nhược điểm. Do đứng độc lập nên khả
năng tự kích hoạt bị hạn chế và dễ bị tiêu diệt. Kịch bản chung của sâu trình là đăng
ký kích hoạt khi hệ điều hành hoàn tất quá trình khởi động.
1.5. Trojan horse
Thuật ngữ “trojan horse” (mượn từ điển tích “ngựa gỗ thành Troie” trong
thần thoại Hy Lạp, gọi tắt là trojan) là tên gọi các loại mã độc do người lập trình cài
sẵn vào ứng dụng. Ban đầu, trojan là công cụ của người lập trình. Khi phát hiện các
trường hợp không hợp thức (như sao chép lậu, bẻ khóa…), các đoạn mã này sẽ tự
Microsoft Word
Virus
macro
Infected doc.
Virus
macro
Infected doc.
(1)
(2)
Infected doc.
Virus
macro
(5)
Microsoft Word
Virus
macro
Benign doc.
(4)
Virus
macro
Template
(3)
Hình P1.4: Quy trình lây nhiễm của macro virus
1. Tập tin tư liệu chứa mã lệnh virus macro
2. Ứng dụng Office mở tư liệu nhiễm virus macro
3. Tập thủ tục VBA của virus kết nhập vào template
4. Virus macro trong template kết nhập vào các đối tượng mới
5. Hàng loạt tư liệu khác bị nhiễm virus macro
- 113 -
kích hoạt để trừng trị người dùng như xóa ứng dụng, làm treo máy… Về sau ý
nghĩa của trojan càng mờ nhạt. Lợi dụng Internet, các hacker tung lên mạng các
“tiện ích” (có cài sẵn trojan) để lừa người dùng download về sử dụng (ví dụ các
phần mềm bẻ khóa, kích hoạt tài khoản xem phim trực tuyến…). Khi chạy loại “ứng
dụng” này, các đoạn mã trojan sẽ thực thi các lệnh của hacker. CSI định nghĩa
trojan horse là “loại chương trình được viết như tiện ích hữu hiệu, nhưng thực tế lại
là công cụ tấn công”. (
Trojan không tự lây mà lan truyền nhờ thao tác download và sao chép của
người dùng (hình P1.6). Giống sâu trình, trojan có định dạng ứng dụng nên việc
phát hiện gặp nhiều trở ngại. Trong một họ (family), trojan khởi thủy được gọi là
mầm độc (germs). Thông thường, mã của mầm độc dùng để lắp ghép cho con cháu.
Network
Application Worm
Network
Application
Network
Application Worm
Network
Application
Physical Network
Virtual Network Virtual Network
Hình P1.5: Worm lan truyền trên hệ thống mạng
Physical Computer Physical Computer
Hình P1.6: Cơ chế lan truyền của trojan horse
Internet
download
copy LAN
- 114 -
Đôi khi trojan còn chứa trong lòng nó một loại mã độc khác (như sâu trình
chẳng hạn). Khi thực thi, loại trojan này (gọi là dropper) sẽ kết xuất mã độc thứ cấp
ra hệ thống đích (tái sinh) mỗi khi một trong các bản sao của chúng bị tiêu diệt.
Injector là một dạng cải tiến của dropper: thay vì kết xuất ra bộ nhớ ngoài, mã độc
được cài vào bộ nhớ trong để tránh bị phát hiện. Kết hợp giữa trojan và sâu trình,
dropper và injector có đặc tính lây lan nên gần với virus hơn.
Trapdoor (hay backdoor) rất được giới hacker ưa chuộng. Khi lây vào hệ
thống, backdoor có nhiệm vụ mở cổng (port, điểm truy cập ứng dụng), làm nội gián
chờ đáp ứng thao tác quét cổng của hacker. Khi nhận được tín hiệu, backdoor khống
chế hàng rào bảo vệ hệ thống, dọn đường đón các đợt thâm nhập từ bên ngoài.
Gần đây xuất hiện loại trojan đặc biệt nguy hiểm gọi là rootkit. Ban đầu,
rootkit là tên gọi các bộ công cụ (kit) giúp người quản trị nắm quyền điều khiển hệ
thống ở mức cao nhất (root). Trong tay hacker, rootkit trở thành công cụ đắc lực để
đánh cắp mật khẩu truy nhập, thu thập thông tin trên máy nạn nhân hoặc che đậy
các hoạt động thâm nhập bất hợp pháp. Hacktool là một dạng rootkit sơ cấp. Cao
cấp hơn có các loại rootkit thám báo như keylogger (theo dõi hoạt động bàn phím),
sniffer (theo dõi gói tin qua mạng), filehooker (theo dõi truy nhập tập tin)…
1.6. Malware
Malware là tên gọi chung các loại phần mềm độc hại như:
• Adware: loại phần mềm tự động bật (popup) các cửa sổ quảng cáo, thay đổi
các thiết lập hệ thống…, gây phiền phức cho người sử dụng.
• Spyware: loại phần mềm gián điệp, săn lùng thông tin thương mại, đánh cắp
thông tin cá nhân như địa chỉ e-mail, độ tuổi, giới tính, thói quen mua sắm…
• Pornware: loại phần mềm đồi trụy phát tán từ các trang web khiêu dâm, tự
động bật lên các hình ảnh gợi dục, phim sex... Pornware rất nguy hiểm cho trẻ
em và thanh thiếu niên, làm suy đồi đạo đức xã hội.
• Riskware: phần mềm trôi nổi, không được kiểm định chất lượng. Riskware
tiềm ẩn nhiều lỗi nghiêm trọng, làm suy giảm chất lượng phục vụ của hệ
thống, có nguy cơ ảnh hưởng dữ liệu của người dùng.
- 115 -
Trong lĩnh vực anti-virus, nghiên cứu malware là bài toán sôi nổi và khá lý
thú. Hình P1.7 mô tả nguồn gốc, quá trình phát triển của các loại virus máy tính và
mã độc hiện nay.
2. Khảo sát virus máy tính
Việc khảo sát virus máy tính gặp nhiều khó khăn bởi:
- Các anti-virus chưa thống nhất về cách phân loại và đặt tên virus
- Phần lớn các anti-virus không công bố danh sách đầy đủ các virus đã
cập nhật mà chỉ cung cấp các công cụ tìm kiếm online một virus cụ thể.
Bảng P1.1 thống kê danh sách 65.824 virus máy tính lây trên hệ điều hành
DOS/Windows của hãng Kaspersky. Cột “Kiểu dữ liệu” có được nhờ quá trình phân
tích mã các mẫu virus đại diện lớp. Cột “Tỷ lệ %” được đưa vào để tính mật độ các
loại virus DOS/Windows đã xuất hiện trong 10 năm (từ 1995 đến 2004).
Kết quả phân tích thống kê cho thấy virus máy tính có thể được phân loại
theo bốn nhóm chính (program, text, binary và macro), đặt cơ sở khoa học cho ý
tưởng phân loại virus theo đặc trưng dữ liệu của đề tài (xem Chương 2).
Computer virus
Hình P1.7: Nguồn gốc mã độc và phân loại mã độc
Boot virus
- FD bootvirus
- HD bootvirus
File virus
- 16 bit virus
- 32 bit virus
Worm
- Intruder
- Dropper
- Injector…
Macro virus
- MS Word
- MS Excel
- MS PowerPoint
Trojan horse
- Germs
- Dropper
- Injector
- Rootkit…
Malware
- Adware
- Spyware
- Pornware
- Riskware…
Boot record
- Boot sector
- Master boot
OS/Program
- Application
- Resource
- Library
- Driver…
Instruction set
- 8088
- 80x86
- Pentium
Harmful Code
- 116 -
Bảng P1.1: Thống kê các loại virus máy tính (1995-2004)
stt Kiểu virus Số lượng Kiểu dữ liệu Tỷ lệ %
1 ANSI 4 Text 0.01
2 ASP 89 Text 0.14
3 Basic 7 Text 0.01
4 BAT 2059 Text 3.13
5 Boot-DB 913 Binary 1.39
6 Boot-DOS 198 Binary 0.30
7 Boot-SB 14 Binary 0.02
8 DOS 18412 Program 16-bit 27.97
9 DOS32 18 Program 32-bit 0.03
10 HTT 9 Text 0.01
11 HTML 295 Text 0.45
12 IRC 518 Program 32-bit 0.79
13 Java 140 Text 0.21
14 Java script 522 Text 0.79
15 MSAccess 30 VBA macro 0.05
16 MSExcel 348 VBA macro 0.53
17 MSOffice 96 VBA macro 0.15
18 MSPPoint 12 VBA macro 0.02
19 MSProject 4 VBA macro 0.01
20 MSPublisher 1 VBA macro 0.00
21 MSVision 3 VBA macro 0.00
22 MSWord 2987 VBA macro 4.54
23 Multi dropper 523 Program 32-bit 0.79
24 Perl 152 Text 0.23
25 PHP 63 Text 0.10
26 PIF 19 Binary 0.03
27 PSP 1 Text 0.00
28 RAR 1 Binary 0.00
29 Script 9 Text 0.01
30 VBS 1562 Text 2.37
31 WBS 4 VBA macro 0.01
32 Win16 484 Program 16-bit 0.74
33 Win32 35731 Program 32-bit 54.28
34 Win9x 537 Program 32-bit 0.82
35 WinHLP 9 Binary 0.01
36 WinINF 9 Binary 0.01
37 WinLNK 1 Binary 0.00
38 WinPIF 1 Binary 0.00
39 WinREG 36 Text 0.05
40 ZIP 3 Binary 0.00
Các định dạng dữ liệu nhiễm virus máy tính
1. Giới thiệu
Nghiên cứu virus máy tính luôn gắn với việc phân tích các định dạng dữ liệu
vật chủ. Mỗi loại virus chỉ lây vào một số định dạng dữ liệu nhất định. Phân tích các
định dạng dữ liệu vật chủ là cơ sở để phân loại dữ liệu (quan tâm đến các điểm dữ
liệu có nguy cơ nhiễm virus), giảm tải quá trình chẩn đoán (loại bớt các đối tượng
chắc chắn sạch khỏi không gian chẩn đoán) và gia tăng độ tin cậy của hệ thống
(giảm nguy cơ bỏ sót đối tượng chẩn đoán). Các định dạng vật chủ chứa mã thi
hành có thể nhiễm virus gồm: tập tin văn bản, tập tin chương trình, tập tin MS
Office và mẫu tin khởi động (Bảng P2.1).
Bảng P2.1: Các định dạng vật chủ chứa mã thi hành có thể nhiễm virus máy tính
Stt Vật chủ Loại virus Các định dạng Kiểu
Tập tin lô BAT
Tập tin script VBS, JS
Tập tin registry REG
1 Tập tin văn bản
File virus
Worm
Trojan
Tập tin siêu văn bản HTT, HTA
Tập tin lệnh COM
Tập tin thi hành EXE, SCR 2 Tập tin chương trình
File virus
Worm
Trojan Tập tin thư viện DLL, CPL, SYS, VXD
Tập tin tư liệu DOC, DOT
Tập tin bảng tính XLS, XLT 3 Tập tin MS Office Macro virus
Tập tin trình diễn PPT, POT
Mẫu tin khởi động hệ
điều hành đĩa mềm #N/A
Mẫu tin khởi động hệ
điều hành đĩa cứng #N/A 4 Mẫu tin khởi động Boot virus
Mẫu tin khởi tạo phân
khu đĩa cứng #N/A
Phụ lục 2
- 118 -
2. Các định dạng dữ liệu nhiễm virus máy tính
2.1. Tập tin văn bản
Tập văn bản (text file) là tổ chức file đơn giản, được chia làm hai loại:
- Tập văn bản 7 bit: chứa các ký tự ASCII chuẩn (7 bit) có thể gõ trực tiếp từ
bàn phím, mã từ 32 (khoảng trắng) đến 126 (ký tự ~). Tập văn bản 7 bit dùng
chứa nội dung chương trình nguồn như PAS, ASM, C, CPP, JS, VBS…
- Tập văn bản 8 bit: có thêm các ký tự ASCII mở rộng 8 bit (từ 128 đến 255)
sử dụng ký tự graphic trang trí bảng, hình hộp hoặc thiết lập font chữ riêng.
Do hiện nay các trình biên dịch/thông dịch lệnh chỉ hỗ trợ các ký tự 7 bit nên
chưa phát hiện câu lệnh virus trong các tập tinvăn bản 8 bit.
Để thực thi các câu lệnh trong tập tin văn bản 7 bit, hệ thống phải dịch chúng
sang mã máy. Do không phải hệ thống nào cũng có đủ bộ dịch lệnh của tất cả các
ngôn ngữ lập trình, nên chỉ vài loại tập tin văn bản 7 bit là có nguy cơ nhiễm virus
(Bảng P2.2), đó là các tập tin chứa tập lệnh của các ngôn ngữ lập trình được tích
hợp sẵn trong hệ thống (Hình P2.1).
Bảng P2.2: Các loại tập tin văn bản nhiễm virus máy tính
stt Loại tập tin Mô tả Kiểu Thi hành
1 Tập lệnh theo lô Batch command BAT Internal Command Interpreter
2 Tập lệnh siêu văn bản Hyper Text HTT HTML Application Host
3 Tập lệnh khởi tạo System Initiation INI Windows Startup
4 Tập lệnh Java Java Script JS Windows Based Script Host
5 Tập đăng ký hệ thống System registry REG Registry Editor
6 Tập lệnh Visual Basic Visual Basic Script VBS Windows Based Script Host
Dấu hiệu nhận dạng các tập văn bản 7-bit có thể nhiễm virus là:
- Dữ liệu byte (32-127)
- Chứa các từ khóa của các ngôn ngữ lập trình tích hợp sẵn trong hệ thống
(Java Script, VB Script, HTML Application, Command Interpreter…).
- 119 -
2.2. Tập tin chương trình
Các tập tin chương trình (program file), còn gọi là ứng dụng (application)
hay phần mềm (software), được biên dịch thành các tổ chức file thi hành trong môi
trường của hệ điều hành. Đối với DOS/Windows, ngoài hai loại tập tin chương trình
chính là COM và EXE còn có các tổ chức thi hành khác như SYS, DLL, CPL, SCR,
OCX… Trong quá trình phát triển, Microsoft đã sử dụng nhiều định dạng thi hành
phức tạp. Khi nạp vào bộ nhớ, tập tin chương trình sẽ được hệ điều hành thực thi,
không quan tâm nguồn gốc và mức độ nguy hiểm của các lệnh này. Do vậy, các tập
tin chương trình là một trong những kẽ hở bảo mật quan trọng của hệ thống.
Bảng P2.3: Các loại tập tin chương trình
Tổ chức Loại Kiểu Kiểu con Hệ điều hành Thi hành trực tiếp
Command DOS-COM COM COM DOS 16 bit Có
DOS-EXE EXE EXE DOS 16 bit Có
EXE EXE Windows 16 bit Có
NE-EXE
DLL DLL Windows 16 bit Không