Trong đó, kỹ thuật phân tích tĩnh và kỹ thuật phân tích động là hai kỹ thuật được sử dụng chủ yêu dé thực hiện trích xuất các đặc trưng của ứng dụng Android cho các mô hình ML và DNN này
Trang 1ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG
NGUYEN NGỌC TRƯỞNG - 19522440
KHÓA LUẬN TÓT NGHIỆP
PHAN TÍCH KET HỢP CÁC UNG DUNG ANDROID
DE PHAT HIEN VA PHAN LOẠI UNG DUNG ĐỘC
HAI BANG CÁCH SỬ DỤNG HỌC SÂU
HYBRID ANALYSIS OF ANDROID APP
FOR DETECTION AND CLASSIFICATION
MALWARE USING DEEP LEARNING
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
TS LE KIM HUNG
TP HO CHÍ MINH, 2023
Trang 2LOI CAM ON
Dau tiên, em xin trân thành cảm on quý thay cô dang giảng day tại khoa Mang máy tính và Truyền thông, và toàn thể các quý thầy cô đang công tác tại trường Đại học Công nghệ Thông tin - ĐHQG HCM đã truyền đạt những kiến thức, bài học, kinh nghiệm quý báu cho em trong suốt quãng thời gian bốn năm vừa qua.
Em xin chân thành cảm ơn các thầy cô trong nhóm nghiên cứu IEC đã tạo nhiều điều kiện và môi trường tốt nhất dé em có thé tiếp cận và thực hiện các nghiên cứu
khoa học sinh viên Nó là tiền dé dé giúp em định hướng thực hiện và hoàn thành
khóa luận tốt nghiệp này Đặc biệt, em xin gửi lời cảm ơn chân thành nhất đến thầy
Lê Kim Hùng và cô Lê Minh Khánh Hội đã hướng dẫn em thực hiện và hoàn thiện
khóa luận tốt nghiệp Cảm ơn thầy cô đã chia sẻ nhiều kinh nghiệm, bài học quý
báu và luôn quan tâm, giúp đỡ em giải quyết những vấn đề phát sinh cũng như là
những khó khăn trong quá trình thực hiện và hoàn thành khóa luận.
Cuối cùng em xin cảm ơn bố mẹ đã luôn quan tâm và động viên em trong suốt quá
trình học tập tại trường Đại học Công nghệ Thông tin - ĐHQG HCM Đồng thời
em cũng xin cảm ơn các anh, chị và các bạn sinh viên tại trường Đại học Công nghệ
Thông tin - ĐHQG HCM trong thời gian học tập đã luôn nhiệt tình hỗ trợ, chia sẻ ý
kiến và góp ý cho em trong thời gian thực hiện khóa luận.
TP Hồ Chí Minh, ngày 15 tháng 06 năm 2023
Nguyễn Ngọc Trưởng
Trang 3Chương 1 MỞ ĐẦU 52222 E2 E21521E21121211211211211 1111111111 c0 2
1.1 Đặt vấn đề tt HH he 2
1.3 Đối tượng và phạm vi nghiên CỨU 2- 2 2 +2 £+££+E££E£Eerxerxerxrrezreee 5
1.3.1 _ Đối tượng nghiên cứu -©-¿©-+¿+2++2+++Ex++rkerkerkeerkesree 5
1.3.2 Phạm vi nghiÊn CỨU - -.G SG 3139319 11 9 1181111 vn rệt 5
Chương2 CƠ SỞ LÝ THUYÊT - 2-2: 5£+£+EE+EE£EE+EEEEtEErrkerrerrkervee 6
2.1 Kiến trúc và Ung dụng Android -s-2+s s+x+£E++EE£EEerxerxezrerrkerxee 6
2.1.1 Kiến trúc của Andfroid -©cc©cc+cxvrxerxcrrerrserxered 62.1.2 Các thành phần của ứng dụng Android -¿-z +52 7
2.1.3 Phan loại ứng dụng AndOId 5 5555 2< SE EEsseseeeeseeeree 8
2.2 Các kỹ thuật Deep Learning được sử dụng - ¿+ cc+sxssesseesse 9
2.2.1 | Multi-Layer Perceptron (MILP) - 556 55+ s*ssseeeseeeees 9
2.2.2 Recurrent Neural Network (RNN) -cc TS TS 10 2.2.3 Gated Recurrent Unit (GRU) - 5 52325 ***‡+++++evesseeessss 12 2.2.4 Convolutional Neural Network (CNN) ccc Sài 12
2.2.5 Long Short-Term Memory (LSTM) ecsccssseeseeceseeeeneeeeaeeeseeeaes 13
2.2.6 Bidirectional Long Short-Term Memory (BILSTM) 14
2.2.7 Convolutional Neural Network - Multi-Layer Perceptron MLP) 16
(CNN-2.3 Tensorflow cccccccccccccccccscccccccccceccessecsccssssssssssssssssseseeeeeseeeceseeeeeeeeessssssssaaeaes 16
2.3.1 Giới thiệu Temsorflow - 2011111216111 1 11 n9 111 ng kg 16
2.3.2 Một số khái niệm - - +: St+k+ESEESE+EEEEEESEEEEEEEEEEEEEEkEEEEkrkrkerrre 17
Trang 42.3.3 Cài đặt TensOrÍÏOW - G G01 0121 11112111119 1111101 1111801111 82k tre, 17 2.4 Công cụ phân tích ứng dụng Android server 17
2.4.1 AndrOBUard Ăn TH TH ng kg 17 24.2 Frida TOOÌS SH HH HH ghế 19
2.4.3 DroIdBO( Ăn TH HH ng 20
Chuong 3 CÔNG TRINH LIEN QUAN 2-2 2+c++E+Ecrkerxerxersrree 21
3.1 Dựa trên kỹ thuật phân tích tĩnh - - ¿+55 +2 + + +*EEsekEerrrerssrrrrerrree 21
3.2 Dựa trên kỹ thuật phân tích động - 5 55+ + *sEEsserrerserrrrrses 22
3.3 Dựa trên kỹ thuật phân tích kết hợp -¿-¿+cx+x++zx+zxezzxees 23
3.4 Dựa trên kỹ thuật xử lý ảnh - - c5 5c 5c S SH rưkt 24
3.5 Tổng kết đ⁄Z⁄⁄ sfc À 25
3.5.1 Vấn để còn tổn tại cccrriirrrriirrrrriiirririrrrre 25
3.5.2 Van dé cần tập trung, nghiên cứu giải quyết -5z-ss¿ 26
Chương 4 FRAMEWORK DE XUẤT 2-©2¿©25+22+ccz+vrxesrxrsrxeee 27
4.1 Mô hình tổng quan : 2:©22 ©2222 2EE2EEEEEESEE2EEEEEEEEESrkrrrrerkrsree 27
4.2 Feature EXTACtIOH Quy 28
4.2.1 Static Feature EX{TACtIOTI - 5Á 3S HH nh HH gệt 28
4.2.2 Dynamic Feature EXtFaCfION G1 vn vn 29
4.3 Feature PTeDTOC€SSITE QG HH TH HH HH nh 30 4.4, Feature S€Ï€CfIOII c- Ăn TH ng TH HH ng crờ 36 4.5 Deep Learning CaSSIÍT€T G1 1n ng nh 40
4.5.1 Mô hình phát hiện ứng dụng độc hại - s5 555 ++<<++c+sxxsxx 40 4.5.2 Mô hình phân loại loại ứng dụng độc hại - - 55 5-<<+<<+<+ 44
Chương 5 TRÌNH BAY, DANH GIÁ KET QUA THỰC NGHIỆM 45
Trang 55.1 Môi trường thực nghiỆm - - <5 +5 + vn HH HH ng tưệt 45
5.2 BO dit na a 45
5.3 Chỉ số đánh giá ¿5c tt EE 1211211211 21111111111111 1111111111 c0 415.4 Hiệu suất 0:80 49
5.4.1 Phát hiện ứng dụng Android độc hại - 5 55+ s2 <++s+sssss 49
5.4.2 Phân loại loại ứng dụng Android độc hại 55-5 s55+++<+ 51
5.5 So Sanh CO na .3431 53
5.5.1 Phát hiện ứng dung Android độc hại - -.- 5555 +<<++s+sxsxx 53
5.5.2 Phân loại loại ứng dụng Android độc hại 5525 <+<<+ 56
5.6 Phát triển ứng dụng Web cceccecccccscsssecssesssecseessecssssssssseessecssecssssecssecsseseessecs 57Chương 6 KET LUẬN -+EEE+EE+EEEEEEEEEEEEErEerkerkerkrree 61Chương7 HƯỚNG PHÁT TRIEN -¿©-¿©c++2+++cxe+rxsrxeee 62
Trang 6DANH MỤC HÌNH
Hình 2.1: Ngăn xếp phần mềm Android - + £+£2£+2££+E£+E££E+EE+E++EEzEzrezea 6
Hình 2.2: Ví dụ minh họa 3 lớp trong mô hình MLP - 5 5 «+5 £+<x<xx 10 Hình 2.3: Hoạt động của RNN Là HH HH TH TH TH HH HH HH 11 Hình 2.4: Ví du minh họa cách hoạt động của mô hình CNN .-. 13
Hình 2.5: Mô hình LSTM - + S3 919 TH HH ng Hưng gưàt 14
Hình 2.6: Mô hình hoạt động của BILSTM -. 225 S21 srsirrrrrrirrrrrre 15
Hình 4.1: Mô hình tổng quan mô tả hoạt động của các thành phan trong
AndroAnalyzer framework - - - k1 HH TH HH HH 27
Hình 4.2: Mô hình hoạt động của thành phan Feature Preprocessing 30Hình 4.3: Sơ đồ khối cho thuật toán Feature Selection -‹ ++-<<<<s<<++++ 37Hình 4.4: Ví dụ minh họa cho quá trình tạo shadow feature và tạo bảng hợp nhất
original feature va shadow Í€afUTG ó5 S911 ng ng ệt 38 Hình 4.5: Mô hình học sâu phát hiện ứng dụng độc hại của chúng tôi 40
Hình 4.6: Mô hình hoc sâu phân loại loại ứng dụng độc hại của chúng tôi 44 Hình 5.1: Mô hình hoạt động của ứng dụng web phân tích và phát hiện ứng dụng
Hình 5.2: Giao diện chức năng tải file APKs dé thực hiện phân tích và phân loại
Ung 9i01150:0e8: 07777 e 58
Hình 5.3: Giao diện chức năng hiển thị danh sách các file APKs đã được phân tích
¬— 59
Hình 5.4: Giao diện chức năng hién thị kết quả phân tích l - - 59Hình 5.5: Giao diện chức năng hién thị kết quả phân tích 2 :-5: 60
Trang 7DANH MỤC BANG
Bang 4.1: Mô tả chỉ tiết các loại đặc trưng memory, network, battery, logcat,
process được thu thập bởi thành phan Feature Preprocessing - - 33Bảng 4.2: So sánh hiệu suất của mô hình Random Forest trên tập dữ liệu với 9841
feature và 232 feature đã ÏỌC - - G11 1221111121111 1201 11110 1111001111111 11180111 kgyyn 39
Bang 5.1: Cau hình máy chủ được dùng dé xây dựng và đánh giá bộ phân loai 45Bảng 5.2: Tổng hợp các dữ liệu được sử dụng dé đánh giá và so sánh hiệu suất của
công trình của chúng tôi với các công trình khác .- - -«+++sx++eexsseeess 47
Bang 5.3: Mô ta confusion matrix cua mô hình chúng tôi trên các tập dữ liệu trong
bài toán phát hiện ứng dụng Android độc hại .- - 6 5< + ++cEseesserssersee 49 Bảng 5.4: Mô tả classification report của mô hình chúng tôi trên các tập dữ liệu
trong bài toán phát hiện ứng dụng Android độc hại - - 55s «5s<+s+2 50 Bang 5.5: Confusion matrix của mô hình chúng tôi trên tap dữ liệu được phân tích
cua chúng tôi trong bài toán phân loại loại ứng dụng Android độc hại 51
Bảng 5.6: Classification report của mô hình chúng tôi trên tập dữ liệu được phân
tích của chúng tôi trong bài toán phân loại loại ứng dụng Android độc hại 52
Bảng 5.7: Hiệu suất phân loại loại ứng dụng Android độc hại ứng dụng độc hại của
các mô hình học sâu phổ biến trên AndroAnalyzer Dataset -2 s- 552 s2 53
Bảng 5.8: Hiệu suất phát hiện ứng dụng Android độc hại ứng dụng độc hại của các
công trình nghiên cứu trước đây trên MiniMalDroid Dataset - - 53
Bang 5.9: So sánh hiệu suất của mô hình chúng tôi đề xuất với mô hình tốt nhất
được đề xuất trên các tập dữ liệu phát hiện mã độc Android được công khai 54
Bang 5.10: Hiệu suat phân loại loại ứng dung Android độc hai ứng dụng độc hại của
các mô hình học sâu phổ biến trên AndroAnalyzer Dataset - 5-5 s2 56Bảng 5.11: Hiệu suất phân loại loại ứng dụng Android độc hại ứng dụng độc hại củacác công trình nghiên cứu trước đây trên tập dữ liệu APKs đã đề xuất của chúng tôi
Trang 8DANH MỤC TỪ VIET TATNgữ nghĩa Từ viết tắt
Deep Neural Network DNN
Convolutional Neural Network - CNN-MLP
Multi-Layer Perceptron
Machine Learning ML
Dalvik Virtual Machine DVM
Control Flow Graph CFG
Data Flow Graph DFG
Computer Vision CV
Natural Language Processing NLP
Trang 9TÓM TẮT KHÓA LUẬN
Trong những năm gần đây, điện thoại Android đã được sử dụng rộng rãi và có sựtăng trưởng nhanh chóng Nhiều ứng dụng độc hại cũng nhanh chóng ra đời để đánhcắp và khai thác thông tin của người Người dùng Android có thể tải xuống và càiđặt các ứng dụng chủ yếu trên các cửa hàng ứng dụng Việc phát hiện, phân loại
loại các ứng dụng độc hại do các nhà phát triển tải lên trên các cửa hàng ứng dụng
là rất quan trọng Để phát hiện và phân loại loại các ứng dụng Android độc hại,
nhiều nhà nghiên cứu đã ứng dụng kỹ thuật máy hoc (ML) và học sâu (DNN).
Trong đó, kỹ thuật phân tích tĩnh và kỹ thuật phân tích động là hai kỹ thuật được sử
dụng chủ yêu dé thực hiện trích xuất các đặc trưng của ứng dụng Android cho các
mô hình ML và DNN này Tuy nhiên, cả hai kỹ thuật phân tích đều có những tháchthức khác nhau, chủ yếu dựa trên kỹ thuật che giấu phức tạp như obfuscated code,anti-sandbox, Để khai thác hiệu quả các ưu điểm của từng kỹ thuật phân tích,
chúng tôi phát triển một framework cho phép trích xuất nhiều đặc trưng tĩnh và
động khác nhau từ các tệp APK Các đặc trưng nay được coi làm đầu vào dé đào tao
mô hình học sâu nhằm phân loại các loại ứng dụng Android độc hại khác nhau
Thông qua các thực nghiệm trên cùng tập file APK, framework của chúng tôi đạt độ
chính xác cao hơn các công trình liên quan khác gần đây Cụ thé, trong bài toán
phát hiện ứng dụng Android độc hại, chúng tôi đạt được độ chính xác là 98.08%,
trong khi một SỐ công trình khác đạt được độ chính xác cao nhất là 96.39% (cao
hơn khoảng 2%) Đối với bài toán phân loại loại ứng dụng Android độc hại, chúngtôi đạt độ chính xác cao với 94.83% trong khi một sỐ công trình khác đạt được độchính xác cao nhất là 87% (cao hơn khoảng 7%)
Trang 10Chương 1 MỞ ĐẦU
1.1 Đặt vấn đề
Ngày nay, hệ điều hành Android được sử dụng rộng rãi trên nhiều loại thiết bị di
động khác nhau như smartphones và tablets Theo số liệu của Statcounter tính đến
tháng 12 năm 2022, hệ điều hành Android chiếm 72.37% thị phần hệ điều hành diđộng được sử dụng [1] Đề đánh cắp dữ liệu cá nhân và xâm phạm tính bảo mật củathiết bị, các tội phạm mạng đã tạo ra nhiều ứng dụng độc hại dành cho điện thoạiAndroid Theo báo cáo mới nhất của Kaspersky vào cuối tháng 2 năm 2023 về
Android threat của Kaspersky cho năm 2022 [2], từ các sản phẩm và công nghệ di
động của minh, Kaspersky đã được phát hiện: 1,661,743 malicious installers,
196,476 ứng dụng loại banking trojans mới va 10,543 ứng dụng ransomware trojans
mới Cũng trong báo cáo này, từ thông kê về phân bố các cuộc tấn công theo loạiứng dụng được sử dụng vào năm 2022 cho thấy, tỷ lệ các cuộc tan công sử dụng các
ứng dụng loại adware từ 16.92% vào năm 2021 tăng lên 26.91%, riskware đã từ
2.38% vào năm 2021 tăng lên 5.31% và các ứng dụng loại malware khác chiếm tỉ lệ
67.78% Vì người dùng Android tải xuống và cài đặt các ứng dụng chủ yếu trên các
cửa hàng ứng dụng như Apkcombo, Apkpure, Google Play nên việc phát hiện, phan
loại các ứng dụng độc hại do các nhà phát triển tải lên trên các cửa hàng ứng dụng
là rất quan trọng Bên cạnh đó, người dùng có thé cần cài đặt một số ứng dụng khác
không có trên cửa hàng ứng dụng Google Play mà ở các nguồn khác trên mạnginternet, vì vậy người dùng cũng cần phải kiểm tra ứng dụng tải về có phải là ứng
dụng độc hại không dé tránh bị mat cắp thông tin và bị tan công
Trong thập kỷ qua, các nhà nghiên cứu đã đề xuất nhiều phương pháp phù hợp vàcông cụ cần thiết để phát hiện các ứng dụng độc hại trên nền tảng Android nhằmbảo vệ người dùng hợp pháp khỏi các mối đe dọa Có 2 hướng tiếp cận được đềxuất bao gồm: tiếp cận dựa trên kỹ thuật phân tích truyền thống và tiếp cận dựa trên
kỹ thuật học máy [3] Với hướng tiếp cận dựa trên kỹ thuật phân tích truyền thống,
nó tập trung vào phân tích tĩnh hoặc động đê xác minh các mau xác minh có mã
Trang 11code độc hại trong các ứng dụng Android Các mã code độc hại có thé được tim
thấy dựa trên opcodes, permission, các lời gọi hệ thống hoặc API chứa trong mã
nguồn Tuy nhiên, với hướng tiếp cận này đòi hỏi chi phí cao va sự phát triển nhanh
chóng của các ứng dụng độc hại làm cho nó còn hiệu quả Trong hướng tiếp cận thứhai, các kỹ thuật học máy đã được đưa ra dé phát hiện ứng dụng Android độc haibăng cách sử dụng bộ dữ liệu lớn dé xây dựng mô hình phát hiện hoặc phân loại
ứng dụng độc hại Để thực hiện, các nhà nghiên cứu đã thực hiện nhiều kỹ thuật
phân tích khác nhau bao gồm phân tích tĩnh, phân tích động hoặc kết hợp cả hai đểtrích nhiều loại đặc trưng [4] Tuy nhiên, dé dat được chất lượng phát hiện hoặcphân loại ứng dụng độc hại trên nền tảng Android với hiệu suất cao thì chúng ta cần
phải xây dựng bộ dữ liệu được gán nhãn chính xác và xây dựng bộ đặc trưng phù
hợp như permissions, API và opcode [3] Bên cạnh đó, nhiều nghiên cứu đã đề xuất
các kỹ thuật phát hiện ứng dụng Android độc hại dựa trên hình ảnh và nó cũng đã
có nhiều thành tựu ấn tượng [5] Kỹ thuật này giải quyết được việc xử lý các mẫu
ứng dụng có kích thước lớn và tập dữ liệu có kích thước lớn gây ra [6], đồng thời
giảm thời gian phân tích và phát hiện ứng dụng độc hại và đạt độ chính xác cao [7].
Mặc dù phương pháp phát hiện ứng dụng độc hại dựa trên hình ảnh đã được đưa ra
như một giải pháp tiềm năng, nhưng nó cũng có những hạn chế cần được xem xét.Một trong số đó là không thể phát hiện injection attacks [8] [9] Tương tự với
phương pháp phân tích tĩnh, phương pháp này cũng gặp phải thách thức với kỹ
thuật code obfuscation - kỹ thuật ấn danh mã nguồn [10] [11] Phân tích tinh là một
kỹ thuật nhằm mục đích nắm bắt hành vi của ứng dụng Android mà không cần thựcthi ứng dụng Những đặc trưng quan trọng của ứng dụng có thê được thu thập bởi
các công cụ hoặc framework như Flowdroid [12], AmAndroid [13], từ đó xây dựng
sơ đồ luồng điều khiển (CFG), sơ đồ luồng dữ liệu (DFG) [3] Ưu điểm của nó làgiúp việc phân tích mã nguồn trở nên dễ dàng hơn Tuy nhiên, hạn chế của phươngpháp phân tích tĩnh là không thể phát hiện các ứng dụng độc hại tạo ra các hoạt
động động, như gọi tài nguyên mạng, truy cập dữ liệu hay thực thi mã độc sau khi
file APK được cài đặt trên thiết bị người dùng [14] Phương pháp phân tích động là
Trang 12một giải pháp khác dé phát hiện ứng dụng độc hai từ việc thực thi chúng trên thiết
bị Android và giám sát hoạt động của các ứng dụng này Nó có thể cải thiện đượcnhiều khó khăn của phân tích tĩnh, đồng thời cũng có một số hạn chế trong việc tìm
ra tất cả các đường dẫn thực thi mã, dẫn đến bỏ sót cảnh báo [15] Ngoài ra, mộtứng dụng độc hại có thể nhận ra rằng nó đang được thực thi trong một trình giả lập,tức là không phải trên điện thoại thực, và có thé ấn phần độc hại của ứng dụng đểtránh bị phát hiện [16] Trong nhiều trường hợp, ứng dụng độc hại sẽ tắt chức năngđộc hại dé tránh việc bị phát hiện khi thực thi trên môi trường sandbox Tuy nhiên,với phân tích tĩnh vẫn có thé trích xuất các tinh năng tĩnh (ví dụ lệnh gọi API trong
mã ứng dụng) của ứng dụng và phát hiện mức độ độc hại của nó Ngược lại, phân
tích động có thể được sử dụng dé giám sát các ứng dụng có mã bi xáo trộn hoặc cóhành vi tải mã động dé phát hiện các hành vi độc hai của chúng [14] Vì vậy, việckết hợp cả hai phương pháp phân tích tĩnh và động là một phương pháp hiệu quả
hơn so với việc chỉ sử dụng một loại phân tích đơn lẻ, sẽ tăng cường khả năng phát
hiện ứng dụng độc hại.
1.2 Mục tiêu của đề tài
Mục tiêu chính của dé tài là phân tích kết hợp các ứng dụng Android dé phát hiện
và phân loại ứng dụng độc hại với độ chính xác cao Đề đạt được mục tiêu này, đề
tài sẽ tập trung vào:
- Dé xuất một framework cho phép trích xuất nhiều đặc trưng tĩnh và động của
ứng dụng Android từ file APK, đặt tên là AndroAnalyzer.
- Dé xuất mô hình học sâu dé phát hiện ứng dụng độc hại
Trang 13o SMS Malware
o Mobile Riskware
o Benign
- Trién khai website dé người dùng có thé có thé thực hiện phân tích va tra cứu
thông tin của các ứng dụng độc hại khác.
1.3 Đối tượng và phạm vi nghiên cứu
1.3.1 Đối tượng nghiên cứu
Tp APK là một trong năm loại ứng dụng sau:
- Adware là loại malware hiền thị quảng cáo trong các ứng dụng hợp pháp
- Banking malware là các ứng dụng đánh cắp thông tin ngân hàng của người
dùng.
- SMS malware là ứng dụng lợi dụng dịch vụ tin nhắn đề tiễn hành tấn công
- Riskware là các ứng dung hợp pháp có thé gây hại khi bị lợi dụng
- Begin là các mau còn lại, không độc hại được xác minh qua VirusTotal.
1.3.2 Phạm vi nghiên cứu
Nghiên cứu hướng đến các ứng dụng được lưu trữ trên các cửa hàng ứng dụng đượccác nhà phát triển tải lên, cần các cửa hàng ứng dụng kiêm duyệt và cho phép ngườidùng tải về Bên cạnh đó, nghiên cứu sẽ tập trung vào phân tích và mô hình phát
hiện các ứng dụng Android độc hại thuộc các loại SMS Malware, Banking
Malware, Adware, Mobile Riskware và các ứng dụng bình thường Phạm vi nghiên
cứu sẽ không bao gồm các nền tang di động khác ngoài Android và các loại độc hại
khác.
Trang 14Chương2 CƠ SỞ LÝ THUYET
Activity Location Package Notification
View System Resource Telephony
Native C/C++ Libraries Android Runtime
Webkit OpenMAX AL Android Runtime (ART)
Media Framework OpenGL ES = Core Libraries
Blu Camera Sensors
- Hat nhân Linux: Nó cung cấp nhiều dịch vụ và thực hiện quản lý tài nguyên
cho các ứng dụng.
! Platform architecture Đường dẫn: https://developer.android.com/guide/platform
Trang 15- Hardware Abstraction Layer (HAL): Đây là lớp trung gian giữa hệ điều hành
Android và phần cứng của thiết bị Nó cung cấp các giao diện chuẩn cho việc
giao tiếp với phần cứng
- Moi trưởng chạy Android (Android Runtime): Nó là môi trường thực thi mã
của ứng dụng Trước phiên bản Android 5.0, hệ thống sử dụng DVM, sau đóđược thay thé bang Android Runtime Môi trường chạy Android biên dich và
thực thi mã nguồn Java của ứng dụng
- Native Libraries: Nó là được viết bằng C hoặc C++ và cung cấp một số chức
năng cần thiết cho ứng dụng
- Java API framework: N6 thực hiện việc cung cấp các API dé phát triển ứng
dụng.
- Cac ung dụng hệ thong (System apps): Với những ứng dụng này, nhà phat
triển có thé truy cập những chức năng chính từ ứng dụng của riêng họ Đồng
thời nó cũng hoạt động như ứng dụng dành cho người dùng.
2.1.2 Các thành phan của ứng dụng Android
Ứng dụng Android? được xây dựng bởi một số thành phần quan trọng thiết yếu, bao
gom:
- Activities: Day là các màn hình mà người dùng tương tác với ứng dụng va
trao đổi thông tin với nó
- Services: Day là các tién trinh chay ngam thực hiện tinh toán va thực hiện
một số chức năng khác
- Content Provider: Nó được sử dung dé làm việc với dit liệu, như trao đôi dữ
liệu giữa các content provider khác nhau, truy cập vào tập tin, cơ sở dữ liệu
và tài nguyên khác.
- Broadcast Receiver: Nó được sử dụng dé phan hồi các sự kiện thông báo
trong hệ thống, ví dụ như một tin nhắn mới.
? Application fundamentals Đường dẫn: https://developer.android.com/guide/components/fundamentals
Trang 16Bên cạnh đó, ứng dụng Android cũng có thể sử dụng các permissions để truy cậpmột số tài nguyên hệ thống hoặc phần cứng của thiết bị Những quyền này được
khai báo trong tệp tin AndroidManifest.xml và người dùng cần cấp phép truy cập
khi cài đặt ứng dụng hoặc khi sử dụng tài nguyên đó.
2.1.3 Phân loại ứng dung Android
Ứng dụng Android được thiết kế để thực thi trên nhiều nền tảng khác nhau, như
thực thi trực tiếp trên hệ điều hành, trên trình duyệt di động của thiết bị hoặc sửdụng cần sự kết hợp của cả hai Dựa vào hướng dẫn kiểm thử của OWASP chúng
ta có thé phân loại ứng dụng Android theo các biến thé như sau:
- Native App: là các ứng dụng được phat triển với bộ công cụ Android SDK dé
danh riéng cho hé diéu hanh
Các ứng dụng nay được phát triển và tuân thủ theo nguyên tắc thiết kế dànhriêng cho Android, có hiệu suất, độ tin cậy cao, có thể truy cập trực tiếp vàohầu hết các thành phần của thiết bị Các ứng dụng được phát triển bởi các
framework như Xamarin, Google Flutter, React Native được sử dụng các
API gốc của hệ thống và có hiệu suất tương đương với các ứng dụng gốc, và
đồng thời có thê sử dụng tắt cả các tính năng của thiết bị như GPS, máy ảnh,
hệ thống thông báo, Do vậy, chúng cũng có thể coi là Native App
- Web App: là các trang web được thiết kế nhìn giống như Native App, được
phát triển bằng HTMLS Các ứng dụng này bị hạn chế với các thành phan
của thiết bị, vì chúng chạy trong giới hạn của trình duyệt Các ứng dụng này
có thể có giao diện người dùng khác với một số nguyên tắc thiết kế của mộtnền tảng
- Hybrid App: là ứng dụng thực thi giống như Native App, nhưng phan lớn các
quy trình dựa trên công nghệ web, có nghĩa một phần của ứng dụng đượcchạy trong trình duyệt web được nhúng (WebView) Chúng có ưu điểm của
3 Mobile Application Taxonomy Đường dan:
https://mobile-security.gitbook.io/mobile-security-testing-guide/overview/0x04a-mobile-app-taxonomy
Trang 17cả 2 loại ứng dụng Native App và Web App Một số framework đề phát triển
Hybrid App: Apache Cordova, Framework7, jQuery Mobile,
Progressive Web App: giống như như Web App, nhưng khác theo một số
cách, ví dụ như nó có thể làm việc ngoại tuyến, có thé truy cập vào phancứng của thiết bị mà theo truyền thống nó chỉ có sẵn cho Native App
2.2 Các kỹ thuật Deep Learning được sử dụng
Trong việc phát hiện cũng như phân loại ứng dụng Android, học sâu đã trở thành một công cụ mạnh mẽ đê xử lý nhiêu bài toán phức tạp Học sâu là một lĩnh vực của
trí tuệ nhân tao tập trung vào việc phát hiện và huân luyện các mạng noron sâu
DNN để học và rút trích đặc trưng từ dữ liệu Có nhiều thuật toán học sâu được
được sử dụng phổ biến, nhưng trong nghiên cứu của mình, chúng tôi đã sử dụngmột số thuật toán phù hợp với dữ liệu của mình bao gồm:
2.2.1 Multi-Layer Perceptron (MLP)
Dinh nghĩa: Multi-Layer Perceptron (MLP) là một loại mang noron nhân
tạo dựa trên kiến trúc feedforward, dữ liệu chỉ truyền từ /ớp đầu vào qua các
lớp ẩn cho đến lớp dau ra* MLP bao gồm các noron được tô chức thành
nhiều lớp khác nhau, mỗi lớp có thé có nhiều noron, và các noron trong mỗilớp kết nối với các noron của lớp kế tiếp
Hoạt động: Mỗi nơron trong MLP nhận đầu vào từ các noron ở lớp trước
đó, tính toán tổng trọng số đầu vào, áp dụng một hàm kích hoạt phi tuyến (ví
dụ: sigmoid, ReLU) và truyền giá trị đầu ra tới noron ở lớp tiếp theo Quátrình này được lặp lại qua các lớp ấn cho đến khi đạt được đầu ra dự đoán.Quá trình huấn luyện MLP thường sử dụng thuật toán lan truyền ngược
(backpropagation) dé điều chỉnh các trọng số của mạng noron dựa trên sai số
dự đoán và đâu ra thực tê.
4 Multilayer perceptron Đường dan: https://en.wikipedia.org/wiki/Multilayer_perceptron
Trang 18Outputs inputs
Output Input Hidden Layer Layer Layer
Hình 2.2: Ví dụ minh họa 3 lớp trong mô hình MLP
- Ưu điểm”:
o MLP có thể học và biểu diễn các hàm phi tuyến, cho phép nó ánh xạ
từ không gian đặc trưng vào không gian đầu ra phức tạp
o MLP có thé xử lý các bài toán phức tap và học từ dit liệu không gian
cao.
o Nó được áp dụng rộng rãi trong nhiều lĩnh vực như CV, NLP và nhiều
bài toán khác.
- Nhược điểm:
o MLP có thể gặp overfitting nếu có quá nhiều nơron hoặc lớp an so với
dữ liệu huấn luyện
o Cần huấn luyện với lượng lớn dữ liệu dé đạt độ chính xác cao
2.2.2 Recurrent Neural Network (RNN)
- _ Định nghĩa: RNN là một kiến trúc mạng noron nhân tao được thiết kế dùng
dé xử lý dữ liệu có tính tuần tự như âm thanh, chuỗi văn bản hoặc chuỗi thời
gian RNN có thé lưu trữ thông tin trước đó và sử dụng chúng dé dự đoán cácquá trình tiếp theo trong chuỗi
- _ Hoạt động: RNN có một quá trình tái sử dụng thông tin bên trong mạng Nó
tái sử dụng các noron để truyền dữ liệu qua các bước thời gian và lưu trữthông tin trạng thái ấn Quá trình này cho phép RNN có khả năng nhớ các
5 Multi-Layer Perceptron Learning in Tensorflow Đường dẫn:
https://www.geeksforgeeks.org/multi-layer-perceptron-learning-in-tensorflow/
© Neural network models (supervised) Đường dẫn:
https://scikit-learn.org/stable/modules/neural_networks_ supervised.htm]l
10
Trang 19thông tin trong quá khứ và áp dụng chúng vào các dự đoán trong tương lai.
Mạng RNN có thể được huấn luyện bằng thuật toán lan truyền ngược thông
qua các bước thời gian.
y vít-2) yit-1) yt) yit+t) yit+2)
o RNN có thé không mô hình hóa được mối quan hệ xa giữa các thành
phần trong chuỗi dữ liệu
o Mạng RNN có xu hướng mất đi thông tin lâu dài khi quá trình lan
Trang 202.2.3 Gated Recurrent Unit (GRU)
- Dinh nghĩa: GRU là một biến thé của RNN dùng dé giảm mat mát thông tin
khi xử lý các chuỗi dài GRU sử dụng các công (gates) đề điều khiển luồng
thông tin và lưu trữ thông tin quan trọng trước đó.
- _ Hoạt động: GRU cũng có cấu trúc lặp lại như RNN, nhưng nó sử dụng hai
công: update gate và reset gate Update gate quyết định thông tin nào sẽ đượclưu trữ từ trước đó và reset gate quyết định thông tin nào sẽ được ghi dé lêntrạng thái ân hiện tại Điều này giúp GRU duy trì thông tin quan trọng trongmỗi bước lặp và giảm thiểu mat mát thông tin
- Ưuđiểm:
o GRU giảm thiểu van đề mat mát thông tin
o_ Nó có thé học các mô hình phức tạp hơn so với RNN và đạt hiệu suất
tốt hơn trong nhiều tác vụ NLP
o GRU có it tham số hơn so với LSTM, do đó nó tiết kiệm thời gian và
tài nguyên huấn luyện.
- Nhược điểm:
o_ Khi huấn luyện GRU có thê xảy ra ordering dependence và long-term
dependency trong ditt liệu.
o GRU có thé vẫn gặp van đề về mat mát thông tin trong các chuỗi rất
đài.
2.2.4 Convolutional Neural Network (CNN)
- Dinh nghĩa: CNN là một kiến trúc mạng noron nhân tạo được thiết kế đặc
biệt cho xử lý và phân tích dữ liệu không gian như hình ảnh và âm thanh Nó
sử dụng các lớp tích chập (convolutional layers) để học các đặc trưng mộtcách tự động ở các mức độ khác nhau của dữ liệu đầu vào
- Hoạt động: CNN sử dụng các bộ lọc (filters) để thực hiện phép tích chập
trên dữ liệu đầu vào Các bộ lọc này trượt qua toàn bộ không gian đầu vào và
tạo ra các feature maps Sau đó, các feature maps nảy được thông qua các
12
Trang 21hàm kích hoạt phi tuyến và các pooling layers để giảm kích thước và tăng
cường các đặc trưng quan trọng Cuối cùng, các đặc trưng đã học được đượcđưa qua các fully-connected layers để đưa ra các dự đoán cuối cùng
Convolutions Subsampling Convolutions Subsampling Fully connected
Hình 2.4: Ví dụ minh họa cách hoạt động của mô hình CNN?
- Uudiém:
o CNN có khả năng học tự động và trích xuất các đặc trưng hữu ích từ
dir liệu.
o_ Nó có thể xử lý dữ liệu không gian lớn và hiệu quả trong việc nhận
dạng hình ảnh, phân loại và phân tích âm thanh.
o CNN giảm thiêu số lượng tham số cần thiết so với mạng noron tiêu
chuẩn, giúp tiết kiệm thời gian và tài nguyên huấn luyện
- Nhược điểm:
o CNN không có khả năng giải quyết van đề phụ thuộc thứ tự và ngữ
cảnh trong dữ liệu chuỗi.
o Không thé áp dụng trực tiếp cho đữ liệu có cấu trúc không gian khác
như chuỗi thời gian.
2.2.5 Long Short-Term Memory (LSTM)
- Dinh nghĩa: LSTM là một kiến trúc mang noron nhân tạo được thiết kế dé
giải quyết việc mat mát thông tin xa trong các chuỗi dữ liệu dài Nó được
9 “Thuật toán CNN là gì? Cấu trúc mạng Convolutional Neural Network” Đường dẫn:
https://topdev.vn/blog/thuat-toan-cnn-convolutional-neural-network/
13
Trang 22thiết kế trên cơ sở của RNN và sử dụng các công (gates) dé điều chỉnh việc
lưu trữ và truyền thông tin trong mạng
- Hoat động: LSTM sử dung các cổng đầu ra (output gate), công cập nhật
(update gate) và cổng quên (forget gate) để kiểm soát quy trình truyền tảithông tin trong mạng Các công này cho phép LSTM lưu trữ thông tin quantrọng từ trước đó và quyết định thông tin nào sẽ được chuyền tiếp và thông
tin nào sẽ bị quên đi Quá trình lan truyền ngược thông qua các công này
giúp LSTM học và lưu trữ thông tin xa trong chuỗi dữ liệu.
hại
Hình 2.5: Mô hình LSTM!°
- Ưuđiểm:
o Giải quyết được việc mat mát thông tin xa trong các chuỗi dữ liệu dài
o Có khả năng học và biểu dién các mô hình phức tạp hơn so với RNN
o LSTM duoc sử dụng rộng rãi trong nhiều lĩnh vực khác nhau như
NLP, dịch máy và nhiều tác vụ liên quan đến chuỗi thời gian
- Nhược điểm:
o Có số lượng tham số lớn và yêu cầu nhiều tài nguyên dé huấn luyện
o_ Việc huấn luyện LSTM có thể chậm và phức tạp hơn so với mạng
nơron tiêu chuẩn
2.2.6 Bidirectional Long Short-Term Memory (BiLSTM)
- Dinh nghĩa: BiLSTM là một biến thé của LSTM, được phát triển dé xử lý
thông tin từ cả quá khứ và tương lai trong một chuỗi dữ liệu Nó kết hợp hai
10 “How LSTM networks solve the problem of vanishing gradients” Đường dẫn:
https://medium.datadriveninvestor.com/how-do-Istm-networks-solve-the-problem-of-vanishing-gradients-a6784971a577
14
Trang 23LSTM độc lập, một theo hướng chuỗi từ trái sang phải và một theo hướng từ
phải sang trái.
- _ Hoạt động: Mạng BiLSTM chia chuỗi đữ liệu thành hai phan, một phan từ
đầu đến cuối và một phần từ cuối về đầu Mỗi phần được đưa vào một LSTMđộc lập, và đầu ra của cả hai LSTM được kết hợp lại dé tạo ra kết quả dựđoán cuối cùng Quá trình này làm cho BiLSTM có cái nhìn toàn diện về dữ
liệu từ cả hai phía và tạo ra dau ra phụ thuộc vào ca quá khứ va tương lai.
outputs
backward layer
forward
layer
inputs
- Uudiém:
o_ BiLSTM có khả năng nhận biết và sử dụng lại thông tin từ cả quá khứ
và tương lai trong chuỗi dữ liệu.
o Nó thích hợp cho các tác vụ yêu cầu phân tích ngữ cảnh toàn điện như
dịch máy, gán nhãn chuỗi và phân tích tình cảm.
o BiLSTM có thé giảm thiểu sự phụ thuộc vào ngữ cảnh trong dữ liệu
so với LSTM.
- Nhược điểm:
o BiLSTM có số lượng tham số lớn hơn so với LSTM, do đó đòi hỏi
nhiều tài nguyên hơn đề huấn luyện
o_ Quá trình huấn luyện BiLSTM có thé phức tạp hơn so với LSTM vì
nó cân xử lý cả hai hướng của chuối dữ liệu.
1! “Differences Between Bidirectional and Unidirectional LSTM” Đường dẫn:
https://www.baeldung.com/cs/bidirectional-vs-unidirectional-lstm
15
Trang 242.2.7 Convolutional Neural Network - Multi-Layer Perceptron
(CNN-MLP)
- Dinh nghĩa: CNN-MLP [17] là một mô hình kết hop giữa kiến trúc mạng
nơron tích chập và mạng noron da tầng Nó sử dụng lớp tích chập dé trích
xuất các đặc trưng từ dữ liệu và sau đó sử dụng các lớp kết nối day du dé xử
lý đặc trưng đã trích xuất và đưa ra dự đoán cuối cùng
- _ Hoạt động: CNN-MLP bắt đầu bằng các lớp tích chập và lớp gộp dé trích
xuất đặc trưng từ không gian dữ liệu Sau đó, chuyển các đặc trưng đã tríchxuất được qua các lớp kết nối day đủ dé xử lý và đưa ra dự đoán cuối cùng.Kiến trúc này cho phép mô hình học các đặc trưng hữu ích từ không gian dữliệu và áp dụng chúng dé thực hiện các tác vụ như phân loại hoặc nhận dạng
- Uudiém:
o CNN-MLP kết hợp khả năng trích xuất đặc trưng hữu ích của CNN
với khả năng mô hình hóa dữ liệu phi tuyến của MLP
o Nó có khả năng xử lý không gian dữ liệu lớn và phân loại chính xác
trong nhiều tác vụ như nhận dạng đối tượng, phân loại hình ảnh và
NLP.
- Nhược điểm:
o CNN-MLP có số lượng tham số lớn và yêu cầu nhiều tài nguyên dé
huấn luyện
o Quá trình huấn luyện có thể chậm và phức tạp hơn so với mạng nơron
tiêu chuẩn do kết hợp cả hai kiến trúc CNN và MLP
2.3 Tensorflow
2.3.1 Giới thiệu Tensorflow!?
TensorFlow là một thư viện mã nguồn mở và một nền tảng tính toán số hàng đầu
trong lĩnh vực trí tuệ nhân tạo TensorFlow cung cấp khả năng xử lý tính toán số
học một cách mạnh mẽ và linh hoạt đề triển khai các mô hình máy học phức tạp.
12 TensorFlow basics Đường dẫn: https://www.tensorflow.org/guide/basics
16
Trang 252.3.2 Một số khái niệm
- Tensor là một cấu trúc dir liệu nhiều chiều, tương tự như một ma trận hoặc
một mảng nhiều chiều Nó là đơn vị cơ bản dé lưu trữ và truyền dữ liệu trongquá trình tính toán TensorFlow sử dụng các Tensor đề biểu diễn dữ liệu đầu
vào, trọng số mô hình và kết quả dự đoán
- Graph là một chuỗi các phép tính (operations) trên các Tensor Đồ thị biểu
diễn quá trình tính toán và quan hệ giữa các Tensor Graph cung cấp mộtcách tối ưu dé thực hiện tính toán song song trên các thiết bi phần cứng như
CPU hoặc GPU.
- Variable là một loại Tensor có thé được thay đổi giá trị trong khi huấn luyện
mô hình Chúng được sử dụng dé lưu trữ các trọng số của mô hình và đượccập nhật trong quá trình tối ưu hóa
2.3.3 Cài đặt Tensorflow
- Dé cài đặt, ta sử dụng lệnh: pip install tensorflow
- Dé bat đầu ta thực hiện: import tensorflow as tf
- Tao CT Tensorflow chia thanh 2 phan
o Construction phase: Xây dung mô hình tính toán
o Execute phase: Chạy mô hình tính toán
2.4 Công cụ phân tích ứng dung Android
2.4.1 Androguard
- Androguard là một thư viện Python mạnh mẽ được dùng để thực hiện việc
phân tích và kiểm tra ứng dụng di động Android Nó hỗ trợ một số chức năng
dé thao tác với file APK và dữ liệu Android nhằm hiểu rõ cấu trúc, hành vi
và các thành phần của ứng dụng Android
- Cai đặt Androguard, chúng ta sử dụng lệnh pip install androguard Sau khi
cài đặt thành công, ta có thể import Androguard vào script Python của mình
đê sử dụng các chức năng của nó.
17
Trang 26- Một số lệnh co bản
from androguard.core.bytecodes import apk
# Đường dan tới file APK
from androguard.core.bytecodes import dvm
# Lay mã nguồn Smali
Trang 27for method in methods:
# In ra tên phương thức
prừm(method.get_name())
2.4.2 Frida Tools
- Frida là một bộ công cu dùng để hỗ trợ kiểm tra các ứng dụng Android, đặc
biệt là các ứng dụng loại Native App Frida cho phép chúng ta Intercept việc
truyền dit liệu va inject code của chúng ta vào process đang chạy Ưu điểm
của việc dùng Frida so với các phương pháp patch khác là Frida có tính linh
hoạt cao, đơn giản, dé thay đổi code và tốn ít công sức hơn việc phải patchứng dụng va build lại rất nhiều
- Cài đặt frida trên máy tính bằng lệnh:
pip install frida
- Cai đặt frida-server trên thiết bi Android
o Chọn phiên ban frida-server phù hợp, chúng ta cần biết abi của thiết bi
Android bang lệnh:
adb shell getprop ro.product.cpu.abi
o Tải xuống frida-server cho nền tang Android tương ứng từ trang web:
https://github.com/frida/frida/releases
o Sao chép frida-server vao thư mục /data/local/tmp của Android
adb push <đường dẫn file server tải ve> /data/local/tmp/frida
o Cấp quyên thực thi cho tệp
adb shell "chmod +x /data/localtmp/#rida”
o Khởi chạy frida-server
adb shell "su ; /data/ocal/tmp/frida"
- Kiểm tra frida có hoa động không bang cách sử dung frida-ps -U dé kiểm tra
một số tiến trình đang chạy trên thiết bị
19
Trang 282.4.3 DroidBot
- DroidBot [18] là một công cụ tạo ra các sự kiện đầu vào (input events) dé
kiểm thử ứng dụng Android một cách nhẹ nhàng Nó có thé gửi các sự kiện
ngẫu nhiên hoặc theo kịch bản (scripted) tới ứng dụng Android, giúp việc
kiểm thử nhanh hơn và tạo ra đồ thị chuyển đổi giao diện người dùng (UItransition graph - UTG) sau quá trình kiểm thử
Một số ưu điểm của DroiBot:
o DroidBot không yêu cầu sửa đổi hệ thống hoặc instrument ứng dụng
để tạo ra các sự kiện đầu vào Điều này giúp giảm thời gian và công
sức câu hình hệ thống và các ứng dụng
o Các sự kiện đầu vào của DroidBot dựa trên mô hình GUI của ứng
dụng thay vì hoàn toàn ngẫu nhiên Điều này giúp tạo ra các sự kiện
có tính tương quan với giao diện người dùng thực tế
o DroidBot cho phép tùy chỉnh các sự kiện đầu vào cho các giao điện
người dùng cụ thể Chúng ta có thé viết mã dé kiểm soát các sự kiệnđầu vào dựa trên trạng thái của ứng dụng và các yêu cầu kiểm thử cụthể,
o_ DroidBot có thé tạo ra cau trúc giao diện người dùng (UI structures)
và truy vết phương thức (method trace) dé phân tích Nó giúp ngườidùng xác định được cấu trúc và hành vi của ứng dụng trong quá trìnhkiểm thử
Các bước cài đặt:
o_ Đề cài đặt DroidBot chúng ta thực hiện các lệnh sau:
git clone https://github.com/honeynet/droidbot git
cd droidbot/
pip install -e
o Chúng ta có thé sử dung lệnh droidbot -h dé thực hiện kiểm tra ứng
dụng đã được cài đặt thành công chưa.
20
Trang 29Chương 3 CÔNG TRINH LIÊN QUAN
Ngày nay, việc mã hóa các ứng dụng độc hại dé biến chúng thành các biến thé có
tính năng từ nhiều họ mã độc khác nhau đặt ra một thách thức lớn trong quá trìnhphát hiện và phân loại ứng dụng độc hại Trong phần này, chúng tôi sẽ thực hiệnphân tích và đánh giá một số hướng nghiên cứu trong và ngoài nước có nội dungliên quan đến đề tài Chúng tôi sẽ xem xét các ưu điểm và hạn chế của các kỹ thuậtphân loại dựa trên phân tích tĩnh và động dé phát hiện ứng dụng độc hại Ngoài ra,
chúng tôi cũng sẽ xem xét một số công trình liên quan với đề tài phát hiện hoặc
phân loại các ứng dụng độc hại dựa trên kỹ thuật xử lý hình ảnh.
3.1 Dựa trên kỹ thuật phân tích tinh
Có nhiều hướng tiếp cận trong lĩnh vực máy học cho việc phát hiện ứng dụng độnghại sử dụng các features phân tích tĩnh Các đặc trưng tĩnh được trích xuất dễ dàng
từ các tệp APK với ưu điểm lớn nhất là không tốn nhiều thời gian, nhanh chóng và
có thể mở rộng Năm 2017, một trong những hướng tiếp cận trong lĩnh vực này đãđược Suarez cùng các cộng sự [19] đề xuất trong DroidSieve - là một hệ thống phânloại ứng dụng độc hại sử dụng phân tích tĩnh dé trích xuất đặc trưng của ứng dụngAndroid độc hại, bao gồm API calls, code structure, permissions va components,với một số ưu điểm nổi bậc là nhanh, có thé mở rộng, độ chính xác cao và có khảnăng chống xáo trộn (trong bài toán nhận dạng họ ứng dụng độc hại bị xáo trộn,
nhóm tác giả đã đạt được accuracy 99.26% trên tập dữ liệu thực nghiệm của họ).
Duc cùng các cộng sự [20] đã đề xuất framework NADM dé phat hiện ứng dungđộc hại trên Android bằng cách áp dung tat cả các đặc trưng tĩnh của một ứng dụngvào phân tích học sâu vào năm 2018 NADM trích xuất các đặc trưng tĩnh bao gồm
requested permission, application component, intent filter, feature hardware, API
request, used permission, url trong tập 129,013 mẫu dé liệu, và sử dung mô hình
học sâu MLP dat được hiệu suất của Fl-score lên đến 92.3% Năm 2019, Nawaycùng cộng sự [21] đã sử dụng mạng noron sâu nhằm tăng khả năng phát hiện ứngdụng độc hại trên Android bang cách trích xuất các feature từ tệp AndroidManifest
21
Trang 30và tệp java Cụ thể, bộ đữ liệu gồm các features như: permission combinations, API
calls, intent filters, valid certificates và các thành phần của APK files trong asset
folder, được đưa vào bộ phân loại mạng DNN dé phan loai tng dung thanh lanh
tính hoặc độc hai Trên tập dữ liệu gồm ứng dụng lành tính và ứng dụng độc hại đã
đề xuất, bộ phân loại mạng DNN đã dé xuất đạt độ chính xác 95.31% Trong nghiên
cứu gần đây, Rahali và các cộng sự [4] cũng đã tạo bộ dữ liệu phân tích tinh không
lồ (400.000 mẫu Android) được dán nhãn và chứa nhiều feature tĩnh từ file
AndroidManifest như permissions, intents actions, intents categories, Dong thoi,nhóm tác giả đã dé xuất và phát triển một hệ thống phát hiện ứng dụng Android độchại dựa trên học sâu và đạt hiệu suất cao với độ chính xác 93.36%
3.2 Dựa trên kỹ thuật phân tích động
Khác với kỹ thuật phân tích tĩnh, kỹ thuật phân tích động mặc dù tốn nhiều thờigian để chạy, nhưng nó có thê phát hiện được một số hành vi độc hại ngay cả khi
khi mã của nó bị xáo trộn Trong lĩnh vực này, vào năm 2016, Dash và cộng sự [22]
đã giới thiệu DroidScribe, một hệ thống phân loại các mẫu ứng dụng Android thành
các loại ứng độc hại DroidScribe sử dụng các hành vi trong quá trình chạy như theo
dõi các cuộc gọi hệ thống, truy cập tệp hoặc tài nguyên mạng va giao tiếp binder dé
xây dựng các đặc trưng động Bên cạnh đó, tác giả đã cải tiến bộ phân loại SVM
bang Conformal Prediction [23] dé nâng cao độ chính xác, từ 84% lên 94%, ngay cả
trên các mẫu hành vi hiếm Năm 2018, Martin và cộng sự [24] đã phát triển
CANDYMAN, một công cụ phân loại các họ ứng dụng Android độc hại bằng cáchkết hợp phân tích động và chuỗi Markov Quá trình phân tích động trích xuất
feature của ứng dụng độc hại dưới dạng một chuỗi các trạng thái và chuỗi Markov
cho phép mô hình hóa chuyền tiếp giữa các trạng thái của chuỗi, chúng sẽ được sử
dụng làm tinh năng cho bộ phân loại dé phân biệt 24 họ của 4,442 mẫu ứng dụng
Android độc hại từ bộ dữ liệu Drebin Thông qua kết quả thực nghiệm, tác giả đã
đạt được hiệu suất precision là 81.8% trên tập dữ liệu này Vào năm 2019, Dinh vàcộng sự [25] đã trình bày một phương pháp mới dé phat hién phan mềm độc hai dựa
22
Trang 31trên hành vi, thông qua việc tăng cường quá trình lựa chọn đặc trưng Đầu tiên, họ
thực hiện phân tích toàn diện hành vi của các ứng dụng trong môi trường Cuckoo
sandbox, sau đó tìm kiếm và trích xuất những đặc trưng cần thiết để tạo ra tập dữ
liệu cho việc huấn luyện mô hình phân loại, nhăm nhận diện chính xác các ứng
dụng độc hại Kết quả thực nghiệm đạt được độ chính xác cao nhất với 95.49% trên
tập dữ liệu chứa 2,068 mẫu phần mềm độc hại thuộc 8 loại khác nhau Alzaylaee và
cộng sự [26] cũng đã phát triển DL-Droid vào năm 2020, nó là một hệ thống họcsâu dé phát hiện các ứng dụng Android độc hại thông qua phân tích động bằng cách
sử dụng đầu vào có trạng thái, thực hiện với hơn 30.000 ứng dụng (lành tính và độchại) trên các thiết bị thực Năm 2021, Keyes và cộng sự [l6] đã giới thiệuEntropLyzer dé thực hiện phân tích động các mẫu ứng dụng độc hại trên nền tangAndroid trong tập dữ liệu CCCS-CIC-AndMal2020 Tập dữ liệu này bao gồm 12danh mục phần mềm độc hai và 147 ho ứng dụng độc hại trên nền tảng Android, và
sử dụng sáu loại đặc trưng bao gồm memory, API, network, battery, logcat, và
process Thực nghiệm cho thấy, EntropLyzer đạt hiệu suất cao nhất khi sử dụng bộ
phân loại Decision Tree, với Fl-score dat 98.3% trên bộ dữ liệu được trích xuất
này.
3.3 Dựa trên kỹ thuật phân tích kết hop
Đề đề xuất một phương pháp có thể phát hiện được một số hành vi độc hại ngay cả
khi mã của nó bị xáo trộn, đồng thời trích xuất nhiều thông tin tĩnh thu thập từ file
APKs mà bỏ qua các hành vi né tránh khi chạy trên môi trường sandbox, các nha
nghiên cứu và bảo mật đã phát triển một phương pháp khác là kết hợp hai quá trìnhphân tích tĩnh và phân tích động Trong đề tài này, Ferrante và cộng sự [27] đã dựa
trên frequency của opcodes, và kết quả của giám sát của memory, CPU, network,
thống kê của system calls, để đánh giá hiệu quả của phương pháp phân tích tĩnh,phân tích động và phương pháp kết hợp trong việc phát hiện ứng dụng tống tiền di
động Một nghiên cứu khác, Lashkari và cộng sự [28] đã xây dựng bộ dữ liệu phân
tích ứng dụng độc hại đã được gán nhãn có tên là CICAndMal2017 bao gồm luồng
23
Trang 32thực thị mạng, logs, api/sys calls, memory dumps và thống kê các tài nguyên của 42
họ malware Họ phân tích tập dữ liệu đã tạo, đồng thời đào tạo và đánh giá chúng
thông qua ba thuật toán học máy phô biến: RF, KNN và DT Năm 2019, Taheri
cùng cộng sự [29] đã cung cấp phần thứ 2 của bộ đữ liệu CICAndMal2017 bao gồm
permission và intent cho static features, API calls cho dynamic features Va ho cũng
dé xuất bộ phân tích Android hại hai lớp dựa trên các features tĩnh và động, cải
thiện các phân tích luồng mạng trước đây của chúng tôi bằng cách nối thêm các mốiquan hệ tuần tự n-gram được trích xuất của lệnh gọi API Năm 2020, Chaulagaincùng cộng sự [14] cũng đã xây dựng bộ phân loại kết hợp dựa trên DNN và sử dụng
các features của phân tích tĩnh và phân tích động cho việc kiêm tra bảo mật của các
ứng dung Android Tác gia thu thập API-calls (phân tích tinh) có trong mã ứng
dụng dé huấn luyện LSTM classifier (hoặc biến thé của nó), thu thập system-call
(phân tích động) do ứng dụng gọi trong runtime và đào tạo LSTM classifler khác,
cuối cùng hợp nhất kết quả của 2 model thông qua sơ đồ tổng hop Như vậy bỏ qua
hạn chế về thời gian phân tích, chúng ta thấy răng phương pháp kết hợp kỹ thuậtphân tích tĩnh và động đã tích hợp được hai ưu điểm của kỹ thuật phân tích tĩnh vaphân tích động, trích xuất đầy đủ thông tin đặc trưng của các ứng dụng Android độchại góp phần nâng cao độ chính xác trong việc phát hiện và phân loại các ứng dụng
độc hại.
3.4 Dựa trên kỹ thuật xử lý ảnh
Vì các phương pháp phân tích thường có nhiều mặt hạn chế riêng như đã được đềcập trước đó nên có nhiều phương pháp phát hiện ứng dụng độc hại cũng được cácnhà nghiên cứu đề xuất, bên cạnh đó có thể kế đến là biểu diễn hình ứng dụngAPKs thành hình ảnh, và sử dung các mô hình phô biến trong lĩnh vực CV dé họctập và phân loại Với hướng nghiên cứu này, chúng ta tạm chia thành 2 loại: chuyênđổi thành hình ảnh xám và hình ảnh màu Một cách thông thường dé tạo hình ảnhthang độ xám là coi byte của thành phan trong file APK dưới dạng giá trị pixel [9]hoặc chỉ chuyên đổi tệp Manifest thành permission vectors Các công trình khác sử
24
Trang 33dụng biểu diễn ảnh màu thường dựa trên tệp dex như MalNet [30] hoặc dựa trên
phân tích tệp DEX [31], hoặc kết hợp các file nguồn có trong APKs, được Sun và
cộng sự [5] đề xuất trong công trình của mình
3.5 Tổng kết
3.5.1 Vấn dé còn tồn tại
Một số van đề còn tôn tại trong các nghiên cứu đã dé cập ở trên:
- Đối với bài toán dựa trên kỹ thuật phân tích, một số công trình (ví dụ như
[23] [29]) còn thiếu các tính năng quan trọng dé xây dung bộ phan loại dẫn
đến không đạt được độ chính xác cao
- Đối với bài toán phát hiện và phân loại ứng dụng độc hại dựa trên hình ảnh,
các giải pháp đề ra không đáp ứng với sự phát triển của công nghệ hiện nay.Ngày nay có các ứng dụng đi động phần lớn được tạo ra bởi các framework
như Flutter, Xamarin, React Native và phần nhỏ các ứng dụng được phát
triển trên ngôn ngữ Java và Kotlin như trước kia Do vậy,
o Với hướng chuyên đổi một loại file DEX thành hình ảnh, trong
framework Flutter, Xamarin các hàm được định nghĩa trong các thư
viện, một file DEX chưa đủ dé nhận diện được ứng dụng độc hại
o_ Với hướng chuyên đổi nhiều file như [5], đầu tiên các thư viện trong
các framework dùng phần mở rộng là khác nhau Trên thực tế, trongcác tệp APKs không chỉ chứa chứa một file so hoặc dIl duy nhất, dovậy hướng tiếp cận lay 1 file so hay dll dé làm 1 thành phan trongfile ảnh cũng không thực tế
- C6 ít nghiên cứu đối với bài toán phân loại loại ứng dụng Android độc hại
trong lĩnh vực phân loại tệp APK.
- Nhiều số công trình (như công trình [20] [24] [26]) có không cung cấp cách
thức rõ ràng dé kiêm tra và thực nghiệm kết quả phân loại tệp APK
- _ Các công trình phân loại tệp APK thường gặp khó khăn khi phải phát hiện
các tệp APK độc hại mới và chưa biết đến trước đó Các tác giả tệp APK độc
25
Trang 34hại liên tục đổi mới các kỹ thuật đề tránh việc phát hiện Điều này đòi hỏi cáccông trình phát hiện, phân loại tệp APK độc hại phải liên tục cập nhật dé tiépcận xu hướng mới nhằm duy trì hiệu suất tốt.
3.5.2 Vấn đề cần tập trung, nghiên cứu giải quyết
Dé nâng cao hiệu suất phát hiện, phân loại ứng dụng APK độc hại chúng tôi tập
trung thực hiện:
- Xây dựng framework phân tích ứng dụng Android độc hai để trích xuất
nhiều feature phù hợp cho các mô hình máy học
- Tim hiểu và xây dựng mô hình học sâu phù hợp với nhiều loại dit liệu phân
tích ứng dụng Android.
- _ Tích hợp hệ thống phân tích và phát hiện ứng dụng Android độc hai với file
APK đầu vào
26
Trang 35Chương 4 FRAMEWORK ĐÈ XUẤT
4.1 Mô hình tông quan
Before/After
Emulator x86 Reboot Data
Hình 4.1: Mô hình tổng quan mô tả hoạt động của các thành phan trong
AndroAnalyzer framework
AndroAnalyzer là một framework xác định các ứng dụng Android độc hại bằng các
đặc trưng tĩnh và động kết hợp với bộ phân loại học sâu Cụ thể, framework được
dé xuất của chúng tôi trong hình 4.1 bao gồm bốn giai đoạn chính:
- Phân tích, tríh xuất đặc trưng tĩnh và động: Ở giai đoạn này,
AndroAnalyzer thực hiện phân tích tĩnh và phân tích động để tự động tạo racác tệp lưu trữ đặc trưng cụ thể
- Tién xử lý đặc trưng: Giai đoạn này sử dụng thành phan Feature
Preprocessing dé biểu diễn các vecto đặc trưng từ các tệp được xây dựng ở
bước trước đó Các vectơ này sau đó được lưu vào các tệp CSV.
- Lựa chọn đặc trưng: Tập hợp những vecto đặc trưng chuyên đổi được lọc
bằng thuật toán Random Forest dé loại bỏ một số đặc trưng không cần thiết,
từ đó giảm thiểu quá trình huấn luyện và đánh giá bộ phân loại
- _ Phát hiện hoặc phân loại loại ứng dụng độc hại: AndroAnalyzer thực hiện
huấn luyện và đánh giá bộ phân loại CNN-MLP thông qua các vectơ đặc
trưng từ bước lựa chọn đặc trưng Trong bài toán phát hiện ứng dụng
Android độc hại, AndroAnalyzer dự đoán một tệp APK đầu vào là có phải làứng dụng độc hại không Đối với nhiệm vụ phân loại loại loại ứng dụngAndroid độc hại, AndroAnalyzer xác định một tệp đầu vào là một trong
27
Trang 36trong số năm loại sau: Mobile riskware, Adware, SMS Malware, Banking và
Benign.
Chi tiết về bốn thành phan chính của AndroAnalyzer, bao gồm Feature Extraction,
Feature Preprocessing, Feature Selection và Deep Learning Classifier, được trình
bày trong các mục tiếp theo
4.2 Feature Extraction
Feature Extraction là thành phan quan trọng của AndroAnalyzer, chịu trách nhiệm
thực hiện cài đặt file APK trên thiết bị phân tích Đồng thời, thực thi kịch bản phântích tĩnh và động dé ghi nhận thông tin các đặc trưng được cho là cần thiết được
tham khảo bởi các công trình nghiên cứu trước đó như memory, battery, network,
process, logcat vào các file riêng biệt Chúng tôi xây dung Feature Extraction với
ngôn ngữ chính là NodeJS và sử dụng ngôn ngữ Python để viết các kịch bản cho
các nội dung phân tích Feature Extraction bao gồm 2 bộ phận: Static Feature
Extraction và Dynamic Feature Extraction, chúng tôi sẽ trình bày chúng ở bên dưới:
4.2.1 Static Feature Extraction
Android Package Kit (APK) là một kho lưu trữ zip chứa một số thành phan quan
trọng, bao gồm AndroidManifest.xml, classes.dex, resources, va other folders Tép
AndroidManifest.xml chứa nhiều features tĩnh, vi vay Static Feature Extractionthực hiện dịch ngược file APK và trích xuất một số features cần thiết như làactivities, services, intents bang cách sử dung thư viện Androguard Bên cạnh đó,chúng tôi sử dụng DIDroid [4] làm cơ sở tham khảo dé tạo kịch bản trích xuất cácfeature tĩnh nhằm tạo ra một file text lưu trữ thông tin về các feature này Cụ thé,
các tinh năng được trích xuất từ tệp AndroidManifest.xml bao gồm:
- Activities là thành phan chính hiền thị giao diện người dùng
- Services là thành phần dùng dé thực hiện các tiến trình nền mà người dùng
không nhìn thấy được
- Receivers/providers cho phép các thành phần ứng dung giao tiếp với nhau
một cách an toàn.
28
Trang 37- Intents actions và Intents categories là các thành phan chỉ ra loại hành động
mà người dùng đang yêu cầu thực hiện
- Permissions là thành phần dùng để kiểm soát quyền truy cập vào các tài
nguyên được bảo vệ bởi một ứng dụng.
- Meta-data là dữ liệu mô tả dữ liệu khác như tên của ứng dung, thông tin
phiên bản.
Ngoài các đặc trưng tĩnh đã đề cập, chúng tôi tính toán số lượng các tài nguyên
khác xuất hiện trong các tệp APK, chăng hạn như biéu tuong, 4m thanh, video vahinh anh Diéu nay được thực hiện vi, theo Rahali và cộng sự [4], các tài nguyênnày có thé được dùng dé phân tích tính nhất quán của một ứng dụng và nó có thégiúp chúng ta xác định mã nguồn của ứng dụng, hoặc các mã độc hoặc các lỗ hồng
an toàn có thể xuất hiện trong ứng dụng Cuối cùng, các đặc trưng tĩnh bao gồmactivities, services, receivers/providers, permissions, metadata, va số lượng của các
tài nguyên khác trong file APK.
4.2.2 Dynamic Feature Extraction
Thanh phan này được thiết kế dé theo dõi và ghi nhận các tài nguyên hệ thống cũngnhư là các API call mà ứng dụng sử dụng nhằm trích xuất đặc trưng động của fileAPKs như memory, battery, network traffic, Trong phần phân tích động này,
chúng tôi thiết kế dựa trên Entroplyzer framework [16] nhằm xây dựng bộ phân tích
động có khả năng trích xuất các feature động trước và sau khi reboot trình giả lập.Trong hình 4.1, mô tả cơ bản quá trích xuất đặc trưng động của file APKs mà
AndroAnalyzer của chúng tôi sử dụng Sau khi thực hiện phân tích tĩnh hệ thống
thu được static data, va tiép tuc thuc hién cai dat file APK trén thiét bi emulator, sau
đó ứng dung được thực thi tự động theo kịch bản cua Dynamic Feature Extraction
Server và trích xuất thông tin cũng như là số liệu về API call, process, logcat,
battery status, network traffic, memory usage trong quá trình thực thi ứng dụng Déthực hiện việc trích xuất các đặc trưng động này, hệ thong đã dùng Frida Tools và
DroidBot làm công cụ dé xây dựng kịch bản kiểm tra trong quá trình phân tích của
Dynamic Feature Extraction Tiép tục, nó ra lệnh reboot thiết bi emulator, dé trích
29
Trang 38xuất lại các feature khi thực thi lại ứng dụng sau khi reboot, đây là một bước quantrọng để có thể nhận biết sự biến đổi của các thông số hệ thống khi thực thi ứng
dụng Kết quả ta có hai bộ dữ liệu riêng biệt được tạo ra, một là trước khi reboot
trình mô phỏng va một là sau đó Chúng ta gọi chúng lần lượt là before reboot data
và after reboot data, hai phan dữ liệu này cho chúng ta thay được tin chỉ tiết có giátrị về những thay đổi của ứng dụng độc hại trước và sau khi trình mô phỏng reboot
Lý giải cho việc ghi nhận những thay đổi trước và sau khi khởi động lại thiết bị,
Keyes và các cộng sự [16] cho rằng việc này giúp hiểu rõ hơn về hành vi của ứng
dụng độc hại, phương pháp này cũng có thê hữu ích trong việc xác định hành vinguy hiểm tiềm ấn, cũng như phát hiện ra bat kỳ tiến trình đáng ngờ nào ma ứngdụng độc hại có thé thực hiện
4.3 Feature Preprocessing
Static Data Feature Preprocessing
> Cres € RM
Cy & RS”
ermissions, actions, categories,
P - 8 Encode > gay, € RO?
Before Reboot Data Lt Ca er LY
| api-call —L—> Encode ——>_ Cupi,,,,, C RTM
CSV File rocess, logcat, battery status, oe 5
là ty > Statistics >| Caynane & Re
network traffic, memory usage
36 318
After Reboot Data >) Cam © R > Caynamic € R
rocess, logcat, battery status, Pa 36
P ~ y > Statistics > Ca, € Re
network traffic, memory usage š
api-call > Encode > Cam „CC RI
Hình 4.2: Mô hình hoạt động của thành phần Feature PreprocessingĐây là một thành phần thực hiện trích xuất và biểu diễn các đặc trưng tinh và động
đã được thu thập thành vector dé làm đầu vào cho Feature Selection Sau khi xác
định tập các đặc trưng được cho là quan trọng của ứng dụng mã độc đối với các mô
hình học máy cơ bản, chúng tôi tiến hành chuyên đổi dữ liệu của các đặc trưng lưu
30
Trang 39trữ trong các file được thu tập bởi Feature Extraction thành vector một chiều, nhưđược mô tả trong hình 4.2 Cụ thể:
- Với các đặc trưng tinh, một SỐ tài nguyên hệ thống như image, audio, video
và một số đặc trưng khác như meta-data, receivers, providers, activities
chúng tôi thực hiện đếm số lượng của chúng được sử dụng trong file APKs
dé chuyền đổi chúng thành vector một chiều Œ„„ € R°(vớ/Nạ = 13) Vớicác đặc trưng tĩnh khác khác bao gồm permissions, actions, categories,
services, chúng tôi đã chuyển đổi các loại đặc trưng này thành vector mộtchiều tương ứng Cụ thể, chúng tôi thực hiện phân tích tất cả các file APK
trong tập dir liệu đầu vào nhằm lưu lại tập hợp các thuộc tính duy nhất củamỗi loại đặc trưng tương ứng Gọi X;, X>, Xz, X, lần lượt là loại đặc trưngpermissions, actions, categories va services Tap hợp các tất cả các thuộc tínhcủa loại đặc trưng X; là {x,,%2, ,xy,}, trong đó N; là số lượng thuộc tính
duy nhất có trong loại đặc trưng X; trong tập file APKs, và i € {1, 2, 3, 4}
Khi đó, với mỗi file APK trong tập dữ liệu, ta xác định được một vector C; =
[ca, ca, , Cy, | € Ri duy nhất ứng với loại đặc trưng X; Lúc này, giá trị của
c; được xác định bởi:
| 1, nếu thuộc tính x; tồn tại
c=
j 0, néu thuộc tính x; không tồn tại
Khi đó, các đặc trưng static của mỗi file APKs được biểu diễn bởi vector một
chiều Cyratic € RY (voi N = 9523), xác định bởi công thức:
Cstatic = Cres ® Cy ® Cy ® C3 @® Cy
Trong đó: @ là phép nối chuỗi của 2 vector
- Đối với các đặc trưng động, quá trình phân tích động thu thập tất cả các
feature khi hoạt động ở cả 2 trường hợp thực thi ứng dụng Android trên thiết
bị emulator kiến trúc x86 trước khi reboot và sau khi reboot Các đặc trưng
như memory, network, battery, logcat, process được lưu ở các file cũng được
31