Chương 1. TONG QUAN DE TÀI 1. Giới thiệu đề tài Android là tên gọi của hệ điều hành phổ biến nhất hiện nay trên các thiết bị di động, được phát triển trên nền tảng Linux. Thế giới hiện nay phát triển cực kì nhanh chóng, đặc biệt là trong những lĩnh vực liên quan đến công nghệ.
Các thiết bị di động nói chung và các thiết bị Android nói riêng đang ngày càng phát triển mạnh mẽ và da dạng. Phát triển lớn mạnh và rộng khắp khiến vẫn đề bảo mật trên các thiết bị di động cũng trở thành mối quan tâm rất lớn của các nhà phát triển phần mềm cũng như người dùng. Có rất nhiều các mối de doa an ninh như phần mém lừa đảo (Malware), ứng dung lừa đảo (Phising), lỗ hong bảo mật (Vulnerabilities). Vậy nên kiểm thử xâm nhập (Penetration Testing - Pentest) đối với các thiết bị và ứng dụng Android dang trở thành một chủ dé quan trọng và có sự phát triển mạnh mẽ nhanh chóng.
Trong khoá luận này em đã thực hiện phân tích và xây dựng thêm cho một công cu dùng đề kiểm thử thâm nhập Android tên RiskInDroid+. Công cu này được tham khảo [1]. Mục đích xây dựng công cụ nay là dé đánh giá mức độ rủi ro của các ứng dụng Android dựa trên các quyền mà ứng dụng yêu cầu. RiskInDroid+ sử dụng kết hợp Java và Python trong quá trình xây dựng ứng dụng.
Một số công trình nghiên cứu tương tự 1. Phân Tích Quyền (Permission Analysis): "Android Permissions Demystified" [2] Các ứng dụng bên thứ ba được hệ điều hành Android cung cấp một API bao gồm quyên truy cập phần cứng điện thoại, cài đặt và dữ liệu người dùng. Quyền này liên quan đến vấn đề bảo mật được kiểm soát bởi hệ thống cấp quyền ứng dụng tại thời điểm cài đặt. Các tác giả đã xây dựng công cu Stowaway dé phát hiện quyền truy cập quá mức trong các ứng dụng Android đã biên dịch.
Công cụ xác định tập hợp các lệnh gọi API mà một ứng dụng sử dụng và sau đó ánh xạ chúng tới các quyền tương ứng. Dé phát hiện quyên truy cập quá mức, trong bài nghiên cứu, tác giả Andrienne Porter Felt và các cộng sự đã sử dụng các công cụ kiểm thử tự động trên API Android để xây dựng bản đồ các quyền cần thiết. Sau khi áp dụng Stowaway vào 940 ứng dụng Android trên chợ Android, các tác giả phát hiện khoảng một phần ba các ứng dụng yêu cầu quyền quá mức. Nguyên nhân thường do tài liệu API không đầy đủ khiến các nhà phát triển phải thêm quyền để đảm bảo cho ứng dụng hoạt động đúng như mong đợi.
Stowaway bao gồm hai phần: một công cụ phân tích tĩnh xác định các lời gọi API mà một ứng dụng thực hiện và một bản đồ quyền xác định các quyền cần thiết cho mỗi lời gọi API. Những đóng góp của nghiên cứu này: e_ Phát triển Stowaway. e Xác định và định lượng các mau lỗi của nhà phát triển dẫn đến quyền truy cập quá mức. e Xác định chính sách kiểm soát truy cập của Android.
Phân Tích Tĩnh (Static Analysis) a. "FlowDroid: Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps" [3] Người dùng điện thoại thông minh hay bị làm phiền bởi các ứng dụng được lập trình cầu thả dẫn đến việc rò ri dữ liệu quan trọng một cách tình cờ, hoặc các ứng dụng độc hại lợi dụng các quyền được cấp để sao chép dữ liệu một cách cố ý. Trong công trình nghiên cứu các tác giả đã giới thiệu FlowDroid là một phương pháp phân tích luồng tĩnh mới dành cho các ứng dụng Android. FlowDroid phân tích bytecode và các tệp cấu hình của ứng dụng để tìm các rò ri quyén riéng tu tiềm An, hoặc do lập trình câu thả hoặc được tạo ra với ý định độc hại.
Những đóng góp của công trình này: o Phát triển FlowDroid o Cung cấp DroidBench, một bộ benchmark micro mới, mở và toàn diện để so sánh hiệu quả của các phân tích luồng cho Android o Các thí nghiệm áp dụng FlowDroid cho hơn 500 ứng dụng từ Google Play và khoảng 1000 ứng dụng độc hại từ dự án VirusShare. "DroidSafe: Information-Flow Analysis of Android Applications in DroidSafe" [4] Là một công cụ phân tích luồng thông tin tĩnh rồi báo cáo các rò ri tiềm ân của thông tin nhạy cảm trong các ứng dụng Android. DroidSafe kết hợp mô hình toàn diện, chính xác và chỉ tiết của Android runtitme với các quyết định thiết kế phân tích tinh cho phép phân tích các ứng dụng lớn. Kết quả phân tích thực nghiệm cho thấy: o DroidSafe đạt được độ chính xác và độ tin cậy cao trong phân tích luồng thông tin của Android o Phát hiện các rò ri luồng thông tin độc hại được chèn vào 24 ứng dụng Android thực tế bởi ba tô chức Red-Team độc lập Với việc đánh giá DroidSafe trên 24 ứng dụng Android đã nói ở trên cho kết quả: o Phát hiện chính xác tất cả 69 luồng độc hại trong các ứng dụng này (trong khi báo cáo tổng số luồng có thé quản lý được) o FlowDroid [4] + IccTA (phương pháp phân tích hiện dai) chi phát hiện được 6 trong số 69 luồng độc hai và có ty lệ tổng số luồng báo cáo lớn hơn số luồng độc hại thực sự được báo cáo.
Ngoài ra, DroidSafe còn được đánh giá trên DroidBench [4] với một bộ 94 bai kiểm tra luồng thông tin Android từ các nhà phát triển FlowDroid + IccTA. Cuối cùng các tác giả còn đánh giá DroidSafe trên một bộ 40 bài kiểm tra luồng thông tin rõ ràng của Android do họ tự phát triển dé bé sung cho DroidBench. Cả hai bài kiếm tra đều cho kết quả rất tốt. Học Máy Trong Bảo Mật Di Động: "Drebin: Effective and Explainable Detection of Android Malware in Your Pocket" [5] Bài bao giới thiệu Drebin, một phương pháp nhẹ nhàng dé phat hiện phan mềm độc hại trên Android, cho phép xác định các ứng dụng độc hại trực tiếp trên điện thoại thông minh.
Có ba ưu điểm chính được nhắn mạnh trong bài báo: o_ Phát hiện hiệu quả: Drebin kết hợp phân tích tĩnh và học máy, cho phép xác định phần mềm độc hại trên Android với độ chính xác cao và ít báo động giả. Điều quan trọng là DREBIN không phụ thuộc vào các mẫu phát hiện được tạo thủ công, giúp nó thích ứng tốt hơn với các loại phần mềm độc hại mới o Kết quả có thê giải thích: Drebin không chi phân loại ứng dụng là độc hại hay lành tính mà còn cung cấp khả năng giải thích cho kết quả. Băng cách truy vết ngược các mẫu đặc trưng trong không gian vectơ, người dùng có thể hiểu được tại sao một ứng dụng cụ thể bị công cụ này đánh giá là độc hại o Phân tích hợp lý: Drebin sử dụng các kỹ thuật phân tích và học tập tuyến tính. Điều này cho phép Drebin vừa phát hiện phần mềm độc hại trực tiếp trên điện thoại thông minh, vừa phân tích một lượng lớn ứng dụng trong thời gian hợp lý 1.
Mục tiêu, đối tượng, phạm vi nghiên cứu 1. Mục tiêu của dé tài Phân tích rủi ro trên Android nhằm cung cấp các chỉ số cho người dùng dé đánh giá độ tin cậy của các ứng dụng mà họ sắp cài đặt. Có nhiều đề xuất về việc tính toán giá trị rủi ro của một ứng dụng nhưng nhiều trong số đó cung cấp các giá trị không đáng tin cậy. Với mong muốn khắc phục hạn chế, dé tài này giới thiệu RiskInDroid+.
Công cụ này tính toán giá tri rủi ro dựa trên các quyên mà ứng dụng yêu câu và sử dụng các kỹ thuật học máy nhằm phục vụ mục đích. Công cụ này được thừa kế lại từ RiskInDroid - ứng dụng đã thực hiện các đánh giá thực nghiệm rộng rãi trên hon 112K ứng dụng và 6K mẫu phần mềm độc hại. Quá trình đánh giá thực nghiệm cho thấy RiskInDroid cũng như RiskInDroid+ đã đáp ứng được nguyện vọng của đề tài nghiên cứu này. Doi Tượng Nghiên Cứu e_ Chỉ số nguy hại của các ứng dụng Android: Nghiên cứu tập trung vào việc tinh toán khả năng rủi ro các file apk đã và đang được phát hành trên nhiều nguồn như Google Play Store,.
Nó sẽ bao gồm các ứng dụng phổ biến và cà những ứng dụng ít được biết đến. e_ Quyên truy cập (Permissions): Tập trung phân tích các quyền mà ứng dụng yêu cầu, xác định mức độ rủi ro dựa trên các quyền này. Phạm Vi Nghiên Cứu e Phân tích quyén truy cập: Dịch ngược, phân tích và đánh giá các quyền (permissions) mà các ứng dụng Android yêu cầu, dựa trên cơ sở đữ liệu về quyên và các nghiên cứu trước đây. e Tính toán mức độ rủi ro: Phát triển và thử nghiệm các mô hình đánh giá rủi ro, bao gồm các thuật toán học máy để xác định và dự đoán mức độ rủi ro.
e Tích hợp va thử nghiệm công cụ: Tích hợp các phương pháp va mô hình vào công cụ, sau đó thử nghiệm công cụ nảy trên một tập hợp các ứng dụng Android dé đánh giá hiệu quả và tính chính xác. e Đánh giá và so sánh: So sánh công cụ này với các công cụ hiện có khác trong lĩnh vực phân tích bảo mật và quyền truy cập trên Android. Hệ điều hành Android 2. Kiến trúc của hệ điều hành Android [6] Android hiện nay đang thuộc quyền sở hữu của là Google.
Đây là một nền tang di động mã nguồn mở, cho phép các nhà phát triển và nhà sản xuất thiết bị tuỳ chỉnh và cải tiên theo nhu câu của họ. Điêu này tạo ra sự đa dạng và linh hoạt trong việc phát triển các ứng dụng và thiết bị di động. Android được xây dựng dựa trên nhân Linux - Linux kernel và có câu trúc phân lớp bao gồm : Nhân Lunix (The Linux Kernel) là nền móng xây dựng nên Android, điều khiển phan cứng như bộ nhớ, CPU và thiết bị và quan lý tài nguyên hệ thống. Cung cấp nhiều chức năng quan trọng như phân luông, quản lý bộ nhớ, quy trình, bảo mật, , mạng.
Lớp trửu tượng phần cứng (Hardware abstraction layer - HAL) đóng vai trò trung gian giữa phần mềm và phần cứng thiết bị, giúp ứng dụng truy cập và sử dụng phần cứng sẵn có mà không cần biết chỉ tiết về cách thức hoạt động của phần cứng. Android Runtime: Là môi trường thực thi cho ứng dụng. Với Android phiên bản 5.0 (API cấp 21) trở lên, mỗi ứng dụng chạy với ART riêng. Trước đây, Dalvik là Android runtime.
Cung cấp một số tính năng như thu gom rác, gỡ lỗi và tối ưu hoá hiệu suất. ART chuyển đổi mã bytecode của ứng dụng Android thành mã máy mà CPU có thể thực thi.