MỞ ĐẦU 1. Tên đề tài NHẬN DIỆN MÃ ĐỘC ANDROID DỰA TRÊN XỬ LÝ VĂN BẢN (TEXT-BASED ANDROID MALWARE CLASSIFICATION) 1. Dat van đề Android đã rất phổ biến cho smartphone và các dòng tablet ké từ năm 2012. Vào năm 2019, khoảng 86,6% điện thoại thông minh được bán trên toàn cầu dựa trên Android.
Tính đến cuối tháng 4 năm 2020, đã có hơn 2,8 triệu ứng dụng trên Google Play, đây là cửa hàng chính thức dành cho các ứng dụng Android [1]. Sự phát triển trong lĩnh vực này cũng đã dẫn đến sự gia tăng nhanh chóng của phần mềm độc hại Android trong những năm gần đây. Do nhiều yếu tô khác nhau, chang hạn như chế độ sinh thái mở của ứng dụng Android, quản lý quyền chỉ tiết thô và khả năng gọi mã của bên thứ ba, nhiều bề mặt tan công bảo mật đã xuất hiện, đe dọa nghiêm trọng đến tính toàn vẹn của ứng dụng Android. Thống kê cho thấy chỉ riêng trong năm 2016, hơn 3,25 triệu ứng dụng Android bị nhiễm phần mềm độc hại đã được phát hiện, điều đó có nghĩa là cứ khoảng 10 giây lại có một ứng dụng phần mềm độc hại Android mới được tìm thấy [1].
Các mã độc android đã biến hóa ngày càng tỉnh vi và phức tạp, trốn tránh được các hệ thống đánh giá và phát hiện mã độc, khiến các kiến trúc đó trở nên lỗi thời. Phần mềm độc hại Android cũng phát triển thịnh vượng bằng cách tận dụng các ứng dụng Android đang phát triển với hơn 10 lần sự gia tăng số lượng phần mềm độc hại Android được phát hiện từ năm 2012 đến 2018. Hơn nữa, lãi hơn 12 nghìn mẫu phần mềm độc hại Android mới đã gặp phải hàng ngày trong năm 2018. Ngoài tốc độ nhanh sự phát triển của phần mềm độc hại, các mẫu phần mềm độc hại Android mới được phát hành tinh vi hơn các mẫu đã xuất hiện vải năm trước về việc tron tránh sự phát hiện của phần mềm chống vi-rút thông qua mã che giấu va mã hóa [1].
Trong báo cáo này, chúng tôi đề xuất áp dụng các mô hình Deep Learning mới thiên hướng về xử lý ngôn ngữ tự nhiên phù hợp để thực nghiệm trong việc phát hiện một phần mềm Android độc hại. Cách tiếp cận này tương đối khác so với xử lý file phố biến như định CSV khi nói về cách xử lý văn bản và cách mô hình học nội dung file. Mô hình được huấn luyện với hơn 10,000 mẫu file APK, trích xuất số lượng lớn thuộc tính bao gồm cả tinh va động phục vu cho việc giúp mô hình tiếp cận và hiểu cấu trúc hành động của file mã độc. Kết quả của chúng tôi cho thay mô hình xử ly ngôn ngữ tự nhiên NNLM Net Neural Language Model mang lại hiệu quả nổi bật với accuracy 99.02% và những thông số đo lường khác cũng cho kết quả khả quan.
Kết quả của luận án này được kỳ vọng sẽ cung cấp một cách tiếp cận mới dé phát hiện phần mềm độc hại trên Android, mang lại lợi thế về mặt tự động hóa và khả năng phát hiện các chủng phần mềm độc hại mới và đang phát triển. Phát hiện nay sẽ góp phan nâng cao hiệu quả và độ chính xác tổng thé của các hệ thống phát hiện phần mềm độc hại của Android, từ đó củng có tính bảo mật và quyên riêng tư của người dùng thiết bị di động. Mục tiêu của dé tài e Tìm hiểu về trí tuệ nhân tao (AI — Artificial Intelligence) và ứng dụng của AI hoặc các module liên quan vảo các hệ thống phát hiện mã độc Android e = Tim hiểu cách thức xây dựng Malware Android, cài đặt quyền, tạo các đường kết nối không đáng tin cậy ra bên ngoài internet e Tìm hiểu các model AL/Machine Learning/Deep Learning phát hiện mã độc dựa trên xử lý ngôn ngữ tự nhiên e = Thử nghiệm và xây dựng hệ thống phát hiện mã độc Android, xác thực độ chính xác và hiệu năng, thời gian phân tích.Đối tượng và phạm vi nghiên cứu 1. Đối tượng nghiên cứu Khóa luận này hướng đến: e Cac mô hình phục vụ việc phát hiện mã độc Android dựa trên xử lý ngôn ngữ tự nhiên e Công cụ phân tích tinh và động, trích xuất đầy đủ và tương đối lớn sô lượng thuộc tính nhăm phục vụ cho việc phát hiện, phân loại 1.
Phạm vi nghiên cứu Nghiên cứu mã độc trên thiết bi Android thuộc các dong SMS, Banking, Adware, Riskware và các ứng dung được xem là bình thường, lành tính. Phạm vi nghiên cứu sé không bao gồm các nền tảng di động khác ngoài hệ điều hành Android và các loại độc hại khác như phần mềm độc hại trên máy tính như các file PE(Window) hay ELF(Linux). 13 CHƯƠNG 2: CƠ SỞ LÝ THUYÉT 2. Tổng quan về hệ điều hành Android và tính thực tiễn hiện nay 2.
Kiến trúc Android Kiến trúc của hệ điều hành Android bao gồm nhiều thành phần khác nhau dé hỗ trợ đa dạng nhu cầu của các thiết bị Android. Phần mềm Android được xây dựng trên nền tảng mã nguồn mở Linux kernel và cung cấp một bộ thư viện C/C++ thông qua dịch vụ framework ứng dụng. Trong số các thành phần của hệ điều hành Android, Linux Kernel chịu trách nhiệm cung cấp các chức năng chính của hệ điều hành cho điện thoại thông minh. Đồng thời, Máy ảo Dalvik (DVM) là nền tảng để chạy các ứng dụng Android.
Các thành phần chính của kiến trúc Android như sau: e Cac ứng dụng e Framework ứng dụng e Android Runtime (bộ chương trình chạy lệnh biên dich bởi compiler cho môi trường Android) e Thư viện nền tảng e Linux kernel 14 == EBec man oe - Hình 1. Các thành phan của ứng dung Android Các ứng dụng Ứng dụng là một thành phần quan trọng trong kiến trúc Android, đặt ở lớp trên cùng. Trên hệ thống Android, có các ứng dụng cài sẵn như nhà, danh bạ, máy ảnh, thư viện, v. Ngoài ra, người dùng có thê tải xuống các ứng dụng từ cửa hàng ứng dụng bên thứ ba như ứng dụng trò chuyện, trò chơi, v., và chúng sẽ chỉ được cải đặt trên lớp này.
Nó chạy trong môi trường Android Runtime với sự trợ giúp của các lớp và dịch vụ do khung ứng dụng cung cấp. Framework của ứng dụng Khung ứng dụng trong hệ thống Android đóng vai trò quan trọng trong việc tạo ứng dụng. Nó cung cấp một số lớp quan trọng đề truy cập phần cứng và quản lý giao diện người dùng cũng như tài nguyên của ứng dụng. Tóm lại, khung ứng dụng cung 15 cấp các dich vụ dé ta có thé tạo một lớp cụ thể và sử dụng lớp đó một cách thuận tiện cho việc phát triển ứng dụng.
Khung ứng dụng Android bao gồm các loại trình quản lý hoạt động, trình quản lý thông báo, hệ thống giao diện người dùng, trình quản lý gói, và nhiều thành phần khác. Các thành phần này đóng vai trò quan trọng trong việc phát triển ứng dụng, đáp ứng các yêu cầu cần thiết cho quá trình phát triển. Android Runtime Môi trường Android Runtime (ART) là một phần quan trọng trong hệ thống Android. Nó bao gồm các thành phan như thư viện lõi và máy ảo Dalvik (DVM).
Vai trò cơ bản của ART là cung cấp nền tảng cho framework ứng dụng và tăng cường khả năng của ứng dụng thông qua sự hỗ trợ từ các thư viện cốt lõi. Tuy nhiên, DVM được thiết kế và tối ưu hóa đặc biệt cho Android dé dam bảo hiệu suất tốt khi chạy nhiều phiên bản trên các thiết bị khác nhau. Nó dựa trên lớp nhân Linux dé quản lý luồng và bộ nhớ ở mức thấp. Sử dụng các thư viện cốt lõi, chúng ta có thê phát triên ứng dụng Android bằng ngôn ngữ lập trình JAVA hoặc Kotlin tiêu chuân.
Thư viện nên tảng Thư viện Nền tảng Android bao gồm một loạt các thư viện lõi được viết bang C/C++ và các thu viện dựa trên Java như Phương tiện, Đồ họa, Trình quản lý bề mặt, OpenGL, và nhiều thư viện khác. Những thư viện này đóng vai trò quan trọng trong việc hỗ trợ phát triển ứng dụng trên nền tảng Android. Thư viện phương tiện cung cấp hỗ trợ dé phát và ghi định dang âm thanh và video. Trinh quản lý bê mặt chịu trách nhiệm quản lý quyền truy cập vào hệ thống con hiên thị.
SGL và OpenGL đều là giao điện chương trình ứng dụng (API) đa ngôn ngữ, đa nền tảng được sử dụng cho đồ họa máy tính 2D và 3D. 16 SOLite cung cấp hỗ trợ cơ sở dữ liệu và FreeType cung cấp hỗ trợ phông chữ. Web-Kit - Công cụ trình duyệt web mã nguồn mở này cung cấp tất cả các chức năng để hiển thị nội dung trang web và đơn giản hóa việc tải trang. SSL (Lớp cổng bảo mật) là công nghệ bảo mật dé thiết lập liên kết được mã hóa giữa máy chủ web và trình duyệt web.
Linux Kernel Linux Kernel đóng vai trò trung tâm trong kiến trúc của Android. Nó điều khiến và quản lý các trình điều khiển quan trọng như trình điều khiển màn hình, trình điều khiển máy ảnh, trình điều khiển Bluetooth, trình điều khiển âm thanh, trình điều khiển bộ nhớ, và nhiều trình điều khiển khác, cần thiết cho hoạt động của hệ thống trong quá trình chạy. Nhân Linux sẽ cung cấp một lớp trừu tượng giữa phần cứng thiết bị và các thành phần khác của kiến trúc Android. Nó chịu trách nhiệm quản lý bộ nhớ, năng lượng, thiết bi, v.
Cac tính năng cua nhân Linux là: e Bảo mật: Nhân Linux xử lý bao mật giữa ứng dung và hệ thống. e Quản lý bộ nhớ: Nó xử lý hiệu quả việc quan lý bộ nhớ do đó cung cấp sự tự do dé phát triển ứng dụng của chúng tôi. e_ Quản lý quy trình: Nó quản lý quy trình tốt, phân bồ tài nguyên cho các quy trình bất cứ khi nào chúng cần. e Ngăn xếp mang: Nó xử lý hiệu quả giao tiếp mạng.
e_ Mô hình trình điều khiển: Nó đảm bảo rằng ứng dụng hoạt động bình thường trên thiết bị và nhà sản xuất phần cứng chịu trách nhiệm xây dựng trình điều khiển của họ vào bản dựng Linux. Phân nhóm ứng dụng Android Ứng dụng di động được chia thành 4 loại sau: e Native app e Web app e Hybrid app e Progressive Web App Native app Ca Android va iOS đều cung cấp một bộ công cụ phát triển phan mềm (SDK - Software Development Kit), cho phép các lập trình viên tạo và phát triển ứng dụng độc lập cho từng hệ điều hành. Các ứng dụng này được gọi là Native App. Cấu trúc của một Native App Platform im pall Windows Specific C# UI Layer UI Layer Logic Business Logic Runtime is Shared Code Shared Code Các ứng dụng Native có hiệu suất xử lý nhanh và độ tin cậy cao.