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

Khóa luận tốt nghiệp An toàn thông tin: Xây dựng giải pháp giám sát hành vi ứng dụng trên điện thoại Android

80 0 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 đề Xay Dung Giai Phap Giam Sat Hanh Vi Ung Dung Tren Dien Thoai Android
Tác giả Nguyen Thi Hong Phuc, Vo Huynh Huu Sang
Người hướng dẫn TS. Pham Van Hau, TS. Nguyen Tan Cam
Trường học Truong Dai Hoc Cong Nghe Thong Tin
Chuyên ngành An Toan Thong Tin
Thể loại Khoa Luan Tot Nghiep
Năm xuất bản 2021
Thành phố TP. Ho Chi Minh
Định dạng
Số trang 80
Dung lượng 40,03 MB

Nội dung

mặt của thị trường thiết bị di động.Với vị trí hệ điều hành lớn nhất thé giới thời điểm hiện tại cũng như giá thành của những chiếc điện thoại thông minh Android ở mức trung bình thì ứng

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN KHOA MANG MAY TINH VA TRUYEN THONG

NGUYEN THI HONG PHUC

VÕ HUYNH HỮU SANG

KHOA LUAN TOT NGHIEP

XAY DUNG GIAI PHAP GIAM SAT

HANH VI UNG DUNG TREN DIEN THOAI ANDROID

Solution for application activity monitoring on Android mobile

KY SU NGANH AN TOAN THONG TIN

TP HO CHÍ MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA MANG MAY TINH VA TRUYEN THONG

NGUYEN THI HONG PHÚC - 17520128

VÕ HUỲNH HỮU SANG - 17520981

KHÓA LUẬN TÓT NGHIỆP XÂY DỰNG GIẢI PHÁP GIÁM SÁT HÀNH VI ỨNG DỤNG TRÊN ĐIỆN THOẠI ANDROID

Solution for application activity monitoring on Android mobile

KY SU NGANH AN TOAN THONG TIN

GIANG VIEN HUONG DAN

TS PHAM VAN HAU

TS NGUYEN TAN CAM

TP HO CHÍ MINH, 2021

Trang 3

THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

T8ầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

LỜI CẢM ƠN

Quá trình thực hiện khóa luận tốt nghiệp là giai đoạn quan trọng nhất trong quãng đời mỗi sinh viên Khóa luận tốt nghiệp là tiền đề nhằm trang bị cho chúng

em những kỹ năng thực tiễn, kiến thức quý báu trước khi lập nghiệp.

Trước hết, chúng em xin chân thành cảm ơn quý Thay, Cô trường Dai học Công nghệ Thông tin — Đại học Quốc gia Thanh phố Hồ Chí Minh Đặc biệt là các Thầy, Cô trong khoa Mạng máy tính và truyền thông đã tận tình chỉ dạy và trang bị cho chúng em những kiến thức cần thiết trong suốt thời gian ngôi trên ghế giảng đường, làm nền tảng cho nhóm em có thể hoàn thành được bài nghiên

cứu khóa luận này.

Em xin trân trọng cảm ơn thầy hướng dẫn là TS Phạm Văn Hậu và TS Nguyễn Tan Cam đã tận tình giúp đỡ, định hướng cách tư duy và cách làm việc khoa học cho nhóm trong suốt quá trình thực hiện đề tài Đó là những góp ý hết

sức quý báu không chỉ trong quá trình thực hiện khóa luận này mà còn là hành

trang tiếp bước cho em trong quá trình học tập và lập nghiệp sau này.

Và cuối cùng, xin gửi lời cảm ơn đến gia đình, người thân, bạn bè và tập thể lớp ATTN2017, những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập

và cuộc sống Mong rằng, chúng ta sẽ còn gắn bó với nhau trong tương lai.

Mặc dù nhóm đã có gắng hết mình dé hoàn thành khóa luận trong khả năng của bản thân Tuy nhiên vì kiến thức và thời gian thực hiện có hạn nên sẽ không tránh khỏi những hạn chế và thiếu sót Nhóm em xin tiếp thu và nhận được ý kiến đóng góp từ quý Thay, Cô và các ban để nhóm hoàn thiện hơn bản báo cáo.

Một lần nữa nhóm xin chân thành cảm ơn!

Trang 5

MỤC LỤC

Chương 1 © TONG QUAN VE DE TÀI - -22¿22222+cc222ESzetErErrrrsrrrrcree 3

PD ^^ .ẽ.ẽ ẽẽẽ 4AHADH , 3

1.2 Mục tiêu để tài 2222cc222 1222221122221 2221112 1 erree 4

1.3 Phạm vi nghiên CỨU - 6 + + tk kg tre ciÕ

1.4 Đối tượng nghiên cứu ¿ 2+2++222E++tEEEEtrrtrrkrrrrrrrrrrrrrcrrrrc.Õ

Chương 2 CƠ SỞ LÝ THUYẾT -: ©222++2222++222SSEvtttEvvrretrrrrrree 6

2.1 Tổng quan về hệ điều hành Android -.-:-cz222s+z+2cvvszezvzsvez 6

2.1.1 Thiết bị đi động 2222+22222EES222EECEEEEEErErrtrrrrrrrkree 6

2.1.2 Khái niệm hệ điều hành Android -¿ ¿z2csscz+vcs+++ 6

2.1.3 Lịch sử phát triển của Android cccccc2ccvvvvccrrrrrrex 7

2.1.4 Những đặc điểm của Android cccc-c2cccvccccrrrrrrex 9

2.1.5 Kiến trúc hệ thống của hệ điều hành Android - 0

2.1.5.1 Linux KernelL + - 55+ 2 ++t‡teEErrkrkekrrrkrkree 1

2.1.5.2 Các thư viện Android - ¿+ 5: +2 + xcvEsEsexerretetsexrrrrsersssee 1

2.1.5.3 Android Runtime ¿+ 56+ k‡*‡k‡EE#kekEEEEEkEkekrrrrkrrke 2

2.1.5.4 Application FramewOFK - ¿55+ 5+2c+ccsczeexexerererrree 3

Trang 6

2.2 Tổng quan về kỹ thuật hooking -:-+22v+z+222vvvrvtcvvvrrerrxer 17

2.2.1 Tổng quan

2.2.2 Phân loại công cụ hooking -¿«5cc ss+‡+sserkskekrrre 18

2.2.3 Công cụ hooking được nghiên cứu trong đề tài

2.3 Tổng quan về công cụ hooking -¿-2++222+z++22vxvzrsrrrseerrrr 23

2.3.1 Frida

2.3.1.1 Tổng quan -22222222++2222E22E2vrrrtttEEEExrrrrrrrrrrrrrrrrree 23

2.3.1.2 Những công cụ được hỗ trợ trong Frida.

2.3.2 Xposed FramewOrk - «5c re 25

2.3.2.1 Tổng quan -c¿ccc5222vccc2222+tvECEEEvrtErktrrerrkrrrrerrkrerrrr 25

2.3.2.2 Các phiên ban cua Xposed Framework -. : ‹ - 26

2.3.2.3 Xposed Framework APPI - 5+5+55+ccsc+e+xsxererrecee 30

2.3.2.4 Cách hoạt động của Xposed FramewWOrK «<< 31

2.3.2.5 Triển khai Xposed Module .c-:cccscccsccvscccccsecc DS Chương3 XÂY DỰNG UNG DUNG TRIEN KHAI THU NGHIỆM 36

3.1 Thành phan giao diện ứng dụng ¿ +z+22cv++++zcvvvrrerrvsrresrr 36

E— 36

3.1.2 View Group Ăcc SH Hee 36

3.1.2.1 Linear LayOut ¿5+555c52 22+ St+xsxtxereretererrrerrree 37

3.1.2.2 Constraint LayOUK + xxx ngư 37

Trang 7

3.3 Chức năng hiện có của ứng dụng -. + c + St sisrerrrrerirrrerees 41

Chương 4 | XAY DUNG HE THONG GIAM SAT HANH VI UNG DUNG 43

4.1.1 _ Đánh giá khả năng giám sat - c5 3 St SEseiresrseereserre 43

4.1.2 Thực hiện triển khai và mô phỏng một số chức năng 43

4.1.2.1 Thực hiện hooking phương thức startActivity 43

4.1.2.2 Tìm và liệt kê tất cả những lớp (class) đang được sử dung 45

4.1.2.3 Thực hiện hooking sự kiện onC ÏIcK - «- 5s +s<<£++s<se+ 47

4.1.2.4 Sử dụng Frida dé khai thác tính năng Mobile Banking 49

4.2 Xposed FrameWOFK - «LH HH TT TH HH Hà HH 52

4.2.1 Giới thiệu Ứng dỤng c1 SH kg ngư, 52

4.2.2 Tổng quan cách hoạt động - ¿2 + x+E++EE+EzEcrEerkerrerxerxee 53

4.2.2.1 Ý tưởng thiết kế giao di@n oo essesssessessesssessessessessesseeseeaee 53

4.2.2.2 Ý tưởng hooking - 2c s£+E2+EE£EE£EEEEEEEEEEEEEErEkrrkerrerree 54

4.2.3 Kết quả thực nghiệm -¿- 2¿©-++22++2E++EESEErrErerkrerxrrrrees 56

4.2.3.1 Giao diện chính - - cv 9 ng Hàng HH gưkt 56 4.2.3.2 Hooking clipboard ALPÏ 5c v3 1v 9v vn ngư, 56

Trang 8

4.2.3.3 Hooking sendTextMessage APPI - Ăn nseeeeeieerske 57

4.2.3.4 Hooking URL 2-©2s+2E+EE2EESEEEEEE2E12E1 21.21 59

4.2.3.5 Hooking Ïn(€TI c1 vn kg ngư 62

Chương 5 ĐÁNH GIÁ VA KET LUẬN - 5 +52+E++E+Eerkerkerxerkrree 64

5.1 Kết quả đạt đƯỢC :-ScSc 2122 E21 21212111211211211 211111111111 645.2 Những khó khăn và hạn chẾ - 2 ¿2+ + x+EE+EE+E££E++E££EerEerkerxerxsrxee 65

5.3 Hướng phát triỂn +-©¿++++E++2EEEEE+SEE2E1211271221 21121 crre 65

5.4 Kết luận S St 2 St St E121 112115111111111111111111111111111111111 2E EE tre 66

Trang 9

DANH MỤC HÌNH ANH

Hình 1.1 Sơ đồ dự báo thị phần giữa các hệ điều hành di động toàn thé giới 3

Hình 2.1 Thi phần thương mại hệ điều hành di động theo StatCounter (07/2021) 9

Hình 2.2 Sơ đồ phân tang kiến trúc hệ điều hành Android -. 5 s2 s2 11 Hình 2.3 Sơ đồ trang thái vòng đời của một ActiVity -¿ccccecxccxecres 14 Hình 2.4 Máy ảo Android Emulator c 3c 13x 3E ESeEEseereeeeereeeereere 17 Hình 2.5 Luong thực thi hooking [4] - - - <6 +5 + k**xE+kE+EESkEEseseesskessersee 18 Hình 2.6 Phân loại công cu hooking dựa trên các đặc trưng -‹+ + 19

Hình 2.7 Mô hình thực hiện sử dung ETIa 25 5 3+ 1E E+vEEsseeeeersreers 23 Hình 2.8 Ví dụ các câu lệnh thuộc công cụ ÍrIda-fraC€ 55-5 + + ++sssssess 24 Hình 2.9 Giao diện Xposed sau khi hoàn tất cài đặt c-ccckcnnerrerrkererrryee 28 Hình 2.10 Giao diện Magisk và EdXposed khi cài đặt - - - 5+ 5-<+-+2 29 Hình 2.11 Mô hình hoạt động của beforeHookMethod và afterHookMethod [15] 32

Hình 2.12 Mô hình hoạt động của replaceHookedMethod - « «+s«2 33 Hình 2.13 Thêm thư viện XpsedBridge vào DrOJ€C 55c s+ss+exsseress 33 Hình 2.14 Thêm tag metadata vào tệp AndroidManifest.xml - 34

Hình 2.15 Thêm tệp Xposed_ Init vào thư mục aSS€fS - 5 - 55 +55 << £+ccsxx 34 Hình 2.16 Lưu logs và hiển thị tại Xposed Manager -¿©+©2++cxzxz>s+ 35 Hình 3.1 Linear Layout được sử dung trong ứng dụng thử nghiệm 37

Hình 3.2 Khai báo EditText trong file ManIfesf.xim] 55 55 5< <<+<£+s£ese 39 Hình 3.3 Mô phỏng vai tro CỦa Ïn€TIE < 11219 1v HH ng kg 40 Hình 3.4 Giao diện lựa chọn chức nang của ứng dung thử nghiệm 42

Hình 4.1 Mã nguồn JavaScript dùng dé hook phương thức startActivity() 44

Hình 4.2 Kết quả log thu được khi hook phương thức startActivity() -.- 45

Hình 4.3 Mã nguồn JavaScript dùng dé liệt kê Class được sử dụng - 46

Hình 4.4 Danh sách lớp đã được liệt kê - ¿5c 32+ E S2 SEserserrreereersrrrrs 47 Hình 4.5 Mã nguồn JavaScript dùng dé hook sự kiện onClick . .: 48

Hình 4.6 Kết quả thu được sau những lần sự kiện onClick được ĐỌI «S- 49

Hình 4.7 Màn hình xác thực mã PIN + 2113 E223 1 vs xe erzey 50

Trang 10

Hình 4.8 Thực hiện thành công bypass mã PIN sàn seeseeirrrske 51

Hình 4.9 Brute-force mã PIN 4 chữ SỐ 2-©22©225E+SE‡EE22EE2EEEEEEEEEEEEerkrrkrrer 52

Hình 4.10 Mô hình hệ thống giám sát hành vi xây dựng dựa trên Xposed 55

Hinh 4.11 Giao dién hién thi 0 I _ 56

Hình 4.12 Hién thị thông báo khi phát hiện truy cập clipboard - 57

Hình 4.13 Hién thị cảnh báo khi ứng dụng gửi tin nhắn có chứa mật khẩu 58

Hình 4.14 Hiền thị thông báo ứng với lựa chọn của người dùng 58

Hình 4.15 Cảnh báo khi gọi đến ứng dụng gửi tin nhắn ngoài và có mật khẩu 59

Hình 4.16 Hién thị cảnh báo khi phát hiện URL có trong “danh sách đen” 60

Hình 4.17 Hiền thị thông báo hành vi ứng với lựa chọn của người dùng 61

Hình 4.18 Hién thị thông báo khi URL truy cập không có trong “danh sách den” 61

Hình 4.19 Hién thị thông báo hành vi mở camera từ ứng dụng - 62

Hình 4.20 Hiền thị thông báo hành vi hẹn báo thức và xem lịch - ‹ 63

Trang 11

DANH MỤC BẢNG

Bang 2.1 Danh sách phiên ban Android đến thời điểm hiện tại 8

Bảng 2.2 So sánh tính năng giữa Frida va Xposed Framework 22

Bang 2.3 Phiên bản Xposed Framework và phiên bản Android tương thich 27

Bang 2.4 Thông tin về Xposed Framework API cc c2 cse: 30Bảng 4.1 Mô tả bang cơ sở dữ liệu "logs InÍO” ccc<ccs<+ 54

Bang 4.2 Danh sách tên lớp và tên phương thức được hook 55 Bang 4.3 Danh sách tên lớp và tên hàm dựng được hook 55

Trang 12

DANH MỤC TỪ VIET TAT

API Application Programming Interface

SMS Short Message Service

VM Virtual Machine

APK Android Package

NEC Near-Field Communication

SSL Secure Sockets Layer

GSM Global System for Mobile Communications

EDGE Enhanced Data for Global Evolution

IDEN Integrated Digital Enhanced Network

CDMA Code Division Multiple Access

EV-DO Evolution-Data Optimized

UMTS Universal Mobile Telecommunication System

LTE Long Term Evolution

PDA Personal Digital Assistant

URL Uniform Resource Locator

SD Secure Digital

Trang 13

mặt của thị trường thiết bị di động.

Với vị trí hệ điều hành lớn nhất thé giới thời điểm hiện tại cũng như giá thành

của những chiếc điện thoại thông minh Android ở mức trung bình thì ứng dụng chạy

trên hệ điều hành này đang được sử dụng rất phô biến trong cộng đồng Tuy nhiên,tốc độ phát triển quá nhanh của Android lại nảy sinh những khoảng trống hay lỗ hồng,đặc biệt là vấn đề về việc bảo mật và đảm bảo thông tin người dùng ứng dụng trên

điện thoại.

Trên một điện thoại Android hiện tại có thé thực hiện day đủ các chức năngcủa một máy tính thông thường thông qua các ứng dụng và những chức năng dự kiến

đang ngày một mở rộng hơn Người dùng lưu trên đó các thông tin cá nhân, tài khoản

ngân hàng, tài khoản truy cập các trang mạng Và một điều tất yếu, ứng dụng điệnthoại trở thành mục tiêu tấn công của vi rút, mã độc, mà tin tặc hay những thànhphần xấu dùng dé đánh cắp hay phá hoại thông tin người dùng

Trong đề tài này, nhóm tác giả trình bày một giải pháp sử dụng bộ công cụXposed và Frida để phân tích, khai thác và giám sát quá trình hoạt động của ứngdụng, nhằm mục đính hiéu rõ cơ chế hoạt động, ngăn chặn các tác nhân xấu bên ngoài

cũng như xây dựng môi trường sử dụng điện thoại an toàn cho mọi người.

Sau quá trình nghiên cứu, nhóm đưa ra quyết định rằng đầu tiên sẽ xây dựngmột ứng dụng Android có chứa san những chức năng cần thiết dé phục vụ cho quátrình thử nghiệm sau này Sau đó, nhóm tác giả sử dụng thiết bị giả lập và cả thiết bị

Trang 14

that dé kiểm tra tính khả dụng của ứng dụng được viết Bước tiếp theo, nhóm sử dụngcông cụ Xposed làm căn bản dé giúp xây dựng như một ứng dụng có thê cài đặt trực

tiếp trên điện thoại đề điều tra và cảnh báo người dùng về nguy cơ xấu có thê xảy ra

Song song với đó, công cụ Firda được sử dụng một phần hữu ích hỗ trợ lập trình viênhay các nhà phát triển ứng dung có thé nghiên cứu và trích xuất những thông tin cần

thiệt băng việc can thiệp vào dữ liệu mã nguôn của ứng dụng.

Hiện tại, trong khuôn khổ khóa luận tốt nghiệp của nhóm thì giải pháp nàyđang ở một bước triển khai nhất định, hoàn toàn có thể hoàn thiện và mở rộng hơnnữa dé có được một giải pháp tổng thé toàn diện hơn Đây có thé là một bước đệm

quan trọng cho nhóm có thê cải tiến và đưa ra sản phẩm an toàn thông tin trong tương

lai có giá trị thiết thực trong cộng đồng

Trang 15

Chương 1 TONG QUAN VE ĐÈ TÀI

Android @8 iOS Others

Hình 1.1 So đồ dự báo thị phan giữa các hệ điều hành di động toàn thế giới

Trong thế giới phát triển ngày nay, thiết bi đi động ngày càng được ưa chuộng

và trở nên thông dụng Theo dữ liệu từ trang web International Data Corporation

(IDC), số lượng thiết bị di động được bán ra thị trường đạt gần 346 triệu thiết bị mỗi

quý [1] Trong đó, số lượng thiết bị chạy trên nên tảng hệ điều hành Android chiếm

hơn 85% trên tổng thị phần các hệ điều hành đang được sử dụng và thị phần này được

dự đoán vẫn tiếp tục tăng trong những năm tiếp đó

Độ phô biến trên vô tình biến hệ điều hành Android trở thành nguồn tài nguyênmau mỡ đề những kẻ xâm nhập tập trung khai thác lỗ hồng bảo mật nguy hiểm và có

thé gây ra những hệ qua vô cùng nặng nề cả về vật chất và con người Việc cải tiễn

và sửa lỗi cũng là một vấn đề khó khăn đối với Android bởi vì đây là một hệ điều

hành mở, chỉ có thé xây dựng và liên tục cải tiến một bộ công cụ đủ mạnh mới có thểnhanh chóng tim ra và khắc phục những 16 hồng hiện có và có thé có trong tương lai

Vi vậy, chủ động giám sát ứng dụng va kip thời ngăn chặn hành vi gây ro ri dữ liệu

Trang 16

giúp cho các nhà phân tích chủ động hơn trong việc bảo vệ thiết bị Android trước

những nguy cơ tiêm ân đên từ các loại mã độc và các cuộc tân công.

Nhằm kiểm soát mối đe doa đến từ việc khai thác tài nguyên trên hệ điều hànhAndroid, nhiều phương pháp phân tích đã được đề xuất và áp dụng Kỹ thuật phân

tích tĩnh và phân tích động thường được dùng trong quá trình phân tích ứng dụng trên

hệ điều hành Android Tuy nhiên, kế cả những ứng dụng an toàn cũng ứng dụng độchại hầu như đều sử dụng nhiều kỹ thuật bảo vệ nhằm tránh cho ứng dụng của họ bị

phân tích hoặc dịch ngược.

Đối với việc phân tích tĩnh, kỹ thuật làm rối mã (obfuscation) là một tháchthức lớn cho các nhà phân tích cũng như việc source-code của ứng dụng hầu nhưkhông phải là luôn sẵn có Bên cạnh đó, kỹ thuật phân tích tĩnh chỉ có thê kiểm trahành vi của ứng dụng ở mức API mà không thể phát hiện các hành vi tại thời gianthực, ví dụ địa chỉ URL khi kết nối mạng hay số điện thoại người nhận trong hành vigửi SMS Đối với kỹ thuật phân tích động, chong phân tích trong môi trường ảo hóa

(Anti — VM) cũng là một thách thức lớn trong việc phân tích hành vi các ứng dụng hiện nay đê có thê phân tích ứng dụng trên các công cụ ảo hóa.

Vi những khó khăn nêu trên, dé dé dàng hơn trong việc phân tích mã độc trênAndroid, kỹ thuật “hooking” được sử dụng dé giám sát và phân tích hành vi ứng dụngtrên Android.

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

Hệ thống giám sát và phát hiện xâm nhập không còn xa lạ trong cộng đồng bảo

mật và an toàn thông tin hiện tại và được triển khai trên nhiều nền tảng khác nhau.Riêng ở mảng thiết bị đi động nói chung cũng như nền tảng Android nói riêng, mặc

dù chiếm một thị phần vô cùng to lớn, song một hệ thống giám sát hành vi ứng dụng

hoàn chỉnh dành riêng cho nhóm thiết bị này vẫn chưa được chú trọng và phát triển.

Trong đề tài nghiên cứu này, kết hợp kỹ thuật “hooking” nhằm xây dựng hai hệ

thống giám sát hành vi ứng dụng trên nền tảng Android đáp ứng được nhu cầu giám

Trang 17

sát hệ thống của các nhà phân tích cũng như người dùng cuối Đề tài được thực hiện

với các mục tiêu như sau:

e Ứng dụng hỗ trợ giám sát hành vi ứng dụng chạy trên hệ điều hành Android

tại thời gian thực Ứng dụng kịp thời phát hiện ra các truy cập dữ liệu bất hợppháp hoặc các hành vi kết nối hoặc gửi tin, gây rò rỉ dữ liệu cá nhân ra bên

ngoài và hiện cảnh báo.

e Ung dụng thực hiện giám sát một số APIs thông dụng và đặc trưng như: kết

noi URL, gửi SMS, truy cập clipboard, khởi động một activity

e Xây dựng ứng dụng phù hợp hỗ trợ pentester trong quá trình kiểm tra xâm

nhập các đối tượng cần kiểm thử.

e Xây dựng ứng dụng phù hợp với người dùng cuối, cho phép người dùng tương

tác với ứng dụng mục tiêu tại thời gian thực, từ đó đưa ra các phản ứng thích

hợp ứng với các hành vi nguy hiểm nêu trên (Allow / Block / Warning) Đồngthời ứng dụng cung cấp giao diện hiền thị logs ghi lại các hành vi đã diễn ra

trên ứng dụng mục tiêu.

1.3 Phạm vi nghiên cứu

° Ứng dụng được phát triển hỗ trợ giám sát hành vi và ngăn chặn trên hệ điều

hành Android Red Velvet SDK 30.

e Ứng dụng triển khai được trong môi trường kiểm thử và trong môi trường

dành cho người dùng cuôi.

1.4 Đối tượng nghiên cứu

Đối tượng nghiên cứu của đề tài tập trung vào hook một số APIs đặc trưng của

hệ thống Android cũng như phát triển hệ thống giám sát hành vi ứng dụng dựa trênhai công cụ hooking là Frida và Xposed Framework.

Trang 18

Chương2 CƠ SỞ LÝ THUYET

2.1 Tổng quan về hệ điều hành Android

2.1.1 Thiết bị di động

"Thiết bị di động" là thuật ngữ chung cho bat kỳ máy tính bảng cầm tay hoặcđiện thoại thông minh nào Thuật ngữ này có thé hoán đổi cho nhau với "thiết bị camtay" và "máy tính cầm tay" Máy tính bảng, máy đọc sách điện tử, điện thoại thôngminh, thiết bị kỹ thuật số hỗ trợ cá nhân, máy nghe nhạc di động có khả năng thôngminh và nhiều thiết bị tiêu dig khác có sử dụng hệ điều hành là tat cả các thiết bị di

động.

Các nền tảng công nghệ ngày càng thu hẹp kích thước, mở rộng phạm vi hoạt

động và cách mạng hóa cách người dân và doanh nghiệp tiếp cận thông tin Điệnthoại thông minh / PDA / Thiết bị cầm tay là lựa chọn đủ sức mạnh dé có thé chạynhiều ứng dụng một cách một năng suất Những ứng dụng điện thoại di động có thểcho phép một cá nhân hoặc một tập thê kinh doanh đề có được quyền truy cập vàothông tin quan trọng trên đường đi mà việc này đến nay vẫn bị khóa bên trong mạngcông ty hoặc máy tính dé bàn cá nhân

Thực tế theo sự phát triển không ngừng nghỉ của công nghệ, chiếc điện thoại

di động thông minh hay máy tính bảng đã dần thay thế cho thói quen làm việc trên máy tính với mạng internet dé tìm kiếm thông tin về dịch vụ, sản phẩm Bây giờ,

người mua có thé không ngồi trước màn hình máy tinh dé tìm kiếm sản phẩm hay

dịch vụ ma đã chuyền sang các thiết bị di động lướt web đơn giản hơn rat nhiều

2.1.2 Khái niệm hệ điều hành Android

Android là một hệ điều hành có dạng mã nguồn mở, nó hoạt động dựa trên nềntảng Linux và được thiết kế dành riêng cho những thiết bị đi động có màn hình cảmứng như điện thoại thông minh hoặc máy tính bảng Thiết kế của nó cho phép ngườidùng điều khién các thiết bị một cách trực quan bang chuyên động ngón tay thực hiệncác chuyền động thông thường, ví dụ như ấn, vuốt và chạm

Trang 19

Đây là một trong những hệ điều hành mã nguồn mở cùng với việc được Googlecung cấp mã nguồn dựa trên giấy phép ít bị ràng buộc có tên Apache đã mang lạinhiều tiện ích cho các nhà mạng, nhà phát triển thiết bị và các lập trình viên có théphân phối và điều chỉnh hệ điều hành Android một cách dễ dàng, tự do Đây chính làmột trong những yếu tố đã giúp cho Android trở thành nền tảng xây dựng điện thoạithông minh phát triển nhất trên thế giới.

Đối với những nhà phát triển thiết bị họ rất ưa chuộng, ưu tiên lựa chọn hệđiều hành Android bởi chúng đã quá thân thiện với người dùng, khả năng vận hành

tốt, tinh chỉnh đơn giản, giảm thiểu được tôi da chi phí cho nhà sản xuất và cả người

tiêu dùng.

2.1.3 Lịch sử phát triển của Android

Hệ điều hành Android được lấy tên từ Android, Inc — công ty khai sinh ra nó.Trong những thời gian đầu, hệ điều hành Android được phát triển bởi Tổng công tyAndroid trụ sở tại thung lũng Silicon, dưới sự hỗ trợ tài chính từ Google Bén ngườisáng lập và cũng là những thành viên chủ cốt, hoạt động tích cực nhất là Rich Miner,

Nick Sears, Chris White va Andy Rubin Sau nay, nó được mua lại và chính thức

thuộc quyền sở hữu của Google từ năm 2005

Nhưng phải đến năm 2007, Android mới được ra mắt Công ty bắt đầu kếhoạch cạnh tranh với Apple và các nền tảng di động khác Google đã tận dụng vai tròthành viên của một Liên minh Thiết bị cam tay Mở (Open Handset Alliance), vốn di

có sự góp mặt của nhiều nhà sản xuất điện thoại như HTC, Motorola, nhà sản xuất

chip như Qualcomm va Texas Instruments, cũng như nhà mạng lớn như T-Mobile.

Chiếc điện thoại đầu tiên chạy bằng hệ điều hành Android là T-Mobile G1, có tên

khác là HTC Dream, được mở bán vao tháng 10 năm 2008.

Trải qua thời gian, Android đã trải qua nhiều lần cập nhật dé dan dan cải tiến

hệ điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hànhtrước Mỗi bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái, theo tên của

một món ăn tráng miệng, ví dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ có

Trang 20

kem) hay phiên bản tiếp nối 1.6 Donut (bánh vòng) Phiên bản mới nhất hiện nay là

Android 11 hoặc Android R, ra mắt vào tháng 9 năm 2020

Tên gọi Phiên bản API Ngày ra mắt

- Không tên - 1.0 1 September 23, 2008

- Không tên - 1.1 2 February 9, 2009

Cupcake 1.5 3 April 27, 2009 Donut 1.6 4 September 15, 2009 Eclair 2.0-2.1 5-7 October 26, 2009

Froyo 2.2 - 2.2.3 8 May 20, 2010

Gingerbread 2.3 - 2.3.7 9-10 December 6, 2010 Honeycomb 3.0 - 3.2.6 11-13 February 22, 2011

Ice Cream Sandwich 4.0 - 4.0.4 14-15 October 18, 2011

Jelly Bean 4.1-4.3.1 16 - 18 July 9, 2012

KitKat 44-444 19 - 20 October 31, 2013

Lollipop 5.0 - 5.1.1 21-22 November 12, 2014 Marshmallow 6.0 - 6.0.1 23 October 5, 2015

Nougat 7.0 24 August 22, 2016 Nougat 7.1.0 - 7.1.2 25 October 4, 2016 Oreo 8.0 26 August 21, 2017 Oreo 8.1 27 December 5, 2017 Pie 9.0 28 August 6, 2018 Android 10 10.0 29 September 3, 2019

Bang 2.1 Danh sách phiên ban Android đến thời điểm hiện taiAndroid là một sản phẩm của Google, nhờ có nhiều sự lựa chọn về giá thành

và đa dạng về mặt sản phẩm đã giúp cho Android trở thành nền tảng điện thoại thôngminh phô biến nhất thế giới Chi tính tới quý 3 năm 2012, hệ điều hành Android đãchiếm hơn 75% thị phần điện thoại thông minh trên toàn thế giới Với hơn 500 triệuthiết bị được kích hoạt, 1,3 triệu lượt kích hoạt mỗi ngày Trên dưới 700.000 ứng

Trang 21

dụng trên hệ điều hành Android là lượt tải ứng dụng từ cửa hàng chính trên Android

— Google Play đạt ước tính khoảng 25 tỷ lượt.

Ngày nay, thị trường smartphone gần như chỉ là dành cho hai hệ điều hành lớn

là iOS của Apple và Android của Google Theo số liệu của công ty thống kê webStatCounter, từ tháng 6/2020 đến tháng 6/2021, Android chiếm 72,83% thị phần hệ

điều hành di động, iOS chiếm 26,35%, và các hệ điều hành khác chỉ chiếm dưới 1%thị phần

Hình 2.1 Thị phan thương mại hệ điều hành di động theo StatCounter (07/2021)

2.1.4 Những đặc điểm của Android

e UI— Giao diện người dùng: Màn hình Android OS cơ bản cung cấp một giao

diện người dùng đẹp và có tính thâm mỹ cao

e_ Connectivity - Hỗ trợ kết nối: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS,

Bluetooth, Wi-Fi, LTE, NFC và WiMAX.

Trang 22

e Lưu trữ: SQLite, một relational database gọn nhẹ, được sử dụng cho mục đích

lưu trữ dữ liệu

e Hỗ tro Media: H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC,

AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, va BMP.

e Thông báo: SMS va MMS.

e Trình duyệt Web: Dựa trên thiết bi WebKit mã nguồn mở, đi kèm với thiết bị

V8 JavaScript của Chrome hỗ trợ HTML5 va CSS3.

e Multi-touch: Android hỗ trợ cho multi-touch mà đã được tạo ban đầu có sẵn

cho các Handset như HTC Hero.

e Đanhiệm: Người dùng có thé nhảy từ một tác vụ tới tác vụ khác và nhiều ứng

dụng đa dạng có thê chạy đồng thời cùng một lúc

e Widget tùy chỉnh: Widgets có thê thay đổi kích cỡ, vì thế người dùng có thé

mở rộng dé hiền thị nhiều nội dung hơn, hoặc thu nhỏ dé tiết kiệm không gian.

e Đa ngôn ngữ: Hỗ trợ text đơn hướng và song hướng.

e GCM: Google Cloud Messaging (GCM) là một dịch vụ cho phép lập trình viên

gửi thông điệp dữ liệu ngắn tới người dùng trên thiết bị Android, mà khôngcần một Sync Solution

e Wi-Fi Direct: Một công nghệ cho phép các ứng dụng dò tìm và ghép cặp một

cách trực tiếp, thông qua một kết nối peer-to-peer

e© Android Beam: Một công nghệ dựa trên NFC phô biến cho phép người dùng

chia sẻ tức thì, chỉ cần kích hoạt NEC của hai điện thoại với nhau

2.1.5 Kiến trúc hệ thống của hệ điều hành Android

Hệ điều hành android là tập hợp một nhóm những phần mềm khác nhau, đượcchia thành 5 phần riêng biệt (Linux Kernel, các thư viện Android, Android Runtime,

Application Framework và Applications) va 4 phân lớp chính như hình dưới đây:

10

Trang 23

Dưới cùng là lớp nhân Linux - lớp này cung cấp 1 cấp độ trừu tượng giữa phầncứng của thiết bị và các thành trình điều khiến phần cứng thiết yếu như máy ảnh, bànphim, màn hình hiền thị Đồng thời, hạt nhân (kernel) còn xử lý tất cả các thứ mà

Linux có thé làm tốt như mạng kết nối và 1 chuỗi các trình điều khiển thiết bị, giúpcho giao tiếp với các thiết bị ngoại vi dé dang hơn

2.1.5.2 Cac thư viện Android

Ở trên lớp nhân Linux là tập các thư viện bao gồm WebKit - trình duyệt Web

mã nguôn mở, bộ thư viện nôi tiêng libc, cơ sở dữ liệu SQLite - hữu dung cho việc

11

Trang 24

lưu trữ và chia sẻ dữ liệu ứng dụng, các thư viện chơi và ghi âm audio, video, hay các

thư viện SSL chịu trách nhiệm bảo mật Internet

Một số các thư viện chính dựa trên Java phục vụ cho việc phát triển Android bao

android.database: Được sử dụng để truy cập dir liệu của content provider và

cơ sở dữ liệu SQLite.

android.opengl: Giao diện các phuơng thức Java để sử dụng OpenGL ES.

android.os: Cung cấp các ứng dụng với quyền truy cập vào các dịch vụ của

hệ điều hành bao gồm thông điệp, các dịch vụ hệ thống và các giao tiếp nội tại

android.text: Được sử dụng dé hiển thị và điều chỉnh chữ trên màn hình thiết

bị.

android.view: Các thành phần cơ bản trong việc xây dựng giao diện người

dùng của ứng dụng.

android.widget: Tập các thành phan giao diện người dùng đã được xây dựng

sẵn như các nút, các nhãn (label), list view,

android.webkit: Tập các lớp cho phép xây dựng khả năng duyệt web.

2.1.5.3 Android Runtime

Day là phần thứ 3 của kiến trúc và nằm ở lớp thứ 2 từ dưới lên Phan này cung cấp một bộ phận quan trọng là Dalvik Virtual Machine - là 1 loại Java Virtual Machine được thiết kế đặc biệt đề tối ưu cho Android.

Dalvik VM sử dụng các đặc trưng của nhân Linux như quản lý bộ nhớ và đa

luồng, những thứ mà đã có sẵn trong Java Dalvik VM giúp mọi ứng dụng Android

12

Trang 25

chạy trong tiến trình riêng của nó, với các thé hiện (instance) riêng của Dalvik Virtual

+ Resource Manager: Cung cấp quyền truy cập vào các tài nguyên như các

chuỗi, màu sắc, các layout giao diện người dùng

+ Notifications Manager: Cho phép các ứng dụng hiển thị cảnh báo và các

thông báo cho người dùng.

+ View System: Tập các thành phan giao diện (view) được sử dung dé tạo giao

Trang 26

2.1.6 Những thành phan quan trọng của ứng dụng Android

2.1.6.1 Activity

Activity [2] là một thành phần của ứng dụng Android Android Activity là nơi

để ứng dụng tương tác trực tiếp với người dùng thông qua giao diện Một ứng dụng

có thé sẽ có nhiều màn hình và mỗi màn hình có thé là một Activity (nếu không sử

Service là một trong 4 thành phần của ứng dụng Android, có thê thực hiện các

tác vụ cần nhiều thời gian và không hè có giao diện người dùng (UI) Từ Activity cóthé khởi chạy một Service trong Android và sau đó thé tat ứng dụng dé chuyền sangứng dụng khác mà Service vẫn tiếp tục công việc mà không bi kill

14

Trang 27

Về bản chất thì Service vẫn chạy trên main thread của ứng dụng (mỗi ứng dụng

khi chạy, Android sẽ tạo một thread cho ứng dụng đó) Nó không tạo ra Thread riêng

độc lập với ứng dụng Nếu service bị treo, nó có thê khiến ứng dụng bị treo (lỗi ANR

— Application Not Responding) Dé khắc phục điều này thì tạo một Thread bên trongService là cần thiết

2.1.6.3 Content Provider

Content Provider là một thành phan giúp các một ứng dụng có thé đọc và ghi

dữ liệu từ một file hoặc từ SQLite của một ứng dụng khác trong cùng một hệ thống.

Bắt kỳ ứng dụng nào có quyền (permission) đều có thể truy xuất, chỉnh sửa dữ liệucủa một ứng dụng khác Chúng cho phép kiểm soát permission, cho phép ứng dụngkhác có quyền truy cập đến nguồn lưu trữ dữ liệu hay không, giúp cho việc chia sẻ

dữ liệu trở lên dé dàng Và tất nhiên, bat kỳ ứng dung nào có quyền (permissions)

phù hợp đều có thể thêm, xóa, cập nhật và truy xuất dữ liệu của một ứng dụng khácbao gồm dữ liệu trong một số cơ sở đữ liệu Android Native

Có 2 loại Content Provider:

« Native content provider: chúng cung cấp quyền truy cập vào cơ sở dữ liệu tích

hợp có sẵn, chăng hạn như Contacts, Media player, Message và các cơ sở dữ

liệu gốc khác Lập trình viên cần cấp các quyền cần thiết cho ứng dụng củamình trước khi sử dụng nhà cung cấp nội dung gốc

e Custom content providers: một dang cơ sở dữ liệu tự tạo bởi nhà phát triển để

phù hợp với các yêu cầu của ứng dụng

2.1.6.4 Broadcast Receiver

Broadcast Receiver là một thành phan của ứng dung giúp lang nghe các sự kiện

mà hệ thống phát ra thông qua Intent, hệ thống có thé truyền phát ngay cả khi app

không chạy Broadcast Receiver không có giao diện cụ thé nhưng nó có thé thực hiện

thông báo thông qua thanh Notification.

15

Trang 28

Có rất nhiều broadcast được phát ra từ hệ thống, ví dụ như một broadcast thông

báo rằng màn hình điện thoại đã tắt, hay điện thoại đang ở trạng thái “Battery Low”,

“Power Connected”, “Power Disconnected” hoặc một bức ảnh đã được chụp Cũng

có những broadcast được phát ra từ ứng dụng như sau khi download một tệp, ví dụ:

Sau khi hoàn thành download một tệp tin, ứng dụng A phát ra thông báo là dữ liệu đã

download xong, tệp đã sẵn sàng cho các ứng dụng khác có thé sử dụng

2.1.7 Trinh gia lập Android — Android Emulator

Emulator hay còn được gọi là “Trình giả lập” - là một chương trình phần mềmcho phép máy tính giả lập các tính năng của một phần mềm di động bằng cách cài đặt

các trình giả lập tương ứng.

Trình giả lập ra đời khi những nhà phát triển ứng dụng muốn kiểm tra phầnmềm trên một dòng máy khác nhưng lại không có nhu cầu sắm sửa quá nhiều thiết bịkhác nhau Sau này, việc giả lập còn giúp cho người dùng có thê trải nghiệm đượcnhiều phần mềm không tương thích với hệ điều hành đang dùng

Android Emulator giả lập tất cả các tính năng phần cứng và phần mềm của

một thiết bị di động điền hình, trừ việc khó không thể nhận hoặc gọi các cuộc điện

thoại thực và một số tính năng khác

Android Virtual Devices (AVD): Cho phép người dùng có thé tạo cau hình

thiết bị ảo, mô phỏng các đặc điểm của bộ giả lập Android Với mỗi cấu hình, hệ

thống xác định nên tảng, tùy chỉnh phần cứng hay giao diện sử dụng tương thích Mỗitùy chỉnh của AVD sẽ như một thiết bị độc lập với dir liệu lưu trữ của nó, thẻ nhớ

SD, v.v.

16

Trang 29

Android Emulator - Nexus_5X_API_26:5554

Hình 2.4 Máy ảo Android Emulator

2.2 Tổng quan về kỹ thuật hooking

2.2.1 Tông quan

Hooking được định nghĩa là một kỹ thuật can thiệp vào hành vi của hệ thống,

ứng dụng được chỉ định dé giám sat hoặc thay đổi việc thực thi của hệ thống, ứng

dụng đó [3] Cụ thé, bằng cách bắt các lời gọi ham (function call) hoặc lời gọi hệthống (system call), sau đó chèn các đoạn code viết sẵn vào phần code gốc với mục

đích dé thay đổi tham số truyền vào hoặc giá tri trả về của hàm đã hook để thực hiện

các thay đôi theo mong muốn cho sau nay Hooking cho phép việc thay đồi hành vi

của hàm được thực hiện một cách linh hoạt, lập trình viên có thé hook hàm trước khihàm được gọi, ngay tại thời thời điểm thực thi (runtime) hoặc cả sau khi hàm đã đượcgọi, tùy thuộc vào mục đích phân tích Nhờ vậy các nhà phân tích có nhiều sự lựa

17

Trang 30

chọn trong việc giám sát và phát hiện hành vi của mã độc mà không cần tốn nhiều

thời gian cho việc gỡ rối mã hay dựng môi trường pentest tương thích

Original Flow After Hook

Hook _Funcifab)

Hinh 2.5 Luong thuc thi hooking [4]

Kỹ thuật hooking sử dung nhiều phương pháp khác nhau dé bắt va chỉnh sửahàm, đồng thời cung cấp đa dạng các công cụ có thé triển khai được trên nhiều hệđiều hành khác nhau, bao gồm: Windows, Linux, macOS, iOS, và Android Trongbài nghiên cứu này, nhóm sẽ tập trung vào nghiên cứu kỹ thuật hooking trên thiết bi

di động Android.

2.2.2 Phân loại công cụ hooking

Về cơ bản kỹ thuật hooking trên thiết bị Android có thể được chia thành hailoại chính sau [5]: Hooking dựa vào việc chỉnh các lời gọi hệ thống Android vàHooking dựa vào việc chỉnh sửa các APIs được dùng trong tiến trình ứng dụng Với

cách 1, tuy có thé chỉnh sửa các lời gọi hệ thống nhưng không thé thé thay đổi đối

với phan cau trúc của thiết bị, do đó hooking chỉ thực hiện được trên một vài thiết bị

nhất định, bao gồm: thiết bị thuộc Google Nexus và thiết bi ảo hóa Việc này tạo cơ

hội tốt cho các mã độc có chức năng chống phân tích trong môi trường máy ảo có thêphát triển Tuy nhiên, cách 2 cũng không phải là tối ưu nhất nếu như mã độc có sửdụng kỹ thuật đảm bảo tính toàn vẹn, khi đó mã độc có thể ngừng hoạt động nếu phát

hiện tôn tại chỉnh sửa đôi với ứng dụng.

18

Trang 31

Hiện nay, có nhiều công cụ hỗ trợ việc hooking trên thiết bị Android Với mỗicông cụ sẽ có nhiều cách triển khai và thực hiện hooking khác nhau Theo như bai

nghiên cứu “A Survey on Function and System Call Hooking Approaches” [6] thực

hiện boi Juan Lopez và cộng sự, nhăm tạo sự khách quan trong quá trình chọn lựa,các công cụ và kỹ thuật hooking có thể được đánh giá dựa trên các tiêu chí của hình

Hình 2.6 Phan loại công cu hooking dựa trên các đặc trưng

e Cách hooking (Subroutine Type): Hệ điều hành hoạt động, chia bộ nhớ

thành hai vùng riêng biệt: kernel-space và user-space, từ đó phát sinh hai loại

hooking, bao gồm: function hooking và system call hooking

o Function hooking: Hooking diễn ra tại user-space và không yêu cầu cấp

quyền admin hoặc quyên root của thiết bị

o System call hooking: Hooking diễn ra tại kernel-space, do đó đòi hòi truy

cập với phân quyền cao hơn so với function hooking

e_ Thời điểm thực thi (Hook Insertion): Hooking có thể diễn ra trước khi hàm

mục tiêu được thực thi, ngay thời điểm thực thi (runtime), hoặc sau khi đã thực

19

Trang 32

thi Dựa vào thời điểm thực thi hooking có thé chia các công cụ và kỹ thuật

hooking thành hai loại:

o_ Static hooking: dùng đề chỉ những công cụ mà quá trình hooking sẽ diễn

ra trước khi hàm mục tiêu được gọi Đối với các kỹ thuật hooking hoặccông cụ hooking có thực hiện sửa đổi mã thực thi nhị phan (binaryexcutable), thu muc hé điều hành hoặc môi trường runtime đều sẽ được

liệt kê vào loại static hooking.

o Dynamic hooking: Đây là kỹ thuật hooking mà mã thay đổi của chúng

được thực thi tại thời điểm hàm mục tiêu thực thi (runtime), quá trìnhnày diễn ra tại bộ nhớ Dynamic hooking không yêu cầu phải chỉnh sửa

hệ điều hành và quyền truy cập cao

e Xw lý dữ liệu (Instrumention Type): Phân loại quá trình hooking dựa trên

cách xử lý phần dữ liệu khi chương trình bắt được hàm mục tiêu

o Passive: Khi người dùng bắt hàm mục tiêu và lay được các phan thông

tin cơ bản, ví dụ như số lần tiến trình được gol, đối số hay giá trị trả vềcủa hàm mà không làm thay đổi nội dung của hàm gốc thì đó là phươngthức hooking loại Passive Các giá tri bắt được sau đó có thé được định

dạng và lưu vào các tệp tin để sử dụng

o Active: Bao gồm các kỹ thuật hooking có thay đổi đối số truyền vào hoặc

giá trị trả về của hàm mục tiêu Đặc biệt, các công cụ này còn cho phéphành động chặn việc gọi hàm mục tiêu hoặc thay đổi hành vi của ham

mục tiêu bằng cách chỉ định gọi một hàm thay thế Một công cụ hooking

có thé sử dụng ca Passive va Active trong quá trình hooking

e Vị trí thực thi (Hooking Location): Kết qua trả về cho quá trình hooking có

thé được thé hiện trên chính thiết bị mục tiêu hoặc cần gửi đến một thiết biserver nằm bên ngoài thiết bị mục tiêu, tùy thuộc vào cách vận hành từng công

cụ khác nhau.

o On-device (local): Da số các công cụ hooking đều hoạt động ở chế độ

on-device Chế độ này cho phép hooking và thé hiện kết quả trên thiết

20

Trang 33

bị được cài đặt công cụ mà không yêu cầu thêm thiết bị bên ngoài để

giám sát.

o Off-device (remote): Ngược lại, off-device yêu cầu nhiều hơn một thiết

bị để có thể thực hiện việc hooking Frida hoạt động theo mô hìnhclient-server là ví dụ tiêu biểu cho loại hooking này

e Chinh sửa hệ điều hành (OS Modification): Công cụ hook lời gọi hệ thống

sẽ yêu cầu root thiết bị; ngược lại, hook lời gọi hàm sẽ không yêu cầu

e Mã nguồn (Source-code): Bao gồm: Open-Source và Closed-Source

e_ Chỉ phí (Pricing Model): Bao gồm 2 loại: miễn phí và có tính phí

2.2.3 Công cụ hooking được nghiên cứu trong đề tài

Trong bài nghiên cứu này, nhóm sẽ nghiên cứu tập trung khai thác các tính

năng của hai công cụ đang được sử dụng rộng rãi trên thiết bị Android, đó là Frida vàXposed Framework Cả hai công cụ đều đại diện cho kỹ thuật function call hooking

Tuy nhiên, trong khi Frida hooking động (Dynamic function call hooking) thi Xposed

Framework là công cụ sử dụng kỹ thuật hooking tinh (Static function call hooking).

Dưới đây là bang so sánh [7] tong quan dựa trên các tinh năng đã được dé cập ở mục

trên giữa Frida và Xposed Framework.

Frida Xposed Framework

Trang 35

2.3 Tong quan về công cu hooking

2.3.1 Frida

2.3.1.1 Tổng quan

Frida là một framework hỗ trợ chèn các đoạn mã vào một ứng dụng được cài

đặt và chạy trên thiết bị mục tiêu, giúp nhà phân tích có thể nắm được các luồng hoạt

động của ứng dụng, từ đó việc đưa ra các đánh giá, kiểm tra và thực hiện kiểm thử

(pentest) các ứng dụng Android trở nên dễ dàng hơn Frida là công cụ hooking hỗ trợ

cực mạnh cho quá trình phân tích động ứng dụng.

Cách cài đặt: Frida chia thành 2 phần client và server:

« Frida-client: cài ở máy tính của mình, giúp lập trình viên dé dàng điều khiển

Trang 36

Các bước chính thực hiện phân tích động sử dụng Frida:

« _ Thiết lập môi trường: cài đặt gói thư viện và phần mềm cần thiết cho quá trình

cho việc sử dụng Firda như môi trường Python, gói Android SDK,

« Thiết lập và chạy Frida server trên các thiết bị Android cần kiểm tra

e Thực hiện viết mã script chứa ham Java can được chèn vào trong ma nguồn

của ứng dụng khi được chạy.

¢ Str dụng đoạn mã vừa viết dé thực thi trên máy tính và xử lý phân tích kết qua

nhận được.

2.3.1.2 Những công cụ được hỗ trợ trong Frida

e frida-ps: Đây là một công cụ hỗ trợ dòng lệnh được dùng dé liệt kê các

chương trình đang chạy trong hệ thống và rất hữu ích khi được dùng dé tươngtác với các hệ thống từ xa Có thé sử dụng công cu frida-ls-devices để kiệt kê

các thiết bị liên quan cùng với ID của thiết bị, rất có ích trong khi tương tác

với nhiều thiết bị

e frida-trace: Công cụ theo dõi một cách linh động các lời gọi hàm.

$ frida-trace decorate -1 “recv*" -i “send*" Safari

$ frida-trace \

-U \

-f com.toyopagroup.picaboo \ -I “libcommonCrypto*"

Hình 2.8 Vi du các câu lệnh thuộc công cu frida-trace

24

Trang 37

e frida-discover: Đây là một công cụ rất hữu ích cho việc khám phá các internal

function (hàm nội bộ) của một chương trình, sau đó có thể được theo dõi băng

công cụ frida-trace.

e_ frida-kill: Day là công cụ dùng dé kết thúc những chương trình đang hoạt

động Lập trình viên có thể sử dụng công cụ frida-ps để liệt kê các chươngtrình hiện đang hoạt động và kiểm tra xem các chương trình đã kết thúc hay

chưa sau khi sử dụng frida-kill.

2.3.2 Xposed Framework

2.3.2.1 Tong quan

Nhu cầu giám sát hành vi của ứng dụng không còn là nhu cau riêng của các

nhà phân tích mã độc trong môi trường kiểm thử mà còn là nhu cầu chung của hầuhết người dùng Android trong giai đoạn hiện tại Xposed Framework là công cụhooking, cho phép giám sát hành vi ứng dụng ở cấp độ hệ thống, kịp thời ngăn chặnhành vi nguy hiểm trên thời gian thực đồng thời hỗ trợ giao diện để người dùng cóthé tương tác trực tiếp với modules

Xposed Framework là một công cụ mã nguồn mở, được phát triển bởi lập trìnhviên @rovo89 và công bồ lần đầu tiên trên diễn đàn XDA vào ngày 31/03/2012, hỗtrợ cho hệ điều hành Android có phiên bản từ 4.0 trở lên Xposed modules là các ứngdụng được lập trình viên phát triển dựa trên Xposed Framework API, cho phép ngườidùng thay đổi hành vi của hệ thống, ứng dụng, tùy chỉnh ROM và hệ điều hành (giao

diện, thao tác, chức năng) mà không cần chỉnh sửa code trực tiếp trên tệp APK của

bên thứ 3 hoặc flash các tập tin từ bên ngoài.

Xposed Framework hỗ trợ nhiều tiện ích cho cả lập trình viên khi phát triểnmodule cũng như cho người dùng trong quá trình sử dụng chúng Về phía lập trìnhviên, modules hoạt động như một ứng dụng thông thường trong hệ thống, dễ dàng

tương thích với nhiều phiên bản Android và ROM mà không cần phải thay đổi nộidung code Về phía người dùng, Xposed Framework không giới hạn số lượngmodules được kích hoạt cùng lúc, là một điểm mạnh tạo nên sự đa dạng và linh hoạt

25

Trang 38

trong quá trình chọn lựa cũng như sử dụng Bên cạnh đó, vì quá trình hooking của

Framework này không làm thay đổi cấu trúc của hệ điều hành, người dùng chỉ cần

hủy kích hoạt module và reboot lại hệ thống nếu muốn hoàn tác và trả hệ thống về lại

ban đâu.

Về phần cài đặt, Xposed Framework yêu cầu quyền thực thi ở mức quản trị

viên trên thiết bị để cho phép framework thực hiện các sửa đôi hàm ở cấp độ hệ thống,

do đó công cụ nay đòi hỏi phải được cai đặt trên thiết bị có quyền root đề thực hiện

được hành động trên Đề cài đặt Xposed Framework, thiết bị Android cần được root

trước đó.

2.3.2.2 Các phiên bản của Xposed Framework

Xposed Framework gốc do @rovo89 phát triển hỗ trợ một số phiên bảnAndroid nhất định và hiện tại đã không còn tiếp tục phát triển Tuy nhiên, nhiều nhàphát triển thêm các công cụ tương tự dựa trên API của Xposed Framework gốc, có

thé hoạt động tương thích với một vài phiên ban Android cũ cũng như các phiên bản

Android mới hiện nay Bảng bên dưới là danh sách các phiên bản Android tương

thích với các phiên bản Xposed được phát triển và sử dụng hiện nay [8]

Phiên bản Xposed Phiên bản Android

Xposed Framework e Android KitKat (4.4 — 4.4.4) [sdk19/20]

(Dalvik) e Android JellyBean (4.1 — 4.3) [sdk16/17/18]

e Android Ice Cream Sandwich (4) [sdk14/15]

26

Trang 39

Back-ported Xposed e Android Gingerbread (2.3) [sdk9/10]

Bảng 2.3 Phiên bản Xposed Framework và phiên bản Android tương thích

Back-ported: Xposed Framework không hỗ trợ từ Android 1.0 đến Android

3.2.6 (Honeycomb), ngoại trừ phiên ban Android 2.3 — 2.3.7 (Gingerbread)

Back-ported Xposed được @liudongmiao phát triển dựa trên framework sốc, hoạt động

tách biệt so với dự án Xposed Framework của @rovo89, hỗ trợ cài đặt Xposed trên

thiết bị Android Gingerbread

Xposed Framework: Đây là dự án của tác giả @rovo89, hỗ trợ cài đặt trên

các thiết bị từ Android 4.0 đến Android 8 đã được root Bân đầu, người dùng đượccung cấp tệp XposedInstaller.apk tại website https://repo.xposed.info/ [9] lên

Android từ 4.0 đến 4.4.4 Ké từ Android 5.0 đến 8.1, thông tin về Xposed Frameworkđược cập tại XDA Forum [10] Đề sử dụng Xposed Framework cho thiết bị Android

từ sau 5.0 trở lên, cần cài đặt hai thành phần sau:

e Xposed Framework (xposed*.zip): cung cấp môi trường dé các modules

hook hoạt động cũng như cung cấp thư viện hỗ trợ viết các module Version

90 (v90) là phiên bản mới nhất hiện tại

e Xposed Management (XposedInstaller *.apk): Hỗ trợ import các module

vào môi trường Xposed Cần tải file xposed*.zip tương ứng với từng phiên

bản và kiến trúc hệ thống Android dé Xposed có thé hoạt động

27

Trang 40

Đề cài đặt Xposed, người dùng cần thực hiện lần lượt các bước sau:

(1) Flash tệp XposedInstaller_*.apk vào thiết bị

(2) Reboot

(3) Cài đặt tệp XposedInstaller_*.apk vào thiết bị

(4) Chon Install trong giao diện quan lý

IẾt— Android 5.1 (Lollipop, API 22)

Q Unknown Generic Samsung

(AOSP-based ROM)

x86

Hình 2.9 Giao diện Xposed sau khi hoàn tất cài đặt

Bên cạnh đó, dé gỡ cài đặt hoàn toàn Xposed Framework khỏi thiết bi Android,

người dùng có thé flash tệp xposed-uninstaller*.zip được cung cấp tại diễn dan XDA

EdXposed: là phiên bản kế thừa của Xposed do @meoweat viết dựa trén nền

tảng Xposed Framework, cung cấp một ART hooking framework hoạt động dựa trêncác API của Xposed Framework hoạt động tương thích trên các thiết bị Android mới

hơn Cu thể, EdXposed hỗ trợ cho thiết bi Android từ API 8.0 đến API 11 Theo nhưtác giả, vì dùng cùng một API với Xposed Framework, do đó hầu hết modules từ

28

Ngày đăng: 02/10/2024, 05:12

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w