Phát Hiện Khả Năng Rò Rỉ Thông Tin Riêng Tư Trong Ứng Dụng Android

Khám phá khả năng rò rỉ thông tin riêng tư trong ứng dụng Android qua luận văn tốt nghiệp, cung cấp cái nhìn sâu sắc về bảo mật dữ liệu.

Trường đại học

Trường Đại Học Quy Nhơn

Chuyên ngành

Khoa Học Máy Tính

Người đăng

Ẩn danh

Thể loại

luận văn tốt nghiệp

2021

60
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN VỀ ANDROID VÀ VẤN ĐỀ RÒ RỈ THÔNG TIN RIÊNG TƯ TRONG CÁC ỨNG DỤNG

1.1. GIỚI THIỆU TỔNG QUAN VỀ ANDROID

1.1.1. Kiến trúc chung của Android

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

1.1.3. Kiến trúc tệp APK

1.1.4. Tính năng bảo mật của Android

1.1.5. Mô hình phân quyền của Android

1.1.6. Các cấp độ bảo vệ quyền của Android

1.1.7. Phần mềm độc hại Android

1.2. RÒ RỈ VÀ PHƯƠNG PHÁP PHÂN TÍCH PHÁT HIỆN RÒ RỈ THÔNG TIN RIÊNG TƯ

1.2.1. Rò rỉ thông tin và tính bảo mật trong các ứng dụng Android

1.2.2. Nguyên nhân chính làm rò rỉ thông tin trên Android

1.2.3. Các phương pháp phân tích để phát hiện rò rỉ thông tin

1.2.3.1. Phương pháp phân tích tĩnh
1.2.3.2. Phương pháp phân tích động

1.3. TIỂU KẾT

2. CHƯƠNG 2: PHÁT HIỆN KHẢ NĂNG RÒ RỈ THÔNG TIN RIÊNG TƯ TRONG ỨNG DỤNG ANDROID SỬ DỤNG SVM

2.1. PHÁT HIỆN KHẢ NĂNG RÒ RỈ THÔNG TIN TRONG ỨNG DỤNG ANDROID THEO HƯỚNG HỌC MÁY

2.1.1. Một số phương pháp phân tích phát hiện rò rỉ thông tin theo hướng học máy

2.1.2. Phương pháp phân tích dựa vào các quyền truy cập theo hướng học máy

2.1.3. Phân tích dựa trên mã nguồn theo hướng học máy

2.1.4. Phát hiện rò rỉ thông tin riêng tư theo hướng mô hình học máy

2.1.5. Kiến trúc chung của các mô hình học máy

2.2. SỬ DỤNG SVM ĐỂ PHÁT HIỆN RÒ RỈ THÔNG TIN TRONG ỨNG DỤNG ANDROID

2.2.1. Cơ sở toán học của mô hình SVM

2.2.2. Kiến trúc của mô hình SVM trong việc phát hiện rò rỉ thông tin

2.2.3. Ưu điểm mô hình SVM trong việc phát hiện rò rỉ thông tin

2.3. ĐẶC TRƯNG TRONG CÁC ỨNG DỤNG ANDROID

2.3.1. Đặc trưng quyền truy cập

2.3.2. Đặc trưng Broadcast Receivers

2.3.3. Đặc trưng các lớp API

2.3.4. Tiền xử lý dữ liệu và lựa chọn đặc trưng

2.3.5. Vector hóa các đặc trưng

2.3.6. Giới thiệu về phương pháp đánh giá chéo

2.4. TIỂU KẾT

3. CHƯƠNG 3: CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ

3.1. GIỚI THIỆU PHÁT BIỂU BÀI TOÁN

3.1.1. Phát biểu bài toán

3.2. CÀI ĐẶT MÔ PHỎNG

3.2.1. Môi trường và ngôn ngữ lập trình

3.2.2. Công cụ và thư viện

3.2.3. Bộ dữ liệu

3.2.4. Trích xuất và lựa chọn đặc trưng

3.2.5. Đặc trưng quyền truy cập

3.2.6. Đặc trưng đồ thị luồng điều khiển

3.2.7. Vector hóa đặc trưng

3.3. KẾT QUẢ CÀI ĐẶT THỰC NGHIỆM VÀ ĐÁNH GIÁ

3.3.1. Kết quả cài đặt

3.3.2. Đánh giá kết quả của mô hình

3.3.3. Nhận xét và kết quả cài đặt

3.4. TIỂU KẾT

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

DANH MỤC TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về khả năng rò rỉ thông tin riêng tư trong ứng dụng Android

Trong bối cảnh công nghệ hiện đại, việc bảo vệ thông tin riêng tư trong các ứng dụng Android trở thành một vấn đề cấp bách. Android, với sự phổ biến rộng rãi, đã trở thành mục tiêu chính cho các cuộc tấn công mạng. Các ứng dụng độc hại có thể dễ dàng xâm nhập và làm rò rỉ thông tin cá nhân của người dùng. Theo báo cáo của International Data Corporation (IDC), Android chiếm 82,2% thị phần điện thoại thông minh, cho thấy sự cần thiết phải nâng cao bảo mật cho nền tảng này.

1.1. Tình hình rò rỉ thông tin trong ứng dụng Android

Rò rỉ thông tin riêng tư trong ứng dụng Android đang gia tăng. Nhiều ứng dụng hợp pháp cũng có thể trở thành nguồn gốc của các lỗ hổng bảo mật. Các cuộc tấn công mạng thường nhắm vào dữ liệu nhạy cảm như thông tin tài khoản ngân hàng, danh bạ và vị trí của người dùng.

1.2. Nguyên nhân gây ra rò rỉ thông tin

Nguyên nhân chính dẫn đến rò rỉ thông tin bao gồm việc thiếu bảo mật trong mã nguồn, lỗ hổng trong hệ điều hành và việc cấp quyền không cần thiết cho ứng dụng. Các nhà phát triển thường không chú ý đến việc kiểm tra an ninh thông tin, dẫn đến việc ứng dụng dễ bị tấn công.

II. Vấn đề bảo mật trong ứng dụng Android và thách thức hiện tại

Bảo mật ứng dụng Android gặp nhiều thách thức do tính chất mã nguồn mở của hệ điều hành. Các ứng dụng độc hại có thể dễ dàng được phát triển và phân phối thông qua các kho ứng dụng không chính thức. Điều này tạo ra một môi trường thuận lợi cho các cuộc tấn công mạng. Hệ thống bảo mật hiện tại chưa đủ mạnh để ngăn chặn các cuộc tấn công tinh vi.

2.1. Các loại tấn công phổ biến trên ứng dụng Android

Các loại tấn công phổ biến bao gồm tấn công thông qua phần mềm độc hại, lừa đảo và tấn công từ chối dịch vụ. Những tấn công này không chỉ làm rò rỉ thông tin mà còn có thể gây thiệt hại nghiêm trọng cho người dùng và doanh nghiệp.

2.2. Thách thức trong việc phát hiện và ngăn chặn rò rỉ thông tin

Việc phát hiện và ngăn chặn rò rỉ thông tin gặp khó khăn do sự phát triển nhanh chóng của công nghệ. Các ứng dụng độc hại ngày càng tinh vi, khó phát hiện hơn. Hệ thống bảo mật hiện tại cần được cải tiến để đáp ứng kịp thời với các mối đe dọa mới.

III. Phương pháp phát hiện rò rỉ thông tin trong ứng dụng Android

Để phát hiện khả năng rò rỉ thông tin trong ứng dụng Android, nhiều phương pháp đã được nghiên cứu và áp dụng. Các phương pháp này bao gồm phân tích tĩnh và phân tích động. Mỗi phương pháp có những ưu điểm và nhược điểm riêng, nhưng đều hướng đến mục tiêu bảo vệ thông tin riêng tư của người dùng.

3.1. Phân tích tĩnh để phát hiện rò rỉ thông tin

Phân tích tĩnh là phương pháp kiểm tra mã nguồn của ứng dụng mà không cần chạy ứng dụng. Phương pháp này giúp phát hiện các lỗ hổng bảo mật trong mã nguồn, từ đó ngăn chặn khả năng rò rỉ thông tin trước khi ứng dụng được phát hành.

3.2. Phân tích động trong phát hiện rò rỉ thông tin

Phân tích động cho phép giám sát hành vi của ứng dụng trong thời gian thực. Phương pháp này giúp phát hiện các hành vi đáng ngờ và rò rỉ thông tin khi ứng dụng đang hoạt động. Tuy nhiên, nó yêu cầu môi trường thử nghiệm phức tạp và tốn thời gian.

IV. Ứng dụng thực tiễn và kết quả nghiên cứu về bảo mật thông tin

Nghiên cứu về bảo mật thông tin trong ứng dụng Android đã cho thấy nhiều kết quả khả quan. Việc áp dụng các phương pháp phát hiện rò rỉ thông tin đã giúp nâng cao mức độ bảo mật cho nhiều ứng dụng. Các công cụ phát hiện rò rỉ thông tin cũng đã được phát triển và cải tiến để đáp ứng nhu cầu bảo mật ngày càng cao.

4.1. Các công cụ phát hiện rò rỉ thông tin hiệu quả

Nhiều công cụ phát hiện rò rỉ thông tin đã được phát triển, như SVM (Support Vector Machine) và các thuật toán học máy khác. Những công cụ này giúp phân tích và phát hiện các ứng dụng có khả năng làm rò rỉ thông tin riêng tư.

4.2. Kết quả nghiên cứu và ứng dụng thực tiễn

Kết quả nghiên cứu cho thấy việc áp dụng các phương pháp phát hiện rò rỉ thông tin đã giúp giảm thiểu đáng kể các vụ rò rỉ thông tin trong ứng dụng Android. Nhiều ứng dụng đã được cải thiện về bảo mật nhờ vào việc áp dụng các phương pháp này.

V. Kết luận và hướng phát triển trong bảo mật thông tin

Bảo mật thông tin trong ứng dụng Android là một lĩnh vực đang phát triển nhanh chóng. Các nghiên cứu hiện tại đã chỉ ra rằng việc phát hiện và ngăn chặn rò rỉ thông tin là rất cần thiết. Hướng phát triển trong tương lai cần tập trung vào việc cải tiến các phương pháp phát hiện và nâng cao nhận thức về bảo mật cho người dùng.

5.1. Tương lai của bảo mật thông tin trong ứng dụng Android

Tương lai của bảo mật thông tin trong ứng dụng Android sẽ phụ thuộc vào sự phát triển của công nghệ và các phương pháp bảo mật mới. Việc áp dụng trí tuệ nhân tạo và học máy sẽ giúp nâng cao khả năng phát hiện rò rỉ thông tin.

5.2. Khuyến nghị cho các nhà phát triển ứng dụng

Các nhà phát triển ứng dụng cần chú trọng đến việc bảo mật thông tin ngay từ giai đoạn phát triển. Việc kiểm tra an ninh thông tin và áp dụng các phương pháp phát hiện rò rỉ thông tin là rất quan trọng để bảo vệ người dùng.

15/07/2025
0640 phát hiện khả năng rò rỉ thông tin riêng tư trong ứng dụng android luận văn tốt nghiệp

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

Chương 1 trình bày tổng quan về hệ điều hành Android và vấn đề rò rỉ thông tin riêng tƣ trong các ứng dụng chạy trên Android, một số nghiên cứu tiêu biểu liên quan đến bài 2 toán. Chương 2 trình bày kiến thức cơ sở về mô hình SVM và phƣơng pháp áp dụng nó vào giải quyết bài toán đặt ra trong luận văn. Chương 3 trình bày phƣơng pháp cài đặt thử nghiệm và đánh giá. Cuối mỗi chƣơng đều có phần Tiểu kết để tổng kết lại nội dung của chƣơng.

Ngoài các chƣơng chính đã nêu trên, luận văn kết thúc với phần Kết luận và hướng phát triển để tóm tắt những kết quả đạt đƣợc, những vấn đề còn tồn tại và dự kiến hƣớng phát triển tiếp theo của luận văn. TỔNG QUAN VỀ ANDROID VÀ VẤN ĐỀ RÒ RỈ THÔNG TIN RIÊNG TƢ TRONG CÁC ỨNG DỤNG Chương này trình bày, giới thiệu tổng quan về Android, cách hoạt động của các ứng dụng Android. Đồng thời, chương này cũng làm sáng tỏ cơ chế bảo mật của Android, kiến trúc của các ứng dụng chạy trên nó. GIỚI THIỆU Theo International Data Corporation (IDC), hệ điều hành Android là nền tảng điện thoại thông minh phổ biến nhất với 82,2% thị phần điện thoại thông minh, trong khi iOS là 13,9% trong quý 2 năm 2015 [1].

Nói theo thống kê, nó cũng là nền tảng đƣợc nhắm mục tiêu đầu tiên bởi các tác giả phần mềm độc hại đang tìm cách chiếm quyền kiểm soát hàng triệu điện thoại thông minh Android trên thế giới. Do sự phổ biến của điện thoại thông minh Android, bảo mật của ứng dụng chạy trên nó là một vấn đề nghiêm trọng đối với 80% ngƣời dùng điện thoại thông minh. Android là một môi trƣờng phát triển mã nguồn mở cung cấp Bộ công cụ phát triển (SDK – Software Development Kit) phong phú, cho phép các nhà phát triển triển khai các ứng dụng của riêng họ và phân phối chúng thông qua các kho ứng dụng Android. Sự phổ biến của Android là kết quả của việc trở thành nguồn mở, trung tâm phân phối của bên thứ ba, SDK phong phú và sự phổ biến của ngôn ngữ lập trình Java.

Điều quan trọng là do môi trƣờng mở này, các tác giả phần mềm độc hại có thể phát triển các ứng dụng độc hại lạm dụng các tính năng mà nền tảng cung cấp hoặc đóng gói một ứng dụng hợp pháp bằng một đoạn mã độc hại. Bên cạnh đó, khai thác các lỗ hổng trong nền tảng, phần cứng hoặc các ứng dụng đã cài đặt khác để thực hiện các hành vi độc hại. Chủ yếu, các tác giả phần mềm độc hại tìm cách truy cập vào dữ liệu bí mật làm rò rỉ thông tin riêng tƣ của ngƣời dùng thiết bị. Ngay cả 4 các ứng dụng hợp pháp cũng có nguy cơ xâm phạm quyền riêng tƣ.

Các nghiên cứu trong lĩnh vực phát hiện phần mềm độc hại Android hoạt động theo ba cách tiếp cận: phân tích tĩnh, phân tích động hoặc kết hợp. Trong phân tích tĩnh, phần mềm độc hại đƣợc tách rời thành mã nguồn từ nơi các tính năng cụ thể đƣợc trích xuất. Trong phân tích động, phần mềm độc hại đƣợc giám sát tại thời điểm chạy trong môi trƣờng ảo. Trong cả hai cách tiếp cận, các thuật toán học máy đã đƣợc sử dụng để xây dựng các mô hình phân loại bằng cách huấn luyện các bộ phân loại với bộ dữ liệu về các tính năng malware đƣợc thu thập từ phân tích tĩnh hoặc động.

Sau đó, các mô hình phân loại đã học đƣợc sử dụng để phát hiện và phân loại các ứng dụng độc hại. Hầu hết, các nghiên cứu về phát hiện phần mềm độc hại trên Android tập trung vào việc xác định các tính năng của ứng dụng độc hại bằng cách sử dụng các kỹ thuật máy học để nhận ra và mô hình hóa các mẫu độc hại của các tính năng tĩnh và hành vi động của phần mềm độc hại. GIỚI THIỆU TỔNG QUAN VỀ ANDROID 1. Kiến trúc chung của Android Kiến trúc tổng quát của Android bao gồm bốn lớp quản lý toàn bộ hệ thống, bắt đầu từ cảm biến phần cứng đến các ứng dụng cấp cao của ngƣời dùng.

Mỗi lớp cung cấp các dịch vụ cụ thể và các nhóm chƣơng trình chạy các chức năng tƣơng ứng. Kiến trúc chung của Android Các lớp đầu tiên, lớp nhân Linux là lớp quan trọng nhất và nằm ở dƣới cùng; nó đại diện cho trái tim của hệ thống Android. Nó cung cấp các dịch vụ hệ điều hành và quản lý các chức năng của phần cứng nhƣ bộ nhớ, nguồn, trình điều khiển, ngăn xếp mạng, cài đặt bảo mật, thƣ viện đƣợc chia sẻ. Lớp thứ hai, lớp thƣ viện gốc, cung cấp các thƣ viện gốc là một tập hợp các hƣớng dẫn quản lý việc xử lý dữ liệu.

Lớp gốc cung cấp các thƣ viện nguồn mở, chẳng hạn nhƣ trình quản lý giao diện, phƣơng tiện, SQLite, Webkit, OpenGL — ES, FreeType và SSL. Tóm lại, các thƣ viện đó thực hiện các công việc sau: Thƣ viện trình quản lý giao diện để trình bày các cửa sổ trên màn hình; thƣ viện khung phƣơng tiện để xử lý đầu vào và đầu ra của dữ liệu video và âm thanh; Thƣ viện SQLite dành cho các hoạt động cơ sở dữ liệu; Webkit để hỗ trợ các trình duyệt web; OpenGL- ES để hỗ trợ đồ họa 2D và 3D hiệu suất cao; FreeType để hỗ trợ phông chữ; Thƣ viện SSL dành cho việc cung cấp các dịch vụ của giao thức SSL và TLS. 6 Lớp thứ ba, lớp khung ứng dụng (Application framework), bao gồm các API Android. API là các lớp và giao diện để phát triển ứng dụng Android.

Lớp này tƣơng tác với các ứng dụng đang chạy và quản lý các chức năng cơ bản trên thiết bị. Các chƣơng trình quan trọng nhất trong lớp này là trình quản lý hoạt động, nhà cung cấp nội dung, trình quản lý điện thoại, trình quản lý vị trí và trình quản lý tài nguyên. Mỗi trình quản lý chịu trách nhiệm quản lý một chức năng cụ thể. Ví dụ: trình quản lý hoạt động kiểm soát vòng đời của ứng dụng.

Trình cung cấp nội dung quản lý việc chia sẻ dữ liệu giữa các ứng dụng. Trình quản lý điện thoại cung cấp các thiết bị liên quan đến cuộc gọi thoại. Trình quản lý tài nguyên quy định các tài nguyên cần thiết để chạy ứng dụng. Cuối cùng, lớp ứng dụng là lớp trên cùng, nơi các chức năng của điện thoại đƣợc cung cấp cho ngƣời dùng cuối.

Lớp ứng dụng cung cấp các chức năng bao gồm thực hiện cuộc gọi, quản lý danh bạ, gửi tin nhắn và duyệt web. Trong lớp này, Android cung cấp một tập hợp các ứng dụng cốt lõi, chẳng hạn nhƣ ứng dụng email, lịch, trình duyệt, bản đồ, danh bạ, chƣơng trình SMS, thƣ viện. Các thành phần của ứng dụng Android Một ứng dụng Android bao gồm hai thƣ mục và một tệp: Lớp, tài nguyên và AndroidManifest.xml tƣơng ứng. Thành phần ứng dụng Android và các loại tính năng tĩnh Thƣ mục Lớp (class) chứa mã nguồn của ứng dụng; thƣ mục Tài nguyên chứa đa phƣơng tiện của ứng dụng; AndroidManifest.xml là tệp cấu hình của ứng dụng liệt kê thông tin cần thiết về ứng dụng dành cho hệ thống Android.

Thông tin đƣợc liệt kê trong tệp AndroidManifest.xml nhƣ sau: tên gói Java, các thành phần của ứng dụng, các quy trình đƣợc lƣu trữ, quyền, các lớp thiết bị đo và các thƣ viện khác. Trong giai đoạn biên dịch, các thƣ mục và tệp AndroidManifest.xml đƣợc nhóm lại với nhau để tạo tệp thực thi của ứng dụng ở định dạng. Cấu trúc của ứng dụng Android bao gồm bốn thành phần: Activity, Service, BroadCastReceiver và ContentProvider [2]. Tất cả các thành phần đó đƣợc nhà phát triển ứng dụng xác định trong tệp AndroidManifest.

• Activities: Xác định giao diện ngƣời dùng, đƣợc kích hoạt bởi ngƣời 8 dùng khi họ tƣơng tác với các thành phần giao diện của ứng dụng, chẳng hạn nhƣ: nút, menu, biểu tƣợng. • Services: Xác định các tiến trình nền nhƣ tải xuống tệp hoặc phát nhạc sau khi đóng giao diện ứng dụng ngƣời dùng. Bất kỳ thành phần nào cũng có thể bắt đầu một dịch vụ bằng cách gọi một của hai phƣơng pháp: - StartService(): Dịch vụ tiếp tục chạy cho đến khi dừng một cách rõ ràng. - BinService(): Dịch vụ đƣợc liên kết với thành phần.

Nó tiếp tục chạy miễn là thành phần đang chạy và dừng khi thành phần dừng lại. • BroadCastReceiver: đƣợc ứng dụng sử dụng nhƣ một hộp thƣ để nhận và trả lời các tin nhắn quảng bá (intent) của các ứng dụng khác hoặc hệ thống, chẳng hạn nhƣ tin nhắn đƣợc gửi bởi hệ thống khi Pin đạt đến giới hạn thấp. • ContentProvider: đƣợc sử dụng để lƣu trữ dữ liệu của ứng dụng và chia sẻ dữ liệu đó với các ứng dụng khác; nó cung cấp các chức năng chèn, xóa và truy vấn cơ sở dữ liệu. Kiến trúc tệp APK Các phần trƣớc đã trình bày ngắn gọn các thành phần khác nhau của hệ thống Android, cần thiết cho một ứng dụng chạy trên Android.

Phần này cung cấp tổng quan về các thành phần khác nhau của tệp APK. Tệp APK (gói ứng dụng) là định dạng tệp đƣợc sử dụng để phân phối các ứng dụng trong Android. Gói APK bao gồm thành phần chính của ứng dụng Android, là tệp dex đƣợc tạo sau khi biên dịch mã bytecode của tất cả các tệp nguồn Java trong Android. Sau đây là thông tin chi tiết về các thành phần khác xuất hiện trong một tệp APK.

Android Manifest: Tệp kê khai Android trình bày thông tin cần thiết về ứng dụng cho hệ thống Android, thông tin mà hệ thống phải có trƣớc khi có thể chạy bất kỳ mã nào của ứng dụng. Mọi ứng dụng đều đi kèm với tệp AndroidManifest.xml thông báo cho hệ thống về các thành phần của ứng dụng.xml chứa thông tin về gói ứng dụng, bao gồm các thành phần của ứng dụng nhƣ hoạt động, dịch vụ, bộ thu phát sóng, nhà cung cấp nội dung.xml cũng chỉ định các yêu cầu ứng dụng nhƣ yêu cầu phần cứng đặc biệt (ví dụ: truy cập camera hoặc cảm biến GPS ) hoặc phiên bản API tối thiểu cần thiết để chạy một ứng dụng. Để truy cập các thành phần đƣợc bảo vệ (ví dụ: quyền truy cập vị trí hoặc quyền truy cập vào thẻ SD), một ứng dụng cần đƣợc cấp quyền. Tất cả các quyền cần thiết phải đƣợc xác định trong AndroidManifest.xml của ứng dụng.

Bằng cách này, trong quá trình cài đặt, hệ điều hành Android có thể nhắc ngƣời dùng tổng quan về các quyền đã sử dụng mà sau đó ngƣời dùng phải cấp cho ứng dụng quyền truy cập để sử dụng các thành phần này một cách rõ ràng.

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