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 2LỜ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 3LỜ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 5Mà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 6Bang 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 7LỜ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 83.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 9CHUONG 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 10cô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 12Phươ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 13dé 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 14CHƯƠ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 15Thuậ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 16Tỷ 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 17Tỷ 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 18Tỷ 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 19Tỷ 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 20CHƯƠ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 213.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 24TAt 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 26Cá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 273.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 28Media 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 293.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 30Android 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