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: Ứng dụng phát hiện mã độc trong các ứng dụng android dựa trên opcode và học sâu

63 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 đề Ứng dụng phát hiện mã độc trong các ứng dụng android dựa trên opcode và học sâu
Tác giả Tran Quoc Phong
Người hướng dẫn TS. Le Kim Hung
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành An toàn thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 63
Dung lượng 36,03 MB

Nội dung

Với sự phát triển nhanh chóng của các phan mềm mã độc việc sử dụng các phương pháp truyền thống gặp phải rất nhiều hạn chế bởi sự tỉnh vi của những biến thể gây khó khăn trong việc phân

Trang 1

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG

TRAN QUOC PHONG - 19522013

KHOA LUAN TOT NGHIEP

UNG PHAT PHAT HIEN MA DOC TRONG CAC UNG

DUNG ANDROID DUA TREN OPCODE VA MAY HOC

AN APPLICATION FOR DETECTING ANDROID MALWARE

USING OPCODE AND MACHINE LEARNING

KY SU AN TOAN THONG TIN

GIANG VIEN HUONG DAN

TS LE KIM HUNG

TP HO CHi MINH, 2023

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, em xin chân thành tri ân quý thầy, cô đang công tác và giảng dạy tạikhoa Mang máy tinh và Truyền thông, cũng như toàn thé thầy, cô khác công tác tạitrường Đại học Công nghệ Thông tin - ĐHQG HCM đã truyền đạt những kiến thức,bài học, kinh nghiệm quý báu cho em trong suốt quãng thời gian bốn năm vừa qua

Và đã sắp xếp thời gian, chương trình hợp lý dé chúng em có cơ hội hoàn thành khóa

luận tốt nghiệp tốt nhất Em xin kính chúc khoa Mạng máy tính và Truyền thông nói

riêng và trường Đại học Công nghệ Thông tin nói chung luôn thành công rực rỡ trên

con đường giảng dạy đào tạo nhân tài, quý thầy cô sẽ mãi là niềm tin vững chắc cho

các thê hệ sinh viên trên con đường giáo dục.

Đặc biệt, em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến giảng viên, TS LêKim Hùng Nhờ những kinh nghiệm và bài học quý báu mà thầy đã chia sẽ, thầy đãluôn quan tâm và giúp đỡ em giải quyết những vấn đề và khó khăn phát sinh trongquá trình thực hiện khóa luận Nhờ có thầy, em đã có cơ hội hoàn thành tốt khóa luận

tốt nghiệp này

Tiếp theo, em xin cảm ơn về phía gia đình đã luôn luôn tin tưởng, động viên chúng

em trong suốt quá trình học tập tại trường Đại học Công nghệ Thông tin - ĐHQGHCM, giúp chúng em có thêm nguồn năng lượng dé đi đến được như ngày hôm nay

Cuối cùng, em xin gửi lời cảm ơn đến các anh, chị và các bạn sinh viên tại trườngDai học Công nghệ Thông tin —- ĐHQG HCM đã luôn nhiệt tình hỗ trợ, chia sẻ ý kiến

và góp ý cho chúng em trong quãng thời gian thực hiện khóa luận.

TP Hồ Chí Minh, ngày tháng năm 2023

Nhóm tác giả

Trang 3

MỤC LỤC

DANH MUC HINH 0057 7DANH MUC BANG cecssssscssssssssssessssseeessneecssnsecesnsecesnneeessnecesnnecesunessaneessneeesnnees 9IM.9)5810/9/10014309.90005 10Chương 1 _ MỞ ĐẦU : 22222222221 E1E7152121121121121E 1111111111 c0 2

1.3 Mục tiêu đề tài ccccvv tt th nghe 71.4 Đối tường và phạm vi nghiên cứu : -¿-s¿©+++x++zx++x++rx++zxe+zsez 7Chương2 CO SỞ LÝ THUYẾÊT - -+E+SE+EE+EE+EE£EEEEEEEEEEEEEEEErrxrrerei 8

2.2 Các mô hình Machine Learning phổ biến 2- 2 2 2 s5s££+£z2£z25+2 8

2.2.2 Decision “TT@@S G11 HH ng ng 9

2.2.4 K-Nearest Neighbors - KNN Ăn Hệ, 112.3 Hệ điều hành Android ecsssesscsssseeseesssescsssseseessseseessnneecessneecessneseessneecs 132.4 Các đặc trưng của một tệp tin APK - - 5 S3 ri rrree 16

2.4.1 _ Đặc trưng p€rImISSION c5 3S Si rriet 21 2.4.2 Dac trưng API calli ccc ecceseescceseeeeeeeeesecesecseeeeesseeesecseesneenseeees 22

2.4.3 Dac trưng OpCOd€ HH TH HT HH HH ng 23

2.5 Kỹ thuật lựa chọn đặc trưng cho các bai toán phân loại mã độc Android 25

QSL 3? 25

Trang 4

2.6 Kỹ thuật lựa chọn mô hình máy học phù hợp với Dafaset 27

2.6.1 TPOT Ă 2c 2222222121211 28

2.6.2 ¡J4 | “1a 29

Chương3 HỆ THONG PHÁT HIỆN 2-52 2+S++E2E+£Eerxerxersree 30

3.1 Giai đoạn tiền xử lý - + <+ck+EEE 2k2 E1E21211211211 21111111111 31

3.1.1 _ Trích xuất đặc trưng từ tệp tin APK ¿-ccccz+c+rxerxercee 31

3.1.2 Lựa chọn đặc trưng CO 914 ted eceeceeceeecceseeseeeteeeseeeeeeeeeeeeeeeneeeseens 363.2 Giai đoạn chon mô hình máy hoc huấn luyện và thử nghiệm 37

4.2 Kết quả thực nghiệm -2- 22 5¿22++2EE£EEESEEE2EEEEEEEEEeerkrrrrrrkrsree 50

4.3 So sánh với mô hình khác sử dụng cùng Dafaset -«<+<<ss+ 50

Chương 5 | TONG KET VÀ HƯỚNG PHAT TRIEN . : -: 52

TÀI LIEU THAM KHẢO - - St kSEkSE‡EEEEEEEEEEEEEEEEEEEESEEEEEETEEEEEEEkekrrrrkrkee 53

Trang 5

DANH MỤC HÌNH

Hình 1: Thị phan hệ diéu hành di động trên toàn thé giới ccs+cc+ccsccsea 3Hình 2: Sự phát triển của Android Malware/PUA -. -+©-2©-s+cx++xczx+rsrscres 4Hình 3: Các loại phan MEM độc hại veececcececcssesrsseerssvssesssverssesrsstssesussesavsvsassseesesseesees 5Hình 4: Các phương pháp phân tích phan mém độc hại vescesccsscesvessessesssessessesseesesseess 6

Hình 5: Ap dụng ML/DL trong việc phát hiện Android Malware - 7

Hình 6: Vi dụ Linear Regression SH HH rry 9 Hình 7: Cây trong Decision Tree với các NOÌ6© c5 5S +ksseeesseeeeers 10

Hình 8: Mô tả cách thức hoạt động của Random FOF€ST -.ccSS< se s+ 11

Hinh 9: Kién tric Android 8N nh 14

Hình 10: Biên dịch mã nguồn l,) 8,.0 08.0 16

Hình 11: Các thành phần trong Android PACKAge -s: s+cce+ce+cs+cxecsez 17

Hình 12: Các tệp tin và thư mục của một APK -~-ccccssckseesseresersseeeeres 19Hình 13: So sánh kiến trúc Dalvik và ART -c-©ccccee+sccxeerrtrreeerrrrrrked 20Hình 14: Ví dụ về Permission trong AndroidManiƒest.ximl - 5555555552552 22

Hình 16: Ví dụ một ứng dụng got A PÌ SH ng kg re 23

Hình 17: Ví dụ về Dalvik bytecode - 2-52 ESE+E‡EE+EEEEEEEEEEEEEEEEEEEerkererkererkrri 24Hình 18: Ví dụ về Machine Learning pipeline ccecccsscsscessessessssssessessessssssessessessseeseeses 28

Hình 19: Cách thức hoạt động của AufO-SKÏ@QTH - chi siekeseereere 29

Hình 20: Sơ đồ mô hình tong qắt - +: 2-52 S£+E£SE‡EE‡EEEEESEEEEEEEEEEEEEEEkerkerkrrkrree 30Hình 21: Kết quả trích xuất Permission, Opcodes và API calls từ một ứng dụng 33

Hình 22: Nội dung tệp smali sau khi dich HgỢC S.cẶàSksksihiseikeieeeree 34 Hình 23: Tên các lớp trong tệp tin CÏASS_ idl€X.EXẨ cà S5 ssieksseereere 34

Hình 24: Tên các gói trong tệp tin package_ IHÌ€X.ÍXÍ cScSs+s+seekeseexesers 34

Hình 25: Các API calls được trích xuất từ ứng dụng Android -. -s+: 35

Hình 26: Dataset hoàn ChỈHH cv 9H HH gu, 35 Hình 27: Quá trình features selection sw dung RFE với LogisticRegression 36

Hình 28: Các đặc trưng được gán với rank twong Ung ccccccceccccccesceseesseesseeseeeneesees 37

Trang 6

Hình 29:

Hình 30:

Hình 31:

Hình 32:

Hình 33:

Hình 34:

Hình 35:

Hình 36:

Hình 37:

Hình 38:

Hình 39:

Hình 40:

Hình 41:

//„9/M/12.100nn 38

Kết quả của quá trình tìm kiếm với Auto-Sklearn vecceccesscesseesvessesseessesseesees 39 So sánh confusion matrix của hai mô hình -cssss«ssss+sseessseers 39 Mô hình ứng dụng WeD cv kg kg ven 40 Giao điện chính Ung dụng WU€P - sgk rry 41 Tai én mt tép tint ADK eccceecccccsccessccesscessecescceeeceeseceeneceseeceseceeaeceeeceeeeeaeeees 41 Kết quả dự đoán trả Ve cescecescescescesessesseseesessssessesssssessessessesssessessessessesnease 42 Số lượng các mẫu trong Dataset training và Validation, 46

Top 10 Permissions phổ biến trong các ứng dung lành tính 46

Top 10 Permissions phổ biến trong các ung dụng độc hại 47

Top 10 Opcodes phổ biến trong các ứng dụng lành tính 47

Top 10 Opcodes phổ biến trong các ứng dụng độc hại -. - 48

So sánh kết quả thực nghiệm hai mô hình trên 1000 ứng dụng 50

Trang 7

DANH MỤC BANG

Bang 1: So sảnh các phương pháp lựa chọn đẶC ÍTWHG c cà S«cS+scssseeesee 37

Bang 3: Kết quả so sánh giữa TPOT và Auto-Sklearn 2-55c55c©cz2cs+csscxccsz 36Bảng 4: Số lượng các mẫu trong dataset ccecceccecsessesssessessesssessessesseessessessecsessesseeseees 46Bang 5: So sánh giữa các bộ Dataset phần mém độc hại Android - 49

Bảng 6: Bảng so sánh kết quả với các mô hình khácC -««-+s-«sss+sseesssexxs J]

Trang 8

DANH MỤC TỪ VIET TAT

FPR False Positive Rate

ENR | False Negative Rate

KNN | K-Nearest Neighbors

LSTM | Long Short-Term Memory

RFE Recursive Feature Elimination

Trang 9

TÓM TẮT KHÓA LUẬN

Trong thời đại công nghệ 4.0 như hiện nay, Android là một trong số những hệ điềuhành được sử dụng phố biến nhất Tuy nhiên, đi kèm với sự phô biến này cũng kèmtheo những mối đe dọa và những cuộc tấn công nhắm vào các thiết bị Android Bằngchứng là ngày càng có nhiều phần mềm độc hại và các biến thể của chúng theo từngnăm Các phương pháp phát hiện truyền thống như dựa trên phân tích nội dung mã

độc bằng các kỹ thuật phân tích cú pháp hoặc phân tích tĩnh và động của mã dé xác

định các đoạn mã độc hại hoặc các thao tác độc hại Hoặc các phương pháp dựa trênfingerprints và signatures bằng cách sử dụng cơ sở dữ liệu chứa fingerprints hoặcsignatures của các mối đe doa đã biết Với sự phát triển nhanh chóng của các phan

mềm mã độc việc sử dụng các phương pháp truyền thống gặp phải rất nhiều hạn chế

bởi sự tỉnh vi của những biến thể gây khó khăn trong việc phân tích và phát hiện.Trong khóa luận này, nhóm sử dụng các đặc trưng được trích xuất từ các tệp tin apknhư permissions, API calls, opcodes để tạo tập dữ liệu huấn luyện các mô hình họcmáy Bên cạnh đó sử dụng các framework học máy tự động đề đề xuất một mô hình

học máy phù hợp với dataset, tạo nên mô hình máy học có khả năng phát hiện nhanh

phần mềm độc hại Sau cùng, nhóm sẽ thực hiện các đánh giá khách quan dé cho thay

độ hiệu quả của mô hình Tôi hy vọng với những đóng góp trong khóa luận này sẽ lànhững đóng góp có ích, góp phần hạn chế các mối đe dọa từ những phần mềm độctrên nhằm vào các thiết bị Android

Trang 10

Chương 1 MỞ ĐẦU

1.1 Tên đề tài

Tên tiếng Việt: ỨNG DỤNG PHÁT HIỆN MÃ ĐỘC TRONG CÁC ỨNG

DỤNG ANDROID SỬ DỤNG OPCODE VÀ MÁY HỌC

Tên tiếng Anh: AN APPLICATION FOR DETECTING ANDROID MALWAREUSING OPCODE AND MACHINE LEARNING

1.2 Đặt vấn đề

Tính đến năm 2023, đã có ít nhất 13 bản phát hành chính thức của hệ điều hành diđộng Android ké từ bản phiên bản thương mại đầu tiên, Android 1.0, được phát hành

vào ngày 23 tháng 9 năm 2008 và ngay sau đó, smartphones chạy hệ điều hành mã

nguồn mở mới có mặt ở khắp mọi nơi Bản phát hành mới nhất tính đến thời điểmhiện tại là Android 14, tuy nhiên đây chỉ là bản phát hành beta và dự kiến sẽ có phiênbản ôn định vào cuôi năm nay.

Theo những dit liệu gần đây nhất cho thay Android đang thống trị thị trường điệnthoại thông minh toàn cầu với 71% thị phan, tiếp theo là iOS của Apple với 28%.Những con số này có thể thay đôi theo thời gian và sự cạnh tranh trên thị trường pháttriển Tuy nhiên, vẫn có thé thay Android đang là hệ điều hành đang được sử dụng

rộng rãi nhât trên thê giới.

Trang 11

StatCounter Global Stats

Mobile Operating System Market Share Worldwide from May 2022 - May 2023

© Android iOS Samsung © Unknown © KaiOS © Windows © Nokia Unknown — Other (dotted)

Hình 1: Thi phan hệ diéu hành di động trên toàn thé giới

Với sự phô biến rộng rãi như vậy và bản chất mã nguồn mở của các ứng dụng Android

đã khiến nó trở thành mục tiêu cho các cuộc tấn công bảo mật và đe dọa nghiêm trọngđến tình toàn vẹn của của các ứng dụng Android Nhiều kẻ tan công đã phát trién mãđộc Android ngày càng tinh vi, ngày càng có nhiều biến thể của những mã độc nàyxuất hiện làm cho việc kiểm soát và phòng tránh trở nên khó khăn hơn bao giờ hết.Theo thống kê, hơn 50 triệu phần mềm độc hại và ứng dụng có khả năng không mong

muốn (PUA) đã được xác định cho Android, điều này làm nổi bật quy mô và mức độ

nghiêm trọng của van đề Đánh giá Bảo mật Android 2016 của Google cũng tuyên bốrằng “PHA vẫn là mối đe dọa với người dùng Android, vì những kẻ tắn công gia tăng

nỗ lực lừa người dùng cài đặt các ứng dụng có khả năng gây hại”.

Báo cáo về mối đe dọa trên thiết bị di động cua McAfee năm 2021 nêu bật một số Xu

hướng về mối đe đọa trên thiết bị di động Theo báo cáo, nhiều ứng dụng độc hại đã

được phát hiện vào năm 2021 hơn bat kỳ năm nào trước đó Các cuộc tan công phan

mềm độc hại trên thiết bị di động đã tăng 33% so với năm trước và cách phô biến

nhất dé phát tán phần mềm độc hại trên thiết bị di động là thông qua các cuộc tancông lừa dao Các trang lừa đảo tăng 80% so với năm trước Về hệ điều hành di động,

Trang 12

Android tiếp tục là nền tảng được nhắm mục tiêu nhiều nhất cho phần mềm độc hại

đi động Ngoài ra, báo cáo cho thấy phần mềm quảng cáo di động và trojan ngân hàng

đặc biệt phố biến vào năm 2021

TOTAL AMOUNT OF MALWARE AND PUA UNDER ANDROID

GBB Android Malware BE Android PUA

Hình 2: Sự phát triển của Android Malware/PUA

Các nhà nghiên cứu đã nghiên cứu bản chât của các ứng dụng phân mêm độc hại

trong những năm qua và phân loại chúng thành các họ khác nhau như:

- Trojan: chúng xuất hiện dưới dang các ứng dụng lành tình và nhằm đánh cắp

thông tin của người dùng.

- Backdoor: chúng khai thác các đặc quyền cấp quyên root và nhăm mục đích

chiếm được quyền kiểm soát thiết bị và thực hiện bất kỳ hành động nào mong

muốn

- Worms: phần mềm độc hại nay tao ra các bản sao của chính nó và lây lan trên

mạng của thiết bị di động

- Spyware: những phần mềm spyware được thiết kế dé giám sát thông tin bí mật

của người dùng, chang hạn như tin nhắn, danh bạ, vị trí, thông tin ngân hàng,

dẫn đến hậu quả không mong muon.

Trang 13

- Botnet: là một mạng gồm các thiệt bị Android bị xâm nhập do một máy chủ

điều khiển từ xa

- Riskwares: là các ứng dụng hợp pháp có tiềm năng gây nguy hiểm hoặc đe

dọa đến tình bảo mật của hệ thống.

Hình 3: Các loại phân mêm độc hại

Các phương pháp tiếp cận tiêu chuân đề phát hiện phần mềm độc hại có hai loại:

- Phuong pháp tĩnh: với hướng tiếp cận nay, các chức năng va tính độc hại của

một ứng dụng được kiểm tra bang cách disassembling và phân tích mã nguồncủa nó mà không cần thực thi ứng dụng

- Phuong pháp động: ứng dụng sẽ được phân tích và kiểm tra trong quá trình

thực thi có thé giúp xác định các ứng dụng không bị phát hiện bởi phân tích

tĩnh do xáo trộn mã và mã hóa phân mêm độc hại.

Trang 14

DYNAMIC ANALYSIS Executes suspected malicious code in a safe environment

HYBRID ANALYSIS

STATIC ANALYSIS

Examines the file for signs of

malicious intent

Hình 4: Các phương pháp phân tích phan mém độc hại

Với sự phát triển mạnh mẽ của phần mềm độc hai bằng chứng là ngày càng có nhiềubiến thé của những họ phần mềm độc hai này xuất hiện dẫn đến việc ngăn chặn va

phát hiện chúng ngày càng trở nên khó khăn Tuy nhiên, với sự phát triển của các

kiến trúc học sâu và các mô hình học máy như hiện nay chúng ta có thê tích hợp các

mô hình này vào việc phát hiện các phần mềm độc hại trên các thiết bị Android nhằmđạt hiệu quả tốt hơn so với các phương pháp phân tích truyền thống như phân tíchtĩnh và phân tích động Bằng cách sử dụng các mô hình này, có thể phát triển cácphương pháp phát hiện tinh vi và chính xác hon dé có thể phát hiện phần mềm độc

hại ngay cả khi nó chưa được biết đến hoặc nhận dạng trước đó Ngoài ra, các mô

hình này có thể học hỏi từ các mẫu phần mềm độc hại mới, liên tục cải thiện độ chính

xác của việc phát hiện và cải thiện tính bảo mật trên các thiệt bị Android.

Trang 15

eees ése» mans) ee eee Ì° sẽ: ee | a 3

- Tim hiểu về hệ điều hành Android, những thành phan trong Android cũng như

các loại mã độc thường xuất hiện trong Android

- Tim hiểu các kỹ thuật và công cụ được sử dụng dé phân tích các mẫu phan

mềm độc hại trong Android

- Tim hiểu Machine Learning, cũng như những phương pháp học máy tự động

để xây dựng một mô hình phát hiện phần mềm độc hại sử dụng Machine

Learning.

- Thuc nghiệm va đánh giá mô hình phát hiện dựa trên những đặc trưng của một

tệp tin APK như Permissions, Opcodes, API callls.

1.4 Đối tường và phạm vi nghiên cứu

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

- _ Những mô hình máy học được áp dụng trong việc phát hiện phần mềm độc hại

trên các thiết bị Android

Phạm vi nghiên cứu:

- Nghién cứu các thuật toán máy học, các phương pháp học máy tự động và các

đặc trưng được sử dụng dé xây dựng mô hình học máy từ tệp tin APK.

Trang 16

Chuong 2 CƠ SỞ LÝ THUYET

Trong chương này, tôi xin được trình bày một số cơ sở lý thuyết về kiến thức máy

học, các thuật toán máy học, hệ điều hành Android, các đặc trưng của một tệp tin

APK, kỹ thuật lựa chọn đặc trưng cho các bài toán phát hiện mã độc Android, và cuốicùng là kỹ thuật lựa chọn mô hình máy học phù hợp với tập dữ liệu Đây là kiến thức

cơ bản dé xây dựng mô hình phát hiện mã độc trên nên tảng thiết bị di động

2.1 Machine Learning

Machine Learning (máy học) là 1 nhánh con của trí tuệ nhân tạo (AI) và khoa học

máy tính Machine learning sử dụng dữ liệu, thuật toán đầu vào để tự xử lý các vấn

dé và liên tục tối ưu dé tao ra những phương án xử lý mới, hiệu quả hơn; giống nhưcách tự học của não bộ con người Với những lợi thế mà máy học mang lại, nó có théđược áp dung trong nhiều lĩnh vực khác nhau, bao gồm cả việc phát hiện phan mềm

độc hại trên các thiết bị Android Trong đó Machine Learning có thể học các đặc

trưng của các ứng dụng Android và tạo ra một mô hình phát hiện dựa trên các đặc trưng đó.

Bằng cách áp dụng Machin Learning vào trong công việc phát hiện mã độc giúp tăng

độ phát hiện và giảm thiêu số lượng các ứng dụng độc hại được truyền tải và cài đặt

trên các thiết bị người dùng Đồng thời, Machine Learning cũng có khả năng điều

chỉnh và cải thiện mô hình dựa trên các dữ liệu mới, giúp nâng cao độ chính xác và khả năng phát hiện trong thời gian thực.

2.2 Các mô hình Machine Learning phố biến

2.2.1 Linear Regression

Linear Regression là một trong những thuật toán co bản nhất va đơn giản nhất trong

Machine Learning Day là một thuật toán học có giám sát (Supervised learning).

Linear Regression giả định rằng mối quan giữa biến đầu vào và đầu ra có thể đượcbiểu diễn bằng một đường thắng Mô hình Linear Regression có công thức chung

y = Do + bịxi + box +++ bạx„, trong đó y là giá trị đầu ra, x¡, xạ, , x„ là

Trang 17

các biến đầu vào, và bạ, b, , Dy là các hệ số (hay trọng số) của mô hình Mụctiêu là tìm ra các giá trị tối ưu cho các hệ số bạ, b, , by sao cho mô hình hợp lýnhất Các mô hình Linear Regression thường được điều chỉnh bằng sử dụng phươngpháp bình phương nhỏ nhất (Least Squares) nhưng chúng cũng có thể được điều

Trees có thê được sử dụng dé giải quyết các bài toán hồi quy (regression) va phân

loại (classification) Mục tiêu của việc sử dung Decision Trees là tạo ra một mô

hình đảo tạo có thể sử dụng dé dự đoán loại hoặc giá trị của biến mục tiêu bằngcách học các quy tắc quyết định được suy ra từ đữ liệu đầu vào

Nguyên tắc hoạt động của Decision Tree là chia tập dit liệu huấn luyện thành các

phân nhánh dựa trên các thuộc tính (đặc trưng) của dữ liệu Quá trình chia dữ liệunày được thực hiện dựa trên các tiêu chí như độ tương đồng giữa các mẫu, độ tinhkhiét của các nhãn, hoặc độ tương quan với biên mục tiêu.

Trang 18

Các quyết định tại mỗi nút trong cây quyết định được đưa ra bằng cách đánh giá

các thuộc tính và áp dụng các quy tắc dé phân loại hoặc dự đoán Quá trình này tiếp

tục cho đến khi đạt được một điều kiện dừng như đạt tới một độ sâu tối đa, không

còn dữ liệu hoặc không còn sự phân chia đáng kê.

Random Forest là một trong những thuật toán hoc có giám sát trong máy học Với

Random Forest, nó có thể được sử dụng để giải quyết cho cả bài toán hồi quy

(regression) và phân loại (classification) bằng cách kết hợp nhiều cây quyết định

(decision trees) đê tạo ra một mô hình dự đoán mạnh mẽ và ôn định.

Các bước dé xây dựng một mô hình Random Forest bao gồm: thu thập dữ liệu huấnluyện; tạo ra một tập hợp các cây quyết định độc lập, mỗi cây sẽ được huấn luyện

10

Trang 19

trên một tập con của dữ liệu huấn luyện, với một số đặc trưng ngẫu nhiên được

chọn trong mỗi cây Tiếp đến là huấn luyện cây quyết định Trong quá trình huấn

luyện cây quyết định thuật toán sẽ chia tập dữ liệu thành các nút dựa trên các đặc

trưng dé tối ưu hóa một hàm mắt mát (loss function) Quá trình này sẽ tiếp tục chođến khi cây được huấn luyện đủ sâu hoặc đạt được một điều kiện dừng

Random Forest có nhiêu ưu điêm như khả năng xử lý dữ liệu lớn, khả năng xác

định đặc trưng quan trọng, khả năng xử lý cả dữ liệu sô và dữ liệu rời rạc và khả

năng 6n định trong việc xây dựng mô hình

Random Forest Simplified

Tree-1 Tree-2 Tree-n

Class-A Class-B Class-B

KNN (K-Nearest Neighbors) là một trong những thuật toán học có giám sat don

giản nhất được sử dụng nhiều trong khai phá dit liệu và học máy KNN có thé được

sử dụng đê giải quyết cả vê vân đê phân loại và hôi quy.

lãi

Trang 20

Như chúng ta đã biết rằng thuật toán KNN giúp xác định các điểm gần nhất hoặc

các nhóm cho một điểm truy van Dé xác định các nhóm gần nhất hoặc các điểm

gần nhất cho một điểm truy vấn, thuật toán KNN sử dụng các chỉ số khoảng nhưEuclidean Distance, Manhattan Distance, Minkowski Distance.

Euclidean Distance: là khoảng cách giữa hai điểm trong mặt phăng hoặc khônggian ba chiều đo độ dài của đoạn nói giữa hai điểm Khoảng cách Euclide đánh dấucon đường ngắn nhất của hai điểm (1)

dị;(%, y) = =1(Xị — yi)? (1)

Manhattan Distance: chỉ số khoảng cách này thường được sử dụng khi chúng ta

quan tâm đến tổng quãng đường di chuyền của vật thé thay vì độ dịch chuyền và

nó được tính bằng cách tính tổng chênh lệch tuyệt đối giữa tọa độ của các điểm

theo n chiều (2)

d(x,y) = =ilXi — vil (2)

Minkowski Distanee: là một số liệu trong một không gian vector định chuẩn, được

sử dụng cho độ tương tự khoảng cách của vector (3)

d(x,y) = Q=¡@¡ — yj?)°/P (3)

Giá trị của K là rất quan trọng trong thuật toán KNN dé xác định số lượng neighbors

trong thuật toán Giá tri của K trong thuật toán K-Nearest Neighbors (K-NN) phảiđược chọn dựa trên dữ liệu đầu vào Nếu dữ liệu đầu vào có nhiều ngoại lệ hoặcnhiễu hơn, giá trị K cao hơn sẽ tốt hơn Nên chọn giá trị lẻ cho K để tránh ràngbuộc trong phân loại Các phương pháp xác thực chéo có thể giúp chọn giá trị Ktốt nhất cho tập dit liệu đã cho

Ưu điểm:

- Dé thực hiện: với tính đơn giản và chính xác của thuật toán, đây là một trong

những cách phân loại đầu tiên mà khoa học dữ liệu sẽ học

12

Trang 21

Dễ dàng điều chỉnh: khi các mẫu đào tạo mới được thêm vào, thuật toán sẽđiều chỉnh dé tính đến bat kỳ dữ liệu mới nào vì tat cả dữ liệu đào tạo được

lưu trữ vào bộ nhớ.

Ít siêu tham số: KNN chỉ yêu cầu giá trị K và số liệu khoảng cách

Nhược điểm:

Không mở rộng tốt: Vì KNN là một thuật toán lười (lazy algorithm) nên nó

chiếm nhiều bộ nhớ và lưu trữ dit liệu hơn so với các bộ phân loại khác Điều

này có thé tốn kém từ góc độ thời gian và tiền bạc Nhiều bộ nhớ và dunglượng lưu trữ hơn làm tăng chi phí kinh doanh và nhiều dữ liệu hơn có thé matnhiều thời gian hơn để tính toán

Lời nguyền về số chiều: Thuật toán KNN có xu hướng trở thành nạn nhân củalời nguyền về số chiều, có nghĩa là nó không hoạt động tốt với đầu vào dữ liệunhiều chiều Điều này đôi khi còn được gọi là hiện tượng đạt đỉnh (PDE, 340

MB) (liên kết nằm bên ngoài ibm.com), trong đó sau khi thuật toán đạt được

số lượng tính năng tối ưu, các tính năng bồ sung sẽ làm tăng số lượng lỗi phân

loại, đặc biệt là khi mẫu kích thước nhỏ hơn.

Dễ bị trang bị quá mức: Do “lời nguyền về kích thước”, KNN cũng dễ bị trang

bị quá mức Mặc dù các kỹ thuật chọn tính năng và giảm kích thước được tận

dụng để ngăn điều này xảy ra, nhưng giá trị của k cũng có thê ảnh hưởng đếnhành vi của mô hình Các giá trị thấp hon của k có thé khớp dit liệu quá mức,trong khi các giá tri cao hơn của k có xu hướng “làm trơn” các giá tri dự đoán

vi nó tính trung bình các giá tri trên một khu vực hoặc vùng lân cận lớn hơn.Tuy nhiên, nếu giá trị của k quá cao, thì nó có thê không phù hợp với dữ liệu

2.3 Hệ điều hành Android

Android là hệ điều hành di động dựa trên phiên bản sửa đổi của nhân Linux và phần

mềm mã nguồn mở khác, được thiết kế chủ yếu cho các thiết bị đi động màn hìnhcảm ứng như điện thoại thông minh và máy tính bảng Android được phát triển bởimột nhóm các nhà phát triển được gọi là Open Handset Alliance (OHA), mặc dù

13

Trang 22

phiên bản sử dụng rộng rãi nhất chủ yếu do Google phát triển Nó được công bố vàotháng 11 năm 2007, với thiết bị Android thương mại đầu tiền, HTC Dream, được ra

mắt vào tháng 9 năm 2008 Cùng với các ứng dụng cốt lõi của nó như Google Chrome,

nên tang phân phối kỹ thuật số Google Play và nền tảng phát triển dịch vụ của Google

(Google Play Service) có liên quan Android cũng hỗ trợ cài đặt và sử dụng các ứng

dụng từ bên thứ ba thông qua việc phát triển ứng dụng Android và cung cấp GooglePlay làm của hàng ứng dụng chính Hệ điều hành Android hiện đang là một trong số

những hệ điều hành phố biến và được sử dụng rộng rãi nhất.

Hệ điều hành Android là một ngăn xếp phần mềm (stack of software components)

Native Audio Manager - LIBC - SSL - Freetype - Media Core Libraries

Libraries OpenGL/ES - SQLite - Webkit - Surface Manager Android Runtime (ART)

HAL

Linux Drivers (Audio - Binder (IPC) - Bluetooth Secure Trusted Execution

Camera Display - Keypad Shared Memory SnD

Kernel USB Wi-fi) - Power Management Element

Hình 9: Kiến trúc AndroidKernel: là lớp dưới cùng, nó cung cấp một mức độ trừu tượng giữa phần cứng thiết

bị và nó chứa tat cả các trình điều khiển (drivers) phan cứng thiết yếu như máy ảnh,

bàn phím, màn hình, v.v Ngoài ra, nó cũng lý tất cả những thứ mà Linux thực sự làm

tốt như mạng và một loạt các trình điều khiến thiết bị Ví dụ: Android Run-time

(ART) dựa trên nhân Linux cho các chức năng cơ bản như phân luồng và quản lý bộnhớ cấp thấp

14

Trang 23

Hardware abstraction layer (HAL): phía trên của lớp Linux kernel là lớp AndroidHardware Abstraction Đây là giao điện dành cho các nhà cung cấp phan cứng triển

khai cho phép ứng dụng/framework giao tiếp với trình điều khiến thiết bị đành riêngcho phần cứng Ứng dụng Android sử dụng API HAL để nhận dich vụ từ thiết bị phầncung.

Native libraries: Nhiều thành phan và dich vụ cốt lõi của hệ thống Android, chănghạn như ART và HAL, được xây dựng từ mã sốc yêu cầu các thư viện gốc được viếtbằng C/C++ Nền tang Android cung cấp các API framework Java dé hiển thị chứcnăng của một số thư viện gốc này cho các ứng dụng Ví dụ chúng ta có thể truy cập

OpenGL ES thông qua API Java OpenGL của Android framework dé thêm hỗ trợ

cho việc vẽ và thao tác đồ hoa 2D và 3D trong ứng dụng

Android Runtime (ART): Đối với các thiết bị Android phiên bản 5.0 (API level 21)

trở lên, mỗi ứng dụng chạy theo quy trình riêng và với phiên bản Android Runtime

(ART) riêng ART được viết dé chạy nhiều máy ảo trên các thiết bị có bộ nhớ thấpbang cách thực thi các tệp định dang Dalvik Executable (DEX), một định dang ma

byte được thiết kế dành riêng cho Android được tối ưu hóa dé sử dung bộ nhớ tối

thiêu Các công cụ xây dựng, chang hạn như 8, biên dịch các nguồn Java thành mã

byte DEX, có thé chạy trên nên tảng Android Một số tính năng chính của ART baogồm: biên soạn trước thời hạn (AOT) và đúng lúc (JIT); tối ưu hóa thu đọn rác (GC);

trên Android 9 (API level 28) trở lên, chuyển đổi tệp DEX của gói ứng dụng thành

mã máy nhỏ gọn hơn; hỗ trợ gỡ lỗi tốt hơn Trước phiên bản Android 5.0 (API level21), Dalvik là Android Runtime Nếu ứng dụng chạy tốt trên ART, thì ứng dụng đócũng có thê hoạt động trên Dalvik, nhưng điều ngược lại thì không

Framework: Là toàn bộ tính năng của hệ điều hành Android có sẵn có thể được sửdụng thông qua các API được viết bằng ngôn ngữ Java Các API này tạo thành cáckhối xây dựng cần dé xây dựng ứng dụng Android bang cách đơn giản hóa việc sửdụng lại các thành phan và dịch vụ hệ thống bao gồm view system, resource manager,

notification manager, activity manager, content providers.

15

Trang 24

System Apps: Android đi kèm với một bộ ứng dụng cốt lõi dành cho email, SMS,

lịch, duyệt Internet, danh bạ,

2.4 Các đặc trưng của một tệp tin APK

Định dạng tệp APK (Android Package) được hệ điều hành Android sử dụng dé phân

phối và cài đặt ứng dụng, trò chơi dành cho thiết bị đi động và phần mềm trung gian

Đó là một định dạng tệp có thé được tạo từ mã nguồn được viết băng Java hoặc Kotlin

Các tệp APK tương tự như các gói phần mềm khác như APPX trong MicrosoftWindows và về cơ bản là các kho lưu trữ ZIP chứa các tệp và thư mục bao gồm thư

mục META-INE, tệp MANIFEST cũng như các tệp tài nguyên và mã tạo nên ứngdụng Định dạng tệp APK chủ yếu được sử dụng trên các hệ điều hành dựa trên

Android.

dx

classes.dex aap£

Byte code E L1

Other class files AndroidManifest.xml

Resources

Hình 10: Biên dich mã nguồn Java ra APK

16

Trang 25

Hình 11: Các thành phan trong Android Package

Các ứng dụng Android được đóng gói trong một tệp loại APK (Android PacKage) bao gôm các thư mục và tệp tin như sau:

- META-INF: đây là thư mục chứa các thông tin xác minh Day là những gi

được tao ra khi “signing” một ứng dụng.

+ MANIFEST.ME: Chita SHA-256-Digest của tat cả các tệp trong APK.

Được sử dụng đề xác minh tính hợp lệ của từng tệp trong ZIP Đảm bảorằng việc thay đổi tệp này hoặc bat kỳ tệp nào khác trong vùng chứaZIP sẽ thu hồi chữ ký và làm cho chữ ký không hợp lệ

+ CERT.SE: Là một danh sách chứa tất cả các hàm băm SHAI của tất

cả các file.

+ CERT.RSA: Chứa nội dung đã signing của CERT.RF và được sử dụng

dé xác minh tính toàn ven của ứng dụng bang khóa chung

- libs: Chứa các thư viện đã được biên dịch va được sử dụng bởi ứng dụng

Android Cac thư viện này thường là các tệp so (shared object) và chứa mãmáy Cấu trúc thư mục lib có thể chia thành các thư mục con tương ứng với

17

Trang 26

với kiến trúc và phiên bản hệ điều hành Android mà thư viện hướng đến Ví

dụ lib/arm64-v8a cho kién tric ARM64, lib/x86 cho kién trtic x86

res: Thư mục chứa tat cả tai nguyên không được biên dịch thành resource.arsc.Tất cả các tài nguyên XML được chuyên đổi thành XML nhị phân và tat ca

các tệp png được tôi ưu hóa dé tiết kiệm dung lượng và cải thiện hiệu suất thờigian chạy Thư mục res được tô chức theo cấu trúc gồm các thư mục con để

phân chia và quản lý tài nguyên theo từng loại:res/drawable chứa các tệp tin hình ảnh png, Jpeg được sử dụng trong ứng dụng; res/layout chứa các tệp tin

XML mô tả giao diện người dùng, res/values chứa các tệp tin XML chứa cáctài nguyên như chuỗi văn bản, màu sắc, kích thước, kiểu chữ; res/mipmap chứa

các app icon được sử dụng cho các kích thước và mật độ pixel khác nhau;res/raw chứa các tệp nguồn không được xử lý tự động như âm thanh, video

assets: chứa các tài nguyên không được biên dịch của ứng dụng Android Tai

nguyên trong thư mục này được sao chép một cách không thay đổi vào tệp

APK và không được tối ưu hóa như các tài nguyên trong thư mục res.

AndroidManifest.xml: là tệp chứa tên gói, phiên bản và siêu dữ liệu khác về

ứng dụng.

classes.dex: là tệp chứa các Java byte code đã biên dịch ở định dạng tệp dex

được thực thi bởi Android Runtime (hoặc bởi máy ảo Dalvik).

resources.arsc: Tệp này chứa tài nguyên đã được biên dịch và tối ưu hóa trong

ứng dụng.

18

Trang 27

YÝ App example

Trang 28

Hình 13: So sánh kiến trúc Dalvik và ART

Các ứng dụng Android gồm các thành phần ứng dụng là các khối xây dựng thiết yếu

và mỗi thành phần trong đó sẽ đóng một vai trò quan trọng trong việc xây dựng vàphát triển ứng dụng Android Mỗi ứng dụng Android sẽ bao gồm 4 thành phần:

Activities, Services, Content Providers và Broadcast receivers Trong đó, Activities

là thành phan giao diện người dùng chính trong một ứng dung Android, mỗi Activitiesđại diện cho một man hình độc lập trong ứng dung, Activities điều khiển quá trìnhhiện thị giao diện và xử lý sự kiện từ người dùng Khác với Activities thành phần

Services không cung cấp giao diện người dùng, thay vào đó nó là một thành phầnchạy trong nên đề thực hiện các hoạt động chạy dài hoặc dé thực hiện công việc chocác quy trình từ xa (chang han như một dich vụ có thé phát nhạc ở chế độ nền trong

20

Trang 29

khi người dùng đang ở một ứng dụng khác) Content Providers là thành phần cho

phép ứng dung chia sẻ và truy cập dữ liệu với nhau, thông qua Content Providers, cácứng dụng khác có thể truy vấn hoặc sửa đôi dit liệu nếu có các quyền thích hợp (chang

hạn như hệ thống Android cung cấp trình cung cấp nội dung quản lý thông tin liên hệcủa người dùng Bat kỳ ứng dụng nào có quyền thích hợp đều có thể truy van, đọcghi thông tin) Broadcast Receivers là một thành phan cho phép hệ thống phân phối

các sự kiện đến ứng dụng bên ngoài luồng người dùng thông thường dé ứng dụng cóthé phản hồi các thông báo truyền phát trên toàn hệ thống

2.4.1 Dac trưng permission

Mỗi một ứng dụng Android đều có một tệp kê khai AndroidManifest.xml dùng dé

mô tả các thông tin cần thiết về ứng dung cho các công cụ xây dựng Android, hệđiều hành Android và Google Play Trong tệp này sẽ có một phần khai báo cácquyền mà các ứng dụng can dé truy cập vào dit liệu nhạy cảm của người dùng changhạn như danh bạ, SMS hoặc một số tính năng hệ thống nhất định như máy ảnh và

truy cập Internet.

Trong Android, quyền (Permissions) là co chế dé ứng dụng yêu cau và kiểm soátquyền truy cập vào các tài nguyên và chức năng thiết bị Khi người dùng cài đặtmột ứng dụng từ Google Play Store hoặc từ nguồn không đáng tin cậy, hệ điềuhành Android sẽ hiền thị danh sách các quyền mà ứng dụng yêu cầu truy cập Người

dùng có quyên chap nhận hoặc từ chôi các quyên nay.

Các quyền do ứng dụng yêu cầu được cấp tại thời điểm cài đặt ứng dụng Trình cài

đặt (Package Installer) trước tiên sẽ truy xuất các quyền từ AndroidManifest.xml

và kiểm tra các chữ ký khai báo các quyền đó, nếu cần thiết, người dùng sẽ đượcnhắc cho phép hoặc từ chối tat cả các quyền mà gói cài đặt yêu cầu Các quyềntrong Android có thể được chia thành hai loại chính:

- Quyền hệ thống (System Permissions): đây là các quyền mà ứng dụng cần yêu

cầu trong tệp Manifest để truy cập các tài nguyên hệ thống như máy ảnh,microphone, định vị GPS, danh ba, Các quyền này được khai báo trong tệp

21

Trang 30

Manifest của ứng dụng và người dùng cần phải cấp quyền cho ứng dụng khi

cài đặt.

- _ Quyền của ứng dụng (App Permissions): đây là các quyền mà ứng dụng yêu

cầu từ người dùng trong quá trình sử dụng ứng dụng Ví dụ, ứng dụng nhắn

tin yêu cầu quyền gửi tin nhắn, ứng dụng trò chơi yêu cầu quyền truy cậpInternet Những quyền này sẽ được ứng dụng yêu cầu khi cần thiết và ngườidùng có thé từ chối hoặc chấp nhận chúng trong quá trình sử dụng

<manifest >

2/mand feats

Hinh 14: Vi du vé Permission trong AndroidManifest.xml

2.4.2 Đặc trưng API call

Hình 15: API calls trong Android

Nền tang Android cung cấp framework API mà các ứng dụng có thé sử dung détương tác với hệ thống Android cơ bản Nền tảng Android cung cấp frameworkAPI mà các ứng dụng có thé sử dung dé tương tác với hệ thống Android cơ ban.Framework API bao gồm: một tập các packages và classes (ví dụ packageandroid.bluetooth và classes BluetoothHeadset của nó), một tập hợp các phần tử và

thuộc tính XML được khai báo trong tệp Manifest, một tập hợp các phần tử và

thuộc tính XML dé khai báo và truy cập tài nguyên, một tập hợp các intent và tậpcác quyền mà ứng dụng Android có thể yêu cầu (ví du READ_EXTERNAL_ST-

ORAGE), cũng như các quyền thực thi có trong hệ thông

22

Trang 31

Các ứng dụng và dịch hệ thống của Android đều được triển khai bằng Java, chúng

truy cập vào các thư viện thấp hơn thông qua API framework Khung ứng dụngAndroid (Android application framework) triển khai và cung cấp các Android APInày, chúng chịu trách nhiệm về các dịch vụ hệ thống cốt lõi (ví dụ như LocationManager) Hình bên dưới cho thấy sự tương tác giữa một tiến trình ứng dụng vàtiến trình hệ thống (system_server) Ví dụ nếu một ứng dụng nào đó muốn sử dụng

dịch vụ GPS Hoạt động trong ứng dụng đó trước tiên sẽ gọi API được triển khai

trong framework.jar Trong trường hợp này, Context.getSystemService

(ContextLOCATION SERVICE) được gọi để truy xuất liên kết tớiandroid.location.LocationManager dé kiểm soát cập nhật vi trí Sau đó, LocationManager nhận tham chiếu đến Service Manager thông qua binder (một cơ chế giaotiếp liên quy trình dành riêng cho Android và hệ thống gọi phương thức từ xa) Sau

đó, Location Manager sẽ tra cứu “location” service trong Service Manager, cuối

cùng Service Manager nhận được các tham chiêu của Location Manager Service.

com example.app (/app/data/ExampleApp apk) syste server

Dalvk VM Dalvik VM

classes.dex - ( systeny framework/framework jar

(com example app.ExampleActivity )

system/framework/services.jar system framework/ framework jar

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[10] Dilmegani, C. (n.d.). research.aimultiple. Retrieved from What is MetaLearning? Techniques, Benefits &amp; Examples:https://research.aimultiple.com/meta-learning/ Link
[11] Feature selection with Random Forest. (nd.). Retrieved from https://www.yourdatateacher.com/2021/10/11/feature-selection-with-random-forest/ Link
[14] McAfee Mobile Threat Report. (n.d.). Retrieved fromhttps://www.mcafee.com/content/dam/global/infographics/McAfeeMobileThreatReport2021.pdf Link
[16] Paller, G. (n.d.). Dalvik opcodes. Retrieved fromhttp://pallergabor.uw.hu/androidblog/dalvik_opcodes.html Link
[17] Pandas. (n.d.). Retrieved fromhttps://pandas.pydata.org/docs/reference/index.html#api Link
[18] Recursive Feature Elimination (RFE) for Feature Selection in Python. (n.d.).Retrieved from https://machinelearnngmastery.com/rfe-feature-selection-in-python/ Link
[19] scikit-learn. (n.d.). Retrieved from https://scikit-learn.org/stable/ Link
[21] Su, X., Shi, W., Qu, X. et al. (2020). DroidDeep: using Deep Belief Network to characterize and detect android malware. Soft Comput 24, 6017-6030.doi:https://doi.org/10.1007/s0O0500-019-04589-w Link
[12] Feurer, Matthias and Klein, Aaron and Eggensperger, Katharina and Springenberg, Jost and Blum, Manuel and Hutter, Frank. (2015). Efficient and Robust Automated Machine Learning Khác
[20] Sklearn feature selection RFE. (nd.). Retrieved from hftfps:/⁄sciki- learn.org/stable/modules/generated/sklearn.feature_selection.RFE. html Khác
[23] Ton Ton Huang, Hung-Yu Kao. (2017). R2-D2: ColoR-inspired Convolutional NeuRal Network (CNN)-based AndroiD Malware Detections. IEEE Big Data 2018. doi:10.1109/BigData.2018.8622324 Khác
w