Công Cụ Phát Hiện Ứng Dụng Android Đóng Gói Lại

Khóa luận trình bày công cụ phát hiện ứng dụng Android bị đóng gói lại, góp phần nâng cao an toàn thông tin trong phát triển phần mềm.

Người đăng

Ẩn danh

Thể loại

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

2021

70
3
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Ề VẤN ĐỀ NGHIÊN CỨU

1.1. Tầm quan quan trọng và ý nghĩa của vấn đề cần nghiên cứu

1.2. Mục tiêu đề tài

1.3. Đối tượng của đề tài

1.4. Phạm vi của đề tài

1.5. Phương pháp nghiên cứu, thực hiện đề tài

1.6. Tình hình nghiên cứu và các công trình liên quan

1.7. Cấu trúc khóa luận

2. CHƯƠNG 2: GÓI ỨNG DỤNG ANDROID (ANDROID APPLICATION PACKAGE)

2.1. Dalvik và Dalvik byteCode

2.2. Đóng gói lại ứng dụng Android (Android app repackaging)

2.3. Thành phần của ứng dụng Android

2.4. Activity Transition Graph và công cụ A3E

2.5. Thuật toán VF2

3. CHƯƠNG 3: PHƯƠNG PHÁP VÀ QUY TRÌNH THỰC HIỆN

3.1. Xây dựng feature view graph

3.2. Xây dựng thuộc tính cạnh

3.3. Xây dựng thuộc tính node

3.4. So sánh và phát hiện feature view graph tương đồng

4. CHƯƠNG 4: KẾT QUẢ THỬ NGHIỆM VÀ THẢO LUẬN

4.1. Phương pháp đánh giá

4.2. Môi trường và kết quả thực nghiệm

4.3. Nhận xét và đánh giá kết quả

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1. 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ề công cụ phát hiện ứng dụng Android đóng gói lại

Công cụ phát hiện ứng dụng Android đóng gói lại là một phần quan trọng trong việc bảo vệ an ninh mạng. Với sự gia tăng của các ứng dụng độc hại, việc phát hiện và ngăn chặn các ứng dụng này trở nên cần thiết hơn bao giờ hết. Các ứng dụng Android thường dễ bị đóng gói lại, dẫn đến việc kẻ tấn công có thể chèn mã độc vào ứng dụng gốc. Do đó, việc phát triển công cụ phát hiện ứng dụng Android đóng gói lại không chỉ giúp bảo vệ người dùng mà còn nâng cao độ tin cậy của hệ sinh thái ứng dụng Android.

1.1. Tầm quan trọng của việc phát hiện ứng dụng Android đóng gói lại

Việc phát hiện ứng dụng Android đóng gói lại giúp bảo vệ người dùng khỏi các mối đe dọa tiềm ẩn. Theo nghiên cứu, khoảng 80% mẫu độc hại được tạo ra thông qua việc đóng gói lại ứng dụng. Điều này cho thấy sự cần thiết của các công cụ phát hiện hiệu quả.

1.2. Các thành phần chính của công cụ phát hiện

Công cụ phát hiện ứng dụng Android đóng gói lại thường bao gồm các thành phần như phân tích mã nguồn, trích xuất thuộc tính và so sánh dấu vân tay. Những thành phần này giúp xác định ứng dụng nào có khả năng bị đóng gói lại.

II. Vấn đề và thách thức trong phát hiện ứng dụng Android đóng gói lại

Phát hiện ứng dụng Android đóng gói lại gặp nhiều thách thức. Một trong những vấn đề lớn nhất là sự đa dạng của các kỹ thuật đóng gói lại mà kẻ tấn công có thể sử dụng. Điều này làm cho việc phát hiện trở nên khó khăn hơn. Hơn nữa, với số lượng ứng dụng khổng lồ trên các chợ ứng dụng, việc phát hiện cần phải hiệu quả và có khả năng mở rộng.

2.1. Các kỹ thuật đóng gói lại phổ biến

Kẻ tấn công thường sử dụng các công cụ mã nguồn mở như apktool để đóng gói lại ứng dụng. Những kỹ thuật này cho phép họ dễ dàng chèn mã độc hoặc thay đổi tài nguyên của ứng dụng gốc.

2.2. Khó khăn trong việc phát hiện ứng dụng độc hại

Việc phát hiện ứng dụng độc hại trở nên khó khăn do sự phát triển nhanh chóng của các kỹ thuật rối mã. Những kỹ thuật này giúp kẻ tấn công ẩn đi mã độc, làm cho việc phát hiện trở nên phức tạp hơn.

III. Phương pháp phát hiện ứng dụng Android đóng gói lại hiệu quả

Để phát hiện ứng dụng Android đóng gói lại, nhiều phương pháp đã được đề xuất. Một trong những phương pháp nổi bật là sử dụng cây giao diện đặc trưng (feature view graph). Phương pháp này giúp mô tả hành vi của người dùng trên các giao diện ứng dụng, từ đó phát hiện các ứng dụng bị đóng gói lại.

3.1. Sử dụng cây giao diện đặc trưng feature view graph

Cây giao diện đặc trưng giúp xác định hành vi điều hướng của người dùng. Điều này cho phép phát hiện các ứng dụng có hành vi tương tự nhưng đã bị đóng gói lại.

3.2. Kết hợp phân tích tĩnh và động

Kết hợp giữa phân tích tĩnh và động giúp nâng cao độ chính xác trong việc phát hiện ứng dụng đóng gói lại. Phân tích tĩnh giúp trích xuất thuộc tính, trong khi phân tích động giúp theo dõi hành vi thực tế của ứng dụng.

IV. Ứng dụng thực tiễn của công cụ phát hiện ứng dụng Android đóng gói lại

Công cụ phát hiện ứng dụng Android đóng gói lại đã được áp dụng trong nhiều lĩnh vực khác nhau. Từ việc bảo vệ người dùng cá nhân đến việc bảo vệ các tổ chức lớn, công cụ này đóng vai trò quan trọng trong việc đảm bảo an ninh mạng. Nhiều tổ chức đã triển khai công cụ này để bảo vệ hệ thống của họ khỏi các mối đe dọa từ ứng dụng độc hại.

4.1. Bảo vệ người dùng cá nhân

Công cụ phát hiện giúp người dùng cá nhân nhận diện và loại bỏ các ứng dụng độc hại, từ đó bảo vệ thông tin cá nhân và dữ liệu nhạy cảm.

4.2. Ứng dụng trong tổ chức và doanh nghiệp

Nhiều tổ chức đã áp dụng công cụ phát hiện này để bảo vệ hệ thống của họ khỏi các ứng dụng độc hại, đảm bảo an toàn cho dữ liệu và thông tin quan trọng.

V. Kết luận và hướng phát triển trong tương lai

Công cụ phát hiện ứng dụng Android đóng gói lại là một phần quan trọng trong việc bảo vệ an ninh mạng. Với sự phát triển không ngừng của công nghệ, các phương pháp phát hiện cũng cần được cải tiến để đối phó với các kỹ thuật tấn công mới. Hướng phát triển trong tương lai có thể bao gồm việc áp dụng trí tuệ nhân tạo để nâng cao khả năng phát hiện và phân tích ứng dụng độc hại.

5.1. Cải tiến công nghệ phát hiện

Cần nghiên cứu và phát triển các công nghệ mới để nâng cao khả năng phát hiện ứng dụng độc hại, đặc biệt là trong bối cảnh các kỹ thuật tấn công ngày càng tinh vi.

5.2. Tích hợp trí tuệ nhân tạo vào công cụ phát hiện

Việc tích hợp trí tuệ nhân tạo có thể giúp cải thiện độ chính xác và hiệu quả của công cụ phát hiện, từ đó bảo vệ người dùng tốt hơn.

10/07/2025
Khóa luận tốt nghiệp an toàn thông tin xây dựng công cụ phát hiện ứng dụng android đóng gói lại

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

Chương 1. TONG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU. Tầm quan quan trọng và ý nghĩa của vấn dé cần nghiên cứu. Mục tiêu đề tài.

Đối tượng của dé tài. Phạm vi của dé tài. Phương pháp nghiên cứu, thực hiện dé tài. Tình hình nghiên cứu và các công trình liên quan.

Cấu trúc khóa luận.--eeeererrrrrrre 1 Chương 2. Gói ứng dụng Android (Android application package). Dalvik và Dalvik byteCode. Đóng gói lại ứng dung Android (Android app repackaging).

Thành phần của ứng dụng Android. Activity Transition Graph và công cụ A?E 2. Thuật toán VF2. PHƯƠNG PHAP VÀ QUY TRINH THỰC HIỆN.

Xây dựng feature View grapheneOD 3. Xây dựng view graphe. Xây dựng thuộc tính cạnh.-----c-ccse:-ee+ccvevveeeserrrrrrrtersee 40 3. Xây dựng thuộc tính node.

So sánh và phát hiện feature view graph tương đông. KET QUA THU NGHIỆM VÀ THẢO LUẬN. Phương pháp đánh giá. Môi trường và kết quả thực nghiệm.

Nhận xét và đánh giá kết quả.e-eeeetrererrerrtrrrerrrrrrrrrree 53 Chương 5. KẾT LUẬN VÀ HƯỚNG PHAT TRIỂN. Hướng phát triển.-eeeceeeerererertrrrrrrrrrrrrrrrrirrrrrreree 55 DANH MỤC HÌNH Hình 1.1: Mô hình DroidMOSS.2:Mô hình Fuzzy Hashing.3: Mô hình kiến trúc AppInk.4: Mô hình của AnDarwin [ Í|]. -¿- ¿c5 x key II Hình 2.1: Cấu trúc file APK.2: Các thành phần của ứng dụng Android.¿---+22sczz+czsscez 21 Hình 2.3: Sơ đồ cơ chế phân tích tĩnh của công cụ A°E.----cc+5ccsscez 23 Hình 2.4: Ví dụ về Java Reflection Hình 2.5: Sơ đồ mô tả kỹ thuật chèn nhánh giả với khối màu lục là mã rác không bao giờ được thực thi .6: Thuật toán VF2 Hình 2.7: Năm quy tắc khả thi ( feasibility rule) [16|.-----¿-csscz+cc5sce2 32 Hình 2.8: Ví dụ hai sơ đồ đơn giản A và B.9: Hình minh họa các bước thuật toán VF2 cho ví dụ trên.1: Mô hình của công CỤ.

¿+ + St EkekskEekrrrrrterrkekrrkrirrre oo Hình 3.2: Mô hình xây dựng view graph và thuộc tính cạnh từ công cụ AŸE.3: Ví dụ về kết quả thu được sau khi phân tích tĩnh băng công cụ A3E.4: Ví dụ khai báo main activity trong tệp AndroidManifest.5: View graph với tên activity class và số node tương ứng.6: Hình minh họa cho view graph thu được.7 : View graph với tên activity class, số node tương ứng và phương thức [0091101117 .8: View graph chỉ gồm các node, cach và thuộc tích cach dé chuẩn bị cho Glad Goan Tố ố ố ố .9: Hình minh họa view graph với thuộc tính cạnh.10: Mô hình xây dựng thuộc tính node.11: Kết quả phân tích tĩnh của một phương thức trong một activity class bằng công cụ Androguard.12: Các API được gọi trong các activity được lấy làm thuộc tính của các TIOd€ tƯƠN UNG. + 1t 1 v11 TT TT ni 45 Hình 4.1: Các lớp được chèn vào ứng dụng bởi công cụ MSFvenom sau khi được xử lý bằng công cụ apktOol.2: Các lớp dé hiện quảng cáo Google Admob được chèn vào ứng dụng bằng công cụ PMT Ads 'TO ]. 6 cà k1 vn HH TT TH HH THỦ 49 Hình 4.3: Biểu đồ thời gian thực thi trung bình của thuật toán VF2 trên tổng số lượng node của từng cặp graph được so sánh .--¿-¿- - 5© ++x+x+xexerererveeer 53 DANH MỤC BANG Bảng 4.1: Kết quả quá trình phát hiện ứng dụng đóng gói lại DANH MỤC TU VIET TAT STT | Thuật ngữ Mô tả 1 API Application Programming Interface 2 APK Android application package 3 PDG Program Dependence Graph 4 GUI Graphical User Interface 5 SATG Static Activity Transition Graph 6 CFG Control Flow Graph TÓM TÁT KHÓA LUẬN Trong những năm gan đây, sự phát triển của điện thoại thông minh cũng như các ứng dụng di động không ngừng tăng tốc. Hầu như ai cũng có cho mình ít nhất một chiếc điện thoại thông minh.

Tuy nhiên, sự phát triển đó cũng làm gia tăng các hình thức tấn công trên thiết bị di động, đặc biệt là đóng gói lại ứng dụng. Những kẻ tấn công có thé dé dàng đóng gói lại một ứng dụng dưới tên riêng của chúng hoặc nhúng quảng cáo dé kiếm lợi nhuận. Chúng cũng có thé sửa đổi một ứng dụng phd biến và chèn các đoạn mã độc hại vào ứng dụng gốc và tận dụng sự phổ biến của ứng dụng đó để đẩy nhanh quá trình lan truyền phần mềm độc hại. Đặc biệt, với việc phô biến của ứng dụng trả phí trên điện thoại thông minh và nhiều ứng dụng bị giới hạn phát hành ở các quốc gia, khiến nhu cầu tìm kiếm ứng dụng từ các nguồn khác không chính thống cũng tăng lên.

Trong khóa luận này, chúng em đề xuất ViewDroid [1], một phương pháp tiếp cận dựa trên giao diện người dùng dé phat hiện đóng gói lại ứng dụng dành cho thiết bị di động. Ứng dụng Android chuyên sâu về tương tác với người dùng và chỉ phối sự kiện, tương tác giữa người dùng và ứng dụng được thực hiện thông qua giao diện người dùng. Quan sát này truyền cảm hứng cho việc thiết kế giá trị đặc trưng cho từng ứng dụng Android, cụ thể là cây giao diện đặc trưng (feature view graph), thê hiện hành vi điều hướng của người dùng trên các giao diện ứng dụng. Feature view graph có thể mô tả các ứng dụng Android từ mức trừu tượng cao hơn, giúp ViewDroid có khả năng chống rối mã, có thể phát hiện các ứng dụng được đóng gói lại ở quy mô lớn một cách hiệu quả [1].

TONG QUAN VE VAN ĐÈ NGHIÊN CỨU 1. Tầm quan quan trọng và ý nghĩa của van đề cần nghiên cứu Ngày nay, sự phát triển của các thiết bị di động đang ngày càng mạnh mẽ. Điện thoại thông minh cũng ngày càng phổ biến, đặc biệt là điện thoại hệ điều hành Android. Theo statcounter [2], tính đến hết tháng 5 năm 2021 thì hệ điều hành Android chiếm 72,72% thị phần hệ điều hành di động trên toàn thế giới.

Do đó, Android cũng là hệ điều hành dành cho điện thoại thông minh được kẻ tấn công chọn làm mục tiêu nhiều nhất. Gói ứng dụng Android (tức là tệp APK) thực sự là tệp lưu trữ ở định dạng ZIP, bao gồm mã bytecode, tệp tài nguyên và tệp kê khai (manifest). Thật không may, không giống như các phần mềm thực thi truyền thống, các ứng dụng Android rất dễ bị đóng gói lại. Với các công cụ mã nguồn mở như apktool [3] và jadx [4], người ta có thể dé dàng chèn thêm mã hoặc sửa đồi các tệp tài nguyên của ứng dụng góc đề đạt được mục đích riêng của họ.

Ví dụ, những kẻ viết mã độc tạo mã quảng cáo trên các ứng dụng phô biến để kiếm tiền hoặc chèn mã độc dé lấy cắp thông tin riêng tư của người dùng. Do đó, phần mềm độc hại Android được đóng gói lại là một trong những mối đe dọa chính đối với bảo mật Android [5]. Theo MalGenome [6], một tập dữ liệu tham khảo trong cộng đồng bảo mật Android, có 80% mẫu độc hại được biết là được tạo ra thông qua việc đóng gói lại các ứng dụng khác. Hơn nữa, do sự phổ biến của nền tang Android, nhiều chợ ứng dụng không chính thống tồn tại.

Hầu hết trong số họ không thực thi kiểm tra trên các ứng dụng được liệt kê trên trang web của họ. Do đó, mức độ nghiêm trọng của việc đóng gói lại ứng dụng trong nền tảng Android cao hơn so với bat kỳ nền tảng di động nào khác. Vì vậy, việc phát hiện được ứng dụng Android (tệp APK) là ứng dụng đóng gói lại là một bước quan trọng, là bước đầu xác định các ứng dụng có khả năng chứa mã độc, phục vụ cho công tác phân tích mã động sau này. Tuy nhiên, vấn đề phát hiện đóng gói lại ứng dụng là rất khó khăn.

Mặt khác, đo số lượng ứng dụng khổng lồ trên một chợ ứng dụng như Google Play, nên cần phải đáp ứng yêu cầu về hiệu quả và khả năng mở rộng của một kế hoạch phát hiện. Mặt khác, kế hoạch phát hiện phải có khả năng chống lại việc sửa đổi mã và các kỹ thuật làm rối mã tự động hiện có, vì rất dễ dàng sửa đổi, rối mã và đóng gói lại các ứng dụng Android mà không có mã nguồn của ứng dụng gốc. Dé phát hiện ứng dụng đóng gói lại, ta cần trích xuất được các thuộc tinh cần thiết của ứng dụng để tạo ra nhóm các đặc tính riêng biệt đại diện cho ứng dụng đó, được gọi là vết bớt của ứng dụng. Trong đề tài này, chúng em có gắng tái hiện một mô hình phát hiện đóng gói lại có tên là ViewDroid [I], tận dụng vết bớt dựa trên giao điện người dùng, gọi là feature view graph để phát hiện ứng dụng được đóng gói lại trên nền tảng Android.

ViewDroid cung cấp một giải pháp thay thế cho các phương pháp phát hiện ở cấp độ mã (code-level). Phương pháp này dựa trên hai điểm chính. Đầu tiên, các ứng dụng dành cho điện thoại thông minh dựa trên hành vi của người dùng và sự kiện của Android, tương tác giữa người dùng và ứng dụng được thực hiện thông qua giao diện người dùng (app views). Một số đặc điểm của giao diện (ví dụ: chuỗi các sự kiện điều hướng giữa các view) là duy nhất cho mỗi ứng dụng được phát triển độc lập.

Thứ hai, bởi vì những kẻ tắn công muốn tận dụng sự phổ biến của ứng dụng, họ thường giữ giao diện và chức năng gốc của ứng dụng được đóng gói lại tương tự như ứng dụng gốc để không bị người dùng phát hiện. Tóm lại, ViewDroid được xây dựng dựa trên một vết bớt được gọi là sơ đồ giao diện, còn gọi là view graph. View graph là sơ đồ được xây dựng từ tất cả các view thông qua phân tích tĩnh và nắm bắt mối quan hệ điều hướng giữa các view. Ngoài ra, cần có thuộc tính cho cả các node và các cạnh trong view graph dựa trên các API của Android.

Điều này có thé giúp lọc trước các ứng dụng không có liên quan và cải thiện hiệu quả của thuật toán so sánh. Ưu điểm nổi bật của ViewDroid là khả năng chống rối mã tốt. View graph là một đại diện cấp cao hơn về hành vi của ứng dụng so với các vết bớt ở code-level (ví dụ: chuỗi opcode). Nói cách khác, ViewDroid không cần dữ liệu cấp độ tập lệnh.

Do đó, nó có khả năng chống lại rối mã như nhiễu lệnh hay dữ liệu, sắp xếp lại thứ tự, phân tách và tổng hợp tập lệnh, v. Ngoài ra, việc tạo ra đồ thị dựa trên phân tích tĩnh các API của Android framework (ví dụ: startActivity, startActivityForResult, OnClickListener). Các API này được cung cấp bởi hệ thống Android và khó bị thay thế hoặc sửa đổi. Do đó, view graph mạnh mẽ hơn đối với các kỹ thuật xáo trộn như tách, đổi tên và triển khai lại API [1].

Mục tiêu đề tài Nghiên cứu, thiết kế, xây dựng công cụ ứng dụng ViewDroid dé phát hiện ứng dụng Android đóng gói lại giúp cải thiện khả năng chống rối mã.

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

Tài liệu có tiêu đề Công Cụ Phát Hiện Ứng Dụng Android Đóng Gói Lại cung cấp cái nhìn sâu sắc về các công cụ và phương pháp phát hiện ứng dụng Android bị đóng gói lại, một vấn đề ngày càng trở nên nghiêm trọng trong lĩnh vực bảo mật di động. Tài liệu này không chỉ giải thích cách thức hoạt động của các công cụ phát hiện mà còn nêu rõ lợi ích của việc sử dụng chúng để bảo vệ người dùng khỏi các mối đe dọa tiềm ẩn. Độc giả sẽ tìm thấy thông tin hữu ích về cách nhận diện và xử lý các ứng dụng độc hại, từ đó nâng cao nhận thức về an toàn thông tin.

Để mở rộng kiến thức của bạn về lĩnh vực này, bạn có thể tham khảo tài liệu Khóa luận tốt nghiệp công nghệ thông tin phân loại mã độc android dựa trên hướng tiếp cận đa lớp đặc trưng. Tài liệu này sẽ giúp bạn hiểu rõ hơn về các phương pháp phân loại mã độc Android, từ đó cung cấp thêm góc nhìn về cách bảo vệ thiết bị di động của bạn khỏi các mối đe dọa.