Các công trình này đã tích hợp thành công mô hình học sâu vào việc phát hiện và phân loại các mẫu mã độc.. Mục tiêu là đảm bảo rằng các mẫu mới tạo ra vẫn giữ được tính năng và tính chất
Trang 1ĐẠI HOC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA MANG MAY TINH VA TRUYEN THONG
PHAN HOANG NAM - 20521635
TRAN HOÀI RIN - 20521830
KHOA LUAN TOT NGHIEP
PHAT HIEN LOI HOI QUY TRONG HE THONG HOC
SAU BANG PHUONG PHAP FUZZING
DETECTING REGRESSION FAULTS IN DEEP LEARNING
SYSTEMS USING FUZZING TECHNIQUE
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
TS NGUYEN TAN CAM ThS NGUYEN CONG DANH
TP HO CHi MINH, 2024
Trang 2LOI CAM ON
Trong quá trình nghiên cứu va hoàn thành khóa luận, chúng tôi đã nhận được su
định hướng, giúp đỡ, các ý kiến đóng góp quý báu và những lời động viên của cácgiáo viên hướng dẫn Nhóm chúng tôi xin bày tỏ lời cảm ơn tới thay Nguyễn TanCam, thay Nguyễn Công Danh đã tận tình trực tiếp hướng dẫn, giúp đỡ trong quá
trình nghiên cứu.
Nhóm chúng tôi xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên, đóng góp
ý kiến trong quá trình làm khóa luận
Nhóm chúng tôi cũng chân thành cảm ơn các quý thầy cô trường Đại học Côngnghệ Thông tin - ĐHQG TP.HCM, đặc biệt là các thầy cô khoa Mạng máy tính vàTruyền thông, các thầy cô thuộc bộ môn An toàn Thông tin đã giúp đỡ nhóm
Phan Hoàng Nam
Trân Hoài Rin
Trang 3CHƯƠNG 1 TONG QUAN s« ss<2ceeeeCreeeerrkrettrkrtorrereorsree 2
1.1 Giới thiệu vấn đề -+cckthhhhnnHH nghệ 2
1.4 _ Giới thiệu những nghiên cứu liên quan 55-5 55+ ++s£eseeseeesees 3
1.4.2 Mô hình fuzzing phát hiện lỗi hồi quy -¿2¿ s©s+csze: 5
1.4.3 Mô hình hoc tăng CƯỜng «+ + + ng rưệt 6
1.5 Mục tiêu, đối tượng, và phạm vi nghiên cứu . -¿c5+csz+cs2 8
1.5.2 Đối tượng nghiên cứu + ++++£+EktEEEEEEEkeEErrkerkerrrerseee 8
CHƯƠNG 2 CƠ SỞ LÝ THUYÊTT -cs< ss<°vessessevvessesee 10
2.1.1 _ Cấu trúc tệp thực thi -¿- + ©2¿+++EktEESEEEEEEEEESEkerkrrreerkrree 10
2.1.1.1 Trường tiêu đề DOS (DOS Header) - - ccsccccrxzxerxsxee 11
2.1.1.2 Trường tiêu dé PE (PE Header) c cccscsscessessessessessssessesseseaees 11
2.1.1.3 Phan đoạn bang (Section Table) cc ceceeceeseeeeeeseeeeeeseeeeeeneeees 12
2.2 Phát hiện lỗi hồi quy (Regression fault) bằng kỹ thuật fuzz 15
2.2.1 Lỗi hồi quy (Regression fault) -¿- 5s 5s+cx+£eEeEeErrrrsrreres 15
2.2.2 FUZZIN nh e 16
Trang 42.2.3 Ứng dung fuzz dé phát hiện lỗi hồi quy trong mô hình học sâu 18
2.3.1 Kỹ thuật dO QUẾC - G1 ngàn nh, 22
2.3.2 Kỹ thuật Tìm kiếm tĩnh (Static Heuristic) ¿cz+cz+ce+sz 23
2.3.3 Ky thuật kiểm tra tính toàn i0 24
2.6 Mô hình học tang CƯỜN - s51 111v vn key 29
2.6.1 Quy trình quyết định Markov (Markov Decision Process - MDP) 29
2.6.2 Tổng quan mô hình hoc tăng cường - 2-2 + s+c+sz+zzzsz 30
2.6.4.1 TAC tử Ă HH crecrkerrei 33
2.6.4.4 Phần thưởng -¿©-+¿©2+t2EEtEEEtEEEEEErerkrerkrerkrsrei 36
CHUONG 3 MÔ HÌNH ĐỘT BIEN MÃ ĐỘC -s-se©-sccsecsee 37
3.1 Mô hình mối de doa và giả định - ¿+ 2+©2++2x+ezx+srxeerxrsrxrrrxee 37
3.1.1 Mô hình mối de doa ececccssesssessessssssessesssessessesssessessesssessessussseesesseeeseess 37
3.1.2 Ngữ cảnh tấn côÔng :- set E2 1211111111111 xe, 38
3.2 Mô hình phát sinh đột biến mã độc - 2-2 2 s2 ++£++x++£zzzxs+xez 38
3.2.1 Tổng quan mô hình dé xuất -2- + 2 2 + £+£++£++£zEzEzrzes 39
Trang 53.2.2 Chi tiết mô hình dé xuất - ¿+2 +t+E+ESESEEEEEEEE+EEEEEEEEErkrtrrerrrersrs 40
3.2.2.2 Tao phần thưởng - 2 + ++Ek+E++E++EEEEEEErErrrrrrrrerreee 42
3.2.3.1 MalConvPPlus Ăn SH HH HH nrkp 45
3.2.3.2 Attention GRU — CNN (AttnGRU-CNN) - 46
3.3 Luéng hoạt động mô hình đột biến mã độc đề xuất - - ss+szss 47
4.2 Phương pháp duy tri seed pool eee eeeeeeeseeeseeseceececeeseeeesesseesesaeeneens 56
5.3 Các chỉ số đánh giá thực nghiệm - ¿22 ©2++2+++£x++zx+zrxrzrxrsrxee 62
5.4 Tiến hành thực nghiệm ¿- 2° 2 ESE+EE+EE£EE£EE2EESEEEEEEEEEEEEEkrrrrrerree 65
5.4.1 Huấn luyện mô hình phát hiện mã độc - - -5+++-«+++s+ 65
5.4.2 _ Đột biến mau tạo dữ liệu đầu vào và fuzzing - s5 69
CHƯƠNG 6 KẾT LUẬẬN - 5c 5° 5< s°sSsSsSsEEseEseSseEsessessessessee 71
Trang 66.2.
Kết luận
Hướng phát triển
Trang 7DANH MỤC HÌNH
Hình 1.1: Cấu trúc của mô hình MalConv -+-cs2++cccetrrrevtrtrecrrrrrererrrre 4Hình 1.2: Cấu trúc của mô hình AttnGRU .- eerrerrerierrrrrrerrer 4
Hình 1.3: Framework DIRFuzz [14] . «cs5ccssscveseeereereereetsttertersersetsrtsrsersrrsresrsee 6
Hình 1.4: Mô hình mô tả hoạt động của DQEAF [4] -c -ecee-ereee 7
Hình 2.1: Cấu trúc định dạng tập tin PE c«csccekirkkreriekrierrerirrriirrrrrrrrreriree 12
Hình 2.2: Phân đoạn tập tin PE -s<c++++c+ketsrirEEriiEirtkiiriieiiriiiieriee 13
Hình 2.3: Quá trình kiểm thử bằng fuzzing [10] -ccceerreeccccerrrreecerr 17Hình 2.4: Mô hình fuzzing đề xuất -:-ccsiicecSttrreertrrerertrrirrertrrrerrrrrrrrrre 20
Hình 2.5: Giải pháp phân tích mã độc OPSWAT -cccccrrerrrirrrrirrrrrrrrrrree 22
Hình 2.6: Các bước thực hiện kỹ thuật tìm kiếm tĩnh -.c-cccctrtrtteeeexevevee 23Hình 2.7: Kiểm tra mã băm của tệp thực thi bằng OSForensics - 24
Hình 2.8: Môi trường Windows tạo bởi VirtualBOX -e-ccceerereerrrrrrrrrree 25
Hình 2.9: Markov Decision Process -c-7c<srcsrrrrrrrrtrtrrrrirrrirrrrrrrrrrrrrrrrrrree 30
Hình 2.10: Mô hình học tăng cường dựa trên MIDP -e-5cccersrrrerererrrree 30
Hình 2.11: Cau trúc của Deep Q-Network - cesreeeerreeerrreerrrrerrrrerre 32
Hình 2.12: Mô hình của gym-malware [ [9 |] -« -«+se+xeerxerrerrerrerteerkerrkeee 33
Hình 3.1: Mô hình mối đe dọa của nhóm Rosenberg [20] -. -«e-‹««¿ 37Hình 3.2: Tổng quan mô hình học tăng cường đề xuắt -s-. ss++ 42Hình 3.3: Cấu trúc mô hình MalConv :++ecettrreevttreeeEttrrerrrrrrrrrrrrerre 45Hình 3.4: Cấu trúc mô hình AttnGRU eerreererreriererirrre 46Hình 3.5: Luồng hoạt động của mô hình đột biến mã độc - 47Hình 4.1: Mô hình fuzzing cải tiến -2-css+recetrreettrerrtrrrvrrrrrrrrrrrrrrerre 52Hình 4.2: Quản lý seed và tạo mẫu đột biến cccccc2v2222222222221 xxxkrkrrrrrrrr 53
in 684g 17 56
Hình 4.4: Duy tri S€€C HH nà nà hàn Hà nhà ngà tHritttetrritrvee 56
Hình 5.1: Tập dữ liệu DikeDataset [6 ] -5-©c«++ccrxeerkerrerrrrrrrrrrrrrrrkrrrreee 58
Hình 5.2: Trích xuất byte từ file header và chuẩn hóa [7] - 60
Trang 8Hình 5.3: Trích xuất byte từ file header và chuẩn hóa -.-.cccerrcccccv+ 60Hình 5.4: Vector đặc trưng sau khi trích xuất -+-ecss++rcceetrrererrrrererrre 61Hình 5.5: Các chỉ số của hai phiên bản mô hình MalConvPlus - 65
Hình 5.6: Các chỉ số của hai phiên ban mô hình AttnGRU — CNN 66Hình 5.7: BCE loss của mô hình MalConvPlus version 2 . « -‹«e e«+ 67
Hình 5.8: BCE loss của mô hình MalConvPlus version 1 -se-.«e-s«« 67
Hình 5.9: BCE loss của mô hình AttnGRU — CNN version 2 -‹ - 68 Hình 5.10: BCE loss của mô hình AttnGRU — CNN version 1 68
Hình 5.11: Ty 16 CáC aCtIOH e « + s2 HH Hà Hường ghen 70
Trang 9DANH MỤC BANGBang 2.1: So sánh fuzzing và các kỹ thuật kiểm thử khác .-s+ 18Bang 5.1: Số lượng mau và loại mẫu trong DikeDataset -cs+ 59
Bang 5.2: Đánh giá mô hình MalConvPlus và AttnGRU — CNN 66
Bang 5.3: Bảng tham số ngưỡng phát hiện của hai mô hình - 67Bang 5.4: Bảng kết quả tỷ lệ né tránh của trình tạo đột biến đối với hai mô hình 69Bảng 5.5: Số lỗi hồi quy đã phát hiện -22.+cc52reecSetrrrrvrrrrrrerrrrerrrre 69
Bảng 5.6: Lượng lỗi phân loại mà hai mô hình phát hiện sau một quy trình fuzz 70
Trang 10DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIET TAT
Hàm chuyên
Hàm phần thưởng
Chính sách của Mô hình học tăng cường
Trọng số cho phần thưởng
Chiết khâu cho phần thưởng
Chính sách tối đa hóa kỳ vọng
Hàm giá trị cho trạng thái - hành động
Secure Hashing Algorithm
Cyclic Redundancy Check Algorithm Markov Decision Process
Deep learning Object Linking and Embedding Gated Recurrent Unit
Trang 11CNN Convolutional Neural Network
Attn Attention
API Application programing interface
BCE loss Binary Cross-Entropy loss
Trang 12TÓM TÁT KHÓA LUẬN
Tính cấp thiết của đề tài nghiên cứu:
Trong những năm gần đây, các nhà nghiên cứu về an toàn thông tin, cụ thể là mãđộc đã không ngừng cải tiến các hệ thống phát hiện mẫu Các công trình này đã tích
hợp thành công mô hình học sâu vào việc phát hiện và phân loại các mẫu mã độc.
Tuy nhiên, sự nâng cấp liên tục của các mô hình học máy đã dẫn đến việc lỗi hồiquy xuất hiện trong các hệ thống ứng dụng những mô hình này Phương pháp đượcchúng tôi đề xuất sử dụng một mô hình học tăng cường nhằm tìm kiếm các thay đổinhỏ nhất trong quá trình nâng cấp các mô hình học sâu dé có thé kích hoạt lỗi hồiquy Cụ thể, việc nâng cấp các mô hình học sâu trong ngữ cảnh trong nghiên cứucủa chúng tôi đến từ việc thay đổi các trọng số của mô hình trong mỗi lần huấnluyện với giả định rằng các thay đổi đó chính là những bản vá của mô hình Quátrình fuzzing được thực hiện theo một chuỗi các bước: tạo mẫu từ seed ban đầu,kiểm tra chất lượng mẫu, kiêm thử trên mô hình, thu thập kết quả, cập nhật seed
Mô hình kiểm tra học tăng cường được huấn luyện thông qua việc sử dụng mẫu mãđộc ban đầu và các mẫu được tạo ra để đánh giá tính chính xác của chúng Mục tiêu
là đảm bảo rằng các mẫu mới tạo ra vẫn giữ được tính năng và tính chất của mẫu
ban đầu, trong khi vẫn đạt được hiệu quả trong việc kích hoạt lỗi hồi quy ẩn trongcác hệ thống phát hiện mã độc
Các kết quả thực nghiệm cho thấy phương pháp đề xuất đạt được hiệu suất caotrong việc tạo ra các mẫu độc đột biến có khả năng kích hoạt lỗi hồi quy mà vẫn giữđược tính chính xác và tính năng của mẫu ban đầu Điều này đóng góp vào việckiểm thử hệ thống phòng chống mã độc, đồng thời tạo ra một hệ thống có khả năng
kiểm tra dé đảm bảo tính chính xác và hiệu quả của các mẫu tao ra.
Trang 13CHUONG 1 TONG QUAN
Chương này giới thiệu vê van đê và các nghiên cứu liên quan Đông thời, trong chương này chúng tôi cũng trình bày phạm vi và câu trúc của luận văn.
1.1 Giới thiệu van đề
Trong một thời đại khi mã độc trở nên ngày cảng tinh vi hơn trong việc tránh phát
hiện và bao gồm nhiều tính năng phức tạp, các nhà phân tích đã chuyền đổi sang sửdụng các kỹ thuật học máy để xác định và phân loại các đặc tính của mã độc Cácphương pháp này kết hợp linh hoạt các thuật toán và kỹ thuật trích xuất thuộc tính,
và đặc biệt là sử dụng bộ dữ liệu đa dạng (như ember) Kết quả từ thực nghiệm cho
thấy, sự kết hợp này đã mang lại hiệu quả phát hiện mã độc lên đến 97% [1] khi sử
dụng các kỹ thuật phân tích tĩnh.
Tuy nhiên, các nghiên cứu gần đây đã chứng minh rằng các hệ thống ứng dụng họcmáy nêu trên có khả năng mắc lỗi hồi quy thường chỉ xuất hiện trên những ứngdụng truyền thống khi chúng được nâng cấp Điều này tạo ra lỗ hồng trong việc bảo
vệ hệ thống, đòi hỏi các nhà nghiên cứu và chuyên gia an ninh phải kiểm thử cho hệ
thông học sâu của mình sau nâng câp, việc rât thách thức và tiêu tôn nhiêu nhân lực.
Trước thách thức này, một hướng tiếp cận hứa hẹn là sử dụng học tang cường(reinforcement learning) [2] két hop với kỹ thuật fuzzing [3] dé phat hién 16i hoiquy tôn tại trong hệ thống Việc kết hợp học tăng cường vào quá trình fuzz nhằmkhắc phục van dé mà nghiên cứu của nhóm Anh Nguyen đưa ra: Việc tạo ra đầu vàokiểm thử một cách không kiểm soát sẽ làm hỏng mô hình học sâu [4, 5] Điều này
đã làm cho việc kiểm thử trở nên không hiệu quả và khó khăn hơn
Chính vì vậy, trong nghiên cứu này, chúng tôi đề xuất một giải pháp mới là một hệthống học tăng cường có chức năng kiêm tra mẫu (adversarial sample checker) Ýtưởng là kết hợp quá trình tạo ra các mẫu đột biến với một bước kiểm tra tính chínhxác và tính thực thi của mẫu trước khi triển khai vào hệ thống Như vậy, chúng ta có
Trang 14thé đảm bảo rang các mẫu đột biến vẫn giữ được tính chức năng va khả năng gây
hại cho hệ thống mục tiêu.
1.2 Tính ứng dụng
Đề tài này mang đến một cách tiếp cận thực tế hơn trong việc áp dụng học tăngcường vào hệ thống tạo mẫu đối kháng phục vụ cho fuzzing Điểm đặc biệt củaphương pháp này là sau khi tạo ra các mẫu, chúng sẽ trải qua một quy trình kiểm tratính năng trước khi được đưa vào quy trình fuzz Nhờ vậy, kết quả của thử nghiệm
sẽ đánh giá được ứng dụng thực tế của hệ thống, thay vì chỉ tập trung vào việc tạomẫu đối kháng dựa trên kết quả của trình phát hiện một cách đơn thuần
Tổng quan, quá trình fuzzing đóng vai trò quan trọng trong việc phát hiện lỗi hồiquy ẩn trong hệ thống phát sinh sau khi nâng cấp hệ thống deep learning giúp tiếtkiệm nhân lực trong quá trình kiểm thử và phát hiện sớm lỗ hồng trong hệ thống
1.3 Những thách thức
Mặc dù hệ thống có khả năng thay đôi tệp thực thi ở nhiều phân đoạn khác nhau détao mẫu đột biến phục vụ cho quá trình fuzz, tuy nhiên nó chỉ giới hạn trong việc
tránh bị phát hiện bởi các công cụ phân tích tĩnh Đồng thời, bước kiểm tra tính
năng trong đề tài chỉ tập trung vào khả năng khởi chạy của các mẫu, chưa đi sâu vàoviệc phân tích các tính năng cụ thé Việc xem xét các yếu tố khác như khả năng kết
nối hay tính đặc trưng của các mẫu vẫn còn là một thách thức chưa được nhóm
chúng tôi khám phá.
1.4 Giới thiệu những nghiên cứu liên quan
1.4.1 Trình phát hiện mã độc
Những trình phát hiện mã độc mà chúng tôi sử dụng và trình bày đều áp dụng
phương pháp phân tích tĩnh và có mô hình học máy được huấn luyện bằng tập dữliệu DikeDataset [6] và EMBER [7] có thể được sử dụng để huấn luyện các thuậttoán trí tuệ nhân tạo đề dự đoán tính độc hại và thuộc tính vào một gia đình mã độc
Trang 15cho một tập tin PE hoặc OLE Các phương pháp trí tuệ nhân tạo có thé thay đổi từ
học máy (với các thuật toán như bộ phân loại hồi quy và bộ phân loại đa nhãn mềm)đên học sâu, tùy thuộc vào yêu câu cụ thê.
MalConvPlus là một mô hình mạng nơ-ron sâu được huấn luyện dé phát hiện phầnmềm độc hai (malware) thông qua việc phân tích các tập tin nhị phân Mô hình nay
là một bản nâng cấp từ mô hình MalConv, mang đến nhiều cải tiến về hiệu suất pháthiện và độ chính xác MalConvPlus có thể sử dụng các kỹ thuật học sâu hiện đạihơn như Attention Mechanism để cải thiện khả năng tập trung vào các phần quan
trọng của tập tin nhị phân.
= Binary Convolution | hà BF Temporal 3 LI? sponse
2a = 33 \ Embedding } Layer j Hỗ) (Max Pooling j bị E 0/1
Hình 1.1: Cầu trúc của mô hình MalConv
AttnGRU-CNN là một mô hình kết hợp giữa Gated Recurrent Unit (GRU),
Convolutional Neural Network (CNN), va co chế Attention (sự chú ý) Mô hình nàyđược thiết kế dé tận dụng ưu điểm của cả ba thành phan: khả năng xử lý thông tintuần tự của GRU, khả năng trích xuất đặc trưng không gian của CNN, và khả năngtập trung vào các phần quan trọng của dữ liệu của cơ chế Attention
GRU layers Attention layer Output
a=
Hình 1.2: Cấu trúc của mô hình AttnGRU
4 Hình 1.1: https://www.researchgate.net/figure/ARMDs-Architecture-vs-MalConv-
Architecture_fig2 364814341
Hinh 1.2:
https://www.researchgate.net/figure/Architecture-of-the-proposed-attention-based-GRU-model-for-performance-degradation_fig2_ 365189772
Trang 161.4.2 Mô hình fuzzing phát hiện lỗi hồi quy
Trước khi đối mặt với lỗi hồi quy, các mô hình phát hiện mã độc ứng dụng học máy
đã từng phải đối mặt với rất nhiều nghiên cứu nhăm giúp mã độc vượt qua chúng.Năm 2017, nhóm cua Anderson [8] đã sử dụng hoc tăng cường dé tan công vào môhình phân loại mã độc Trong những nghiên cứu trước kia, kỹ thuật thay đổi cáchàm trong mã độc đã được chứng minh là rất hứa hẹn Chính vì thế, họ đã thực hiệnmột số phương pháp thay đổi cấu trúc mã độc như chèn thêm hàm vào bảng nhậphàm, đổi tên các danh mục và thêm một danh mục mới Mặt khác, nhóm của
Kolosnjaji [9] lại thực hiện tan công vào mô hình phát hiện thông qua việc sử dụng
byte sốc như các thuộc tính (ví dụ như mô hình MalConv) Họ mang đến mộtphương pháp tan công thêm vào file thực thi từng byte từng byte bang cách tinhtoán độ biến động của một hàm khi byte thay đổi Phương pháp của họ có khả năngduy trì được chức năng ban đầu của mã độc và giúp nó có khả năng qua mặt trình
phát hiện.
Dé có thé phát hiện lỗi trong các mô hình phát hiện trước khi chúng bị khai thác dé
gây hại, MalFuzz [10] đã được nhóm tác gia Liu giới thiệu vào năm 2022 với khả
năng thực hiện fuzzing phát hiện lỗi trên mô hình học sâu Thực nghiệm của nhóm
tác giả đã chứng minh MalFuzz có khả năng kích hoạt lỗi trong nhiều ngữ cảnh củamột số mô hình như Convnet, MalConv, CNN 2-d
Bên cạnh đó, trong quá khứ đã có những nghiên cứu về phương pháp fuzzing đểphát hiện lỗi hồi quy trong các hệ thống học sâu như Deep Hunter [11, 12] vaDiffChaser [13] Tuy nhiên hai phương pháp nêu trên vẫn tồn tại nhiều bất cập.Deep Hunter chỉ có thể phát hiện lỗi tập trung vào một phiên bản của hệ thống thay
vì tìm ra lỗi hồi quy giữa hai phiên bản Về DiffChaser, tuy mục đích là tìm ra lỗigiữa phiên bản gốc và phiên bản đã nâng cấp nhưng nó chỉ xem xét đầu vào đượctạo ra có nằm trong vùng lỗi của một phiên bản có định hay không chứ không quan
tâm tới ảnh hưởng của nó tới cả hai phiên bản.
Trang 17I
be apes oy) LT gegen : se Q |
Sem —- | G Mutation Rule fi gpk GAN Filtering — SO
= 1} Selection | ||! *## -— 7 _ High-Fidelity Inputs |
Seed |! TT ee Nese a eee =
ĐI TTT TT a me me mmm nnn ee #é`Ằ- "
& Wi h
| 9 — ge! se So input |
{Mutation Rules Mutated Inputs | Original Model Regression Model Execution
ÂN Giác em Già LG ncaa Sa ema | 0 eg oe Neh Nn Mi re OR Ea ESOS DGC RT NRO ET i
pura Seed Maintenance ts i |
ie Le a ae spensnreseeee ee aes ae H
i | : Phi Tree-based Trimming | ! > Potential | | 3
— Test Input | ¡
` it See 1 H > 5 ty Regression
Seed Foot ‘tlh Seed Probability Update; | Evaluation } | Faults
Hinh 1.3: Framework DRFuzz [14]
Đồng thoi những dau vào tạo ra từ DiffChaser không được đảm bảo về tính trungthực dé không làm hư hại mô hình học sâu được kiểm thử gây ảnh hưởng đến tính
thực tiễn của DiffChaser.
Bên cạnh những bất cập trên, thì DREuzz [14] ban đầu này chỉ thực hiện fuzz trên
mô hình nhận diện hình ảnh và chưa tiễn hành trên các mô hình phát hiện mã độc
1.4.3 Mô hình học tăng cường
Học tăng cường là một phương pháp học máy độc đáo, trong đó khả năng học được
xảy ra thông qua tương tác trực tiếp với môi trường Điểm đặc biệt của phươngpháp học này là hệ thống có khả năng tương tác và điều chỉnh mô hình theo các
thuật toán đa dạng Thông qua quá trình này, học tăng cường mang lại khả năng học
mạnh mẽ và linh hoạt, đồng thời đáp ứng được nhiều yêu cầu và trang thái của môi
trường.
Theo nhóm Anderson, hệ thống được phát triển có khả năng tránh phát hiện mã độclên đến 24% Điều nay có nghĩa là trong 100 mẫu mã độc, hệ thong đã tạo ra thànhcông 24 mẫu đối kháng có khả năng qua mặt hệ thống phát hiện Tuy nhiên, trongquá trình đánh giá với 200 mẫu, tỷ lệ tránh phát hiện giảm xuống còn 16.25% Mặc
dù các hành động được thực hiện không ảnh hưởng đến chức năng của mã độc,
Trang 18nhưng công trình của nhóm Anderson chưa kiêm tra lại tính năng của các mau mã
được tạo ra Do đó, hiệu quả thực tê của các mâu đôi kháng vẫn còn khá không chắc
chan Dé dam bao tính khả thi và an toàn, nghiên cứu tiếp theo là cần thiết
Nhóm tác giả Fang đã phát triển một hệ thống tạo mẫu đối kháng sử dụng học máyDQEAF Họ cho rằng hiệu quả tạo mẫu sẽ tốt hon với dữ liệu đầu vào nhỏ Hệthống này giảm không gian hành động xuống còn bốn hành động Tuy nhiên, tương
tự như nhóm tác giả Anderson, tính năng của các mẫu mã vẫn chưa được kiểm tra
lại Hơn nữa, với mỗi mã độc, hệ thống DQEAF thực hiện lại các hành động tới 80
lần, tạo ra đặc tính đặc biệt cho các mẫu độc Điều này có thé giúp trình phát hiện
học lại đặc tính của mau mới và phát hiện được các mau đôi kháng cuôi cùng [15]
Hệ thống AIMED-RL, được xây dựng bởi nhóm tác giả Raphael Labaca- Castro, là
một phát triển tiếp theo của DQEAF Hệ thống này sử dụng lai mô hình
gym-malware và tập trung vào đảm bảo tính năng của mã độc AIMED-RL đánh giá mức
độ tương đồng giữa mẫu đối kháng và mẫu gốc, nhằm đảm bảo rằng mẫu vẫn hoạtđộng sau khi được chèn Phần thưởng của AIMED-RL được tính toán dựa trên mức
độ tương đồng, với hành động giữ được độ tương đồng cao nhận được phần thưởngcao Cải tiến này khuyến khích tác tử lựa chọn các hành động dé bảo vệ khả năng
thực thi của mẫu độc [16]
Trang 19Các công trình nghiên cứu trước đây chỉ tập trung vào việc đánh giá số lượng mẫuđột biến có khả năng vượt qua trình phát hiện sau khi huấn luyện mô hình học tăng
cường Do đó, mô hình học tăng cường không đặt nặng vào việc tạo ra các mẫu có
khả năng thực thi, mà chỉ đơn giản giúp mẫu vượt qua trình phát hiện Nhận thấyđiều này, chúng tôi đã quyết định tiến hành nghiên cứu và xây dựng một mô hìnhtạo ra các mẫu đột biến có khả năng thực thi
1.5 Mục tiêu, đối tượng, và phạm vi nghiên cứu
1.5.1 Mục tiêu nghiên cứu
Đề tài này tập trung vào việc ứng dụng học tăng cường dé tạo ra các mẫu đối khángđảm bảo đủ các tính chất của mẫu ban đầu dé quá trình fuzz không làm hại cho hệthống ban đầu Phương pháp học tăng cường cho phép hệ thống tương tác trực tiếpvới môi trường và học hỏi thông qua các phản hồi và kết quả trực tiếp từ môi trường
đó Nhờ tính linh hoạt và khả năng tương tác này, các mẫu thực thi được tạo ra vừa
có khả năng kích hoạt lỗi hồi quy, vừa đảm bảo rằng nó không làm hư hại hệ thống
Mục tiêu của đề tài là phát triển một mô hình ứng dụng kỹ thuật DRFuzz [14] và
học tăng cường để thực hiện kiểm thử những hệ thống Deep learning nhằm pháthiện lỗi hồi quy (Regression faults) giữa những phiên bản của hệ thống mục tiêu
Sử dụng học tăng cường như một phương pháp đảm bảo về tính trung thực của đầu
vào do mô hình tạo ra trong quá trình fuzz nhằm tránh trường hợp DRFuzz làm
hỏng hệ thống Deep Learning do các đầu vào không phù hợp trong quá trình fuzz
1.5.2 Đối tượng nghiên cứu
Đối tượng nghiên cứu:
Trang 201.5.3 Phạm vi nghiên cứu
Nghiên cứu của chúng tôi tập trung vào việc trích xuất các thuộc tính của tệp thựcthi mã độc, sau đó tạo ra các mẫu mới bang cách thay đổi những thuộc tính này.Mục tiêu là đánh giá lại hiệu suất của các trình phát hiện mã độc và khả năng thực
thi của tệp thông qua việc sử dụng môi trường máy ảo.
Trang 21CHƯƠNG 2 CƠ SỞ LÝ THUYET
Chương này trình bày cơ sở lý thuyết của nghiên cứu: Bao gồm mã độc, các kỹ
thuật phân tích mã độc, các mô hình phát hiện mã độc, và mô hình học tăng cường.
nghĩa trong tập tin.
Định dạng PE được phát triển dựa trên định dạng COFF (Common Object FileFormat), một định dang tương tự duoc sử dung trong hệ điều hành UNIX Tuynhiên, định dạng PE đã được mở rộng và cải tiễn để đáp ứng các yêu cầu đặc thù
của môi trường Windows.
Phần mở rộng của tập tin PE có thé đa dạng và phụ thuộc vào loại tệp tin cụ thể
Các phần mở rộng thông dụng bao gồm EXE (tệp tin thực thi), DLL (thư việnđộng), SRC (nguồn), BPL (gói liên kết biên dịch), DPL (gói liên kết động), CPL(Control Panel applet), OCX (ActiveX Control), ACM (Audio Compression
Manager) va AX (DirectShow filter).
Từ việc sử dụng định dang PE, hệ điều hành Windows có khả năng hiểu và thực thi
các tệp tin chương trình và thư viện một cách hiệu quả, đóng góp vào việc chạy các
ứng dụng và dịch vụ trên nền tảng Windows một cách đáng tin cậy và nhất quán
e Tải chương trình lên bộ nhớ: Định dang PE cung cấp thông tin về các đoạn
mã cân được tải lên bộ nhớ và cách thức lưu trữ chúng Nó mô tả vi trí và cau
10
Trang 22trúc của các phân đoạn mã, cũng như cách thức khởi tạo và tham chiếu đếncác thư viện cần thiết.
e _ Cung cấp tài nguyên cho chương trình: Dinh dang PE cũng chứa thông tin
của các tài nguyên mà chương trình có thé sử dụng trong quá trình thực thi.Điều này bao gồm hình ảnh, đoạn phim, âm thanh, chuỗi ky tự, biểu tượng
và các tài nguyên khác.
e_ Bảo mật chương trình: Tập tin PE sử dụng các cơ chế bảo mật như chữ ký
số dé đảm bảo tính xác thực và nguồn gốc của chương trình được nạp Các
chữ ký số này giúp đảm bảo rang hệ điều hành có thé xác định và xác thựcnguồn gốc của chương trình trước khi thực thi nó
Dinh dạng tập tin PE đóng vai trò quan trọng trong việc dam bảo tính linh hoạt và
an toàn cho các chương trình thực thi trên Windows Cấu trúc chung của định dạngtập tin PE thường sẽ có 2 phân đoạn, phân đoạn thứ nhất là cho đoạn mã và phân
đoạn thứ hai là cho dữ liệu.
Phan tiếp theo là mô tả chi tiết về thành phan quan trọng của định dạng tập tin PE:
2.1.1.1 Trường tiêu đề DOS (DOS Header)
Trường tiêu dé DOS trong tập tin PE chứa thông tin đặc biệt được sử dung khi tậptin chạy trong môi trường MS-DOS Mục đích chính của nó là thông báo rằng tậptin này không thé hoạt động trong môi trường đó Trường tiêu đề DOS chiếm 64byte đầu tiên trong tập tin và bao gồm hai giá trị quan trọng: e_magic (0x5a4b) va
e_lfanew, một DWORD (4 byte) Giá tri trong e lfanew chỉ định khoảng cách
(offset) đến Trường tiêu đề PE trong tập tin
2.1.1.2 Trường tiêu đề PE (PE Header)
Trường tiêu đề PE chứa các thông tin cần thiết dé tải chương trình lên bộ nhớ Cautrúc của trường này bao gồm ba phần chính:
e Signature: Một DWORD đầu tiên trong trường tiêu dé PE, chứa chữ ky PE:
50h, 45h, 00h, 00h.
11
Trang 23e Trường tiêu đề tập tin: Gồm 20 byte tiếp theo của trường tiêu đề PE, chứa
thơng tin về sơ đồ bé trí vật lý va các đặc tính của tập tin Trong trường này,
ta cần chú ý đến trường NumberOfSections, chứa số lượng phân đoạn trongtập tin Đề thêm hoặc xố phân đoạn trong tập tin PE, ta cần điều chỉnh
trường nay tương ứng.
e_ Trường tiêu đề tùy chọn: Gồm 224 byte tiếp theo sau trường tiêu đề tập tin
Cấu trúc này được định nghĩa trong windows.inc và chứa thơng tin về sơ đồ
nhập xuất trong tập tin PE.
PORTABLE EXECUTABLE MEJEEEMS:
FIELDS VALUES
D:\>mini.exe DOS HEADER e_magic MZ
IT'S ABIN lf 0x40 + PE Head
D:\>echo %errorlevel% lN = ITSA BINARY eee : Ti, 5 = l sel
42 \ ⁄ PE HEADER Signature PE\O\O
T'S A HOGER ay Machine 0x14C [intel 386]
“ S A "ODERN BINA isti
6123456789 AOB COE F A N6 2 [executable]
988: H Z Magic 0x108 [32b]
AddressofEntryPọnt 0x140
ng, Serre 4È ði 49.98 90 99 TmageBase 0x400000
SP Ê 4 <e eat SectionAlignment x
958: 82 89:9B 91 OPTIONAL HEADER FileAlignment 1
868: 48 81 88 88 EXECUTABLE INFORMATION MajorSubsystemversion 4 [NT 4 or later]
2.1.1.3 Phân đoạn bảng (Section Table)
Phân đoạn bảng là thành phần ngay sau trường tiêu đề PE và chứa một mảng cáccấu trúc IMAGE_SECTION_HEADER Mỗi phan tử trong mang chứa thơng tin vềmột phân đoạn trong tập tin PE Một số trường quan trọng trong mỗi phần tử là:
e Kích thước ảo (VirtualSize): Kích thước thực tế của phân đoạn khi được
nạp vào bộ nhớ, tính bằng byte Giá trị này cĩ thể nhỏ hơn kích thước trên
Trang 24e Kích thước dữ liệu gốc (SizeOfRawSection): Kích thước phân đoạn dữ liệu
trên đĩa.
e Con trỏ dữ liệu gốc (PointerOfRawSection): Khoảng cách từ vi trí đầu tập
tin đến phân đoạn dữ liệu
e Thuộc tinh (Characteristics): Chứa các cờ đặc điểm của phân đoạn, ví dụ:
cờ thực thi mã (executable code), dữ liệu khởi tao (initialized data),
2.1.1.4 Phan đoạn tập tin PE (Section PE File)
Phân đoạn tập tin PE chứa nội dung chính của tập tin, bao gồm mã máy, dữ liệu, tài
nguyên và những thông tin liên quan đến chương trình thực thi Mỗi phân đoạn có
một tiêu đề và dữ liệu sốc (dữ liệu chưa được xử lý) Các phân đoạn tiêu đề được
chứa trong phân đoạn bảng.
Code View Debug Information
COFF Symb ols
Trang 25e Phân đoạn mã thực thi (executable code): Chitra mã máy của chương trình,
thường được tập trung trong một phân đoạn duy nhất có tên ".text" hoặc
"code".
e Phân đoạn dữ liệu (.rdata): Biểu diễn dữ liệu chi dé đọc như chuỗi, giá trị
hằng, thông tin, v.v Tất cả các biến ngoại trừ biến tự động xuất hiện trongngăn xếp (stack) cũng được lưu trữ trong phân đoạn này
e Phân đoạn tài nguyên (.rsrc): Chứa thông tin về tài nguyên của một
module 16 byte đầu tiên của phân đoạn này chứa một tiêu đề giống như cácphân đoạn khác, nhưng dữ liệu tại phân đoạn này được cấu trúc thành một
cây tài nguyên và được biên dịch bằng trình biên dịch tài nguyên
e Phân đoạn xuất dữ liệu (.edata): Chita thư mục xuất (Export Directory)
cho một ứng dụng hoặc tập tin DLL Khi được biểu diễn, phân đoạn này baogồm thông tin và địa chỉ của các ham được xuất
e Phân đoạn nhập dữ liệu (.idata): Chứa thông tin về thư mục nhập (Import
Directory) và bảng địa chỉ nhập (Import Address Table).
2.1.2 Hợp ngữ
Hợp ngữ thuộc loại ngôn ngữ bậc thấp được thiết kế cho từng bộ xử lý tương tácgan nhất với máy tính Mỗi dòng lệnh của hợp ngữ gần như tương đương với mộtlệnh chỉ dẫn của bộ xử lý Với ngôn ngữ này, ta có thê sử dụng các công cụ để dịchngược mã độc thành hợp ngữ đề giúp việc phân tích và điều tra trở nên dé dàng hơn
Thông thường, khi được biên dịch thành hợp ngữ, các chương trình độc hại sử dụng
các lệnh dé tương tác với hệ điều thông qua việc gọi đến các thư viện liên kết động(DLL), những thứ được tải lên bộ nhớ tại thời điểm hoạt động Mã độc thường sửdụng DLL để thực hiện những tác vụ như thay đổi thanh ghi của hệ thống, dichuyên hoặc sao chép tập tin, tạo liên kết hoặc kết nối với máy chủ, vùng mạng
khác thông qua các giao thức mạng khác nhau, vân vân.
Các trình phát hiện mã độc thường dựa vào các đặc điêm vé câu trúc tập tin hoặc
hành vi khi thực thi để xác định tập tin độc hại Để vượt mặt các trình này, một vài
14
Trang 26kỹ thuật trên hợp ngữ được áp dụng nhằm làm biến đổi hình dang, trạng thái của mã
độc như:
Sửa đổi cấu trúc lệnh: Mã độc có thé thay đổi cau trúc của lệnh hợp ngữ dé
làm cho nó khó nhận biết và phân tích.
Mã hóa: Mã độc có thể mã hóa phần của chương trình bằng các thuật toán
mã hóa và ân đi mục đích và hành vi thực sự
Điểm đích dịch ngược: Mã độc có thể tạo ra các lệnh hợp ngữ khác nhau
thông qua dịch ngược từ cùng một mã nguồn
Gắn kết động: Mã độc có thé thông qua các kỹ thuật gắn kết động dé trìhoãn thời điểm thực thi của mã độc và thực hiện các hành động không mong
muôn sau khi tránh qua các công cụ phân tích sơ bộ.
Việc các kỹ thuật nêu trên được sử dụng trên hợp ngữ giúp mã độc tránh được phát
hiện và phân tích sâu hơn.
Chèn mã chết (Dead-code insertion)
Tái khai báo thanh ghi (Register Reassignment)
Tái sắp xếp chương trình con (Subroutine Reordering)Thay thế lệnh (Instruction Substitution)
Chuyên vị mã (Code Transposition)
Tích hợp mã (Code Integration)
Phân tích hợp ngữ cho chúng ta cái nhìn rõ ràng hơn về cơ chế phát hiện mã độc
của các công cụ hiện tại Bên cạnh các thuộc tính liên quan đên tệp thực thi, các
công cụ phát hiện cũng tập trung phân tích theo mẫu hợp ngữ.
2.2. Phát hiện lỗi hồi quy (Regression fault) bằng kỹ thuật fuzz
2.2.1 Lỗi hồi quy (Regression fault)
Lỗi hồi quy là những lỗi xuất hiện lại lần nữa trong một ứng dụng sau khi nó đãđược nâng cấp hoặc cập nhật bản vá Các lỗi này đã từng được khắc phục hoặc ứngdụng này từng không gặp phải lỗi này trước đó, nhưng lại xuất hiện sau khi có
15
Trang 27những thay đổi, cập nhật trong mã nguồn, cấu hình của ứng dụng hoặc bổ sung những tính năng mới sau khi nâng cấp.
Những nguyên nhân gây ra lỗi hồi quy thường là do những biến đổi trong quá trìnhchỉnh sửa, cập nhật mã nguồn có thê đã thay đổi hoặc làm hư hại các chức năng banđầu hoạt động ồn định
Khi sửa một lỗi trong một module hay một phần trong mã nguồn, song song vớiviệc vá lỗi lập trình viên có thể gây ra ảnh hưởng tiêu cực đến các module kháctrong hệ thống mà họ không nhận ra Bên cạnh đó, khi thêm mới hay thay đổi tínhnăng hiện có trong hệ thống có thể dẫn đến xung đột giữa các module làm cho hệthống phát sinh lỗi Những thay đổi từ phía các thư viện được sử dụng trong lập
trình nên hệ thống, các thư viện bên ngoài hay các API cũng có thể gây ra lỗi do sự
thay đổi trong logic hoặc giao diện của chúng
Lỗi hồi quy thông thường chỉ xuất hiện trong phần mềm truyền thống, tuy nhiên cácnghiên cứu cũng như những sự kiện thực tế đã chỉ ra răng các phần mềm ứng dụng
học sâu vẫn có khả năng mắc phải những lỗi hồi quy gây hại nghiêm trọng cho các
cá nhân và tô chức.
Một ví dụ thực tế là vào năm 2021, sau khi phần mềm nhận diện gương mặt củaSamsung Galaxy S10 5G được nâng cấp lên phiên bản mới, người dùng đã khôngthé nào mở khóa bằng cách quét gương mặt minh bat ké họ đang ở điều kiện ánhsáng như thế nào Đó chính là một lỗi hồi quy trong mô hình học sâu đã gây ra thiệt
hại lớn cho uy tín và doanh thu của tập đoàn Samsung [17]
bằng cách đưa tất cả đầu vào đó cho chương trình sau đó giám sát quá trình thực thi
của nó Hình 2.2 là miêu tả một quy trình fuzzing một phần mềm
16
Trang 28Khi so sánh fuzzing với những phương pháp kiểm thử khác, fuzzing dễ dàng triển
khai hơn và đa dung hơn bởi vi dù có biết hay không biết gì về mã nguồn Bên cạnh
đó, kiểm thử bằng fuzzing thực thi cả chương trình trong thời gian thực, việc nàymang lại độ chuẩn xác cao Hơn nữa, fuzzing không đòi hỏi người kiểm thử phải cóthông tin về chương trình mục tiêu và có thể dễ dàng điều chỉnh cho cả phần mềm
đơn giản cho tới những hệ thống lớn và phức tạp.
testcase generation
programexecution
Violation?
Hình 2.3: Quá trình kiểm thir bang fuzzing [10]
Mặc dù fuzzing đối mặt với nhiều bat cập như hiệu suất thấp và không bao phủ hếttất cả các ngữ cảnh của chương trình, tuy nhiên nhiêu đó không đủ để phủ định đi
những giá trị mà kỹ fuzzing mang lại Chính vì thé mà fuzzing trở thành kỹ thuậtphát hiện lỗ hồng hiệu quả và hiện đại nhất hiện nay
17
Trang 29Bảng 2.1 phía dưới đây cho chúng ta thấy những điểm vượt trội và điểm yếu của
fuzzing so với các kỹ thuật khác như phân tích động, phân tích tinh, symbolic execution.
Ky thuat Trién khai D6 chinh xac D6 linh hoat
Phan tich tinh Dé Thap Kha tot
Phan tich dong Khó Cao Không xác định
Symbolic execution Kho Cao Thap
Fuzzing Dé Cao Cao
Bang 2.1: So sánh fuzzing và các kỹ thuật kiểm thử khác
Fuzzer — phần mà tao ra đầu vào cho quá trình fuzzing được chia làm hai loạiphương pháp chính là tạo ra đầu vào mới và biến đổi đầu vào có sẵn thành một đầuvào mới Fuzzer kiểu tạo ra đầu vào mới cần một mức độ thông hiểu về chươngtrình mục tiêu ở một mức nhất định Fuzzer tạo mẫu đột biến thì cần một tập đầuvào khởi điểm hợp lệ, từ đây các mẫu kiêm thử sẽ được tạo ra dựa theo những đầuvào này trong suốt quá trình fuzzing Dựa theo mức độ phụ thuộc vào mã nguồn và
khả năng phân tích chương trình, fuzzer cũng có thé được chia làm ba loại như kiểm
thử thông thường là hộp đen, hộp trắng và hộp xám
2.2.3 Ứng dụng fuzz dé phát hiện lỗi hồi quy trong mô hình học sâu
Hệ thống học sâu (DL) được ứng dụng trong nhiều lĩnh vực khác nhau, những cũng
như phần mềm truyền thống, chúng cũng có thể gặp phải các lỗi hồi quy trong quá
trình nâng cấp hệ thống Nghiên cứu lần này giới thiệu DRFuzz [14], một kỹ thuậtfuzzing hồi quy mới được phát triển dé xác định lỗi hồi quy giữa các phiên bản củacác hệ thống DL DRFuzz nhằm tạo ra các đầu vào trigger các lỗi hồi quy đa dạngvới độ chính xác cao Đề đạt được mục tiêu này, nó sử dụng một tiêu chí kiểm thử
đa dạng dé phát hiện một loạt các hành vi lỗi Ngoài ra, DRFuzz tích hop các mô
hình học tăng cường đê bảo đảm tính chính xác của các đâu vào kiêm thử được tạo
18
Trang 30ra Hiệu quả của DRFuzz được đánh giá thông qua một nghiên cứu mở rộng với bốn
mô hình trong bốn kịch bản hồi quy của các hệ thống DL Kết quả thử nghiệm cho
thấy rằng DRFuzz vượt trội hơn hai phương pháp đã từng được phát triển trước đó
là DeepHunter [11] và DiffChaser [13], với sự tăng cường dang kế về số lượng lỗi hồi quy phát hiện được.
Cu thé, thực nghiệm của nhóm You Hanmo [14] đã chỉ ra DRFuzz cho ra số lượngđầu vào kiểm thử kích hoạt lỗi hồi quy và số lỗi hồi quy được phát hiện bởi các đầuvào đó đều vượt xa DeepHunter và DiffChaser Với DeepHunter, tỷ lệ đầu vào kích
hoạt lỗi của DRFuzz cao hơn 1130% và tỷ lệ số lỗi hồi quy phát hiện được cao hơn
539% còn đối với DiffChaser, tỷ lệ này của DRFuzz vượt mặt DiffChaser lần lượt
là 204% và 1177%.
Tìm kiếm những lỗi liên quan đến Regression faults được hiểu là tìm kiếm những
test input được các mô hình deep learning đưa ra kết quả sai với phiên bản hiện tại
nhưng đưa ra kết quả đúng với phiên bản trước đó Nghiên cứu đề xuất một kĩ thuậtfuzzing mới có thể đáp ứng được 3 tiêu chí:
e Fault-triggering: Các đầu vào kiêm thử cần phát hiện càng nhiều lỗi càng
tốt Đây là tiêu chí cốt lõi Dé đạt được mục tiêu này, DRFuzz sử dụng sự
khác biệt trong dự đoán được đưa ra giữa các phiên bản, thay vì sự thay đổicủa neuron dé năm bắt sự ảnh hưởng mang lại bởi việc nâng cấp hệ thống.Thông tin như vậy làm cho việc kích hoạt các lỗi trở nên trực tiếp hơn vàkhông phụ thuộc vào cấu trúc hay mã nguồn của mô hình, giúp cho quá trìnhfuzz hiệu quả hơn Băng cách tích hợp phản hồi từ các đầu vào đã được tạo
ra và thiết kế một loạt các quy tắc biến đổi, DRFuzz hướng dẫn quá trình tạo
ra các đầu vào kiểm thử mới theo hướng tăng cường sự khác biệt trong dự
đoán của các phiên bản.
e Tính đa dạng: Phát hiện được nhiều dạng lỗi hồi quy thông qua kiểm thử sẽ
giúp gia tăng hiệu quả của mô hình học sâu sau này.
19
Trang 31e Fidelity (tính trung thực): Việc đảm bảo tính trung thực cho đầu vào mà
DRFuzz tạo ra cũng rat quan trọng (đầu vào phải duy trì ngữ nghĩa như banđầu) Bởi vì đầu vào kiểm thử thiếu đi tính chất này rất dễ làm hỏng đi môhình học sâu Để tao ra được những đầu vào chất lượng, DRFuzz tạo ra mộtphương pháp bảo đảm dựa trên GAN, thứ mà đầu tiên sẽ học khả năng phânbiệt thông qua GAN dé có thể biết đâu là đầu vào tự nhiên và đâu là đầu vàođược tạo ra, sau đó sử dụng nó để đảm bảo đầu vào kiểm thử sẽ giống VỚIđầu vào tự nhiên [14]
Từ mô hình của DRFuzz mà nhóm You Hanmo đề xuất để fuzz các mô hình nhận
diện hình ảnh, nhóm chúng tôi đã cải tiến mô hình này dé có thé thực hiện kiểm thử
trên các mô hình học sâu chuyên dùng đề phát hiện mã độc
2 z | eet
Quan li Seeds Fuzzing
— A — So > @ ~~ Thực thiÀ và
ấ I Phiên bản — Phiên bản trước =
Mẫu mã độc đột biến I kiếm thử đó của mô hình
Bộ mẫu mã độc khởi đầu I
I I
Thêm vào seed pool dé làm mẫu khởi |
hoạt lỗi hồi quy
đầu cho lần kiểm thử tiếp theo đ Mẫu đã kích
Hình 2.4: Mô hình fuzzing đề xuất
Mô hình nhóm chúng tôi đê xuât sẽ lây mã độc từ tập dữ liệu được chuân bi đê làm
seed khởi điểm Sử dụng seed này, mô hình học tăng cường sẽ tiễn hành đột biến để
tạo ra mẫu mới Các mẫu đột biến này sau đó được xử lý và tải vào mô hình cần
kiêm thử hồi quy (ở đây là mô hình phiên bản mới) dé tiến hành phân loại Khi mẫu
20
Trang 32đã thành công vượt qua mô hình này, nó sẽ được đưa vào phiên bản cũ của mô hình
đó dé phân loại một lần nữa Nếu nó không bị mô hình này phát hiện thì mẫu đó đã
thành công kích hoạt một lỗi hồi quy và mẫu này sẽ được đưa vào seed pool dé làm
seed cho lân fuzzing sau.
2.3 Phương pháp phân tích tĩnh
Phân tích tĩnh trong phát hiện mã độc là một quy trình sử dụng các kỹ thuật và công
cụ dé kiểm tra mã nguồn hoặc tệp thực thi của chương trình mà không thực tế thựcthi nó Mục đích chính của phân tích tĩnh là xác định các dấu hiệu, mẫu mã độc và
các hành vi không mong muốn trong mã nguồn hoặc tệp thực thi mà có thé gây hại
cho hệ thống
Trong quá trình phân tích tĩnh, các công cụ sẽ quét và phân tích cấu trúc của chươngtrình như các hàm, lớp, biến, lệnh, và thực hiện việc kiểm tra các quy tắc và mẫu mãđộc đã biết Các công cụ này sử dụng các phương pháp tĩnh như phân tích luồngđiều khiến, phân tích cấu trúc, phân tích dữ liệu, và phân tích tương tác giữa cácthành phần đề tìm kiếm các điểm nỗi bật và đánh giá tính độc hại
Phân tích tĩnh giúp phát hiện các biểu hiện của mã độc như đoạn mã gọi hàm nguy
hiểm, việc thay đổi trạng thái của hệ thống, tương tác với các tài nguyên nhạy cảm,hoặc tạo ra các đoạn mã không mong muốn Kết quả của phân tích tĩnh thường làcung cấp thông tin chỉ tiết về cấu tạo và hành vi của chương trình, giúp người dùng
hoặc các công cụ phát hiện mã độc xác định xem chương trình có phải là một mã độc hay có chứa mã độc hại bên trong hay không.
Tuy phân tích tĩnh mang lại những thông tin quan trọng, nhưng nó cũng có hạn chế.
Một số mã độc có thé được che giấu hoặc mã hóa dé tránh bị phát hiện bằng phân
tích tĩnh truyền thống Vì vậy, phân tích tĩnh thường được kết hợp với phân tíchđộng và các kỹ thuật khác dé tăng cường khả năng phát hiện mã độc
21
Trang 332.3.1 Kỹ thuật dò quét
Ky thuật dò quét trong phát hiện mã độc thường sử dụng các mẫu hoặc dấu hiệu đặctrưng để nhận diện mã độc Các dấu hiệu này có thể là chuỗi byte hoặc không yêucầu một cấu trúc chuỗi cụ thể Các công cụ phát hiện mã độc thường hỗ trợ sử dụng
các ký tự được quy ước để đại diện cho một phần của byte, một byte hoàn chỉnh
hoặc cho nhiều byte Quá trình phát hiện mã độc được thực hiện bằng cách quét qua
nhiều khối byte, có thể là toàn bộ một tệp, một phần của tệp được đọc hoặc ghi,hoặc các gói tin mạng.
Với số lượng dấu hiệu lên đến cả trăm nghìn, việc kiểm tra chúng cùng một lúc trở
nên không khả thi Tìm ra các thuật toán có khả năng quét đồng thời nhiều mẫu mộtcách hiệu quả sau đó đánh giá chúng làm một trong những thách thức lớn nhất của
kỹ thuật dò quét.
Đối với các mã độc phức tạp, kỹ thuật dò quét dựa trên mẫu có thê không đủ Do
đó, các phương pháp phát hiện mã độc khác như phân tích động, kiểm tra hành vi,hoặc phân tích tác nhân có thé được áp dung dé tăng cường kha năng phát hiện và
e-configured Scripts
Anti-Malware Engines Emulation environment
Signature Based Detection Live Infection Environment
Maching Learning Detection Cyber Threat Intelligence
Heuristic Based Detection URL Reputation Check
Content Disarm Red Zero-day Malware Detection
Hình 2.5: Giải pháp phân tích mã độc OPSWAT
22
Hình 2.5: https://vietnamese.opswat.com/solutions/malware-analysis
Trang 34Kỹ thuật dò quét đóng vai trò quan trọng trong quá trình phát hiện mã độc, giúp xác
định các mẫu đặc trưng của mã độc và cung cấp cảnh báo sớm để ngăn chặn và
giảm thiểu các hậu quả tiềm năng của chúng đối với hệ thống
2.3.2 Kỹ thuật Tìm kiếm tĩnh (Static Heuristic)
Static Heuristic là một kỹ thuật phân tích tĩnh trong việc phát hiện mã độc Nó được
sử dụng dé đánh giá các tệp tin mã nguồn hoặc tệp tin thực thi mà không cần phải
thực sự khởi chạy chúng Mục đích chính của Static Heuristic là tìm ra các đặc
diém, mẫu hoặc dâu hiệu có thé chỉ ra sự tôn tại của các đoạn mã độc hại trong tệp
Trang 35Kỹ thuật Static Heuristic có thể áp dụng các quy tắc, công thức hoặc thuật toán để
phân tích hành vi và cấu trúc của mã nguồn hoặc tệp tin thực thi Nó tìm kiếm các
dấu hiệu, như chuỗi byte đặc trưng, cấu trúc lệnh đáng ngờ hoặc các hàm gọi hệ
thống không an toàn Dựa trên các đặc điểm này, Static Heuristic có thể đưa ra cảnh
báo cho sự có mặt của mã độc.
Mục đích chính của Static Heuristic là phát hiện dé có cảnh báo sớm về sự có mặt
của mã độc trong tệp tin, giúp ngăn chặn hoặc giảm thiểu các tôn hại tiềm năng gây
ra bởi mã độc Nó là một yếu tố quan trọng trong quá trình phát hiện mã độc và hỗ
trợ các chuyên gia an ninh máy tính trong việc phân tích và đối phó với các mã độcgây đe dọa đến hệ thống
2.3.3 Kỹ thuật kiểm tra tính toàn vẹn
Kiểm tra tính toàn vẹn trong mã độc là một phương pháp dé xác minh tính toàn vẹncủa một tệp tin mã độc Mục đích chính của kỹ thuật này là kiểm tra xem tệp tin đã
bị sửa đối hay bị tác động bởi các quá trình ngoại lệ nào đó sau khi nó được tạo rahoặc phân phối ban đầu
II) Verify / Create Hash REE
@ File C3 Vnlume O Text
File [Drive-C:\Pragram Files\OSForensics\osf64.exe = Calculate
Hash Function MDS5 vy) Secondary Hash Function SHA-255 ~ Upper case output |]
Comparison Hash |534D8514E834DE3BIFF2335FB17E83D2 ở)
Hashes (primary) are equal Add Result to Case
Selected Hash Function Description
MD5 [Message-Digest algorithm 5] is an internet standard cryptographic hash function MD5 has been found
to not be collision resistant and therefore not suitable for many security applications.
Due to its popularity, MD65 is still used in many situations where security is not of high importance or for legacy
Trang 36Kỹ thuật kiểm tra tính toàn vẹn của tệp có thể sử dụng các thuật toán mã hóa, băm(hashing) hoặc chữ ký số dé tạo ra một giá trị đặc trưng duy nhất đại diện cho nội
dung của tệp tin gốc Sau đó, giá trị này về sau sẽ được so sánh với giá trị được tínhtoán trên tệp tin đang được kiểm tra Nếu hai giá trị khớp nhau, thì tệp tin được xem
là toàn vẹn Ngược lại, nếu có bất ky điểm khác biệt nào giữa hai giá trị tính toán,tệp tin có thé đã bị sửa đổi hoặc bị tác động bởi mã độc
Kỹ thuật kiểm tra tính toàn vẹn trong mã là một kỹ thuật quan trọng trong việc bảo
đảm tinh tin cậy và an toàn của tệp tin Nó có thể được sử dụng dé phát hiện các tác
động không mong muốn hoặc các thay đồi bất thường trong mã độc, giúp ngăn chặn
sự lây lan và ton hại từ mã độc trong hệ thống.
2.4 Phương pháp phân tích động
Phương pháp phân tích động là một kỹ thuật trong việc phân tích mã độc, được thực
hiện bang cách quan sát và theo dõi hành vi của mã độc trong quá trình thực thi
Khác với phân tích tĩnh, kỹ thuật phân tích động không yêu cầu truy cập đến mã
nguôn hay câu trúc tĩnh của chương trình, mà tập trung vào việc hiéu cách mã độc
Hình 2.8: Môi trường Windows tạo bởi VirtualBox
25
Trang 37Trong phân tích động, một môi trường thực thi được tạo ra dé chạy mã độc ma
không gây nguy hiểm cho hệ thống chủ Các công cụ hỗ trợ phân tích động có vai
trò giám sát những hành vi của mã độc, ghi lại các hoạt động, gọi hệ thống, truy cập
tài nguyên và tương tác mạng Thông qua việc phân tích các hành động và dữ liệu
mà mã độc tạo ra trong quá trình thực thi, phân tích động cung cấp những thông tin
về cách mã độc hoạt động và quá trình mà nó tiến hành những hành vi không mong
muôn.
Phân tích động cho phép phát hiện các hoạt động độc hại, như thay đôi hệ thống, tạo
tệp tin mới, gửi dữ liệu qua mạng, can thiệp hoặc tương tác với tiến trình và hành vibất thường khác Kỹ thuật này cũng có thể giúp xác định các điểm yếu trong mã
độc, như lỗ hong bảo mật, dé ngăn chặn và loại bỏ kịp thời các mối de dọa tiềm ẩn.
Phân tích động đóng vai trò quan trọng trong nghiên cứu và đối phó với mã độc,giúp các nhà phân tích hiểu về cách hoạt động của mã độc và phát hiện sớm cáchành vi độc hại Tuy nhiên, phân tích động cũng có thể gặp khó khăn khi mã độc có
khả năng phát hiện và tránh các môi trường phân tích động, hoặc khi gặp phải các
mã độc tiên tiến sử dụng các kỹ thuật ân danh và che dấu
2.4.1 Kỹ thuật Giám sát hành vi (Behavior Monitors)
Kỹ thuật Giám sát hành vi (Behavior Monitors) là một phương pháp quan trọng dé
phát hiện kịp thời và ngăn chặn các hành vi đáng nghi của chương trình Nó hoạt
động băng cách giám sát hoạt động thực thi của chương trình và kiểm tra xem có sự
vi phạm các quy tắc an toàn hay không Khi phát hiện biểu hiện đáng ngờ, kỹ thuậtnày có thể cảnh báo người dùng hoặc thi hành các biện pháp ngăn chặn như chặnquyên truy cập, cắt kết nối mạng, hoặc ngừng thực thi chương trình Việc sử dụng
kỹ thuật này giúp ngăn chặn hệ thống bị tan công bởi các mã độc và giảm thiểu rủi
ro từ hành vi độc hại của chúng.
26
Trang 382.4.2 Kỹ thuật giả lập (Emulation)
Kỹ thuật giả lập (Emulation) là một phương pháp phân tích mã độc bằng cách môphỏng một môi trường thực thi để xem hành vi của mã độc khi nó thực thi Thay vì
chạy trực tiếp trên hệ thống, mã độc được chạy trên một môi trường ảo được tạo ra
bởi trình giả lập Trong quá trình này, trình giả lập ghi lại các hoạt động của mã độc
như giao tiếp mạng, tương tác với tập tin, thay đồi thanh ghi hệ thống và các hoạt
động khác Việc giả lập cho phép chúng ta nắm bắt và phân tích chỉ tiết hành vi của
mã độc mà không cần chạy trực tiếp trên hệ thống thật, giúp đảm bảo an toàn vàtránh các rủi ro tiềm ân Giả lập là một kỹ thuật hữu ích trong việc phát hiện, phân
tích và ngăn chặn mã độc.
Có 2 phương pháp chính để áp dụng kỹ thuật này là:
Phân tích động (Dynamic Analysis): Đây là một kỹ thuật mạnh mẽ trong phân tích mã độc Kỹ thuật này tập trung vào việc giám sát và thu thập
những hành vi của chương trình khi nó được thực thi trong môi trường giả
lập Thông qua việc giám sát các hoạt động của chương trình, như giao tiếpmạng, tương tác với tệp tin, thay đối trạng thái hệ thong, kỹ thuật phân tíchđộng mang đến một cái nhìn rõ ràng về cách mã độc hoạt động và tương tácvới hệ thống Kết quả mang lại của kỹ thuật phân tích động có thé giúp pháthiện các hành vi độc hại, xác định sự tồn tại của mã độc và đưa ra các cảnh
báo kip thời.
Giải mã chung (Generic Decryption): Đây là một kỹ thuật phân tích các
loại mã độc có thuật toán mã hóa để che dấu hành vi của chúng Phươngpháp này tập trung vào các chuỗi ký tự không rõ nghĩa hoặc các khối đữ liệu
lớn được mã độc thao tác trong quá trình phân tích, từ đó sử dụng các khóa hoặc các thuật toán giải mã phô biên đê giải mã đoạn mã độc hại.
e Phan tích giải mã tổng quát (Generic Decryption Analysis): Trong trường
hợp các mã độc sử dung kỹ thuật đa dạng hóa, việc giải mã có thé gây khó khăncho những công cụ phát hiện mã độc Mã độc được tạo ra dé thực hiện các hành
27
Trang 39vi tan công trong trạng thái mã hóa, làm cho chúng khó bị phát hiện Tuy nhiên,khi đoạn mã độc được thuật toán giải mã trở lại thành mã thông thường, phầnthân của chương trình có thể trở nên dễ dàng phát hiện bằng các phương phápquét thông thường Điều này cho phép công cụ phát hiện mã độc có khả năngnhận biết các mã độc đa dạng hóa Kỹ thuật phân tích giải mã tổng quát sử dụng
kinh nghiệm dé xác minh mỗi khi mã độc giải mã chính nó, giúp xác định sự tồn
tại của các mã độc đa dạng hơn.
2.5 Mô hình phát hiện mã độc dựa trên học máy
Trong hai kỹ thuật phân tích tĩnh và phân tích động mà chúng tôi đã đề cập, hoàn
toàn có thé nhận thấy chúng dựa trên việc phân tích những mẫu mã độc đã được biết
đến hoặc các biến thể của chúng để tạo ra các mô hình và khuôn mẫu chung Tuy
nhiên, điều này làm cho việc nhận diện các loại mã độc mới chưa được biết đến trởnên khó khăn, và hệ thống trở nên dễ bị xâm nhập Ngoài ra, quá trình phân tích mãđộc khi chúng xuất hiện và tìm ra giải pháp có thé mat nhiều thời gian, tạo ra nguy
cơ lây lan và xâm nhập của mã độc.
Hiện nay, học máy đã được áp dụng rộng rãi trong lĩnh vực phát hiện mã độc dé dự
báo các loại mã độc mới Mô hình phát hiện mã độc dựa trên học máy có khả năng
tự động khám phá các khuôn mẫu mã độc từ dữ liệu trích xuất Các thuật toán họcmáy phổ biến như Cây quyết định (Decision Tree), Máy véc-tơ hỗ trợ (SVM),
Naive Bayes, Rừng ngau nhién (Random Forest), Mang no-ron (Neural Networks),
K hàng xóm gần nhất (K-Nearest Neighbors) đã được áp dung trong việc phát hiện
mã độc Bên cạnh những thuật toán học máy nêu trên, các mô hình học sâu cũng
đang dần được ứng dụng rộng rãi trong lĩnh vực phát hiện mã độc
Song song với những ứng dụng của học máy vào lĩnh vực phát hiện mã độc, nhiều
nỗ lực phát triển kỹ thuật để qua mặt các trình phát hiện này đã được nghiên cứu vàphát triển Năm 2017, nhóm của Anderson [8] đã sử dụng học tang cường dé tan
công vào mô hình phân loại mã độc Trong những nghiên cứu trước kia, kỹ thuật
thay đôi các ham trong mã độc đã được chứng minh là rất hứa hẹn Chính vì thế, họ
28
Trang 40đã thực hiện một số phương pháp thay đổi cấu trúc mã độc như chèn thêm hàm vào
bảng nhập hàm, đổi tên các danh mục và thêm một danh mục mới Mặt khác, nhóm
của Kolosnjaji [9] lại thực hiện tấn công vào mô hình phát hiện thông qua việc sửdụng byte sốc như các thuộc tính (ví dụ như mô hình MalConv) Họ mang đến một
phương pháp tan công thêm vào file thực thi từng byte từng byte bằng cách tínhtoán độ biến động của một hàm khi byte thay đổi Phương pháp của họ có khả năngduy trì được chức năng ban đầu của mã độc và giúp nó có khả năng qua mặt trình
phát hiện.
Tuy nhiên, cách làm nêu trên tốn quá nhiều thời gian tính toán Mô hình MalConvphân biệt mã độc và tập tin lành tính thông qua file header của chúng Đề đột biến
mã độc, họ phải thay đổi byte trong file header Demetrio [18] sử dụng phương
pháp tính toán tương tự như Kolosnjaji nhưng phương pháp chỉ thay đổi file headercủa họ có hiệu suất cao hơn vì chỉ cần thao tác trên một số byte của tập tin thực thi
Trong khóa luận này, chúng tôi sẽ tập trung mô tả hai mô hình học sâu chính là MalConvPlus và AttentionRNN.
2.6 Mô hình học tăng cường
2.6.1 Quy trình quyết định Markov (Markov Decision Process - MDP)
Hầu hết các bài toán trong học tăng cường được xây dựng trên MDP MDP gồmbốn thành phần:
e S: Không gian các trang thái mà tác tử quan sát được khi tương tác với môi
trường.
e A: Một tập các hành động mà tác tử có thể thực hiện với môi trường
e P: Hàm chuyên Hàm này đưa ra xác suất dự đoán một trang thái có thé xảy
ra, đầu vào của nó là trạng thái hiện tại của môi trường và một hành động
e R: Một hàm đưa ra phần thưởng Ham này sẽ xác định phần thưởng khi môi
trường chuyền từ một trạng thái sang trạng thái kế tiếp, dưới tác động của
một hành động.
29