BỘ GIÁO DỤC
VIỆN HÀN LÂM
VÀ ĐÀO TẠO
KHOA HỌC VÀ CÔNG NGHỆ VN
HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ
Nguyễn Anh Tuấn
NGHIÊN CỨU PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC
DỰA TRÊN DỮ LIỆU META-DATA CỦA TỆP TIN
LUẬN VĂN THẠC SĨ NGÀNH MÁY TÍNH
Hà Nội - 2021
BỘ GIÁO DỤC
VIỆN HÀN LÂM
VÀ ĐÀO TẠO
KHOA HỌC VÀ CÔNG NGHỆ VN
HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ
Nguyễn Anh Tuấn
NGHIÊN CỨU PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC
DỰA TRÊN DỮ LIỆU META-DATA CỦA TỆP TIN
Chuyên ngành : Hệ thống thông tin
Mã số
: 8480104
LUẬN VĂN THẠC SĨ NGÀNH MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS. TRẦN ĐỨC NGHĨA
Hà Nội - 2021
LỜI CAM ĐOAN
Tôi là Nguyễn Anh Tuấn, học viên khóa 2019B, ngành máy tính, chuyên ngành
Hệ Thống Thông Tin. Tôi xin cam đoan luận văn “Nghiên cứu phương pháp phát
hiện mã độc dựa trên dữ liệu meta data của tệp tin” là do tôi nghiên cứu, tìm hiểu và
phát triển dưới sự hướng dẫn của TS. Trần Đức Nghĩa, không phải sự sao chép từ
các tài liệu, công trình nghiên cứu của người khác mà không ghi rõ trong tài liệu
tham khảo. Tôi xin chịu trách nhiệm về lời cam đoan này.
Hà Nội, ngày
tháng
năm 2021
Học viên
Nguyễn Anh Tuấn
i
LỜI CẢM ƠN
Lời cảm ơn trân trọng đầu tiên tôi muốn dành tới các thầy cô Học viện khoa
học và công nghệ Việt Nam, Viện công nghệ thông tin, Viện Hàn lâm khoa học và
công nghệ Việt Nam đã tận tình giảng dạy và truyền đạt những kiến thức quý báu,
tạo môi trường học tập, nghiên cứu khoa học nghiêm túc trong suốt thời gian vừa
qua, giúp tôi có những kiến thức chuyên môn nền tảng để làm cơ sở lý luận khoa
học cho luận văn này.
Đặc biệt tôi xin chân thành cảm ơn thầy TS. Trần Đức Nghĩa đã định hướng,
dìu dắt và hướng dẫn tôi trong suốt quá trình làm luận văn, sự chỉ bảo của các thầy
giúp tôi tự tin nghiên cứu những vấn đề mới và giải quyết bài toán một cách khoa
học.
Tôi xin trân trọng cảm ơn Ban giám hiệu Học viện khoa học công nghệ Việt
Nam - Viện Hàn lâm khoa học và công nghệ Việt Nam đã tạo các điều kiện cho tôi
được học tập và làm luận văn một cách thuận lợi.
Tôi cũng xin cảm ơn sự hỗ trợ của nhóm nghiên cứu tiềm năng Cảm
nhận thông minh và ứng dụng (SSA), Trường đại học Phenikaa.
Trong quá trình học tập và thực hiện luận văn, mặc dù thực hiện với tinh thần
nghiêm túc, nhưng chắc chắn không tránh khỏi những thiết sót. Tôi rất mong được
sự thông cảm và chỉ bảo tận tình của các thầy cô và các bạn.
TÁC GIẢ LUẬN VĂN
Nguyễn Anh Tuấn
ii
MỤC LỤC
LỜI CAM ĐOAN .............................................................................................. i
LỜI CẢM ƠN ................................................................................................... ii
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT .......................................................... v
DANH MỤC HÌNH VẼ ................................................................................... vi
DANH MỤC BẢNG ....................................................................................... vii
MỞ ĐẦU ........................................................................................................... 1
1.
2.
3.
Tính cấp thiết của luận văn ................................................................... 1
Mục tiêu nghiên cứu của luận văn ........................................................ 1
Các nội dung nghiên cứu của luận văn ................................................. 1
CHƯƠNG 1. TỔNG QUAN VỀ MÃ ĐỘC VÀ PHÂN TÍCH MÃ ĐỘC ....... 3
1.1. Khái niệm mã độc ................................................................................. 3
1.2. Mục đích của mã độc ............................................................................ 3
1.3. Hiện trạng phát triển của mã độc .......................................................... 4
1.4. Phân loại mã độc ................................................................................... 4
1.4.1. Các loại mã độc phổ biến .............................................................. 4
1.4.2. Xác định loại mã độc bằng dịch vụ virustotal ............................... 8
1.5. Kỹ thuật phân tích mã độc .................................................................... 8
1.5.1. Phân tích động ............................................................................... 8
1.5.2. Phân tích tĩnh ................................................................................. 9
1.6. Kết luận chương 1 ............................................................................... 11
CHƯƠNG 2. PHÁT HIỆN MÃ ĐỘC DỰA TRÊN METADATA CỦA TỆP
TIN BẰNG PHƯƠNG PHÁP CÂY QUYẾT ĐỊNH TRONG HỌC MÁY ... 12
2.1. Khái niệm về meta-data ...................................................................... 12
2.1.1. Định nghĩa ................................................................................... 12
2.1.2. Cách sử dụng siêu dữ liệu ............................................................ 13
2.1.3. Mô tả dữ liệu ................................................................................ 14
2.2. Cấu trúc tệp tin thực thi trên hệ điều hành Windows ......................... 16
2.2.1. Cấu trúc cơ bản ............................................................................ 16
2.2.2. DOS Header ................................................................................. 18
2.2.3. PE Header .................................................................................... 19
2.2.4. Data Directory ............................................................................. 22
2.2.5. Section Table ............................................................................... 23
2.3. Phương pháp phát hiện mã độc dựa trên meta-data của tệp tin bằng kỹ
thuật cây quyết định trong học máy .................................................... 25
2.3.1. Tổng quan về cây quyết định trong học máy .............................. 25
2.3.2. Thuật toán Quinlan ...................................................................... 31
2.3.3. Thuật toán ID3 ............................................................................. 31
2.3.4. Thuật toán C4.5 ........................................................................... 34
iii
2.3.5. Thuật toán RandomForest ........................................................... 36
2.4. Kết luận chương 2 ............................................................................... 39
CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ ............................. 40
3.1. Triển khai giải pháp ............................................................................ 40
3.1.1. Giới thiệu giải pháp ..................................................................... 40
3.1.2. Lựa chọn thuật toán để xây dựng mô hình đánh giá ................... 40
3.1.3. Các bước triển khai cơ sở dữ liệu ................................................ 42
3.2. Cài đặt thử nghiệm .............................................................................. 47
3.2.1. Môi trường cài đặt ....................................................................... 47
3.2.2. Thử nghiệm .................................................................................. 48
3.3. Đánh giá kết quả ................................................................................. 49
3.3.1. Đánh giá kết quả sau thực nghiệm............................................... 49
3.4. Kết luận chương 3 ............................................................................... 54
Chương 4. KẾT LUẬN ................................................................................... 55
TÀI LIỆU THAM KHẢO ............................................................................... 57
iv
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT
APT
Advanced Persistent Threat
API
Application Programming Interface
CPL
Control Panel
CSDL
Cơ Sở Dữ Liệu
CLS
Concept Learning System
CPU
Central Processing Unit
DNS
Domain Name System
DoS
Denial of Service
RF
Relative Frequency
TEI
Text Encoding Initiative
EAD
Encoded Archival Description
PE
Portable Executable
RDF
RandomForest
KDD
Knowledge Discovery in Database
v
DANH MỤC HÌNH VẼ
Hình 1.1 Chức năng Pseudocode-A tạo mã giả C của IDA pro ..................... 10
Hình 1.2 Chương trình được phân tích bởi IDA pro....................................... 10
Hình 2.1 Cấu trúc tệp tin thực thi PE .............................................................. 17
Hình 2.2 Cấu trúc Image_Dos_Header ........................................................... 18
Hình 2.3 Giá trị của lfanew trên hex dump ..................................................... 19
Hình 2.4 Cấu trúc Image_NT_Header ............................................................ 19
Hình 2.5 Cấu trúc Image_File_Header ........................................................... 20
Hình 2.6 Cấu trúc Image_Optional_Header32 ............................................... 21
Hình 2.7 Cấu trúc dữ liệu được định nghĩa bởi Data Directory ..................... 22
Hình 2.8 Cấu trúc Image_Data_Directory ...................................................... 22
Hình 2.9 Cấu trúc Image_Section_Header ..................................................... 23
Hình 2.10. Mô phỏng sự phân tách trong cây quyết định ............................... 28
Hình 2.11. Mô phỏng sự phân tách trong cây quyết định ............................... 38
Hình 3.1 KDD process .................................................................................... 43
Hình 3.2 Bản ghi dữ liệu sau khi trích rút thuộc tính và gán nhãn ................. 46
Hình 3.3 Bảng tương quan giữa các thuộc tính .............................................. 47
Hình 3.4 Báo cáo thử nghiệm và đánh giá kết quả sử dụng kết hợp các mô
hình và thuật toán ............................................................................................ 49
Hình 3.5 Kết quả đánh giá không biến đổi và giảm chiều dữ liệu.................. 50
Hình 3.6 Kết quả đánh giá biến đổi và giảm chiều dữ liệu ............................. 51
Hình 3.7 Kết quả đánh giá biến đổi và lựa chọn thuộc tính dữ liệu ............... 51
vi
DANH MỤC BẢNG
Bảng 3.1 Bảng yêu cầu chức năng .................................................................. 48
Bảng 3.2 Bảng các phần mềm hỗ trợ .............................................................. 48
Bảng 3.3 Bảng tổng hợp kết quả thử nghiệm với thuật toán Random Forest. 52
vii
MỞ ĐẦU
1. Tính cấp thiết của luận văn
Dưới sự phát triển nhanh chóng của mã độc cả về độ phức tạp và số
lượng, không gian mạng trở nên nóng hơn bao giờ hết. Các nhà phân tích và
nghiên cứu mã độc không thể áp dụng đơn điệu các kỹ thuật phân tích cơ bản.
Hiện tại đã có rất nhiều giải pháp tích cực như: sandbox, virustotal, … các
giải pháp này mang lại tính hiệu quả rất cao, nhưng thay vào đó là phụ thuộc
quá nhiều vào các hãng chống phần mềm độc hại. Đối với các mẫu mã độc
mới xuất hiện hay các loại mã độc của các cuộc tấn công có chủ đích (APT)
thì những giải pháp trên chưa thực sự tốt. Và quan trọng hơn là mỗi đơn vị
nghiên cứu giải pháp chống mã độc luôn phải tự phát triển giải pháp riêng của
mình song song với việc ứng dụng các dịch vụ của bên thứ ba. Bên cạnh đó
xu thế tương lai là học máy và trí tuệ nhân tạo có tính ứng dụng rất lớn. Để
giảm thời gian phân tích mã độc, tăng tính hiệu quả, mã độc cần được phát
hiện một cách tự động và nhanh chóng. Để xây dựng hệ thống phát hiện mã
độc, một cách tiếp cận được đề xuất ở luận văn này là sử dụng kỹ thuật học
máy mang tên cây quyết định để phân tích meta-data (siêu dữ liệu) của tệp tin
mã độc,. Đây là một hướng tiếp cận mới trong việc phát hiện mã độc vì trước
đây để phát hiện mã độc sẽ phát hiện theo hành vi, theo mã nguồn hay theo
đặc trưng của mã độc. Điều này là một cơ sở đúng đắn nhưng cũng rất tốn
thời gian và hiệu quả thấp vì có rất nhiều cơ chế chống phát hiện được tích
hợp. Siêu dữ liệu là dữ liệu luôn gắn liền với tệp tin và điều này gần như rất
khó để thay đổi nếu mã độc mang các đặc trưng của chúng.
2. Mục tiêu nghiên cứu của luận văn
Từ những nội dung được nêu trong tính cấp thiết của luận văn, học viên
xác định mục tiêu nghiên cứu của luận án là “nghiên cứu kỹ thuật học máy
cây quyết định nhằm nâng cao độ chính xác và tốc độ phát hiện các loại mã
độc dựa trên siêu dữ liệu (meta data) của tệp tin”.
3. Các nội dung nghiên cứu của luận văn
Với mục tiêu nghiên cứu trình bày ở trên, học viên xác định nghiên cứu
1
chính gồm các nội dung, được trình bày tại các chương của luận văn, cụ thể
như sau:
Tìm hiểu về cách thức phân tích mã độc và các loại mã độc hiện hành.
Tìm hiểu về cấu trúc siêu dữ liệu (meta-data) trong tệp tin PE (Portable
Executable).
Ứng dụng kỹ thuật học máy cây quyết định để xây dựng mô hình phát
hiện các loại mã độc phục vụ phân tích mã độc.
Triển khai thực nghiệm, đánh giá tính hiệu quả, khả năng áp dụng thực
tế của nghiên cứu.
2
CHƯƠNG 1. TỔNG QUAN VỀ MÃ ĐỘC VÀ PHÂN TÍCH MÃ
ĐỘC
1.1. Khái niệm mã độc
Mã độc đã xuất hiện từ buổi sơ khai của máy tính. Loại virus được ghi
nhận sớm nhất, Creeper Worm xuất hiện trong những năm 1970. Đó là một
loại virus tự nhân bản trong thử nghiệm chương trình đã sao chép chính nó
vào các hệ thống từ xa và hiển thị thông báo: "Tôi là Creeper, hãy bắt tôi nếu
bạn có thể". Vào đầu những năm 80, Elk Cloner, loại vi-rút nhắm mục tiêu
vào máy tính Apply II, một ngành công nghiệp khổng lồ đã ra đời và kể từ đó,
cuộc chiến chống lại phần mềm độc hại chưa bao giờ dừng lại [1].
Mã độc là một loại phần mềm được tạo ra và chèn vào hệ thống một
cách bí mật với mục đích thâm nhập, phá hoại hệ thống, lấy cắp thông tin, làm
gián đoạn, tổn hại tới tính bí mật, tính toàn vẹn và tính sẵn sàng của máy tính
nạn nhân. Mã độc được phân thành nhiều loại tùy theo chức năng, cách thức
lây nhiễm, phá hoại: virus, worm, trojan horse, rootkit, botnet, ransomeware
… [2] [3].
Các loại mã độc càng ngày càng phức tạp từ cách thức lây nhiễm,
phương pháp ẩn mình, cách thức thực hiện các hành vi nguy hiểm… Giới hạn
giữa các loại mã độc ngày càng thu hẹp vì bản thân các mã độc cũng phải có
sự kết hợp lẫn nhau để hiệu quả tấn công là cao nhất.
1.2. Mục đích của mã độc
Mã độc ban đầu được tạo ra nhằm mục đích thí nghiệm, hoặc chỉ phá
hoại một máy tính đơn lẻ nào đó, nhưng theo thời gian đã có những biến thể
mã độc được sử dụng chủ yếu để ăn cắp các thông tin nhạy cảm của người
dùng như tài khoản và mật khẩu, các tin tức về tài chính hoặc thậm chí là các
thông tin về quân sự quốc phòng để nhằm mang lại lợi ích cho tin tặc [4].
Đôi khi mã độc được sử dụng như một công cụ chính trị chống lại các
trang web của chính phủ, các công ty công nghệ cao để thu thập thông tin
được bảo vệ hoặc làm gián đoạn hoạt động của họ trên môi trường mạng. Một
vài cuộc tấn công từ chối dịch vụ sử dụng mã độc có quy mô lớn như cuộc tấn
3
công vào hệ thống website của Hàn Quốc khiến hàng chục website của chính
phủ Hàn Quốc bị tê liệt hoạt động [5]. Tại Việt Nam, 14/06/2021 trang báo
điện tử của VOV bị tấn công từ chối dịch vụ phải ngưng hoạt động [6].
1.3. Hiện trạng phát triển của mã độc
Với sự phát triển của mạng toàn cầu, khả năng lây lan của mã độc càng
trở nên nhanh chóng khiến người sử dụng máy tính phải đối mặt với sự nguy
hiểm của chúng. Theo con số thống kê từ hãng bảo mật nổi tiếng Sophos
(Sophos Threat Report) cho thấy rất nhiều loại mã độc đã được tạo ra từ
những năm 2000 đến nay. Từ năm 2000-2004 là thời đại của Worm với các
loại mã độc như ILOVEYOU, Codered, Mydoom…Từ năm 2005-2012 là
thời đại của Malware với các loại mã độc như Sasser, Zues, Malverting…Từ
năm 2013 đến nay lại là kỷ nguyên của Ransomeware với các mã độc nổi
tiếng như Cryptolocker, WannaCry, Extortion Ransomeware… [7]. Vấn đề
phải đặt ra là ngăn ngừa, phát hiện và loại bỏ mã độc là rất quan trọng.
1.4. Phân loại mã độc
1.4.1. Các loại mã độc phổ biến
Mã độc hại (Malware) được định nghĩa là một chương trình được chèn
một cách bí mật vào hệ thống với mục đích làm tổn hại đến tính bí mật, tính
toàn vẹn hoặc tính sẵn sàng của hệ thống [2], [3].
Định nghĩa này sẽ bao hàm rất nhiều thể loại mã độc chúng ta vẫn quen
gọi là virus máy tính như: worm, trojan, spy-ware, adwares, ... hoặc các bộ
công cụ để tấn công hệ thống mà các hacker thường sử dụng như: backdoor,
rootkit, key-logger, botnet…và các loại virus mã hóa hay còn gọi là
ransomeware.
Để hiểu rõ hơn về cơ chế phân loại, mục đích phân loại, lý do cần phân
loại và đối tượng cần phát hiện ta sẽ làm rõ những loại mã độc hại này.
Virus
Virus máy tính là một chương trình độc hại đối với hệ thống máy tính và
phá vỡ các chức năng bình thường của hệ thống, làm hỏng các tệp dữ liệu. Vi
rút máy tính hoạt động giống như vi rút sinh học tự kết nối với máy tính chủ,
làm hỏng tệp chương trình, tệp dữ liệu và hệ điều hành của máy tính đó. Nó
có khả năng tự tái tạo bằng cách gắn vào các chương trình khác như dịch
4
bệnh. Virus sẽ tiếp tục lây nhiễm sang các tệp và chương trình khác và ảnh
hưởng đến hiệu suất của bất kỳ hệ thống nào. Virus có thể được truyền từ máy
tính này sang máy khác theo nhiều cách khác nhau và sinh sản bằng cách tự
gửi thư cho hàng chục người trong hộp thư đến của địa chỉ mail của máy chủ.
Nó cũng có thể truyền tải bằng cách tải xuống bất kỳ tệp nào từ internet, các
kết nối mạng, đĩa mềm và các bus nối tiếp chung hoặc bằng đĩa CD [8].
Trojan
Virus Trojan Horse đề cập đến một loại virus điều khiển máy tính
thông qua các chương trình cụ thể. Không giống như các loại vi-rút khác, nó
sẽ không sinh sôi cũng như không cố ý lây nhiễm sang các tệp khác. Nhưng
nó khiến người dùng tải xuống thông qua các phần mềm ngụy trang và sau đó
cung cấp kết nối đến máy tính bị xâm nhập. Do đó, kẻ xâm nhập có thể làm
hỏng hoặc lấy cắp tài liệu của người dùng và thậm chí điều khiển máy bị xâm
nhập từ xa [9].
Trojan có thể lựa chọn một trong 3 phương thức để gây hại:
Tiếp tục thực thi các chức năng của chương trình mà nó bám vào,
bên cạnh đó thực thi các hoạt động gây hại một cách riêng biệt (ví dụ như gửi
một trò chơi dụ cho người dùng sử dụng, bên cạnh đó là một chương trình thu
thập thông tin người dùng).
Tiếp tục thực thi các chức năng của chương trình mà nó bám vào,
nhưng sửa đổi một số chức năng để gây tổn hại (ví dụ như một trojan giả lập
một cửa sổ đăng nhập để lấy mật khẩu) hoặc che dấu các hành động phá hoại
khác (ví dụ như trojan che giấu cho các tiến trình độc hại khác bằng cách tắt
các hiển thị của hệ thống).
Thực thi luôn một chương trình gây hại bằng cách núp dưới danh
một chương trình không có hại (ví dụ như một trojan được giới thiệu như là
một trò chơi hoặc một công cụ trên mạng, người dùng chỉ cần kích hoạt tệp
tin này là lập tức dữ liệu trên máy tính sẽ bị xóa).
Các đoạn mã của Trojan được “che giấu” trong các loại virus khác hoặc
trong các phần mềm máy tính thông thường để bí mật xâm nhập vào máy nạn
nhân. Khi tới thời điểm thuận lợi chúng sẽ tiến hành các hoạt động ăn cắp
thông tin cá nhân, mật khẩu, điều khiển máy tính nạn nhân. Bản chất của
Trojan là không tự lây lan mà phải sử dụng phần mềm khác để phát tán. Dựa
5
vào cách hoạt động ta có thể phân chia Trojan thành các loại sau: BackDoor,
Adware và Spyware.
Worm
Sâu máy tính là một loại chương trình máy tính có thể tự nhân bản.
Chúng có thể lan truyền khắp mạng Internet và gửi nguồn đến các nút khác
mà không cần bất kỳ sự tác động nào. Hơn nữa, sâu máy tính có thể gây tắc
nghẽn mạng quy mô lớn [10], [11], [12], [13] và có thể lây nhiễm nhanh
chóng hàng triệu máy tính và gây ra thiệt hại lớn về kinh tế và tài chính (ví dụ
gửi chính nó tới tất cả địa chỉ email trong danh sách liên hệ, …). Không giống
virus, worm không cần đến chương trình chủ để ký sinh mà có thể tồn tại độc
lập.
Vào thời điểm ban đầu, worm được tạo ra chỉ với mục đích phát tán qua
thư điện tử (email). Khi lây vào máy tính, chúng thực hiện tìm kiếm các sổ
địa chỉ, danh sách email trên máy nạn nhân rồi giả mạo các email để gửi bản
thân chúng tới các địa chỉ thu thập được. Các email do worm tạo ra thường có
nội dung “giật gân”, hoặc “hấp dẫn”, hoặc trích dẫn một email nào đó ở máy
nạn nhân để ngụy trang.
Điều này khiến các email giả mạo trở nên “thật” hơn và người nhận dễ
bị đánh lừa hơn. Nhờ những email giả mạo đó mà Worm lây lan mạnh mẽ
trên mạng Internet theo cấp số nhân. Bên cạnh Worm lây lan theo cách truyền
thống sử dụng email, Worm hiện nay còn sử dụng phương pháp lân lan qua ổ
USB. Thiết bị nhớ USB đã trở nên phổ biến trên toàn thế giới do lợi thế kích
thước nhỏ, cơ động và trở thành phương tiện lây lan lý tưởng cho Worm. Dựa
đặc điểm lây lan mạnh mẽ của Worm, những kẻ viết virus đã đưa thêm vào
Worm các tính năng phá hoại, ăn cắp thông tin, … Worm thường kết hợp với
các phần mềm độc hại khác BackDoor, Adware…
Rootkit
Rootkit xuất hiện vào thế kỷ 20, đầu những năm 1990. Vào tháng 2
năm 1994, thuật ngữ "rootkit" lần đầu tiên được sử dụng trong một báo cáo tư
vấn bảo mật, CA-1994-01, được thiết kế bởi CERT/CC (Nhóm/Trung tâm
Điều phối Ứng Cứu Khẩn Cấp Máy tính) và có tên là "Các cuộc tấn công
giám sát mạng đang diễn ra". Thời điểm cập nhật của báo cáo cố vấn bảo mật
là ngày 19 tháng 9 năm 1997. Từ khi xuất hiện công nghệ rootkit phát triển
rất nhanh và các ứng dụng của nó ngày càng mở rộng và ngày càng khó phát
hiện [14].
6
Ra đời sau các loại virus khác, nhưng rootkit lại được coi là một trong
những loại virus nguy hiểm nhất. Bản thân rootkit không thực sự là virus, đây
là phần mềm hoặc tập hợp các phần mềm máy tính được lập trình để can thiệp
sâu (nhân của hệ điều hành hoặc thậm chí là phần cứng của máy tính) vào hệ
thống máy tính với mục tiêu che giấu bản thân nó và các loại phần mềm độc
hại khác. Với sự xuất hiện của rootkit, các phần mềm độc hại như trở nên “vô
hình” trước những công cụ thông thường thậm chí vô hình cả với các phần
mềm diệt virus. Việc phát hiện mã độc và tiêu diệt virus trở nên khó khăn hơn
rất nhiều trước sự bảo vệ của rootkit vốn được trang bị nhiều kĩ thuật mới
hiện đại.
Botnet
Bot là những chương trình mã độc được cài lên các máy tính nạn nhân
và các máy tính này sẽ nằm trong một mạng lưới được điều khiển bởi tin tặc
gọi là mạng Botnet. Tương tự như Backdoor, Botnet cũng cho phép kẻ tấn
công truy cập và điều khiển hệ thống máy nạn nhân. Tất cả các máy bị nhiễm
cùng một loại Botnet sẽ cùng nhận một chỉ thị lệnh từ một máy chủ điều
khiển của kẻ tấn công thông qua các kênh như Internet Relay Chat (IRC) hoặc
hệ thống mạng ngang hàng peer-to-peer (P2P). Ngày nay khi đã có trong tay
một mạng lưới Botnet, các tin tặc hoặc tổ chức điều khiển Botnet có thể sử
dụng chúng như một công cụ chiến tranh mạng, tiêu biểu là tấn công từ chối
dịch vụ vào các mục tiêu cụ thể nhằm làm tê liệt hệ thống mạng của một tổ
chức hoặc thậm chí là hệ thống mạng của một quốc gia [4].
Ransomeware
Các chương trình phần mềm độc hại mã hóa dữ liệu của bạn và đòi tiền
chuộc để cung cấp khóa giải mã. Đây là loại mã độc nguy hiểm trong vài năm
gần đây và tỷ lệ phần trăm vẫn đang tăng lên. Ransomware thường làm tê liệt
các công ty, bệnh viện, sở cảnh sát và thậm chí toàn bộ thành phố [15].
Hầu hết các chương trình Ransomware là Trojans, có nghĩa là chúng
phải được lan truyền thông qua kỹ thuật truyền thông. Sau khi được thực thi,
chúng sẽ tìm kiếm và mã hóa các tập tin của người dùng trong vòng vài phút,
mặc dù một số chủng loại sẽ thực hiện cách tiếp cận chờ đợi và xem. Bằng
cách theo dõi người dùng trong vài giờ trước khi thiết lập hành vi mã hóa,
quản trị viên của phần mềm độc hại có thể đưa ra chính xác số tiền chuộc mà
nạn nhân có thể chi trả và cũng chắc chắn xóa hoặc mã hóa luôn các bản sao
lưu được cho là an toàn khác.
7
Ransomware có thể được ngăn chặn giống như mọi loại chương trình
phần mềm độc hại khác, nhưng một khi đã được thực thi, rất khó để khắc
phục thiệt hại nếu không có bản sao lưu hợp lệ, được xác thực. Theo một số
nghiên cứu, khoảng một phần tư số nạn nhân phải trả tiền chuộc, và trong số
đó, khoảng 30 phần trăm vẫn không mở khóa các tập tin của họ. Dù bằng
cách nào đi nữa, việc giải mã các tệp được mã hóa, nếu có thể có các công cụ
cụ thể, khóa giải mã và một chút may mắn. Lời khuyên tốt nhất là đảm bảo
bạn có một bản sao lưu ngoại tuyến tốt cho tất cả các tệp quan trọng.
Trong những năm gần đây, những kẻ phạm tội đã tìm cách tống tiền
thông qua các cuộc tấn công bằng mã hóa Ransomware. Dạng phần mềm độc
hại này xáo trộn dữ liệu có giá trị bằng cách mã hóa hầu như không thể phá
vỡ và giải mã nó cho đến khi trả tiền chuộc. Đây là một sự thay đổi đáng kể
so với các dạng ban đầu của Ransomware như phần mềm hù dọa hoặc khóa.
Nó đã làm tăng tác động của Ransomware và mức độ nghiêm trọng của mối
đe dọa [16].
1.4.2. Xác định loại mã độc bằng dịch vụ virustotal
Trong luận văn này, mã MD5 của mã độc được sử dụng để tìm kiếm
tên của mã độc bằng virustotal [17]. Virustotal là một dịch vụ web phân tích
các tệp mã độc và tạo điều kiện thuận lợi cho việc phát hiện nhanh chóng
virus, worm, trojan, … và tất cả các loại mã độc được cung cấp bởi các hãng
chống virus khác nhau.
1.5. Kỹ thuật phân tích mã độc
Ở phần này mô tả hai kỹ thuật chính phân tích mã độc bao gồm: phân
tích tĩnh và phân tích động. Chi tiết của hai kỹ thuật này được mô tả dưới đây:
1.5.1. Phân tích động
Kỹ thuật phân tích động là kỹ thuật phát hiện hành vi của mã độc bằng
cách cho nó thực thi rồi quan sát, ghi lại những thay đổi của nó trong quá
trình chạy và sau khi chạy. Và thường thì mã độc sẽ được thực hiện trong máy
ảo. Bên cạnh đó sử dụng một số công cụ như SysAnalyzer, Process Explorer,
ProcMon, RegShot, IDA pro, Ollydbg, Immunity và các công cụ khác để xác
định và các kỹ thuật phân tích hành vi nói chung Error! Reference source
ot found..
8
Với kỹ thuật phân tích động, chuyên gia thực hiện kỹ thuật dịch ngược
bằng cách sử dụng các công cụ phân tích như IDA pro, Ollydbg, Immunity để
hiểu mã độc bằng cách nhìn thấy cấu trúc của mã độc. Phân tích động mã độc
có một lợi thế là nó hoàn toàn có thể khám phá ra mục đích và chức năng của
mã độc. Tuy nhiên, nghiên cứu cần thời gian để hiểu được chức năng của mã
độc bằng cách phân tích cấu trúc mã độc. Ngoài ra, hầu hết các mã độc hiện
đại sử dụng kỹ thuật đóng gói để chỉnh sửa chính nó. Đóng gói là chương
trình chỉnh sửa các tệp tin của chương trình khác để nén nội dung của chúng.
Khi chương trình đóng gói nén, mã hóa, hoặc chỉnh sửa một chương trình
thực thi, thì chương trình đó và chương trình gốc về bên ngoài sẽ khác nhau.
Để phân tích mã độc bằng IDA pro, mã độc phải được giải nén.
Ví dụ, SysAnalyser là công cụ phân tích tuyệt vời để theo dõi các trạng
thái hệ thống và quá trình như là tiến trình đang chạy, các cổng đang mở, các
trình điều khiển được nạp, các thư viện được nhập khẩu, các thay đổi register
quan trọng, các API được gọi bởi một tiến trình đích, lưu lượng truy cập DNS
[19].
1.5.2. Phân tích tĩnh
Phân tích tĩnh là kỹ thuật tìm hiểu hành vi của mã độc mà không thực
thi chương trình mã độc. Khi nhắc tới phân tích tĩnh ta nghĩ ngay tới một công
cụ vô cùng nổi tiếng là IDA pro. Đây là một công cụ siêu kinh điển để phân
tích mã độc, trước đây IDA pro là phân mềm thuần túy disassembly cho
người phân tích thấy được mã nguồn dưới dạng mã assembly và bên cạnh đó
là một chức năng vô cùng thú vị đó là tham chiếu chương trình sang dạng mã
giả C [18] (minh họa hình 1.1).
9
Hình 1.1 Chức năng Pseudocode-A tạo mã giả C của IDA pro
Ngoài ra IDA pro có graph overview, giúp ích rất rất nhiều cho việc tìm
hiểu một cách tổng quan cách thức đoạn chương trình được thực thi.
IDA pro cũng cho phép người dùng chuyển đến một chức năng nhanh
chóng bằng cách kích đúp vào tên chức năng trong cửa sổ (minh họa hình
1.2).
Hình 1.2 Chương trình được phân tích bởi IDA pro
10
Đây là một nguồn thông tin vô cùng lớn, với kinh nghiệm và thời gian
của nhà phân tích kết hợp với kỹ thuật phân tích động để thấy được giá trị của
các biến tại thời điểm thực thi để có thể tìm hiểu được hành vi của mã độc.
Nhưng với kỹ thuật này người phân tích cần có kinh nghiệm và trình độ nhất
định vì mã giả C do phần mềm sinh ra khá khó đọc và cũng có rất nhiều kỹ
thuật chống phân tích tĩnh gây khó khăn cho việc phân tích như: mã rối, mã
giả, anti-disassembly [20], …
1.6. Kết luận chương 1
Trong chương một sẽ đưa ra bức tranh tổng quan về các kỹ thuật phân
tích mã độc hiện tại. Trước những hạn chế của những kỹ thuật phân tích hiện
tại và những ưu điểm về độ chính xác của các kỹ thuật trên. Bài toán đặt ra là
tối ưu thời gian tiếp cận và giảm thiểu thời gian phân tích. Sau chương này ta
thấy được mục tiêu của việc xây dựng một giải pháp phát hiện mã độc để
giảm thiểu thời gian phân tích và tăng độ chính xác cho quá trình phân tích.
Ngoài ra chương 1 cũng trình bày được một số loại virus phổ biến làm cơ sở
để phát hiện các mẫu mã độc.
11
- Xem thêm -