1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Công nghệ thông tin: Phân loại Android Malware dựa vào giá trị thanh ghi

61 6 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân loại Android Malware dựa vào giá trị thanh ghi
Tác giả Nguyễn Vĩnh Tân
Người hướng dẫn TS. Phạm Văn Hậu, TS. Nguyễn Tấn Cầm
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Luận văn thạc sĩ
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 61
Dung lượng 25,8 MB

Nội dung

Android là một nền tảng hệ điều hành phô biến nhất trên thiết bị di động ngày nay.Cùng với hàng trăm nghìn ứng dụng trên các kênh lưu trữ trực tuyến, nền tảng Android đã đáp ứng được hầu

Trang 1

ĐẠI HỌC QUÓC GIA THÀNH PHÓ HÒ CHÍ MINH

TRUONG ĐẠI HỌC CÔNG NGHỆ THONG TIN

LUẬN VĂN THẠC SĨ NGÀNH: CÔNG NGHỆ THÔNG TIN

MÃ NGÀNH: 8.48.02.01

NGƯỜI HƯỚNG DAN KHOA HỌC

TS PHẠM VĂN HẬU

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan:

a Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn của

thầy TS Phạm Văn Hậu

b Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và trung thựctên tác giả, tên công trình, thời gian, địa điểm công bố

e Mọi sao chép không hợp lệ, vi phạm quy chế đảo tạo tôi xin hoàn toàn chịu

trách nhiệm.

Tp Hồ Chí Minh, Thang 3 năm 2022

NGƯỜI CAM ĐOAN

Nguyễn Vĩnh Tân

Trang 3

LỜI CẢM ƠNTruc tiên tôi xin dành lời cảm ơn chân thành và sấu sắc nhất đến thầy TS Pham

Van Hậu — Người đã gợi ý dé tài, hướng dẫn, khuyến khích, chỉ bảo và hỗ trợ cho tôinhững điều kiện tốt nhất từ khi bắt đầu cho tới khi hoàn thành công việc của mình

Tôi cũng xin gửi lời cảm ơn chân thành đến thầy TS Nguyễn Tan Cầm — Người

đã luôn bám sát đề tài, hỗ trờ tài liệu, hướng dẫn chỉ tiết, tận tình chỉ bảo đề đề tài có thể

đi đúng hướng và hoàn thành

Đồng thời tôi xin cảm ơn tắt cả những người thân yêu trong gia đình tôi cùng toàn

thể bạn bè những người đã luôn giúp đỡ, động viên tôi những khi vấp phải những khókhăn, bế tắc

Cuối cùng, tôi xin chân thành cảm ơn các thầy cô trường Đại học Công nghệ Thông

tin — Dai học Quốc gia Thành phố Hồ Chí Minh, đã tạo điều kiện cho tôi học tập, nghiên

cứu và hoàn thành chương trình Thạc sĩ tại trường

Tp Hồ Chí Minh, tháng 3 năm 2022

Nguyễn Vĩnh Tân

Trang 4

: Personal Identification Number

: Short Message Service : The Onion Router

: Uniform Resource Locator

Trang 5

Màn hình visual mode của Radare2

Các thiết bị chạy hệ điều hành Android

Một số tính năng của Android

Mô hình kiến trúc nền tảng của AndroidTầng Linux Kernel

Tang Library va Andorid RuntimeTang Application Framework

Tầng Application

Lược đồ quá trình phân loại malware

Mô hình hệ thống

Phân tích động file.apk bằng Radare2 thông qua thư viện R2pipe 40

Mang giá trị thanh ghi RAX đã được rút gon

Ma trận chỉ số tương đồng Jaccard

Giao diện hệ thốngLưu đồ khối trích xuất giá trị thanh ghi

Lưu dé khối rút gọn mảng thanh ghi RAX

Lưu đồ khối phân tích filetest.apk

Lưu đồ khối huấn luyện

Trang 6

Bang 4.1: Kịch bản tương tác người dùng của các malware huân luyện

Bảng 4.2: Bộ dữ liệu huấn luyện CIC-AndMal2017

Bảng 4.3: Chỉ tiết về bộ dữ liệu CIC-AndMal2017

Bảng 4.4: Giải thích Bảng chỉ tiết về bộ dữ liệu CIC-AndMal2017

Bảng 4.5: Mô hình thực nghiệm

Bảng 4.6: Kết quả thực nghiệm

Trang 7

LỜI CAM ĐOAN

1.4 Đối tượng, phạm vi nghiên cứu

1.5 Phương pháp dự định nghiên cứu

1.6 Tính khoa học và tính mới của dé

2.1 Nghiên cứu trong nước

2.2 Nghiên cứu ngoài nước

CHƯƠNG III: PHÂN LOẠI MÃ ĐỘC ANDROID DỰA TRÊN GIÁ TRỊ THANH

GHI

3.1 Công cụ hợp dịch ngược Radare2

3.1.1 Giới thiệu về Radare2

3.1.2 Định dạng và một số lệnh cơ bản của Radare2

3.1.2.1 Định dạng lệnh và khái quát lệnh của Radare2

3.1.2.2 Một số lệnh cơ bản thường dùng phục vụ cho việc phân tích của

Radare

3.1.3 Thiết lập kiến trúc hợp ngữ cho radare2

3.1.4 Hợp dịch ngược file.apk với radare2

3.1.5 Chế độ visual mode của Radare2

3.1.6 Thư viện r2pipe

Trang 8

3.2.1 Hệ điều hành Android.

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

3.2.1.2 Các tính năng của hệ điều hành Android

3.2.1.3 Các phiên bản hệ điều hành Android

3.2.1.4 Kiến trúc của hệ điều hành Android

3.2.1.4.1 Tầng hạt nhân Linux (Linux Kernel layer)

3.2.1.4.2 Tầng Library và Android Runtine3.2.1.4.3 Tầng Application Framework

CHƯƠNG IV: MÔ HÌNH THỰC NGHIỆM

4.1 Mô hình đề xuất thực hiện gồm các bước sau

4.1.1 Hệ thống gồm các khối như sau

4.1.2 Các bước thực hiện hệ thống

4.2 Chọn mẫu thử đầu vào dùng cho việc phân tích

4.3 Phân tích động với Radare2 và trích xuất giá trị thanh ghi rax

4.4 Rút gọn mảng thanh ghi trích xuất

Trang 9

CHUONG I: GIỚI THIỆU TONG QUAN VE DE TÀI

1.1 Dat van dé

Ngày nay cùng với sự phát triển mạnh mẽ của công nghệ thông tin và sự phát triéncủa Internet toàn cầu là các nguy cơ mắt an toàn thông tin đang trở nên nguy hiểm vàkhó lường hơn, trong đó mã độc hại (malware) là một trong những mối hiém họa nghiêmtrọng trên Internet Mã độc ngày càng tiến hóa với những biến thé đa dang từ virus máytính, worm, botnet với các hình thức xâm nhập, che giấu ngày càng tỉnh vi Số lượng

và hình thái đa dạng của mã độc ngày càng tăng, trong khi các phần mềm phòng chống

mã độc không thể phát hiện, ngăn chặn được hết, dẫn đến hàng triệu máy tính bị nhiễm

u thống kê của BKAV thì năm 2017 có đến 15 triệu

mã độc Ở Việt Nam, theo sô

máy tính bị nhiễm mã độc tương ứng thiệt hại khoảng 12.300 tỷ đồng Ngoài ra, ngàynay dé phát triển một mã độc mới không yêu cầu nhiều kỹ năng cao do tính sẵn có cáccông cụ tấn công trên internet Tính sẵn sàng cao của các kỹ thuật chống phát hiện cũngnhư khả năng mua phần mềm độc hại trên thị trường chợ đen dẫn đến cơ hội trở thànhmột kẻ tan công cho bat kỳ ai, không phụ thuộc vào cap độ kỹ năng và trình độ chuyên

môn Do đó, bảo vệ hệ thống máy tính khỏi các phần mềm độc hại trên Intenet là một

trong những nhiệm vụ quan trọng nhất về an ninh mạng cho người dùng, doanh nghiệp.Một cuộc tắn công đơn lẻ có thê dẫn đến dữ liệu bị xâm phạm và gây ra những hậu quả

to lớn Sự mat mát lớn và các cuộc tan công thường xuyên đặt ra yêu cầu cần thiết phải

có các phương pháp phát hiện chính xác và kịp thời.

Android là một nền tảng hệ điều hành phô biến nhất trên thiết bị di động ngày nay.Cùng với hàng trăm nghìn ứng dụng trên các kênh lưu trữ trực tuyến, nền tảng Android

đã đáp ứng được hầu hết các nhu cầu đa dạng của người sử dụng Do thiết kế mở củaAndroid, nó cho phép người dùng cài đặt các ứng dụng không nhất thiết phải bắt nguồn

từ Google Play Với hon 1 triệu ứng dụng có sẵn dé tải xuống qua kênh chính thức của

Google là CHPlay và gần một triệu ứng dụng khác được chia sẽ bởi bên thứ ba, ước tínhrằng có hơn 20.000 ứng dụng mới được phát hành mỗi tháng Điều này đòi hỏi việc phân

tích mã độc được đặt lên rat cao

Phát hiện mã độc là một bước quan trọng dé có thể ngăn chặn và tiêu diệt hoàntoàn mã độc ra khỏi thiết bị hoặc hệ thống mạng; khôi phục lại hiện trạng của thiết bị,

hệ thống mạng; truy tìm nguồn góc tan công Hầu hết mã độc ở dạng các chương trình,

Trang 10

công cụ và các kỹ thuật phân tích Có hai kỹ thuật phân tích chính là Phân tích tĩnh

(không cần chạy mã độc trong hệ thống) và Phân tích động (thực hiện khi mã độc chạy

trong hệ thống).

Học máy là một phương pháp phân tích dữ liệu một cách tự động Nó là một nhánh

của chí tuệ nhân tạo dựa trên ý tưởng đó là hệ thống có thể tự học từ đữ liệu, xác địnhcác mẫu và ra quyết định mà không có sự can thiệp của con người

Ứng dụng học máy trong phát hiện mã độc là chủ đề đang thu hút nhiều sự quan

tâm trong thời gian qua; khắc phục những nhược điểm của các phương pháp so sánh

mẫu dựa trên cơ sở dữ liệu mã độc được xây dựng và định nghĩa từ trước là không có

khả năng phát hiện ra các mẫu mã độc mới, số lượng dữ liệu mã độc ngày càng gia tăng

làm cho cơ sở dữ liệu mẫu trở nên ngày càng lớn.

Có nhiều giá trị cũng như dấu hiệu mà các giải thuật máy học có thể dựa vào đó

để phân loại malware như: các yêu cầu về quyền cho phép, lời gọi hệ thống và các giá

trị thanh ghi Nhung đề tài này tập trung vào các giá trị nhị phân của thanh ghi vì hauhết các hành vi của ứng dụng đều được thé hiện qua việc thay đổi các giá tri này trong

suốt thời gian chạy Bằng việc tính toán chỉ số tương đồng giữa tập dữ liệu mẫu và mẫu

thử, nghiên cứu đã phân loại được mẫu thữ là malware hay hiền lành ứng với tập dữ liệu

đã được phân tích trước đó với độ chính xác tương đôi cao Với mẫu vừa phân loại được

để tài sẽ bổ sung thêm vào cơ sở dữ liệu của giải thuật học máy (tức là cho máy học)qua đó mở rộng kha năng phát hiện các malware mới dé ứng dụng về sau

1.2 Mục đích nghiên cứu

Trong đề tài này em tập trung khai thác công cụ radare2, dé tiến hành hợp dịchngược mẫu thử Sau đó tiến hành chạy từng bước chương trình vừa hợp dịch ngược Các

biểu hiện của malware trong suốt quá trình chạy được thé hiện qua giá trị thanh ghi mục

đích chung RAX Trên cơ sở các giá trị thanh ghi vừa trích xuất, em tiến hành tính toánchỉ số tương đồng Jaccard dé xác định đó có phải là malware hay không, thuộc loại nào

và thuộc họ nào Tiếp đó là tiến hành học máy đê mở rộng khả năng phát hiện sau này

1.3 Tìm hiểu các phương pháp phân tích mã độc

Dựa trên các đặc tính được sử dụng dé phân loại ứng dung, chúng ta có thé phân

chia các phương pháp phân tích vào các loại: tĩnh và động Các ví dụ của các đặc tính

tĩnh bao gồm: các sự cho phép, các lời gọi API được trích xuất từ tập tinAndroidManifest.xml Các phân tích động dựa vào các đặc tính được trích xuất từ các

Trang 11

ứng dụng trong khi chúng đang chạy bao gồm: giao thông mạng, sử dụng pin, địa chỉ

IP, Loại thứ 3 là phân tích kết hợp, phương pháp này kết hợp các đặc tính của kỹ thuật

tĩnh và động.

1.3.1 Phân tích tĩnh

Phân tích tĩnh được thực hiện trong khi ứng dụng không được chạy Nó cơ bản là

thu thập các thông tin của ứng dụng như: tên, kích thước, các sự cho phép, mã, và mẫu chương trình Một vài thông tin đòi hỏi kỹ thuật dịch ngược ứng dụng từ mã máy sang

định dạng có thể đọc được để phân tích mã Thuận lợi của phân tích tĩnh đó là nó làphương pháp nhanh nhất và rẻ nhất bởi vì nó không đòi hỏi thực thi ứng dụng cũng nhưkhông đòi hỏi giám sát hoạt động Khó khăn của phương pháp này đó là nhiều malwarechỉ thực hiện tấn công khi chạy Thêm vào đó, các malware khác sử dụng kỹ thuật làmrối hoặc các phương pháp mã hóa, làm cho nó không thé đọc được hoặc giải mã nếu ứng

dụng không được thực thi.

1.3.2 Phân tích động

Loại phương pháp phân tích này (được biết như phân tích hành vi) được thực hiện

trong suốt quá trình thực thi ứng dụng Nó giám sát hoạt động bên trong và bên ngoài,

các kết nói, các lời gọi, và các click xảy ra trong khi ứng dụng đang được thực thi

Phương pháp này có thuận lợi trong việc phát hiện trên phạm vi rộng các malware và

các malware phức tạp Bất lợi của phương pháp này đó là nó tốn thời gian Thêm vào

đó, nó đòi hỏi kiến thức tiên nghiệm về kỹ thuật malware để giám sát

1.3.3 Phân tích kết hợp

Phân tích kết hợp là một sự kết hợp của cả hai phương pháp phân tích tĩnh và động.Mặc dù phân tích kết hợp có thuần lợi của cả hai phương pháp phân tích, nó cũng có 1bắt lợi chính Đó là nó làm cho hệ thống trở nên cồng kềnh và đòi hỏi nhiều thời gian

xử lý hơn để xem xét lượng không lồ các mẫu malware cần được phát hiện và phân tích.1.4 Đối tượng, phạm vi nghiên cứu

Hệ điều hành Android, Tập tin mẫu cần phân tích file.apk, xác định và phân loại

malware dựa trên thuật toán học máy (chỉ số tương đồng Jaccard)

Trên cơ sở file mẫu vừa xác định tiến hành cho máy học, để mở rộng khả năng

nhận dạng và sử dụng cho các lần sau

1.5 Phương pháp dự định nghiên cứu

Trang 12

Phương pháp điều tra : Phương pháp này được sử dụng nhằm thu thập thông tin về

malware, thu thập tập dữ liệu mẫu làm cơ sở dữ liệu cho thuật toán phân tích (mà cụ thể

ở đây là bộ dữ liệu CICAndMal20217) , tim hiéu về kiến trúc của hệ điều hành Android,tìm hiểu về các thuật toán học máy và lựa chọn thuật toán phù hợp sử dụng vào để tài

Phương pháp nghiên cứu sử dụng trong dé tài là ứng dụng ngôn ngữ lập trìnhpython để thiết kế giao diện, và sử dụng thư viện R2pipe đề thực hiện các lệnh của

radare2 trong chương trình.

Phương pháp phân tích là phương pháp phân tích động, cho chương trình chạy

trong môi trường máy ảo VMware chạy hệ điều hành Kali Linux (Có sao lưu trạng thái

ban đầu) đề tránh chương trình malware ảnh hưởng đến môi trường thật

Phương pháp chuẩn hoá dữ liệu: phân tích cơ sở dữ liệu mẫu sang dạng chuẩn làmảng các giá trị thanh ghi RAX làm cơ sở dữ liệu dé tính chi số tương đồng Jaccard với

tập tin đã được huấn luyện, từ đó xác định mẫu đem phân tích thuộc họ malware nào

hay là tập tin lành tính

Phương pháp xây dựng cơ sở dữ liệu là phương pháp phân tích động, bằng cáchhợp dịch ngược file.apk sang hợp ngữ và chạy debug đề lấy các giá trị thanh ghi và đưa

vào ma trận cơ sở dữ liệu.

1.6 Tính khoa học và tính mới của đề tài

1.6.1 Tính khoa học

Do việc phân tích mã độc là một lĩnh vực vô cùng lớn và đòi hỏi thời gian, công

sức và cả kiến thức về hệ điều hành android, ngôn ngữ lập trình, mã độc, Nên việc

thực hiện dé tài sẽ tạo điều kiện cho việc phân tích mã độc một cách nhanh chóng vàhiệu quả mà không cần đòi hỏi quá nhiều ở người thực hiện

Cùng với sự phát triển mạnh mẽ của trí tuệ nhân tạo trong thời đại cách mạng công

nghệ 4.0, để tài đã mở ra một hướng ứng dụng mới nhằm phân loại malware một cách

đơn giản và tự động hóa

1.6.2 Tính mới

Với việc sử dụng ngày càng phô biến của các thiết bị thông minh (máy tính, điệnthoại, ), các phần mềm mã độc cũng không ngừng tiến hóa cả về số lượng lẫn mức độnguy hiểm Chính vì vậy các nhà nghiên cứu cũng không ngừng phát triển các công cụphòng chống mã độc, nhưng chủ yếu là trên các hệ điều hành window hay Linux Tuy

Trang 13

dé tài này tập trung vào hệ điều hành Android không phải là vấn dé quá mới, nhưng

cũng là một hướng tiếp cận phù hợp với xu hướng của thời đại

Áp dụng học máy vào việc phân loại malware mà cụ thể là so sánh chỉ số tươngđồng giữa tập tin cơ sở dữ liệu và file mẫu cũng là một hướng đi mới của đề tài, tạo điều

kiện cho việc phân loại malware một cách chính xác và hiệu quả

Việc xác định và phân loại malware cần dựa trên nhiều dấu hiệu (sự cho phép, lờigọi hệ thống, lời gọi API, sử dung tài nguyên, ), nhưng trong dé tài nay tôi sử dụng giátrị thanh ghi, mà cụ thể là thanh ghi RAX (thanh ghi tích lũy) để làm cơ sở cho việc xácđịnh phần mềm là độc hai hay lành tính

Trang 14

CHƯƠNG II: CÁC NGHIÊN CỨU LIÊN QUAN

2.1 Nghiên cứu trong nước

Hiện tại trong nước có nhiều nhóm nghiên cứu thực hiện các nghiên cứu liên quanđến việc phân loại mã độc như Đại học Công nghệ thông tin (Đại học Quốc gia TP.HCM), Đại học Bách Khoa (Đại học Quốc gia TP HCM), Đại học Khoa học Tự nhiên(Đại học Quốc gia TP HCM), Đại học Bách Khoa Hà Nội, Cộng đồng nghiên cứu vềlĩnh vực này ngày càng nhiều Việc có thêm các nghiên cứu liên quan đến chủ đề này

cũng nhằm góp phan đóng góp cho sự phát triển của cộng đồng nghiên cứu trong nước

2.2 Nghiên cứu ngoài nước

Những công cụ cần thiết giúp cho các nhà phân tích phần mềm độc hại có được

cái nhìn thầu đáo về hành vi của mã độc Tuy nhiên, số lượng không lồ các mẫu malware

mới đến tay các nhà cung cấp giải pháp chống mã độc hàng ngày đòi hỏi các phươngpháp phân tích phải được tự động hóa hơn nữa dé hạn chế bớt các thao tác bằng tay của

người dùng Chính vì lẽ đó học máy, một nhánh của trí tuệ nhân tạo, đã trở thành một

hướng tiếp cận mới và đầy hiệu quả trong việc phát hiện và phân loại phần mềm chứa

mã độc Dưới đây là năm thuật toán học máy đã được nghiên cứu và trình bày với các

ưu nhược điểm của chúng

Thuật toán học máy Thuận lợi Bất lợi

- Độ chính xác dự đoán cao - Không phù hợp cho các tập

SVM (Support Vector | - Làm việc tốt trên các tập dữ | dữ liệu lớn

Marchines) liệu nhỏ - Ít hiệu quả trên các tập dữ

liệu chứa nhiễu

` - Linh động và dễ sử dụng - Sô lượng lớn cây có thê làm

Random Forest (Rừng ` MA ee es

B 1¬ - Xử lý các tập dữ liệu lớn với | cho thuật toán bị chậm

ngau nhiên)

kích thước cao hơn - Khó biên dịch

¬ - Dễ và nhanh sử dụng - Doi hỏi một thời gian học dài Decision Tree (Cây " h 2 ` '

Log - Kiêm soát dữ liệu lớn - Có thê có biêu diễn phức tạp

quyết định) x An i ray khái niê

- Hồ trợ học tập gia tang hơn đôi với một sô khái niệm

- Dễ thực hiện - Ít chính xác hon so với các

- Rất nhanh thuật toán phân loại khácNaive Bayes - Kiểm soát các lượng dữ liệu

lớn

Trang 15

Thuật toán học máy Thuận lợi Bat lợi

Bang 2.1: 5 thuật toán học máy và ưu, nhược điểm của chúng trong việc phát hiện

Bên cạnh thuật toán, việc phát

malware

én malware còn dựa trên các dâu hiệu (sự cho

phép, các lời gọi API, mã, ) Và thực tê đã chỉ ra rằng với cùng một tập dữ liệu các

ứng dụng hiểm độc và lành tính, không thé khẳng định thuật toán nào, áp dụng với dấuhiệu nào, và phương pháp phân tích nào cho kết quả tốt nhất trong việc phát hiệnmalware Chính vì vậy đã có nhiều công cụ được phát triển bởi các nhà nghiên cứu vớimục tiêu phân loại malware [1,2,3] Dưới đây là bảng liệt kê một số công cụ phân loạiandroid malware đã được phát triển trên thé giới trong những năm qua [4]

Trang 16

Tỷ lệ Dataset ¡ đã

Cơng cụ Năm | Loại lên - Loai dic Hoc may

EP | Accuracy | Precision | Peteetion | số lượng Nguồn trưng

Kirin [5] 2009 Tinh : : - : 311 | Google Play Quyén han :

Paranoid 2010 | Động Theo dõi lời

(Liên quan | logitic, các biểuđến nhắn tin, | đồ, cây quyết

cuộc gọi điện | định, mạng

thoại, Bayesian, Nạve

API, ) Bayes

Sarma et al [10] | 2012 Tinh - - - 80% | 158183 | Google Play, | Quyénhan | SVM

Contagio Malware Dump

DroidRanger 2012 Tinh 204040 | Google Play, | Quyên hạn

-[H] eoeMarket,

alcatelclub, gfan,

mmoovv (chi

những ứng dụng miễn phí)

Trang 17

Tỷ lệ ida

Công cụ Năm | Loại lên - Loai dic Hoc may

EP | Accuracy | Precision | Peston | sé lượng Nguồn trưng

DroidMOSS 2012 Tinh 240 |Các ứng dụng | Mã byte

-[12] miễn phí Dalvik

Potharaju 2012 Tĩnh | <1% 7600 | Google play Mã nguồn

-et al [13]

DroidMat [14] | 2012 Tinh - 97% 96% 87% 1738 | Google Play, | Sự đổi trật | KNN,

K-Contagio mobile | tự, các thành | means, Phân rã

Qiao et al [18] | 2016 Tinh | Thap 94% - - 6260 | Google Play, | Mã nguồn và | SVMs, Random

McAfee, các tập tin tài | Forest, Mang

Dự án Malgenom nguyên nơron

Trang 18

Tỷ lệ ida

Công cụ Năm | Loại lên - Loai dic Hoc may

EP | Accuracy | Precision | Petion | sé lượng Nguồn trưng

DroidSieve 2017 Tĩnh | Thấp 99 % 99% 99 % | 100000 | Dự án Malgenom | Dữ liệu | SVM, XGBoost[19] Tập dữ liệu khổng lồ của

Malgenome dung pin

Sanya et al [21] | 2017 Dong | 8% - 95% 95% 66 - Theo dâu lời | Naive Bayes,

gọi hệ thong | Random Forest

, thuật toán dốc

Stochastic

Descent EnDroid [22] 2018 |Động| 1% 97% 95% 97% 14019 | Google Play, | Ngõ vào, ra | Cây quyêt định,

AndroZoo, Tập | là các lời gọi | SVM, Random

dữ liệu Drebin | hệ thông Forest, các cây

(SMS, các | tăng cường lời gọi, hoạt

động mạng)

RepassDroid 2018 | Dong} <1% 97% 99% 96% 24288 | Google Play, | API, các sự | Cây quyét định,

[23] AndroZoo, — Dy | cho phép Random Forest,

án Malgenome, SVM, kNN,

Naive Bayes

Trang 19

Tỷ lệ Dataset ¡ đã

Công cụ Năm | Loại lên - Loai dic Hoc may

EP | Accuracy | Precision | Peston | sé lượng Nguồn trưng

Virus share, Tập

dữ liệu Drebin

TinyDroid [24] | 2018 Tĩnh | 5% 95% 92% 95% 2400 | Google Play, tập | Các mã Random Forest,

dữ liệu Drebin Naive Bayes,

SVM, kNN Xiao et al [25] | 2019 Động | 9% 93% 91% 96% 7130 | Google Play, Tập | Các lời gọi | LSTM

dữ liệu Drebin hệ thốngNSDroid[26] |2020 | Tinh | <1% 95% 96 % 95% | 32190 | Drebin Các đồ thị|SVM, Random

gọi hàm Forest, cây quyết

định

Bang 2.2: Tổng hợp một số nghiên cứu liên quan

Các độ đo được sử dụng dé đánh giá các giải pháp phân loại mã độc:

Accuracy (Sự chính xác) =

Độ chính xác (Precision) =

Tỷ lệ phát hiện (Detection rate) =

Ty lệ phát hiện nhằm (Rate of false positives) =

Trang 20

CHƯƠNG III: PHAN LOẠI MÃ ĐỘC ANDROID DUA TREN GIÁ TRI

THANH GHI

3.1 Công cụ hợp dịch ngược Radare2

3.1.1 Giới thiệu về Radare2

Radare2 (còn được gọi là R2) là một khung hoàn chỉnh cho kỹ thuật và phân tích

ngược các tệp nhị phân; nó bao gồm một tập hợp các tiện ích nhỏ có thê được sử dung

cùng nhau hoặc độc lập với từng dòng lệnh Được xây dựng xung quanh một trình hợp

dịch ngược cho phần mềm máy tính nhằm tạo ra mã nguồn hợp ngữ từ mã thực thi củamáy, nó hỗ trợ nhiều định đạng thực thi cho các bộ xử lý và hệ điều hành khác nhau

Một số tính năng của Radare2:

© _ Hợp dịch ngược (và hợp dịch cho) nhiều kiến trúc khác nhau

© Gỡ lỗi bằng trình gỡ lỗi từ xa và cục bộ tự nhiên (gdb, rap, webui, r2pipe,

winedbg, windbg)

e Chạy trên Linux, * BSD, Windows, OSX, Android, iOS, Solaris va Haiku

© _ Thực hiện pháp y trên hệ thống tệp và dữ liệu đã được tạo

e Được viết bằng Python, Javascript, Go và hơn thé nữa

° Hétro phân tích cộng tác bằng cách sử dụng máy chủ web được nhúng

© Truc quan hóa cấu trúc dữ liệu của một số loại tệp

e Va các chương trình dé khám phá các tính năng mới hoặc sửa chữa các lỗ hồng

Sir dụng khả năng phân tích mạnh mẽ dé tăng tốc độ đảo dịch ngược

© _ Hỗ trợ khai thác phần mềm

Một số kiến trúc được hỗ trợ bởi R2: i386, x86-64, ARM, MIPS, PowerPC,

SPARC, RISC-V, SH, m68k, m680x, AVR, XAP, System Z, XCore, CR16, HPPA, ARC, Blackfin, Z80, H8/300, V810, V850, CRIS, XAP, PIC, LM32, 8051, 6502, i4004,

i8080, Propeller, Tricore, CHIP-8, LH5801, T8200, GameBoy, SNES, SPC700, MSP430, Xtensa, NIOS II, Java, Dalvik, WebAssembly, MSIL, EBC, TMS320 (c54x,

c55x, c55+, c66), Hexagon, Brainfuck, Malbolge, whitespace, DCPU16, LANAI,

MCORE, mcs96, RSP, SuperH-4, VAX.

Các hệ điều hành được hỗ trợ: Windows (since XP), Linux, Darwin, GNU/Hurd,

Apple's {Mac,i,iPad,watch}OS, Android [Dragonfly, Net, Free, Open] BSD, Z/OS,

QNX, SerenityOS, Solaris, Haiku, Vinix, FirefoxOS.

Trang 21

3.1.2 Định dạng và một số lệnh cơ bản của Radare2

3.1.2.1 Định dạng lệnh và khái quát lệnh của Radare2

Hau hết các tên lệnh trong radare có nguồn góc từ tên hành động Chúng dễ nhớ vìrất ngắn gọn Trên thực tế, tất cả các lệnh đều là các chữ cái đơn lẻ Các lệnh con hoặccác lệnh liên quan được chỉ định bằng cách sử dụng ký tự thứ hai của tên lệnh

Định dạng chung cho một lệnh hợp lệ trông giống như sau:

[.]times][cmd][~grep][@[@iter]addr!size][l>pipe] ;

[times]: Là số lần thực hiện lệnh

[cmd]: Lệnh

Các đối số (iter, addr, size) phụ thuộc vào lệnh cụ thé Theo quy tắc chung, hầu hết

các lệnh lấy một số làm đối số để chỉ định số byte để làm việc, thay vì kích thước khốihiện được xác định Một số lệnh chấp nhận các biểu thức toán học hoặc chuỗi

Phần sau dấu “;” là phần chú thích

Do Radare2 là tài liệu tự ghi nên ta có thể lay danh sách day đủ chỉ với một dấu

“9” đơn gian và nhanh hơn nhiều so với việc gõ “help” mỗi lúc

Với lệnh trợ giúp “?” ta có thể sem khái quát các lệnh của R2 như sau:

e¢ *off[=[0x]value] : Con trỏ đọc, ghi dữ liệu hoặc giá tri

® (macro arg0 argl) : Quan lý Macro tập lệnh

e _.[-l(m)Ifllshlcmd] : Xác định macro hoặc tải tệp r2, cparse hoặc rlang

e =[cmd] :Chạy lệnh này qua rap: //

e/ :Tim kiếm byte, regexps, mau,

e ![cmd] : Chay lệnh đã cho như trong hệ thống

© #[algo] [len] : Tính hàm băm tổng kiểm tra của khối hiện thời

«© #llang[ ] : Hashbang để chạy tập lệnh rlang

ea : Thực hiện phân tích mã

eb : Lay hoặc thay đổi kích thước khối

® c[arg] : So sánh khối với dir liệu đã cho

«.ằ C : Quản lý siêu dữ liệu mã

ed : Các lệnh debug

® e[a[=b]] : Liệt kê, lấy, thiết lập các biến giá trị cấu hình

® f[name][sz][at] : Đặt cờ tại địa chỉ hiện thời

Trang 22

: Quản lý các loại Cparse : Tiện ích nhật ký văn bản

: Hoàn tác đặt tên, hoàn tác tìm kiếm, hoàn tác ghi: Vào chế độ trực quan

: Nhiều thao tác ghi

: Liệt kê và quảy lý các plugin lõi

3.1.2.2 Một số lệnh cơ bản thường dùng phục vụ cho việc phân tích của Radare2

⁄ Lệnh tìm kiếm: s

mà chúng ta đang sử dụng lệnh.

phép trừ, phép nhân

radare2

Để di chuyển xung quanh tệp mà chúng ta đang kiểm tra, ta sẽ cần thay đồi độ lệch

Đối số là một biểu thức toán học có thể chứa tên cờ, dấu ngoặc đơn, phép cộng,

Để tìm hiểu chỉ tiết các tham số của lệnh tìm kiếm ta có thể gÕ: s? tại con nhắc của

Trang 23

: In địa chỉ hiện thời

: Tìm kiếm địa chỉ này: Hoàn tác tìm kiếm: Làm lại tìm kiếm: Liệt kê lịch sử tìm kiếm được hoàn tác: Tìm kiếm các byte có kích thước khối ở phía trước: Tìm kiếm các byte có kích thước khỏi ở phía sau: Tìm kiếm ở phía trước 512 byte

: Tìm kiếm ở phía sau 512 byte: Tìm kiếm vị trí bắt đầu (sg) hoặc kết thúc (sG) của

phần hoặc tập tin: Tìm kiếm N mã tiếp theo: Tìm kiếm hàm tiếp theo: Tìm kiếm chú thích giống với chuỗi đã cho: Tìm kiếm thanh ghi pc

Một trong những tính năng chính của radare2 là hiên thị thông tin ở nhiều địnhdang Mục đích là cung cấp một loạt các lựa chọn hiền thị để giải thích đữ liệu nhị phântheo cách tốt nhất có thẻ

Dữ liệu nhị phân có thể được biểu diễn dưới dạng số nguyên, short, longs, float,

dấu thời gian, chuỗi hexpair hoặc các định dạng phức tạp hơn như cấu trúc C là kết quả

Y Lệnh debug (gỡ lỗi)

: Dòng bit của N bit : Dòng bit của N byte

: Xuất ra dạng C (hoặc python)

: Hợp dịch ngược N mã (pd) hoặc N byte (pD)

: Tính mã băm cho một khối

: Dump thập lục phân N byte (o=8bit,w=32bit,q=64bit)

Trang 24

TAt cả các lệnh liên quan đến gỡ lỗi đều có tiền t6 là d, rất dé nhớ và khá tiện dungMột số lệnh debug thường dùng được liệt kê bởi lệnh “d?”

: Lay giá tri tat cả các thanh ghi của CPU

: Thực thi 1 lệnh tai địa chỉ thanh ghi rip hoặc bỏ qua

lệnh (dS)

3.1.3 Thiết lập kiến trúc hợp ngữ cho radare2

⁄ Radare2 hỗ trợ việc thay đổi kiến trúc hợp dịch ngược giữa Intel và AT&T Đểchuyền đổi giữa 2 kiến trúc này ta thực hiện lệnh sau:

€ asm.syntax = intel

€ asm.syntax = att

+⁄ Cấu trúc lệnh hợp ngữ của 2 kiến trúc nay

Intel: < Inst > < dst >,< sre >

AT&T: < Inst > < sre >, < dst >

3.1.4 Hợp dich ngược file.apk với radare2

Radare2 cho phép hợp dịch ngược file với khá nhiều cờ Dưới đây là dạng lệnhhợp dịch ngược của Radare được hiền thị sau lệnh “radare2 -h”:

r2 [-ACdfLMnNqStuvwzX] [-P patch] [-p prj] [-a arch] [-b bits] [-i file] [-s

addr] [-B baddr] [-m maddr] [-e cmd] [-e k=v] filelpidl-I |=

Nhung ta chi chú ý vào một số tùy chon sau đây

: Chạy Radare2 mà không mở bắt kỳ file nào

: Chạy lệnh ‘aaa’ để phân tích tất cả mã được tham chiều

: Chạy debug tập tin thực thi

: Cho phép chế độ debug

: Hiền thị thông báo trợ giúp, hh - trợ giúp dài: Hiền thị biến

: Chạy file tập lệnh : Chạy file tập lệnh trược khi file được mở

: Nạp các file plugin

Trang 25

-L : Liệt kê các plugin IO được hỗ trợ

-N : Không tải các thiết lập và tap lệnh của người dùng-q : Chế độ yên lặng (không có dầu nhắc) và thoát sau -i-Q : Chế độ yên lặng (không có dấu nhắc) và thoát nhanh

hơn

-s [addr] : Khởi tạo tim kiếm-S : Khởi động R2 ở chế độ sandbox-v,-V : Thể hiện phiên bản radare2 (-V thể hiện phiên bản thư

viện)

-w : Mở file ở chế độ ghi

file : Tập tin thực thi (.exe, apk, ) sẽ được hợp dịch

ngược

3.1.5 Chế độ visual mode của Radare2

Radare2 có chế độ sem trực quan nhằm hỗ trợ điều kiện tốt nhất cho việc phân tích

Trang 26

Các phím (các lệnh) hỗ trợ cho chế độ trực quan, có thể được sem bằng cách nhấn

phím *?° Sau đây là một số phím thông dụng thường ding cho chế độ này:

hjkl : Các phim di chuyên màn hình (trái-đưới-trên-phải)

B : Chuyển đồi Breakpoint

€ : Thay đổi mau sắc

pP : Chuyén đổi giữa các chế độ sem (hex, disasm, debug,

words, buf )

q : Trở về man hình lệnh của radare

s⁄S : Thực hiện lệnh / bỏ qua lệnh tại vị trí (rip) hiện tại

2 : Chuyển đổi Breakpoint

f7 : Thực hiện lệnh

£8 : Bo qua lệnh

3.1.6 Thu vién r2pipe

Python hỗ trợ chạy các lệnh radare2 thông qua thư viện r2pipe Điều nay tạo điềukiện thuận lợi cho tự động hóa quá trình phân tích động vì ta không phải ngồi chạy từng

lệnh và ghi nhận kết quả sau mỗi lệnh Đó là 1 trong những lý do mà đề tài chọn python

làm ngôn ngữ lập trình

Dé cài đặt thư việt r2pipe tại con nhắc lệnh của Kali Linux ta chỉ cần gd

Y pip install r2pipe

Sau khi cai đặt dé chạy radare2 trong python ta cần import thư viện vừa cai và mở

đối tượng cần chạy thông qua thư viện r2pipe

⁄ import r2pipe

/ r =r2pipe.open(đường dẫn file / tên file)

Chạy một lệnh radare2 với đối tượng vừa mở (r) ta gõ dạng lệnh sau:

v r.cmd(‘lénh radare2’)

Ví dụ về lệnh làm việc với thanh ghi:

v r.cmd(‘dr*’) # dump giá tri tất cả các thanh ghi

Y remd(‘dr eax’) # Lấy giá trị thanh ghi eax

3.2 Hệ điều hành android và các loại android malware

Trang 27

3.2.1 Hệ điều hành Android

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

Hệ điều hành Android là nền tảng được cài đặt lớn nhất trong số các nền tảng diđộng khác nhau trên toàn cầu Hàng trăm triệu thiết bị di động được cung cấpbởi Android tại hơn 190 quốc gia trên thế giới Nó đã chỉnh phục khoảng 75% thị phầntoàn cầu vào cuối năm 2020 và xu hướng này đang tăng lên mỗi ngày Công ty OpenHandset Alliance lần đầu tiên phát trién Android dựa trên phiên bản sửa đổi của nhânLinux và phần mềm mã nguồn mở khác Google đã tài trợ cho dự án ở giai đoạn đầuvào năm 2005, và sau đó mua lại toàn bộ công ty Tháng 9 năm 2008, thiết bị chạy hệ

điều hành Android đầu tiên ra mắt thị trường Android thống trị ngành công nghiệp hệ

điều hành đi động vì danh sách dài các tính năng cung cấp Nó thân thiện với ngườidùng, có sự hỗ trợ lớn từ cộng đồng, cung cấp mức độ tùy biến lớn hơn và một số

lượng lớn các công ty xây dựng điện thoại thông minh tương thích với Android Do

đó, thị trường ghi nhận sự gia tăng mạnh mẽ về nhu cầu phát triển các ứng dụng diđộng Android, và cùng với đó là các công ty cần những nhà phát triển thông minh với

bộ kỹ năng phù hợp Lúc đầu, mục đích của Android được coi là một hệ điều hành di

động Tuy nhiên, với sự tiễn bộ của các thư viện mã và sự phổ biến của nó đối với cácnhà phát triển miền khác nhau, Android đã trở thành một bộ phần mềm tuyệt đối chotất cả các thiết bị như: máy tính bảng, thiết bị đeo được, set-top box, TV thông minh,

Android là một hệ điều hành mã nguồn mở mạnh mẽ, mã nguồn mở cung cấp các

tính năng phong phú và dưới đây là một số tính năng của Android

Trang 28

Media supports AVI, MKV, MPEG4 ete

Location tracking

using GPS

‘Aaugmented and Virtual Reality support

Hình 3.3: Một số tính năng của Android

Do android là mã nguồn mở, nên chúng ta có thé thực hiện dé dàng các tùy chỉnh

theo yêu cầu của mình

Android hỗ trợ các loại kết nối khác nhau: GSM, CDMA, Wi-Fi, Bluetooth, v.v

dé đảm bảo nhu cầu đàm thoại qua điện thoại hoặc truyền dữ liệu

Với công nghệ wifi, người dùng có thê ghép nối với các thiết bị khác để chơi

game hoặc sử dụng các ứng dụng khác.

Android chứa nhiều API hỗ trợ các dịch vụ theo dõi vị trí như GPS

Chúng ta cũng có thé quản lý tat cả các hoạt động liên quan đến lưu trữ dữ liệu

bằng cách sử dụng trình quản lý tệp

Nó chứa các phương tiện hỗ trợ các định dang: AVI, MKV, FLV, MPEG4, v.v.

dé phát hoặc ghi nhiều loại âm thanh, video

Nó cũng hỗ trợ các định dang hình ảnh khác nhau như JPEG, PNG, GIF, BMP, MP3, v.v.

Android hỗ trợ điều khiển phần cứng đa phương tiện để thực hiện phát lại hoặc

ghi âm bằng máy ảnh và micrô

Android có trình duyệt web dựa trên bố cục WebKit mã nguồn mở tích hợp để

hỗ trợ Giao diện người dùng như HTMLS, CSS3.

Android hỗ trợ da tác vụ có nghĩa là chúng ta có thé chạy nhiều ứng dụng cùngmột lúc và có thể chuyên đôi giữa chúng

Nó cung cấp hỗ trợ cho thực tế ảo hoặc đồ họa 2D / 3D

Trang 29

3.2.1.3 Các phiên bản hệ điều hành Android

Google cập nhật thay đổi đối với Android thường xuyên sau mỗi bản phát hành,

bao gồm các bản vá bảo mật và cải tiến về hiệu suất

Android 1.0 Phát hành vào 23/9/2008 Sở hữu bộ ứng dụng Google, bao gồm

Gmail, Maps, Lịch và YouTube.

Android 1.5 (Cupcake) Phát hành 27/4/2009 Ra mắt bàn phím ảo trên màn hình

và framework cho app các widget bên thứ ba.

Android 1.6 (Donut) Phát hành 15/9/2009 Giới thiệu HĐH có thé chạy trên các

kích thước và độ phân giải màn hình khác nhau; tăng cường hỗ trợ cho mạng CDMA.

Android 2.0 (Eclair) Phát hành 26/10/2009 Ra mắt tính năng điều hướng bằnggiọng nói theo từng chặng, cập nhật thông tin giao thông thời gian thực, kéo mở đề thu

phóng.

Android 2.2 (Froyo) Phát hành 20/5/2010 Thêm dock ở cuối màn hình chính và

tác vụ thoại, cho phép người dùng chạm vào biểu tượng và nói lệnh Hỗ trợ Flash cho

Android 4.0 (Ice Cream Sandwich) Phát hành 18/10/2011 Giới thiệu giao diện

người dùng thống nhất cho cả máy tính bảng và điện thoại thông minh; với thay đổi

đáng chú ý nhất là chủ yếu sử dụng thao tác vuốt dé điều hướng

Android 4.1 đến 4.3 (Jelly Bean) Phát hành lần lượt vào 9/7/2012, 13/11/2012 và24/7/2013 Giới thiệu Google Now, một dịch vụ lập kế hoạch trong ngày Ngoài ra còn

có thông báo dạng tương tác và cải tiến hệ thống tìm kiếm bằng giọng nói

Android 4.4 (KitKat) Phát hành chính thức 31/10/2013 Ra mắt giao diện người

dùng với các màu sáng hơn, cùng với thanh trạng thái trong suốt và các biểu tượng màu

trắng.

Android 5.0 (Lollipop) Phát hành chính thức 12/11/2014 Kết hợp thiết kế giao

diện dạng card-based với các yếu tố như thông báo và danh sách Ứng dụng gần đây

Giới thiệu tính năng điều khiển bằng giọng nói thông qua lệnh "OK, Google"

Trang 30

Android 6.0 (Marshmallow) Được phát hành chính thức hồi tháng 10 năm 2015.

Bản phát hành này đánh dấu việc Google thông qua lịch phát hành hàng năm Ra mắt

tính năng quản lý quyền truy cập ứng dụng chỉ tiết hơn, hỗ trợ cho đầu đọc vân tay và

Android 9.0 (Pie) Phát hành 6/ 8/2018 Phiên bản này đã thay thế các nút Back,

Home và Overview thành nút Home đa chức năng và nút Back nhỏ hơn Ra mắt các tính

năng quản lý hiệu suất, bao gồm gợi ý trả lời tự động cho tin nhắn và quản lý độ sáng

Android 10 (Android Q) chính thức phát hành vào 3/9/2019 Bỏ nút Back dé

chuyển sang điều hướng hoàn toàn bằng thao tác vuốt Có thêm Dark theme và Focus

mode cho phép người dùng bớt bị phân tâm từ những ứng dụng khác.

Nối tiếp Android 10 thì vào 09/2020, Google đã chính thức công bố hệ điều hành

đi động thế hệ thứ 11 Phiên bàn này được kỳ vọng sẽ mang đến nhiều tính năng cũng

như ién mới cho các smartphone Android như: tích hợp quay màn hình (cho phép

người dùng vừa quay màn hình vừa ghi âm giọng nói cũng như âm thanh của hệ thống

cùng | lúc), kiểm soát quyền truy cập 1 lần (nhằm hạn chế nguy cơ lạm quyền từ các

ứng dung), tăng kích thước quay video mở rộng, bong bóng chat, thay đồi giao diện của

trình phát nhạc, đề xuất các ứng dụng hay dùng, lịch sử thông báo

Mặc dù chưa được ra mắt nhưng thế hệ Android tiếp theo là Android 12 đã bat đầu

có những thông tin rò ri mới về tính năng cực kỳ thú vị: Cho phép người dùng chơi game

ngay khi tải và giao diện hoàn toàn mới cực kỳ đáng mong chờ.

3.2.1.4 Kiến trúc của hệ điều hành Android

Android bao gồm 4 tầng từ dưới lên trên là tầng hạt nhân Linux, Tầng Libraries &

Android runtine, Tang Application Framework và tầng trên cùng là tang Application

Ngày đăng: 08/11/2024, 17:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN