TOM TATTOM TAT Sự phổ biến rộng rãi của các ứng dụng Android đặt ra những lo ngại và tháchthức đáng kể về bảo mật trong việc phát hiện và phân loại mã độc trên nền tang này.Các kỹ thuật
Trang 1_ ĐẠI HỌC QUOC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
PHẠM NHẬT DUY
LUẬN VĂN THẠC SĨ
NGÀNH CÔNG NGHỆ THÔNG TIN
MA SỐ: 8.48.02.01
NGUOI HUGNG DAN KHOA HOC
TS NGUYEN TAN CAM
TP HO CHÍ MINH — NAM 2024
Trang 2LỜI CÁM ƠN
Trong quá trình thực hiện nghiên cứu và hoàn thành dé tài, học viên may man
nhận được sự hỗ trợ từ Thầy Cô, Nha Trường, Gia đình va Bạn bè
Học viên xin gửi lời cảm ơn chân thành tới Thầy TS Nguyễn Tan Cam đãđồng hành, theo dõi, hướng dẫn, quan tâm, lo lắng và góp ý dé có được Luận văn tốtnghiệp tốt nhất Thầy không chỉ là người truyền đạt kiến thức, mà còn là nguồn cảmhứng dé học viên có đủ nhiệt huyết thực hiện Luận văn
Học viên cũng gửi lời cảm ơn tới Thầy TS Nguyễn Gia Tuấn Anh, anh NghiHoàng Khoa, em Đoàn Minh Trung và em Trần Quốc Khánh đã hỗ trợ chia sẻ kinhnghiệm cùng các góp ý quý giá cho học viên dé mang đến kết quả luận văn tốt nhất
Tiếp đến, học viên xin gửi lời cảm ơn chân thành đến Khoa Khoa học và Kỹ
thuật Thông tin, Phòng Đào Tạo Sau Đại Học và Khoa học Công nghệ, Trường Đại
học Công Nghệ Thông Tin đã hỗ trợ và tạo điều kiện, giúp đỡ học viên trong suốt
quá trình học tập và nghiên cứu tại trường.
Cuôi cùng, học viên xin gửi lời cảm ơn đên gia đình và bạn bè, những người luôn luôn động viên và là chô dựa vững chắc cho học viên vượt qua các khó khăn đê hoàn thành Luận văn.
Tp Hồ Chí Minh, thang 08 năm 2024
Học viên
Phạm Nhật Duy
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan: Luận văn tot nghiệp với Dé tài “Phân loại mã độc Android
dựa trên hướng tiép cận đa lớp đặc trưng” là công trình nghiên cứu của tôi, dưới sự
hướng dẫn của TS Nguyễn Tan Cam.
Các trích dẫn, tham khảo trong quá trình nghiên cứu đều được trích dẫn đầy
đủ, ghi rõ nguôn gôc.
Tôi xin chịu hoàn toàn trách nhiệm nếu có bất ky sao chép không hợp lệ, viphạm quy chế đảo tạo
Người thực hiện
Phạm Nhật Duy
Trang 4TÓM TẮT x
0?00/9)/€81/19)/6/9)0 100057 |
1.1 Mô tả bài toán -:-©5c+ck2k2 E2 221211211 211211 1121.11.11 xecree 1 1.2 Mục tiêu nghiÊn CUU oo .ee eee ceccecseceseeeseeseceeesececeesseceaeceseeeeeceseesseeeeaeeseeesaes 3
1.3 Đối tượng và phạm vi nghiên CỨU - 2-2 2 + +E+£E+EE+£Ee£Eerkerxerxerrees 3
1.3.1 Đối tượng nghiên cứu - 5+ ©s£+k+SE£EEtEEEEEEEEEEEEEEerkerkerkerkerkee 3
1.3.2 Pham vi nghiên CỨU G1 189111 930 E911 91 E9 ng rưy 4
1.4 Ý nghĩa của luận văn - ¿+52 ++EEt2EEEEEEEEEEEEEEEEEEEEEErrkrrkrrrkee 4
1.5 Những đóng góp chính của luận vắn ¿55+ ++<S + ++e+seeeseeeeeeers 4
1.6 Cấu trúc luận văn : tt SEE19E5215155111511111511111171111111 5111111 Ex 5
CHƯƠNG 2 CÁC CONG TRINH LIÊN QUAN -:¿-c5¿©5++cxscx+scxe2 7
2.1 Phân loại mã độc Android dựa trên học máy-học sâu - -7
2.2 Phân loại mã độc Android bị làm rối mã nguồàn 2-2: 52: l6CHƯƠNG 3 CƠ SỞ LÝ THUYÉT - 2 5£ £+SE£EE££EE£EEt2EEEEEeEEeEEerkerrerred 23
3.1 Mã code Dalvik và tệp DEX trong Android - - «+ +-««++ss+++se++ss2 23
3.2 Lam rối mã nguồn ứng dung Android + ¿s2 +s+x£x£+xezxezxezxered 24
3.2.1 Làm rối tầm thường - Trivial - + +2 +k+£E+£kerEerkerkerxerkerxee 243.2.2 Đối tên - Rename - + +£+SE+EE£2EE+EEEEEEEEEEEEEEEEEEECEEEErkrrkerrree 25
3.2.3 Mã hóa - EnCTypP(IOH - - Gv HH ng ệt 26
Trang 5MỤC LỤC
3.2.4 MA 9, aA 26 3.2.5 Tai nguyên - Ñ€SOUTC - SG HH HH nếp 27 3.3 Truc quan ha ma on 28
3.4 Mạng nơ-ron tích chập - . «<< +13 ng 29
CHƯƠNG 4 HE THONG DE XUẤTT 2¿ 2 ++2E22EE2EEC2EEEEEEEEerkerkerrrrred 31
4.1 Tổng quan hệ thong o.ccececceececccscesscssessessessessessessessessessessessessessesseesesseeseeseeseens 31
4.2 Trực quan hóa ứng dung AndrOId 5 «+ sEeekeskereerske 31
5.1.3 Bộ dữ liệu ứng dụng Android bị làm rối mã nguồn - 485.1.4 Đánh giá bộ dữ liệu dé xuất - ¿+ x+Ee£EtzEerEerkerkerkerkerree 505.2 Câu hình thực nghiệm ¿- ¿- ¿ £+E£+E£+E££E£EE£EEEEEEEEEEEEEEEEEErErrkrrrred 51
5.3 Độ đo đánh giá -2-©2++Sk E2 EEEE221127121121171121111211 1111.111 re 52
Trang 6MỤC LỤC
5.3.6 Tỷ lệ đương tính giả 2c 2+++2E+2EEEEEEE2EEE21E71271.271 E1 erkee 55
5.3.7 Trung bình Vi mÔ - +5 1+3 S13 1 911911111111 kg ng rưệp 55
5.3.8 Trung bình có trong SỐ -¿©-++©+++2+++EE++EE+tEE+trkrerkesrkrsrkree 555.4 Kết quả và phân tích 2 ©++©+++E+++EE++EE++EE+SEEESEESEkerkrerkrrrkree 56
5.4.1 Kịch bản thử nghiỆm Ì - Ă 2c 13v E9 re rikp 57 5.4.2 Kịch bản thử nghiém 2 - - c +3 1191119 13111111 rrrerrke 68 5.4.3 Kịch bản thử nghiệm - - 6 6 k9 9 9 1 vn ng rkp 75
5.4.4 Kịch bản thử nghiệm 4 - 2-2 ©2+£©+++2+E+EEEtEEEEEEEEEEEerkrerkrerkree 79
5.4.5 So sánh kết quả -:- 2c + Sk‡Ek‡EEeEEEEEEEEEEEEEEE1171 1111111111 1xx 855.4.6 _ Xây dựng hệ thống dé xuất - -2- 2+ ++cx++cx+erxeerxesrxeees 875.4.7 Phân tích về thời gia ccccccccccccsecsecsessessessesseesessessessessessesseesesseesesseeses 91
CHƯƠNG 6 KET LUẬN VÀ HƯỚNG PHAT TRIEN 2-¿5¿+ 98
6.1 Kết luận Oe đHPaae s1 0ÉB Í 98
6.2 Hướng phát triển ¿¿ 2+-©2++22++EEESEEESEEEEEEEEEEEEEkErkerkrerkree 99TÀI LIEU THAM KHAO u ccsscsssessesssessessssssessssssessecsssssessessseesessusssessessuseseeseeesess 100PHU LUC 1 DANH MỤC CÁC CONG BO KHOA HỌC - 108
PHU LUC 2 HE THONG UNG DỤNG 2: 2¿©+22+£2£++2E+etzxcrxxrrreee 108
PHU LUC 3 DANH MỤC CAC HO SƠ LIEN QUAN 2 2-s+cs+s+ 109
lil
Trang 7DANH MỤC CÁC KÝ HIEU VA CHU VIET TAT
DANH MUC CAC KY HIEU VA CHU VIET TAT
STT Thuật ngữ Tên đầy đủ Dịch nghĩa
1 API Application Giao diện lập trình ứng dụng
7 RGB Red — Green — Blue Hệ màu đỏ, xanh lá cây (lục),
xanh nước biển (lam)
iv
Trang 8DANH MỤC CÁC BANG
DANH MỤC CAC BANG
Bảng 2 1 Tổng quan về các nghiên cứu phân loại mã độc Android I1Bảng 2 2 Tổng quan về các nghiên cứu phân loại mã độc Android bị làm rối mãTIBUỒN - 2-5: 5c SE SEEEEEEEEEEEEEEEEEE1E71117111111171111111 111111 1111111111 Eere 19
Bang 5 1 Số lượng ứng dụng của từng loại trong bộ dit liệu CICMalDroid2020 .45
Bảng 5 2 Số lượng mẫu huấn luyện, xác thực và kiểm thử của từng loại trong bộ dữ
iG 0 (0)1/118/4012020201Ẻ TT 47
Bảng 5 3 Số lượng ứng dung cua từng loại trong bộ dữ liệu AndroZoo 48Bảng 5 4 Số lượng mẫu huấn luyện, xác thực và kiểm thử của từng loại trong bộ dữ
liệu AndrOZOO - - Ăc E11 0111122111111 031111110111 48
Bảng 5 5 Số lượng ứng dụng của từng loại được làm rối mã trong bộ dữ liệu
CICMalDroid2020 - s6 c2 23125125191 121 191191 1 vn HH ng Thư Hư Hư Hưng 49
Bang 5 6 Số lượng ứng dụng của từng loại được làm rỗi mã trong bộ dữ liệu
ATOZZOO G1911 HT 49
Bảng 5 7 Các thơng số cau hình của hệ thống thực nghiệm 51Bang 5 8 Cau hình của thiết bị làm rồi mã nguồn ứng dung Android 52Bảng 5 9 Giá trị của các siêu tham số trong các mơ hình CNN tỉnh chỉnh 52Bảng 5 10 Hiệu suất phân loại 5 nhãn ứng dụng chưa bi làm rỗi (CICMalDroid2020)
"” › ếc ồ.ồ 57
Bảng 5 11 Kết quả chỉ tiết cho mỗi nhãn trong việc phân loại 5 nhãn ứng dụng chưa
bi 1am r6i (CICMalDroid2020) 02777 -:ỮƯ:1 59Bảng 5 12 So sánh hiệu suất của các kỹ thuật hình anh khác nhau trong phân loại 5
Trang 9Bảng 5 20 Hiệu suất phân loại 10 nhãn ứng dụng (CICMalDroid2020) 69
Bảng 5 21 Kết quả chi tiết cho mỗi nhãn trong việc phân loại 10 nhãn ứng dụng
(®(®1/118/40102/20 08.87 70
Bang 5 22 Hiệu suất phân loại 4 nhãn ứng dụng (CICMalDroid2020) 71Bang 5 23 Kết quả chi tiết cho mỗi nhãn trong việc phân loại 4 nhãn ứng dụng
(CICMaIDroid2/Ö220) óc 2s 2c 2x 21151155111 11 01 11 vn nh Thọ nh nh TH Hư Hà Hư Hàng 72
Bảng 5 24 Hiệu suất phân loại 4 nhãn ứng dụng (AndroZZOo) -.-‹ ‹ s+ 73
Bang 5 25 Kết quả chi tiết cho mỗi nhãn trong việc phân loại 4 nhãn ứng dụng
Bảng 5 29 Hiệu suất phân loại 2 nhãn ứng dụng đã bị làm rỗi (AndroZoo) 78
Bảng 5 30 Phân bồ số lượng của từng loại trong phân loại 5 nhãn ứng dụng khi gomchung các mẫu bị và không bị làm rỗi mã (CICMalDroid2020) -s-: 79Bảng 5 31 Phân bố số lượng của từng loại trong phân loại 2 nhãn ứng dụng khi gomchung các mẫu bị và không bị làm rỗi mã (CICMalDroid2020) -s- + 80Bảng 5 32 So sánh hiệu suất trên các kịch bản thử nghiệm khác nhau trong phân loại
5 nhãn ứng dụng (CICMalDroid2020) < + 1+3 E + EkSeksrererereeeree 80
Bảng 5 33 Kết quả chỉ tiết cho mỗi nhãn trong phân loại 5 nhãn ứng dụng khi gomchung các mẫu bị và không bị làm rỗi (CICMalDroid2020) ‹ -<5 81
VI
Trang 102 nhãn ứng dụng (An(rOZZOO) - - c - c 11119 SH HH ng 84
Bảng 5 37 So sánh hiệu suất của các nghiên cứu khi đối mặt các ứng dụng bị làm
"0 86
Bang 5 38 Phân bố số lượng của từng loại trong phân loại 12 nhãn ứng dung .87
Bảng 5 39 Hiệu suất phân loại 12 nhãn ứng dụng . . ¿ ¿ 5z©sz+5+2 88Bang 5 40 Kết quả chi tiết cho mỗi nhãn trong việc phân loại 12 nhãn ứng dụng 89Bảng 5 41 Hiệu suất phân loại 2 nhãn ứng dụng sau cùng -s- 90Bảng 5 42 So sánh về thời gian xử lý và hiệu suất của các kỹ thuật khác nhau trên
bộ dit liệu CICMalDroid2020 - - - 5E 121139112111 1 931 1911911 vn ng ng gưkt 91
Bảng 5 43 Thời gian xử ly các ứng dung bị làm rối mã nguồn của các kỹ thuật khác
nhau trên bộ dữ liệu CICMalDroid2020 . - 22+ *****‡‡++++++zzesesxsx 93
Bảng 5 44 So sánh về thời gian xử lý và hiệu suất của các kỹ thuật khác nhau trên
09908019102 9;150x//921117 7 ẻe< 95
Bảng 5 45 Thời gian xử lý các ứng dụng bị làm rối mã nguồn của các kỹ thuật khác
nhau trên bộ dữ liệu AndrOZZOO - - - -c c1 331111111111 1111951115811 1 118111182 xk 96
Vil
Trang 11DANH MỤC CÁC HINH VE, DO THỊ
DANH MỤC CÁC HÌNH VE, DO THỊ
Hình 3 1 Cấu trúc tệp DEX trong ứng dụng Android -zs¿ sz2ss2 s2 24Hình 3 2 Một ví dụ đơn giản về trực quan hóa ứng dụng thành dạng hình ảnh 29Hình 4 1 Kiến trúc của hệ thống để xuất - ¿2+ +2 +E+£Ee+Ee£Ee£Eerkerkerxerxee 31
Hình 4 2 Mã giả cơ bản của thuật toán chuyên đổi tệp APK sang hình ảnh Markov
Hình 4 3 Hình ảnh Markov của các loại ứng dụng trong bộ dữ liệu
CICMalDroid2020 và AndroZoo (CICMalDroid là viết tắt của CICMalDroid2020).
Hình 4 4 Ví dụ về mau sắc chỉ tiết của một hình anh Markov . - -: 36Hình 4 5 Mã giả cơ bản của thuật toán chuyền đổi tệp APK sang hình ảnh đồ thị
CICMalDroid2020 và AndroZoo (CICMalDroid là viết tắt của CICMalDroid2020).
Hình 4 9 Một số hình ảnh hợp nhất các đặc trưng của các loại ứng dụng trong bộ dữliệu CICMalDroid2020 và AndroZoo (CICMalDroid là viết tắt của
®[®\/P1I19x01502092072227277— -%.4L.LLLLÔÔỒÔỒÔỎ 43
Hình 5 1 Phân bố các loại mã độc di động quý 2 và quý 3 năm 2023 theo Kaspersky
Hình 5 3 Ma trận nhằm lẫn trong việc phân loại 5 nhãn ứng dụng chưa bị làm rối
(0i (01/118)1012020200 B55 58
VII
Trang 12DANH MỤC CÁC HINH VE, DO THỊ
Hình 5 4 Hiệu suất phân loại 2 nhãn ứng dụng chưa bị làm rỗi (CICMalDroid2020)
Hình 5 13 Ma trận nhầm lẫn trong việc phân loại 2 nhãn ứng dụng đã bi làm rỗi
(CAN Ge | 0) A0le) 7 .ẻ ố ố ốố A 78
Hình 5 14 Ma trận nhằm lẫn trong việc phân loại 5 nhãn ứng dụng khi gom chungcác mẫu bị và không bị làm rỗi (CICMalDroid2020) - - ¿5s+s+cs+x+EeE+Eerzesss S1
Hình 5 15 Ma trận nhằm lẫn trong việc phân loại 2 nhãn ứng dụng khi gom chung các mẫu bị và không bị làm rối (CICMalDroid2020) ¿ 2¿ ¿s2 sz+z++c++ 83
Hình 5 16 Ma trận nhằm lẫn trong việc phân loại 2 nhãn ứng dụng khi gom chungcác mẫu bị và không bị làm rối (ANTO/ZOO) - 525cc St St SEE2ESEEEESEEEEEEEEEEESErrkrkrrr 84Hình 5 17 Ma trận nhằm lẫn trong việc phân loại 12 nhãn ứng dụng 88Hình 5 18 Ma trận nhằm lẫn trong việc phân loại 2 nhãn ứng dụng sau cùng .90
Hình 5 19 Thời gian xử lý trung bình theo kỹ thuật và loại ứng dụng trong bộ dữ lid 0 0))/P118/40120202000ẺTT8e 94
Hình 5 20 Thời gian xử lý trung bình theo kỹ thuật và loại ứng dụng trong bộ dữ liệu AndrOZOO - c1 1111211111111 1111111030 101111100111 1n 1 TH 11 TH 1kg 9à 97
ix
Trang 13TOM TAT
TOM TAT
Sự phổ biến rộng rãi của các ứng dụng Android đặt ra những lo ngại và tháchthức đáng kể về bảo mật trong việc phát hiện và phân loại mã độc trên nền tang này.Các kỹ thuật phân tích truyền thống trước đây không thể đối phó với sự thay đổi ngàycàng tinh vi của mã độc, đặc biệt là trước các kỹ thuật làm rỗi mã nguồn nâng cao,
do đó đòi hỏi cần phải có các phương pháp mạnh mẽ hơn Mục tiêu của nghiên cứunày là xây dựng một hệ thống phân loại mã độc Android có khả năng phát hiện được
các ứng dụng đã bị làm rỗi mã nguồn Tan dụng các kỹ thuật phân loại hình ảnh, luận
văn này đề xuất một phương pháp chuyền đổi mã nguồn của ứng dụng Android thànhcác hình ảnh đặc trưng khác nhau, bao gồm hình ảnh Markov, hình ảnh đồ thị Entropy
và hình ảnh ma trận mức xám Ba loại hình ảnh đặc trưng này được hợp nhất lại thànhmột hình ảnh màu duy nhất và làm đầu vào cho các mô hình mạng nơ-ron tích chậpđược tinh chỉnh Kết quả cho thấy phương pháp dé xuất mang lại hiệu suất vượt trộihơn so với các phương pháp hiện có Kết quả cũng chỉ ra tầm quan trọng của việcxem xét nhiều loại đặc trưng hình ảnh khác nhau đề có được cái nhìn toàn diện hơn
về hành vi của ứng dụng Android, mặc dù vẫn có sự đánh đổi về chi phí tính toán
Ngoài ra, việc sử dụng một bộ đữ liệu đa đạng các ứng dụng (bị và không bị làm rối
mã) sẽ giúp cải thiện tốt hơn khả năng chống lại trước các kỹ thuật làm rối mã nguồn
Trang 14TONG QUAN
CHUONG 1 TONG QUAN
Chương này giới thiệu tổng quan về bài toán phân loại mã độc trên Android,ảnh hưởng của các kỹ thuật làm roi mã đến việc phân loại, van dé của các phươngpháp và bộ di liệu hiện nay, các mục tiêu, đối tượng, phạm vi nghiên cứu cũng nhưcác đóng góp chính của dé tài
1.1 Mô tả bài toán
Ngày nay, thiết bị di động đã mang đến sự tiện lợi và kết nối tuyệt vời cho
người dùng từ liên lạc, công việc đến giải trí Với hơn 3 tỷ! người dùng trên toàn thế
giới, Android là hệ điều hành di động phổ biến nhất hiện nay Theo thống kê củaStatCounter’, tính đến tháng 06 năm 2024, Android chiếm đến 72,15% thi phần bán
ra trên tổng số các hệ điều hành di động Sự phô biến này đã thu hút không ít sự quan
tâm từ các nhà phát trién ứng dụng, đồng thời cũng là mục tiêu của các cuộc tan công
từ các phần mềm độc hại (mã độc) Với thiết kế mở và số lượng ứng dụng lớn, hơn
2,43” triệu ứng dụng trên cửa hang Google Play, các nguy cơ bao mật trên Android
thường rat đa dạng và khó phát hiện Trong quý 3 năm 2023, báo cáo của Kaspersky*
chỉ ra rằng có tới 8,346, 169 cuộc tan công trên thiết bi di động đã bị chặn và 438,962gói mã độc mới đã được phát hiện Mã độc trên Android không chỉ gây tốn hại đến
dữ liệu và quyền riêng tư của người dùng mà còn có thé khai thác các 16 hồng dé thực
hiện các hành vi gian lận, ăn cắp thông tin và gây thiệt hại về tài chính Do đó, việc
phát hiện và phân loại mã độc trên Android trở thành một nhiệm vụ cấp thiết và làmột thách thức lớn đối với các nhà nghiên cứu bảo mật
Bài toán phân loại mã độc trên Android nhằm mục đích xác định và phân loại
các ứng dụng Android thành hai nhóm chính: ứng dụng lành tính (an toàn - benign)
và ứng dụng độc hại (mã độc - malware) Việc phân loại này giúp ngăn chặn sự lây
lan của các mã độc và bảo vệ người dùng khỏi những mối đe dọa tiềm ân Tuy nhiên,
công việc này không hê đơn giản do mã độc ngày càng trở nên tinh vi với nhiêu kỹ
Trang 15và dữ liệu ứng dụng trở nên khó đọc hoặc khó hiểu hơn Tuy nhiên, kỹ thuật này đã
bị lạm dụng bởi những kẻ tấn công, nơi họ thực hiện việc làm rối mã nguồn ứng dụng
dé che giấu mã độc và tránh bị phát hiện bởi các hệ thống bảo mật Có thể kê đến nhưtrong [1], các tác giả đã phân tích 76 họ mã độc khác nhau và phát hiện ra rằng gần80% ứng dụng sử dụng it nhất một kỹ thuật làm rối mã Hoặc một nghiên cứu khác
trong [2] đã phân tích 1,7 triệu ứng dụng Android miễn phí từ Google Play và cho
thấy có đến 24,92% trong số đó được các nhà phát triển làm rối mã
Sự phổ biến của các kỹ thuật làm rồi này đã đặt ra nghi vấn về độ tin cậy của
hầu hết các hệ thống phát hiện mã độc Android, đặc biệt là các hệ thống tĩnh [3] Phầnlớn các hệ thống này dựa vào việc so khớp chữ ký và do đó khiến chúng không đủkhả năng chống lại trước các cuộc tấn công làm rỗi mã Điều này đã tạo ra một tháchthức mới trong việc bảo vệ người ding Android, khiến việc phát hiện làm rối mã trởnên vô cùng quan trọng đề hiểu rõ ngữ nghĩa co bản của các mẫu mã độc
Một khó khăn khác của bài toán này là việc thiếu các bộ dữ liệu ứng dụngAndroid bị làm rối chất lượng Hiện nay, các bộ dữ liệu về ứng dụng Android đượclàm rối mã chủ yếu bao gồm một số kỹ thuật làm rối phổ biến như đổi tên mã địnhdanh, chèn mã rác, sắp xếp lại mã, sửa đổi luồng điều khiển và mã hóa Mặc dù cácphương pháp hiện tại có thé phát hiện các kỹ thuật làm rối đơn giản, nhưng chúngvẫn bộc lộ rõ điểm yếu trước các kỹ thuật phức tạp như sử dụng mã gốc hay mã hóa
[4] [5] [6] Bên cạnh đó, các bộ dữ liệu này chủ yếu năm trong khoảng thời gian từ
năm 2010 đến 2020 (chi tiết trong mục 2.2), điều này sẽ không đảm bảo bao gồm
được những ứng dụng chạy trên các phiên bản mới của Android.
Dé giải quyết các thách thức trên, luận văn này đề xuất một bộ dữ liệu các ứngdụng Android được làm rối mã nguồn bằng cách kết hợp các kỹ thuật phức tạp vàmột hướng tiếp cận dựa trên đa lớp đặc trưng dé phân loại mã độc Android Phương
pháp này sẽ bao gồm việc trích xuất và sử dụng các đặc trưng hình ảnh khác nhau từ
Trang 16TONG QUAN
ma nguồn của ứng dụng Android (cả thông thường và đã được làm rỗi) Sau đó, các
mô hình học sâu cụ thể là mang nơ-ron tích chap (Convolutional Neural Network —
CNN) sẽ được sử dung dé xác định loại mã độc Nhờ khả năng tự nắm bắt được các
đặc trưng phân cấp trực tiếp từ dữ liệu điểm ảnh thô, CNN giúp loại bỏ nhu cầu phải
xử lý các đặc trưng thủ công Ngoài ra, sự kết hợp của các đặc trưng hình ảnh khác
nhau còn giúp cung cấp cái nhìn toàn diện hơn về hành vi của ứng dụng, từ đó tăng
khả năng phát hiện và phân loại mã độc, đồng thời giảm thiểu tác động của các kỹthuật làm rối mã nguồn
1.2 Mục tiêu nghiên cứu
Các mục tiêu chính của luận văn này gồm có:
e Thứ nhất, nghiên cứu các loại đặc trưng từ tệp tin mã nguồn của ứng
dụng Android (tệp APK — Android Package Kit), trong đó tập trung vào
các đặc trưng có thé trực quan hóa thành dạng hình ảnh
e Thi hai, xây dựng một bộ dữ liệu các ứng dụng Android được làm rối
mã nguôn với các kỹ thuật làm rối phức tạp
e Thứ ba, phát triển một hệ thống phân loại mã độc Android có khả năng
phát hiện được các mã độc đã bị làm rối mã nguồn
e Thi tư, thực nghiệm và đánh giá khả năng phân loại, khả năng chống
lại các mã độc được làm rối mã nguồn trên các bộ dữ liệu khác nhau.1.3 Đối tượng và phạm vi nghiên cứu
1.3.1 Đối tượng nghiên cứu
Các đối tượng trong nghiên cứu của học viên gồm:
e Các ứng dụng Android, bao gồm cả lành tính và độc hai
e_ Các kỹ thuật làm rối mã nguồn ứng dụng Android
e Các phương pháp, mô hình và kỹ thuật liên quan đến phân loại ảnh dé
phục vụ cho bài toán Phân loại mã độc Android thông thường và Phân loại mã độc Android bị làm rôi mã nguôn.
Trang 17TONG QUAN
1.3.2 Pham vi nghiên cứu
Pham vi nghiên cứu của luận văn được giới hạn như sau:
Các loại đặc trưng có thể được trực quan hóa thành hình ảnh của ứng
dụng Android.
Các công cụ làm rối mã nguồn ứng dụng Android mã nguồn mở
Các mô hình học sâu được huấn luyện trước và kỹ thuật tinh chỉnh
1.4 Ý nghĩa của luận văn
Về mặt khoa học:
Bằng việc phát trién một phương pháp phân loại mã độc dựa trên hướng
tiếp cận đa lớp đặc trưng, nghiên cứu này cung cấp một hướng tiếp cậnmới và hiệu quả hơn trong việc nhận diện các mối de doa bảo mật trênnền tảng Android
Ngoài ra, luận văn cũng giúp mở rộng hiéu biết về các kỹ thuật làm rối
mã và cách thức chúng có thê được phát hiện thông qua các phươngpháp học sâu Điều này góp phần phát triển các mô hình và thuật toánmạnh mẽ hon dé đối phó với các kỹ thuật làm rối mã ngày càng tinh vi
Về mặt thực tiễn:
Việc phát hiện và phân loại mã độc hiệu quả giúp bảo vệ người dùng
Android khỏi các mối đe dọa bảo mật, giảm thiểu rủi ro mất mát dữ
liệu, thông tin cá nhân và thiệt hại về tài chính Hệ thống đề xuất có thể
được triển khai trong các phần mềm bao mật và các ứng dụng di động
trên Android dé nâng cao khả năng bảo vệ người dùng
Bên cạnh đó, nghiên cứu này có thể cung cấp các công cụ và phươngpháp giúp các nhà phát triển ứng dụng kiểm tra và đảm bảo rằng ứng
dụng của họ không bị nhiễm mã độc hoặc không chứa các thành phần
độc hại Điều này góp phần tạo ra một môi trường ứng dụng an toàn và
tin cậy hơn cho người dùng.
1.5 Những đóng góp chính của luận văn
Các đóng góp chính của luận văn này bao gồm:
4
Trang 18TONG QUAN
- Một, học viên đã nghiên cứu va tiến hành xây dựng một hệ thống phân loại
mã độc Android dựa trên các đặc trưng hình ảnh Trong đó, học viên so sánh hiệu quả
của hệ thống đề xuất thông qua các thực nghiệm trên hai bộ dữ liệu mã độc thực tế,
một bộ dữ liệu xây dựng và trên các mô hình học sâu được huấn luyện trước Hệthống đã được triển khai thành công trên nền tang website, với khả năng phân loại
mã độc Android cả thông thường và đã bị làm rối mã nguồn.
- Hai, học viên đã xây dựng một bộ dữ liệu các ứng dụng Android được làm
rỗi mã nguồn có độ phức tạp cao Trong bộ dữ liệu này, các ứng dụng được làm rối
mã sẽ được đánh giá trên nhiều tiêu chí khác nhau như tính chính xác, tính đa dạng,kích thước, tính mô tả và định dạng, khả năng mở rộng Ngoài ra, nhằm tăng độ phứctạp của mã độc và thách thức các trình phân loại, tất cả các ứng dụng trong bộ dữ liệuđều được áp dụng kết hợp toàn bộ các kỹ thuật làm rối mã nguồn từ đơn giản đến
phúc tạp hiện có.
- Cuối cùng, học viên tiễn hành thực nghiệm và đánh giá khả năng chống lạicác mã độc được làm rối mã nguồn của hệ thống phân loại Từ đó chỉ ra các vấn đềcòn tồn đọng của các hệ thống hiện nay và cách giải quyết
- Luận văn đã nghiên cứu và công bố một bài báo khoa học được đăng tại hội
nghị scopus quốc tế AIC2024 (Xem phụ lục 1)
1.6 Cau trúc luận văn
Luận văn được chia làm 6 chương với các nội dung sau:
e Chương 1: TONG QUAN Chương này giới thiệu tổng quan về bài toán
phân loại mã độc trên Android, ảnh hưởng của các kỹ thuật làm rỗi mãđến việc phân loại, vẫn đề của các phương pháp và bộ dữ liệu hiện nay,các mục tiêu, đối tượng, phạm vi nghiên cứu cũng như các đóng gópchính của đề tài
e Chương 2: CÁC CÔNG TRÌNH LIEN QUAN Trong chương nay, học
viên tìm hiểu hai lĩnh vực chính của phân loại mã độc Android là dựa
trên học máy-học sâu và bị làm rối mã nguồn Các công trình nghiên
cứu được khảo sát một cách chỉ tiết cùng với các bình luận đánh giáliên quan dé có được cái nhìn tổng quát về xu hướng của nhiệm vụ này
5
Trang 19TONG QUAN
Chương 3: CƠ SỞ LÝ THUYET Chương này sé trình bay các kiến
thức nên tang liên quan đến mã nguồn của ứng dụng Android, các kỹthuật làm rối mã từ đơn giản đến phức tạp, ý tưởng của việc trực quan
hóa ứng dụng và mạng nơ-ron tích chập trong học sâu.
Chương 4: HỆ THÓNG ĐỀ XUẤT Chương này sẽ trình bày phươngpháp đề xuất của học viên dé phân loại mã độc Android, trong đó baogồm tong quan về hệ thống, trực quan hóa các đặc trưng của ứng dung,
lý do lựa chọn các đặc trưng này và mô hình phân loại được sử dụng.
Chương 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ Chương này trình bàycác thiết lập cần thiết cho việc thực nghiệm hệ thống đề xuất, bao gồmchỉ tiết về các bộ dữ liệu, cấu hình cài đặt và các độ đo đánh giá Tiếpđến, học viên xem xét độ tin cậy của hệ thống bằng cách so sánh với
các nghiên cứu liên quan Ngoài ra, các kịch bản thử nghiệm khác nhau
cũng được tiến hành dé đưa ra những phân tích và đánh giá chỉ tiết
Chương 6: KET LUẬN VA HƯỚNG PHÁT TRIEN Chương này sẽtóm tắt lại những kết quả đạt được sau quá trình xây dựng và thực
nghiệm hệ thống đề xuất, những ưu điểm và hạn chế còn tồn đọng cũngnhư các hướng phát triển tiếp theo của bài toán
Trang 20CÁC CÔNG TRÌNH LIÊN QUAN
CHƯƠNG2 CÁC CÔNG TRÌNH LIÊN QUAN
Các phương pháp phân loại mã độc Android hiện nay đã đạt được những tiễn
bộ đáng kế nhờ vào sự phát triển của các mô hình học máy và học sâu Tuy nhiênviệc phân loại mã độc bị làm rối mã nguôn vẫn còn nhiều thách thức Trong chương
này, học viên tìm hiểu hai lĩnh vực chính của phân loại mã độc Android là dựa trên
học máy-học sâu và bị làm rồi mã nguồn Các công trình nghiên cứu được học viênkhảo sát một cách chỉ tiết cùng với các bình luận đánh giá liên quan để có được cáinhìn tổng quát về xu hướng của nhiệm vụ này
2.1 Phan loại mã độc Android dựa trên học máy-học sâu
Phân loại mã độc Android dựa trên học máy-học sâu là việc sử dụng các thuật
toán máy học hoặc mạng nơ-ron nhiều lớp dé xác định các mã độc bằng cách phân
tích các đặc trưng khác nhau từ ứng dụng Android Có thê kể đến như đặc trưng về
lệnh gọi API (Application Programming Interface — Giao diện lập trình ứng dụng),
các quyền (permissions) được yêu cầu, lưu lượng mạng hay mã nhị phân Ưu điểmcủa việc này là khả năng phát hiện các biến thê mã độc mới, chưa từng thấy trước đâybang cách nhận dạng các mẫu phô biến với hành vi độc hại Da có nhiều nghiên cứu
tận dụng học máy-học sâu dé phân loại mã độc Android va đạt được kết quả khả quan.
Dưới đây học viên trình bày các nghiên cứu nỗi bật trong số đó
Mercaldo và cộng sự [7] đã giới thiệu một phương pháp chuyền đổi chuỗi byte
trong mã nguồn thành hình ảnh mức xám và sử dụng biểu đồ mức xám dé trích xuấtcác đặc trưng Những đặc trưng này sau đó được sử dụng làm đầu vào cho mạng nơ-ron sâu ba lớp Lớp đầu tiên là để xác định xem mẫu được phân tích có phải là mãđộc hay không Nếu được xác định là mã độc, mạng sẽ tiễn hành phân loại họ cụ thểcủa nó ở lớp thứ hai và biến thể mà nó thuộc về ở lớp thứ ba
Vasan và cộng sự [8] xử lý một tệp nhi phân của mã độc nhất định bằng cáchbiểu dién nó dưới dạng một mảng gồm các số nguyên không dấu 8-bit Tiếp theo, họsắp xếp vectơ này thành một mảng hai chiều và sử dụng bản đồ màu để trực quan mãnhị phân của mã độc Việc phát hiện các họ mã độc được thực hiện bằng kiến trúc
mạng CNN được tinh chỉnh.
Trang 21CÁC CÔNG TRÌNH LIÊN QUAN
Unver và Bakour [9], [10], [11] đã đề xuất các phương pháp phân loại mã độctrên Android thông qua các đặc trưng hình ảnh kết hợp với học máy và học sâu Trong
[9], ba đặc trưng toàn cục và bốn đặc trưng cục bộ khác nhau đã được trích xuất từ
hình ảnh mức xám của ứng dụng Android Tiếp đến, họ sử dụng một nhóm thuật toán
từ ngữ trực quan dé xây dựng vecto đặc trưng Trong [10], một trình phân loại bỏ
phiếu tổng hợp kết hợp nhiều trình phân loại học máy khác nhau, được huấn luyện
bằng cả đặc trưng cục bộ và toàn cục đã được đề xuất Hai mô hình học sâu nổi tiếng
là ResNet và InceptionV3 cũng được thử nghiệm dé so sánh kết quả Trong [11], cáctác giả tạo ra bốn tập dữ liệu về hình ảnh mức xám bằng cách chuyền đổi các tệpnguồn của ứng dụng Android (Manifest, DEX hay Dalvik Executable, Manifest-
Resources.arsc và Manifest-DEX-Resources.arsc) và dùng một mô hình học sâu lai
Tương tự, Yadav và cộng sự [13] đã chuyên đôi bytecode được trích xuất từ
tệp DEX thành hình anh mức xám với kích thước 256x256 Dé tạo ảnh màu, mỗi byte
trong ảnh mức xám được ánh xạ tới một kênh màu đỏlụclam (RedGreenBlue
-RGB) cụ thé dựa trên vị trí của nó trong tệp DEX (phần tiêu đề là màu đỏ, các địnhdanh và định nghĩa lớp là màu xanh lá cây và phan dữ liệu là màu xanh nước biển).Hình ảnh màu này sau đó được sử dụng làm đầu vào cho các mô hình học sâu được
huấn luyện trước.
Yen và cộng sự [14] áp dụng kỹ thuật xử lý ngôn ngữ tự nhiên (Natural
Language Processing — NLP) dé đọc các từ trong tệp java được dịch ngược từ tệpAPK và tính toán giá trị tầm quan trọng của từ bằng kỹ thuật TF-IDF (TermFrequency-Inverse Document Frequency — Tần suất thuật ngữ-Tần suất văn bảnnghịch đảo) Dé tạo hình anh, các giá trị này được sắp xếp và nhóm lại bang hai thuattoán là Simhash và Djb2 Cuối cùng, ho dùng một mô hình học sâu tên là Caffe dé
phân loại các hình ảnh đã tạo.
Trang 22CÁC CÔNG TRÌNH LIÊN QUAN
Almomani và cộng sự [15] chuyển đôi từng bytecode từ tệp DEX sang từng
điểm ảnh dé tạo ảnh mức xám và ảnh màu Họ đã sử dụng 16 mô hình CNNs tinhchỉnh đề phân loại mã độc Kết quả chỉ ra ảnh màu hoạt động tốt hơn ảnh mức xám
Yang và Xiao [16] đã tạo một hình anh từ chuỗi bytecode bằng cách chuyểnđôi ba số thập lục phân hai chữ số liên tiếp thành giá trị kênh mau RGB
Lachtar và cộng sự [17] chuyền đôi một cách có hệ thống các lệnh gốc từ ứngdụng Android thành hình ảnh bằng cách sử dụng các đường cong lắp đầy không gian
Hilbert và trực quan hóa entropy.
Ding và cộng sự [18] chuyên đổi các Dalvik bytecode thành hình ảnh mứcxám có kích thước 512x512 Họ sử dụng mô hình CNN với ban đồ đặc trưng bậc cao
dé phan loai ma déc
DexRay [19], một hệ thống chuyền đổi các bytecode từ tệp DEX thành hình
ảnh vecto mức xám đã được Daoudi và cộng sự dé xuất N ghiên cứu chi ra tac động
của việc thay đôi kích thước hình ảnh đến hiệu suất phát hiện mã độc
Singh và cộng sự [20] đề xuất một kỹ thuật kết hợp các đặc trưng thủ công vàđặc trưng CNN từ hình ảnh mức xám của ứng dụng Android Kết quả chỉ ra việc sử
dụng các hình ảnh mã độc cho hiệu suất tốt hơn so với đặc trưng thủ công
Rahali và cộng sự [21] giới thiệu một hệ thống có tên DIDroid giúp trích xuấttệp AndroidManifest.xml thành nhiều loại đặc trưng khác nhau Các tập hợp con của
các đặc trưng sau đó được hình thành từ sự kết hợp của các đặc trưng này Tiếp theo,
họ sử dụng một bộ phân loại tổng hợp dé xác định các đặc trưng quan trọng nhất.Cuối cùng, các vecto đặc trưng được chuyên đồi thành các ảnh mức xám tương ứng
và làm đầu vào cho các mô hình phân loại ảnh
Darwaish và cộng sự [22] đề xuất phương pháp ánh xạ các đặc trưng từ mãnguồn Android sang hình ảnh màu dé phân loại mã độc Đầu tiên, họ trích xuất hai
tệp là AndroidManifest.xml và classes.dex từ tap tin APK Các đặc trưng được trích
xuất từ tệp AndroidManifest.xml được ánh xạ tới kênh màu xanh lá cây Kênh mau
đỏ là các đặc trưng từ tệp classes.dex Kênh màu xanh nước biển là các đặc trưngđược trích xuất từ cả tệp AndroidManifest và tệp DEX Một phép nội suy đa biến đơngiản sau đó được dùng để tạo ra hình ảnh màu 64x64x3 từ ba kênh màu này
Trang 23CÁC CÔNG TRÌNH LIÊN QUAN
Geremias và cộng sự [23] đã giới thiệu một phương pháp phân loại dựa trên
hình ảnh nhiều chế độ xem (multi-view) Họ chuyền đôi ba loại đặc trưng khác nhau
bao gồm các lệnh gọi API, DEX và OpCode từ các tệp APK thành ba loại hình ảnh
tương ứng Sau đó, ba loại hình ảnh này được ghép lại với nhau dé tạo thành một hìnhảnh màu duy nhất
Ibrahim và cộng sự [24] trích xuất một tập hợp toàn diện các đặc trưng từ ứng
dụng Android, bao gồm cả các đặc trưng mới như kích thước tệp, hàm băm mờ và xử
lý chúng thông qua một mô hình học sâu.
BoAu trong [25] tập trung vào thách thức nhãn nhiễu của bộ dữ liệu, trong đó
các tác giả xử lý tất cả các mẫu như nhau trong quá trình huấn luyện, bao gồm cả cácmau cứng dé tạo ra các ranh giới quyết định chính xác trong việc phân loại mã độc
Aboshady và cộng sự [26] sử dụng kỹ thuật đảo ngược và mô hình lập trình tự
động dé cải thiện kha năng phát hiện mã độc Android sớm trước giai đoạn mã hóa và
cài đặt ứng dụng.
Surendran và cộng sự [27] sử dụng thông tin từ chuỗi con của các lời gọi hệ
thống (syscall) dé làm đặc trưng phân loại Phương pháp này cho thời gian phát hiện
mã độc nhanh hơn so với các phương pháp hiện có.
Nasser và cộng sự [28] đã trình bày một kiến trúc học sâu hai thành phan tên
là DL-AMDet bang cách phân tích cả các đặc trưng tĩnh và động trên Android Kếtquả chỉ ra việc sử dụng các đặc trưng kết hợp và học sâu cho hiệu quả tốt hơn các đặctrưng đơn truyền thống
Mitchell và cộng sự [29] đề xuất một phương pháp có tính đến cau trúc phâncấp của mã dé tạo ra các giải thích dé hiểu hơn cho các mô hình phát hiện mã độc
Tarwireyi và cộng sự [30] sử dụng các đặc trưng dựa trên âm thanh được tối
ưu hóa bằng thuật toán metaheuristic để phát hiện mã độc Android
Dưới đây là bảng tóm tắt các điểm nổi bật của các công trình trên cùng nhữngbình luận đánh giá của học viên Trong đó, M là viết tắt của ứng dụng độc hai
(Malware), B là ứng dụng lành tính (Benign), Acc là độ chính xác (Accuracy), Pre là
điểm Precision, Rec là độ phủ (Recall), F7 là điểm F1 (F1-score), FPR là tỷ lệ dương
tính giả (False Positive Rate) Chi tiết về ý nghĩa của các độ đo xem tại mục 5.3.
10
Trang 24CÁC CÔNG TRÌNH LIÊN QUAN
Bảng 2 1 Tổng quan về các nghiên cứu phân loại mã độc Android.
Nghiên | Bộdữ | Sốmẫu| Bộ Hiệu suất | Binh luận/ Bài học
cứu - liệu phân (%)
Năm loại
[31] - Leopard | 829356 Nhi Acc: 93, Rec: | Tinh khái quát hóa thấp
2018 (M +B) phân | 96, FPR: 9 do hiệu quả phụ vào các
quy tắc ánh xạ màu;
Không phát hiện được mã
độc bị làm rối mã nguồn [32] - Drebin+ | 5537M Nhi Acc: 98.02 Mã độc có thé được chứa
2018 Google | +6249B phân ở nhiều nơi khác chứ
Play không chỉ ở mỗi phần
data section của ứng dung
(33]- | MyCERT | 183M + Nhi Acc: 84.14, | Độ chính xác thấp và thời
2018 + APK 300B phan | Pre: 86.36, | gian phat hiện lớn;
Mirror Rec: 69.09 F1: | Không phát hiện được mã
76.9, FPR: | độc bị làm rối mã nguồn
6.67
[34] - AMD+ | 418M+ | Đalớp | Acc: 70.37 Độ chính xác thấp và thời
2019 APK 300B gian phát hiện lớn;
Mirror Không phát hiện được mã
độc bị làm rối mã nguồn [16] - AMD + 6134M Nhi Acc: 93, Pre: | Sử dụng bytecode tot hon
2019 Google | +4406B phân | 93.61, Rec: | so với mã opcode; Không
Play 94.37, FI: 94, | phát hiện được mã độc bị
FPR: 9.7 làm rối mã nguồn
[12] - IKM 6134M | Đalớp | Acc: 96.3, | Không phat hiện được
2019 Laborator | + 4406B Rec: 97.5, | các tắn công dang tái định
y FPR: 3 vị các section mã nguồn [14] - - 720M+ | Nhị | Acc: 92.67 Tốn nhiều tài nguyên;
2019 720B phân Không phát hiện được mã
độc bị làm rôi mã nguôn
11
Trang 25CÁC CÔNG TRÌNH LIÊN QUAN
[8] - loT- 14733M Nhị Acc: 97.35, | Tạo ra sự dư thừa thông
2020 Android | + 2486B phân Pre: 97.3, Rec: | tin của hình ảnh do việc
97.34, FI: | sao chép các giá trị điểm
97.31 ảnh mức xám trên cả ba
kênh màu RGB; Không
phát hiện được mã độc bị
làm rối mã nguồn [7] - AMD + | 24553M Nhi Acc: 91.8, | Hiệu suất giảm nếu bộ dữ
2020 Google + phân | Pre: 85.9, Rec: | liệu không cân bằng hoặc
Play 25447B 87.8, Fl: 87.5 | bị gan nhãn sai; Không
Đalớp | Acc: 92.9, | phát hiện được mã độc bị
(Họ) Pre: 91.6, Rec: | làm rỗi mã nguồn
Oe EON 5
Da lop | Acc: 96.6,
(Bién Pre: 96.4, Rec:
thể) | 96.2, Fl: 95.9 [9] - Drebin+ | 4850M Nhi Acc: 98.75 Không thể phát hiện được
2020 | Malgenom | + 4850B phân các tấn công dạng tiêm
+ Google nhiễm, ngụy trang hoặc
Play làm rỗi mã nguồn
[21] - CCCS- | 200KM | Dalodp | Acc: 93.36 Thoi gian va tai nguyén
2020 CIC- + 200K tính toán lớn; Không phát
AndMal- B hiện được mã độc bi làm
2020 rỗi mã nguồn [18] - Drebin + 3962M Nhị Acc: 95.1, | Có thể phát hiện các mã
2020 Anzhi + 1000B phân | Rec: 94.1, | độc bị làm rối dạng mã
FPR: 7 hóa
[22]- | AndroZoo | 11000M Nhị Acc: 99.37, | Độ chính xác giảm khi sỐ
2020 + phân | Fl: 99, FPR: | lượng mẫu tăng lên trên
11000B 39 mỗi họ mã độc hoặc khi
12
Trang 26CÁC CÔNG TRÌNH LIÊN QUAN
10ho | Đalớp | Acc: 88.91, | bộ đữ liệu có nhiêu họ mã
với 4100 Fl: 88, FPR: |độc; Không phát hiện mẫu/họ 15.84 được mã độc bị làm rối
mã nguồn
[17]- AMD + 1500M Nhị Acc: 99.3, | Thoi gian va tai nguyén
2020 AndroZoo | + 1500B phan Pre: 100, Rec: | tính toán lớn; Không phát
độc bị làm rối mã nguồn
[36]- | CICMalDr | 10878M Nhị Acc: 96.4 Không phát hiện được mã
2020 oid2020 | +578B | phan độc bị làm rối mã nguồn [37] - | CICMalDr | 12685M Nhị | Acc: 99, Pre: | Tính chat gây nhiễu ngẫu
2021 oid2020_ | +4039B phân 97.9, Rec: | nhiên của các mẫu đối
98.4, FI: 98.1 | kháng tao ra dữ liệu chưa
giống với thực tế; Không
phát hiện được mã độc bị
làm rối mã nguồn
[10] - Drebin+ | 4850M | Đalớp | Acc: 98.14 Không thé phát hiện được
2021 Malgenom các tấn công dang tiêm
nhiễm, ngụy trang hoặc
làm rỗi mã nguồn [11] - Drebin+ | 4850M Nhi Acc: 98.96 Không thê phát hiện được
2021 Malgenom | + 4850B phân các tấn công dạng tiêm
13
Trang 27CÁC CÔNG TRÌNH LIÊN QUAN
+ Google nhiễm, ngụy trang hoặc
Play làm rỗi mã nguồn
[19]- AndroZoo | 61809M Nhi Acc: 97, Pre: | Kích thước hình anh ảnh
2021 + phân |Ø97, Rec: 95,|hưởng đến hiệu suất;
96994B F1: 96 Không phát hiện được mã
độc bị làm rối mã nguồn [20] - Drebin | 4664M | Đalớp | Acc: 93.24 Khó nắm bắt các đặc
2021 trưng thủ công va tốn
nhiều thời gian xử lý;
Không phát hiện được mã
độc bị làm rối mã nguồn [13] - MalNet + | 4826M Nhi Acc: 100 Hiéu suat giảm bởi các kỹ
2022 Google + 2486B phân thuật tái định vị các
Play 4826M | Đalớp | Acc: 92.9 section trong tệp DEX;
+ 2486B Không phát hiện được mã
độc bị làm rối mã nguồn [15]- Leopard | 14733M Nhi Acc: 98.05, | Hiệu suất vẫn được đảm
2022 +2486B | phân |Pre: 95.35, | bao nếu bộ dữ liệu mất
(Anh |Rec: 90.95, | cin bằng; Không phát
mau) FI: 93.1, FPR: | hiện được mã độc bị làm
Trang 28CÁC CÔNG TRÌNH LIÊN QUAN
[24]- | CICMalDr | 14079 Đalớp | Acc: 96, Pre: | Không phát hiện được mã
2022 | oid2020 | (M+B) 96, Rec: 96, | độc bị làm rối mã nguồn
F1: 96
[38]- | CICMalDr | 9803M Nhị Acc: 97.41, | Không phát hiện được
2023 oid2020 | + 1795B phân Pre: 97.96, | các mã độc bi xáo trộn
Rec: 98.97, | hoặc lam rối mã nguồn
F1: 98.46
[25]- | CICMalDr - Nhi Acc: 93.83 Hiệu suất vẫn dam bảo
2023 oid2020 phân đối với các bộ dit liệu có
độ chênh lệch lớn hoặc độ
nhiễu cao
[26] - CICMalDr | 3904M Nhị Acc: 97, Pre: | Chi phí tính toán lớn;
2023 01d2020 | +3200B phân | 97.5, Rec: 99, | Không phát hiện được mã
F1: 98, FPR: 2 | độc bị làm rỗi mã nguồn [28]- | CICMalDr | 9800M Nhị Acc: 98.97, | Có thê phát hiện các mã
2024 oid2020 | + 1800B phân | Pre: 99.5, Rec: | độc Zero-Day hoặc tải mã
99.23, Fl: | động
99.36 [20]- | CICMalDr | 17247 Nhi Acc: 99.72, | Không phát hiện được mã
2024 oid2020 | M+B) phân Pre: 99.79, | độc bị làm rối mã nguồn
Rec: 99.85,
F1: 99.82
[27]- | CICMalDr | 11598 Nhi Acc: 99, Pre: | Dé bi tan cong bắt chước
2024 | oid2020 |(M+B)| phân |99, Rec: 100, | dựa trên các đối số lệnh
F1: 99,FPR: 5 | gọi hệ thống độc hại;
15
Trang 29CÁC CÔNG TRÌNH LIÊN QUAN
Không phát hiện được mã độc bị làm rôi mã nguôn
[39]- | CICMalDr | 11598 Đalớp | Acc: 95.8, | Không phát hiện được mã
2024 oid2020 | (M+B) Pre: 96, Rec: | độc bị làm rối mã nguồn
96, F1: 96
[29]- | CICMalDr | 12213M | Đalóp | Acc: 92.9, | Kết quả chỉ được đánh
2024 oid2020 | +3769B Pre: 93.71, | giá trên một bộ đữ liệu và
Rec: 94.94, | một mô hình duy nhất;
Fl: 94.32 Không phát hiện được mã
độc bị làm rôi mã nguôn
Từ bảng trên, ta thấy các phương pháp đều cho kết quả tốt trong việc phân loại mãđộc Android thông thường Tuy nhiên, đối với các mã độc bị làm rối mã nguồn, hầuhết các phương pháp đều không phát hiện được hoặc chỉ phát hiện được một số kỹ
thuật làm roi trong đó Do đó, cân có các nghiên cứu khác giúp giải quyét vân dé này.
2.2 Phân loại mã độc Android bị lam roi mã nguôn
Phân loại mã độc Android bị làm rối mã nguồn là việc xác định các mã độc sửdụng kỹ thuật làm rỗi dé che giấu bản chất thực sự của nó Làm rối mã liên quan đếnviệc sửa đổi mã nguồn của ứng dụng dé khiến việc phân tích và phát hiện bang cácphương pháp phân tích truyền thống trở nên khó khăn hơn Các kỹ thuật như mã hóa
mã, đôi tên định danh, thay đổi luồng điều khiến và đóng gói thường được các nhàphát triển mã độc sử dụng dé tránh các trình phát hiện Một số phương pháp đã đượcđưa ra dé giải quyết van dé này, bao gồm cả học máy và học sâu Dưới đây học viêntrình bày các nghiên cứu liên quan mới nhất của công việc này
Mirzaei và cộng sự [40] giới thiệu một trình phát hiện các kỹ thuật mã hóa
Android tên là AndrODet AndrODet tận dụng các thuật toán hoc tập trực tuyến
(online learning) để xác định việc đổi tên mã định danh, mã hóa chuỗi và làm rốiluồng điều khiển của các mã độc
Li và cộng sự [4] trình bày một kỹ thuật phát hiện mã độc Android đã làm rỗi
mã bằng cách kết hợp phân tích tĩnh và động Các kết quả thử nghiệm cho thấy hệ
16
Trang 30CÁC CÔNG TRÌNH LIÊN QUAN
thống dé xuất có thê duy trì khả năng phát hiện chính xác mã độc đã làm rối mã ngay
cả khi tập đữ liệu huấn luyện chỉ chứa các mẫu không bi làm rối mã
Ikram và cộng sự [41] giới thiệu DaDiDroid dé phát hiện mã độc Android ngay
cả khi sử dụng kỹ thuật làm rối mã DaDiDroid xây dựng các đồ thị có hướng cótrọng số của các lệnh gọi API từ mã của ứng dụng và sử dụng các đồ thị này để xácđịnh sự tương đồng về cấu trúc giữa các ứng dụng độc hại
Aghamohammad và cộng sự [42] trình bày hai cách tiếp cận để phát hiện mã
độc trên Android: một là một mô hình nhẹ có tên là LightDroid và hai là một mô hình
chống lại sự làm rối mã có tên ORDroid LightDroid được thiết kế để đạt hiệu quảtrong việc sử dụng tài nguyên, phù hợp với các thiết bi di động ORDroid sử dụng
các mạng nơ-ron tái phát (Recurrent Neural Network — RNN) và nhúng từ (Word
Embedding) đề đạt được khả năng phục hồi trước các kỹ thuật làm rối mã khác nhau
Zou và cộng sự [43] đề xuất một phương pháp phát hiện mã độc Android nângcao bằng học sâu trên các chuối Dalvik bytecode ByteDroid trực tiếp xử lý cácbytecode và xây dựng biểu diễn vecto dé làm đầu vào cho mạng CNN Kết qua chothấy ByteDroid không chỉ phát hiện hiệu quả mã độc Android mà còn có tính khái
quát hóa cao đối với các mã độc chưa biết hoặc các kỹ thuật làm rỗi mã khác nhau
Millar và cộng sự [44] phát hiện mã độc Android bằng cách sử dụng mạng đối
kháng phân biệt tên là DANDroid (Discriminative Adversarial Network — DAN).
DANDroid tích hợp ba bộ đặc trưng (Opcode thô, quyền và lệnh gọi API) trong kiếntrúc học sâu nhiều chế độ dé tăng tính mạnh mẽ và thể hiện khả năng khái quát hóacủa mô hình đối với các phương pháp làm rối mã chưa biết
Sun và cộng sự [45] giới thiệu DroidPDF để phát hiện các ứng dụng Android
được đóng gói (packed) Họ sử dụng entropy có trọng số dé nâng cao hiệu quả phát
hiện trước các kỹ thuật đóng gói khác nhau và duy trì hiệu suất cao ngay cả với cácmẫu bị làm rối mã định danh
Chen và cộng sự [46] dé xuất một cách tiếp cận mới tận dụng công cụ giải mã
mã (deobfuscation) đề khôi phục các lệnh gọi API sốc từ các lệnh gọi API bị làm rối.Nghiên cứu chứng minh rằng việc kết hợp các đặc trưng giải mã sẽ cải thiện đáng ké
hiệu suât của các mô hình phát hiện mã độc.
17
Trang 31CÁC CÔNG TRÌNH LIÊN QUAN
Karbab và cộng sự [5] giới thiệu PetaDroid, một khung phát hiện và phân loại
họ mã độc trên Android bằng cách sử dụng NLP và học sâu PetaDroid có khả năng
tự động thích ứng với những thay đổi theo thời gian và phân cụm mã độc vào các họ
tương ứng Các tác giả cũng nhấn mạnh tam quan trọng của việc sử dụng các đặctrưng học máy thay vì các đặc trưng do con người chọn để chống lại sự làm rối mã
Jiang và cộng sự [47] trình bay một phương pháp phát hiện sự làm rối mã cap
độ hàm của ứng dụng Android dựa trên mạng tích chập đồ thị (Graph ConvolutionalNetwork — GCN) Bang cách trích xuất đồ thị luồng điều khiển (Control-Flow Graph)làm đặc trưng và sử dụng mô hình mạng nơ-ron lai kết hợp mạng GCN và mạng Bộnhớ dài-ngăn hạn (Long Short-Term Memory — LSTM), phương pháp nay đạt được
độ chính xác và khả năng thích ứng cao hơn với sự thay đổi của mã độc
Sihag và cộng sự [6] dựa vào việc phân tích các phân đoạn opcode và thé hiệncác lệnh tuần tự đề phân loại mã độc Android bị làm rối mã
Conti và cộng sự [48] khám phá các phương pháp học sâu khác nhau dé phânloại các kỹ thuật làm rối mã trên Android Các tác giả đề xuất sử dụng kết hợp kỹthuật NLP và nhận dạng hình ảnh dé phat hiện su làm rỗi mã hiệu quả hơn
Tang và cộng sự [49] sử dụng các đặc trưng opcode đa chỉ tiết để xác định các
mẫu mã độc đã được làm rối Họ cũng phát triên một khung phát hiện toàn diện kếthợp các kỹ thuật phân tích tĩnh và động dé trích xuất và phân tích các chuỗi opcode
ở các cấp độ chỉ tiết khác nhau
Wu và cộng sự [50] giới thiệu IFDroid, một phương pháp sử dụng học tập
tương phản (contrastive learning) dé phân loại mã độc Android bị làm rối mã Bangcách chuyên đôi đồ thị lời gọi hàm thành hình ảnh, IFDroid giúp bảo tồn các đặc tính
cau trúc của mã độc Nghiên cứu cho thấy IFDroid đạt được độ chính xác cao ngay
cả khi sử dụng các kỹ thuật làm rỗi mã tiên tiến N goài ra, IFDroid có khả năng phântích mã độc trên quy mô lớn và thích ứng với các phương pháp làm rối mã khác nhau
Dé dễ hình dung, học viên tóm tat trong bảng dưới đây các điểm chính của các
công trình trên cùng những bình luận đánh giá liên quan Trong đó, Acc là độ chính
xác (Accuracy), #7 là điểm F1 (Fl-score) và số năm ghi sau các công cụ/bộ dữ liệu
là thời gian hỗ trợ tối đa của công cụ/bộ dữ liệu đó.
18
Trang 32CÁC CÔNG TRÌNH LIÊN QUAN
Bảng 2 2 Tổng quan về các nghiên cứu phân loại mã độc Android bị làm rối mã nguồn.
Nghiên | Mục Kỹ thuậtlàm | Công | Bộdữ | Hiệu | Bình luận/
cứu - đích rối cụ làm | liệu suất Bài học
Năm rối mã
[40] - Phân | Đổi tên mã định | - AMD Acc: Xử ly được các
2019 loạ |danh, Ma hóa (2010- 85.64 ứng dung có
làm rối | chuỗi, Làm tối 2016) nhiều tệp dex
mã | luồng điều khiển
[4] - Phát | Dịch ngược, Tái | Alan VirusSh | F1:95 | Không thé phát
2019 hiện mã | cấu trúc, Đóng gói | (2019) | are hiện các mã
độc lạ, Mã hóa dữ (2017), độc sử dụng kỹ
liệu, Sắp xếp lại, Apkpure thuật làm xáo Chèn mã rác, Đồi (2017) trộn mã gốc
tên mã định danh, như mã hóa
Lời gọi gián tiếp chuỗi và mảng [41] - Phát | Đổi tên mã định | - Marvin, | Acc: Độ chính xác
2019 hiện mã | danh, Mã hóa Drebin, | 96.5 vẫn cao ngay
độc chuỗi, Lời gọi Old- ca khi str dung
gidn tiép NewBen dữ liệu huấn
[42] - Phat | Dong gói lại, Dich | DroidC | AMD Acc: Mã độc chi có
2020 | hiện mã | ngược và Tái cấu | hamele | (2010- |9807 | thé được phát
độc trúc, Đổi tên gói, | on 2016), hiện sau khi cài
Đổi tên mã định | (2014) | Koodou đặt ứng dụng
danh, Mã hóa dữ s (2018),
liệu, Lời gọi gián GoogleP
19
Trang 33CÁC CÔNG TRÌNH LIÊN QUAN
tiếp, Sắp xếp lại lay
mã, Chèn mã rac, (2019)
Mã hóa tải trọng
[43]- | Phát |Làm rối tâm |- PRAGu | Acc: | Giới hạn chuỗi
2020 | hiện mã | thường, Mã hóa ard 92.17 bytecode ở
độc chuỗi, Phản chiếu, (2013) mức 1500 KB,
Mã hóa lớp và các điều này cho kết hợp của chúng phép kẻ tấn
công chèn mã độc vượt quá
giá trị để tránh
bị phát hiện
[44] - Phat | Mã hóa lớp, Lam | DexPro | Drebin | FI: Có thé phát
2020 | hiện mã | rối lời gọi API, | tector (2012) 94.8 hiện các kỹ
độc và | Mã hóa chuỗi và | (2019) thuật làm rồi
làm rối | Mã hóa tài nguyên hiếm gặp hoặc
mã mới
[45] - Phát | Làm rỗi nói chung | Dịch vụ | VirusSh | F1: Có thể phát
2020 hiện trực are 98.7 hiện cả các ứng
ứng tuyến (2020), dụng đóng gói dụng bị và dựa | Appchin đã biết và chưa đóng trên a (2020), biết
gói chữ ký | F-Droid
(2020)
[46] - Phát | Làm rối tên, Nạp | ProGua |Drebin | Acc: Các đặc trưng
2021 hiện mã chồng tên, Làm | rd (2012), 99.55, dua trén tuong
độc rối đữ liệu gỡ lỗi, | (2018) | AndroZ | FI: tác trong ứng
Làm rối chú thích, 00 94.61 | dung Android
Mã hóa chuỗi, Mã (2018- có thé loại bỏ
hóa tệp DEX 2019) nhiều và cải
thiện hiệu suât
20
Trang 34CÁC CÔNG TRÌNH LIÊN QUAN
phát hiện mã độc
[5]- Phát | Đối tên lớp, Đổi | DroidC | MalGen | FI: Không phát
2021 hiện mã | tên phương thức, | hamele | ome, 99.5 hiện được các
độc Đổi tên trường, | on Drebin, kỹ thuật làm
Mã hóa chuỗi, Mã | (2014) | MalDoz rồi phức tạp
hóa mảng, Lời gọi er, như sử dung
gián tiếp, Sắp xếp AMD, mã gốc
lại mã, Chèn mã VirusSh rac, Chèn lệnh, are,
Xóa thông tin gỡ MaMaD
lỗi, Dịch ngược và roid,
Tái câu trúc AndroZ
00
2019)
(2010-[47] - Phân | Đổi tên mã định | LLVM | F-Droid | Acc: Sử dung một
2021 loai |danh, Mã hóa | (2015), | (2020) 98.945 | mô hình lai có
làm rối | chuỗi, Làm rối | Obfusc 7 thể cho kết quả
mã | luồng điều khiển | apk phát hiện tốt
(2020) hơn
[6] - Phân |Làm rối tâm | - AndroA | Acc: Không phát
2021 loại mã | thường, Ma hóa utosy 92.47 hiện được các
độc, họ | chuỗi, Phản chiếu, (2015), kỹ thuật làm
mã độc, | Mã hóa lớp và các AndroTr rồi dang mã làm rối | kết hợp của chúng acker hóa lớp và các
mã, họ (2014), kết hợp của nó
làm rối Drebin
mã (2012),
PRAGu ard
(2013)
21
Trang 35CÁC CÔNG TRÌNH LIÊN QUAN
[48]- | Phân | Đổi tên mã định | Obfusc | PRAGu | FI: Mô hình có thê
2022 loại danh, Mã hóa | apk ard 98.5 bị sai lệch do
làm rối | chuỗi Mã hóa | (2020) | (2013), đặc điểm của
mã lớp, Phản chiếu Cova bộ dữ liệu
(2019)
[49] - Phat | Ma hóa chuỗi | AVPass | Drebin | Acc: Không phát
2022_ | hiện mã | Chèn mã lớp, Làm | (2017) | (2012) 94.55 hiện được các
độc rối tên biến/tên mã độc đóng
lớp, Làm rối tài gói hoặc có tải nguyên, Làm tối mã động
phan xa API và
Lam rối sửa đổi quyền
[50]- | Phân | Doi tên lớp, Đối | Obfusc | Genome | FI: Việc trực quan
2022 | loaiho |tên trường, Đổi | apk (2011- | 98.4 hoa bang ban
mã độc | tên phương thức, | (2020) | 2012), đồ nhiệt có thé
Mã hóa thư viện, AndroZ giúp hiểu lý do
Mã hóa chuỗi OO tại sao các mẫu
trong tỆp tai (2016) mã độc được
phân loại thành các nhóm cụ
A
thé
Ta thay, các phương pháp trên có thé phát hiện các kỹ thuật làm rối don giản và một
sô loại phức tạp Tuy nhiên, đôi với các kỹ thuật làm rôi nâng cao như sử dụng mã
gốc hay mã hóa, các phương pháp này đều bộc lộ điểm yếu Ngoài ra, các bộ dữ liệu
được sử dụng trong các nghiên cứu trên đều cũ, nằm từ 2010 đến 2020 Điều này cóthé thiếu sót các ứng dụng Android chạy trên các phiên bản mới như hiện nay
22
Trang 36CƠ SỞ LÝ THUYET
CHƯƠNG 3 CƠ SỞ LÝ THUYET
Trong chương này, học viên trình bày các kiến thức nên tảng liên quan đến
mã nguồn của ứng dụng Android, các kỹ thuật làm rồi mã từ đơn giản đến phức tạp,
ý tưởng của việc trực quan hóa ứng dụng và mạng no-ron tích chập trong học sâu.
3.1 Mã code Dalvik và tệp DEX trong Android
Các tệp tin mã nguồn cho ứng dụng Android được tạo ra bằng ngôn ngữ lập
trình Java hoặc Kotlin Các tệp này sẽ được biên dịch thành Java bytecode (mã byte
Java) và có thé thực thi được trên máy ảo Java Trong Android, trình biên dichJavac/kotlinc biên dịch mã nguồn Java/Kotlin thành tệp lớp Java (Java class) và đượcbiểu thị bằng phần mở rộng *.class
Dé giúp các thiết bi di động có tài nguyên hạn chế được tối ưu hóa và thực thi
nhanh hơn, Android đã giới thiệu định dạng bytecode riêng của mình tên là Dalvik
bytecode Sau khi có các tệp lớp, Java bytecode sẽ được dịch sang Dalvik bytecode
thông qua trình biên dịch tên là trình biên dịch DEX Trong suốt quá trình này, trìnhbiên dịch DEX hợp nhất tất cả các tệp *.class và *.jar thành một tệp classes.dex duy
nhất Tệp này có thê thực thi được trên máy ảo Android như Android Runtime (ART)
hoặc Máy ảo Dalvik (Dalvik VM) Các máy ảo ART/Dalvik yêu cầu ít lệnh máy ảohơn máy ảo Java vì nó sử dụng kiến trúc dựa trên thanh ghi thay vì kiến trúc ngănxếp Trong kiến trúc này, các toán hạng sẽ được lưu trữ trong các thanh ghi của CPUdẫn đến việc thực thi nhanh hơn
Tép DEX — Dalvik Executable là noi chứa mã, tài nguyên và siêu dữ liệu được
biên dich cho phép các ứng dụng Android chạy trên nhiều thiết bị có cấu hình phancứng và phần mềm khác nhau Các ứng dụng Android được biên dịch thành các tệp
DEX, sau đó được nén thành một tệp APK Vì tệp DEX được tải vào bộ nhớ và được thực thi bởi máy ảo ART/Dalvik nên các hành vi và đặc trưng quan trong của ứng
dung Android hầu hết được hiền thị thông qua các tệp DEX này [13], [14], [34] Hìnhdưới đây trình bày cấu trúc của tệp DEX
23
Trang 37Tệp DEX chủ yếu bao gồm ba phần là phần tiêu đề (header), phần chỉ mục
(index) va phan dữ liệu (data) Phan Header chứa thông tin cơ ban như checksum,kích thước tệp và các siêu dữ liệu Phần Index lưu trữ thuộc tính offset của chuỗi,
kiểu, proto, trường, phương thức và lớp Phần Data chứa mã thực thi thực tế và các
dữ liệu của ứng dụng.
3.2 Làm rối mã nguồn ứng dụng Android
Lam rối mã hay Obfuscation là một kỹ thuật được sử dụng dé làm cho mã củaứng dụng trở nên khó hiệu hơn Điều này đạt được bằng cách sử dụng nhiều công cụ
và phương pháp khác nhau dé chuyên đổi mã gốc thành phiên bản có chức năng tương
đương nhưng khó phân tích hơn.
Trên Android, việc làm rối mã thường liên quan đến việc đổi tên các lớp,phương thức va các biến thành các mã định danh vô nghĩa, mã hóa chuỗi, sửa đôi
luồng điều khién dé che khuất logic và chèn mã dư thừa hoặc mã chết Những chuyển
đổi này không làm thay đổi chức năng của ứng dụng nhưng lại làm gia tăng đáng kể
độ phức tạp và nỗ lực cần thiết để dịch ngược và phân tích
Có nhiều kỹ thuật làm rỗi mã khác nhau trên Android [51], [52] Dưới đây họcviên trình bày các kỹ thuật làm rối mã phô biến từ đơn giản đến phức tạp hiện nay
3.2.1 Làm rối tầm thường - Trivial
Lam rối tầm thường hay Trivial là kỹ thuật gồm các thao tác đơn giản khôngthay đổi đáng ké ứng dụng gốc nhưng vẫn có thé mang lại các lợi ích cơ bản về khả
24
Trang 38CƠ SỞ LÝ THUYET
năng che giấu mã Nó đóng vai trò là bước sơ bộ trong quy trình làm rối mã, đảm bảo
rang ứng dụng Android được ký hợp lệ và sẵn sàng cho các sửa đổi tiếp theo.
Rebuild: Xây dựng lại - Là việc biên dịch lại và đóng gói lại ứng dụng
Android Quá trình này bao gồm việc lấy các tệp nguồn của ứng dụng (như mã Java
hoặc Kotlin, tài nguyên XML — eXtensible Markup Language và các tệp tin nội dung
khác), biên dịch chúng thành bytecode và định dạng tài nguyên thích hợp, sau đó đóng gói chúng thành tệp APK.
NewSignature: Chữ ký mới - Là việc ký lại ứng dụng Android bằng chữ kýtùy chỉnh mới Mọi ứng dụng Android đều phải được ký điện tử bằng chứng chỉ trướckhi có thê cài đặt trên thiết bị Chữ ký này đảm bảo tính toàn vẹn và tính xác thực của
ứng dụng.
NewAlignment: Căn chỉnh mới - Là việc sắp xếp lại ứng dụng Android Quátrình này bao gồm việc tối ưu hóa tệp APK bang cách căn chỉnh cấu trúc dữ liệu của
nó theo ranh giới 4 bytes, điều này có thể cải thiện hiệu suất và hiệu quả của ứng dụng
khi được cài đặt trên thiết bị.
3.2.2 Đối tên - Rename
Đổi tên hay Rename là làm thay đôi tên của nhiều mã định danh khác nhauđược sử dụng trong ứng dụng, chang hạn như đổi tên lớp, đồi tên trường hay đổi tên
phương thức.
Bằng cách thay đổi tên của các lớp, trường và phương thức thành mã định
danh ngẫu nhiên vô nghĩa hoặc không mang tính mô tả, các kỹ thuật này che khuất
cau trúc, dir liệu và chức năng của ứng dụng, từ đó bảo vệ logic nội bộ và thông tinnhạy cảm Tuy nhiên, nó cũng làm cho việc áp dụng các kỹ thuật dịch ngược dé hiểu
mã trở nên khó khăn hơn.
ClassRename: Đổi tên lớp - Là thay đổi tên của các lớp trong ứng dụng, bao
gồm việc đổi tên gói và đổi tên các tệp lớp
FieldRename: Đổi tên trường - Là đồi tên các trường trong lớp, bao gồm đổitên các biến, thuộc tính của lớp hoặc các thành viên dữ liệu của lớp
MethodRename: Đổi tên phương thức - Là đổi tên các phương thức (hàm)
trong các lớp.
25
Trang 39CƠ SỞ LÝ THUYET
3.2.3 Mã hóa - Encryption
Mã hóa hay Encryption tập trung vào việc mã hóa mã và tài nguyên của ứng
dụng, sau đó giải mã chúng trong quá trình thực thi Điều này làm tăng đáng ké độkhó của phân tích tĩnh vì các phần được bảo vệ của ứng dụng không hiền thị ở dạngban đầu cho đến khi chúng được giải mã khi chạy ứng dụng
AssetEncryption: Mã hóa nội dung - Là việc mã hóa các tệp nội dung trong ứng dụng Android Nội dung (assets) là các tệp đi kèm với ứng dụng thường được sử
dụng dé lưu trữ các tệp đa phương tiện, tệp cấu hình hoặc các tài nguyên khác màứng dụng có thê cần khi chạy
ConstStringEncryption: Mã hóa chuỗi hằng - La mã hóa các chuỗi hangđược nhúng trong mã nguồn của ứng dụng Đây thường là các chuỗi được gán cứng
trong mã và được dùng trong toàn bộ ứng dụng.
LibEncryption: Mã hóa thư viện gốc - Là việc mã hóa các thư viện gốc (tệp
.so) đi kèm với ứng dụng Android Thư viện gốc thường được sử dụng cho mã quantrọng về hiệu năng và có thê chứa chức năng quan trọng được viết băng các ngôn ngữ
như C hoặc C++.
ResStringEncryption: Mã hóa chuỗi trong tệp tài nguyên - Là việc mã hóa
các chuỗi trong các tệp tài nguyên của ứng dụng, cụ thé là các chuỗi được gọi bêntrong mã Chuỗi tài nguyên thường được lưu trữ trong tệp XML và có thể bao gồmvăn ban UI — Giao diện người dùng, các giá trị cầu hình và dữ liệu tĩnh khác
3.2.4 Mã - Code
Làm rối mã hay Code là việc biến đổi luồng điều khiển và cấu trúc của mã
Reflection: Phản chiếu - Là việc phân tích mã hiện có dé tìm kiếm các lời gọiphương thức trong ứng dụng, ngoại trừ các lời gọi đến Android framework Nếu tìmthấy một lời gọi phương thức phù hợp (tức là không có phương thức khởi tạo, mức
độ truy cập công khai, v.v.), lời gọi sẽ được chuyển hướng đến một phương thức tùychỉnh sẽ gọi phương thức ban đầu bằng cách sử dung API Reflection
AdvancedReflection: Phản chiếu nâng cao - Là mở rộng của phương phápphản chiếu đề gọi các API nguy hiểm của Android framework Trong đó, nó gọi cácphương thức có thé bi gan cờ hoặc bị xem xét kỹ lưỡng bởi các cơ chế bảo mật
26
Trang 40CƠ SỞ LÝ THUYET
Nop: Là việc chèn các lệnh nop (no-operation - không hoạt động) trong quá
trình triển khai phương thức Lệnh nop không làm gi ca và được dùng dé thêm mã
rác mà không ảnh hưởng đến logic của chương trình
Goto: Là sửa đôi đồ thị luồng điều khiển bang cách chèn các lệnh goto Cụ
thể, nó thêm một lệnh goto trỏ đến cuối phương thức và một lệnh goto khác trỏ đến
lệnh sau lệnh goto đầu tiên, tạo ra hai nút mới trong đồ thị luồng điều khiển.
Reorder: Sắp xếp lại - Là thay đổi thứ tự của các khối cơ bản trong mã Khitìm thấy lệnh rẽ nhánh, điều kiện sẽ bị đảo ngược (ví dụ: nhánh nếu nhỏ hơn sẽ trởthành nhánh nếu lớn hơn hoặc bằng) và các khối cơ bản đích được sắp xếp lại tươngứng Ngoài ra, nó sắp xếp lại mã một cách ngẫu nhiên bằng cách sử dụng lệnh goto
ArithmetieBranch: Rẽ nhánh số học - Là việc chèn mã rác gồm các phép tính
số học và lệnh rẽ nhánh dựa trên kết quả của các tính toán này Cụ thé, đầu tiên nó sẽtìm vị trí thích hợp trong mã và thêm các phép tính số học vô nghĩa Sau đó là thêmcác lệnh rẽ nhánh phụ thuộc vào kết quả số học
CallIndirection: Lời gọi gián tiếp - Là sửa đổi đồ thị luồng điều khiển màkhông thay đổi ngữ nghĩa mã bằng cách thêm các phương thức mới gọi các phương
thức ban dau Ví dụ: lệnh gọi trực tiếp đến phương thức ml được thay thé bằng lệnh
gọi đến phương thức mới m2, m2 bao boc m1 bên trong và từ đó gọi m1
DebugRemoval: Xóa thông tin gỡ lỗi - Là loại bỏ thông tin gỡ lỗi khỏi mã
ứng dụng Thông tin gỡ lỗi có thể bao gồm siêu dữ liệu như tên biến, tên phương thức
và số dong hữu ích cho việc gỡ lỗi
MethodOverload: Nap chồng phương thức - Là việc khai thác tính năng nạpchồng phương thức của Java đề tạo ra các phương thức mới có cùng tên nhưng đối
số khác nhau Nó tạo ra một phương thức void mới có cùng tên và các đối số như một
phương thức hiện có nhưng thêm các đối số bổ sung ngẫu nhiên Phần thân củaphương thức mới chứa đầy các lệnh số học ngẫu nhiên
3.2.5 Tài nguyên - Resource
Tài nguyên hay Resource là kỹ thuật làm rối dựa trên các tệp tài nguyên củaứng dụng như tệp AndroidManifest.xml, hình ảnh và các nội dung khác Việc làm rốicác tệp tài nguyên sẽ gây khó khăn cho việc phân tích và hiểu các thành phần không
27