Nghiên Cứu Phương Pháp Phát Hiện Lỗ Hổng Bảo Mật Của Phần Mềm Ứng Dụng Trên Hệ Điều Hành Android

Tài liệu nghiên cứu Nghiên cứu phát hiện lỗ hổng bảo mật của phần mềm ứng dụng trên hệ điều hành androi, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về .

Chuyên ngành

An toàn thông tin

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2024

64
4
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN VỀ ỨNG DỤNG ANDROID

1.1. Giới thiệu về hệ điều hành Android

1.2. Giới thiệu về cấu trúc ứng dụng Android

1.3. Một vài vấn đề bảo mật thường gặp trong ứng dụng Android

2. CHƯƠNG 2: PHƯƠNG PHÁP KIỂM THỬ AN TOÀN ỨNG DỤNG ANDROID

2.1. Tổng quan về kiểm thử an toàn (security testing)

2.2. Giới thiệu về kiểm thử an toàn trên ứng dụng Android

2.3. So sánh kiểm thử an toàn và kiểm thử xâm nhập

2.4. Phương pháp thực hiện kiểm thử an toàn

2.4.1. Phân tích tĩnh (static analysis)

2.4.2. Phân tích động (dynamic analysis)

2.4.3. Kiểm thử bảo mật tích hợp

2.4.4. Một vài công cụ phân tích tĩnh ứng dụng Android

2.5. Tổng quan về OWASP MASVS

2.5.1. Giới thiệu về OWASP

2.5.2. Các nhóm kiểm soát (control group) OWASP MASVS

2.5.3. Nội dung danh sách kiểm thử an toàn ứng dụng di động OWASP dành cho ứng dụng di động Android (OWASP MASVS Checklist)

3. CHƯƠNG 3: XÂY DỰNG, CÀI ĐẶT CÔNG CỤ & THỰC NGHIỆM

3.1. Giới thiệu công cụ

3.2. Phân tích thiết kế

3.2.1. Phân tích yêu cầu

3.2.2. Thiết kế công cụ

3.2.3. Sơ đồ quy trình xử lý của công cụ

3.2.4. Cấu trúc mã nguồn của công cụ

3.2.5. Xây dựng nội dung bộ lọc rà quét lỗ hổng

3.2.6. Khả năng kế thừa hướng dẫn OWASP MASTG và tiêu chuẩn OWASP MASVS vào công cụ

3.3. Cài đặt công cụ

3.3.1. Cài đặt trực tiếp

3.3.2. Cài đặt thông qua Docker

3.4. Thử nghiệm công cụ

3.4.1. Đối tượng thử nghiệm

3.4.2. Kết quả đầu ra

3.4.3. Đánh giá hiệu quả

3.4.4. So sánh kết quả thực nghiệm công cụ OMSA & Mobsf

3.4.5. Đánh giá tổng quan các công cụ

Tóm tắt

I. Tổng quan về nghiên cứu lỗ hổng bảo mật ứng dụng Android

Nghiên cứu lỗ hổng bảo mật ứng dụng Android là một lĩnh vực quan trọng trong an ninh mạng. Với sự phát triển nhanh chóng của các ứng dụng di động, việc phát hiện và khắc phục các lỗ hổng bảo mật trở nên cấp thiết. Các lỗ hổng này không chỉ ảnh hưởng đến người dùng mà còn đến các nhà phát triển và doanh nghiệp. Việc hiểu rõ về các phương pháp phát hiện lỗ hổng bảo mật sẽ giúp nâng cao an toàn cho ứng dụng Android.

1.1. Giới thiệu về lỗ hổng bảo mật ứng dụng di động

Lỗ hổng bảo mật ứng dụng di động là những điểm yếu trong mã nguồn hoặc cấu trúc của ứng dụng, cho phép kẻ tấn công khai thác thông tin nhạy cảm. Các lỗ hổng này có thể dẫn đến việc rò rỉ dữ liệu cá nhân, xâm nhập vào hệ thống và gây thiệt hại cho người dùng.

1.2. Tầm quan trọng của việc phát hiện lỗ hổng bảo mật

Việc phát hiện lỗ hổng bảo mật kịp thời giúp bảo vệ thông tin người dùng và duy trì uy tín của ứng dụng. Các phương pháp phát hiện lỗ hổng bảo mật hiệu quả có thể giảm thiểu rủi ro và bảo vệ tài sản của doanh nghiệp.

II. Các thách thức trong việc phát hiện lỗ hổng bảo mật ứng dụng Android

Việc phát hiện lỗ hổng bảo mật ứng dụng Android đối mặt với nhiều thách thức. Các ứng dụng ngày càng phức tạp, và kẻ tấn công cũng ngày càng tinh vi hơn. Điều này đòi hỏi các nhà phát triển và chuyên gia bảo mật phải liên tục cập nhật kiến thức và công nghệ mới để bảo vệ ứng dụng.

2.1. Sự phức tạp của mã nguồn ứng dụng

Mã nguồn ứng dụng Android thường rất phức tạp với nhiều thư viện và API khác nhau. Điều này làm cho việc kiểm tra và phát hiện lỗ hổng trở nên khó khăn hơn, vì các lỗ hổng có thể ẩn nấp trong các thư viện bên ngoài.

2.2. Tính đa dạng của thiết bị Android

Android chạy trên nhiều loại thiết bị với cấu hình phần cứng và phần mềm khác nhau. Điều này tạo ra thách thức trong việc đảm bảo rằng ứng dụng hoạt động an toàn trên tất cả các thiết bị, vì mỗi thiết bị có thể có các lỗ hổng bảo mật riêng.

III. Phương pháp phát hiện lỗ hổng bảo mật ứng dụng Android hiệu quả

Có nhiều phương pháp để phát hiện lỗ hổng bảo mật trong ứng dụng Android. Các phương pháp này bao gồm phân tích tĩnh, phân tích động và kiểm thử xâm nhập. Mỗi phương pháp có ưu điểm và nhược điểm riêng, và việc kết hợp chúng có thể mang lại hiệu quả cao hơn.

3.1. Phân tích tĩnh ứng dụng Android

Phân tích tĩnh là phương pháp kiểm tra mã nguồn 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 như mã hóa yếu, quyền truy cập không hợp lệ và các vấn đề khác trong mã nguồn.

3.2. Phân tích động ứng dụng Android

Phân tích động thực hiện kiểm tra ứng dụng trong môi trường thực tế. Phương pháp này cho phép theo dõi hành vi của ứng dụng và phát hiện các lỗ hổng bảo mật trong thời gian thực, như rò rỉ dữ liệu và xâm nhập trái phép.

3.3. Kiểm thử xâm nhập ứng dụng Android

Kiểm thử xâm nhập là phương pháp mô phỏng các cuộc tấn công thực tế vào ứng dụng để phát hiện lỗ hổng bảo mật. Phương pháp này giúp đánh giá khả năng bảo vệ của ứng dụng trước các mối đe dọa từ bên ngoài.

IV. Ứng dụng thực tiễn của các phương pháp phát hiện lỗ hổng bảo mật

Các phương pháp phát hiện lỗ hổng bảo mật đã được áp dụng rộng rãi trong thực tiễn. Nhiều công cụ và kỹ thuật đã được phát triển để hỗ trợ các nhà phát triển và chuyên gia bảo mật trong việc kiểm tra và bảo vệ ứng dụng Android.

4.1. Công cụ phân tích tĩnh phổ biến

Một số công cụ phân tích tĩnh phổ biến như SonarQube, FindBugs và Checkmarx giúp phát hiện các lỗ hổng bảo mật trong mã nguồn. Những công cụ này cung cấp báo cáo chi tiết về các vấn đề bảo mật và hướng dẫn khắc phục.

4.2. Công cụ kiểm thử xâm nhập hiệu quả

Các công cụ như Burp Suite, OWASP ZAP và Metasploit được sử dụng để thực hiện kiểm thử xâm nhập. Những công cụ này giúp mô phỏng các cuộc tấn công và phát hiện các lỗ hổng bảo mật trong ứng dụng Android.

V. Kết luận và tương lai của nghiên cứu lỗ hổng bảo mật ứng dụng Android

Nghiên cứu lỗ hổng bảo mật ứng dụng Android sẽ tiếp tục phát triển trong tương lai. Với sự gia tăng của các mối đe dọa an ninh mạng, việc phát hiện và khắc phục lỗ hổng bảo mật sẽ trở thành một phần không thể thiếu trong quy trình phát triển ứng dụng. Các công nghệ mới như trí tuệ nhân tạo và học máy có thể được áp dụng để nâng cao hiệu quả phát hiện lỗ hổng.

5.1. Xu hướng phát triển công nghệ bảo mật

Công nghệ bảo mật sẽ tiếp tục phát triển để đối phó với các mối đe dọa mới. Việc áp dụng trí tuệ nhân tạo và học máy trong phát hiện lỗ hổng bảo mật sẽ giúp nâng cao khả năng phát hiện và phản ứng nhanh chóng với các mối đe dọa.

5.2. Tầm quan trọng của giáo dục và đào tạo

Giáo dục và đào tạo về bảo mật ứng dụng Android sẽ trở nên quan trọng hơn bao giờ hết. Các nhà phát triển cần được trang bị kiến thức và kỹ năng cần thiết để phát hiện và khắc phục lỗ hổng bảo mật trong ứng dụng của họ.

11/07/2025
Nghiên cứu phát hiện lỗ hổng bảo mật của phần mềm ứng dụng trên hệ điều hành androi

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

Chương 1: Tổng quan phần của ứng dụng nguyên bản để cho phép xem trang web. Mỗi ứng dụng có bộ nhớ cache WebView riêng, không được chia sẻ với Trình duyệt nguyên ban hoặc các ứng dụng khác. Trên Android, WebViews sử dụng bộ động WebKit dé hiển thị trang web, nhưng các trang web này được thu gọn xuống chức năng tối thiểu, ví dụ, các trang không có thanh địa chỉ. Nếu triển khai WebView quá lỏng lẻo và cho phép sử dụng JavaScript, JavaScript có thé được sử dụng để tan công ứng dụng và truy cập vào dir liệu của nó.

Nguyễn Kiều Trinh — 12 Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử CHƯƠNG 2: PHƯƠNG PHÁP KIEM THU AN TOÀN UNG DỤNG ANDROID 2. Tổng quan về kiểm thử an toàn (security testing) 2. Giới thiệu về kiểm thử an toàn (security testing) Kiểm thử an toàn là quá trình đánh giá và đảm bảo răng một hệ thống, ứng dụng, hay một sản phẩm phần mềm đáp ứng các tiêu chuan bảo mật và không có lỗ hồng an ninh nao có thé bị lợi dụng. Mục tiêu chính của kiểm thử an toàn là đảm bảo rằng hệ thống hoặc ứng dụng đáp ứng các tiêu chuẩn bảo mật và không có lỗ hồng nào trong quá trình triển khai.

Giới thiệu về kiểm thử an toàn trên ứng dụng Android Kiểm thử an toàn trên ứng dụng Android là bước quan trọng để đảm bảo người dùng trải nghiệm an toàn. Chuyên gia kiểm thử đảm bảo tính bảo mật của dữ liệu truyền tải và ngăn chặn lạm dụng cảm biến như camera, microphone. Đánh giá an toàn của quản lý đăng nhập và quyên truy cập là trọng tâm, giúp hệ thống chống lại các tấn công. Kiểm thử an toàn không chỉ bảo vệ ứng dụng mà còn xây dựng niềm tin từ người dùng, đặc biệt trong bối cảnh quan tâm ngày càng cao về quyên riêng tư và an toàn thông tin.

So sánh kiểm thir an toàn (security testing) và kiểm thử xâm nhập (penetration testing) Bang 1. So sánh kiểm thử an toàn và kiểm thử xâm nhập Tiêu chí Kiêm thử an toàn Kiêm thử xâm nhập Phạm vi Bao gồm một loạt các | Tập trung hơn vao việc tìm kiếm phương pháp kiểm thử để | và khai thác lỗ héng bảo mật cụ đảm bảo rằng hệ thống, ứng | thể trong hệ thống hoặc ứng dụng hoặc sản phẩm đáp | dụng. Kiểm thử xâm nhập được ứng các yêu cầu bảo mật cơ | thực hiện để kiểm tra khả năng bản. Kiêm thử an toàn có | chông lại các cuộc tân công thực thê bao gôm kiêm thử bảo | tê và xác định cách mà một kẻ Nguyễn Kiều Trinh — 13 Đồ án tốt nghiệp Chương 2: Phương pháp kiêm thử mật, kiểm thử chấp nhận, và tân công có thê xâm nhập vào hệ kiểm thử chức năng để đảm thống.

bảo rằng tất cả các khía cạnh của hệ thống đều an toàn. Mục tiêu Đảm bảo răng hệ thống Tìm hiểu cách một kẻ tấn công hoặc ứng dụng đáp ứng các có thể xâm nhập vào hệ thống, tiêu chuẩn bảo mật và đánh giá mức độ nguy cơ thực tế không có lỗ hồng nảo trong và cung cấp thông tin chỉ tiết về quá trình triển khai. cách bảo mật có thể được cải thiện. Phương Thường sử dụng các kỹ Thường đòi hỏi sự can thiệp thủ pháp thực thuật kiểm thử tự động và công để thực hiện các kịch bản hiện kiểm thử thủ công để đánh tan công và tìm kiếm lỗ hồng giá mức độ an toàn của hệ bảo mật cụ thê.

Thời điểm Có thể được thực hiện ở Thường được thực hiện sau khi thực hiện nhiều giai đoạn trong quá hệ thống hoặc ứng dụng đã hoàn trình phát triển và triển khai thành và trước khi triển khai, hệ thống. hoặc định kỳ để kiểm tra định kỳ mức độ an toản. Phản hoi và Tập trung vào việc xác định Cung cấp một báo cáo chỉ tiết về báo cáo các vân đê bảo mật và đưa lỗ hồng cụ thé được tim thấy và ra gợi ý đê cải thiện tính an cách chúng có thể được khắc toàn của hệ thống. Phương pháp thực hiện kiểm thử an toàn [1] Phương pháp thực hiện kiểm thử an toàn bao gồm hai khía cạnh quan trọng: phân tích tinh (static analysis) và phân tích động (dynamic analysis).

Nguyễn Kiêu Trinh — 14 Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử 2. Phân tích tinh (static analysis) Phân tích tinh là quá trình đánh giá các thành phan của hệ thống ma không thực hiện thực tế các thử nghiệm chạy. Trong kiểm thử an toàn, phân tích tĩnh tập trung vào đánh giá mã nguồn, cau trúc dữ liệu, và thiết kế dé xác định các 16 hồng bảo mật có thé xuất hiện mà không cần chạy ứng dụng. Phan tích tinh thủ công Người kiểm thử thực hiện kiểm tra mã nguồn thủ công băng cách phân tích mã nguồn của ứng dụng di động dé tìm kiếm lỗ hồng bảo mật.

Phương pháp có thể đa dạng từ việc tìm kiếm từ khóa cơ bản thông qua lệnh 'grep' đến việc kiêm tra từng dòng mã nguồn. Các môi trường phát triển tích hợp (IDEs) thường cung cấp các chức năng kiểm tra mã nguồn co bản và có thé được mở rộng băng các công cụ khác. Phương pháp phổ biến cho kiểm tra mã nguồn thủ công bao gồm việc xác định các chỉ báo lỗ hồng bảo mật quan trong bang cách tìm kiếm các API và từ khóa nhất định, như cuộc gọi phương thức liên quan đến cơ sở dữ liệu như "executeStatement" hoặc "executeQuery". Mã chứa các chuỗi này là điểm xuất phát tốt cho phân tích thủ công.

Khác biệt so với phân tích tự động, kiểm tra mã nguồn thủ công rat tốt dé xác định các lỗ hồng trong lô-gic kinh doanh, vi phạm tiêu chuẩn và các thiếu sót trong thiết kế, đặc biệt là khi mã nguồn là kỹ thuật an toàn nhưng có logic sai lầm. Những tình huống như vậy thường không thé được phát hiện bởi bất kỳ công cụ phân tích mã tự động nảo. Việc kiểm tra mã nguồn thủ công đòi hỏi một chuyên gia kiểm tra mã nguồn chuyên nghiệp, có kiến thức sâu sắc về cả ngôn ngữ và các khung phát triển được sử dụng cho ứng dụng di động. Kiểm tra mã nguồn day đủ có thé là một quá trình chậm, tẻ nhạt, tốn thời gian đối với người kiêm thử, đặc biệt là đối với các mã nguôn lớn có nhiêu phụ thuộc.

Phân tích tĩnh tự động Nguyễn Kiều Trinh — 1Š Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử Các công cụ phân tích tự động có thể được sử dụng dé tăng tốc quá trình kiêm thử. Chúng kiêm tra mã nguồn dé đảm bảo tuân thủ với một bộ quy tắc hay các quy trình hay thực hành tốt của ngành, sau đó thường hiển thị một danh sách các phát hiện hay cảnh báo và chỉ ra tất cả các vi phạm phát hiện được. Một SỐ công cụ phân tích tĩnh chạy trên ứng dụng đã biên dịch, một số cần được cung cấp mã nguồn gốc, và một số chạy như tiện ích mở rộng phân tích trực tiếp trong IDE. Mặc dù một số công cụ phân tích mã tĩnh tích hợp nhiều thông tin về các quy tắc và ngữ nghĩa cần thiết dé phân tích ứng dụng di động, chúng có thé tạo ra nhiều kết quả dương tính giả, đặc biệt là nếu chúng không được cau hình cho môi trường đích.

Do đó, một chuyên gia bảo mật luôn cần xem xét kết quả một cách cân thận. Phân tích động (dynamic analysis) Phân tích động là quá trình kiểm thử hệ thống khi đang chạy để đánh giá cách nó phản ứng và chống lại các cuộc tấn công thực tế. Trong kiểm thử an toàn, phân tích động thường bao gồm việc thực hiện các kịch bản tan công, kiêm tra mức độ an toản của cơ sở dữ liệu, và đánh giá khả năng chống lại các phương thức tan công phổ biến. Các chuyên gia thường sử dụng các công cụ tự động và thủ công để mô phỏng cuộc tấn công và đánh giá sự an toàn của hệ thống.

Phân tích động giúp xác định lỗ hồng hiện tại và kiểm tra khả năng chống lại các tình huống nguy cơ trong môi trường thực tế. Kiém thir tương tác người dùng Một chiến lược quan trọng trong phân tích động là kiểm thử tương tác người dùng. Điều nay bao gồm việc mô phỏng các hành động của người dùng dé xác định liệu ứng dụng có xử lý chúng một cách an toàn hay không. Các tác vụ như đăng nhập, chuyển đổi giữa các màn hình, và thao tác với dữ liệu đều là điểm tập trung.

Nguyễn Kiều Trinh — 16 Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử 2. Kiểm thử bảo mật tích hợp Kiểm thử bảo mật tích hợp là quá trình tích hợp các phương pháp phân tích và động trong chu trình phát triển phần mềm. Việc này giúp đảm bảo rằng các lỗ hồng bảo mật được phát hiện và khắc phục từ giai đoạn sớm, giảm nguy cơ phát sinh vân đề sau này và tăng cường bảo mật tông thê của ứng dụng. Một vài công cu phân tích tinh ứng dung Android 2.

QARK (Quick Android Review Kit) QARK là một công cụ phan tích tinh mã nguồn mở dành cho ứng dụng Android. Nó tập trung vao việc tự động kiểm tra mã nguồn dé phat hién va bao cáo về các lỗ hồng bảo mật phô biến, giúp nha phát trién va chuyên gia an ninh đánh giá và cải thiện tính an toàn của ứng dụng. AndroBugs Framework AndroBugs Framework là một công cụ phân tích tĩnh mã nguồn mở chuyên dụng cho ứng dụng Android. Với khả năng tự động quét mã nguồn, nó giúp xác định và hiểu rõ về các lỗ hong bảo mật trong mã nguồn của ứng dụng, hỗ trợ quá trình kiểm thử an toản.

MobSF (Mobile Security Framework) Nguyén Kiéu Trinh — 17 Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử MobSF là một khung phát triển (framework) an toàn di động cung cap kha năng kiểm thử an toàn tự động và thủ công cho ứng dụng di động, bao gồm cả Android. Nó kết hợp các công cụ kiểm thử mạnh mẽ dé đánh giá bao mật tong thé của ứng dụng di động, từ phân tích tĩnh đến phân tích động. Các công cụ được liệt kê bên trên, cung cấp khả năng kiểm tra mã nguồn và xác định lỗ hổng bảo mật một cách tự động, giúp nhà phát triển và chuyên gia bảo mật đánh giá và cải thiện chât lượng mã nguôn. Tuy nhiên, nhược điểm đáng chú ý của nhiều công cụ này là chưa tích hợp hoặc tích hợp chưa hoàn toàn các bộ tiêu chuẩn nồi tiếng về an toàn thông tin, như bộ tiêu chuẩn kiểm thử ứng dụng di động OWASP MASVS.

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