You are on page 1of 92

ĐẠI HỌC QUỐC GIA TP.

HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN


KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

TÔ TRỌNG NGHĨA

LÊ KIM DANH

KHÓA LUẬN TỐT NGHIỆP

NGHIÊN CỨU PHƯƠNG PHÁP PHÁT SINH MẪU MÃ


ĐỘC ĐỐI KHÁNG CHỐNG LẠI TRÌNH PHÁT HIỆN
MÃ ĐỘC TỔNG HỢP
A method to generate adversarial samples against the ensemble
learning-based malware detector

KỸ SƯ NGÀNH AN TOÀN THÔNG TIN

TP. HỒ CHÍ MINH, 2022


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN


KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

TÔ TRỌNG NGHĨA – 18521150

LÊ KIM DANH - 18520560

KHÓA LUẬN TỐT NGHIỆP

NGHIÊN CỨU PHƯƠNG PHÁP PHÁT SINH MẪU MÃ


ĐỘC ĐỐI KHÁNG CHỐNG LẠI TRÌNH PHÁT HIỆN
MÃ ĐỘC TỔNG HỢP
A method to generate adversarial samples against the ensemble
learning-based malware detector

KỸ SƯ AN TOÀN THÔNG TIN

GIẢNG VIÊN HƯỚNG DẪN

TS. NGUYỄN TẤN CẦM

THS. PHAN THẾ DUY

TP. HỒ CHÍ MINH, 2022


THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……………………
ngày ...............................của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
LỜI CẢM ƠN
Nhóm thực hiện khóa luận chân thành cảm ơn TS. Nguyễn Tấn Cầm cùng với ThS. Phan
Thế Duy đã theo sát quá trình thực hiện đề tài, đóng góp những ý kiến hữu ích để nhóm
có thể hoàn thành đề tài khóa luận một cách hoàn chỉnh nhất.
Nhóm xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên, khuyến khích nhóm hoàn
thành khóa luận.
Nhóm cũng xin cảm ơn đến tất cả quý thầy cô trường Đại học Công nghệ Thông tin –
ĐHQG TP.HCM, đặc biệt là thầy cô ở phòng thí nghiệm an toàn thông tin InSecLab và
khoa Mạng Máy tính và Truyền thông đã giúp đỡ và hỗ trợ nhóm.
Xin chân thành cảm ơn!
TP.Hồ Chí Minh, ngày 16 tháng 6 năm 2022
Nhóm tác giả

Tô Trọng Nghĩa

Lê Kim Danh
Mục lục

TÓM TẮT KHOÁ LUẬN 1

1 TỔNG QUAN 2
1.1 Tóm tắt bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Tính ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Những thách thức . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Mục tiêu, đối tượng và phạm vi nghiên cứu . . . . . . . . . . . . . . . 5
1.4.1 Mục tiêu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Đối tượng nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.3 Phạm vi nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Cấu trúc Khóa luận tốt nghiệp . . . . . . . . . . . . . . . . . . . . . . . 6

2 CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT 7


2.1 Các công trình liên quan . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Cấu trúc của tệp PE và tệp PE độc hại . . . . . . . . . . . . . . . . . . . 10
2.2.1 Cấu trúc của tệp PE . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2 Phát hiện phần mềm PE độc hại . . . . . . . . . . . . . . . . . . 11
2.2.2.1 Thu thập dữ liệu . . . . . . . . . . . . . . . . . . . . . 13
2.2.2.2 Trích xuất đặc trưng . . . . . . . . . . . . . . . . . . . 14
2.2.2.3 Huấn luyện mô hình và dự đoán . . . . . . . . . . . 17
2.3 Học tổng hợp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2 Phương pháp Stacking . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Mạng sinh đối kháng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1 Giới thiệu tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.2 Mạng Tạo sinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

v
2.4.3 Mạng Phân biệt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5 Học tăng cường . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.1 Giới thiệu tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.2 Các thành phần của học tăng cường . . . . . . . . . . . . . . . 28
2.5.2.1 Tác nhân . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.2.2 Môi trường . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.2.3 Hành động . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.2.4 Trạng thái . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.2.5 Phần thưởng . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.2.6 Chính sách . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5.3 Quá trình quyết định Markov . . . . . . . . . . . . . . . . . . . 29
2.5.4 Học tập Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5.5 Học sâu tăng cường mạng Q . . . . . . . . . . . . . . . . . . . . 31

3 PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG CHỐNG


LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP 32
3.1 Mô hình hóa mối đe dọa . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Tổng quan phương pháp tạo mã độc đối kháng . . . . . . . . . . . . . 34
3.3 Chi tiết phương pháp tạo mã độc đối kháng . . . . . . . . . . . . . . . 35
3.3.1 Mô hình FeaGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1.1 Trình Tạo sinh . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.1.2 Trình Phát hiện thay thế . . . . . . . . . . . . . . . . . 37
3.3.1.3 Trình Phát hiện mã độc . . . . . . . . . . . . . . . . . 38
3.3.1.4 Quá trình huấn luyện . . . . . . . . . . . . . . . . . . 38
3.3.2 Mô hình học tăng cường . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.2.1 Môi trường . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.2.2 Không gian hành động . . . . . . . . . . . . . . . . . . 40
3.3.2.3 Phần thưởng . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.2.4 Tác nhân . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2.5 Quá trình huấn luyện . . . . . . . . . . . . . . . . . . 43
3.4 Bộ phân tích động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4 THÍ NGHIỆM VÀ ĐÁNH GIÁ 47


4.1 Môi trường thí nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

vi
4.1.1 Cấu hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.2 Cài đặt các module và thư viện . . . . . . . . . . . . . . . . . . 47
4.1.3 Xây dựng hệ thống phân tích động . . . . . . . . . . . . . . . . 48
4.2 Kịch bản thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3 Tập dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4 Phân chia dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4.1 Mô hình FeaGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4.2 Mô hình mục tiêu . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.5 Tiền xử lý dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.5.1 Mô hình FeaGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.5.2 Mô hình mục tiêu . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.6 Tiêu chí đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.7 Triển khai và đánh giá hiệu năng thuật toán tổng hợp . . . . . . . . 56
4.7.1 trình Phát hiện mã độc trong FeaGAN . . . . . . . . . . . . . . 56
4.7.2 Mô hình mục tiêu . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.8 Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.8.1 Mô hình FeaGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.8.1.1 Mạng Tạo sinh . . . . . . . . . . . . . . . . . . . . . . . 64
4.8.1.2 Mạng Phân biệt . . . . . . . . . . . . . . . . . . . . . . 64
4.8.1.3 Đánh giá kết quả mô hình FeaGAN . . . . . . . . . . 64
4.8.2 Hiệu quả mẫu đột biến . . . . . . . . . . . . . . . . . . . . . . . 65
4.8.2.1 Triển khai . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.8.2.2 Trước khi đột biến . . . . . . . . . . . . . . . . . . . . . 66
4.8.2.3 Sau khi đột biến . . . . . . . . . . . . . . . . . . . . . . 66

5 KẾT LUẬN 72
5.1 Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

TÀI LIỆU THAM KHẢO 74

vii
Danh sách hình vẽ

2.1 Ba thách thức trong việc duy trì ngữ nghĩa của phần mềm PE độc
hại đối kháng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Cấu trúc tệp PE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Các phương pháp phát hiện mã độc . . . . . . . . . . . . . . . . . . . . 12
2.4 Tổng quan các bước trong phát hiện mã độc dựa trên học máy và
học sâu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Sơ đồ phân chia mô hình máy học dựa trên cách nó kết hợp các
thuật toán yếu và độ phức tạp . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Kiến trúc mạng GAN cơ bản . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7 Lan truyền ngược huấn luyện mạng Tạo sinh . . . . . . . . . . . . . . 25
2.8 Lan truyền ngược trong huấn luyện mạng Phân biệt . . . . . . . . . . 26
2.9 Tổng quan học tăng cường . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1 Chiến lược trong hệ thống được đề xuất . . . . . . . . . . . . . . . . . 34


3.2 Tổng quan về hệ thống tạo mẫu độc hại đối kháng . . . . . . . . . . . 35
3.3 Sơ đồ cấu trúc của mô hình FeaGAN . . . . . . . . . . . . . . . . . . . 36
3.4 Sơ đồ cấu trúc của mô hình DQEAF . . . . . . . . . . . . . . . . . . . . 40

4.1 Giao diện Cuckoo Sandbox . . . . . . . . . . . . . . . . . . . . . . . . . . 50


4.2 Thông tin hàm chức năng được trích xuất từ các mẫu dữ liệu . . . . 53
4.3 Thông tin phân đoạn được trích xuất từ các mẫu dữ liệu . . . . . . . 54
4.4 Dạng dữ liệu đưa vào mô hình . . . . . . . . . . . . . . . . . . . . . . . 54
4.5 Dữ liệu mẫu sau khi được tiền xử lý cho mô hình mục tiêu . . . . . 55
4.6 Diện tích dưới đường cong thuật toán đơn . . . . . . . . . . . . . . . . 60
4.7 Đường AUC thuật toán tổng hợp đồng nhất và Voting . . . . . . . . 61
4.8 Đường AUC thuật toán tổng hợp Stacking . . . . . . . . . . . . . . . . 62
4.9 Đường AUC thuật toán Gradient Boosting trong các paper trước . . 63

viii
4.10 Biểu đồ thể hiện tỉ lệ trốn tránh của các mẫu đột biến . . . . . . . . . 67
4.11 Biểu đồ thể hiện tỉ lệ trốn tránh tăng lên sau khi đột biến của các
mẫu độc hại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.12 Kiểm tra thách thức 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

ix
Danh sách bảng

2.1 Một số loại đặc trưng phổ biến trong tệp PE . . . . . . . . . . . . . . . 14


2.2 Danh mục một số phương pháp học tổng hợp . . . . . . . . . . . . . . 22

4.1 Phân chia dữ liệu trong FeaGAN . . . . . . . . . . . . . . . . . . . . . . 52


4.2 Phân chia dữ liệu cho Mô hình mục tiêu . . . . . . . . . . . . . . . . . 52
4.3 Công thức các chỉ số . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.4 Bảng kết quả thuật toán đơn trong FeaGAN . . . . . . . . . . . . . . . 57
4.5 Bảng kết quả thuật toán tổng hợp đồng nhất trong FeaGAN . . . . . 57
4.6 Bảng kết quả thuật toán không đồng nhất trong FeaGAN . . . . . . 58
4.7 Hiệu năng thuật toán đơn và tổng hợp đồng nhất của Mô hình mục
tiêu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.8 Hiệu năng thuật toán tổng hợp không đồng nhất của mô hình mục
tiêu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.9 Recall của trình Phát hiện mã độc trên các mẫu đặc trưng đối kháng 65
4.10 Khả năng nhận diện 2000 mẫu mã độc gốc . . . . . . . . . . . . . . . . 66
4.11 Kết quả khả năng lẩn tránh của mẫu đột biến đối với các mô hình
mục tiêu và VirusTotal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.12 Kết quả khả năng nhận diện mẫu đột biến khi thực hiện chuyển giao 68
4.13 Khả năng đảm bảo các thách thức của 100 mẫu đột biến mỗi thuật
toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

x
Danh mục từ viết tắt

GANs Generative Adversarial Networks


RL Reinforcement Learning
DQEAF Deep Q-network anti-malware Engines Attacking Framework
API Application Programming Interface
ECOC Error Correcting Output Codes
C-I-A Confidentiality-Integrity-Availability
AUC Area Under Curve
TP Ttrue Positive
TN True Negative
FP False Positive
FN False Negative

xi
Danh mục từ tạm dịch

Học máy Machine learning


Học sâu Deep learning
Không gian vấn đề Problem space
Không gian đặc trưng Feature space
Không gian đặc trưng Feature space
Hàm nhập Import
Phân đoạn Section
Trọng tải Payload
Dựa trên đặc trưng Signature-based
Dựa trên kinh nghiệm Heuristic-based
Chuỗi byte Byte sequence
Chuỗi đọc được Readable strings
Thông tin tiêu đề Header information
Thiên kiến quy nạp Inductive bias
Siêu học Meta learning
Bộ khung Framework
Mạng thần kinh truyền thẳng Feed-forward neural network
Ma trận nhầm lẫn Confusion Matrix

xii
TÓM TẮT KHOÁ LUẬN
Trong những năm qua, các nghiên cứu trong việc áp dụng máy học vào lĩnh vực
an toàn thông tin, đặc biệt là trong mảng phát hiện và phòng chống mã độc được
chú trọng và quan tâm sâu sắc. Rất nhiều ý tưởng và công trình nghiên cứu đã
được đề xuất và có những đóng góp to lớn cho việc nghiên cứu và ứng dụng
trong thực tế, trong đó các công trình sử dụng mô hình GANs hay sử dụng học
tăng cường (Reinforcement Learning) được rất nhiều nhà nghiên cứu lựa chọn.
Trong đề tài này, chúng tôi đề xuất hệ thống sử dụng kết hợp mô hình FeaGAN
và mô hình học tăng cường. Mục đích của hệ thống mà chúng tôi đề xuất là tạo ra
một giải pháp khắc phục hạn chế của mô hình MalGAN của Hu và Tan, mô hình
chúng tôi dựa vào để phát triển mô hình FeaGAN, bằng việc sử dụng mô hình
học tăng cường, cụ thể DQEAF do Fang và các cộng sự đề xuất. Mô hình học tăng
cường này là một mô hình được đánh giá cao trong việc đảm bảo cả ba thách thức
trong việc duy trì ngữ nghĩa của phần mềm PE độc hại đột biến đối với các cuộc
tấn công đối kháng trong thực tế chống lại sự phát hiện các phần mềm PE độc hại
(bảo đảm định dạng, bảo đảm khả năng thực thi và bảo đảm tính độc hại). Trong
mô hình FeaGAN, chúng tôi sử dụng phương pháp học tổng hợp cho trình Phát
hiện mã độc nhằm mục đích cải thiện khả năng lẩn tránh của các mẫu đối kháng
được tạo ra. Các phương pháp tổng hợp được coi là giải pháp hiện đại nhất cho
nhiều thách thức về học máy.

1
Chương 1

TỔNG QUAN

Tóm tắt
Trong chương này, nhóm chúng tôi xin trình bày tóm tắt về phương pháp nghiên
cứu tạo mã độc đối kháng chống lại trình Phát hiện mã độc tổng hợp sử dụng
kết hợp mô hình GANs và RL kèm theo các ứng dụng trong thực tế và các thách
thức mà bài toán đang gặp phải. Đồng thời đưa ra mục tiêu, đối tượng và phạm
vi nghiên cứu cũng như cấu trúc của khóa luận tốt nghiệp.

1.1 Tóm tắt bài toán


Với sự tiến bộ và phát triển nhanh chóng của công nghệ thông tin, hệ thống máy
tính đang đóng vai trò không thể thiếu và phổ biến trong cuộc sống hàng ngày
của chúng ta. Bên cạnh đó, các cuộc tấn công mạng luôn là mối đe dọa đối với an
ninh mạng đi kèm theo sự phát triển. Phần mềm độc hại (Malware, viết tắt của
Malicious Software) là một trong những cuộc tấn công mạng mạnh mẽ nhất để kẻ
tấn công thực hiện các hoạt động độc hại trong hệ thống máy tính, chẳng hạn như
đánh cắp thông tin bí mật mà không có sự cho phép, ảnh hưởng đến hệ thống
thông tin và yêu cầu một khoản tiền chuộc lớn. Trong khi phần mềm độc hại trải
rộng trên nhiều hệ điều hành (ví dụ: Windows, Linux, macOS, Android,...) với các
định dạng tệp khác nhau (Portable Executable, Executable and Linkable Format,
Mach-O, Android Application Package,...), nhóm của chúng tôi tập trung vào
phần mềm độc hại với định dạng tệp Portable Executable (PE) trong hệ điều hành

2
Chương 1. TỔNG QUAN

Windows, cụ thể là phần mềm Windows PE độc hại. Vào năm 2018, Symantec báo
cáo rằng có 246.002.762 biến thể phần mềm độc hại mới xuất hiện [1]. Theo thống
kê của Kaspersky Lab vào cuối năm 2020, trung bình có 360.000 phần mềm độc
hại được Kaspersky phát hiện mỗi ngày và hơn 90% trong số đó là phần mềm độc
hại Windows PE [2]. Đây cũng là một trong những lí do chúng tôi đánh giá cao
tính hiện thực và chọn chúng. Để giảm bớt tình trạng nghiêm trọng này, nhiều nhà
nghiên cứu đã ứng dụng máy học và học sâu trong việc phát hiện mã độc. Chúng
cung cấp cho các nhà nghiên cứu nhiều cách thông minh trong việc trích xuất đặc
trưng và phân loại [3]. Điều này cũng thúc đẩy phần nào đó trong việc phát triển
các trình nhận diện mã độc (đối với bên phòng thủ) cũng như các phương pháp
để lẩn tránh chúng (đối với bên tấn công). Tuy nhiên, các mô hình máy học và học
sâu lại rất dễ bị tấn công bởi các cuộc tấn công đối kháng [2], được tạo ra bằng
cách xáo trộn một chút các đầu vào hợp pháp, dẫn đến các phán đoán sai lầm đối
với các mô hình được nhắm đến. Để sinh ra các mẫu mã độc đối kháng như vậy,
các mô hình mạng sinh đối kháng (Generative Adversarial Networks - GANs)
chính là phương pháp được lựa chọn tiềm năng. Goodfellow và cộng sự đã giới
thiệu GANs, một khuôn khổ để huấn luyện các mô hình tạo sinh đối kháng [4]
với ý tưởng sử dụng hai mạng thần kinh nhân tạo, mạng Tạo sinh (Generator) và
mạng Phân biệt (Discriminator) cho chúng đối chọi nhau trong trò chơi minimax
để hội tụ thành một giải pháp tối ưu [5]. Không chỉ thể hiện ra được tiềm năng
trong việc tạo ra hình ảnh, âm thanh, văn bản, GANs còn được chú trọng trong
lĩnh vực an toàn thông tin, cụ thể là malware, trong việc cải thiện khả năng phát
hiện mã độc của các trình Phát hiện hay đơn thuần là việc ra các mẫu mã độc đối
kháng. Tuy nhiên, hiện nay, những nghiên cứu về GANs trong chế tạo mã độc đối
kháng vẫn còn nhiều hạn chế.

Song song với đó, những phương pháp tổng quát và mạnh mẽ hơn cũng không
ngừng phát triển và ra đời để giải quyết những cuộc tấn công này. Phương pháp
học tổng hợp là một trong số những lựa chọn đó. Đây là một kĩ thuật kết hợp
một số thuật toán học để tăng cường độ chính xác của dự đoán tổng thể [6]. Việc
này cũng tạo ra hứng thú đối với các nhà nghiên cứu mã độc trong việc tạo ra
những hướng tiếp cận mới để cải thiện hiệu quả của các mẫu mã độc đối kháng.
Có hai hướng tiếp cận chúng ta có thể nghĩ đến để cải thiện hiệu quả của các mẫu
đối kháng [1]. Hướng tiếp cận thứ nhất, sử dụng nhiều phương thức tấn công.

3
Chương 1. TỔNG QUAN

Tramèr và cộng sự đã đề xuất tấn công một bộ phân loại sử dụng nhiều loại thao
tác [7]. Nó đưa tới kết quả hiệu quả trong việc lẩn tránh bộ phân loại. Đối với
hướng tiếp cận thứ hai, chúng ta sử dụng nhiều bộ phân loại, để các mẫu đối
kháng tương tác càng nhiều càng tốt với chúng, làm tăng tính lẩn tránh của các
mẫu đối với chúng. Liu và cộng sự đã đề nghị cải thiện tính chuyển giao của các
mẫu đối kháng bằng cách tấn công một nhóm các mô hình học sâu được kết hợp
với nhau, thay vì chỉ tấn công một mô hình đơn [8]. Sau khi tham khảo các bài
báo và nghiên cứu liên quan, nhóm của chúng tôi đã quyết định xây dựng một
hệ thống tăng cường tỉ lệ lẩn tránh của các tệp Windows PE độc hại sử dụng mô
hình học máy GANs để tạo các mẫu đối kháng với tên gọi là FeaGAN, mô hình
được phát triển dựa trên mô hình MalGAN được đề xuất bởi Hu và Tan [9]. Trong
đó, trình Phát hiện mã độc sử dụng phương pháp học tổng hợp để đào tạo. Ngoài
ra, trong hệ thống, chúng tôi còn sử dụng học tăng cường để ghép những vec-tơ
đột biến được tạo ra từ FeaGAN vào phần mềm PE độc hại ban đầu, hành động
này giúp tăng khả năng lẩn tránh của chúng cũng như đảm bảo hơn khả năng
thực thi và duy trì tính độc hại của phần mềm độc hại.

1.2 Tính ứng dụng


Đề tài nghiên cứu này sẽ giúp chúng ta khảo sát tính hiệu quả của các thuật toán
tổng hợp trong việc tạo ra các mẫu mã độc đối kháng.

Đề tài cũng đề xuất một hệ thống tăng xác suất tạo ra phần mềm PE độc hại đối
kháng đảm bảo ba thách thức trong việc duy trì ngữ nghĩa: bảo đảm định dạng
tệp, đảm bảo khả năng thực thi và đảm bảo tính độc hại.

1.3 Những thách thức


Thời gian huấn luyện và tạo mẫu đối kháng khá tốn thời gian, luôn xuất hiện
những vấn đề không như mong đợi.

Vì khi sử dụng học tăng cường, số lượng hành động nhiều nên trong khi đào tạo,
có rất nhiều vấn đề xảy ra gây khó khăn cho công việc nghiên cứu.

4
Chương 1. TỔNG QUAN

1.4 Mục tiêu, đối tượng và phạm vi nghiên cứu

1.4.1 Mục tiêu


Nghiên cứu hiệu quả của việc sử dụng các thuật toán học tổng hợp trong GANs
để tạo ra các mẫu đối kháng chống lại các trình Phát hiện tổng hợp.

Ngoài ra, khắc phục nhược điểm của FeaGAN, MalGAN khi chỉ tạo ra các đặc
trưng mà không phải một tệp hoàn chỉnh bằng cách sử dụng mô hình học tăng
cường, tăng xác xuất tạo ra các tệp mã độc bảo đảm ba thách thức trong việc duy
trì ngữ nghĩa của phần mềm PE độc hại đối kháng.

1.4.2 Đối tượng nghiên cứu


Trong đề tài này, chúng tôi có 4 đối tượng nghiên cứu chính:

– Tệp phần mềm PE độc hại.

– GANs.

– Học tăng cường.

– Học tổng hợp.

1.4.3 Phạm vi nghiên cứu


Chúng tôi thực hiện xây dựng hệ thống dựa trên ngôn ngữ Python cùng với sự hỗ
trợ của nhiều thư viện như PyTorch, scikit-learn, LIEF. Trong đó, thư viện hỗ trợ
scikit-learn là một trợ thủ đắc lực cung cấp cho chúng tôi các thuật toán học tổng
hợp để nghiên cứu. Các mẫu mã độc chúng tôi chọn lựa để làm bộ dữ liệu được
thu thập từ VirusTotal. Các mẫu độc hại bao gồm các loại Adware (Download-
Helper, StartPage,...), Backdoor (Androm, Nanobot,...), Ransomware (Gandcrab,
Locker,...), Trojan (Emotet, Coinminer,...), Virus (Virut, Lamer,...), Worm (Allape,
Sobig,...) và tất cả đều là tệp thực thi trên hệ điều hành Windows 32 bit (Window
PE32).

5
Chương 1. TỔNG QUAN

1.5 Cấu trúc Khóa luận tốt nghiệp


Qua những gì đã giới thiệu về tổng quan của đề tài thực hiện trong khoá luận tốt
nghiệp, tôi xin đưa ra nội dung của Khoá luận tốt nghiệp sẽ được tổ chức như
sau:

• Chương 1: Giới thiệu tổng quan về khóa luận.

• Chương 2: Trình bày cơ sở lý thuyết, kiến thức nền tảng và các nghiên cứu
liên quan tới đề tài.

• Chương 3: Mô hình hóa mối đe dọa và trình bày tổng quan, chi tiết về hệ
thống đề xuất.

• Chương 4: Trình bày môi trường thực nghiệm, tập dữ liệu, phương pháp
đánh giá và kết quả thực nghiệm.

• Chương 5: Kết luận và hướng phát triển của khóa luận.

6
Chương 2

CÁC NGHIÊN CỨU LIÊN QUAN VÀ


CƠ SỞ LÝ THUYẾT

Tóm tắt chương


Trong chương này, nhóm chúng tôi sẽ trình bày các công trình liên quan và một
số kiến thức nền tảng, cơ sở có liên quan đến đề tài nghiên cứu.

2.1 Các công trình liên quan


Có ba thách thức trong việc duy trì ngữ nghĩa của phần mềm PE độc hại đối
kháng đối với các cuộc tấn công đối kháng trong thực tế chống lại sự phát hiện
các phần mềm PE độc hại mà những kẻ tấn công phải lưu ý: bảo toàn định dạng,
bảo toàn khả năng thực thi và bảo toàn độc hại [2].

7
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

HÌNH 2.1: Ba thách thức trong việc duy trì ngữ nghĩa của phần mềm
PE độc hại đối kháng

Không giống như hình ảnh, âm thanh hoặc thậm chí văn bản, phần mềm PE độc
hại phải tuân theo các quy tắc định dạng nghiêm ngặt của tệp PE. Do đó, đối với
các tệp PE, các phép biến đổi trong không gian vấn đề của chúng nên được xác
định theo định dạng yêu cầu. Tuy nhiên, ngay cả khi chúng ta đảm bảo định dạng
của tệp , chúng ta cũng không thể đảm bảo rằng chúng ta có thể giữ khả năng
thực thi cho tệp PE và tính độc hại ban đầu đối với phần mềm PE độc hại. Hu
và Tan [9] đã giới thiệu mô hình MalGAN để tạo các mẫu phần mềm độc hại PE
có khả năng vượt qua trình Phát hiện dựa trên danh sách gọi API. MalGAN giả
định rằng kẻ tấn công biết không gian tính năng hoàn chỉnh của trình Phát hiện
phần mềm độc hại mục tiêu. MalGAN cố gắng xây dựng một trình Phát hiện thay
thế sao cho giống với trình Phát hiện phần mềm độc hại hộp đen mục tiêu nhất
có thể và sau đó đào tạo một trình Tạo sinh để giảm thiểu xác suất độc hại của
phần mềm độc hại đối nghịch được tạo ra được dự đoán từ trình Phát hiện thay
thế bằng cách thêm một số lệnh gọi API không liên quan vào mẫu phần mềm
độc hại ban đầu. Trong một nghiên cứu khác, Kawai và cộng sự [10] đã tìm thấy
một số vấn đề từ quan điểm thực tế và đề xuất một mô hình cải tiến từ MalGAN
có tên là Improved-MalGAN. Ví dụ, Improved-MalGAN sử dụng các danh sách
gọi API khác nhau trong quá trình đào tạo MalGAN và trình Phát hiện mã độc,
trong khi MalGAN ban đầu đào tạo với cùng một danh sách gọi API. Họ cũng
cho rằng việc tạo ra các mẫu đối kháng chỉ nên được thực hiện trên một phần
mềm độc hại, điều này sẽ hiệu quả hơn việc đào tạo về nhiều phần mềm độc hại.

8
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

Vào năm 2020, Yuan và cộng sự giới thiệu GAPGAN [11], một bộ khung mới tấn
công đối kháng hộp đen dựa trên GAN được thực hiện ở cấp độ byte để chống
lại phát hiện phần mềm độc hại dựa trên học sâu, cụ thể là MalConv. GAPGAN
đầu tiên đào tạo đồng thời trình Tạo sinh và trình Phân biệt, trong đó trình Tạo
sinh dự định tạo các trọng tải đối kháng được thêm vào cuối các mẫu phần mềm
độc hại ban đầu và trình Phân biệt cố gắng bắt chước trình Phát hiện phần mềm
độc hại PE hộp đen để nhận ra cả phần mềm PE tốt ban đầu và phần mềm PE độc
hại đối kháng đã tạo. Sau đó, GAPGAN sử dụng trình Tạo sinh được đào tạo để
tạo ra các trọng tải đối kháng cho mỗi phần mềm PE độc hại đầu vào và sau đó
nối phần trọng tải đối kháng vào phần mềm PE độc hại đầu vào tương ứng, điều
này sẽ tạo ra phần mềm PE độc hại đối kháng trong khi vẫn bảo toàn các chức
năng ban đầu của nó. Các thử nghiệm cho thấy GAPGAN có thể đạt được tỷ lệ
tấn công thành công 100% chống lại MalConv chỉ với các trọng tải phụ thêm là
2,5% tổng độ dài của các mẫu phần mềm độc hại đầu vào.

Những cách tiếp cận tấn công dựa trên GAN này hầu hết đã đạt được một số
thành công trong việc bảo toàn định dạng cũng như bảo toàn khả năng thực thi,
nhưng những cách tiếp cận này không đảm bảo bảo toàn được tính độc hại. Một
phần mềm PE độc hại cho dù có thực thi được và có khả năng lẩn tránh sự phát
hiện của các trình Phát hiện mã độc nhưng lại không thực thi được tính độc hại
ban đầu của nó thì cũng không có ý nghĩa gì. Trong bài báo này, chúng tôi đề
xuất một hệ thống kết hợp FeaGAN và DQEAF. Trong đó, FeaGAN được chúng
tôi phát triển dựa trên mô hình MalGAN, còn DQEAF là một bộ khung sử dụng
học tăng cường để lẩn tránh các công cụ chống phần mềm độc hại. Bộ khung
DQEAF là một trong những phương pháp được đánh giá cao trong việc đảm bảo
cả ba thách thức trong việc duy trì ngữ nghĩa của phần mềm PE độc hại đột biến
đối với các cuộc tấn công đối kháng trong thực tế chống lại sự phát hiện các phần
mềm PE độc hại [2, 12]. Phương pháp được đã được nhóm tác giả chứng minh
tính hiệu quả Ngoài ra, chúng tôi cũng cải thiện khả năng lẩn tránh bằng cách
sử dụng phương pháp tổng hợp cho trình Phát hiện mã độc, để các mẫu phần
mềm độc hại đối kháng tương tác nhiều nhất có thể, với hy vọng tăng khả năng
lẩn tránh của các mẫu đối với trình Phát hiện mã độc sử dụng phương pháp tổng
hợp. Để chắc chắn, chúng tôi cũng cài đặt thêm hộp cát Cuckoo để kiểm tra khả
năng thực thi và tính độc hại của chúng.

9
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

2.2 Cấu trúc của tệp PE và tệp PE độc hại

2.2.1 Cấu trúc của tệp PE


PE là một định dạng tệp thực thi trong hệ điều hành Windows. Mỗi tệp PE chứa
các nhóm thông tin bao gồm hai phần chính: Tiêu đề và phân đoạn.

Trong tiêu đề, hệ điều hành sử dụng những thông tin trong phần này để ánh xạ
tệp tin vào bộ nhớ để thực thi. Mỗi tệp PE bắt đầu bằng DOS Header, theo sau
là DOS Stub, cả hai đều không quan trọng đối với chức năng của tệp PE trên hệ
thống Windows hiện đại nhưng nó tồn tại để tương thích ngược với MS-DOS.
Tiếp theo là PE Header chứa thông tin mô tả toàn bộ tệp PE, bao gồm số phân
đoạn, thời gian nó được tạo và các thuộc tính khác. PE Optional Header là phần
mô tả bổ sung cho tệp PE chi tiết hơn. Phần cuối cùng thường là Section table,
chứa thông tin về tất cả các phần trong tệp PE, bao gồm tên, kích thước, hiệu số và
các thông tin khác. Mỗi tệp PE cần ít nhất một phần để có thể thực thi [13].

Trong phần phân đoạn, nó chứa danh sách các phần phân đoạn có trong tệp PE,
mỗi phần sẽ chứa mã thực thi và thông tin cần thiết cho chương trình [13]. Số
phần phân đoạn thường không cố định. Các phần phổ biến được tìm thấy trong
tệp PE:

– .text: mã thực thi của chương trình.

– .data: dữ liệu khởi tạo của ứng dụng, chẳng hạn như chuỗi, số.

– .rdata và .edata: các bảng đã nhập và xuất (Lệnh gọi API Windows).

10
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

HÌNH 2.2: Cấu trúc tệp PE

2.2.2 Phát hiện phần mềm PE độc hại


Trong phân tích phần mềm độc hại, việc phát hiện sớm trước khi phần mềm độc
hại được thực thi sẽ ngăn chặn sự phá hủy và lây nhiễm của chúng, hai phương
pháp chính được sử dụng trong phân tích phần mềm độc hại là dựa trên chữ ký
và dựa trên kinh nghiệm [14]. Hình 2.3 biểu thị hai phương pháp phân tích chính
của mã độc:

– Phương pháp dựa trên chữ ký: phương pháp truyền thống được hầu hết các
trình Phát hiện phần mềm độc hại hiện nay sử dụng. Phương pháp này sử
dụng các đặc điểm tệp duy nhất (chuỗi byte hoặc giá trị băm) để so sánh với
cơ sở dữ liệu lớn có sẵn về phần mềm độc hại đã biết [15]. Do đó, phương
pháp này có tỷ lệ dương tính giả (FPR) nhỏ. Tuy nhiên, phương pháp này
có một hạn chế nghiêm trọng, kẻ tấn công có thể dễ dàng sửa đổi chữ ký,
đặc trưng của phần mềm độc hại để qua mặt phần mềm chống vi-rút (thay

11
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

HÌNH 2.3: Các phương pháp phát hiện mã độc

đổi thông tin không quan trọng hoặc sử dụng kỹ thuật làm nhiễu loạn [16]).
Phương pháp dựa trên chữ ký được chứng minh là nhanh và hiệu quả trong
việc phát hiện phần mềm độc hại đã biết nhưng không có khả năng phát
hiện phần mềm độc hại không nhìn thấy [17]. Hình <number> cho thấy
luồng hoạt động dựa trên đặc chữ ký.

– Phương pháp dựa trên kinh nghiệm: phân tích các mẫu đáng ngờ dựa trên
các hành vi hoặc hoạt động của chúng. Các hành động và truy cập bất
thường vào thông tin cấu hình của môi trường giả lập sẽ là độc hại hoặc
đáng ngờ. Chúng có thể cài đặt các chương trình lạ, bật tự động khởi động,
tắt tính năng bảo vệ và cố gắng phát hiện hộp cát hoặc trình gỡ lỗi, đây
là những hành vi phổ biến đối với phần mềm độc hại [18]. Tất cả các hoạt
động của nó sẽ được ghi lại , sau đó phân tích và kết luận. Phương pháp
dựa trên kinh nghiệm có thể phát hiện cả phần mềm độc hại không biết và
phần mềm độc hại bị làm xáo trộn [16]. Tuy nhiên, có một số hạn chế khi
sử dụng phương pháp này. Nếu phần mềm độc hại biết nó đang chạy trong
hộp cát hoặc môi trường ảo, nó sẽ ẩn hoạt động thực tế và thay thế nó bằng
một hành động vô hại [18]. Ngoài ra, phần mềm độc hại có thể cần thời gian
để kích hoạt tất cả các hoạt động độc hại của nó trong môi trường ảo do
thời gian phân tích và tài nguyên có hạn. Do đó, hệ thống phát hiện dựa

12
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

trên kinh nghiệm sẽ có tỷ lệ dương tính giả (FPR) [19] đáng kể, dẫn đến kết
quả sai.

Trong các tài liệu nghiên cứu gần đây, lấy cảm hứng từ sự thành công của các mô
hình học máy, học sâu trong các lĩnh vực thị giác máy tính, xử lý ngôn ngữ tự
nhiên. Các phương pháp phát hiện phần mềm độc hại tận dụng học máy, học sâu
đã được đề xuất trong phát hiện phần mềm PE độc hại. Do có khả năng tự học
tốt nên những phương pháp dựa trên học máy, học sâu sẽ có khả năng tổng quát
hóa tốt cho các dữ liệu không nhìn thấy được. Hình 2.4 minh họa các bước cần
thiết để tạo dựa trên học máy, học sâu, bao gồm ba bước chính bao gồm thu thập
dữ liệu, trích xuất đặc trưng, huấn luyện mô hình và dự đoán.

HÌNH 2.4: Tổng quan các bước trong phát hiện mã độc dựa trên học
máy và học sâu

2.2.2.1 Thu thập dữ liệu

Như đã biết trước, chất lượng của dữ liệu sẽ xác định kết quả của mô hình học
máy, học sâu [20]. Nhưng đối với các dữ liệu về phần mềm PE độc hại, không có
tiêu chuẩn cụ thể cho dữ liệu như đối với thị giác máy tính hay xử lí ngôn ngữ
tự nhiên, hầu hết các công ty an ninh mạng coi các mẫu PE là tài sản riêng của
họ và hiếm khi công khai chúng ra công chúng [2]. Một số nhà nghiên cứu cũng
công khai nguồn tệp PE của họ [21, 22, 23], nhưng không có tiêu chuẩn cụ thể cho
chúng. Việc ghi nhãn cho các mẫu được thu thập chủ yếu dựa trên VirusTotal sử

13
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

dụng nhiều loại chống vi rút khác nhau để phân loại phần mềm độc hại và lành
tính. Nhưng đối với cùng một mẫu, kết quả trả về từ các AV khác nhau không
nhất quán, vì vậy một số phương pháp đã được đề xuất [24, 25, 26, 27] để thống
nhất việc gắn nhãn dựa trên việc bỏ phiếu hoặc sử dụng các phần mềm chống
vi-rút đáng tin cậy nhất. Thông thường, nhãn cho các tệp lành tính là 0 và phần
mềm độc hại là 1.

2.2.2.2 Trích xuất đặc trưng

Khi các mẫu PE có nhãn thích hợp, cần thực hiện việc trích xuất các đặc trưng
có trong tệp, sau đó chuyển chúng thành số vì các mô hình học máy, học sâu chỉ
chấp nhận đầu vào là số. Các đặc trưng này giúp mô hình học cách nhận ra phần
mềm độc hại và phần mềm lành tính. Mẫu PE chứa nhiều thuộc tính đặc trưng,
có thể được chia thành ba loại chính: tĩnh, động và kết hợp [28, 29, 30] được tóm
tắt trong Hình 2.1.

Thể loại
Đặc trưng
Tĩnh Động
Chuỗi Byte x
Chuỗi đọc được x
Thông tin tiêu đề x
Thông tin về tài nguyên hệ thống x
Thông tin tệp x
Thông tin thanh ghi x
Thông tin mạng x
Opcode x x
Lệnh gọi hệ thống, API x x
Đồ thị luồng điều khiển x x
Biểu đồ gọi hàm x x
BẢNG 2.1: Một số loại đặc trưng phổ biến trong tệp PE

– Đặc trưng tĩnh:

14
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

Các đặc trưng tĩnh được lấy trực tiếp từ các mẫu PE mà không cần chạy
chúng, sử dụng các thư viện hỗ trợ xử lý như lief [31]. Ví dụ: chuỗi byte,
chuỗi có thể đọc được và thông tin tiêu đề.

+ Chuỗi byte (Byte Sequence): một mẫu PE là một tệp nhị phân - một
chuỗi các byte. Vì vậy, đây là một cách đơn giản để biểu diễn một tệp
PE. Nó có thể được đưa trực tiếp vào mô hình học sâu [32, 33, 34] hoặc
chuyển đổi sang định dạng trung gian như n-gram hoặc entropy của
chuỗi byte [35, 36, 37, 38, 39].

+ Chuỗi đọc được (Readable String): thông tin có lợi về việc liệu có mối
đe dọa độc hại nào có thể tiết lộ ý định và mục tiêu của kẻ tấn công như
tên tệp, địa chỉ IP, miền, thông tin chữ ký,... [2] hay không. Các chuỗi
này có thể là một tập hợp các thuộc tính nhị phân (tồn tại hoặc không),
tần suất hoặc các tính năng biểu đồ 2D [40, 37, 38, 41].

+ Thông tin tiêu đề (Header Information): đây là mô tả tổng quan về mẫu


PE, chứa các thông tin như kích thước tệp, số phân đoạn, kích thước
của phân đoạn, số lượng các hàm được nhập và xuất [2],... thường được
sử dụng trong phần mềm phát hiện PE độc hại [42, 37, 43].

– Đặc trưng động:

Các đặc trưng được trích xuất trong quá trình chạy mẫu trong môi trường
cô lập hộp cát, máy ảo và tất cả các hành vi của mẫu làm ảnh hưởng đến
môi trường sẽ được lưu lại.

+ Thông tin về tài nguyên hệ thống (System Resource Information): Phần


mềm thực thi độc hại, đặc biệt là ransomware sẽ tiêu tốn một số lượng
lớn tài nguyên hệ thống, một số phần mềm độc hại trong một họ cụ thể
có thể đi theo tài nguyên hệ thống cố định trong quá trình thực thi. Cụ
thể, việc sử dụng CPU, sử dụng bộ nhớ và các yêu cầu I/O thường sẽ
là các đặc trưng động [44, 45, 46].

+ Thông tin tệp (File Information): phần mềm độc hại - đặc biệt là ran-
somware - cần phải tương tác với các tệp trên hệ thống để đạt được
mục tiêu của kẻ tấn công. Do đó, việc ghi và đếm số lượng tệp được

15
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

truy cập, tạo, sửa đổi hoặc xóa thường xuyên được sử dụng làm các
tính năng động [47, 45, 46, 48].

+ Thông tin thanh ghi (Registry Information): Các thanh ghi lưu trữ
thông tin cấu hình của hệ thống, ứng dụng trong hệ điều hành Win-
dows. Phần mềm độc hại có thể hoạt động dựa trên đó để khởi động,
vô hiệu hóa các cấu hình như tắt tường lửa, phần mềm độc hại tự khởi
động và vô hiệu hóa trình bảo vệ. Giống như trạng thái của tệp, số
lượng thanh ghi được tạo, sửa đổi hoặc xóa cũng là một tính năng
động [47, 45, 46].

+ Thông tin mạng (Network Information): phần mềm độc hại như trojan
và ransomware sử dụng mạng để phát tán. Đặc biệt là trojan, chúng sẽ
được điều khiển từ xa nên chắc chắn sẽ có nhiều thông tin liên quan
đến mạng như các số IP duy nhất, cổng, số lượng yêu cầu HTTP (GET,
POST,...) [44, 47, 45, 46, 48].

– Đặc trưng hỗn hợp:

Cuối cùng, đặc trưng hỗn hợp được trích xuất từ tệp thực thi bằng cách tiếp
cận tĩnh hoặc động. Các đặc trưng phổ biến là opcode, System Calls/ API,
Control Flow Graph (CFG) và Function Call Graph. Ví dụ: mã opcodes và
lệnh gọi hệ thống, API có thể được trích xuất bằng trình tháo gỡ hoặc lấy từ
bộ nhớ trong quá trình thực thi.

+ Opcode: bất kỳ tệp thực thi nào cũng là một tập hợp các lệnh được thực
hiện theo một thứ tự nhất định. Trong hợp ngữ, một lệnh bao gồm một
opcode và một vài đối số theo sau. Trong đó opcode đại diện cho câu
lệnh mà chúng ta muốn thực thi và tham số đề cập đến dữ liệu hoặc
vị trí bộ nhớ tương ứng. Phần mềm độc hại thường sử dụng kỹ thuật
làm xáo trộn, lệnh NOP, để làm xáo trộn mã [49]. Đặc trưng này có thể
được biểu thị dưới dạng tần suất, chuỗi hoặc hình ảnh mã hóa [50, 51,
52, 53].

+ Lệnh gọi hệ thống, API (System Calls/API): một tệp thực thi trên hệ
điều hành Windows phải tương tác với thư viện hệ thống hoặc thư

16
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

viện ứng dụng. Biểu diễn của đặc trưng này giống với opcode, tần suất
xuất hiện và n-grams của chuỗi AP,lệnh gọi hệ thống [54, 46, 38, 41, 55].

+ Đồ thị luồng điều khiển (Control Flow Graph): đây là biểu đồ hiển thị
luồng điều khiển của tệp thực thi [56, 57]. Mỗi khối trong CFG đại diện
cho một chuỗi lệnh và mỗi cạnh biểu thị luồng thực thi giữa hai khối
[58].

+ Biểu đồ gọi hàm (Function Call Graph)[59]: hiển thị mối quan hệ giữa
các hàm khác nhau và callee (hàm được gọi), caller (người gọi) (bao
gồm lệnh gọi hệ thống, API tích hợp sẵn hoặc các hàm do người dùng
xác định).

2.2.2.3 Huấn luyện mô hình và dự đoán

Sau khi trích xuất và chuyển đổi các giá trị đặc trưng thành số từ các mẫu, cần
phải chọn một mô hình học máy, học sâu phù hợp để phân loại phần mềm độc
hại và lành tính. Nhiều mô hình học máy, học sâu đã được đề xuất như De-
cisionTree, RandomForest, MultiLayer Perceptron, Naive Bayes, Support Vector
Machine, CNN, GNN, RNN hoặc LSTM, đã đạt được thành công lớn trong lĩnh
vực thị giác máy tính, NLP, và thậm chí cả phát hiện lỗ hổng trong mã [60, 61].
Cho dù các đặc trưng của tệp PE có đa dạng đến đâu, hầu hết các mô hình học
máy, học sâu được đề cập ở trên đều đã được nghiên cứu để sử dụng trong việc
phát hiện phần mềm độc hại PE, miễn là đầu vào phù hợp với yêu cầu của mô
hình. Các mô hình sẽ học cách nhận ra phần mềm độc hại dựa trên một số lượng
lớn các mẫu đào tạo, mô hình sẽ tìm kiếm các mối quan hệ giữa các đặc trưng và
nhãn nhị phân của chúng. Để dự đoán xem một mẫu là phần mềm độc hại hay
lành tính, mô hình được đào tạo sẽ nhanh chóng tính toán xác suất của mẫu đó
được gắn nhãn phần mềm độc hại hoặc lành tính. Để tìm ra mô hình phù hợp
nhất cho việc phát hiện phần mềm PE độc hại, chúng ta phải thử nghiệm trên
nhiều mô hình học máy, học sâu.

17
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

2.3 Học tổng hợp


Người xưa nói rằng: "Hai cái đầu tốt hơn một". Khi các mô hình quá yếu hoặc
nhận được kết quả hơi khác trên một tập dữ liệu (một số mô hình tốt, một số mô
hình khác không rõ ràng), việc đặt chúng lại với nhau có thể giúp kết quả tốt hơn
đáng kể so với bất kỳ mô hình nào (nếu kết hợp và đặt chúng cùng nhau tốt) .
Một trong những ý tưởng đơn giản mà chúng ta có thể nghĩ đến là chúng ta có
thể kết hợp các kết quả bằng cách sử dụng biểu quyết đa số. Đây có thể coi là một
hình thức tổng hợp đơn giản.

2.3.1 Tổng quan


Học tổng hợp là một kỹ thuật học máy kết hợp một số mô hình cơ sở để tạo ra
một mô hình dự đoán tối ưu. Hầu hết trong các trường hợp, cấu trúc học tổng
hợp sử dụng một thuật toán học cơ sở duy nhất với cùng một kiểu, điều này được
gọi là tổng hợp đồng nhất. Mặt khác, việc sử dụng các thuật toán học tập khác
nhau được gọi là tổng hợp không đồng nhất [62]. Có nhiều ý kiến về sự thất bại
của thuật toán học đơn lẻ dẫn đến sự phát triển của các phương pháp tổng hợp.
Có ba lý do cho điều đó: thống kê (statistical), tính toán (computational) và đại
diện (representational) [63]. Thuật toán học tập cố gắng để có được giả thuyết tốt
nhất trong không gian. Do dữ liệu huấn luyện nhỏ so với kích thước của không
gian giả thuyết nên vấn đề thống kê nảy sinh. Điều này dẫn đến một thuật toán
học tập nhận được các giả thuyết khác nhau trong không gian nhưng mang lại
độ chính xác như nhau. Phương pháp tổng hợp giúp giải quyết tình huống này
bằng cách lấy trung bình các phiếu bầu của họ và sau đó giảm việc chọn bộ phân
loại không chính xác, do đó có được độ chính xác tốt trên dữ liệu đào tạo. Bên
cạnh đó, đôi khi, các thuật toán học tập bị mắc kẹt trong trạng thái tối ưu cục bộ
(local optima) ngay cả khi chúng ta có đủ dữ liệu đào tạo. Sử dụng phương pháp
tổng hợp và sau đó chạy, tìm kiếm cục bộ từ các điểm gốc khác nhau có thể dẫn
đến sự tương đồng tốt hơn với hàm chưa biết chính xác so với các phương pháp
cơ sở đơn lẻ. Trong các trường hợp lớn của học máy, thật khó để tìm ra một hàm
thực sự cho không gian giả thuyết. Bằng cách áp dụng số lượng khác nhau của
giả thuyết có trọng số, không gian của các hàm có thể biểu diễn có thể được mở

18
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

rộng. Một lý do nữa cần đề cập đến, các phương thức tổng hợp cũng rất tốt khi
có rất ít dữ liệu cũng như khi có quá nhiều [64].

Có nhiều cách để phân chia các phương pháp tổng hợp. Chúng ta có thể căn cứ
vào nhiều yếu tố để phân loại. Từ quan điểm của kẻ tấn công và người phòng thủ,
Dequiang và Qianmu đề xuất chia thành hai loại: tấn công tổng hợp và phòng thủ
theo nhóm [1]. Chúng tôi dựa vào quan điểm của họ để cải thiện hiệu quả của các
mẫu đối kháng. Chúng tôi để nó tương tác nhiều nhất có thể với nhiều bộ phân
loại để tăng khả năng tránh các mẫu đối kháng với chúng. Đối với Marsland, anh
ấy tổng hợp nó thành ba loại: boosting (AdaBoost và stumping), bagging (bao
gồm cả subbagging) và hỗn hợp phương pháp của các chuyên gia (the mixture of
expects method) [64]. Với những người khác, họ nghĩ rằng các phương thức tổng
hợp thường được phân loại thành bốn loại sau đây tùy thuộc vào cách chúng
được xây dựng: theo dữ liệu (data level), theo đặc trưng (feature level), theo bộ
phân loại (classifier level) và theo độ kết hợp (combination level) [65].

Theo chúng tôi, chúng tôi có hai cách phân chia. Cách đầu tiên, chúng tôi dựa
trên cách nó kết hợp các thuật toán yếu và độ phức tạp, chúng tôi chia nó thành
hai loại chính: mô hình đơn và mô hình tổng hợp. Trong đó mô hình tổng hợp
được chia thành hai loại là tổng hợp cơ bản và tổng hợp nâng cao. Chúng tôi đã
vẽ một sơ đồ chi tiết về điều này trong 2.5. Trong 2.5, chúng tôi cũng đã thêm một
cột về mô hình đơn song song với mô hình tổng hợp để bao quát hơn các mô hình
học máy.

HÌNH 2.5: Sơ đồ phân chia mô hình máy học dựa trên cách nó kết
hợp các thuật toán yếu và độ phức tạp

19
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

Khi xây dựng mô hình học tổng hợp, có rất nhiều yếu tố mà chúng ta cần quan
tâm và lựa chọn để tạo ra một mô hình hợp lý với hiệu suất tốt. Từ cách suy nghĩ
này, có ba cách tiếp cận mà chúng ta có thể tham khảo [66]:

– Huấn luyện mô hình:

Một mô hình tổng hợp phải xem xét hai nguyên tắc: tính đa dạng và hiệu
suất dự đoán. Mặc dù sự đa dạng mong đợi các bộ cảm ứng tham gia phải
đủ đa dạng để đạt được hiệu suất dự đoán mong muốn thông qua việc
sử dụng các thiên kiến quy nạp (inductive biases) khác nhau, hiệu suất dự
đoán của mỗi bộ cảm ứng phải càng cao càng tốt và ít nhất phải tốt như một
mô hình ngẫu nhiên.

Mô hình cần có một số thiên kiến quy nạp vì mô hình có thể hữu ích hơn
với nhiều dữ liệu hơn với nó. Mục tiêu của mô hình là phù hợp với nhiều dữ
liệu nhất, không chỉ trong dữ liệu mẫu. Vì vậy, thiên kiến quy nạp rất quan
trọng. Hơn nữa, các mô hình tổng hợp với các bộ cảm ứng đa dạng không
phải lúc nào cũng cải thiện hiệu suất dự đoán [67].

+ Thao tác đầu vào: Trong trường hợp này, mỗi mô hình cơ sở được huấn
luyện với một tập huấn luyện con khác nhau để các đầu vào khác nhau
được sử dụng cho các mô hình cơ sở khác nhau. Nó có hiệu quả đối với
những trường hợp thay đổi nhỏ trong tập huấn luyện có thể dẫn đến
một mô hình hoàn toàn khác.

+ Thao tác thuật toán học tập: Trong cách tiếp cận này, việc sử dụng mỗi
mô hình cơ sở được thay đổi. Chúng ta có thể làm điều này bằng cách
thao tác với cách mà mô hình cơ sở đi qua không gian giả thuyết.

+ Phân vùng: Có thể đạt được sự đa dạng bằng cách tách tập dữ liệu gốc
thành các tập con nhỏ hơn và sau đó sử dụng từng tập con để huấn
luyện các bộ cảm ứng khác nhau.

+ Thao tác đầu ra: Cách tiếp cận này thảo luận về các kỹ thuật kết hợp
nhiều bộ phân loại nhị phân thành một bộ phân loại nhiều lớp duy
nhất. ECOC là một ví dụ thành công của cách này.

20
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

+ Lai ghép nhóm: Ý tưởng là kết hợp ít nhất hai chiến lược khi xây dựng
mô hình tổng hợp. Thuật toán Random Forest có lẽ là biểu hiện nổi
tiếng nhất của phương pháp lai ghép nhóm. Nó không chỉ thao tác
thuật toán học bằng cách chọn ngẫu nhiên một tập hợp con các tính
năng tại mỗi nút, mà còn thao tác các thể hiện khi xây dựng mỗi cây.

– Kết hợp đầu ra:

Kết hợp đầu ra thảo luận về quá trình tích hợp các đầu ra của mô hình cơ
sở thành một kết quả duy nhất. Có hai loại chính mà chúng ta có thể tham
khảo:

+ Các phương pháp dùng trọng số: Chúng ta có thể kết hợp các đầu ra
của mô hình cơ sở bằng cách gán trọng số cho từng mô hình cơ sở. Cách
tiếp cận theo trọng số phù hợp nhất cho các trường hợp mà hiệu suất
của các mô hình cơ sở có thể so sánh được. Majority voting là phương
pháp tính trọng số đơn giản nhất cho các bài toán phân loại. Một cách
tiếp cận trọng số khác là ấn định trọng lượng tỷ lệ với cường độ của
chất cảm ứng.

+ Các phương pháp siêu học: Mô hình siêu học khác với mô hình học
máy tiêu chuẩn vì chúng bao gồm nhiều hơn một giai đoạn học tập.
Trong mô hình siêu học, các đầu ra của bộ cảm ứng riêng lẻ đóng vai
trò là đầu vào cho lớp cuối (meta-learner) để tạo ra đầu ra cuối cùng.
Phương pháp siêu học hoạt động tốt trong trường hợp một số mô hình
cơ sở nhất định có các hiệu suất khác nhau trên các không gian con
khác nhau. Stacking có lẽ là kỹ thuật siêu học phổ biến nhất.

– Bộ khung:

Chúng ta có thể chia nó thành hai bộ khung chính: bộ khung phụ thuộc và
bộ khung độc lập.

Trong bộ khung phụ thuộc, đầu ra của mỗi bộ cảm ứng ảnh hưởng đến việc
xây dựng bộ cảm ứng tiếp theo. Trong bộ khung này, kiến thức được tạo
trong các lần lặp trước sẽ hướng dẫn việc học trong lần lặp tiếp theo. Trong

21
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

bộ khung độc lập, mỗi bộ cảm ứng được xây dựng độc lập với các bộ cảm
ứng khác.

Bảng 2.2 hiển thị một số phương thức tổng hợp dựa trên các phương pháp tiếp
cận ở trên.

Tên phương thức Phương pháp kết hợp đầu ra Sự phụ thuộc Cách huấn luyện
Stacking Siêu học Độc lập Thao tác thuật toán học
AdaBoost Dùng trọng số Phụ thuộc Thao tác đầu vào
Gradient boosting machines Dùng trọng số Phụ thuộc Thao tác đầu ra
Random Forest Dùng trọng số Độc lập Lai ghép nhóm
Bagging Dùng trọng số Độc lập Thao tác đầu vào

BẢNG 2.2: Danh mục một số phương pháp học tổng hợp

2.3.2 Phương pháp Stacking


Phương pháp Stacking được giới thiệu bởi Wolpert vào năm 1992 [68], đây là một
kỹ thuật kết hợp nhiều mô hình. Phương pháp Stacking có hai giai đoạn. Giai
đoạn đầu là một tập hợp nhiều mô hình được gọi là mô hình cơ sở, trong đó các
mô hình này thường sử dụng các thuật toán khác nhau. Chúng được đào tạo để
tạo tập dữ liệu mới lưu trữ dự đoán của từng mô hình cơ sở. Và sau đó, ở giai
đoạn cuối, chúng ta sử dụng một thuật toán (được gọi là meta-learner) để đào tạo
trong tập dữ liệu mới. Nó sẽ dựa trên những dữ liệu này để đưa ra dự đoán tổng
thể cuối cùng. Mặc dù là một ý tưởng hấp dẫn, nhưng nó ít được sử dụng rộng
rãi hơn so với Bagging và Boosting. Thuật toán học theo nhóm được tóm tắt dưới
dạng thuật toán trong 1.

22
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

Thuật toán 1 Mã giả của thuật toán Stacking


Đầu vào: Bộ dữ liệu huấn luyện D = {(1 , y1 ), (2 , y2 ), ..., (n , yn )}
Các bộ phân loại cơ sở C1 , C2 , ..., Ck
Bộ phân loại giai đoạn cuối Cˆ
Đầu ra: Bộ phân loại tổng hợp đã được huấn luyện Ŝ
1 BẮT ĐẦU
Bước 1: Đào tạo các bộ cơ sở bằng cách áp dụng các bộ phân loại C lên tập dữ
liệu D
2 for  = 1, 2, ..., k do
3 B = C (D )
Bước 2: Xây dựng tập dữ liệu dự đoán mới D̂
4 for  = 1, 2, ..., n do
5 for j = 1, 2, ..., k do
6 zj = Bj ( ) ▷ sử dụng Bj để phân loại mẫu huấn luyện 
7 D̂ = {Z , y }, với Z = {z1 , z2 , ..., zk }
Bước 3: Huấn luyện bộ phân loại cuối Cˆ
8 Ŝ = Cˆ(D̂ )
9 Trả về Ŝ
10 KẾT THÚC

2.4 Mạng sinh đối kháng

2.4.1 Giới thiệu tổng quan


Mạng sinh đối kháng (Generative Adversarial Networks - GANs) là một kỹ thuật
mới nổi cho cả học tập bán giám sát và học không giám sát. Chúng đạt được
điều này thông qua việc mô hình hóa các phân phối dữ liệu nhiều lớp. Được
đề xuất năm 2014 [4], chúng có thể được biểu thị đặc trưng thông qua một cặp
mạng cạnh tranh với nhau. Ví dụ vào thực tế trong việc nhận diện tranh nghệ
thuật, một mạng là một máy chuyên làm tranh giả và cái còn lại là một chuyên
gia nghệ thuật. Bộ phần tạo dữ liệu giả, trong kiến trúc GAN được gọi là mạng
sinh (Generator), G, tạo ra dữ liệu giả mạo với mục đích làm cho nó giống với

23
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

thực tế. Chuyên gia, trong kiến trúc GAN gọi là mạng Phân biệt (Discriminator),
D, nhận cả hình ảnh giả mạo và thật nhằm mục đích phân biệt chúng và trả về
giá trị mất mát cho mỗi loại (mô tả trong Hình 2.6).Cả hai mạng được huấn luyện
đồng thời và cạnh tranh với nhau.

HÌNH 2.6: Kiến trúc mạng GAN cơ bản

2.4.2 Mạng Tạo sinh


Mạng Tạo sinh (G) là một phần của mạng GAN học cách tạo ra dữ liệu giả bằng
cách tương tác với phản hồi từ D. G sẽ học cách để làm cho D phân loại dữ liệu
mà nó sinh ra là thật.
Huấn luyện mạng Tạo sinh yêu cầu sự kết hợp chặt chẽ giữa G và D so với việc
huấn luyện D. Dữ liệu của GAN dùng để huấn luyện G bao gồm:

– Đầu vào ngẫu nhiên.

– Mạng lưới G chuyển đầu vào ngẫu nhiên thành một mẫu dữ liệu.

– Mạng lưới D dùng để phần loại dữ liệu được sinh ra.

– Đầu ra của D

– Giá trị mất mát của G, nhận được phần thưởng khi đánh lừa được D và
ngược lại sẽ bị phạt.

24
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

HÌNH 2.7: Lan truyền ngược huấn luyện mạng Tạo sinh

Để huấn luyện một mạng nơ-ron, cần phải thay đổi trọng số của mạng để giảm
độ sai hoặc mất mát cho đầu ra của nó. Trong mạng GAN, G không trực tiếp kết
nối với hàm mất mát mà chúng ta mong muốn tác động đến. G đưa vào mạng D,
và D cung cấp đầu ra mà chúng ta mong muốn tác động. Phần thêm của kiến trúc
này phải bao gồm thêm sư lan truyền ngược. Lan truyền ngược điều chỉnh từng
trong số theo đúng hướng bằng cách tính toán tác động của trong số đó với đầu
ra - đầu ra của D thay đổi như thế nào khi trong số thay đổi. Lan truyền ngược
bắt đầu ở đầu ra của D và trả ngược trở lại thông qua D tới G.
Trong quá trình huấn luyện G, cần phải giữ cho D cố định, nếu D bị thay đổi sẽ
làm khó khăn hơn trong việc làm G trở nên tốt hơn.
Quá trình huấn luyện mạng sinh gồm các bước:

– Mẫu nhiễu ngẫu nhiên.

– Tạo đầu ra của G từ mẫu nhiễu ngẫu nhiên.

– Nhận được kết quả của D là "Thật" hoặc "Giả" cho dữ liệu của G.

– Tính toán giá trị mất mát từ phân loại D.

– Lan truyền ngược thông qua D và G để đạt được sự thay đổi mong muốn.

– Sử dụng sự thay đổi đó để cập nhật trọng số cho G.

Các bước ở trên đại diện cho một vòng huấn luyện G.

25
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

2.4.3 Mạng Phân biệt


Mạng Phân biệt (D) là phần còn lại của kiến trúc mạng GAN, đóng vai trò là một
bộ phân loại. Nó cố gắng phân biệt dữ liệu thật từ dữ liệu được tạo bởi G. D có thể
sử dụng bất kỳ kiến trúc mạng nào phù hợp với loại dữ liệu mà nó đang phân loại.

Dữ liệu huấn luyện của D đến từ hai nguồn:

– Mẫu dữ liệu thật như ảnh người thật. D sử dụng những mẫu này như là
mẫu dương tính trong suốt quá trình huấn luyện.

– Mẫu dữ liệu giả được tạo ra bởi G, D sử dụng những mẫu này như là mẫu
âm tính trong quá trình huấn luyện.

Trong Hình 2.8, hai khung "Mẫu" đại diện cho hai nguồn dữ liệu đưa vào D.
Trong quá trình huấn luyện D, G sẽ không được huấn luyện. Các trọng số của G
không đổi trong khi nó tạo ra các mẫu cho việc huấn luyện D.

HÌNH 2.8: Lan truyền ngược trong huấn luyện mạng Phân biệt

D kết nối đến hai hàm mất mát. Trong suốt quá trình huấn luyện D, D bỏ qua
mất mát của G và chỉ sử dụng mất mát của D. Quá trình huấn luyện G sẽ sử dụng
mất mát của G.
Quá trình huấn luyện D:

26
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

– D phân loại của dữ liệu thật và giả nhận được từ G.

– Mất mát của D phạt D khi phân loại sai dữ liệu thật là giải hoặc giả là thật.

– D cập nhật trọng số của nó thông qua lan truyền ngược từ mất mát D thông
qua mạng D.

2.5 Học tăng cường

2.5.1 Giới thiệu tổng quan


Trong lĩnh vực học máy, bên cạnh học giám sát và học không giám sát thì học
tăng cường (Reinforcement Learning) cũng là một nhánh trong đó. Phương pháp
này dựa vào việc một tác nhân (agent) sẽ quyết định thực hiện một hành động
(action) phù hợp sau đó tương tác với môi trường (environment) để nhận được
phần thưởng (reward) tốt nhất trong một tình huống cụ thể và nhận lại được trạng
thái mới (state). Không giống như học giám sát khi mà dữ liệu đào tạo sẽ có sẵn
nhãn trong đó để mô hình được huấn luyện với câu trả lời đúng, bản chất của
học tăng cường là thử nghiệm và mắc lỗi, nghĩa là thử đi thử lại và rút ra kinh
nghiệm sau mỗi lần thử. Hình 2.9 mô tả tổng quan quá trình huấn luyện học tăng
cường.

HÌNH 2.9: Tổng quan học tăng cường

27
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

2.5.2 Các thành phần của học tăng cường


2.5.2.1 Tác nhân

Tác nhân là chủ thể đưa quyết định về hành động sẽ thực hiện dựa trên reward và
hình phạt. Mục tiêu chính của tác nhân là cải thiệu hiệu suất bằng cách nhận được
reward càng lớn càng tốt.Tác nhân học theo cách chọn và thử nghiệm, và dựa vào
kinh nghiệm, nó học cách thực hiện yêu cầu theo cách tốt nhất. Ví dụ "con người"
là một tác nhân.

2.5.2.2 Môi trường

Môi trường là nơi mà tác nhân tồn tại và tương tác trong đó. Tác nhân có thể tương
tác trong môi trường bằng cách thực hiện một số hành động nhưng không làm ảnh
hưởng đến khả năng hoạt động của môi trường bởi những hành động đó. Nếu "con
người" là tác nhân thì "môi trường trái đất" chính là môi trường, Chúng ta có thể
dùng hành động tương tác với môi trường nhưng sẽ bị hạn chế bởi luật pháp để
ngăn sự ảnh hưởng không tốt đến môi trường.

2.5.2.3 Hành động

Hành động là cách tác nhân cho phép nó tương tác và thay đổi môi trường của
nó. Môi hành động được thực hiện bởi tác nhân đều mang lại phần thưởng từ môi
trường.Hành động nào được chọn để thực hiện do chính sách quyết định. Ví dụ
robot dò đường trong mê cung sẽ thực hiện hành động đi lên, xuống, trái hoặc
phải.

2.5.2.4 Trạng thái

Trạng thái là tình hình hiện tại được môi trường trả lại sau mỗi hành động được thực
hiện bởi tác nhân. Khi robot di chuyển sẽ trả về vị trí mới của nó sau khi thực hiện
hành động.

2.5.2.5 Phần thưởng

Sau khi thực hiện một hành động, môi trường phản hồi cho tác nhân một phần thưởng
để đánh giá hành động của tác nhân. Mục tiêu của tác nhân là tối đa hóa phần thưởng

28
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

mà nó nhận được, giá trị phần thưởng giúp xác định đâu là sự kiện tốt và xấu đới
với tác nhân, đồng thời cũng là cơ sở chính để thay đổi chính sách phù hợp. Nếu
một hành động được lựa chọn bởi chính sách hiện tại mang đến phần thưởng thấp
thì chính sách đó có thể bị thay đổi, tác nhân sẽ lựa chọn các hành động khác trong
khi gặp lại tình huống tương tự trong tương lai.

2.5.2.6 Chính sách

Một chính sách có thể được định nghĩa là cách một tác nhân hành động tại một thời
điểm nhất định. Nó ánh xạ các trạng thái của môi trường với các hành động được
thực hiện trên các trạng thái đó.Chính sách là yếu tô cốt lõi của học tăng cường vì
một mình nó có thể xác định hành vi của tác nhân. Trong một số trường hợp, nó
có thể là một chức năng đơn giản hoặc bảng tra cứu, trong khi đối với các trường
hợp khác, nó có thể liên quan đến tính toán hoặc quá trình tìm kiếm.

2.5.3 Quá trình quyết định Markov


Quá trình quyết định Markov giúp cho việc mô hình hóa việc ra queyest định
trong các tình huống mà kết quả là một phần ngẫu nhiên và một phần dưới sự
điều khiển của một người ra quyết định. Một quá trình quyết định Markov là một
quá trình điều khiển ngẫu nhiên thời gian rời rạc. Tại mỗi thời điểm t, quá trình
này trong một trạng thái s, và tác nhân có thể chọn bất kỳ hành động a nào đang
khả dụng trong trạng thái s. Quá trình này đáp ứng tại bước thời gian tiếp theo
bằng cách di chuyển ngẫu nhiên vào một trạng thái mới s’, và đưa ra cho tác nhân
một phần thưởng tương ứng R (s, s′ ).

Xác xuất mà quá trình di chuyển vào trạng thái mới của nó s’ bị ảnh hưởng bởi
hành động được chọn. Đặc biệt, nó được đưa ra bởi hàm chuyển tiếp trạng thái
P (s, s′ ). Nên trạng thái kết s’ phụ thuộc vào trạng thái hiện tại s và hành động của
tác nhân a. Do a và s đã biết trước và độc lập có điều kiện với toàn bộ trạng thái và
hành động trước đó nên các trạng thái chuyển tiếp s’ thỏa mã thuộc tính Markov. Ví
dụ, như hình bên dưới, với vị trí của tác nhân đang đứng hiện tại, việc nó đi đến
đích bằng cách nào không quan trọng, nó có thể đi lòng vòng từ dưới lên hoặc
qua lại từ phải qua trái hàng ngàn lần trước khi đến đích. Dù có là hành động nào
thì khi tác nhân đã ở vị trí đó, xác suất đi xuống/lên, sang phải/trái vẫn giống

29
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

nhau. Do đó thuộc tính Markov là tính "không nhớ", ta không cần phải lưu một
chuỗi các trạng thái s trước đó để biểu diễn trạng thái hiện tại khiến cho việc tính
toán trở nên phức tạp và tiêu tónn bộ nhớ.

2.5.4 Học tập Q


Để tác nhân biết phải chọn hành động nào để đạt được phần thưởng lớn nhất, tác
nhân sẽ sử dụng một giá trị Q được tính bằng công thức 2.1:

Q(s, ) = r (s, ) + γm Q(s′ , ) (2.1)

Trong đó Q(s, a) là giá trị Q khi thực hiện hành động a tại trạng thái s; r(s, a) là phần
thưởng nhận được; s’ là trạng thái kế tiếp, γ là hệ số chiết khấu kiểm soát đóng
góp của phần thưởng trong tương lai. Q(s’, a) sẽ phụ thuộc vào Q(s”, a) và sau đó
sẽ có một hệ số bình phương γ. Do đó, giá trị Q phụ thuộc vào giá trị Q của các
trạng thái tương lai được thể hiện bên dưới:

Q(s, ) → γQ(s′ , ) + γ2 Q(s”, ).........γn Q(s”...n , ) (2.2)

Thay đổi giá trị của γ sẽ giảm hoặc tăng sự đóng góp của phần thưởng tương lai.
Học tăng cường là một quá trình ngẫu nhiên giá trị Q ở thời điểm trước và sau
khi thực hiện hành động sẽ khác nhau. Sự khác biệt này gọi là sự khác biệt tạm
thời tính bởi công thức 2.3:

TD(, s) = R(s, ) + γm′ Q(s′ , ′ ) − Qt−1 (s, ) (2.3)

Như vậy, Q(s, a) cần phải cập nhật trọng số dựa trên công thức 2.4:

Qt (s, ) = Qt1 (s, ) + αTDt (, s) (2.4)

Trong đó α là tỉ lệ học tập, qua các lần tác nhân thực hành động, Q(s, a) sẽ dần hội
tụ.

30
Chương 2. CÁC NGHIÊN CỨU LIÊN QUAN VÀ CƠ SỞ LÝ THUYẾT

2.5.5 Học sâu tăng cường mạng Q


Trong học sâu tăng cường, sử dụng một mạng nơ-ron để xấp xỉ hàm giá trị Q.
Trạng thái là đầu vào và giá trị Q của tất cả các hành động được là đầu ra.

Phần quan trọng nhất của mạng nơ-ron là hàm mất mát. Mục đích là để mạng
nơ-ron học được cách ước lượng giá trị Q cho các hành động một cách chính xác
nên hàm mất mát phải tính được sai số giữa giá trị Q thực tế và dự đoán.

Thách thức của mạng nơ-ron là nếu nó cứ liên tục bị đẩy vào các trạng thái một sẽ
dễ gặp phải vấn đề "học quá khớp" do các trạng thái gần nhau thường giống nhau
hoặc có tính tuyến tính (ví dụ: liên tục đi xuống/sang phải/...) Kỹ thuật phát lại
kinh nghiệm được tạo ra để loại bỏ thách thức này. Thay vì mỗi trạng thái mạng
cập nhật một lần, lưu lại các trạng thái vào bộ nhớ sau đó thực hiện lấy mẫu thành
các lô nhỏ đưa vào mạng nơ-ron học. Việc này giúp đa dạng hóa đầu vào và tránh
"học khớp".

Toàn bộ quá trình của học sâu tăng cường mạng Q:

– Tiền xử lý dữ liệu và cung cấp trạng thái cho mạng nơ-ron, đầu ra giá trị Q
của tất cả các hành động có thể xảy ra trong trạng thái đó.

– Chọn một hành động sử dụng chính sách giá trị nhỏ-tham lam, chọn hành động
a với xác suất 1 - ε, chọn hành động có giá trị Q tối đa là a = argmax(Q(s, a,
w))

– Thực hiện hành động trong trạng thái s và chuyển sang trạng thái s’ để nhận
phần thưởng. Trạng thái s’ là vị trí sau khi thực hiện hành động và lưu dữ liệu
[s, a, r, s’] vào bộ nhớ.

– Lấy một số lượng mẫu ngẫu nhiên từ bộ nhớ và tính toán giá trị mất mát.

– Thực hiện giảm độ dốc với các tham số mạng thực tế để giảm giá trị mất
mát.

– Lặp lại cho đến khi kết số vòng đã đặt ra.

31
Chương 3

PHƯƠNG PHÁP PHÁT SINH MẪU


MÃ ĐỘC ĐỐI KHÁNG CHỐNG
LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC
TỔNG HỢP

Tóm tắt chương


Trong chương này, chúng tôi sẽ mô hình hóa mối đe dọa cũng như trình bày tổng
quan và chi tiết về hệ thống tạo mã độc đối kháng đã được chúng tôi đề cập ở
những phần đầu.

3.1 Mô hình hóa mối đe dọa


Có 3 loại kịch bản tấn công khi xét trên mức độ hiểu biết của kẻ tấn công về đối
tượng mục tiêu, hình thức đối kháng: hộp trắng, hộp xám và hộp đen.

– Trong tấn công hộp trắng, ngữ cảnh tấn công được giả định rằng kẻ tấn công
có kiến thức đầy đủ về dữ liệu huấn luyện, thuật toán và mô hình học máy
cùng với các siêu tham số khi huấn luyện mô hình. Trường hợp này cũng
đại biểu cho việc kẻ tấn công có đầy đủ và chính xác thông tin về mô hình
học máy mục tiêu mà chúng định tấn công. Tuy nhiên, trong hầu hết các

32
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

ngữ cảnh thực tế, trường hợp này thường không khả thi và không thường
xảy ra.

– Đối với các trường hợp tấn công hộp xám, thông tin về mô hình học máy
mục tiêu mà kẻ tấn công có, bị hạn chế hơn so với trong hộp trắng (ví dụ:
một phần thông tin của thuật toán học máy, hạn chế quyền truy cập vào dữ
liệu đào tạo). Trong nhiều bài viết, tác giả chỉ chia làm 2 loại là hộp trắng
và hộp đen, và trường hợp tấn công hộp xám được xem ra trường hợp được
sinh ra lai hợp của 2 loại này.

– Trong trường hợp tấn công hộp đen, kẻ tấn công hoàn toàn không biết gì
về hệ thống học máy mục tiêu. Với kịch bản này, có nhiều ý kiến cho rằng
không thể thực hiện một cuộc tấn công hộp đen thực sự vì kẻ tấn công phải
có một số thông tin nhất định, ví dụ như thông tin vị trí đặt mô hình học
máy mục tiêu, kết quả đầu ra của các mô hình học máy trên dữ liệu họ cung
cấp. Đây cũng có thể là một phần lí do hộp xám xuất hiện.

Trong cách tiếp cận của chúng tôi, hệ thống đề xuất hoạt động trong tấn công
hộp đen và hộp xám cho trình Phát hiện mã độc dựa trên học tổng hợp, trong đó
chúng tôi chỉ biết đầu vào của nó. Nhìn một cách tổng thể, ở đây, chúng tôi đang
thực hiện một cuộc tấn công đối kháng vào không gian vấn đề, khi mà đầu ra sau
khi tấn công tạo ra một thực thể mã độc mới.

Mục tiêu cuối cùng của đề tài này là có thể tạo ra các các mẫu phần mềm độc hại
mới có khả năng làm sai lệch các đánh giá của trình Phát hiện (nhằm vào tính
toàn vẹn trong mô hình C-I-A) bằng một cuộc tấn công lẩn tránh. Chúng tôi hy
vọng rằng chúng có khả năng đánh lừa các mô hình học tổng hợp. Hình 3.1 cho
thấy chiến lược của chúng tôi.

33
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

HÌNH 3.1: Chiến lược trong hệ thống được đề xuất

3.2 Tổng quan phương pháp tạo mã độc đối kháng


Phương pháp tạo mã độc đối kháng được chúng tôi đề xuất trong đề tài khóa luận
này là một hệ thống được sinh ra từ sự kết hợp của mô hình FeaGAN và DQEAF.
Trong hệ thống này, FeaGAN sẽ được sử dụng để tạo ra các vec-tơ đặc trưng cho
các hàm nhập (import function) và phân đoạn (section) nhằm mục đích giảm tí lệ
dương tính thật (TPR) của trình Phát hiện trên phần mềm PE độc hại. Tuy nhiên,
cho dù việc tạo mẫu đối kháng trên không gian đặc trưng cho những đóng góp
không nhỏ trong đề tài tạo mẫu đối kháng, nhưng FeaGAN vẫn không được đánh
giá cao. Mô hình có khả năng tạo ra các vec-tơ đặc trưng đối kháng, nhưng cuối
cùng nó vẫn chỉ hoạt động trên không gian đặc trưng chứ không phải trên không
gian vấn đề, không tác động trực tiếp để tạo ra các tệp phần mềm độc hại thực
sự. Ngoài ra như đã đề cập ở chương đầu, việc sử dụng FeaGAN không đảm bảo
tệp phần mềm độc hại của chúng ta sau khi đột biến còn có khả năng thực thi và
giữ được toàn được tính độc hại. Một phần mềm PE độc hại cho dù có thực thi
được và có khả năng lẩn tránh sự phát hiện của các trình Phát hiện mã độc nhưng
lại không thực thi được tính độc hại ban đầu của nó thì cũng không có ý nghĩa
gì. Bên cạnh đó, các tác vụ đơn lẻ khác như sửa đổi tiêu đề tổng kiểm tra (header
checksum) hay sửa đổi chữ ký số cũng không thuộc phạm vi của nó.

Việc sử dụng mô hình học tăng cường DQEAF sẽ giúp chúng ta khắc phục một

34
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

số hạn chế gặp phải khi sử dụng độc lập FeaGAN. Bằng cách sử dụng mô hình
học tăng cường DQEAF, nó sẽ giúp chúng ta quyết định trình tự sửa đổi cần thực
hiện. Trong trường hợp cách hành động được chọn để sửa đổi bởi tác nhân là
thêm phân đoạn (section), hàm nhập (import) hay thay đổi tên phân đoạn, các
vec-tơ đặc trưng đối kháng được tạo ra từ FeaGAN sẽ được sử dụng. Các hành
động, thao tác mà được chúng tôi sử dụng đều là những thao tác để biến đổi một
tệp phần mềm mã độc mà không phá vỡ định dạng của nó. Tổng quan hệ thống
đề xuất trong Hình 3.2.

HÌNH 3.2: Tổng quan về hệ thống tạo mẫu độc hại đối kháng

3.3 Chi tiết phương pháp tạo mã độc đối kháng


Phương pháp tạo mã độc đối kháng được đề xuất sử dụng 2 mô hình chính là
FeaGAN và DQEAF. Trong đó, trước khi được đưa vào các mô hình, các phần
mềm độc hại sẽ được trích xuất đặc trưng để phù hợp với yêu cầu và nhu cầu đầu
vào của mô hình.

Đối với mô hình FeaGAN, đây sẽ là nơi để chúng ta tạo ra đầu ra là các vec-tơ
đột biến có khả năng qua mặt trình Phát hiện mã độc sử dụng các thuật toán học
tổng hợp. Vì đầu ra của FeaGAN thực chất chỉ là các chuỗi bit gồm 0 và 1 nên

35
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

các kết quả này sẽ được chúng ta ánh xạ ngược lại để lấy ra các đặc trưng tương
ứng, từ đó chúng sẽ được trích xuất một lần nữa để làm nguyên liệu cho mô hình
DQEAF chọn lựa để ghép vào phần mềm độc hại, tạo ra sản phẩm cuối cùng là
các tệp phần mềm PE độc hại đối kháng hoàn chỉnh. Ngoài ra, trong đề tài này,
chúng tôi còn tích hợp bộ phân tích động Cuckoo để kiểm tra khả năng thực thi
cũng như tính độc hại của phần mềm độc hại.

3.3.1 Mô hình FeaGAN


Mô hình FeaGAN của chúng tôi lợi dụng danh sách gọi API để tạo ra các mẫu
phần mềm độc hại PE có khả năng vượt qua trình Phát hiện . FeaGAN giả định
rằng kẻ tấn công biết không gian tính năng hoàn chỉnh của trình Phát hiện phần
mềm độc hại mục tiêu. FeaGAN cố gắng xây dựng một trình Phát hiện thay thế
sao cho giống với trình Phát hiện phần mềm độc hại hộp đen mục tiêu nhất có
thể và sau đó đào tạo một trình Tạo sinh để giảm thiểu xác suất độc hại của phần
mềm độc hại đối kháng được tạo ra, được dự đoán từ trình Phát hiện thay thế
bằng cách thêm một số lệnh gọi API không liên quan vào mẫu phần mềm độc hại
ban đầu.

Trong đề tài này, trình Phát hiện mã độc sử dụng các thuật toán học tổng hợp.
Việc để các mẫu mã độc tương tác với nhiều bộ phân loại trong việc tạo ra các
mẫu đối kháng được cho là cho ra các mẫu đối kháng có khả năng qua mặt trình
Phát hiện tốt hơn so với tương tác với bộ phân loại đơn. Hình 3.3 mô tả cấu trúc
của mô hình.

HÌNH 3.3: Sơ đồ cấu trúc của mô hình FeaGAN

36
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

3.3.1.1 Trình Tạo sinh

Đây là một trong mạng cơ bản và quan trọng trong một mô hình GANs. Nhiệm
vụ của trình Tạo sinh là tạo ra mẫu đối kháng cho trình Phát hiện thay thế phân
biệt trong trò chơi đối kháng giữa hai lớp mạng này, sử dụng vec-tơ đặc trưng m
cùng với một vec-tơ nhiễu z làm đầu vào và sẽ được đưa vào một mạng thần kinh
truyền thẳng (Feed-forward neural network). Vec-tơ đặc trưng m ở đây là một
vec-tơ nhị phân M chiều được trích xuất từ tệp độc hại ban đầu. Mỗi phần tử của
m (0 hoặc 1) thể hiện cho một đối tượng đặc trưng nào đó có (thể hiện bằng số 1)
hay không (thể hiện bằng số 0). z là vec-tơ làm nhiễu Z chiều, trong đó Z là siêu
tham số, các phần tử của z là các số ngẫu nhiên và được lấy từ phân phối đồng
nhất trong phạm vi [0,1). Tác dụng của z là cho phép trình Tạo sinh tạo ra nhiều
mẫu đối kháng khác nhau từ một vec-tơ đặc trưng duy nhất. Vì để đảm bảo định
dạng và không làm ảnh hưởng đến quá trình hoạt động của tệp, ở đây chúng tôi
chỉ xem xét các đặc trưng không liên quan đến khả năng thực thi của tệp.

3.3.1.2 Trình Phát hiện thay thế

Nếu xem xét đối với một mô hình mạng GANs bình thường, trình Phát hiện thay
thế chính là mạng Phân biệt, chỉ là, nó khác với mạng Phân biệt bình thường một
điểm, đó là trình Phát hiện thay thế có sự hỗ trợ của một trình Phát hiện mã độc
trong việc phân biệt các nhãn của phần mềm độc hại, giúp gửi các tín hiệu, phản
hồi về cho trình Tạo sinh.

Trình Phát hiện thay thế là một mạng thần kinh truyền thẳng với đầu vào là vec-
tơ đặc trưng đã được trình Phát hiện mã độc gắn nhãn. Nhiệm vụ của trình Phát
hiện thay thế là phân loại các mẫu đối kháng được tạo ra từ trình Tạo sinh là độc
hại hay lành tính.

Để huấn luyện cho trình Phát hiện thay thế, các mẫu độc hại đối kháng sẽ được
trộn với các mẫu lành tính đã được trích xuất từ các tệp lành tính được thu thập
từ trước. trình Phát hiện thay thế sẽ được huấn luyện sao cho giống với trình Phát
hiện mã độc nhất có thể.

37
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

3.3.1.3 Trình Phát hiện mã độc

Mục đích của trình Phát hiện mã độc trong mô hình FeaGAN là để giúp trình
Phát hiện thay thế dự đoán các vec-tơ đối kháng là độc hại hay lành tính. Vì để
khảo sát tính hiệu quả của các thuật toán học tổng hợp trong việc dùng GANs
tạo mẫu đối kháng, chúng tôi sẽ sử dụng cả các thuật toán đơn và thuật toán học
tổng hợp. Trong các thuật toán học tổng hợp, Stacking được chúng tôi chú ý hơn
so với các thuật toán học tổng hợp khác.

3.3.1.4 Quá trình huấn luyện

Bộ dữ liệu sẽ được chia làm ba phần: 1 phần cho huấn luyện trình Phát hiện mã
độc, 1 phần cho huấn luyện mô hình FeaGAN và 1 phần để kiểm tra. Phần này sẽ
được trình bày kĩ càng hơn trong chương tiếp theo.

Đầu tiên, trình Phát hiện mã độc sẽ được huấn luyện độc lập trước. Điều này giúp
trình Phát hiện mã độc có khả năng phân biệt được đâu là mã độc và đâu là lành
tính, từ đó có thể hỗ trợ cho trình Phát hiện thay thế trong quá trình huấn luyện
mô hình FeaGAN.

Tiếp theo đó, chúng ta sẽ huấn luyện mô hình FeaGAN, huấn luyện đồng thời
trình Tạo sinh và trình Phát hiện thay thế. Trình Tạo sinh sẽ nhận đầu vào là các
vec-tơ đặc trưng được trích xuất từ các tệp độc hại cùng với vec-tơ nhiễu. Nó sẽ
giúp chúng ta tạo ra các vec-tơ đối kháng, từ đó, kết hợp với các vec-tơ đặc trưng
lành tính để làm đầu vào cho trình Phát hiện mã độc. Nhiệm vụ của trình Phát
hiện mã độc là giúp trình Phát hiện thay thế gắn nhãn các vec-tơ này để làm đầu
vào cho trình Phát hiện thay thế học tập. Điều này nhằm mục đích huấn luyện
cho trình Phát hiện thay thế học cách phân biệt sự khác nhau giữa mẫu mã độc
và mẫu lành tính.

Trong quá trình huấn luyện, trình Tạo sinh và trình Phát hiện thay thế sẽ luôn
đối chọi với nhau nhưng cũng đồng thời giúp đỡ nhau tốt hơn bằng cách gửi các
tín hiệu, phản hồi về cho nhau để cải thiện khả năng của nhau. Quá trình huấn
luyện được xem như thành công khi chúng ta tạo ra được các mẫu đối kháng có
khả năng qua mặt được được trình Phát hiện mã độc, bị gán nhãn là lành tính.
Thuật toán 2 mô tả các bước huấn luyện.

38
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

Thuật toán 2 Quá trình huấn luyện FeaGAN


BẮT ĐẦU
while chưa hội tụ do
Lấy mẫu các phần mềm độc hại M
Tạo vec-tơ đặc trưng đối kháng M’ từ M
Lấy mẫu các phần mềm lành tính B
Gắn nhãn M’ và B thông qua trình Phát hiện mã độc
Cập nhật trọng số θd của trình Phát hiện thay thế bằng cách giảm dần gradient
∇ θd L D
Cập nhật trọng số θg của trình Tạo sinh bằng cách giảm dần gradient ∇θg LG
KẾT THÚC

3.3.2 Mô hình học tăng cường


Trong đề tài này, mô hình học tăng cường chúng tôi sử dụng là mô hình DQEAF
[12], được sử dụng với mục đích hỗ trợ mô hình FeaGAN tạo ra các mẫu độc
hại đối kháng hoàn chỉnh thật sự thay vì chỉ là các vec-tơ độc hại đối kháng khi
dùng FeaGAN. Với đầu vào là phần thưởng và trạng thái khi quan sát môi trường,
chúng ta mong muốn đầu ra là một chiến lược hợp lí cách lựa chọn hành động
của tác nhân cho một số trường hợp nhất định.

Chúng tôi chú trọng xây dựng các mạng thần kinh sâu với hàm kích hoạt ReLU.
Đồng thời, chúng tôi cũng đơn giản hóa mô hình bằng cách đơn giản hóa kĩ thuật
phát lại trải nghiệm (Experience Replay) - một kĩ thuật ghi nhớ phát lại hay dùng
trong học tăng cường với giả định độc lập.

Mô hình DQEAF được chúng tôi thể hiện ở Hình 3.4. Nó mô tả một cách tổng
quan về kiến trúc của mô hình học tăng cường này.

39
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

HÌNH 3.4: Sơ đồ cấu trúc của mô hình DQEAF

3.3.2.1 Môi trường

Trong mô hình DQEAF, môi trường được dùng để quan sát các biểu hiện, thành
phần của các mẫu phần mềm PE độc hại.

Việc quan sát càng toàn diện và hợp lý thì kết quả đào tạo càng dễ dàng đạt được
tỷ lệ mong đợi. Do đặc thù của học tăng cường nên không cần xử lý trước các
mẫu.

Chúng tôi xác định các đặc trưng nhị phân thô là môi trường vì nó có thể đại diện
cho một cái nhìn tổng thể về các mẫu phần mềm độc hại và nó nhạy cảm với từng
bước hành động.

3.3.2.2 Không gian hành động

Sau khi tác nhân quan sát trạng thái của môi trường, nó phải chọn một hành
động từ một tập hợp các hành động được định nghĩa sẵn. Trong mô hình DQEAF,
nhóm triển khai 10 hành động gồm:

40
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

– overlay_append: thêm một số byte ngẫu nhiên vào cuối tệp tin PE.

– imports_append: thêm ngẫu nhiên một hàm nhập chưa có trong tệp tin thực
thi, thông tin hàm nhập này là kết quả sau khi huấn luyện mô hình FeaGAN.

– section_rename: đổi tên một phân đoạn có trong tệp tin, tên section mới sử
dụng thông tin nhận được từ FeaGAN.

– section_add: thêm ngẫu nhiên một phân đoạn vào tệp tin thực thi, tên của
phân đoạn này cũng là kết quả sau khi huấn luyện FeaGAN.

– section_append: thêm ngẫu nhiên một số byte vào một section.

– upx_pack: đóng gói tệp tin bằng phần mềm UPX.

– upx_unpack: giải nén tệp tin thực thi được đóng gói bằng UPX.

– remove_signature: xóa chứng chỉ được ký cho tệp tin thực thi.

– remove_debug: xóa thông tin gỡ lỗi có trong tệp.

3.3.2.3 Phần thưởng

Đây là yếu tố làm học tăng cường khác so với các loại học máy khác.

Một Mô hình mục tiêu được sử dụng để đánh giá quan sát và nhãn đầu ra từ bộ
phân loại này được định nghĩa là phần thưởng.

Sau khi một hành động t được thực thi, bộ phân loại sẽ trả về một nhãn theo
môi trường hiện tại. Vì mục đích là tránh bị phát hiện và thực hiện ít hành động
nhất có thể, chúng tôi xác định phần thưởng cho mỗi lần đào tạo “TURN” dựa
trên nhãn được phân loại từ bộ phân loại và số lượng hành động được thực hiện.
Phần thưởng là 0 nếu nhãn là độc hại, ngược lại, được tính bằng Công thức 3.1
khi nhãn là lành tính. Với công thức này, “TURN” càng nhỏ, phần thưởng càng
lớn. "MAXTURN" được xác định, có nghĩa là tác nhân sẽ yêu cầu bồi thường thất
bại nếu các bước sửa đổi "MAXTURN" đã được thực hiện và phần thưởng vẫn
bằng 0. Bất cứ khi nào phần thưởng dương được trả lại, có nghĩa là tệp độc hại đã

41
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

qua mặt thành công, quá trình sẽ kết thúc và tác nhân có thể học hỏi từ nó.

rt = 20− (TURN−1)/MAXTURN ∗ 100 (3.1)

Ngoài ra, do môi trường là đa biến, chúng ta không đảm bảo được rằng cùng một
hành động tương tự sẽ nhận được cùng một phần thưởng. Thời gian càng nhiều,
sự khác biệt càng nhiều. Do đó, các chiết khấu ưu đãi trong tương lai (discount
future incentives) là cần thiết. Giá trị phần thưởng được tính bằng Công thức 3.2
trong bước t. γ là một hệ số chiết khấu giữa 0 và 1, và càng xa thời điểm hiện tại,
phần thưởng nhận được càng ít.

Rt = rt + γrt +1 + γ2 rt +2 + ... + γn−t rt +1


= rt + γ(rt +1 + γ(rt +2 + ...)) (3.2)
= rt + γRt +1

3.3.2.4 Tác nhân

Chúng tôi sử dụng một mạng Q tích chập (Deep Convolutional Q-network) làm
tác nhân cho mô hình học tăng cường của chúng tôi. Nó sẽ giúp chúng tôi quyết
định xem nên huấn luyện DQEAF như thế nào và thực hiện các sửa đổi nhằm mục
đích qua mặt trình Phát hiện mã độc. Mạng Q tích chập của chúng tôi gồm tổng
cộng 2 lớp ẩn (Hidden layer). Lớp ẩn đầu tiên gồm 1 lớp tích chập (Convolutional
layer) với 256 bộ lọc (filter) sử dụng hàm kích hoạt tuyến tính (Linear activation
function), một lớp chuẩn hóa hàng loạt (Batchnormalization layer) và một hàm
đơn vị tuyến tính chỉnh lưu (ReLU). Lớp ẩn thứ hai gồm 1 lớp tích chập với số
bộ lọc là 64, một lớp chuẩn hóa hàng loạt (batch-normalization layer) và một hàm
đơn vị tuyến tính chỉnh lưu (ReLU). Lớp chuẩn hóa hàng loạt được chúng tôi sử
dụng để cải thiện tính tổng quát với việc chọn Bỏ học (Dropout) và bắt đầu huấn
luyện với tốc độ cao để tăng tốc quá trình đào tạo. Ngoài, các hàm đơn vị tuyến
tính chỉnh lưu hội tụ nhanh hơn trong SGD (15), giảm bớt vấn đề biến mất độ dốc
(Gradient disappearance) và thực hiện đơn giản.

42
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

3.3.2.5 Quá trình huấn luyện

Quá trình huấn luyện được mô tả chi tiết trong Thuật toán 3 và Thuật toán 4. Việc
tích hợp 2 thuật toán lại với nhau tạo ra mô hình có độ chính xác cao hơn.

43
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

Thuật toán 3 Thuật toán đào tạo mô hình DQEAF


BẮT ĐẦU
Khởi tạo bộ nhớ M với dung lượng N
Khởi tạo 2 mạng đồng nhất, giá trị hành động Q và giá trị mục tiêu Q̂, với trọng
số ngẫu thiên θ và trọng số θ̂ = θ tương ứng
for episode = 1 to D do
Khởi tạo luồng nhị phân bnnt của một tệp được chọn bởi danh sách các tệp
đôc hại E
Trích xuất đực trưng nhị phân Snt = ExtractBinaryFeature(bnnt )
for t = 1 to T do
n
Với xác suất εn = 1.0 − N dùng để chọn một hành động bất kỳ t hoặc
chọn t = rg m Q(st , ; θ)
Chỉnh sửa bnt bằng hành động t thành bnt +1 và st +1 = ExtractBina-
ryFeature(bnt +1 ), quan sát phần thưởng rt +1
Lưu giữ thay đổi (st ; t ; rt +1 ; st +1 với thứ tự ưu tiên p = max p
if szeoƒ M > B then
for i = 1 to K do P
Mẫu chuyển đổi X P(X ) = p | jpj , trong đó j đại diện cho mỗi
thay đổi trong M
Tính TD-error δX bằng công thức δX = rX + γQ̂(st +1X , rg
m Q(stX , X ; θ); θ̂ − Q(sX , X ; θ)
Cập nhật p = δX
Đặt hàm mất mát bằng Công thức 3.3

Sử dụng thuật toán tối ưu Adam để tối ưu hóa tham số θ


Mỗi bước U, đặt lại θ̂ = θ
if hoàn thành then
break
if episode mod TEST_INTERVAL == 0 then
Chạy Thuật toán kiểm thử 4 và nhận tỷ lệ thành công SR
Lưu trữ Q và Q̂ vào mô hình mới m
if SR > MAX_RATIO then
break

KẾT THÚC

44
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP


 (r − Q 2 episode kết thúc tại bước i +1
 e )
Loss = (3.3)
 (r + γQtrget − Qe )2 Ngược lại

Thuật toán 4 Thuật toán kiểm thử của mô hình DQEAF


BẮT ĐẦU
Khởi tạo phần thưởng R = 0
Số lượng tệp kiểm thử F
for i = 1 to F do
Phân tích luồng nhị phân bnnt của F và lấy snt = ExtractBinaryFea-
ture(bnnt )
for t = i to T do
Tính toán Q̂ và chọn t = rg m Q(st , ; θ)
Thay thế bnt bằng hành động t để lấy bnt +1 , st +1 = ExtractBinaryFea-
ture(bnt +1 ), quan sát phần thưởng rt +1
Cộng rt +1 vào R
if done then
break
Tính toán giá trị SR
Trả về SR
KẾT THÚC

3.4 Bộ phân tích động


Bộ phân tích động (Sandbox) là một nơi cô lập với hệ thống bên ngoài để thực
thu các ứng dụng bị nghi ngờ là độc hại để ngăn ngừa các ứng dụng này thực thi
các hành vi không mong muốn trên hệ thống thật. Nhưng hầu hết các bộ phân
tích động thường thấy hầu hết là các bộ phân tích thương mại. Cuckoo Sandbox
nổi bật lên là một hệ thống phân tích động mã nguồn mở,không những cho phép
người dùng tự xây dựng hệ thống phân tích cho riêng mình mà còn có một cộng
đồng hỗ trợ đông đảo liên tục phát triển các chức năng cho nó. Để chứng minh

45
Chương 3. PHƯƠNG PHÁP PHÁT SINH MẪU MÃ ĐỘC ĐỐI KHÁNG
CHỐNG LẠI TRÌNH PHÁT HIỆN MÃ ĐỘC TỔNG HỢP

được mô hình đề xuất của nhóm giải quyết được ba thách thức đã đề cập, nhóm
sẽ triển khai hệ thống Cuckoo Sandbox để kiểm tra thách thức 2 và 3 đó là tính
thực thi và độc hại.Cuckoo gồm các thành phần chính là:

– Auxiliary (hỗ trợ): thực hiện song song trong quá trình phân tích, hỗ trợ
giám sát lưu lượng mạng, tự động nhất phím, chụp màn hình,...

– Machinery (máy ảo): tương tác với máy ảo, tự khởi động và khôi phục máy
ảo về trạng thái đã lưu trước đó.

– Analysis Packages (phân tích): gồm phân tích tĩnh (lấy thông tin có sẵn
trong tệp tin thực thi), các hàm API có sẵn trong tệp, lưu lại các hành vi
của malware (tệp tin, khóa REGISTRY, tiến trình sinh ra).

– Processing (xử lý): xứ lý dữ liệu nhận được từ máy ảo gồm phân tích bộ
nhớ, chuỗi ký tự, chứng chỉ, phân tích tiến trình.

– Signatures (đặc trưng): sau khi phân tích xong tệp tin, thực hiện chạy các
đặc trưng có sẵn trong hệ thống để so khớp với hành vi của tệp tin hiện tại.

– Reporting (tạo báo cáo): lưu báo cáo vào định dạng JSON/HTML/PDF.

46
Chương 4

THÍ NGHIỆM VÀ ĐÁNH GIÁ

Tóm tắt chương


Trong chương này, nhóm sẽ tiến hành cài đặt, triển khai mô hình, đánh giá kết
quả thực nghiệm trên các kịch bản khác nhau với các thuật toán đơn và tổng
hợp.

4.1 Môi trường thí nghiệm

4.1.1 Cấu hình


Các kịch bản thực nghiệm huấn luyện mô hình FeaGAN, các trình Phát hiện đơn
và tổng hợp được thực hiện trên máy ảo Ubuntu 18.04 LTS, có cấu hình CPU 16
nhân, RAM 30 GB và dung lượng hơn 300 GB.

4.1.2 Cài đặt các module và thư viện


• Sử dụng trình quản lý thư viện python phiên bản 8.1.1.

• Mô hình FeaGAN và học tăng cường được xây dựng dựa trên mạng nơ-ron
có trong thư viện PyTorch phiên bản 1.0.0.

• Các thuật toán học máy sử dụng cho trình Phát hiện mã độc, bộ Phân loại
sử dụng thuật toán đơn và tổng hợp được triển khai sử dụng thư viện hỗ
trợ scikit-learn phiên bản 0.22 để sử dụng được các thuật toán học tổng hợp.

47
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

• Để thao tác với tệp tin thực thi trên Windows bao gồm việc trích xuất đặc
trưng để huấn luyện FeaGAN và học DQEAF, thực hiện các hành động lên
môi trường là tệp PE, nhóm sẽ sử dụng thư viện LIEF. [31] phiên bản 0.7.0.

4.1.3 Xây dựng hệ thống phân tích động


Để xây dựng hệ thống phân tích động, nhóm sử dụng Cuckoo Sandbox [69], là
một hệ thống phân tích động mã nguồn mở, có thể sử dụng cả giao diện web và
giao diện dòng lệnh. Với ưu thế mã nguồn mở, Cuckoo Sandbox có thể tận dụng
sự đóng góp, sáng tạo của cộng đồng để ngày càng trở nên hiệu quả và ổn định
hơn. Người sử dụng hoàn toàn có thể tự chỉnh sửa, xây dựng các mô đun theo ý
muốn cho từng giai đoạn của quá trình phân tích. Ngoài ra, khả năng nhận diện
các hành vi độc hại của mã độc ngày càng được cập nhật nhờ cộng đồng đông
đảo. Phiên bản Python sử dụng cho Cuckoo Sandbox là 2.7.

Cài đặt Cuckoo Sandbox

• Các phụ thuộc hệ thống cần thiết:

$ sudo apt-get install -y virtualbox vim curl net-tools htop


python python-pip python-dev libffi-dev libssl-dev
python-virtualenv python-setuptools python-magic
python-libvirt ssdeep libjpeg-dev zlib1g-dev swig mongodb
postgresql libpq-dev build-essential git libpcre3 libpcre3-dev
libpcre++-dev libfuzzy-dev automake make libtool gcc tcpdump
dh-autoreconf flex bison libjansson-dev libmagic-dev
libyaml-dev libpython2.7-dev tcpdump apparmor-utils
iptables-persistent

• Các phụ thuộc của Python:

48
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

$ sudo pip install -U gdown==3.10.0 sqlalchemy==1.3.3


pefile==2019.4.18 pyrsistent==0.17.0 dpkt==1.8.7 jinja2==2.9.6
pymongo==3.0.3 bottle yara-python==3.6.3 requests==2.13.0
python-dateutil==2.4.2 chardet==2.3.0 setuptools psycopg2
pycrypto pydeep distorm3 cuckoo==2.0.7 weasyprint==0.36
m2crypto openpyxl ujson pycrypto pytz pyOpenSSL
werkzeug==0.16.1

• Cài đặt pyssdeep:

$ git clone https://github.com/bunzen/pySSDeep.git && cd pySSDeep


&& sudo python setup.py build && sudo python setup.py install

• Cài đặt Yara:

$ wget https://github.com/VirusTotal/yara/archive/v3.7.1.tar.gz
&& tar -xzvf v3.7.1.tar.gz && cd yara-3.7.1 && sudo
./bootstrap.sh && sudo ./configure --with-crypto
--enable-cuckoo --enable-magic && sudo make && sudo make
install

• Cài đặt volatility:

$ git clone
https://github.com/volatilityfoundation/volatility.git && cd
volatility && sudo python setup.py build && sudo python
setup.py install

• Cài đặt máy ảo Windows 7: môi trường thực thi mã độc cũng như để kiểm
tra tính thực thi và độc hại của tệp sau khi đột biến (thách thức 2 và 3).

• Khởi động Cuckoo Sanbox: cuckoo, cuckoo web runserver (giao diện web).

Giao diện web của Cuckoo Sandbox

49
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.1: Giao diện Cuckoo Sandbox

50
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

4.2 Kịch bản thực nghiệm


Nhóm sẽ thực hiện qua hai kịch bản để đánh giá hiệu quả của thuật toán học tổng
hợp và thuật toán học đơn.

– Cùng loại - cùng loại: huấn luyện mô hình tạo mã độc đột biến và bộ Phân
loại dùng để đánh giá sử dụng cùng một thuật toán (cả tổng hợp và đơn).

– Chuyển giao: các mã độc đột biến và bộ Phân loại sẽ sử dụng thuật toán
khác nhau để đánh giá, mục tiêu là đánh giá hiệu quả của thuật toán học
tổng hợp so với thuật toán học đơn.

4.3 Tập dữ liệu


Dữ liệu huấn luyện và đánh giá mà nhóm sẽ sử dụng bao gồm 115 000 tệp thực
thi trên hệ điều hành Windows 32 bit (Windows PE32), bộ dữ liệu này được lọc
ra từ bộ dữ liệu gốc bao gồm hơn 200 000 mẫu chứa cả PE32 và PE32+ [70]. Trong
đó:

– 55 000 tệp là lành tính được thu thập từ các tệp hệ thống của hệ điều hành
Windows 7 trở lên và một số tệp cài đặt phần mềm.

– 60 000 tệp độc hại được thu thập từ nguồn VirusTotal, các tệp độc hại đều
được phát hiện bởi ít nhất một nửa trên tổng số trình Phát hiện mã độc
trên VirusTotal. Các mẫu độc hại bao gồm các loại Adware (Download-
Helper, StartPage,...), Backdoor (Androm, Nanobot,...), Ransomware (Gand-
crab, Locker,...), Trojan (Emotet, Coinminer,...), Virus (Virut, Lamer,...), Worm
(Allape, Sobig,...).

4.4 Phân chia dữ liệu

4.4.1 Mô hình FeaGAN


Nhóm sử dụng 5000 mẫu lành tính và 8000 mẫu độc hại để huấn luyện mô hình
FeaGAN, dữ liệu lành tính dành cho việc huấn luyện sẽ được chia theo tỉ lệ 0.8

51
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

(huấn luyện) và 0.2 (kiểm tra),dữ liệu độc hại được chia theo tỉ lệ 0.6 (huấn luyện),
0.2 (GAN), 0.2 (kiểm tra). Trong đó:

– Huấn luyện trình Phát hiện mã độc sử dụng phần 0.8 của dữ liệu lành tính
và 0.6 của dữ liệu độc hại, sau đó nó được đánh giá hiệu quả sử dụng phần
0.2 của cả lành tính và độc hại.

– Mạng sinh sử dụng phần 0.2 (GAN) của dữ liệu độc hại để huấn luyện mạng
Tạo sinh tạo các mẫu đặc trưng đối kháng qua mặt trình Phát hiện mã độc.

Số lượng chi tiết các mẫu lành tính và độc hại cho từng thành phần FeaGAN thể
hiện trong Bảng 4.1.

Thành phần Lành tính Độc hại


Huấn luyện 4000 Huấn luyện 4800
trình Phát hiện mã độc
Kiểm tra 1000 Kiểm tra 1600
Huấn luyện 0 Huấn luyện 1600
GAN
Kiểm tra 0 Kiểm tra 0
BẢNG 4.1: Phân chia dữ liệu trong FeaGAN

4.4.2 Mô hình mục tiêu


Nhóm sử dụng 50 000 mẫu lành tính và 50 000 mẫu độc hại để huấn luyện và
đánh giá khả năng phân loại của Mô hình mục tiêu trước khi tạo đột biến đánh
lừa nó, dữ liệu được chia theo tỉ lệ 8:2 như Bảng 4.2

Huấn luyện Kiểm tra


Lành tính 40000 10000
Độc hại 40000 10000
BẢNG 4.2: Phân chia dữ liệu cho Mô hình mục tiêu

52
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

4.5 Tiền xử lý dữ liệu

4.5.1 Mô hình FeaGAN


Kết quả của mô hình FeaGAN là các đặc trưng có khả năng vượt qua được trình
Phát hiện mã độc, do đó đầu vào của mô hình FeaGAN sẽ được xử lý để đưa các
đặc trưng có trong tệp thực thi vào mô hình. Để trích xuất được đặc trưng, nhóm
sử dụng thư viện Lief [31], các đặc trưng được trích xuất gồm hai phần:

– Tất cả các hàm chức năng mà tệp sử dụng đi kèm với thư viện liên kết động
chứa các hàm chức năng đó, chứng sẽ được lưu vào một từ điển chung kèm
với vị trí của nó trong cột dữ liệu được thể hiện như hình 4.2.

HÌNH 4.2: Thông tin hàm chức năng được trích xuất từ các mẫu dữ
liệu

– Sau khi trích xuất hàm chức năng, tên các phân đoạn có trong tệp là phần
tiếp theo, cũng sẽ được lưu vào từ điển chung đi kèm với vị trí trong cột dữ
liệu, thể hiện như hình 4.3.

Sau khi kết thúc quá trình trích xuất của 5000 tệp lành tính và 8000 tệp độc hại,
kết quả thu được tổng cộng 11041 cột đặc trưng, trong đó hàm chức năng chiếm
9890 đặc trưng, phân đoạn chiếm 1151 đặc trưng. Biểu diễn của các đặc trưng
này là đặc trưng nhị phân, mỗi dòng là một mẫu lành tính hoặc độc hại,giá trị
của các cột là 1 (tồn tại đặc trưng này trong mẫu) hoặc 0 (không tồn tại đặc trưng
này trong mẫu) được thể hiện trong hình 4.4.

53
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.3: Thông tin phân đoạn được trích xuất từ các mẫu dữ liệu

HÌNH 4.4: Dạng dữ liệu đưa vào mô hình

54
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.5: Dữ liệu mẫu sau khi được tiền xử lý cho mô hình mục
tiêu

4.5.2 Mô hình mục tiêu


Các mẫu phần mềm lành tính và độc hại cũng sử dụng thư viện LIEF để trích
xuất các đặc trưng, các thông tin bao gồm:

– Dữ liệu tiêu đề tệp PE.

– Dữ liệu phần phân đoạn gồm tên phân đoạn, kích thước và đặc tính riêng.

– Các thông tin hàm nhập và hàm xuất.

– Các chuỗi đọc được trong tệp tin (đường dẫn, đường liên kết, tên của REG-
ISTRY).

– Biểu đồ byte.

– Biểu đồ 2D byte-entropy.

Đối với các loại dứ liệu có thể coi là vô hạn như tên phân đoạn, tên hàm nhập,...
nhóm sử dụng thư viện FeatureHasher có trong mô đun scikit-learn để đưa về
một vecto có kích thước cố định là 2350 đặc trưng, dữ liệu sau khi trích xuất được
thể hiện trong Hình 4.5.

55
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

4.6 Tiêu chí đánh giá


Để chứng minh trình Phát hiện mã độc hoạt động tốt trong không gian đặc trưng,
nhóm sử dụng các chỉ số diện tích dưới đường cong (Area Under Curve - AUC),
accuracy, precision, recall, f1-score , đối với Mô hình mục tiêu nhóm bổ sung thêm
ma trận nhầm lẫn (Confusion Matrix). Các chỉ số trên được tính toán dựa vào các
thuộc tính trong ma trận nhầm lẫn gồm dương tính thật (True Positve - TP), âm
tính thật (True Negative - TN), dương tính giả (False Positive - FP), âm tính giả
(False Negative - FN). Trong ngữ cảnh an toàn thông tin, giả sử rằng các mẫu
positive đại diện cho mẫu độc hại và negative đại diện cho mẫu lành tính thì các
thuộc tính trên có ý nghĩa là:

– TP: số lượng mẫu độc hại được phân loại đúng.

– TN: số lượng mẫu lành tính được phân loại đúng.

– FN: số lượng mẫu độc hại phân loại nhầm là lành tính.

– FP: số lượng mẫu lành tính phân loại nhầm là độc hại.

Bảng 4.3 thể hiện công thức toán học cho Accuray, Precision, Recall, F1-score.

Chỉ số Công thức


Accuracy (TP + TN) / (TP+TN+FN+FP)
Precision TP / (TP + FP)
Recall TP / (TP + FN)
F1-score 2 * (Precision * Recall)/(Precision + Recall)

BẢNG 4.3: Công thức các chỉ số

4.7 Triển khai và đánh giá hiệu năng thuật toán tổng
hợp

4.7.1 trình Phát hiện mã độc trong FeaGAN


Để triển khai được thuật toán tổng hợp, cần phải chọn các thuật toán đơn thích
hợp, trong trình Phát hiện mã độc, nhóm sử dụng các thuật toán đơn độc lập

56
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

(trong thuật toán đó không gọi lại các thuật toán khác) gồm Decision Tree, Kneigh-
bors, Naive Baiyes, Bernoulli, do việc dữ liệu có đến 11041 đặc trưng nên việc sử
dụng Support Vector Machine và Multilayer Perceptron sẽ tiêu tốn rất nhiều thời
gian và tài nguyên [71] nên nhóm không sử dụng.
Kết quả khi huấn luyện trình Phát hiện mã độc bằng các thuật toán đơn trong
Bảng 4.4.

Trình Phát hiện AUC Accuracy Precision Recall F1-Score

Bernoulli 0.84906 0.73115 0.85839 0.67438 0.75534

Naive Bayes 0.61137 0.69615 0.67442 0.97875 0.79857

Decision Tree 0.9158 0.92231 0.95155 0.92063 0.93583

Logistic Regression 0.96459 0.92769 0.95315 0.92813 0.94047

Kneighbors 0.94977 0.90231 0.94335 0.895 0.91854

BẢNG 4.4: Bảng kết quả thuật toán đơn trong FeaGAN

Với thuật toán tổng hợp đồng nhất, nhóm sử dụng các thuật toán Random Forest,
AdaBoost, Gradient Boosting, Bagging, các thuật toán này đều sử dụng thuật toán
con là Decision Tree, thu được kết quả trong Bảng 4.5.

Trình Phát hiện AUC Accuracy Precision Recall F1-Score


Random Forest 0.97978 0.93654 0.9632 0.9325 0.9476
Bagging 0.97268 0.93115 0.96468 0.92188 0.94279
AdaBoost 0.95289 0.885 0.91249 0.89938 0.90589
Gradient Boosting 0.9661 0.92423 0.93816 0.93875 0.93846

BẢNG 4.5: Bảng kết quả thuật toán tổng hợp đồng nhất trong Fea-
GAN

57
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

Đối với thuật toán tổng hợp không đồng nhất, nhóm triển khai Voting (sử dụng
năm thuật toán đơn đã đề cập) và 6 thuật toán Stacking áp dụng đánh giá chéo
10 lần được mô tả bên dưới:

– Ba thuật toán Stacking sử dụng năm thuật toán đơn đã đề cập ở Bảng 4.4
cho lớp cơ sở và lớp cuối cùng sẽ lần lượt là ba thuật toán có chỉ số tốt nhất
ở 4.4 gồm Decision Tree, Logistic Regression, Kneighbors.

– Ba thuật toán Stacking1 sử dụng ba thuật toán đơn có chỉ số tốt nhất từ Bảng
4.4 để làm lớp cơ sở và lớp cuối lần lượt là các thuật toán đó.

Kết quả đánh giá các thuật toán đồng nhất, Bảng 4.6.

Trình Phát hiện AUC Accuracy Precision Recall F1-Score


Voting 0.96969 0.93 0.94479 0.94125 0.94302
Stacking1_LogisticRegression 0.97738 0.93615 0.96021 0.935 0.94594
Stacking1-KNeighbors 0.95943 0.93192 0.96231 0.92563 0.94361
Stacking1_DecisionTree 0.90274 0.91192 0.94484 0.91 0.9271
Stacking_LogisticRegression 0.97576 0.93846 0.96038 0.93875 0.94943
Stacking_KNeighbors 0.7416 0.78846 0.76382 0.95 0.8468
Stacking_DecisionTree 0.90568 0.91538 0.94344 0.9175 0.93029

BẢNG 4.6: Bảng kết quả thuật toán không đồng nhất trong FeaGAN

4.7.2 Mô hình mục tiêu


Mô hình mục tiêu cũng sử dụng các thuật toán đơn và tổng hợp đồng nhất tương
tự như trình Phát hiện mã độc, ở thuật toán đơn Bernoulli thay đổi thành Multi-
layer Perceptron, được kết quả như Bảng 4.7.

58
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

Thuật toán AUC Accuracy Precision Recall F1-Score


Logistic Regression 0.66738 0.75660 0.89648 0.58020 0.70447
Decision Tree 0.97195 0.97195 0.96705 0.97720 0.97210
Naive Bayes 0.86779 0.75250 0.94236 0.53790 0.68487
MLP 0.82203 0.82185 0.93641 0.69060 0.79494
Kneighbors 0.81440 0.76705 0.71321 0.89330 0.79316

Random Forest 0.99895 0.99205 0.98897 0.99520 0.99207


AdaBoost 0.99522 0.97330 0.95721 0.9906 0.97376
Gradient Boosting 0.99877 0.98450 0.97259 0.99710 0.98469
Bagging 0.99357 0.97870 0.97349 0.98420 0.97882

BẢNG 4.7: Hiệu năng thuật toán đơn và tổng hợp đồng nhất của Mô
hình mục tiêu

Vì là mục tiêu mà nhóm sẽ thực hiện tấn công nên ngoài các chỉ số trên nhóm còn
thể hiện thêm hình vẽ của AUC (Hình 4.6, 4.7, 4.8, 4.9).

59
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.6: Diện tích dưới đường cong thuật toán đơn

60
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.7: Đường AUC thuật toán tổng hợp đồng nhất và Voting

Với thuật toán không đồng nhất, Voting cũng sử dụng năm thuật toán đơn làm
thành phần cơ sở, Stacking sử dụng đánh giá chéo 10 lần được chia làm 2 loại:

– Sử dụng năm thuật toán đơn làm lớp cơ sở và Decision Tree làm lớp cuối do
nó có chỉ số cao nhất trong thuật toán đơn, Bảng 4.7.

– Sử dụng năm thuật toán có chỉ số tốt nhất từ Bảng 4.7 là Decision Tree,
RandomForest, Bagging, AdaBoost, Gradient Boosting làm thành phần cơ,
lớp cuối là Random Forest do có các chỉ số cao nhất.

Thuật toán AUC Accuracy Precision Recall F1-score


Stacking_DecisionTree 0.92471 0.92355 0.91890 0.92910 0.92397
Stacking_RandomForest 0.99757 0.98775 0.97730 0.99870 0.98788

BẢNG 4.8: Hiệu năng thuật toán tổng hợp không đồng nhất của mô
hình mục tiêu

61
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.8: Đường AUC thuật toán tổng hợp Stacking

62
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.9: Đường AUC thuật toán Gradient Boosting trong các paper
trước

Nhận xét: từ kết quả của các bảng đánh giá trên, khi trình Phát hiện mã độc và
Mô hình mục tiêu học và đánh giá trên các mẫu dữ liệu đều cho kết quat tương
đối tốt, các thuật toán thuộc loại tổng hợp luôn cho kết quả cao hơn thuật toán
đơn về khả năng phân loại tốt các mẫu độc hại và lành tính, các thuật toán đơn
và tổng hợp dựa trên Decision Tree cho kết quả AUC rất cao hơn 97%. Trong thí
nghiệm, việc chọn lựa các thuật toán cơ sở và thuật toán lớp cuối trong Stacking
ảnh hưởng rất nhiều đến hiệu suất của mô hình, điều này là do tính phù hợp của
bộ dữ liệu đối với từng thuật toán và số lượng thuật toán được chọn làm lớp cơ
sở, những điều này làm ảnh hưởng đến kết quả đánh giá của trình Phân biệt hộp
đen.

63
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

4.8 Kết quả thực nghiệm

4.8.1 Mô hình FeaGAN


4.8.1.1 Mạng Tạo sinh

Triển khai bằng mạng thầnh kinh truyền thẳng, mục tiêu là chỉnh sửa vector nhị
phân của mẫu mã độc để làm cho trình Phát hiện mã độc nhận diện là lành tính.
Nhóm thực hiện triển khai mạng Tạo sinh với hai lớp ẩn, mỗi lớp gồm 256 nút,
các lớp ẩn sử dụng hàm kích hoạt LeakyRELu được định nghĩa trong công thức
4.1 với alpha=0.01.


 ≥0
g() = (4.1)
 α Ngược lại

Lớp đầu ra có 11041 nút, đại diện cho một mẫu mã độc, lớp đầu ra sử dụng hàm
kích hoạt sigmoid để đảm bảo đầu ra nằm trong khoảng (0, 1).

4.8.1.2 Mạng Phân biệt

Cũng là mạng thần kinh truyền thẳng, cấu trúc tương tự như mạng Tạo sinh,
điểm khác chính là đầu ra của D chỉ có một nút. Lớp đầu ra cũng sử dụng hàm
kích hoạt sigmoid, đầu ra của D thể hiện xác xuất véc tơ đầu vào là mã độc.
Trong D, nhóm thực hiện giải quyết vấn đề Exploding Gradient thông qua kỹ
thuật Gradient Clipping bằng việc giới hạn đầu ra của G vào khoảng [1e-7, 1-
1e-7].

4.8.1.3 Đánh giá kết quả mô hình FeaGAN

Nhóm huấn luyện mô hình FeaGAN qua 100 vòng, batch_size là 32 với từng thuật
toán đã đề cập trong phần 4.7.1, kết quả tấn công trình Phát hiện mã độc trong
không gian đặc trưng được thể hiện trong Bảng 4.9.

64
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

Trình Phát hiện Recall (mẫu đột biến đặc trưng)


Bernoulli 0
Naive Bayes 0
Đơn Decision Tree 0
Logistic Regression 0
Kneighbors 0.21500
Random Forest 0
Bagging 0.49625
Tổng hợp đồng nhất
AdaBoost 0.04968
Gradient Boosting 0
Voting 0
Stacking1-LogisticRegression 0
Stacking1-KNeighbors 0.00625
Tổng hợp không đồng nhất Stacking1-DecisionTree 0
Stacking_LogisticRegression 0
Stacking_KNeighbors 0
Stacking_DecisionTree 0

BẢNG 4.9: Recall của trình Phát hiện mã độc trên các mẫu đặc trưng
đối kháng

Nhận xét: đối với không gian đặc trưng hầu hết các thuật toán đều bị đánh lừa
gần như toàn bộ, kể cả các thuật toán tổng hợp, nhưng đây chỉ mới là không gian
đặc trưng, trong phần tiếp theo nhóm sẽ thực hiện sử dụng các đặc trưng thu
được từ FeaGAN để tạo đột biến trên không gian vấn đề (trên tập tin mã độc thật
sự ) để qua mặt Mô hình mục tiêu đóng vai trò như một phần mềm chống mã
độc trong thực tế sử dụng các thuật toán học máy.
Từ chỉ số hiệu năng của các Mô hình mục tiêu ở Bảng 4.7 và Bảng 4.8, nhóm sẽ
chọn đại diện cho mỗi loại thuật toán cụ thể là:

– Thuật toán đơn: Decision Tree và Kneighbors.

– Thuật toán tổng hợp đồng nhất: Random Forest và Gradient Boosting.

– Thuật toán tổng hợp không đồng nhất: Stacking với lớp cuối là Random
Forest.

4.8.2 Hiệu quả mẫu đột biến


4.8.2.1 Triển khai

Nhóm thiết kế một mạng thần kinh Q đóng vai trò là tác nhân để thực hiện các
hành động hiệu quả để sửa đổi phần mềm độc hại trốn tránh Mô hình mục tiêu.

65
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

Các lớp ẩn của tác nhân được thiết kế gồm 2 lớp. Phần đầu bao gồm một lớp tích
chập với 256 nút sử dụng lớp tuyến tính và hàm kích hoạt RELU, Phần thứ hai
gồm một lớp tích chập với với 64 nút sử dụng lớp tuyến tính và hàm kích hoạt
RELU. Tác nhân được huấn luyện qua 600 episodes, trong mỗi episode tác nhân
được phép thực hiện tối đa 80 hành động lên môi trường (mẫu mã độc), nếu như
đạt được phần thưởng là 10 trước khi sử dụng hết 80 hành động thì sẽ chuyển
episode khác để học cách chọn hành động trên trạng thái mới.

Sai khi kết thúc quá trình huấn luyện, sử dụng tác nhân đã được huấn luyện để
tạo đột biến trên 2000 mẫu mã độc để chống lại các Mô hình mục tiêu đề cập ở
Phần 4.8.1.3 và bổ sung thêm mô hình Gradient Boosting được các bài báo [72,
12] sử dụng.

4.8.2.2 Trước khi đột biến

Trước khi đánh giá mẫu đột biến, nhóm sẽ kiểm tra khả năng phát hiện của các
Mô hình mục tiêu lập trên 2000 mẫu này, kết quả được thể hiện ở Bảng 4.10.

Trước khi đột biến


Thuật toán
Phát hiện/Tổng số Tỉ lệ trốn tránh Điểm trung bình của VirusTotal
Decision Tree 1945/2000 2.75%
Kneighbors 1724/2000 13.8%
Random Forest 1954/2000 2.3%
58/73
Gradient Boosting 1967/2000 1.65%
Stacking_RandomForest 1983/2000 0.85%
Gradient Boosting (gym-malware) 1997/2000 0.15%

BẢNG 4.10: Khả năng nhận diện 2000 mẫu mã độc gốc

Nhận xét: kết quả từ Bảng 4.10 cho thấy các Mô hình mục tiêu đều có khả năng
nhận diện tốt mã độc.

4.8.2.3 Sau khi đột biến

Tác nhân thu được ở Phần 4.8.2.1 được phép thực hiện tối đa 80 hành động lên
tập tin gốc, nếu sử dụng hết 80 hành động mà vẫn không qua mặt được trình
Phân loại thì quá trình đột biến mẫu hiện tại sẽ kết thúc và chuyển sang mẫu kế
tiếp.

66
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

Kịch bản 1: Kết quả thu được thể hiện trong Bảng 4.11 và Biểu đồ 4.10.

Sau khi dùng RL đột biến


Mô hình mục tiêu
Phát hiện / Tổng số Tỉ lệ trốn tránh Điểm trung bình của VirusTotal
Decision Tree 711/2000 64.45% 40/72
Kneighbors 1694/2000 15.3% 52/71
Random Forest 1902/2000 4.9% 48/72
Gradient Boosting 1953/2000 2.35% 46/71
Stacking_RandomForest 1520/2000 24% 53/71
Gradient Boosting (gym-malware) 1837/2000 8.15% 56/73

BẢNG 4.11: Kết quả khả năng lẩn tránh của mẫu đột biến đối với các
mô hình mục tiêu và VirusTotal

HÌNH 4.10: Biểu đồ thể hiện tỉ lệ trốn tránh của các mẫu đột biến

Nhận xét: hệ thống đề xuất thành công trong việc làm tăng tỉ lệ trốn tránh của
các mẫu đột biến đối với mô hình mục tiêu. Tỉ lệ trốn tránh của các mẫu đột biến
đối với các trình phân loại trong VirusTotal tốt hơn sau khi đột biến.

Kịch bản 2: Kết quả thu được thể hiện trong Bảng 4.12 và Biểu đồ 4.11. Trong
4.11, các mẫu đột biến được chú thích thêm "M" tượng trưng cho mẫu độc hại
(Malware) để dễ dàng phân biệt.

67
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

Bộ phân Decision K- Random Gradient Stacking Gradient


loại/Đột Tree Neighbors Forest Boosting _ Boosting
biến Random- (gym-
Forest malware)
Decision 711/2000 1889/2000 1905/2000 1910/2000 912/2000 1905/2000
Tree
K- 1614/2000 1694/2000 1692/2000 1697/2000 1559/2000 1692/2000
Neighbors
Random 1391/2000 1902/2000 1902/2000 1908/2000 1041/2000 1902/2000
Forest
Gradient 1915/2000 1957/2000 1957/2000 1953/2000 1961/2000 1957/2000
Boosting
Stacking 1915/2000 1965/2000 1964/2000 1961/2000 1520/2000 1964/2000
_
Random-
Forest
Gradient 1965/2000 1836/2000 1837/2000 1842/2000 1954/2000 1837/2000
Boosting
(gym-
malware)

BẢNG 4.12: Kết quả khả năng nhận diện mẫu đột biến khi thực hiện
chuyển giao

68
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.11: Biểu đồ thể hiện tỉ lệ trốn tránh tăng lên sau khi đột biến
của các mẫu độc hại

Nhận xét: cho dù hệ thống sử dụng bất kỳ thuật toán nào, bao gồm cả đơn và
tổng hợp, đều tăng tỉ lệ trốn tránh của các mẫu đột biến đối với các mô hình mục
tiêu. Hệ thống đề xuất sử dụng thuật toán Decision Tree và Stacking là 2 mô hình
cho ra kết quả tốt nhất, cho ra các mẫu đột biến với khả năng chống chịu lại các
trình phân loại tốt. Trong đó, thuật toán học tổng hợp Stacking cho kết quả toàn
diện hơn, khi các tỉ lệ trốn tránh đối với cả trình phân loại sử dụng thuật toán đơn
và sử dụng thuật toán tổng hợp phần lớn đều cao.

Các thách thức:

– Bảo toàn định dạng: toàn bộ các mẫu mã độc đột biến mà mô hình đề xuất
của nhóm tạo ra đều đảm bảo về định dạng của tệp tin PE32. Nhóm sử dụng
công cụ file có sẵn trong máy ảo để kiểm tra, toàn bộ các tệp tin đều đảm
bảo định dạng, cách kiểm tra được thể hiện trong Hình 4.12. Ngoài ra, trong
quá trình biến đổi, chúng tôi chỉ tác động đến những thành phần đươc cho
là không liên quan, không làm ảnh hưởng đến tệp độc hại nên đây cũng có
thể là lí do cho việc tệp độc hại được bảo toàn định dạng.

69
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

HÌNH 4.12: Kiểm tra thách thức 1

– Có khả năng thực thi: để kiếm tra thách thức này, nhóm sử dụng hệ thống
Cuckoo Sandbox làm môi trường thực thi mẫu đột biến đã tạo và lưu lại
các thông tin về đặc trưng của mẫu này để sử dụng cho thách thức 2 và 3.
Nhóm định nghĩa mẫu đột biến có khả năng thực sẽ phải thực hiện được ít
nhất một đặc trưng động. Các đặc trưng động ở đây có thể là: tác động vào
tệp tin trên máy, tác động lên khóa REGISTRY, tạo truy vấn DNS/liên kết
lạ, kiểm tra máy ảo/trình gỡ lỗi,...

– Giữ được tính độc hại: nhóm sẽ sử dụng lại các đặc trưng thu được khi
kiểm tra thách 2, nhóm định nghĩa mẫu đột biến giữ được tính độc hại khi
số lượng các đặc trưng của mẫu gốc và mẫu đột biến chênh lệch nhau không
lớn hơn 6 đặc trưng (các mẫu gốc mà nhóm chọn đều có từ 18 đặc trưng trở
lên).

Các thách thức được nhóm kiểm tra trên 100 mẫu gốc, các mẫu đột biến sẽ được
lấy tương ứng với mẫu gốc đã chọn, kết quả thu được trong Bảng 4.13.

70
Chương 4. THÍ NGHIỆM VÀ ĐÁNH GIÁ

Thuật toán Đảm bảo định dạng tệp Đảm bảo khả năng thực thi Đảm bảo tính độc hại
Decision Tree 100% 60% 7%
Kneighbors 100% 94% 62%
Random Forest 100% 99% 63%
Gradient Boosting 100% 54% 29%
Stacking_RandomForest 100% 81% 1%
GradientBoosting (gym-malware) 100% 94% 62%

BẢNG 4.13: Khả năng đảm bảo các thách thức của 100 mẫu đột biến
mỗi thuật toán

Nhận xét: Các mẫu đột biến đảm bảo 100% khả năng bảo toàn định dạng. Dựa
theo định nghĩa về khả năng thực thi và bảo toàn tính độc hại, tỉ lệ thành công
nằm ở mức ổn định.

71
Chương 5

KẾT LUẬN

Tóm tắt chương


Ở chương này chúng tôi đưa ra những kết luận chung mà chúng tôi tổng kết được
trong suốt quá trình nghiên cứu và làm thực nghiệm, đồng thời cũng đưa ra các
biện pháp khắc phục và hướng phát triển của đề tài.

5.1 Kết luận


Sau khi làm xong đề tài này, chúng tôi đạt được những thành tựu và rút ra được
số kết luận như sau:

– Chúng tôi cũng thành công trong việc tạo ra một hệ thống sử dụng kết hợp
mạng sinh đối kháng (Generative Adversarial Networks), học tăng cường
(Reinforcement Learning) và học tổng hợp (Ensemble Learning), 3 phương
pháp phổ biến và mạnh mẽ trong việc tạo ra mẫu mã độc đối kháng.

– Trong quá trình xây dựng hệ thống, vì để có được một đánh giá rõ ràng và
chi tiết, chúng tôi xây dựng cả trình Phát hiện mã độc dùng thuật toán tổng
hợp và trình Phát hiện mã độc dùng thuật toán đơn trong mô hình tạo mẫu
đặc trưng đối kháng FeaGAN, tất cả đều có chỉ số AUC, Accuracy, Precision,
Recall và F1-Score hầu hết đều cao. Các vec-tơ đặc trưng đối kháng được tạo
ra từ FeaGAN hầu hết đều có khả năng đánh lừa các thuật toán của trình
Phát hiện mã độc cao.

72
Chương 5. KẾT LUẬN

– Việc chọn lựa các thuật toán cơ sở (base-learner), thuật toán cuối cùng (meta-
learner) trong phương pháp Stacking cũng được chúng tôi thử nghiệm. Việc
chọn lựa các thuật toán ảnh hưởng rất nhiều đến hiệu quả của mô hình.

– Các trình Phân loại dùng các thuật toán học tổng hợp hầu hết đều mạnh hơn
so với các trình Phân loại dùng các thuật toán đơn, các mẫu đối kháng sẽ rất
khó khăn trong việc vượt mặt. Việc để các mẫu độc hại tương tác với chúng,
tạo ra các mẫu đối kháng bước đầu mang lại những kết quả khả quan.

– Việc xây dựng hệ thống kết hợp 2 mô hình FeaGAN và DQEAF đã đạt
được những bước thành công đầu trong cả lí luận và thực nghiệm, đạt được
những thành công nhất định trong việc tạo ra mẫu PE đột biến, đối kháng
đảm bảo 3 thách thức trong việc duy trì ngữ nghĩa đối với các cuộc tấn công
đối kháng trong thực tế chống lại sự phát hiện các phần mềm PE độc hại
mà những kẻ tấn công phải lưu ý: bảo toàn định dạng, bảo toàn khả năng
thực thi và bảo toàn độc hại.

5.2 Hướng phát triển


Trong hệ thống của chúng tôi, trình Phát hiện mã độc vẫn chưa thật sự độc lập và
mạnh mẽ. trình Phát hiện mã độc ở mô hình FeaGAN và DQEAF chưa có sự liên
hệ rõ ràng và hiện tại được sử dụng độc lập trong mỗi mô hình. Để khắc phục
điều này, trình Phát hiện mã độc hiện tại sẽ thay thế bằng một trình Phát hiện tin
cậy và mạnh mẽ hơn và chúng tôi sẽ cố gắng tạo một trình Phân biệt hộp đen duy
nhất để thuận tiện hơn trong việc nghiên cứu.

Bên cạnh đó, các thuật toán kết hợp, đặc biệt là thuật toán Stacking được chúng
tôi lựa chọn không quá kĩ càng và chi tiết. Các thuật toán cơ sở được chọn một
cách cảm tính và không có một hệ thống rõ ràng. Chúng tôi sẽ cố gắng áp dụng
các thuật toán, phương pháp lựa chọn khoa học hơn cho phần này.

Cuối cùng, hệ thống chúng tôi chỉ tác động đến những thành phần không liên
quan, không làm ảnh hưởng đến cấu trúc và quá trình thực thi của tệp PE. Chúng
tôi mong muốn trong tương lai có thể tác động đến những thành phần mã bên
trong mà vẫn đảm bảo được 3 thách thức trong việc tạo mẫu đối kháng.

73
TÀI LIỆU THAM KHẢO

[1] Deqiang Li and Qianmu Li. “Adversarial deep ensemble: Evasion attacks
and defenses for malware detection”. In: IEEE Transactions on Information
Forensics and Security 15 (2020), pp. 3886–3900.
[2] Xiang Ling et al. “Adversarial Attacks against Windows PE Malware Detec-
tion: A Survey of the State-of-the-Art”. In: arXiv preprint arXiv:2112.12310
(2021).
[3] Nureni Ayofe Azeez et al. “Windows PE malware detection using ensem-
ble learning”. In: Informatics. Vol. 8. 1. Multidisciplinary Digital Publishing
Institute. 2021, p. 10.
[4] Ian Goodfellow et al. “Generative adversarial nets”. In: Advances in neural
information processing systems 27 (2014).
[5] Hyeungill Lee, Sungyeob Han, and Jungwoo Lee. “Generative adversarial
trainer: Defense to adversarial perturbations with gan”. In: arXiv preprint
arXiv:1705.03387 (2017).
[6] Robertas Damaševičius et al. “Ensemble-based classification using neural
networks and machine learning models for windows pe malware detec-
tion”. In: Electronics 10.4 (2021), p. 485.
[7] Florian Tramer and Dan Boneh. “Adversarial training and robustness for
multiple perturbations”. In: Advances in Neural Information Processing Sys-
tems 32 (2019).
[8] Yanpei Liu et al. “Delving into transferable adversarial examples and black-
box attacks”. In: arXiv preprint arXiv:1611.02770 (2016).
[9] Weiwei Hu and Ying Tan. “Generating adversarial malware examples for
black-box attacks based on GAN”. In: arXiv preprint arXiv:1702.05983 (2017).
[10] Masataka Kawai, Kaoru Ota, and Mianxing Dong. “Improved malgan: Avoid-
ing malware detector by leaning cleanware features”. In: 2019 international

74
TÀI LIỆU THAM KHẢO

conference on artificial intelligence in information and communication (ICAIIC).


IEEE. 2019, pp. 040–045.
[11] Junkun Yuan et al. “Black-box adversarial attacks against deep learning
based malware binaries detection with GAN”. In: ECAI 2020. IOS Press,
2020, pp. 2536–2542.
[12] Zhiyang Fang et al. “Evading anti-malware engines with deep reinforce-
ment learning”. In: IEEE Access 7 (2019), pp. 48867–48879.
[13] PE Format - Win32 apps Microsoft Docs. URL: https://docs.microsoft.com/
en-us/windows/win32/debug/pe-format#file-headers.
[14] Rami Sihwail, Khairuddin Omar, and KA Zainol Ariffin. “A survey on mal-
ware analysis techniques: Static, dynamic, hybrid and memory analysis”.
In: Int. J. Adv. Sci. Eng. Inf. Technol 8.4-2 (2018), pp. 1662–1671.
[15] Anusha Damodaran et al. “A comparison of static, dynamic, and hybrid
analysis for malware detection”. In: Journal of Computer Virology and Hacking
Techniques 13.1 (2017), pp. 1–12.
[16] Andreas Moser, Christopher Kruegel, and Engin Kirda. “Limits of static
analysis for malware detection”. In: Twenty-Third Annual Computer Security
Applications Conference (ACSAC 2007). IEEE. 2007, pp. 421–430.
[17] Mamoun Alazab, Sitalakshmi Venkataraman, and Paul Watters. “Towards
understanding malware behaviour by the extraction of API calls”. In: 2010
second cybercrime and trustworthy computing workshop. IEEE. 2010, pp. 52–59.
[18] S Soja Rani and SR Reeja. “A Survey on Different Approaches for Malware
Detection Using Machine Learning Techniques”. In: International Confer-
ence on Sustainable Communication Networks and Application. Springer. 2019,
pp. 389–398.
[19] Zahra Bazrafshan et al. “A survey on heuristic malware detection tech-
niques”. In: The 5th Conference on Information and Knowledge Technology. IEEE.
2013, pp. 113–120.
[20] Corinna Cortes, Lawrence D Jackel, and Wan-Ping Chiang. “Limits on learn-
ing machine accuracy imposed by data quality”. In: Advances in Neural In-
formation Processing Systems 7 (1994).
[21] Corvus Forensics. VirusShare.com - Because Sharing is Caring. URL: https:
//virusshare.com/.

75
TÀI LIỆU THAM KHẢO

[22] Trevor Hastie et al. The elements of statistical learning: data mining, inference,
and prediction. Vol. 2. Springer, 2009.
[23] abuse.ch. MalwareBazaar database. URL: https://bazaar.abuse.ch/.
[24] Alex Kantchelian et al. “Better malware ground truth: Techniques for weight-
ing anti-virus vendor labels”. In: Proceedings of the 8th ACM Workshop on
Artificial Intelligence and Security. 2015, pp. 45–56.
[25] Marcos Sebastián et al. “Avclass: A tool for massive malware labeling”. In:
International symposium on research in attacks, intrusions, and defenses. Springer.
2016, pp. 230–253.
[26] Silvia Sebastián and Juan Caballero. “Avclass2: Massive malware tag extrac-
tion from av labels”. In: Annual Computer Security Applications Conference.
2020, pp. 42–53.
[27] Shuofei Zhu et al. “Benchmarking Label Dynamics of VirusTotal Engines”.
In: Proceedings of the 2020 ACM SIGSAC Conference on Computer and Commu-
nications Security. 2020, pp. 2081–2083.
[28] Fabrıcio Ceschin et al. “Machine learning (in) security: A stream of prob-
lems”. In: arXiv preprint arXiv:2010.16045 (2020).
[29] Edward Raff and Charles Nicholas. “A survey of machine learning meth-
ods and challenges for windows malware classification”. In: arXiv preprint
arXiv:2006.09271 (2020).
[30] Yanfang Ye et al. “A survey on malware detection using data mining tech-
niques”. In: ACM Computing Surveys (CSUR) 50.3 (2017), pp. 1–40.
[31] Romain Thomas. Lief-library to instrument executable formats. 2017. URL: https:
//lief-project.github.io/.
[32] Scott E Coull and Christopher Gardner. “Activation analysis of a byte-based
deep neural network for malware classification”. In: 2019 IEEE Security and
Privacy Workshops (SPW). IEEE. 2019, pp. 21–27.
[33] Marek Krčál et al. “Deep convolutional malware classifiers can learn from
raw executables and labels only”. In: (2018).
[34] Edward Raff et al. “Malware detection by eating a whole exe”. In: Workshops
at the Thirty-Second AAAI Conference on Artificial Intelligence. 2018.

76
TÀI LIỆU THAM KHẢO

[35] Daniel Gibert et al. “Classification of malware by using structural entropy


on convolutional neural networks”. In: Proceedings of the AAAI Conference on
Artificial Intelligence. Vol. 32. 1. 2018.
[36] J Zico Kolter and Marcus A Maloof. “Learning to detect and classify mali-
cious executables in the wild.”. In: Journal of Machine Learning Research 7.12
(2006).
[37] Joshua Saxe and Konstantin Berlin. “Deep neural network based malware
detection using two dimensional binary program features”. In: 2015 10th in-
ternational conference on malicious and unwanted software (MALWARE). IEEE.
2015, pp. 11–20.
[38] Matthew G Schultz et al. “Data mining methods for detection of new ma-
licious executables”. In: Proceedings 2001 IEEE Symposium on Security and
Privacy. S&P 2001. IEEE. 2000, pp. 38–49.
[39] Sachin Jain and Yogesh Kumar Meena. “Byte level n–gram analysis for mal-
ware detection”. In: International Conference on Information Processing. Springer.
2011, pp. 51–59.
[40] Rafiqul Islam et al. “Classification of malware based on string and func-
tion feature selection”. In: 2010 Second Cybercrime and Trustworthy Comput-
ing Workshop. IEEE. 2010, pp. 9–17.
[41] Yanfang Ye et al. “SBMDS: an interpretable string based malware detection
system using SVM ensemble with bagging”. In: Journal in computer virology
5.4 (2009), pp. 283–293.
[42] Hyrum S Anderson and Phil Roth. “Ember: an open dataset for training
static pe malware machine learning models”. In: arXiv preprint arXiv:1804.04637
(2018).
[43] M Zubair Shafiq et al. “Pe-miner: Mining structural information to detect
malicious executables in realtime”. In: International workshop on recent ad-
vances in intrusion detection. Springer. 2009, pp. 121–141.
[44] Mahmoud Abdelsalam et al. “Malware detection in cloud infrastructures
using convolutional neural networks”. In: 2018 IEEE 11th international con-
ference on cloud computing (CLOUD). IEEE. 2018, pp. 162–169.

77
TÀI LIỆU THAM KHẢO

[45] Aziz Mohaisen, Omar Alrawi, and Manar Mohaisen. “AMAL: high-fidelity,
behavior-based automated malware analysis and classification”. In: comput-
ers & security 52 (2015), pp. 251–266.
[46] Konrad Rieck et al. “Learning and classification of malware behavior”. In:
International Conference on Detection of Intrusions and Malware, and Vulnera-
bility Assessment. Springer. 2008, pp. 108–125.
[47] Automated classification and analysis of internet malware. Springer. 2007, pp. 178–
197.
[48] Shen Wang et al. “Heterogeneous graph matching networks”. In: arXiv preprint
arXiv:1910.08074 (2019).
[49] Daniel Gibert et al. “Enhancing the insertion of NOP instructions to obfus-
cate malware via deep reinforcement learning”. In: Computers & Security
113 (2022), p. 102543.
[50] Igor Santos et al. “Opcode sequences as representation of executables for
data-mining-based unknown malware detection”. In: Information Sciences
231 (2013), pp. 64–82.
[51] Guosong Sun and Quan Qian. “Deep learning and visualization for identi-
fying malware families”. In: IEEE Transactions on Dependable and Secure Com-
puting 18.1 (2018), pp. 283–295.
[52] Yanfang Ye et al. “Automatic malware categorization using cluster ensem-
ble”. In: Proceedings of the 16th ACM SIGKDD international conference on Knowl-
edge discovery and data mining. 2010, pp. 95–104.
[53] Jixin Zhang et al. “Malware variant detection using opcode image recogni-
tion with small training sets”. In: 2016 25th International Conference on Com-
puter Communication and Networks (ICCCN). IEEE. 2016, pp. 1–9.
[54] Yong Qiao et al. “Analyzing malware by abstracting the frequent itemsets
in API call sequences”. In: 2013 12th IEEE international conference on trust,
security and privacy in computing and communications. IEEE. 2013, pp. 265–
270.
[55] Zhaoqi Zhang, Panpan Qi, and Wei Wang. “Dynamic malware analysis
with feature engineering and feature learning”. In: Proceedings of the AAAI
Conference on Artificial Intelligence. Vol. 34. 01. 2020, pp. 1210–1217.

78
TÀI LIỆU THAM KHẢO

[56] Akshay Kapoor and Sunita Dhavale. “Control Flow Graph Based Multiclass
Malware Detection Using Bi-normal Separation.”. In: Defence Science Journal
66.2 (2016).
[57] Jiaqi Yan, Guanhua Yan, and Dong Jin. “Classifying malware represented
as control flow graphs using deep graph convolutional neural network”. In:
2019 49th annual IEEE/IFIP international conference on dependable systems and
networks (DSN). IEEE. 2019, pp. 52–63.
[58] Xiang Ling et al. “Multilevel Graph Matching Networks for Deep Graph
Similarity Learning”. In: IEEE Transactions on Neural Networks and Learning
Systems (2021).
[59] Barbara G Ryder. “Constructing the call graph of a program”. In: IEEE
Transactions on Software Engineering 3 (1979), pp. 216–226.
[60] Xiang Ling et al. “Deep graph matching and searching for semantic code
retrieval”. In: ACM Transactions on Knowledge Discovery from Data (TKDD)
15.5 (2021), pp. 1–21.
[61] Zhen Li et al. “Vuldeepecker: A deep learning-based system for vulnerabil-
ity detection”. In: arXiv preprint arXiv:1801.01681 (2018).
[62] Zhi-Hua Zhou. Ensemble methods: foundations and algorithms. CRC press, 2012.
[63] Thomas G Dietterich. “Ensemble methods in machine learning”. In: Inter-
national workshop on multiple classifier systems. Springer. 2000, pp. 1–15.
[64] Stephen Marsland. Machine learning: an algorithmic perspective. Chapman and
Hall/CRC, 2011.
[65] Ludmila I Kuncheva. Combining pattern classifiers: methods and algorithms.
John Wiley & Sons, 2014.
[66] Omer Sagi and Lior Rokach. “Ensemble learning: A survey”. In: Wiley Inter-
disciplinary Reviews: Data Mining and Knowledge Discovery 8.4 (2018), e1249.
[67] Yaxin Bi. “The impact of diversity on the accuracy of evidential classifier
ensembles”. In: International Journal of Approximate Reasoning 53.4 (2012),
pp. 584–607.
[68] David H Wolpert. “Stacked generalization”. In: Neural networks 5.2 (1992),
pp. 241–259.
[69] Digit Oktavianto and Iqbal Muhardianto. Cuckoo malware analysis. Packt
Publishing Ltd, 2013.

79
TÀI LIỆU THAM KHẢO

[70] Michael Lester. PE Malware Machine Learning Dataset. 2018. URL: https :
/ / practicalsecurityanalytics . com / pe - malware - machine - learning -
dataset/.
[71] Piotr Iwo Wójcik and Marcin Kurdziel. “Training neural networks on high-
dimensional data using random projection”. In: Pattern Analysis and Appli-
cations 22.3 (2019), pp. 1221–1231.
[72] Hyrum S Anderson et al. “Learning to evade static PE machine learning
malware models via reinforcement learning”. In: arXiv preprint arXiv:1801.08917
(2018).

80

You might also like