1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Công nghệ thông tin: Phân loại mã độc Android dựa trên hướng tiếp cận đa lớp đặc trưng

143 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 143
Dung lượng 56,24 MB

Nội dung

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 2

LỜ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 3

LỜ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 4

TÓ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 5

MỤ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 6

MỤ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 7

DANH 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 8

DANH 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 9

Bả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 10

2 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 11

DANH 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 12

DANH 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 13

TOM 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 14

TONG 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 15

và 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 16

TONG 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 17

TONG 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 18

TONG 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 19

TONG 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 20

CÁ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 21

CÁ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 22

CÁ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 23

CÁ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 24

CÁ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 25

CÁ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 26

CÁ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 27

CÁ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 28

CÁ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 29

CÁ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 30

CÁ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 31

CÁ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 32

CÁ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 33

CÁ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 34

CÁ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 35

CÁ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 36

CƠ 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 37

Tệ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 38

CƠ 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 39

CƠ 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 40

CƠ 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

Ngày đăng: 08/12/2024, 15:34