Phân Tích Ứng Dụng Android Để Phát Hiện Và Phân Loại Malware Bằng Học Sâu

Luận văn tốt nghiệp nghiên cứu tốt nghiệp an toàn thông tin phân tích kết hợp các ứng dụng android để phát hiện và phân loại ứng, điều tra thực trạng, phân tích số liệu, đề xuất

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2023

78
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: MỤC TIÊU VÀ ĐỐI TƯỢNG NGHIÊN CỨU

1.1. Mục tiêu của đề tài

1.2. Đối tượng và phạm vi nghiên cứu

1.2.1. Đối tượng nghiên cứu

1.2.2. Phạm vi nghiên cứu

2. CHƯƠNG 2: KIẾN TRÚC VÀ ỨNG DỤNG ANDROID

2.1. Kiến trúc của Android

2.2. Các thành phần của ứng dụng Android

2.3. Phân loại ứng dụng Android

2.4. Các kỹ thuật Deep Learning được sử dụng

2.4.1. Multi-Layer Perceptron (MLP)

2.4.2. Recurrent Neural Network (RNN)

2.4.3. Gated Recurrent Unit (GRU)

2.4.4. Convolutional Neural Network (CNN)

2.4.5. Long Short-Term Memory (LSTM)

2.4.6. Bidirectional Long Short-Term Memory (BILSTM)

2.4.7. Convolutional Neural Network - Multi-Layer Perceptron (CNN-MLP)

2.5. Giới thiệu TensorFlow

2.6. Cài đặt TensorFlow

2.7. Công cụ phân tích ứng dụng Android

3. CHƯƠNG 3: CÔNG TRÌNH LIÊN QUAN

3.1. Dựa trên kỹ thuật phân tích tĩnh

3.2. Dựa trên kỹ thuật phân tích động

3.3. Dựa trên kỹ thuật phân tích kết hợp

3.4. Dựa trên kỹ thuật xử lý ảnh

3.5. Vấn đề còn tồn tại

3.6. Vấn đề cần tập trung, nghiên cứu giải quyết

4. CHƯƠNG 4: FRAMEWORK ĐỀ XUẤT

4.1. Mô hình tổng quan

4.2. Static Feature Extraction

4.3. Dynamic Feature Extraction

4.4. Feature Preprocessing

4.5. Deep Learning Classifier

4.5.1. Mô hình phát hiện ứng dụng độc hại

4.5.2. Mô hình phân loại loại ứng dụng độc hại

5. CHƯƠNG 5: TRÌNH BÀY, ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM

5.1. Môi trường thực nghiệm

5.2. Chỉ số đánh giá

5.3. Phát hiện ứng dụng Android độc hại

5.4. Phân loại loại ứng dụng Android độc hại

5.5. So sánh công nghệ

5.6. Phát triển ứng dụng Web

6. CHƯƠNG 6

7. CHƯƠNG 7: HƯỚNG PHÁT TRIỂN

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

TÓM TẮT KHÓA LUẬN

Tóm tắt

I. Tổng Quan Về Phân Tích Ứng Dụng Android Để Phát Hiện Malware

Trong bối cảnh công nghệ ngày càng phát triển, việc phát hiện và phân loại malware trên nền tảng Android trở nên cấp thiết. Các ứng dụng độc hại không chỉ gây hại cho thiết bị mà còn đe dọa đến thông tin cá nhân của người dùng. Việc áp dụng các phương pháp học sâu trong phân tích ứng dụng Android giúp nâng cao khả năng phát hiện và phân loại các loại malware khác nhau.

1.1. Tầm Quan Trọng Của Việc Phát Hiện Malware

Việc phát hiện malware là rất quan trọng để bảo vệ người dùng khỏi các mối đe dọa. Các ứng dụng độc hại có thể đánh cắp thông tin cá nhân, gây thiệt hại tài chính và làm giảm hiệu suất thiết bị.

1.2. Xu Hướng Phát Triển Ứng Dụng Android

Sự phát triển nhanh chóng của các ứng dụng Android đã tạo ra môi trường thuận lợi cho malware. Theo thống kê, số lượng ứng dụng độc hại ngày càng gia tăng, đòi hỏi các giải pháp phát hiện hiệu quả hơn.

II. Thách Thức Trong Việc Phát Hiện Malware Trên Android

Mặc dù có nhiều phương pháp phát hiện malware, nhưng vẫn tồn tại nhiều thách thức. Các kỹ thuật như code obfuscationanti-sandbox làm cho việc phát hiện trở nên khó khăn hơn. Điều này yêu cầu các nhà nghiên cứu phải liên tục cập nhật và cải tiến các phương pháp phát hiện.

2.1. Kỹ Thuật Che Giấu Mã Nguồn

Nhiều ứng dụng độc hại sử dụng kỹ thuật che giấu mã nguồn để tránh bị phát hiện. Điều này làm giảm hiệu quả của các phương pháp phân tích tĩnh và động.

2.2. Thách Thức Từ Các Mô Hình Học Máy

Các mô hình học máy cần được đào tạo trên tập dữ liệu lớn và đa dạng để đạt được độ chính xác cao. Tuy nhiên, việc thu thập và gán nhãn dữ liệu là một thách thức lớn.

III. Phương Pháp Phát Hiện Malware Bằng Học Sâu

Phương pháp học sâu đã được áp dụng để phát hiện và phân loại malware trên Android. Các mô hình như Convolutional Neural Network (CNN)Recurrent Neural Network (RNN) cho thấy hiệu quả cao trong việc phân tích hành vi của ứng dụng.

3.1. Sử Dụng CNN Trong Phát Hiện Malware

Mô hình CNN có khả năng phân tích hình ảnh và mã nguồn của ứng dụng, giúp phát hiện các mẫu độc hại một cách hiệu quả.

3.2. Ứng Dụng RNN Để Phân Loại Malware

RNN có thể xử lý dữ liệu tuần tự, giúp phân tích hành vi của ứng dụng theo thời gian, từ đó phân loại các loại malware khác nhau.

IV. Kết Quả Nghiên Cứu Về Phát Hiện Malware

Nghiên cứu cho thấy rằng việc kết hợp các phương pháp phân tích tĩnh và động mang lại kết quả tốt hơn trong việc phát hiện malware. Độ chính xác đạt được lên đến 98.08% trong việc phát hiện ứng dụng độc hại.

4.1. Đánh Giá Hiệu Suất Mô Hình

Các mô hình học sâu đã được đánh giá trên nhiều tập dữ liệu khác nhau, cho thấy hiệu suất vượt trội so với các phương pháp truyền thống.

4.2. Ứng Dụng Thực Tiễn Của Nghiên Cứu

Kết quả nghiên cứu có thể được áp dụng trong việc phát triển các công cụ bảo mật cho người dùng Android, giúp bảo vệ họ khỏi các mối đe dọa từ malware.

V. Kết Luận Và Hướng Phát Triển Tương Lai

Việc phát hiện và phân loại malware trên Android là một lĩnh vực nghiên cứu quan trọng. Các phương pháp học sâu đang mở ra nhiều cơ hội mới trong việc bảo vệ người dùng. Tương lai sẽ cần nhiều nghiên cứu hơn nữa để cải thiện độ chính xác và hiệu quả của các phương pháp phát hiện.

5.1. Hướng Nghiên Cứu Mới

Cần nghiên cứu thêm về các kỹ thuật mới trong học sâu để nâng cao khả năng phát hiện và phân loại malware.

5.2. Tích Hợp Công Nghệ Mới

Việc tích hợp các công nghệ mới như trí tuệ nhân tạo và học máy vào các ứng dụng bảo mật sẽ giúp nâng cao hiệu quả phát hiện malware.

10/07/2025
Khóa luận tốt nghiệp an toàn thông tin phân tích kết hợp các ứng dụng android để phát hiện và phân loại ứng dụng độc hại bằng cách sử dụng học sâu

Trích đoạn nội dung tài liệu

Đặ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ủa thiế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ại Android. 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.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. 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ạng internet, 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ằm bả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ã code độ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 hai bă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ặc phâ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ực thi ứ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ương phá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à mộ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 được nhiề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ệc kế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. 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 o Benign o Malware - Dé xuất mô hình hoc sâu dé phân loại ứng dụng thành một trong các loại ứng dụng độc hại sau: o Adware o Banking Malware o 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. Đối tượng và phạm vi nghiên cứu 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.

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 được cá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ười dù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. Kiến trúc và Ứng dụng Android 2.

Kiến trúc của Android System Apps Calendar Camera Java API Framework Managers Content Providers 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 Linux Kernel Drivers Audio Binder (IPC) Display Camera d Memory Power Management Hình 2.1: Ngăn xếp phan mềm Android Android! là một nền tảng mã nguồn mở, được xây dựng dựa trên hạt nhân Linux và bao gồm các thành phần sau: - 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. Đường dẫn: https://developer.com/guide/platform - 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. 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. Đường dẫn: https://developer.com/guide/components/fundamentals Bên cạnh đó, ứng dụng Android cũng có thể sử dụng các permissions để truy cập một số tài nguyên hệ thống hoặc phần cứng của thiết bị.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ