Chương 1: TONG QUAN. Chương này giới thiệu tổng quan về bài toán phân loại mã độc trên Android, ảnh hưởng của các kỹ thuật làm rỗi mã đến việc phân loại, vẫn đề của các phương pháp và bộ dữ liệu hiện nay, các mục tiêu, đối tượng, phạm vi nghiên cứu cũng như các đóng góp chính của đề tài. e Chương 2: CÁC CÔNG TRÌNH LIEN QUAN. Trong chương nay, học viên tìm hiểu hai lĩnh vực chính của phân loại mã độc Android là dựa trên học máy-học sâu và bị làm rối mã nguồn.
Các công trình nghiên cứu được khảo sát một cách chỉ tiết cùng với các bình luận đánh giá liên quan dé có được cái nhìn tổng quát về xu hướng của nhiệm vụ này. 5 TONG QUAN Chương 3: CƠ SỞ LÝ THUYET. Chương này sé trình bay các kiến thức nên tang liên quan đến mã nguồn của ứng dụng Android, các kỹ thuật làm rối mã từ đơn giản đến phức tạp, ý tưởng của việc trực quan hóa ứng dụng và mạng nơ-ron tích chập trong học sâu. Chương 4: HỆ THÓNG ĐỀ XUẤT.
Chương này sẽ trình bày phương pháp đề xuất của học viên dé phân loại mã độc Android, trong đó bao gồm tong quan về hệ thống, trực quan hóa các đặc trưng của ứng dung, lý do lựa chọn các đặc trưng này và mô hình phân loại được sử dụng. Chương 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ. Chương này trình bày các thiết lập cần thiết cho việc thực nghiệm hệ thống đề xuất, bao gồm chỉ tiết về các bộ dữ liệu, cấu hình cài đặt và các độ đo đánh giá. Tiếp đến, học viên xem xét độ tin cậy của hệ thống bằng cách so sánh với các nghiên cứu liên quan.
Ngoài ra, các kịch bản thử nghiệm khác nhau cũng được tiến hành dé đưa ra những phân tích và đánh giá chỉ tiết. Chương 6: KET LUẬN VA HƯỚNG PHÁT TRIEN. Chương này sẽ tóm tắt lại những kết quả đạt được sau quá trình xây dựng và thực nghiệm hệ thống đề xuất, những ưu điểm và hạn chế còn tồn đọng cũng như các hướng phát triển tiếp theo của bài toán. CÁC CÔNG TRÌNH LIÊN QUAN CHƯƠNG2 CÁC CÔNG TRÌNH LIÊN QUAN Các phương pháp phân loại mã độc Android hiện nay đã đạt được những tiễn bộ đáng kế nhờ vào sự phát triển của các mô hình học máy và học sâu.
Tuy nhiên việc phân loại mã độc bị làm rối mã nguôn vẫn còn nhiều thách thức. Trong chương này, học viên tìm hiểu hai lĩnh vực chính của phân loại mã độc Android là dựa trên học máy-học sâu và bị làm rồi mã nguồn. Các công trình nghiên cứu được học viên khảo sát một cách chỉ tiết cùng với các bình luận đánh giá liên quan để có được cái nhìn tổng quát về xu hướng của nhiệm vụ này.1 Phan loại mã độc Android dựa trên học máy-học sâu Phân loại mã độc Android dựa trên học máy-học sâu là việc sử dụng các thuật toán máy học hoặc mạng nơ-ron nhiều lớp dé xác định các mã độc bằng cách phân tích các đặc trưng khác nhau từ ứng dụng Android. Có thê kể đến như đặc trưng về lệnh gọi API (Application Programming Interface — Giao diện lập trình ứng dụng), các quyền (permissions) được yêu cầu, lưu lượng mạng hay mã nhị phân.
Ưu điểm của việc này là khả năng phát hiện các biến thê mã độc mới, chưa từng thấy trước đây bang cách nhận dạng các mẫu phô biến với hành vi độc hại. Da có nhiều nghiên cứu tận dụng học máy-học sâu dé phân loại mã độc Android va đạt được kết quả khả quan. Dưới đây học viên trình bày các nghiên cứu nỗi bật trong số đó. Mercaldo và cộng sự [7] đã giới thiệu một phương pháp chuyền đổi chuỗi byte trong mã nguồn thành hình ảnh mức xám và sử dụng biểu đồ mức xám dé trích xuất các đặc trưng.
Những đặc trưng này sau đó được sử dụng làm đầu vào cho mạng nơ- ron sâu ba lớp. Lớp đầu tiên là để xác định xem mẫu được phân tích có phải là mã độc hay không. Nếu được xác định là mã độc, mạng sẽ tiễn hành phân loại họ cụ thể của nó ở lớp thứ hai và biến thể mà nó thuộc về ở lớp thứ ba. Vasan và cộng sự [8] xử lý một tệp nhi phân của mã độc nhất định bằng cách biểu dién nó dưới dạng một mảng gồm các số nguyên không dấu 8-bit.
Tiếp theo, họ sắp xếp vectơ này thành một mảng hai chiều và sử dụng bản đồ màu để trực quan mã nhị phân của mã độc. Việc phát hiện các họ mã độc được thực hiện bằng kiến trúc mạng CNN được tinh chỉnh. CÁC CÔNG TRÌNH LIÊN QUAN Unver và Bakour [9], [10], [11] đã đề xuất các phương pháp phân loại mã độc trên Android thông qua các đặc trưng hình ảnh kết hợp với học máy và học sâu. Trong [9], ba đặc trưng toàn cục và bốn đặc trưng cục bộ khác nhau đã được trích xuất từ hình ảnh mức xám của ứng dụng Android.
Tiếp đến, họ sử dụng một nhóm thuật toán từ ngữ trực quan dé xây dựng vecto đặc trưng. Trong [10], một trình phân loại bỏ phiếu tổng hợp kết hợp nhiều trình phân loại học máy khác nhau, được huấn luyện bằng cả đặc trưng cục bộ và toàn cục đã được đề xuất. Hai mô hình học sâu nổi tiếng là ResNet và InceptionV3 cũng được thử nghiệm dé so sánh kết quả. Trong [11], các tác giả tạo ra bốn tập dữ liệu về hình ảnh mức xám bằng cách chuyền đổi các tệp nguồn của ứng dụng Android (Manifest, DEX hay Dalvik Executable, Manifest- Resources.arsc và Manifest-DEX-Resources.arsc) và dùng một mô hình học sâu lai dé phân loại.
Naeem và cộng sự [12] đã trích xuất bytecode từ tệp APK sau đó chuyển đổi chúng thành vectơ 8-bit va từ vectơ 8-bit thành hình ảnh mức xám. Tiếp đến, một bộ mô tả kết hợp có tên CSGM (Combined SIFT-GIST Malware) được sử dụng để trích xuất các đặc trưng từ hình ảnh mức xám. Tương tự, Yadav và cộng sự [13] đã chuyên đôi bytecode được trích xuất từ tệp DEX thành hình anh mức xám với kích thước 256x256. Dé tạo ảnh màu, mỗi byte trong ảnh mức xám được ánh xạ tới một kênh màu đỏ-lục-lam (Red-Green-Blue - RGB) cụ thé dựa trên vị trí của nó trong tệp DEX (phần tiêu đề là màu đỏ, các định danh và định nghĩa lớp là màu xanh lá cây và phan dữ liệu là màu xanh nước biển).
Hình ảnh màu này sau đó được sử dụng làm đầu vào cho các mô hình học sâu được huấn luyện trước. Yen và cộng sự [14] áp dụng kỹ thuật xử lý ngôn ngữ tự nhiên (Natural Language Processing — NLP) dé đọc các từ trong tệp java được dịch ngược từ tệp APK và tính toán giá trị tầm quan trọng của từ bằng kỹ thuật TF-IDF (Term Frequency-Inverse Document Frequency — Tần suất thuật ngữ-Tần suất văn bản nghịch đảo). Dé tạo hình anh, các giá trị này được sắp xếp và nhóm lại bang hai thuat toán là Simhash và Djb2. Cuối cùng, ho dùng một mô hình học sâu tên là Caffe dé phân loại các hình ảnh đã tạo.
CÁC CÔNG TRÌNH LIÊN QUAN Almomani và cộng sự [15] chuyển đôi từng bytecode từ tệp DEX sang từng điểm ảnh dé tạo ảnh mức xám và ảnh màu. Họ đã sử dụng 16 mô hình CNNs tinh chỉnh đề phân loại mã độc. Kết quả chỉ ra ảnh màu hoạt động tốt hơn ảnh mức xám. Yang và Xiao [16] đã tạo một hình anh từ chuỗi bytecode bằng cách chuyển đôi ba số thập lục phân hai chữ số liên tiếp thành giá trị kênh mau RGB.
Lachtar và cộng sự [17] chuyền đôi một cách có hệ thống các lệnh gốc từ ứng dụng Android thành hình ảnh bằng cách sử dụng các đường cong lắp đầy không gian Hilbert và trực quan hóa entropy. Ding và cộng sự [18] chuyên đổi các Dalvik bytecode thành hình ảnh mức xám có kích thước 512x512. Họ sử dụng mô hình CNN với ban đồ đặc trưng bậc cao dé phan loai ma déc. DexRay [19], một hệ thống chuyền đổi các bytecode từ tệp DEX thành hình ảnh vecto mức xám đã được Daoudi và cộng sự dé xuất.
N ghiên cứu chi ra tac động của việc thay đôi kích thước hình ảnh đến hiệu suất phát hiện mã độc. Singh và cộng sự [20] đề xuất một kỹ thuật kết hợp các đặc trưng thủ công và đặc trưng CNN từ hình ảnh mức xám của ứng dụng Android. Kết quả chỉ ra việc sử dụng các hình ảnh mã độc cho hiệu suất tốt hơn so với đặc trưng thủ công. Rahali và cộng sự [21] giới thiệu một hệ thống có tên DIDroid giúp trích xuất tệp AndroidManifest.xml thành nhiều loại đặc trưng khác nhau.
Các tập hợp con của các đặc trưng sau đó được hình thành từ sự kết hợp của các đặc trưng này. Tiếp theo, họ sử dụng một bộ phân loại tổng hợp dé xác định các đặc trưng quan trọng nhất. Cuối cùng, các vecto đặc trưng được chuyên đồi thành các ảnh mức xám tương ứng và làm đầu vào cho các mô hình phân loại ảnh. Darwaish và cộng sự [22] đề xuất phương pháp ánh xạ các đặc trưng từ mã nguồn Android sang hình ảnh màu dé phân loại mã độc.
Đầu tiên, họ trích xuất hai tệp là AndroidManifest.xml và classes.dex từ tap tin APK. Các đặc trưng được trích xuất từ tệp AndroidManifest.xml được ánh xạ tới kênh màu xanh lá cây. Kênh mau đỏ là các đặc trưng từ tệp classes. Kênh màu xanh nước biển là các đặc trưng được trích xuất từ cả tệp AndroidManifest và tệp DEX.
Một phép nội suy đa biến đơn giản sau đó được dùng để tạo ra hình ảnh màu 64x64x3 từ ba kênh màu này. CÁC CÔNG TRÌNH LIÊN QUAN Geremias và cộng sự [23] đã giới thiệu một phương pháp phân loại dựa trên hình ảnh nhiều chế độ xem (multi-view). Họ chuyền đôi ba loại đặc trưng khác nhau bao gồm các lệnh gọi API, DEX và OpCode từ các tệp APK thành ba loại hình ảnh tương ứng. Sau đó, ba loại hình ảnh này được ghép lại với nhau dé tạo thành một hình ảnh màu duy nhất.
Ibrahim và cộng sự [24] trích xuất một tập hợp toàn diện các đặc trưng từ ứng dụng Android, bao gồm cả các đặc trưng mới như kích thước tệp, hàm băm mờ và xử lý chúng thông qua một mô hình học sâu. BoAu trong [25] tập trung vào thách thức nhãn nhiễu của bộ dữ liệu, trong đó các tác giả xử lý tất cả các mẫu như nhau trong quá trình huấn luyện, bao gồm cả các mau cứng dé tạo ra các ranh giới quyết định chính xác trong việc phân loại mã độc. Aboshady và cộng sự [26] sử dụng kỹ thuật đảo ngược và mô hình lập trình tự động dé cải thiện kha năng phát hiện mã độc Android sớm trước giai đoạn mã hóa và cài đặt ứng dụng.