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

Khóa luận tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống kiểm thử bảo mật ứng dụng Android

54 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 đề Xây Dựng Hệ Thống Kiểm Thử Bảo Mật Ứng Dụng Android
Tác giả Hà Thị Thu Thủy
Người hướng dẫn TS. Nguyễn Tấn Cẩm
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 54
Dung lượng 53,21 MB

Nội dung

Công cụ được xây dựng trên nền tảng của Java và Python, tích hợp nhiều kỹthuật học máy đề phân tích các quyền của ứng dụng và tính toán mức độ rủi ro.. Phân Tích Quyền Permission Analysi

Trang 1

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KHOA HỌC VÀ KĨ THUẬT THÔNG TIN

HÀ THỊ THU THUỶ - 21522914

KHÓA LUẬN TÓT NGHIỆP

XÂY DUNG HE THONG KIEM THU

BAO MAT UNG DUNG ANDROID

Building an Android application security testing system

CU NHAN NGANH CONG NGHE THONG TIN

GIANG VIEN HUONG DAN

TS NGUYEN TAN CAM

TP HO CHÍ MINH, 2024

Trang 2

MỤC LỤC

09090 0900017 77 ốố 1 /.0);0\/00/98:ì0):014000017777 Ô 2 /.0\);:000/9079160177 3

DANH MUC TU VIET tà v00 4 TOM ,809-V00.4:(0.000/0 10757 ,H 5

CHƯƠNG 1 2c) ) 6

1.1 €)900)201062)509.10007172777 6

1.2 MOT SO CÔNG TRÌNH NGHIÊN CỨU TƯƠNG TU uu seesssssseseseeseseeseseeceaeeeseeesseseeseseeaeaeecseeeeaeeecaseeeaeeees 6

1.2.1 Phân Tích Quyén (Permission Analysis): "Android Permissions Demystified" [2J 6

1.2.2 — Phân Tích Tinh (Static ANAl]ysis) iccecccccscssccssssssessessessesscsssssssscsscsscseseecsessecseseesesesseseenseseeaeees 7 1.23 — Hoc May Trong Bao Mật Di Động: "Drebin: Effective and Explainable Detection of Android

Malware in Your 0 g6s 00p ố.ố 9

1.3 MỤC TIÊU, DOI TƯỢNG, PHAM VI NGHIÊN CUU cccccscesscesscesecescesscessecseesseessceseesseessseseesatesseesseeatenace 9

1.3.1 Muc tiéu ctid G6 tdi cesceeccccsccssessseessesesssssecssesssesssesssesssecssesssesssesssesssesssesssssssessesssetssesssesssecssecsseesss 9 1.3.2 Đối Tượng Nghiên Ce cecsecssecsssssseessesssssssesssesssesssesssesssesssesssecssecssssssessussssssssssesssesssesssecssesssess 10

1.3.3 Pham Vi NQhién Cutu 0000080808 ốốốố.ốe 10

CHƯƠNG 2 se1oi04I:0/1707.7 7 Ả 11

2.1 HE DIEU HANH ANDROID (SE 911911E 11 11 11 1v th HH HH HH Tu TH TH TH TH TT ch 11

2.1.1 Kiến trúc của hệ điều hành Android [6] sssccssseesssessssessssessssessssesssscssssesssscsssessssesssscsssscssssessseee 11

2.2 50.10 13

2.2.1 Tép APK 10 gi? [7] gu 13

2.2.2 Tép APK được tạo ra như thE HO SH 11111111111111111111111111111111111111111111111111 14 14

2.3 KIÊM THU XÂM NHẬP ANDROID - SG + 11191 111 1111 11T TH TT TT TT TH TT HT HH 15

2.3.1 Kiểm thử xâm nhập là gì là gi? sesssesssesssesssesssesssesssesssessssssssssssssesssscssecssecssesssesssesssssssesssssssseses 15 2.3.2 Các giai đoạn kiểm thử xâm ANP cesscessessseesssessecssesssscsssssesssssssesssesssesssesssessuessscssssssssessseseseses 17 2.3.3 Các phương pháp kiểm thử xâm AnGpccsssccsssecsssscsssssssssssssssssssssssesssicssssessssesisssssessssesssseesssesses 18

24 GIGI THIỆU SƠ LƯỢC CÁC CÔNG NGHỆ SỬ DỰNG TRONG UNG DỤNG - «7s c+c+csesesrerersre 21

2.4.1 g2 n8 21

2.4.2 [21/02/50 22

“n2 23

Trang 3

2.4.4 0/0/0050 A 2/0086 hố ốố 23

2.4.5 Hoc may (Machine Learning) n8 ốốốốốốốỐỒn 24

CHƯƠNG 3 PHAN TICH U'NG DUNG .c.ccscssssssssessecssssesescscsscscscscscssesesescesesescscsesscacscsuenesesesseasars 29

3.1 R29) 6/9000 7 29

3.1.1 Yêu cầu đặt ra Ăc HH 29

3.2 v0 e 30

3.3 \ (W6: 00ìi9 90 ÔỎẢ 30

3.4 QUA TRINH CHAY 4907.090.001 35

3.5 XÂY DỰNG THEM TINH NĂNG SG c1 0121182118111 119111 11 11 1 11H nh HH HH ng rẻ 36

3.5.1 Kết nối với máy điện thoại Android và lấy file.seessesssesssesssesssesssesssesssesssesssesssessscssssssecssseseseses 36 3.5.2 Kiểm tra những file đã lấy được từ máy AndrOidsscsssesssesssesssssssesssesssesssessscssssssscsssssessseseseeeses 39 CHƯƠNG 4 CHẠY THỰC NGHIỆM VÀ DANH GIÁ 55c 2+2 S2 E‡SEsEsESEesEsEsrsersrsesrsre 40

4.1 CHẠY THUC NGHIỆM G0 2 2615625101313 695 9586 HH HH HT TH TH TH 40 4.2 THONG KE MOT SO KET QUẢ - 2c c2 3622311283958 1 31118831 119 1 311111 18 111 11 H1 H1 ng ng gà cờ 43

443 DANH GIA NO 7/606 6n he 47

4.3.1 So sánh với nghiên cứu tiền nhiệm : ::©22+t92E++SEE2+ttEEESttSEEvetSEEkertrrrerrrrrsrea 47 4.3.2 Những hạn chế trong bài nghiên Cit Ny seesseccsesssesssesssessssessssssesssesssecssessscsssessscssssssessesssessses 47 Cee 6 T7? 5¬ `: S65 47 TÀI LIEU THAM KHẢO - ©- ©S* ES£S+‡E£ESEEEEEEEEESEESEEkEEkEEEESEEEESEEEESEEEEEEEEEEEEEErkrkee 49

Trang 4

LỜI CẢM ƠN

Trong suốt quá trình hoàn thành khóa luận này, em xin bày tỏ lòng biết ơn sâusắc đến thầy hướng dẫn, TS Nguyễn Tan Cầm, người đã tận tình chỉ dẫn và địnhhướng cho em từng bước đi trên con đường nghiên cứu Thầy không chỉ giúp em khaiphá kiến thức mới, ma còn luôn động viên, khích lệ em vượt qua những khó khăn vàmat phương hướng dé hoàn thành khóa luận đúng thời hạn

Em cũng xin gửi lời cảm ơn chân thành đến gia đình và bạn bè - những người

đã luôn kề bên, động viên và ủng hộ em cả về mặt tinh thần lẫn vật chất trong suốtthời gian qua Sự quan tâm và yêu thương của mọi người là nguồn động lực vô cùng

quý báu, giúp em vững bước trên con đường học tập và nghiên cứu.

Đồng thời, em xin trân trọng cảm ơn quý thầy cô tại trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM, đặc biệt là các thầy cô và cán bộ, nhân viên của Khoa

Khoa học và Kỹ thuật Thông tin, những người đã tạo điều kiện thuận lợi và hỗ trợ em

hết mình trong suốt quá trình thực hiện khóa luận này.

Cuối cùng, em xin chân thành cảm ơn những cá nhân và tập thể đã đóng góp ýkiến, chia sẻ tài liệu và cung cấp các công cu, dit liệu quý báu cho nghiên cứu nay.Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến nhóm phát triển RiskInDroid, nhờ cócông cụ hữu ích và mã nguồn được chia sẻ mà em đã có cơ hội nghiên cứu và áp dụng

trong khóa luận của mình.

Mặc dù đã nỗ lực tìm hiểu và nghiên cứu, nhưng do hạn chế về kiến thức vàkinh nghiệm, không thể tránh khỏi những thiếu sót trong khóa luận này Em rất mong

nhận được những góp ý quý báu từ quý Thầy Cô để em có thể hoàn thiện đề tài hơn

nữa.

Chân thành cảm ơn

Hà Thị Thu Thuỷ

Trang 5

DANH MỤC HINH VE

Hình 2-1 Các thành phần trong cấu trúc hệ điều hành Android theo dạng ngăn

00 .) 13

Hình 2-2 Bên trong 1 file APK sau khi được giải nén . e-.ee 14

Hình 2-3 Xây dung Android app (APK file) c-cceceeerirerirririeree 15

Hình 2-4 Mối liên qua giữa các khái niệm kể trên - cccccceccccsex 17

Hình 2-5 Các giai đoạn Pent t©Sf c .cerireiiiiiiriririiiiiiriiririeire 18

Hình 2-7 Ngôn ngữ Python ccseecrrirrrrirtrriirrtrirrtrirrrirrrriirrrrrrrirrrrrrerrrrree 22

Hình 2-8 ADB là công cụ kết nối giữa máy tính với thiết bị Android 23

Hình 2-9 Ngôn ngữ HTML - CSS - JaVaSCFiDI -ccecsriireriiiiiriiiirrree 24

Hình 2-10 Thư viện học máy Scikit-learn dành cho Python - 26

Hinh 2-11 Thuadt toan SVM 00777 27

Hình 3-1 Sơ đồ hoạt động tổng quan của hệ thống -. -cccccceeccccssx 29 Hình 3-2 Đối chiếu kết qua tính toán chỉ $6 rủi rO -ccccceeccccsex 35

Hình 3-3 Lệnh quét các packages cùng file apk tương ứng đã cài đặt trong máy

Hssenssserssiors-ỦPfTT THƯỂM, TIÀ /ấP, Z5ỐTT, c.eniieiniee 36

Hình 3-4 Tạo đường dẫn lưu file -ccccccccerreereerererreeeevrvvervvrerrersrrrrrre 36

Hình 3-5 Copy file vào thư mục đã tạo ở trên trong projeCf -« ««-¿ 37 Hình 3-6 Thư mục chứa các file vừa COPY ẨƯỢC cccceeskeeerieerirerirerriereee 37 Hình 3-7 Định nghĩa các route trong việc quét file máy ảo - 38

Hình 3-8 Danh sách các file apks trong máy ảo đang bật - 38

Hình 3-9 Code quay về homepage và mở thư mục chứa file apk 39

Hình 4-1 Giao diện chính của công CỤ cccccccreereekkrekrrerrirrrirrrrrrrrerrree 40

Hình 4-2Chạy kết quả có trong CSDL, -ccccc5ccccecccvetsrrvesrrrrtesrtrrerrrrrerree 41

Hình 4-3 Màn hình chờ để upload file cần kiểm tra -ccc css- 41 Hình 4-4 Kết quả kiểm thử trả về cho file apk vừa upload -. 42

Trang 6

DANH MỤC BANG

Bảng 2-1 Phân loại pen test theo phạm Vi tấn công -cc c-c-e- 19

Bang 2-2 Phân loại pen test theo mục tiÊu c +cxecerirtriireiriirerrree 20

Bảng 4-1 Tổng hợp permissions với những file apk có độ risk > 50 43

Bang 4-2 Top 10 not _required_but_used_permissions của những apks có risk >

1 43

Bang 4-3 Top 10 permissions ở những ứng dụng có risk < 20 44 Bảng 4-4 Top 10 not_required_but_used_permissions của những apks có risk <

Trang 7

DANH MỤC TU VIET TAT

STT Từ viết tắt Ý nghĩa

1 API Application Programming Interface

2 HAL Hardware Abstraction Layer

3 ART Android Runtime

4 APK Android Package Kit

5 IDE Integrated Development Environment

6 ADT Android Development Tools

12 ADB Android Debug Bridge

13 OOP Objet-Oriented Programming

Trang 8

TOM TAT KHÓA LUẬN

Android là hệ điều hành trên các thiết bi di động cảm ứng phô biến nhất trên thé

giới hiện nay Di động thông minh càng phát triển, tiệm cận gần hơn với máy tính cá

nhân, lưu trữ nhiều thông tin cá nhân quan trọng và nhạy cảm, giờ đây chính là vùng

đất màu mỡ cho các hackers chiếm quyền kiểm soát, làm rò rỉ thông tin

Khoá luận này có mục đích giới thiệu, đánh giá và xây dựng thêm cho một công

cụ kiểm thử đơn giản các file apk Công cụ này được xây dựng với mục đích giúpngười dùng có thé dé dàng so sánh mức độ rủi ro của một ứng dụng với những ứngdụng khác trong cùng cơ sở dữ liệu thông qua chỉ số Risk Công cụ này được xâydựng thành một website với phan front-end (giao diện người dùng) va back-end (máy

chủ và sơ sở dữ liệu).

Công cụ được xây dựng trên nền tảng của Java và Python, tích hợp nhiều kỹthuật học máy đề phân tích các quyền của ứng dụng và tính toán mức độ rủi ro

Khoá luận sẽ gồm 4 phần chính với nội dung như sau:

Chương 1: Tổng quan đề tài

Chương 2: Các cơ sở lý thuyết liên quan dé hiểu về khoá luận

Chương 3: Phân tích hệ thốngChương 4: Chạy thực nghiệm và đánh giá kết quả đạt dược

Trang 9

Chương 1 TONG QUAN DE TÀI

1.1 Giới thiệu đề tài

Android là tên gọi của hệ điều hành phổ biến nhất hiện nay trên các thiết bị diđộng, được phát triển trên nền tảng Linux

Thế giới hiện nay phát triển cực kì nhanh chóng, đặc biệt là trong những lĩnh

vực liên quan đến công nghệ Các thiết bị di động nói chung và các thiết bị Androidnói riêng đang ngày càng phát triển mạnh mẽ và da dạng Phát triển lớn mạnh và rộngkhắp khiến vẫn đề bảo mật trên các thiết bị di động cũng trở thành mối quan tâm rấtlớn của các nhà phát triển phần mềm cũng như người dùng Có rất nhiều các mối dedoa an ninh như phần mém lừa đảo (Malware), ứng dung lừa đảo (Phising), lỗ hong

bảo mật (Vulnerabilities) Vậy nên kiểm thử xâm nhập (Penetration Testing

-Pentest) đối với các thiết bị và ứng dụng Android dang trở thành một chủ dé quan

trọng và có sự phát triển mạnh mẽ nhanh chóng

Trong khoá luận này em đã thực hiện phân tích và xây dựng thêm cho một công

cu dùng đề kiểm thử thâm nhập Android tên RiskInDroid+ Công cu này được tham

khảo [1].

Mục đích xây dựng công cụ nay là dé đánh giá mức độ rủi ro của các ứng dụngAndroid dựa trên các quyền mà ứng dụng yêu cầu RiskInDroid+ sử dụng kết hợp

Java và Python trong quá trình xây dựng ứng dụng.

1.2 Một số công trình nghiên cứu tương tự

1.2.1 Phân Tích Quyền (Permission Analysis): "Android Permissions

Demystified" [2]

Các ứng dụng bên thứ ba được hệ điều hành Android cung cấp một API baogồm quyên truy cập phần cứng điện thoại, cài đặt và dữ liệu người dùng Quyền nàyliên quan đến vấn đề bảo mật được kiểm soát bởi hệ thống cấp quyền ứng dụng tạithời điểm cài đặt Các tác giả đã xây dựng công cu Stowaway dé phát hiện quyền

truy cập quá mức trong các ứng dụng Android đã biên dịch Công cụ xác định tập

Trang 10

hợp các lệnh gọi API mà một ứng dụng sử dụng và sau đó ánh xạ chúng tới các quyền

tương ứng Dé phát hiện quyên truy cập quá mức, trong bài nghiên cứu, tác giảAndrienne Porter Felt và các cộng sự đã sử dụng các công cụ kiểm thử tự động trênAPI Android để xây dựng bản đồ các quyền cần thiết

Sau khi áp dụng Stowaway vào 940 ứng dụng Android trên chợ Android, các

tác giả phát hiện khoảng một phần ba các ứng dụng yêu cầu quyền quá mức Nguyênnhân thường do tài liệu API không đầy đủ khiến các nhà phát triển phải thêm quyền

để đảm bảo cho ứng dụng hoạt động đúng như mong đợi

Stowaway bao gồm hai phần: một công cụ phân tích tĩnh xác định các lời gọi

API mà một ứng dụng thực hiện và một bản đồ quyền xác định các quyền cần thiết

cho mỗi lời gọi API.

Những đóng góp của nghiên cứu này:

e_ Phát triển Stowaway

e Xác định và định lượng các mau lỗi của nhà phát triển dẫn đến quyền

truy cập quá mức.

e Xác định chính sách kiểm soát truy cập của Android

1.2.2 Phân Tích Tĩnh (Static Analysis)

a "FlowDroid: Precise Context, Flow, Field, Object-sensitive and

Lifecycle-aware Taint Analysis for Android Apps" [3]

Người dùng điện thoại thông minh hay bị làm phiền bởi các ứng dụng được lậptrình cầu thả dẫn đến việc rò ri dữ liệu quan trọng một cách tình cờ, hoặc các ứngdụng độc hại lợi dụng các quyền được cấp để sao chép dữ liệu một cách cố ý

Trong công trình nghiên cứu các tác giả đã giới thiệu FlowDroid là một phương

pháp phân tích luồng tĩnh mới dành cho các ứng dụng Android

FlowDroid phân tích bytecode và các tệp cấu hình của ứng dụng để tìm các rò

ri quyén riéng tu tiềm An, hoặc do lập trình câu thả hoặc được tạo ra với ý định độc

hại.

Những đóng góp của công trình này:

o Phát triển FlowDroid

Trang 11

o Cung cấp DroidBench, một bộ benchmark micro mới, mở và toàn diện

để so sánh hiệu quả của các phân tích luồng cho Android

o Các thí nghiệm áp dụng FlowDroid cho hơn 500 ứng dụng từ Google

Play và khoảng 1000 ứng dụng độc hại từ dự án VirusShare.

b "DroidSafe: Information-Flow Analysis of Android Applications in

DroidSafe" [4]

Là một công cụ phân tích luồng thông tin tĩnh rồi báo cáo các rò ri tiềm ân củathông tin nhạy cảm trong các ứng dụng Android DroidSafe kết hợp mô hình toàndiện, chính xác và chỉ tiết của Android runtitme với các quyết định thiết kế phân tích

tinh cho phép phân tích các ứng dụng lớn.

Kết quả phân tích thực nghiệm cho thấy:

o DroidSafe đạt được độ chính xác và độ tin cậy cao trong phân tích luồng

thông tin của Android

o Phát hiện các rò ri luồng thông tin độc hại được chèn vào 24 ứng dụng

Android thực tế bởi ba tô chức Red-Team độc lập

Với việc đánh giá DroidSafe trên 24 ứng dụng Android đã nói ở trên cho kết

quả:

o Phát hiện chính xác tất cả 69 luồng độc hại trong các ứng dụng này

(trong khi báo cáo tổng số luồng có thé quản lý được)

o FlowDroid [4] + IccTA (phương pháp phân tích hiện dai) chi phát hiện

được 6 trong số 69 luồng độc hai và có ty lệ tổng số luồng báo cáo lớnhơn số luồng độc hại thực sự được báo cáo

Ngoài ra, DroidSafe còn được đánh giá trên DroidBench [4] với một bộ 94 bai

kiểm tra luồng thông tin Android từ các nhà phát triển FlowDroid + IccTA Cuốicùng các tác giả còn đánh giá DroidSafe trên một bộ 40 bài kiểm tra luồng thông tin

rõ ràng của Android do họ tự phát triển dé bé sung cho DroidBench Cả hai bài kiếmtra đều cho kết quả rất tốt

Trang 12

1.2.3 Học Máy Trong Bảo Mật Di Động: "Drebin: Effective and

Explainable Detection of Android Malware in Your Pocket" [5]

Bài bao giới thiệu Drebin, một phương pháp nhẹ nhàng dé phat hiện phan mềmđộc hại trên Android, cho phép xác định các ứng dụng độc hại trực tiếp trên điện thoại

thông minh.

Có ba ưu điểm chính được nhắn mạnh trong bài báo:

o_ Phát hiện hiệu quả: Drebin kết hợp phân tích tĩnh và học máy, cho phép

xác định phần mềm độc hại trên Android với độ chính xác cao và ít báo

động giả Điều quan trọng là DREBIN không phụ thuộc vào các mẫuphát hiện được tạo thủ công, giúp nó thích ứng tốt hơn với các loại phầnmềm độc hại mới

o Kết quả có thê giải thích: Drebin không chi phân loại ứng dụng là độc

hại hay lành tính mà còn cung cấp khả năng giải thích cho kết quả Băngcách truy vết ngược các mẫu đặc trưng trong không gian vectơ, ngườidùng có thể hiểu được tại sao một ứng dụng cụ thể bị công cụ này đánh

giá là độc hại

o Phân tích hợp lý: Drebin sử dụng các kỹ thuật phân tích và học tập tuyến

tính Điều này cho phép Drebin vừa phát hiện phần mềm độc hại trựctiếp trên điện thoại thông minh, vừa phân tích một lượng lớn ứng dụng

trong thời gian hợp lý

1.3 Mục tiêu, đối tượng, phạm vi nghiên cứu

1.3.1 Mục tiêu của dé tài

Phân tích rủi ro trên Android nhằm cung cấp các chỉ số cho người dùng dé đánh

giá độ tin cậy của các ứng dụng mà họ sắp cài đặt Có nhiều đề xuất về việc tính toángiá trị rủi ro của một ứng dụng nhưng nhiều trong số đó cung cấp các giá trị không

đáng tin cậy.

Với mong muốn khắc phục hạn chế, dé tài này giới thiệu RiskInDroid+ Công

cụ này tính toán giá tri rủi ro dựa trên các quyên mà ứng dụng yêu câu và sử dụng các

Trang 13

kỹ thuật học máy nhằm phục vụ mục đích Công cụ này được thừa kế lại từ

RiskInDroid - ứng dụng đã thực hiện các đánh giá thực nghiệm rộng rãi trên hon

112K ứng dụng và 6K mẫu phần mềm độc hại Quá trình đánh giá thực nghiệm chothấy RiskInDroid cũng như RiskInDroid+ đã đáp ứng được nguyện vọng của đề tài

nghiên cứu này.

1.3.2 Doi Tượng Nghiên Cứu

e_ Chỉ số nguy hại của các ứng dụng Android: Nghiên cứu tập trung vào việc tinh

toán khả năng rủi ro các file apk đã và đang được phát hành trên nhiều nguồnnhư Google Play Store, Nó sẽ bao gồm các ứng dụng phổ biến và cà nhữngứng dụng ít được biết đến

e_ Quyên truy cập (Permissions): Tập trung phân tích các quyền mà ứng dụng

yêu cầu, xác định mức độ rủi ro dựa trên các quyền này

1.3.3 Phạm Vi Nghiên Cứu

e Phân tích quyén truy cập: Dịch ngược, phân tích và đánh giá các quyền

(permissions) mà các ứng dụng Android yêu cầu, dựa trên cơ sở đữ liệu vềquyên và các nghiên cứu trước đây

e Tính toán mức độ rủi ro: Phát triển và thử nghiệm các mô hình đánh giá rủi ro,

bao gồm các thuật toán học máy để xác định và dự đoán mức độ rủi ro

e Tích hợp va thử nghiệm công cụ: Tích hợp các phương pháp va mô hình vào

công cụ, sau đó thử nghiệm công cụ nảy trên một tập hợp các ứng dụng

Android dé đánh giá hiệu quả và tính chính xác.

e Đánh giá và so sánh: So sánh công cụ này với các công cụ hiện có khác trong

lĩnh vực phân tích bảo mật và quyền truy cập trên Android.

10

Trang 14

Chuong 2 CƠ SỞ LÝ THUYET

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

2.1.1 Kiến trúc của hệ điều hành Android [6]

Android hiện nay đang thuộc quyền sở hữu của là Google Đây là một nền tang

di động mã nguồn mở, cho phép các nhà phát triển và nhà sản xuất thiết bị tuỳ chỉnh

và cải tiên theo nhu câu của họ Điêu này tạo ra sự đa dạng và linh hoạt trong việc

trình, bảo mật, , mạng

Lớp trửu tượng phần cứng (Hardware abstraction layer - HAL) đóng vai tròtrung gian giữa phần mềm và phần cứng thiết bị, giúp ứng dụng truy cập và sửdụng phần cứng sẵn có mà không cần biết chỉ tiết về cách thức hoạt động của

phần cứng.

Android Runtime: Là môi trường thực thi cho ứng dụng Với Android phiên

bản 5.0 (API cấp 21) trở lên, mỗi ứng dụng chạy với ART riêng Trước đây,Dalvik là Android runtime Cung cấp một số tính năng như thu gom rác, gỡlỗi và tối ưu hoá hiệu suất ART chuyển đổi mã bytecode của ứng dụngAndroid thành mã máy mà CPU có thể thực thi

Các thư viện Native C/C++: Đóng vai trò quan trọng trong việc cung cấp các

chức năng cơ bản cho hệ thống và các ứng dụng Các thư viện này thườngđược sử dụng để xử lý các tác vụ yêu cầu hiệu năng cao như đồ hoạ, âm thanh,quản lý bộ nhớ và các chức năng hệ thống khác

Java API Framework: Đây là một tập hợp các thư viện và lớp Java giúp các

nhà phát trién xây dựng ứng dụng Android một cach dé dàng và hiệu quả Đây

11

Trang 15

là phần lõi của hệ thống Android, cung cấp các API cần thiết để tương tác với

các thành phần của hệ thống như giao diện người dùng, dữ liệu, phần cứng và

các dịch vụ hệ thống.

Các ứng dụng hệ thống (System Apps): đây tầng trên cùng của cấu trúc, là cácứng dụng được cài đặt sẵn trên thiết bị bởi nhà sản xuất hoặc nhà cung cấpdịch vụ Chúng được tích hợp chặt chẽ với hệ điều hành và thường là một phầnkhông thê thiếu của trải nghiệm người dùng Android Các ứng dụng này thựchiện các chức năng cốt lõi và cung cấp các dịch vụ cần thiết cho cả người dùng

và các ứng dụng khác Một số ứng dụng cơ bản như email, nhắn tin, trìnhduyệt, danh bạ, máy ảnh, v.v Ngoài ra, ban cũng có thể tạo 1 ứng dụng tương

ứng khác có chức năng tương đương những ứng dụng mặc định của hệ thống

nhưng được tuỳ chỉnh tốt hơn nhằm thay thế Các apps này được viết bằngngôn ngữ Java và sử dụng các API của Android Framework để truy cập cáctính năng của hệ điều hành

12

Trang 16

Activity Location Package Notification

View System Resource Telephony

Native C/C++ Libraries Android Runtime

OpenMAX AL Android Runtime (ART)

Media Framework OpenGL ES < Core Libraries

Trang 17

APK cũng là một file Java, cụ thé là ở biến thể JAR (Java Archive), vì rất nhiều Android được xây dựng bằng Java, nó gói gọn tất cả các files cần thiết của một ứng dụng Android Một APK thường sẽ chứa một số thành phần như hình dưới đây:

=¡ | & |) = | File Viewer for Android.apk — oO x

File Home Share View @

> ~ + L] > File Viewer for Android.apk + v & Search File Viewer for Android

| Se ng Name ` Date modified Type Size

Ề L] assets File folder

(@& OneDrive a

G com File folder

This PC L] jsr305_annotations File folder

lib File folder

rổ Network U ¬

= _ META-INF File folder

#@ Homegroup Ll res 12/9/2016 9:40AM File folder

(=, AndroidManifest.xml XML Document 164 KB

i build-data.properties PROPERTIES File 1KB

|_| classes.dex DEX File 8,944 KB

|_| resources.arsc ARSC File 416 KB

10 items E =

Nguồn: Internet

2.2.2 Tệp APK được tạo ra như thế nào?

Đầu tiên, mã nguồn Java được biên dịch bang trinh bién dich Javac (bao gom

trong Bộ phát triển Java - JDK) và xuất ra dưới dang tệp class chạy trên Máy ảo Java

(JVM).

Tép class kết quả được chuyên đổi thành tệp DEX bang trình chuyên đổi dx đikèm trong Bộ công cụ phát triển Android (SDK) Tệp DEX chạy trên Máy ảo Dalvik

Tép manifest, ở dạng XML, và các tệp XML khác cần thiết cho việc thực thi

ứng dụng được mã hóa dưới dạng nhị phân.

Sau đó, các tệp DEX, XML, manifest và tài nguyên được đóng gói trong một

tệp APK, ở định dạng ZIP.

Tệp APK ban đầu được tạo ra không bao gồm chữ ký của nhà phát triển, điềunay can thiết dé phân phối ứng dụng Tệp APK chưa ký có thể được tự ký bằng khóariêng của nhà phát triển sử dụng công cụ Jarsigner Chữ ký của nhà phát triển và khóa

14

Trang 18

công khai sau đó được thêm vào tệp APK, hoàn tất quá trình xây dựng ứng dụng

xml Bueodsd private key

file mm xm1 file Ì -xml file

Manifest Encoded Encoded

file Manifest Manifest

Mục tiêu của pentest là phát hiện các lỗ hồng, điểm yếu trong bảo mật của cácứng dụng, hệ thống mạng hoặc thiết bị trước khi những kẻ tấn công có thé khai thác

chúng, sau đó khắc phục các lỗi này đề tránh việc bị tan công trong tương lai

Loi ich của pentest

o Phát hiện các lỗ hồng trong bảo mật và cung cấp đề xuất giải quyết, khắc

phục trước khi bị kẻ xấu lợi dụng

15

Trang 19

Giúp tăng cường nhận thức cũng như kiến thức, kĩ năng về bảo mật cho

đội ngũ kĩ thuật và quản lý

Nhiều quy định và tiêu chuẩn bảo mật yêu cầu các tổ chức thực hiệnpentest định kỳ Điều này giúp tổ chức đảm bảo tuân thủ và tránh cáchình phạt liên quan đến vi phạm quy định

Làm giảm thiểu rủi ro về mat mát, bị đánh cắp dữ liệu hay chiếm quyềnđiều khiển thiết bị, giúp bảo vệ tài sản công nghệ thông tin của tổ chức.Nâng cao hiệu quả của các biện pháp bảo mật nhờ việc kiểm tra các biệnpháp bảo mật hiện có và cung cấp thông tin chi tiết về những gì đanghoạt động hiệu quả và những gì cần cải thiện, giúp tối ưu hóa chiến lượcbảo mật của tô chức

Kết qua từ các bài pentest cung cấp nhiều thông tin quan trọng dé điều

chỉnh và cải thiện chiến lược bảo mật tông thé, giúp nâng cao năng lực

bảo vệ.

Ngoài ra, pentest còn giúp đánh giá khả năng phát hiện, phản ứng và

phục hồi sau khi bị tắn công của tô chức, từ đó cải thiện khả năng phòng

thủ trong tương lai.

Khi một tô chức thực hiện pentest, công bố cách khắc phục các 16 hong

và kết quả thực hiện thành công sẽ làm tăng điểm uy tín, niềm tin đối vớikhách hàng, đối tác

Ngoài pentest còn có quét lỗ hồng định kì cũng là một trong những cách đánhgiá lỗ hông bảo mật cho hệ thống

Lưu ý: trước khi thực hiện quá trình kiểm thử xâm nhập, cần có sự cấp phéphợp pháp của chủ hệ thống hoặc phần mềm đó, nằm trong kế hoạch về bảo mật cầnthiết cho hệ thống hay phần mềm đó Nếu không, những hành động xâm nhập nhưnày chính là tắn công (hack) trái phép vào hệ thống, là hành vi vi phạm pháp luật

Một số khái niệm trong kiểm thử xâm nhập: [9]

e Vulnerability (viết tắt là Vulns) : đây là điểm yếu hoặc lỗ hồng, được

xem như là "lôi vào” nơi mà những kẻ tân công sử dụng đê xâm nhập roi

từ đó truy cập trái phép và ăn cắp các tài nguyên của tổ chức

16

Trang 20

e Threat đây là bat kỳ tình huống, sự kiện, hoặc hành động nào có khả

năng gây ra thiệt hại cho hệ thống thông tin hoặc tài sản của tổ chức Mối

đe dọa này sẽ thông qua một lỗ hồng cụ thé nào đó mà nó tìm thay déthực hiện các hành động thâm nhập trái phép vào hệ thống tô chức hoặc

cá nhân

e Exploit là quá trình kẻ tan công tận dụng lỗ hồng dé thực hiện một hành

vị trái phép Kẻ tấn công tạo một đoạn mã hoặc phần mềm dé tận dụng

(khai thác) lỗ hồng bảo mật mà ho tìm được trong hệ thống, ứng dụng,

hoặc mạng Mục tiêu là chiếm quyên điều khiến hệ thống hoặc truy cập

trái phép vào dữ liệu.

e Risk (rủi ro) là khả năng xảy ra mối đe doa khai thác lỗ hồng cùng với

hậu quả của việc này Rủi ro thường được đánh giá dựa trên mức độ

nghiêm trọng của lô hông và kha năng xảy ra của môi đe doa.

Nguồn: [9]

Hình 2-4 Mối liên qua giữa các khái niệm kể trên

2.3.2 Các giai đoạn kiểm thử xâm nhập

=1 Lên kế hoạch, xác định phạm vi, mục tiêu va chiến lược

= 2 Thu thập thông tin (Information Gathering): sử dụng các công cụ va kỹ

thuật đề thu thập thông tin về hệ thống mục tiêu như địa chỉ IP, tên miền, cấutrúc mạng, Tìm kiếm thông tin nhạy cảm thông qua kĩ thuật lừa đảo hoặc

khai thác thông tin từ con người.

17

Trang 21

= 3 Quét và phân tích lỗ hồng (Scanning and Analysis): sử dụng công cụ và kỹ

thuật thích hợp để xác định các lỗ hồng bảo mật trong hệ thống, ứng dụng,hoặc mạng Scan và thăm dò các port với một số công cụ thông dụng nhưNmap, Wireshark Phân loại các lỗ hồng theo mức độ nghiêm trọng và khảnăng khai thác, từ đó xác định những lỗ hồng nào cần được kiểm thử chỉ tiết

hơn.

» 4 Khai thác lỗ hong (Exploitation) : thâm nhập bang các kĩ thuật như tấn công

SQL injection, tan công lỗ héng XSS, tấn công DDoS Sau khi khai thác

thành công thì tiến hành tấn công dé xem lỗ hồng có thé gây nguy hiểm đến

đâu Duy trì quyền truy cập như cách mà cách hacker vẫn làm dé đảm bao ho

có thể quay lại vào những lần sau mà không cần những bước trên

„5 Đánh giá mức độ tôn thương: mục dich là đánh giá các tác động, hậu qua

của các lỗ hồng bảo mật vừa được tìm ra

„6 Báo cáo và đề xuất: tong hợp kết quả của quá trình Pentest bao gồm các chi

tiết về các lỗ hồng, các phương pháp tan công, các hậu qua và khuyến nghị dé

khắc phục lẫn cải thiện bảo mật của hệ thống

2.3.3 Các phương pháp kiểm thử xâm nhập

Có nhiều phương pháp khác nhau để thực hiện kiểm thử xâm nhập (penetration

testing) Pentest thường được phân loại dựa trên các tiêu chí sau:

e Phân loại dựa trên phạm vi tấn công

18

Trang 22

Bang 2-1 Phân loại pen test theo phạm vi tấn công

Phát hiện các lỗ hongchỉ tiết và toàn điện

hơn do có đầy đủ thông

tin về hệ thống

- Yêu cầu nhiều thời

gian va công sức hon.

thông tin đăng nhập

cơ bản hoặc sơ đồ

e Phân loại dựa trên mục tiêu

19

Trang 23

Bảng 2-2 Phân loại pen test theo mục tiêu

Application pentests

Mục tiêu cu thé: Tap trung vao viéc kiểm tra các ứng dụngweb, di động, hoặc desktop, với mục tiêu tìm kiếm và khaithác các lỗ hồng bảo mật trong phần mềm

Phạm vi rộng: Có thể kiểm tra nhiều loại ứng dụng khác nhau,

từ các ứng dụng nội bộ đến các dịch vụ trực tuyến, bao gồm

cả các hệ thống quản lý cơ sở dữ liệu, API, và giao diện người

dùng.

Sử dụng kết hợp tự động và thủ công

Mô phỏng các cuộc tấn công thực tế như tân công brute-force,

đến tan công SQL injection hoặc cross-site scripting (XSS)

Thuong yéu cau su dau tu vé thoi gian va chi phi.

Mô phỏng một số kỹ thuật tan công như sniffing (nghe trộmdit liệu), spoofing (gia mạo dia chỉ IP), man-in-the-middle (tancông trung gian), nhằm đánh giá khả năng mạng chống chịu

trước các cuộc tân công từ bên ngoài hoặc từ bên trong tô chức.

Hardware pentests

Là quá trình kiểm tra và đánh giá bảo mật của các thiết bị phầncứng đề phát hiện các lỗ hồng có thể bị khai thác

Tập trung vào các thiết bị phần cứng

Tìm kiếm các lỗ hồng trong các thiết bị được kết nối với mạng,

vi dụ như laptop, PC, thiết bị di động và IoT

20

Trang 24

- Vi làm việc với cả phân cứng nên doi hỏi kiên thức chuyên

sâu về cả phân cứng lần phân mêm.

- Tìm kiêm điêm yêu trong an ninh mạng của nhân viên Nói

cách khác, các bài kiểm tra bảo mật này đánh giá mức độ dễ

bị tôn thương của một công ty đôi với các cuộc tân công kỹ

Personnel pentests

thuật xã hội.

- Sw dụng lừa đảo, vishing (phishing giọng nói), và đánh bóng

(SMS lita đảo) để lừa nhân viên tiết lộ thông tin nhạy cảm

Pentest đóng vai trò không thé thiếu trong việc tăng cường bảo mật hệ thốngtrên nền tảng số, nhờ đó mà các hệ thong lớn có cấu tạo phức tạp có thé vận hành 6n

định và tránh được những gây hại từ bên trong lẫn bên ngoài.

2.4 Giới thiệu sơ lược các công nghệ sử dụng trong ứng dụng

2.4.1 Java

Java

Nguôn [11]

Hình 2-6 Ngôn ngữ Java

Java là một ngôn ngữ lập trình và nền tảng máy tính được phát triển vào năm

1995 Java thuộc kiểu ngôn ngữ lập trình hướng đối tượng — OOP, đây là một trongnhững ngôn ngữ lập trình máy tinh được sử dụng phô biến nhất hiện nay Có rất nhiềulĩnh vực như phát triển phần mềm, làm web, game hay xây dựng ứng dụng trên cácthiết bị di động sử dụng Java dé xây dựng

Các lợi thế khi sử dụng Java:

21

Trang 25

Đa nền tảng nghĩa là một chương trình viết băng Java sẽ không cần phảichỉnh sửa mà có thể chạy tốt ở nhiều môi trường khác nhau.

Hệ sinh thái phong phú với rất nhiều libraries và frameworks cùng cộngđồng người sử dụng rất lớn

Java thuộc OOP nên thuận lợi cho việc tô chức code

Quản lý bộ nhớ tự động nhờ cơ chế thu gom rác tự động (garbagecollection) mà không cần gọi lệnh hủy vùng nhớ đã cấp phát

Hỗ trợ lập trình đa tiến trình, thực thi nhiều công việc đồng thờiTính an toàn và bảo mật tốt do được cung cấp nhiều cơ chế bảo mật lạicách ly với hệ điều hành nên giảm nguy cơ bị tấn công

2.4.2 Python

® python’

Nguồn [11]

Hình 2-7 Ngôn ngữ Python

Python, cũng giống như Java, là một trong những ngôn ngữ lập trình phổ biến

và được sử dụng rộng rãi trong nhiều lĩnh vực đặc biệt là trong khoa học dữ liệu va

máy học (ML) Python có cú pháp rõ ràng, dễ học và tính linh hoạt cao.

Lợi ích Python mang lại:

Cải thiện năng suất làm việc của lập trình viên do các dòng code được làm

Trang 26

¢ Cộng đồng người dùng Python lớn, có thể nhanh chóng tìm kiếm được

giúp đỡ đễ giải quyết vẫn đề

2.4.3 ADB

ABD là viết tắt của Android Debug Bridge, là một công cụ dòng lệnh mạnh mẽ

đi kèm với bộ công cụ phát triển phan mềm Android (Android SDK) ADB cho phépmáy tính giao tiếp với các thiết bi Android như di động, máy tính bang (tham chí làmáy ảo) ADB hỗ trợ rất nhiều trong việc phát triển ứng dụng và gỡ tối lỗi trong

Trang 27

Hình 2-9 Ngôn ngữ HTML - CSS - JavaScript

Ba ngôn ngữ này được sử dụng dé thiết kế giao diện của các trang web —

front-end.

« HTML - HyperText Markup Language được gọi là ngôn ngữ siêu đánh dấu,

xây dựng cấu trúc nội dung cơ bản của một trang web với các cặp thẻ đánhdau đóng mở

« CSS - Cascading Style Sheets, chịu trách nhiệm định hình và nâng cao các

khối trong HTML

‹ JavaScript là ngôn ngữ lập trình phô biến được sử dung dé người dùng tương

tác với trang web.

2.4.5 Học máy (Machine Learning)

Học máy (Machine Learning) là một nhánh của trí tuệ nhân tạo (AI), mục tiêu

là xây dựng và phát triển các thuật toán, model cho phép máy tính có thể "học" từ đữ

liệu và từ kinh nghiệm, bỏ qua những bước được lập trình phức tạp như trước.

Thay vi chỉ thực hiện các lệnh có định, máy tính sẽ học từ đữ liệu đầu vào và tự

động tìm ra quy tắc, phát hiện mô hình, và ra quyết định dựa trên dữ liệu được học.

Cụ thê, quá trình học máy bao gôm các bước sau:

e Thu thập dữ liệu phù hợp và đủ lớn cho van đề mục tiêu cụ thé mà bạn

đang cố gắng giải quyết Dữ liệu có thé đến từ nhiều nguồn khác nhaunhư cơ sở đữ liệu, API, các file CSV, hoặc được sinh ra từ các cảm biến

e Chuẩn bị dữ liệu hay là tiền xử lý dữ liệu: Tiếp theo, đữ liệu được chuẩn

bị bằng cách xử lý, làm sạch, và biến đổi dé phù hợp với model học máy

e Chọn model: Dựa trên van đề cụ thê (phân loại, hồi quy, phân cụm, v.v.),

chọn một hoặc nhiều thuật toán học máy phù hợp Có nhiều loại như hồiquy tuyến tính, cây quyết định, máy vector hỗ trợ (SVM), mạng nơ-ron,

và nhiêu hơn nữa.

24

Ngày đăng: 06/12/2024, 15:26