Việc ứng dụng học máy để phát hiện mã độc trong thờigian vừa qua mang lại nhiều kết quả tốt, tuy nhiên, các nghiên cứu liên quan đến phân loại mã độc thành từng loại và họ mã độc vẫn đan
Trang 1NGUYEN CONG DANH
PHAN LOAI MA DOC ANDROID BANG MANG SINH DOI
Trang 2NGUYEN CONG DANH
PHAN LOẠI MA ĐỘC ANDROID BANG MẠNG SINH DOI
KHANG VA HOC MAY
LUẬN VĂN THAC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ SO: 8.48.02.01
NGƯỜI HƯỚNG DAN KHOA HỌC
TS NGUYEN TAN CAM
TP HO CHi MINH - 2023
Trang 3Họ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, trường Đại học Công Nghệ Thông Tin —
ĐHQG TPHCM đã tạo điều kiện và hỗ trợ học viên trong suốt quá trình học tập vànghiên cứu Học viên xin được gửi lời tri ân đến người hướng dẫn khoa học - TS.Nguyễn Tan Cầm vi đã giành thời gian hướng dẫn nghiên cứu và đưa ra các chỉ bảotận tình Hỗ trợ học viên hoàn thành hướng nghiên cứu với kết quả tốt đẹp nhất.Hoc viên cũng xin gửi lời cảm ơn đến ThS Nghỉ Hoàng Khoa, NCS Phan Thế Duyluôn quan tâm và hỗ trợ, quý Thay, Cô, anh chị tại phòng E8.1 - Phòng thí nghiệm
An toàn Thông tin — InSecLab đã giúp đỡ và chia sẻ kiến thức chuyên môn trongthời gian thực hiện đề tài Sau cùng, học viên xin gửi lời cảm ơn đến gia đình, cũng
là nguồn động viên và chỗ dựa vững chắc cho học viên hoàn thành luận văn
Tp Hồ Chí Minh, ngày 24 tháng 02, năm 2023
Học viên
Nguyễn Công Danh
Trang 4LỜI CAM ĐOANTôi xin cam đoan luận văn tốt nghiệp với Đề tài “Phân loại mã độc Androidbằng mạng sinh đối kháng và học máy” là công trình nghiên cứu của tôi, với sự
hướng dẫn khoa học của TS Nguyễn Tấn Cầm Các trích dẫn, tham khảo trong luận
văn từ các công trình nghiên cứu khác đều thé hiện đầy đủ, rõ thời gian và nguồngốc Tôi xin chịu tat cả trách nhiệm, nếu có bat kỳ sao chép, vi phạm quy định vàquy chế dao tạo của nhà trường
Người thực hiện
Nguyễn Công Danh
Trang 51.2 Nguy co bao mật trên hệ điêu hành Android.
1.3 Kỹ thuật phân tích mã độc trên Android.
14
15
1.6
1⁄7 Tính khoa học, tính mới của đề tài
1.8 Cấu trúc của luận van
CHƯƠNG 2 PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNGSINH ĐÓI KHÁNG
21
2.1.1 Khái niệm hoc máy
2.1.2 Phân loại học máy
2.2 Giới thiệu về học sâu
2.2.1 Khái niệm học sâu
2.2.2 Một số khái niệm trong học sâu
2.3 Các mô hình học máy và học sâu được sử dụng trong đề tị
2.3.1 Random Forest (RF)
Trang 6MỤC LỤC
2.3.2 Extra Trees (ET)
2.3.3 Deep Neural Network (DNN)
2.3.4 1-D Convolutional Neural Network (1-D CNN)
2.3.5 Mạng sinh đối kháng (Generative Adversarial Network) 212.3.6 Mô hình mạng sinh đối kháng AC-GAN
2.4 Các nghiên cứu liên quan
CHƯƠNG 3 PHƯƠNG PHÁP DE XUẤT
3.1 Mô hình của phương pháp đề xuất
CHƯƠNG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ
4.1 Môi trường thực nghiệm
Trang 7443.9 AUC
4.3.10 Hàm mat mát (Log loss)
4.4 Kết quả thử nghiệm
4.4.1 Kết quả đánh giá với các mô hình học máy và học sâu
4.4.2 Kết quả đánh giá với mô hình mạng sinh đối kháng AC-GAN CHƯƠNG 5 KÉT LUẬN VÀ HƯỚNG PHÁT TRIÊN
5.I _ Thuận lợi và khó khăn.
5.I.I Thuan lợi
5.1.2 Khó khãi
5.2 Kết quả đạt được
5.3 Hướng phát triên tương lai
TÀI LIEU THAM KHẢO
PHỤ LỤC 1 DANH MỤC CÁC CÔNG BÓ KHOA HỌC
PHU LUC 2 DANH MỤC CÁC HO SƠ LIEN QUAN
Trang 8DANH MỤC CÁC BANG BIÊU
DANH MỤC CÁC BẢNG BIÊU
Bang 2.1 So sánh các mô hình học máy phát hiện mã độc Android
Bảng 3.1 Danh sách đặc tính được trích xuất bằng phân tích tĩnh
Bảng 3.2 Số lượng mẫu của tập dữ liệu
Bang 4.1 Cấu hình thông số trên hệ thông Colab
Bang 4.2 Số lượng mẫu trong tập dữ liệu CIC-MalDroid2020
Bảng 4.3 Số lượng mẫu trong tập dữ liệu Drebin
Bảng 4.4 Cấu hình thông số máy trích xuất đặc tính
Bang 4.5 Siêu tham số áp dụng cho huấn luyện các mô hình RF, ET và DNN 51
Bang 4.6 Siêu tham sô của mô hình AC-GAN
Bang 4.7 Giá trị trung bình trên tập dữ liệu CIC-MalDroid2020.
Bảng 4.8 Giá trị trung bình trên tập dữ liệu Drebin.
Bảng 4.9 Các giá trị trung bình trên hai tập dữ liệu.
Bảng 4.10 Các giá trị ứng với từng lớp trên tập dữ liệu Drebin
Bảng 4.11 Các giá trị ứng với từng lớp trên tập dữ liệu CIC-MalDroid2020 69
iv
Trang 9DANH MỤC CÁC HÌNH VẼ, ĐÒ THỊ Hình 1.1 Kiến trúc hệ điều hành Android
Hình 1.2 Thành phan tập tin APK
Hình 1.3 Số lượng mã độc đã cài đặt được phát hiện, Q2 2021 — Q2 2022 5
Hình 2.1 Mối quan hệ giữa AI, học máy và học sâu
Hình 2.2 Mô hình kiến trúc của một mang thần kinh Hình 2.3 Cách hoạt động của tế bào thần kinh
Hình 2.4 Cách hoạt động của max pooling. Hình 2.5 Sơ đồ phân loại Random Forest
Hình 2.6 Mô hình mạng DNN đơn giản
Hình 2.7 Mô hình 1D-CNN sử dung trong đê tài .
Hình 2.8 Kiến trúc mang GAN cơ bản
Hình 2.9 Lan truyền ngược huấn luyện mang tạo sinh
Hình 2.10 Lan truyền ngược trong huấn luyện mạng phân biét
Hình 2.11 Mô hình CGAN được đề xuất bởi Mirza và cộng sự
Hình 2.12 Mô hình mạng sinh đối kháng AC-GAN
Hình 2.13 Mô hình đề xuất của MalDozer
Hình 2.14 Mô hình đê xuât của nhóm tác giả
Hình 2.15 Mô hình và phương pháp đề xuất của DIDroid
Hình 2.16 Mô hình đề xuất của nhóm tác giả
Hình 2.17 Mô hình đề xuất của FamDroid
Hình 2.18 Mô hình đề xu: Hình 2.19 Mô hình đề xuất của nhóm tác giả
Hình 2.20 Mô hình đề xuất của tác gia
Hình 3.1 Mô hình dé xuất cho phân loại bằng học máy và học sâu
Hình 3.2 Quy trình trích xuất và chọn lọc đặc tính Hình 3.3 Mô hình hệ thống của AndroPyTool Hình 3.4 Kiến trúc vận hành của AndroPyTool
Hình 3.5 Cấu trúc thư mục OUTPUT
Hình 3.6 Top 20 đặc tính theo Gini index.
Trang 10DANH MỤC CÁC HÌNH VẼ, ĐỎ THỊ
Hình 3.7 Top 20 đặc tính theo Gini Index
Hình 3.8 Ví dụ về đánh giá chéo 10-fold
Hình 4.1 Ma trận nhằm lẫn của mô hình học sâu DNN
Hình 4.2 Ma trận nhằm lẫn của mô hình học sâu 1D-CNN
Hình 4.3 Ma trận nhằm lẫn của mô hình học máy RE
Hình 4.4 Ma trận nhằm lẫn của mô hình học máy ET
Hình 4.5 Ma trận nhằm lẫn của mô hình học sâu DNN
Hình 4.6 Ma trận nhằm lẫn của mô hình học sâu 1D-CNN
Hình 4.7 Ma trận nhằm lẫn của mô hình học máy RF
Hình 4.8 Ma trận nhầm lẫn của mô hình học máy ET
Hình 4.9 Độ chính xác và điểm FI của tập dữ liệu CIC-MalDroid2020 64
Hình 4.10 Độ chính xác và điêm F1 của tập dữ liệu Drebin.
Hình 4.11 Tập dữ liệu CIC-MalDroid2020 với độ chính xác là log loss qua từng epoch
Hình 4.12 Tap dữ liệu Drebin với độ chính xác là log loss qua từng epoch
Hình 4.13 Ma trận nhầm lẫn trên tập dữ liệu Drebin
Hình 4.14 Ma trận nhằm lẫn trên tập dữ liệu CIC-MalDroid2020
Hình 4.15 Đồ thị ROC của tập dữ liệu Drebin
Hình 4.16 Đề thị ROC của tập dữ liệu CIC-MalDroid2020
vi
Trang 11TOM TAT
Trong thời đại công nghệ khoa hoc 4.0, việc áp dụng học máy trong phân
loại mã độc trên hệ điều hành Android là hướng tiếp cận đã và đang nhận được sự
quan tâm to lớn từ các nhà nghiên cứu bảo mật Việc phân tích hàng triệu ứng dụng
để tim ra lỗ hồng cũng như phần mềm độc hại là vô cùng mắt thời gian và chi phí,
áp dụng học máy trong tìm kiếm và phân loại mã độc giúp tăng độ chính xác và khảnăng nhận biết loại mã độc Việc ứng dụng học máy để phát hiện mã độc trong thờigian vừa qua mang lại nhiều kết quả tốt, tuy nhiên, các nghiên cứu liên quan đến
phân loại mã độc thành từng loại và họ mã độc vẫn đang tồn tại nhiều khó khăn liên
quan đến thiếu hụt mẫu dữ liệu dẫn tới mắt cân bằng của tập dữ liệu thử nghiệm vàhạn chế liên quan đến mô hình học máy làm giảm độ chính xác trong khả năng pháthiện và phân loại Dé có được kết quả tốt hon, dé tài sẽ thực nghiệm đánh giá trênhai tập dữ liệu phổ biến được phân loại theo họ mã độc và loại mã độc, với các môhình học máy và mạng sinh đối kháng đề có so sánh về tính hiệu quả và sự phù hợp
của phương pháp trong việc phân loại mã độc Android.
Nhận thấy sự cần thiết của vấn dé, học viên được sự hướng dẫn của TS
Nguyễn Tan Cầm, tiến hành thực hiện nghiên cứu “Phân loại mã độc Android bằng
mạng sinh đối kháng và học máy”, áp dụng đồng thời các mô hình học máy và
mạng sinh đối kháng vào việc phân loại các mã độc Android, giúp đánh giá khả
năng phân loại của các mô hình với các mẫu mã độc khác nhau.
Trong phạm vi của đề tài, học viên đã thực nghiệm các mô hình học máy
Random Forest (RF), Extra Trees (ET), học sâu Deep Neural Network (DNN),
Convolutional Neural Network (CNN) và dùng mạng sinh đối kháng AuxiliaryClassifier Generative Adversarial Network (AC-GAN) để tăng độ hiệu quả trong
phân loại mã độc.
Những đóng góp của đề tài: Xây dựng được phương pháp phù hợp, ứng dụnghiệu quả các mô hình học máy và mạng sinh đối kháng trong phân loại trên cả loại
và họ mã độc với hai tập dữ liệu phổ biến Kết quả sau cùng đạt độ chính xác cao và
có tính cạnh tranh với một số nghiên cứu liên quan gần đây
Trang 12GIỚI THIỆU
CHƯƠNG 1 GIỚI THIỆU
Chương 1 trình bày xu hướng điện thoại thông mình, đông thời rủi ro nhắm
đến người dùng sử dụng thiết bị thông minh chạy hệ điều hành Android Chương
này cũng sẽ giới thiệu kiến trúc hệ điều hành Android và một số kỹ thuật phổ biến
để phân tích mã độc trên nên tang này
1.1 Hệ điều hành Android
Hệ điều hành Android được mua lại và phát triển bởi Google, ra mắt lần đầunăm 2008 Android được xây dựng trên hệ điều hành nguồn mở Linux, thiết kế chothiết bị có màn hình cảm ứng với mong muốn thay thế các thiết bị thông minh khi
đó Từ khi được ra mắt, Android đã trải qua 13 phiên bản khác nhau, hỗ trợ hai nền
tang 32-bit và 64-bit Hệ điều hành Android có các thành phan bao gồm [1]:
¢ Linux Kernel: Tầng thấp nhất của hệ thống, nhân Linux là nền tảng
của Android Giúp hệ điều hành xử lý các nhiệm vụ giao tiếp với các
thiết i: màn hình, camera, bluetooth, micro, thông qua trình điềukhiển (driver) ngoài ra còn có vai trò phân luồng, cấp phát quan lý bộ
nhớ, bảo mật,
e© Hardware Abstraction Layer (HAL): Day là một lớp “trừu tượng
phần cứng” bao gồm tập hợp các giao diện lập trình được xác định,
che dấu đi cấu trúc phần cứng Lớp trừu tượng này được thực thi bởi
phần mềm HAL bao gồm nhiều module thư viện liên quan đến mộtthành phan phần cứng như camera, micro, bluetooth Khi một APIthực hiện cuộc gọi để truy cập đến phần cứng của thiết bị cụ thể, hệthống sẽ tải module của phần cứng tương ứng lên
¢ Android Runtime: Thanh phần máy ảo được sử dụng dé chạy nhiều
máy ảo trên thiết bị Máy ảo được khởi chạy bằng cách thực thi tập tin
DEX (Dalvik Executable format), đây là định dang bytecode được tối
ưu hoá cho Android.
Trang 13Native C/C++ Libraries: Thư viện mã nguồn, viết bằng các ngôn ngữ
C và C++ Được sử dụng bởi các thành phần như Android Runtimehay HAL.
Java API Framework: cung cấp API giúp nhà phát triển viết các ứng
dụng chạy trên hệ điều hành Android
System Apps: Đây là các ứng dụng hoàn chỉnh chạy trên giao diện
người dùng Một số ứng dụng quan trọng và cần thiết được cài đặt sẵn
như gọi điện, nhăn tin, lịch, camera,
Trang 14GIỚI THIỆU
Java API Framework
Content Providers
View System Telephony
Native C/C++ Libraries ‘Android Runtime
KA Android Runtime (ART)
Media Framework OpenGL ES Core Libraries
Hình 1.1 Kiến trúc hệ điều hành Android'.
Thanh phan quan trọng khác của hệ điều hành Android là các tập tin ứngdụng APK (Android Package) Thành phần của một tập tin APK bao gồm:
¢ META-INE: Gồm các tập tin khai báo, chữ ký và các tài nguyên.
e lib: Các thư viện gốc, chạy trên thiết bị với các kiến trúc cụ thé
¢ res: Viết tit của resource, chứa các tài nguyên không bao gồm phan
mã máy, ví dụ như bitmap, XMI
htpsz//developer.android.com/guide/platform
Trang 15® AndroidManifest.xml: Tập tin này sẽ mô tả tên ứng dụng, phiên ban
của ứng dụng và các yêu cầu về quyền cần được cấp của tập tin APK
¢ classes.dex: Mã nguồn của các lớp java, biên dich và lưu lại dưới
dang dex, định dạng được sử dụng bởi máy ảo Dalvix.
© resources.arse: Tập tin này chứa các danh sách tài nguyên của ứng
dụng, ví dụ như chuỗi XML, layout, chuỗi, bitmap,
(resources arsc) (1ib/)
Dalvik bytecode Resources
(classes dex) (res/)
Hình 1.2 Thành phan tập tin APK.
Trong sự kiện Google I/O năm 2022 [2], Google đã công bố hiện có trên 3 tỷthiết bị thông minh sử dụng hệ điều hành Android đang hoạt động, với hơn 1 tỷthiết bị trong số đó được kích hoạt trong năm vừa rồi Cùng với sự gia tăng về số
lượng, các kho ứng dụng Android cũng ngày một lớn mạnh Chỉ tính riêng kho ứngdụng chính thức của Google cho các thiết bị Android là Google Play Store đã cung
cấp hơn 3,3 triệu ứng dụng, theo báo cáo của trang web phân tích Statista [3] Ngoài
ra, kho ứng dụng khác như Amazon Appstore, với hơn 700,000 ứng dụng hay một
số kho ứng dụng không chính thống khác như APKMirror, SlideMe, AppBrain, cũng cung cấp lượng lớn các ứng dụng đến người dùng Sự gia tăng này dẫn tới
những rủi ro cho người dùng, trong báo cáo quý | năm 2022 của hãng bao mật
? Ratazzi, Edward Paul, “Understanding and Improving Security of the Android Operating System”
(2016) Dissertations - ALL 592.
Trang 16GIỚI THIỆU
Kaspersky [4], chỉ ra rằng số lượng mã độc banking trojan và phần mềm lừa đảo
trên kho ứng dụng Google Play Store tăng mạnh, so với quý trước đó Trong một
báo cáo khác của hãng bao mật McAfee [5], thé hiện sự gia tăng các cuộc tấn công
thông qua smishing (SMS phishing), spam và phishing.
1.2 Nguy cơ bảo mật trên hệ điều hành Android
Hệ điều hành nguồn mở Android tồn tại nhiều nguy cơ bảo mật Từ bêntrong kiến trúc của Android, tang ứng dụng là nơi xảy ra nhiều van đề nhất Đây là
nơi sẽ thực thi các tập tin APK Theo báo cáo quý 2 năm 2022 của hãng bảo mật Kaspersky [6], trong quý 2 năm 2022, đã có hơn 405.000 mã độc cài đặt thành công
được phát hiện So sánh theo từng quý gần nhất, cho thấy sự giảm thiểu của việc cài
đặt mã độc Android, nhưng con số trên vẫn hết sức đáng báo động
kaspersky
Hình 1.3 Số lượng mã độc đã cài đặt được phát hiện, Q2 2021 — Q2 2022}.
Hệ điều hành iOS của Apple kiểm soát chặt chẽ các ứng dụng được tải lên
kho ứng dụng App Store[7], yêu cầu một số lý giải về việc cung cấp các quyền tới
một số thành phan quan trọng như ghi âm, camera hay truy cập tới danh bạ, điều
này giúp giảm thiểu rủi ro cài đặt các ứng dụng độc hại Kho ứng dụng Google Play
Store có nhiều lựa chọn ứng dụng hơn App Store vì chính sách phê duyệt ứng dụngrất nhanh của Google Ở một vài trường hợp, các ứng dụng có lượt tải xuống cao bị
` https://securelist.com/it-threat-evolution-in-q2-2022-mobile-statistics/107 123/
5
Trang 17phát hiện là độc hại Ngoài ra, người dùng Android còn dễ dàng cài đặt ứng dụng từ
các kho ứng dụng thứ ba, mở ra nhiều nguy cơ về thất thoát dữ liệu và bảo mật hơn.
Việc cài đặt ứng dụng dễ dàng hỗ trợ người dùng tiếp cận được nhiều ứngdụng hơn, trên các kho ứng dụng thứ ba Tuy nhiên, lại không đảm bảo rằng các
ứng dụng từ các nguồn trên là an toàn Tin tặc thường lợi dụng vào điểm yếu này
của người dùng, qua các hình thức lừa đảo tấn công phi kỹ thuật, người dùng đôikhi vô tình cài đặt các ứng dụng và trao cho chúng các quyền quan trọng trong hệthống mà không quan tâm hoặc không biết chúng sẽ làm gì trên thiết bị của họ Mặc
dù Google đã tìm nhiều cách cải tiến khả năng bảo mật cho hệ điều hành Android.Như việc giới thiệu dịch vụ Google Play Protect để xác thực các ứng dụng trước khi
cài đặt [8] Từ hệ điều hành Android 12, Google giới thiệu thêm tính năng bảo mật
mới với mục tiêu ngăn chặn tấn công dựa trên untrusted touch events và giới hạnquyền cho SYSTEM_ALERT_WINDOW [9] Các tính năng nay hỗ trợ ngăn chặn
tấn công overlay, tức một giao diện khác sẽ ngẫu nhiên hiện lên bên trong ứng dụng
với giao diện đăng nhập nhằm đánh cắp thông tin người dùng nhập vào
Còn với iOS, là hệ điều hành mã nguồn đóng, cộng với việc Apple tích hợp
các phần cứng thống nhất giúp họ kiểm soát mối nguy hai từ khía cạnh phan cứng.Ngược lại, Android là hệ điều hành nguồn mở, có thé được tỉnh chỉnh bởi các bênphát triên để phục vụ cho việc cài đặt trên nhiều phần cứng khác nhau nhằm tối ưu
cập nhật hay sửa các bản vá lỗi trên hệ điều
u hành
chí phí cho sản phẩm Ngoài ra,
hành iOS cũng vượt trội vê toc à thời gian cam kết hỗ trợ so với hệ
Android Lý do chủ yếu do hệ điều hành Android bị phân mảnh và có rất nhiều thiết
bị do nhiều nhà sản xuất quản lý, dẫn đến việc cập nhật chậm trễ và đôi khi khôngnhận được bản cập nhật phù hợp Thực tế các nhà sản xuất thiết bị thông minh dùng
hệ điều hành Android, thường cam kết cập nhật thường xuyên trong khoảng 2 đến 3năm với các dòng điện thoại đầu bảng, còn với các dòng phô thông thì kha năng it
được cập nhật hơn.
Như vậy, nguy cơ về mắt mát an toàn dữ liệu và rủi ro về bảo mật của ngườidùng là rất nhiều, đến từ nhiều phía khác nhau và quan trọng nhất là việc người
Trang 18GIỚI THIỆU
dùng khó phân biệt được ứng dụng đó có độc hại hay không Kẻ tấn công cũngdùng nhiều cách khác nhau nhằm khiến cho mã độc khó để phát hiện hơn như lamrồi mã dé tránh phát hiện mẫu, mã hóa, thêm vào các quyền không cần thiết cho ứngdụng hay tấn công cập nhật (update attack) [10] Do đó, các nghiên cứu về phát hiện
và phân loại các phần mềm độc hại trên hệ điều hành Android là hết sức cần thiết
1.3 Kỹ thuật phân tích mã độc trên Android
Dựa trên việc trích xuất đặc tính, thường được chia làm ba kỹ thuật phân tích
mã độc, bao gồm phân tích tĩnh, động và phân tích lai (kết hợp giữa hai phương
pháp phân tích tĩnh và động) [1 1].
*hty
© Kỹ thuật phân tích tĩnh: Các đặc tinh được trích xuất ở cấp độ đoạn
mã mà không cần thực thi ứng dụng Các đặc tính sử dụng để biểu
diễn các hành vi chúng ta mong đợi ở mẫu Ở kỹ thuật phân tích tĩnh,
có thể trích xuất các đặc tính như lời gọi hàm API, opcode, giao diệnacvitives, hoặc các quyền (permissions), luồng dir liệu source-sink, Một số công cụ được dùng trong kỹ thuật phân tích tinh như apktool',
AndroGuardŠ, FlowDroid’
e Ky thuật phân tích động: Hay được gọi theo tên khác là phân tích dựa
trên hành vi, được thực hiện bằng cách kiêm soát việc thực thi củaứng dụng trong môi trường ảo hoá được kiểm soát DroiđBox7 là công
cụ thường được sử dụng trong phân tích động, giúp ta lấy các thông
tin rất đa dạng trong thời gian thực của ứng dụng Một số thông tin
được thu thập như: các chức năng mã hoá, DEX classes, các tập tin
được truy cập, kết nối mạng, tin nhắn SMS, nhật ký điện thoại, dịch
vụ được bat trong lúc dùng,
© Kỹ thuật phân tích lai: Dé khắc phục các điểm yếu có ở hai phương
pháp trên (tốn thời gian trích xuất và không lấy hết được các thông tin
ibotpeaches.github.io/Apktool/
5 hups://androguard.readthedocs.io/en/latest/
© hey ithub.com/secure-software-engineering/FlowDroid
7 htips://github.com/pjlantz/droidbox
Trang 19quan trọng), kỹ thuật này được đề xuất với mục tiêu giảm thiểu cácyếu điểm và tận dụng các điểm mạnh để gia tăng việc thu thập cácthông tin cần thiết, giúp ích cho việc huần luyện mô hình học máy.
Dựa vào các đặc tính được rút trích từ mã độc, có nhiều cách khác nhau đểhuấn luyện các mô hình máy học trong phân loại mã độc Các đặc tính này là đầuvào để phục vụ mục đích huấn luyện các mô hình phân loại khác nhau, việc khaithác các đặc tính này là không giới hạn Ví dụ: Dựa trên danh sách quyền và lời gọiAPI, phân loại mã độc Android bằng mô hình học máy
1.4 Ứng dụng của học máy trong phát hiện và phân loại mã độc
Việc áp dụng học máy trong phát hiện và phân loại đem đến nhiều lợi ích sovới các phương pháp đã tòn tại như phát hiện dựa trên chữ ký hoặc dựa vào thông
tin của các mẫu mã độc đã phát hiện và được biết đến trước đây Các mô hình đàotạo học máy có khả năng phát hiện các mẫu mã độc chưa được biết đến nhờ quá
trình tự học dựa trên các thông tin từ các mẫu mã độc đã được biết đến Kết quả của
các mô hình đạt độ chính xác cao trong việc phát hiện các mã độc.
Để việc huấn luyện chính xác hơn Khâu tiền xử lý dữ liệu cũng như trích xuấtcác đặc tính và chọn lọc đặc tính luôn rất quan trọng Các đặc tính trích xuất từ các
mã độc trong tập dữ liệu bằng nhiều công cụ phân tích hoặc chạy thử mã độc, sau
đó dùng nhiều giải pháp khác nhau để chọn lọc
1.5 Mục tiêu
e_ Trích xuất các đặc tính từ các tập dữ liệu bằng phương pháp phân tích
tĩnh, chọn lọc các đặc tính để huấn luyện các thuật toán học máy Có
bốn đặc tinh bao gồm lời gọi API (API Call), intent, dich vụ (service)
và các quyền (permission)
° Ứng dụng các mô hình học máy và học sâu: Random Forest (RF),
Extra Trees (ET), Deep Neural Network (DNN), Convolutional
Neural Network (CNN) và mạng sinh đối kháng trong việc phân loại
mã độc trên các tập dữ liệu về họ và loại mã độc với độ chính xác cao
Trang 20GIỚI THIỆU
e Đánh giá các mô hình phân loại mã độc theo các tiêu chí: ma trận
nhằm lẫn (confusion matrix), tỉ lệ chuẩn xác (Accuracy), độ chính xác
(Precision), độ phủ (Recall), khả năng phát hiện (F1 score), đường
cong ROC (Receiver operating characteristic), giá trị Area Under the
Curve (AUC), tỉ lệ cảnh báo sai (False Positive Rate).
1.6 Phát biểu bài toán
Dựa trên mục tiêu đề ra ở mục 1.5, luận văn dé ra bai toán: Phân loại mã độc từ
tập tin cài đặt mã độc (định dạng APK) sử dụng các mô hình học máy và học sâu.
Đầu vào: Tập tin cài đặt ứng dụng Android (APK)
Đầu ra: Kết quả phân loại mã độc thuộc về một họ hay loại mã độc nảo
Rang buộc: Bốn đặc tính được trích xuất từ tập tin cài đặt: quyền (permission),
dich vụ (service), intent và lời gọi API, là vector đầu vào dưới dạng tập CSV Các
mã độc được phân thuộc một loại hoặc họ mã độc duy nhất
Bài toán này đặt ra ba bài toán nhỏ, bao gồm:
¢ Bài toán 1: Trích xuất đặc tính của tập tin cài đặt ứng dụng Android(APK) sử dụng công cụ AndroPyTool, trích xuất đặc tính của mã độc
từ hai tập dữ liệu phô biến là Drebin và CICMalDroid-2020
o Đầu vào: Tập tin cài đặt ứng dụng Android (APK) từ hai tập
dữ liệu phổ biến là Drebin và CICMalDroid-2020
o Dau ra: Dữ liệu được gan nhãn là các vector đặc tính được lưu
dưới định dang CSV.
o Rang buộc: Các đặc tính trích xuất được quan tâm bao gồm:quyền (permission), dịch vụ (service), intent và lời gọi API
¢ Bài toán 2: Chon lọc đặc tính bằng cách sử dụng thuật toán Extra
Trees và chỉ số Gini dé xác định các đặc tính chung, phù hợp cho mô
hình phân loại.
o_ Đầu vào: Vector đặc tính được lưu dưới định dạng CSV
o Đầu ra: Dữ liệu được gán nhãn là các vector đặc tính sau khi
chọn lọc được lưu đưới định dạng CSV.
Trang 21o Rang buộc: Chọn lọc các đặc tính chung theo chỉ số Gini, với
giá trị > 0.001.
¢ Bài toán 3: Huấn luyện các mô hình học máy, học sâu và mạng sinh
đối kháng bao gồm: RF, ET, DNN, ID-CNN và AC-GAN với đặc
tính được trích xuất từ hai tập dir liệu
o Đầu vào: Vector đặc tính của tập dữ liệu đã lọc lưu dưới định
dang CSV.
o Dau ra: Két quả phân loại mã độc theo họ mã độc với tập dữ
liệu Drebin và loại mã độc với tập dữ liệu CICMalDroid-2020.
o Rang buộc: Dữ liệu ở tập huấn luyện và tập thử nghiệm không
được trùng nhau Mỗi mã độc được phân về một loại học họ
mã độc.
1.7 Tinh khoa học, tính mới của đề tài
Đề tài áp dụng mạng sinh đối kháng, học máy và học sâu vào phân loại mãđộc Android, phù hợp với xu thé phát triển hồng bảo mật thông minh nhưhiện nay Đề xuất một phương pháp cho phép lấy dữ liệu là các tập tin cai đặt ứng
dụng Android (APK) bao gồm mã độc và mẫu lành tính, sau đó rút trích đặc tính
dùng cho huấn luyện các mô hình để phân loại mã độc Android theo loại và họ mãđộc, nhằm đánh giá khả năng nhận diện mẫu của từng loại mô hình
Với cùng một mô hình huấn luyện, để tài đã giải quyết được việc đánh giá vàphân loại mã độc thành từng họ và loại mã độc, kết quả sau cùng có độ chính xác
cao và tỉ lệ cảnh báo sai thấp, có tính cạnh tranh với một số nghiên cứu trong thời
gian gần đây
Đề tài giải quyết việc phân loại các mẫu mã độc theo họ và loại mã độc Điều
này là vô cùng cần thiết, do thực tế, các mẫu mã độc chỉ cần thay đổi hoặc chènthêm một vài đoạn mã, đóng gói lại tập tin APK, thêm các chức năng đề tránh bắt
mi nhưng hành vi, mục đích hoạt động đều dựa trên một loại mã độc nào đó[12] Trong một số bài toán phân loại nhị phân, ứng dụng để phát hiện mã độc, chỉ
bao gồm hai nhãn đầu ra là mẫu lành tính và độc hại Tuy nhiên việc xem xét mẫu
Trang 22GIỚI THIỆU
độc hại đó thuộc về loại nào, với các đặc tính tương tự nhau để gom nhóm và phânloại vẫn còn nhiều thử thách [13] Một số thuật toán học máy, học sâu và mạng sinhđối kháng có khả năng phân loại đa lớp được ứng dụng hiệu quả trong đề tài
1.8 Cấu trúc của luận văn
Với các mục tiêu trên, luận văn sẽ tổ chức với năm chương và các nội dung:
Chương 1 - Giới thiệu : Chương | giới thiệu về xu hướng điện thoạithông minh, đồng thời rủi ro nhắm đến người dùng Chương này cũng
giới thiệu kiến trúc hệ điều hành Android và các kỹ thuật phổ biến
trong việc phân tích mã độc trên hệ điều hành này
Chương 2 - Phân loại mã độc Android bằng học máy và mạngsinh đối kháng: Chương 2 sẽ giới thiệu về mô hình học máy, học sâu,mạng sinh đối kháng trong phát hiện và phân loại mã độc Android.Một số nghiên cứu trước đây cũng được khảo sát và trình bày
Chương 3 - Phương pháp đề xuất: Trinh bày về phương phápnghiên cứu, sử dụng các mô hình học máy, học sâu và mạng sinh đối
kháng để phân loại mã độc trên hai tập dữ liệu mã độc
Chương 4 ~ Thực nghiệm và đánh giá: Chương 4 sẽ thực hiện huấn
luyện các mô hình học máy, học sâu và mạng sinh đối kháng, sau đó
đánh giá kết quả của các mô hình dựa vào một số tiêu chí và độ đo
nhằm đánh giá mức độ phù hợp và độ chính xác của các mô hình
Chương 5 - Kết luận và hướng phát triển: Téng kết lại quá trình
nghiên cứu cũng như kết quả của đề tài, các hạn chế trong thời gianthực hiện và đề ra hướng phát triển cho nghiên cứu trong tương lai
11
Trang 23CHƯƠNG 2 PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY
VÀ MẠNG SINH ĐÓI KHÁNG
Chương 2 giới thiệu về mô hình học máy, học sâu, mạng sinh đối kháng và
áp dụng vào phân loại mã độc Android Một số nghiên cứu gần đây cùng các hướng
tiếp cận cũng được đề cập
2.1 Giới thiệu về học máy
2.1.1 Khái niệm học máy
Học máy là một nhánh trong ứng dụng trí tuệ nhân tạo Học máy gồm một
loạt kỹ thuật đê tự động hoá việc đưa ra các dự đoán ở tương lai dựa trên các quan
sát trong quá khứ Học máy thông thường được phân thành hai loại, bao gồm dựđoán và phân loại Một số ứng dụng của học máy có thể kể đến là dự đoán giá cổphiếu dựa trên diễn biến giá ở quá khứ, dự đoán giá trị bất động sản hoặc các bài
toán phân loại như nhận dạng đồ vật trong ảnh, nhận diện chữ viết theo các ngônngữ khác nhau
2.1.2 Phan loại học máy
Dựa trên cách thức học, mô hình học máy được chia thành bốn nhóm:
© Hoc không giám sát (unsupervised learning): Ở cách học này, thuật toán
không thể dự đoán được kết quả đầu ra (output) hay nhãn (label) mà dựatrên dữ liệu đầu vào (input) Thuật toán dựa vào cấu trúc của đữ liệukhông gán nhãn (tức không được cung cấp trước kiến thức hay thông tinnào khác) để thực hiện một yêu cầu cụ thể như phân nhóm hay giảmthiểu số chiều dữ liệu dé sử dụng cho tính toán hoặc lưu trữ Do dit liệu
không cần gán nhãn nên việc cài đặt một thuật toán không giám sát sẽ
dễ dàng hơn so với học có giám sát Tuy nhiên do không gắn nhãn nên
các thuật toán không giám sát không thé đưa ra dự đoán quá trình xác
nếu ta không tiền xử lý dữ liệu trước khi huấn luyện Các thuật toán phổ
Trang 24PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNG SINH DOI KHANG
biến như: K-Means hay trong học sâu có Recurrent Neural Network
(RNN), hay Deep Belief Network (DBN)
¢ Hoc có giám sát (supervised learning): Day cũng là phương thức hoc
phổ biến, mô hìn sẽh được học bằng cách dự đoán dữ liệu đầu ra
(outpu0 của một dữ liệu đầu vào mới (new input) dựa trên cặp (input,
output) được biết đến trước đó tức được gan nhãn Từ đây, mô hình sẽ
có thêm kiến thức và hiểu thêm về dữ liệu đó, sau đó các kiến thức này
sẽ được kiểm tra dé giảm thiểu sai số lỗi (loss) Một số thuật toán có
giám sát như: Random Forest, Linear Regression, Extra Trees, Logistic Regression, Decision Tree hay trong học sâu là Deep Neural Network (DNN), Convolutional Neural Network (CNN)
¢ Hoc bán giám sát (semi-supervised learning): Hay học nửa giám sát.
Trong một số thời điểm, bài toán cho ta một tập dữ liệu lớn, nhưng chỉ
một phần dữ liệu được gán nhãn trước khi đến giai đoạn huấn luyện, và
phần lớn dữ liệu còn lại chưa gán nhãn, với các bài toán như vậy, ta cóthể xếp vào nhóm học bán giám sát Đầu tié đữ liệu đã gán nhãn được
dùng để đào tạo thuật toán học máy Tiếp đến, thuật toán đã được đào
tạo sẽ tự gán nhãn cho dữ liệu chưa được gán nhãn Phương pháp học
bán giám sát sẽ kết hợp kết quả từ dé liệu đã và chưa gan nhãn tuỳ vào
yêu cầu cụ thê từng bài toán, với mục tiêu đạt độ chính xác cao nhất.
“Thực tế, rất nhiều bài toán học máy thuộc nhóm bán giám sát vì việc thuthập dữ liệu và gán nhãn tốn nhiều chỉ phi và mắt thời gian
© Học tăng cường (reinforcement learning): viết tắt là RL, mô hình sẽ
thực hiện các hành động dựa trên hoàn cảnh sao cho đạt được kết quảtốt nhất Bản chất của học tăng cường là trial-and-error, bao gồm nhiềulần thử đi thử lại và sau đó rút ra kinh nghiệm sau mỗi lần thử sao cho
độ chính xác là tốt nhất
Trang 252.2 Giới thiệu về học sâu
2.2.1 Khái niệm học sâu
Học sâu là một phần thuộc học máy, bao gồm các công nghệ lõi chủ yếu được
áp dụng lên xe tự hành; cho phép tham gia giao thông mà không cần người ngồi điều
khiển Học sâu cũng được áp dụng lên các thiết bị thông minh như chức năng tự
động phản hồi, trợ lý ảo trên loa thông minh, thiết bị đeo tay, điện thoại thông minh,máy tính bang, Vi thế học sâu dần dẫn đầu xu hướng, đạt nhiều thành tựu và còn
dư địa phát triển Kiến trúc của học sâu bao gồm nhiều lớp đữ liệu được gán nhãn và
nhiều kiến trúc mạng nơ-ron nhân tạo Dữ liệu đi từ lớp đầu vào (input), qua các lớp
mạng nơ-ron an nối tiếp nhau, được dùng với mục đích khác nhau, trước khi tớiđược lớp cuối cùng gọi là lớp kết quả Các lớp mạng ẩn bên trong mô hình học sâu
sẽ hỗ trợ cho việc học, giúp đạt hiệu quả cao hơn so với mô hình học máy tiêu
chuẩn Hình bên dưới mô tả rõ nét về mối quan hệ giữa trí tuệ nhân tạo (AI), học
máy và học sâu.
ARTIFICIAL INTELLIGENCE
MACHINE LEARNING
Trang 26PHÂN LOẠI MÃ ĐỘC ANDROID BẰNG HỌC MÁY VÀ MẠNG SINH ĐÓI KHÁNG
2.2.2 Một số khái niệm trong học sâu
e Mạng nơ-ron: mô phỏng lại mạng lưới não bộ của con người, bao
gồm các nơ-ron được liên kết chặt chẽ với nhau Chúng được phân
vào ba loại lớp bao gồm lớp đầu vào, các lớp ẩn và lớp dau ra
@ Dau vào @ Lopan @ Đàura
Hình 2.2 Mô hình kiến trúc của một mang than kinh”.
¢ Té bào than kinh (perceptron): Một tế bào thần kinh ta có thể hiểu
là một hàm toán học có đầu vào (input) là tập hợp số thực, xử lý vàthực hiện các phép toán sau đó đưa ra kết quả Các trọng số (weights)
sẽ được tìm ra qua quá trình huấn luyện dựa vào giá trị đầu vào, hoặc
độ lệch (bias) và ngưỡng tương ứng.
Hình 2.3 Cách hoạt động của tế bào thân kinh.
e Hàm kích hoạt (activation functions): có vai trò là một thành phần
phi tuyến tính được áp dụng vào đầu ra (output) của các nơ-ron thần
* https://wwaw.global-engage.com/life-science/deep-learning-in-digital-pathology/
15
Trang 27kinh ở lớp ân, sau đó được dùng làm đầu vào cho lớp kế tiếp Một sốhàm kích hoạt được sử dụng phổ biến như Sigmoid, Tanh và Rectified
Linear Unit (ReLU).
© One-hot Encoding: Hỗ trợ biểu diễn dữ liệu để cung cấp cho thuậttoán học máy Các giá trị ban đầu sẽ được biến đổi thành các đặc
trưng ở dạng nhị phân, chỉ bao gồm các giá trị 0 hoặc 1 Mỗi mẫu sẽ
được chuyển thành một vector có kích thước n, giá trị là 1 biêu thịtrạng thái hoạt động.
© Sofimax: Hay hàm trung bình mũ, sofimax sẽ tính xác suất xảy ra của
sự kiện, hay tính toán khả năng xuất hiện một lớp trong tổng số cáclớp, được sử dụng trong bài toán phân loại đa lớp Kế tiếp, xác suất
sau khi tính toán được dùng đê xác định lớp mục tiêu cho đầu vào
© Cross entropy: Được dùng dé so sánh khoảng cách giá trị đầu ra giữa
one-hot encoding và softmax Chúng có giá trị được cực tiểu hoá
(minimized) của phép dự đoán mẫu dữ liệu tương ứng một lớp nào đó Cross entropy thường được dùng đê tôi ưu hóa cho các mô hình.
e Dropout: Day là một cách phòng tránh overfitting (quá khớp) của mô hình Theo đó, dropout sẽ loại bỏ ngẫu nhiên một đơn vị trong mạng nơ-ron trong quá trình đào tạo, do đó đơn vị này không được xem xét
trong quá trình kế tiếp Dropout giúp tránh việc quá phụ thuộc lẫn
nhau trong một mạng kết nối đầy đủ (fully-connected) của mô hình
học sâu.
®© Max pooling: Thêm vào ở giữa các lớp tích chập với mục tiêu làm
giảm kích thước các lớp thông qua việc lấy mẫu Đây cũng là một
cách giúp phòng tránh hiện tượng quá khớp (overfiting) trong mô hình
học sâu.
Trang 28PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNG SINH DOI KHANG
Single depth sic,
1|1|2|4
5|6|7|8| | 6 | 8 |
Hình 2.4 Cách hoạt động của max pooling"®.
2.3 Các mô hình học máy và học sâu được sử dụng trong đề tài
Các thuật toán học máy thường được sử dụng trong phân loại mã độc Android như: Support Vector Machine (SVM), Decision Tree (DT), K-Nearest Neighbors
(KNN) hay Multilayer Perceptron (MLP), Recurrent Neural Network (RNN), Deep
Neural Network (DNN), Convolutional Neural Network (CNN) [14] Tuy nhiên
sau khi thử nghiệm, dé tài chọn lọc một số thuật toán hỗ trợ phân loại đa lớp với kết
quả tốt Các mô hình thuật toán được trình bày ở phan kế tiếp
2.3.1 Random Forest (RF)
Đây là một thuật toán học máy có giám sát Thường được sử dung cho các bai
toán phân loại cũng như hồi quy Đây là thuật toán dễ thích nghỉ và thân thiện với
người dùng nhất Random Forest bao gồm nhiều Decision Trees, nhưng mỗi
Decision Trees là duy nhất bởi vì các cây này được xây dựng dựa trên yếu tố ngẫu
nhiên Bởi vì các Decision Trees được xây dựng không sử dụng toàn bộ tập dữ liệu
huấn luyện, việc này khiến cho chúng hoạt động không đủ tốt Tuy nhiên kết quả dựđoán từ các Decision Trees này sau đó sẽ được tông hợp lại, vì vậy thông thườngRandom Forest có khả năng hoạt động tốt vượt trội Số lượng cây càng lớn, rừngcàng mạnh Random Forest thường không gặp vấn đề trong việc xảy ra quá khớp dit
liệu Lý đo là vì nó tính giá trị trung bình từ các dự đoán sau đó loại bỏ các sai lệch.
Bởi vì Random Forest bao gồm nhiều Decision Trees khiến cho mô hình khó nắm
bắt và việc dự đoán diễn ra chậm Mỗi khi đưa ra dự đoán, tat cả các cây trong rừng
19 https://www.datascience.com/blog/convolutional-neural-network
17
Trang 29cây đều phải đưa ra dự đoán của mình với cùng một đầu vào được cung cấp và kếtiếp thực hiện việc bỏ phiếu dựa vào tập hợp đầu ra của các cây sẽ diễn ra.
“TainingOataset
š
Fina Result
Hình 2.5 Sơ do phân loại Random Forest.
2.3.2 Extra Trees (ET)
Extra Trees được đề xuất trong [I5], với mục tiêu chính là tiếp tục chọn ngẫu
nhiên việc xây dựng các cây quyết định ET có liên quan đến thuật toán RE, thườngđạt được hiệu suất tương đối hoặc tốt hơn thuật toán RF mặc dù nó dùng một thuật
toán đơn giản hơn đê xây dựng Extra Trees thuộc loại học máy có giám sát, dùng
để giải quyết các vấn đề về phân loại đa lớp Trong việc phân tích các quyết định,thuật toán được áp dụng đê thể hiện cách trực quan, rõ ràng các quyết định và việcđưa ra quyết định Mỗi nút bên trong một cây đại điện cho một biến và đường liênkết giữa nó với các nút con đại điện cho một giá trị cụ thể tương ứng với biến Saukhi một nút lá nhận được các giá trị của các biến, được chỉ ra bởi đường dẫn từ nútgốc đến nút lá, nó sẽ đưa ra được giá trị dự đoán của quyết định Khi phát triển câycần lưu ý việc chọn các tính năng, điều kiện sử dụng và chọn điểm dừng cho cây
2.3.3 Deep Neural Network (DNN)
DNN thuộc nhóm thuật toán học sâu có giám sat, DNN là mô hình cơ ban của
học sâu Một mạng DNN gồm nhiều lớp liên tiếp có kết nối chặt chẽ lẫn nhau, gồmcác lớp cơ bản như: lớp đầu vào, lớp an và lớp đầu ra Hoạt động của DNN được
trình bày như sau: ở lớp đầu vào, các nơ-ron nhận tín hiệu dé xử lý rồi cho ra kết
quả của hàm truyền; kết quả này được truyền tới nơ-ron thuộc lớp ẩn đầu tiên, sauquá trình xử lý sẽ được dua lần lượt đến lớp ẩn tiếp theo cho đến khi lớp đầu ra cho
kết quả DNN thích hợp cho những dữ liệu dang bang (tabular dataset) bởi vì đầu
Trang 30PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNG SINH DOI KHANG
vào là những nút có thé biểu diễn dưới dang vector như dữ liệu dang bảng Tuynhiên, điểm yếu của DNN là thông số cần để thiết lập mô hình rất nhiều
Lớp đầu vào Lop an Lop đầu ra Hình 2.6 Mô hình mạng DNN đơn giản.
2.3.4 1-D Convolutional Neural Network (1-D CNN)
Convolutional Neural Network là một mạng nâng cao thuộc mang than kinh,thường được sử dụng trong phân loại hình ảnh và thị giác máy tính CNN cung cấpmột cách tiếp cận tốt hơn bằng cách tận dụng các nguyên tắc đại số tuyến tính, cụthé là phép nhân ma trận dé xác định các mẫu Đồng thời, nó cũng có hiệu suất vượt
trội hơn so với các mạng thần kinh khác khi đầu vào là tín hiệu hình ảnh hoặc âm
thanh Mạng thần kinh tích chập sử dụng ba lớp chính:
¢ _ Lớp tích chập (convolutional): là lớp xây dựng cốt lõi, đây đồng thời
là nơi diễn ra phần lớn quá trình học tập và tính toán Nó sử dụng một
bộ lọc, còn gọi là bộ phát hiện tính năng dùng dé quét qua từng vùng
của giá trị đầu vào mà nó tiếp nhận và xem tính năng có hiện diện hay
không Các siêu tham số của bộ lọc cần được xem xét kỹ khi sử dụng
vì nó ảnh hưởng đến kích thước khối lượng đầu ra Đồng thời bộ lọccũng có khả năng chia sẻ các trọng số, điều này giúp nó không bị thayđổi khi di chuyển qua từng vùng tiếp nhận của đầu vào
© Lớp pooling: còn được gọi là lớp giảm mẫu, dùng dé giảm kích thướcchiều không gian, giảm số lượng tham số đầu vào Giúp giảm thiểu sự
phức tạp và nâng cao sự hiệu quả Nó cũng dùng một bộ lọc tương tự
lớp tích chập Tuy nhiên bộ lọc này không có bat kì trọng số nào mà sử
19
Trang 31dụng một hàm tổng hợp trên từng vùng tiếp nhận của đầu vào, sau đóđiền kết quả vào một mảng dau ra.
Lớp fully-connected: thực hiện nhiệm vụ làm phẳng đầu ra của lớp
trước đó thành vector và phân loại dựa vào các đặc trưng được rút tríchqua các lớp và bộ lọc trước Mỗi nút được kết nối trực tiếp với nút liền
trước và sử dụng các hàm kích hoạt như sigmoid hoặc softmax với mục
đích phân loại, mục tiêu cuối cùng là tối ưu hóa độ chính xác
Convolutional là lớp đầu tiên của Convolutional Neural Network Các lớp kếtiếp có thé là lớp convolutional bổ sung, lớp pooling hoặc lớp fully-connected tùyvào yêu cầu bài toán hoặc dữ liệu Các lớp đầu tiên chỉ xác định các tính năng đơngiản Qua mỗi lớp, Convolutional Neural Network sẽ tăng dần độ phức tạp để xác
định các tính năng lớn hơn Việc sử dụng Convolutional Neural Network sẽ có các
Có thé chia sẻ các trọng số trên các vùng tiếp nhận của một lớp
Trong để tài, tập đữ liệu sau bước tiền xử lý được one-hot sau đó chuyển đổi
sang định dạng bảng (tabular) tương ứng với tất cả mô hình Do đó, để phân loại,
mô hình CNN cần được chuyền đổi sang dạng 1D-CNN (CNN một chiều) Qua quátrình thử nghiệm nhiều mô hình khác nhau, đề tài chọn được một mô hình phù hợp
đó là mô hình 1D-CNN được dùng trong một cuộc thi trên nền tảng Kaggle của tác
giả baosenguo[ 16] Hình dưới đây mô tả mô hình 1D-CNN:
Trang 32PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNG SINH BOI KHÁNG
Lên ae mơ
“94048 probe 10
ze@ret S2GIĐO 6094 9908 SI2G9M 6I2@m 600ml
ce Ba Ga |: \- \ omy ys yc \* “4
Hình 2.7 Mô hình 1D-CNN sử dung trong dé tài.
2.3.5 Mạng sinh đối kháng (Generative Adversarial Network)
Mạng sinh đối kháng (Generative Adversarial Network - GAN) là mô hình
tạo sinh dựa trên học sâu, sử dụng cho cả học có giám sát và không giám sát, được
mô tả lần đầu tiên trong bài báo năm 2014 bởi lan Goodfellow và cộng sự [17].GAN có được kết quả tốt nhất qua việc mô hình hoá các phân phối dữ liệu nhiều
lớp Ví dụ, trong thực tế việc nhận diện tranh nghệ thuật, một mạng là một máychuyên làm tranh giả và còn lại là một chuyên gia nghệ thuật Bộ phận tạo dữ liệugiả, nằm trong kiến trúc GAN được gọi là mạng sinh (Generator) hay G, tao dữ liệugiả mạo với mục đích làm cho nó giống với thật nhất Ở khía cạnh còn lại, chuyên
gia sẽ được gọi là mạng phân biệt (Discriminator) hay D trong GAN Mạng phân
biệt sẽ nhận diện cả hình ảnh giả mạo và thật nhằm mục đích phân biệt chúng và trả
về giá trị mắt mát cho mỗi loại (mô tả trong hình bên dưới)
9 5g
Trang 332.3.5.1 Mô hình mạng tạo sinh (Generator Model)
Mô hình mạng tạo sinh G có đầu vào là một vector ngẫu nhiên có độ dài cố
định và sinh ra một mẫu trong một bài toán (ví dụ mẫu là hình ảnh) Vector được rút
gọn ngẫu nhiên bằng phân phối Gaussina và được sử dụng làm seed hoặc là nguồn
nhiễu (source of noise) cho quá trình sinh sẽ học cách để làm cho D phân loại dữliệu mà nó sinh ra là thật Huấn luyện mạng tạo sinh đòi hỏi sự kết hợp chặt chẽgiữa G và D so với việc huấn luyện D Dữ liệu của GAN dùng để huấn luyện mạng
tạo sinh bao gồm:
© Dao vào ngẫu nhiên.
© Mang lưới G chuyên đầu vào ngẫu nhiên thành một mẫu dữ liệu.
® Mang lưới D dùng để phân loại dữ liệu được sinh ra
© Đầu ra của D.
e Giá trị mất mát của G, nhận được phần thưởng khi đánh lừa được Dvà
ngược lại sẽ bị phạt.
Ảnh thật 'ĐIEUIUIU9SIQ
Generator Discriminator $807] 0}210U89,
Bau vào ngẫu nhiên
Để huấn luyện mạng nơ-ron, ta phải thay đổi trọng số của mạng đề giảm độsai hoặc mat mát cho đầu ra của nó Trong mang GAN, G không trực tiếp kết nỗivới hàm mat mát mà chúng ta mong muốn tác động đến G đưa vào mang D, và Dcung cấp đầu ra mà chúng ta mong muốn tác động Phần thêm của kiến trúc này
Trang 34PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNG SINH DOI KHANG
phải bao gồm thêm sự lan truyền ngược Lan truyền ngược điều chỉnh từng trọng sốtheo đúng hướng bằng cách tính toán các tác động của trọng số đó với đầu ra - đầu
ra của D thay đổi thế nào khi trọng số thay đổi Lan truyền ngược bắt đầu ở đầu ra
của D và trả ngược trở lại thông qua D tới G.
Trong quá trình huấn luyện G, cần phải giữ cho D cố định, nêu D bị thay đồi
sẽ gây khó trong việc làm G trở nên tốt hơn Quá trình huấn luyện mạng sinh gồm
các bước:
© Mau nhiễu ngẫu nhiên.
© Tao đầu ra của G từ mẫu nhiễu ngẫu nhiên
© Nhận được kết quả của D là "Thật" hoặc "Giả" cho dữ liệu của G
« Tinh toán giá trị mất mát từ phân loại D.
© Lan truyền ngược thông qua D và G dé đạt được sự thay đổi tương ứng
e Dùng sự thay đổi đó dé cập nhật trong số cho G
Các bước ở trên đại diện cho một vòng huấn luyện G
2.3.5.2 Mô hình mạng phân biệt (Discriminator Model)
Mạng phân biệt D nhận giá trị đầu vào (input) là một mẫu từ bài toán (mẫuthật hoặc mẫu giả) và dự đoán mẫu đầu vào là mẫu thật hay mẫu giả (mẫu do trình
tạo sinh tạo ra) Mẫu thật là mẫu được lấy từ tập dữ liệu huấn luyện Sau khi huấn
luyện, trình phân biệt sẽ loại bỏ D có thé sử dụng bat kỳ kiến trúc mạng nào miễn
tương thích với mô hình phân loại.
Dữ liệu huấn luyện của D đến từ hai nguồn:
© Mau dữ liệu thật như ảnh người thật D sử dụng những mẫu này như
là mẫu dương tính trong quá trình huấn luyện
e Mau dữ liệu giả được tạo bởi G, D sử dụng những mau nay như là
mẫu âm tinh trong quá trình huấn luyện
Trong hình dưới, hai khung "Mẫu" đại diện cho hai nguồn dữ liệu đưa vào D.Trong giai đoạn huấn luyện D, G sẽ không được huấn luyện Các trọng số của Gkhông đổi trong khi nó tao ra các mẫu cho việc huần luyện D
23
Trang 35Generator
'$S0 1101819),
Hình 2.10 Lan truyền ngugc trong hudn luyện mang phân biệt.
D kết nối đến hai hàm mắt mát Trong giai đoạn huấn luyện D, D bỏ qua mat
mát của G và chỉ sử dụng mất mát của D Quá trình huấn luyện G sẽ sử dụng matmát của Œ Quá trình huấn luyện D bao gồm các bước:
© D phân loại của dữ liệu thật và giả nhận được từ Œ.
e_ Mất mát của D phạt D khi phân loại sai dữ liệu thật là giải hoặc giả là thật.
© D cập nhật trọng số của nó thông qua lan truyền ngược từ mat mát D
thông qua mạng D.
2.3.6 Mô hình mạng sinh đối kháng AC-GAN
Mạng sinh đối kháng (GAN) có những ưu điểm trong tạo sinh dữ liệu, gầngiống với dit liệu thật, tuy nhiên nó vẫn có một số hạn chế, trong nghiên cứu [18],nêu ra một số hạn chế của GAN trong việc gặp khó khăn khi sinh mẫu với các dữliệu dạng ảnh độ phân giải cao hoặc tập dữ liệu quá đa dạng với nhiều nhãn Từ
những han chế đó, tác giả đã đề xuất sử dụng Auxiliary Classifier GAN (AC-GAN)
với mục đích khắc phục điểm yếu và cải thiện thêm cho mô hình phân loại, so vớiGAN truyền thống
AC-GAN là một mô hình mở rộng từ Conditional GAN (gọi tắt là CGAN)
[19] Để hiểu hơn cách thức hoạt động của AC-GAN, việc hiểu về mô hình CGAN
là vô cùng quan trọng So với mô hình GAN truyền thống, việc phát sinh dữ liệu giả
từ mô hình mạng tạo sinh không được kiểm soát, tức nó chỉ cố gắng tạo được dữ
Trang 36PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNG SINH DOI KHANG
liệu gần với dữ liệu thật nhất, nhưng ta không biết chúng thuộc về loại nào Trong
trường hợp phân loại hình ảnh theo từng loại, hay phân nhóm mẫu mã độc theo họ
và loại mã độc, thì việc kiểm soát khả năng tạo mẫu giả là rất quan trọng Mô hìnhCGAN sẽ kiểm soát được việc tạo mẫu theo một loại nhất định nào đó nhờ việcthêm vào đầu vào vector y nhằm kiểm soát việc tạo mẫu giả từ vector ngẫu nhiên z
(random vector) Mô hình CGAN, với mô hình mang tạo sinh và phân biệt trình bay
Hình 2.11 Mô hình CGAN được đề xuất bởi Mirza và cộng sự!!.
Giống với CGAN, mô hình mạng tạo sinh trong AC-GAN được cung cấpthêm lớp đầu vào, giúp việc kiểm soát quá trình phân loại của mô hình, thông quaviệc phát sinh mẫu mới Sự khác biệt chính nằm ở mô hình mạng phân biệt, chỉ
1 https://arxiv.org/pdf/141 1.1784.pdf
25
Trang 37được cung cấp dữ liệu đầu vào khác với CGAN được cung cấp luôn cả lớp đầu vào.
Kế tiếp, mô hình mạng phân biệt phải dự đoán xem dit liệu đầu vào là thật hay giả,
và cũng phải dự đoán loại đữ liệu và nhãn dữ liệu Mô hình cơ bản AC-GAN được
mô tả như bên dưới:
| Real Sample |
Trong mô hình AC-GAN, mọi mẫu được tạo ra đều có nhãn tương ứng c ~ C(nhãn có sẵn) bên cạnh nhiễu z Nhãn này giúp mô hình tổng hợp dữ liệu đầu vào(hình ảnh hoặc dữ liệu dang bảng (tabular)) dựa trên nhãn được truyền vào, bêncạnh vector ngan nhiên z (random noise z) Mô hình mạng tao sinh G dùng cả nhãn
c và nhiễu z dé sinh mẫu, điều này kiểm soát được mẫu giả được sinh ra có điểm
giống với dé liệu từ nhãn c truyền vào Việc sinh mẫu có thé được biểu thị ở đạng:
Trang 38PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNG SINH DOI KHANG
Ä/axe = G(€,Z)
Mô hình mạng phân biệt D chứa một tập hợp các mạng tích chập, trong ngữ
cảnh dé tài, sử dụng mô hình mạng nơ ron tích chập một chiều, tương tự ID-CNN.Tương ứng với đầu ra của các lớp là các hàm kích hoạt sigmoid và sofimax Kế tiếp,
hàm mat mát (loss function) của AC-GAN được chia thành hai phần, chúng được
định nghĩa như sau:
e Ước lượng khả năng (log likelihood) cho dữ liệu nguồn được kiểm
tra:
L, = E[logP(S = real|X;ea)] + E[logP(S = fake|Xpate)]
© _ Ước lượng kha năng (log likelihood) cho lớp được kiểm tra:
L = E[logP(C = c|Xz¿„)] + E[logP(Œ = lXrea)]
Mô hình mạng phân biệt D sẽ được học dé có gắng cực đại hoá tổng L, + Le
và mô hình mang tạo sinh sẽ cực đại hoá hiệu của Ly — L,.
2.4 Các nghiên cứu liên quan
ElMouatez và các cộng sự đề xuất MalDozer [20], bộ khung giúp phát hiện
và phân loại các phần mềm độc hại trên Android dựa trên học máy, sử dụng mộtmạng nhiều lời gọi hàm API, chứa trong tập tin DEX của ứng dụng MalDozer cókhả năng nhận diện tự động các chuỗi lời gọi hàm thông qua mã assembly Nhómtác giả sử dụng mô hình học sâu với một mạng thần kinh đơn giản MalDozer phân
tích độ chính xác dựa trên các mẫu mã độc Android và ứng dụng benign (lành tính)
trên ba tập tập dữ liệu bao gồm Malgenome [21] với 1000 mẫu, Drebin [22] với
5560 mẫu và MalDozer với 20.000 mẫu mã độc và 38.000 mẫu trên kho ứng dụng
Google Play Kết quả gồm hai phan, trong phát hiện mã độc, dé tài cho thấy khả
năng phát hiện mã độc dat tỷ lệ 96-98%, điểm F1 dat từ 96%-99%, tỉ lệ cảnh báo saiđạt 0.06%-2% Ngoài ra, các kết quả về phân loại theo họ mã độc đạt được kết quảrất cao, lên đến 99.18%
27
Trang 39Hình 2.13 Mô hình dé xuất của MalDozer.
Trong [23], nhóm tác giả ứng dụng nhiều thuật toán học máy và học sâu bao
gồm Decision Tree (DT), AdaBoost (AB), Naive Bayesian (NB), SVM, LogisticRegression (LR), KNN, RF va MLP để phân loại trên tập dữ liệu CCCS-CIC-
AndMal-2020 [24] theo họ và chủng loại mã độc Các thuộc tính tĩnh và động đã
được trích xuất trong tập đữ liệu Có tất cả 14 loại và 180 họ mã độc được sử dụng.Kết quả đạt độ chính xác 96% cho phân loại theo loại và 99% cho phân loại theo họ
mã độc.
° Testing Phase Malware Category Classi
ndroid Malware Test App.
inal ML Model
‘Malware Category and Family
‘Malware Family Classifier
Hình 2.14 Mô hình dé xuất của nhóm tác giả.
DIDroid, đề xuất bởi Rahalli và nhóm cộng sự [25], sử dụng mô hình học sâuđược ứng dụng để phân loại hình ảnh được tạo ra từ tập dit liệu CCCS-CIC-AndMal-2020 Nhóm tác giả thực hiện phân loại 12 mẫu mã độc theo loại, sử dụng
kỹ thuật phân tích tĩnh Nghiên cứu có độ chính xác 93.36%.
Trang 40PHAN LOẠI MÃ ĐỘC ANDROID BANG HỌC MAY VÀ MẠNG SINH DOI KHANG
Feature Engineering Model Layers:
New subsets Input Layer
from diffrent Feature 2D images ‘Convolutionalbination = Creation Layers: CNN
Features combinations of seleete ensemble model
Hình 2.15 Mô hình và phương pháp đề xuất của DIDroid.
Ding và các cộng sự đã đề ra giải pháp phân loại mã độc theo họ, sử dụng
phân tích lai [26] Nhóm tác giả sử dụng mô hình học sâu Res7LSTM, với các đặc
tính được trích xuất bằng kỹ thuật phân tích tĩnh, bao gồm: quyên, intent và bằng kỹ
thuật phân tích động là lưu lượng mạng Tập dữ liệu được nhóm tác giả sử dụng là CIC-AndMal2017 [27] và CIC-InvesAndMal2019 [28], với 429 mẫu là mã độc và
5065 mau là lành tính, được phân chia thành 4 loại: adware, ransomware, scareware
Hình 2.16 Mô hình đề xuất của nhóm tác giả.
Trong nghiên cứu [29], FamDroid được đề xuất đánh giá 10 họ mã độc nhiều
nhất từ tập dit liệu Drebin Được đánh giá trên 5 mô hình học máy: SVM, LR,Gradient Boost Decision Tree (GBDT), NB và KNN Đặc tính tĩnh được trích xuất
và lọc bằng RE Kết quả của nghiên cứu có độ chính xác 98.82%
29