Nội dung đề tài:Mục tiêu nghiên cứu: + Tìm hiểu về trí tuệ nhân tạo AI — Artificial Intelligence và ứng dụng của AI hoặc các module liên quan vào các hệ thống phát hiện mã độc Android +
Trang 1ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG
TRAN HOANG KHANG - 19521671 NGUYEN DOAN XUAN BÌNH - 19521265
KHOA LUAN TOT NGHIEP
NHAN DIEN MA DOC ANDROID DUA TREN XU LY
VAN BAN TEXT-BASED ANDROID MALWARE CLASSIFICATION
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
TS LE KIM HUNG ThS THÁI HUY TAN
Trang 2Đặc biệt, chúng em xin gửi lời cảm ơn chân thành nhất đến giảng viên, TS Lê Kim Hùng Nhờ
những kinh nghiệm, bài học quý báu được chia sẻ từ thay, thầy đã luôn quan tâm và giúp đỡ chúng em giải quyết những vấn đề phát sinh, khó khăn trong quá trình thực hiện Nhờ có thầy, chúng em đã có cơ
hội hoàn thành tốt khóa luận tốt nghiệp này.
Tiếp theo, chúng 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 - ĐHQG HCM, giúp chúng em có thêm nguồn năng lượng đề đi đến được như ngày hôm nay.
Cuối cùng, nhóm chú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ường
Đại 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ĐẠI HỌC QUOC GIA TP HO CHÍ MINH CONG HÒA XÃ HỘI CHỦ NGHĨA VIET NAM
TRƯỜNG ĐẠI HỌC a ra - Ũ
CÔNG NGHỆ THÔNG TIN _ Độc Lập - Tự Do - Hạnh Phúc
ĐÈ CƯƠNG CHI TIẾT
TÊN ĐÈ TÀI:
NHẬN DIỆN MÃ ĐỘC ANDROID DỰA TRÊN XỬ LÝ VĂN BẢN
TEXT-BASED ANDROID MALWARE DETECTION
Cán bộ hướng dẫn: TS Lê Kim Hùng, ThS Thái Huy Tân
Thời gian thực hiện: Từ ngày 09/09/2022 đến ngày 11/06/2023
Sinh viên thực hiện:
Tran Hoang Khang - 19521671
Nguyễn Doan Xuân Binh - 19521265
Trang 4Nội dung đề tài:
Mục tiêu nghiên cứu:
+ Tìm hiểu về trí tuệ nhân tạo (AI — Artificial Intelligence) và ứng dụng của AI hoặc các
module liên quan vào các hệ thống phát hiện mã độc Android
+ Tìm hiểu cách thức xây dựng Malware Android, cài đặt quyền, tạo các đường kết nối
không đáng tin cậy ra bên ngoài internet
+ Tìm hiểu các model AI/Machine Learning/Deep Learning phát hiện mã độc dựa trên xử
lý ngôn ngữ tự nhiên
+ Thử nghiệm và xây dựng hệ thống phát hiện mã độc Android, xác thực độ chính xác và
hiệu năng, thời gian phân tích.
Đối tượng nghiên cứu: Các model phục vụ việc phát hiện mã độc
Phạm vi nghiên cứu: Mã độc trên thiết bị Android.
Phương pháp thực hiện:
© Cơ sở lý thuyết:
+ Trích xuất thuộc tính, opcode, permission, của một file APK Rà soát và phân tích
đặc điểm của một file malware và một file benign.
+ Chạy thử các model dựa trên các dataset về nội dung của một file đã được trích xuất
dé thực hiện hành vi dự đoán.
e Xây dựng tập dữ liệu thuộc tinh của các file APK
+ Tìm hiểu các công cụ trích xuất phổ biến các luồng (bao gồm phân tích động và phân
tích tĩnh) để xây dựng dataset
+ Thu thập các file thô (raw) được trích xuất bao gồm thông tin thuộc tính được tinh lọc
chính xác nhất
e Xây dựng hệ thống phát hiện mã độc:
+ Tìm hiểu và cài đặt môi trường (Anaconda, Python, Tensorflow, )
+ Tiến hành huấn luyện cho tập dữ liệu, tìm ra mô hình tốt nhất có thê phát hiện các dấu
hiệu của một mã độc.
Trang 5+ Áp dụng mô hình huấn luyện đã tìm được đề xây dựng hệ thống phát hiện mã độc.
Kết quả mong đợi:
+ Báo cáo tổng hợp về hệ thống áp dụng trí tuệ nhân tạo trong việc phát hiện mã độc
Android.
+ Bộ dữ liệu được thu thập riêng cho hệ thống, hỗ trợ các nghiên cứu sau này.
+ Xây dựng và thử nghiệm hệ thống website phát hiện mã độc Khi có đấu hiệu malware,
trả kết quả tương ứng về cho người dùng đầu cuối.
Công nghệ liên quan đến đề tài:
+ Sử dụng AndroPy Tool để trích xuất thuộc tính file APK.
+ Sử dụng các framework Tensorflow, Scikit-Learn, để huấn luyện dữ liệu.
Tinh mới dé tài: Áp dụng và thử nghiệm các model xử lý ngôn ngữ tự nhiên để ứng dụng vào mã độc Quan sát khả năng model có thé hiéu được các trường thuộc tinh dữ liệu dé
mang lại kết quả tốt trong việc phát hiện mã độc Xây dựng một tập dataset riêng cho việc huấn luyện mô hình và phục vụ việc nghiên cứu trong các lĩnh vực liên quan
Kế hoạch thực hiện:
Thời gian Công việc Phân công
Cài đặt môi trường Anaconda.
Tìm hiểu python, pandas, Trần Hoàng Khang 09/09/2022 - 09/10/2022 | framework scikit-learn và công 19521671
-nghệ trí tuệ nhân tạo.
Tìm hiểu các tool trích xuất Nguyễn Đoàn Xuân Bình
thuộc tính phổ biến hiện nay - 19521265
Xây dựng và chạy thử các model 10/10/2022 - 10/12/2022 | phát hiện mã độc malware dựa
trên NLP.
Trần Hoàng Khang —
19521671
Trang 602/03/2023 30/04/2023 | trúc file, phân biêu đô đánh giá
-kết quả và các trường thông tin Nguyễn Đoàn Xuân Bình
- 19521265 cần thiết
Trang 7Xác nhận của CBHD
TS Lê Kim Hùng
TP HCM, ngày tháng năm 2023
Sinh viên 1 Sinh viên 2
Trần Hoàng Khang Nguyễn Doan Xuân Bình
Trang 8MỤC LỤC
KHOA MẠNG MAY TÍNH VÀ TRUYEN THÔNG -c-cc¿
NHẬN XÉT KHÓA LUẬN TOT NGHIỆP c¿¿cc¿ccccccc2222222Eccrrrrer NHẬN XÉT KHÓA LUẬN TOT NGHIỆP :¿¿¿:¿ccccc22222222222EErrrer
DE CUONG CHI TIẾT
MUCLUC 6
DANH MỤC HINH VẼ 2-©2222E122E122271122711221122711271112111.111 2.11 re DANH MỤC BẢNG -22222- 22222 222211222211112221111212111122211112101112.111 xe DANH MỤC TỪ VIET TẮTT -22222z22222222222++22222SSS+2t22EEEEEvvrrrrrrrrrrrrrrrrree
CHƯƠNG 1: MỞ ĐẦU -2 22222222222222222221222222222131112.2222111112 c2 re 1.1 Tên đề tài £” «- Ẻ 1.2 Đặt vấn đề -2222222cccc2222221111112220221 t1 xe.
1.3 Mục tiêu của đề tài
1.4 Đối tượng nghiên cứu -222++22E+++t222222+2222112222231112221112222112 222 Xe
1.5 Phạm vi nghiên CỨU - 5: St té vn 2121221011211 re.
CHƯƠNG 2: CƠ SỞ LÝ THUYÉT :++++c 222 tEtttrrreeerrrrrrrrrrriee
2.1 Tổng quan về hệ điều hành Android và tính thực tiễn hiện nay
Trang 92.3 Môi trường Tensorflow -¿- - + St HH1 0101 11g iê 27 2.4.AndroPy — Công cụ trích xuất thuộc tính APK ¿zz52cs+ 34 2.4.1.Giới thiệu
2.4.2.Cài đặt HH HH re 34
2.5.Cac model xử lý ngôn ngữ trong Deep Learning được sử dung
2.5.1.NNLM (Neural-Net Language Models - Tensorflow Hub) 35 2.5.2.Simple CNN-GRU
2.5.3.Standard CNN (Convolutional Neural Network) c-c++<+ 39
4.1.1 Feature ExfraCfiOH 6s cà tu giờ 46 4.1.2 Tiền xử lý đữ liệu -22¿¿222+2+t222212222211112222112222111EEE1.ecrer 48 4.1.3 Mô hình Deep Learning - ¿5+ St+tStettrkertrrererrrerrrrrrree 48
4.2.Feature ExtraCfÏOn :- St nề E1 re 49 4.3.Tiền xử lý dữ liệu (Preprocessing) sscsssssssesssssssesessssesesssseessssssesesssseeesessees 52 L0 J0 53 4.4.1 Embedding ÌaY€T - St tSv #21 ng it 55 4.4.2 Các layer cÒn lại «55+ tt HH 0g tên 57 4.5.Xây dung website phát hiện mã độc ¿-¿- - + 5+ S+S++x+xEEvEerrkekereree 58
Trang 104.5.1 Thông tin host và môi trường -¿- - - + St sk+x‡xEkekkrrkekerrrerkrke s9 4.5.2 Frontend - + c+ tt kề 2212 21101210110 101.21 1n 59 SN: 9 59
"nh? 52“ 59
CHƯƠNG 5: THỰC NGHIEM VÀ DANH GIA ccssssssscesssssssesssssenssssseeeeeeenens 63
5.1.Môi trường thực nghiệm ¿+ - + S51 3 k2 E212 121gr 63 5.2.Tiêu chí và đơn vi đánh giá - - - + 55+ tk 121 ưu 63
5.3.Phan tích dataset ch ng re 64 5.4.Quá trình huấn luyện mô hình
5.5.Bảng tổng hợp kết quả ¿2222222222222 c22221 2222111212112 222111 E221 re 68
5.5.1 Độ chính xác của dự đoán - 5c StStstetrterrrrrrktrrrrrrkrkerrrree 68
5.5.2 Thời gian huấn luyện mô hình 22+22++22E+2Z++222++z+zrxscez 69
5.5.3 Kích thước lưu trữ mô hình ¿+ - 5 25+ ++2+2++£+£srezxzxsrrrrx 70
CHƯƠNG 6: TONG KET VA HƯỚNG PHAT TRIÊN -cccccc: 71 6.1 Kết quả đạt ẨƯỢC c2 St E1 121212111111 1 1 HH0 1 0001 ty 71
6.2 Thách thre - -xst+kE*t#kEEkEEEkE tt t1 T111 11121111 111111 1111 1111k prey 71 6.3 Hướng phát triển và công việc tương lai
Trang 11DANH MỤC HÌNH VE
Hình 1 Các thành phần của ứng dụng Andiroiid - c5 5s SE E2EE2EEEEEEEEEEEEEE2112112111 11111 xe 15Hình 2 Cấu trúc của Native App - 5:25:25 2EE‡EE SE 2212211271 2212211221211211112112111111 ke 18
Hình 3 Hình ảnh minh họa Facebook Web ÁDD - -s-cS St kh HT TH TH HH 19
Hình 4 Ưu điểm và nhược điểm của Hybrid ÁpD - 5-52 5e SE 2E EE12212112112111121.1 xe 20Hình 5 Dong ý cấp quyên cho veng dịụig - - 5c 5c SE E2 2 1E11E112211211211211.11.1.1.11 ae 22Hình 6 Cấp quyên thông qua cài đặt - 5s 1E SE E11111211211 1111112111111 nye 23
Hình 7 Vi dụ về bảng ánh xạ Java byte code Và OpCOde - +52 5£2S£+E‡EE‡EEEEEEEEEE2E12121211111221 1e, 25
Hình 6 Rest API trong ứng dụng HđÏTOldÏ Sàn HH ch 27
Hình 9 Một số tinh năng của Tensor flow vesceccsscesscssssssessessesssessessessesssessessessessusssessessessussssssessessesasesseeseeses 29
Hình 10 Sw dụng pre-trained model với Keras cv TH HH Hi key 30 Hình 11 Hình anh minh họa tinh năng của NUIHDV ào nh hy 32 Hình 12 Hình anh minh họa tinh năng của P4HẲA E31 393% EEEEEEEEtetsrrssersseeeerre 33
Hình 13 Mô hình N-gram GAC ÍTWHE cv SE v11 111 vn HH HT kg 36
Hình 14 Mô hình tong quan CNN-ŒRÑÙ - 2 -©5225+222+222221222122112211221211221211211111.11.1 re 38
Hình 15 Cong xóa & cổng cập nhật trong IOdiel - - 2+ ©5225++2E+‡EE‡EE‡SEEEEEEEEEEEEEESEEEEEErkrsrkrrrsr 39Hình 16 Cấu trúc của CNNN ccccccs 2E E211 1t HH HH HH ae 4IHình 17 Cau trúc hoạt động BiL/STÌM 5+ St S2 E2 E9 EEEE211211211E112112112112111121121111.111.1 1e 42
Hình 18 M6 hình tong qHẠH 5c 5c St 5c St EềEỀEEE2121211E1121121121121111 T1 121.1212.111 rreg 46
Hình 19 Mô hình tích hợp phân tích file ¿4Ï , - - c cv 11 1111111111111 11t tk kt 47
Hình 20 Tổng quan mô hình triển kÌhai - - s55 SE EÉEEEEEE 2121121711111 1.1.1.1 ee 54
Hình 21 Cac lop trong không gian mô hình embedding - ác càng nh nếp 54
Hình 22 Mô hình triển khai Web wecccescccsseessssssseesssssssssesseesssseseeesssuieesessssniseesssnuesssessnnneseessnnneeeesen 59Hình 23 Luong hoạt động giữa FE và BE ocecceccesccsscesessessesssessessesssssessessessesssessessessessssssessessessesasessesseeses 60
Hình 24 Giao diện chính của trang WU€P - ác tt tk v11 1111 T11 T1 HH TH HH nh 60
Hình 25 Theo dõi log khi đang trích xuất thuộc tÍnhh - - +5 St+Se‡E‡EE‡EEEEEEEEEE2EEEEEEEEEEEErrrkei 61Hình 26 Đưa ra quyết định kết quả cuối (Benign) cccccccesscsscessessessesssessessessssssessessesssssessessessesssessessessesees 62Hình 27 Đưa ra quyết định kết quả cuối (MaÌWAF'€) - 5-5-5 EE2EE2EEEEEEEEEEEEEEEEEEEE2111111111E11 1e, 62Hình 28 Kết quả accuracy và loss của train và validation c.ccccscccseessesssesssesssessesssesssessisssesssessssssessvesssees ó6
Hình 29 Biểu đồ accuracy và loss của train và validation (SimpleCNN-GRU) cc©cz+csscca 67Hình 30 Biểu đồ accuracy và loss của train và validation (Standard CNN) -e+ccceerxesresred 67
Trang 12Hình 31 Biéu đồ accuracy và loss của tập train và validation (BiLSTM) -. :©-2©5z5c5z5 68
DANH MỤC BANG
Bang 1 Tat cả thông tin thuộc tính một file JSON lu trữ 525 SềEt E2 kEEEEEEEEEEEEEEEEtrtret 52
Bảng 2 Biểu đô mat mát của tập train va validation (NNLM) woesceccsccscescescssseseeseesessessessessesesseseeseeseeees 63Bang 3 Tong kết đánh giá kết quả giữa các MOE ecseecescsscesssseseeseesessessessessessesssssssessesssssesseseseesesseeees 69Bang 4 Thời gian huấn luyện tập train giữa các MOdEL ©2¿©2s+2c++2++cxcSExtSEeEEsrxsrxrrxeerseee 69
Bang 5 Thời gian huấn luyện tập train giữa các MOE - -©5s+cs+ct‡cE‡‡E2E2EEEEEEEEEEEEEerkrrrrrrree 70
DANH MỤC TU VIET TAT
TU NOI DUNG DIEN GIAI
ML Machine Learning Hoc may
DL Deep Learning Hoc sau
FE Front-end Xử lý luồng cho giao diện user
BE Back-end Xử ly logic phía server
DB Database Co sở dir liệu
AI Artificial Intelligence Tri tué nhan tao
FPR False Positive Rate Tỉ lệ dương tính sai
FNR False Negative Rate Ti lệ âm tính sai
NNLM | Neural Network Language Model | Mô hình mạng lưới noron ngôn ngữ
Trang 13Android đã rất phổ biến cho smartphone và các dòng tablet ké từ
năm 2012 Vào năm 2019, khoảng 86,6% điện thoại thông minh
được bán trên toàn cầu dựa trên Android Tính đến cuối tháng 4
năm 2020, đã có hơn 2,8 triệu ứng dụng trên Google Play, đây là cửa hàng chính thức dành cho các ứng dụng Android [1].
Sự phát triển trong lĩnh vực này cũng đã dẫn đến sự gia tăngnhanh chóng của phần mềm độc hại Android trong những năm
gần đây Do nhiều yếu tô khác nhau, chang hạn như chế độ sinhthái mở của ứng dụng Android, quản lý quyền chỉ tiết thô và khả
năng gọi mã của bên thứ ba, nhiều bề mặt tan công bảo mật đãxuất hiện, đe dọa nghiêm trọng đến tính toàn vẹn của ứng dụngAndroid Thống kê cho thấy chỉ riêng trong năm 2016, hơn 3,25triệu ứng dụng Android bị nhiễm phần mềm độc hại đã được phát
hiện, điều đó có nghĩa là cứ khoảng 10 giây lại có một ứng dụng
phần mềm độc hại Android mới được tìm thấy [1]
Các mã độc android đã biến hóa ngày càng tỉnh vi và phức tạp,
trốn tránh được các hệ thống đánh giá và phát hiện mã độc, khiếncác kiến trúc đó trở nên lỗi thời Phần mềm độc hại Android cũngphát triển thịnh vượng bằng cách tận dụng các ứng dụng Android
đang phát triển với hơn 10 lần sự gia tăng số lượng phần mềmđộc hại Android được phát hiện từ năm 2012 đến 2018 Hơn nữa,
lãi
Trang 14hơn 12 nghìn mẫu phần mềm độc hại Android mới đã gặp phải
hàng ngày trong năm 2018 Ngoài tốc độ nhanh sự phát triển củaphần mềm độc hại, các mẫu phần mềm độc hại Android mới
được phát hành tinh vi hơn các mẫu đã xuất hiện vải năm trước
về việc tron tránh sự phát hiện của phần mềm chống vi-rút thông
qua mã che giấu va mã hóa [1]
Trong báo cáo này, chúng tôi đề xuất áp dụng các mô hình Deep
Learning mới thiên hướng về xử lý ngôn ngữ tự nhiên phù hợp
để thực nghiệm trong việc phát hiện một phần mềm Android độc
hại Cách tiếp cận này tương đối khác so với xử lý file phố biến
như định CSV khi nói về cách xử lý văn bản và cách mô hình
học nội dung file Mô hình được huấn luyện với hơn 10,000 mẫu
file APK, trích xuất số lượng lớn thuộc tính bao gồm cả tinh va
động phục vu cho việc giúp mô hình tiếp cận và hiểu cấu trúc
hành động của file mã độc Kết quả của chúng tôi cho thay mô
hình xử ly ngôn ngữ tự nhiên NNLM Net Neural Language
Model mang lại hiệu quả nổi bật với accuracy 99.02% và những
thông số đo lường khác cũng cho kết quả khả quan
Kết quả của luận án này được kỳ vọng sẽ cung cấp một cách tiếp
cận mới dé phát hiện phần mềm độc hại trên Android, mang lại
lợi thế về mặt tự động hóa và khả năng phát hiện các chủng phầnmềm độc hại mới và đang phát triển Phát hiện nay sẽ góp phan
nâng cao hiệu quả và độ chính xác tổng thé của các hệ thống phát
hiện phần mềm độc hại của Android, từ đó củng có tính bảo mật
và quyên riêng tư của người dùng thiết bị di động
12
Trang 151.4.
1.5.
Mục tiêu của dé tài
e Tìm hiểu về trí tuệ nhân tao (AI — Artificial
Intelligence) và ứng dụng của AI hoặc các module liên
quan vảo các hệ thống phát hiện mã độc Android
e = Tim hiểu cách thức xây dựng Malware Android, cài
đặt quyền, tạo các đường kết nối không đáng tin cậy ra
bên ngoài internet
e Tìm hiểu các model AL/Machine Learning/Deep
Learning phát hiện mã độc dựa trên xử lý ngôn ngữ tự
nhiên
e = Thử nghiệm và xây dựng hệ thống phát hiện mã độc
Android, xác thực độ chính xác và hiệu năng, thời gian
phân tích.Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
Khóa luận này hướng đến:
e Cac mô hình phục vụ việc phát hiện mã độc Android dựa trên
xử lý ngôn ngữ tự nhiên
e Công cụ phân tích tinh và động, trích xuất đầy đủ và tương đối
lớn sô lượng thuộc tính nhăm phục vụ cho việc phát hiện, phân loại
Phạm vi nghiên cứu
Nghiên cứu mã độc trên thiết bi Android thuộc các dong
SMS, Banking, Adware, Riskware và các ứng dung được
xem là bình thường, lành tính Phạm vi nghiên cứu sé
không bao gồm các nền tảng di động khác ngoài hệ điều
hành Android và các loại độc hại khác như phần mềm độc
hại trên máy tính như các file PE(Window) hay ELF(Linux).
13
Trang 16CHƯƠNG 2: CƠ SỞ LÝ THUYÉT
2.1 Tổng quan về hệ điều hành Android và tính thực tiễn hiện nay
2.1.1 Kiến trúc Android
Kiến trúc của hệ điều hành Android bao gồm nhiều thành phần khác nhau dé hỗ trợ
đa dạng nhu cầu của các thiết bị Android Phần mềm Android được xây dựng trên
nền tảng mã nguồn mở Linux kernel và cung cấp một bộ thư viện C/C++ thông qua
dịch vụ framework ứng dụng.
Trong số các thành phần của hệ điều hành Android, Linux Kernel chịu trách nhiệm
cung cấp các chức năng chính của hệ điều hành cho điện thoại thông minh Đồng
thời, Máy ảo Dalvik (DVM) là nền tảng để chạy các ứng dụng Android
Các thành phần chính của kiến trúc Android như sau:
Trang 17== EBec man
oe
-Hình 1 Các thành phan của ứng dung Android
Các ứng dụng
Ứng dụng là một thành phần quan trọng trong kiến trúc Android, đặt ở lớp trên
cùng Trên hệ thống Android, có các ứng dụng cài sẵn như nhà, danh bạ, máy ảnh,thư viện, v.v Ngoài ra, người dùng có thê tải xuống các ứng dụng từ cửa hàng ứng
dụng bên thứ ba như ứng dụng trò chuyện, trò chơi, v.v., và chúng sẽ chỉ được cải
đặt trên lớp này.
Nó chạy trong môi trường Android Runtime với sự trợ giúp của các lớp và dịch vụ
do khung ứng dụng cung cấp
Framework của ứng dụng
Khung ứng dụng trong hệ thống Android đóng vai trò quan trọng trong việc tạo ứng
dụng Nó cung cấp một số lớp quan trọng đề truy cập phần cứng và quản lý giao
diện người dùng cũng như tài nguyên của ứng dụng Tóm lại, khung ứng dụng cung
15
Trang 18cấp các dich vụ dé ta có thé tạo một lớp cụ thể và sử dụng lớp đó một cách thuận
tiện cho việc phát triển ứng dụng
Khung ứng dụng Android bao gồm các loại trình quản lý hoạt động, trình quản lý
thông báo, hệ thống giao diện người dùng, trình quản lý gói, và nhiều thành phần
khác Các thành phần này đóng vai trò quan trọng trong việc phát triển ứng dụng,
đáp ứng các yêu cầu cần thiết cho quá trình phát triển
Android Runtime
Môi trường Android Runtime (ART) là một phần quan trọng trong hệ thống Android
Nó bao gồm các thành phan như thư viện lõi và máy ảo Dalvik (DVM) Vai trò cơ
bản của ART là cung cấp nền tảng cho framework ứng dụng và tăng cường khả năngcủa ứng dụng thông qua sự hỗ trợ từ các thư viện cốt lõi
Máy ảo Dalvik (DVM) là một máy ảo dựa trên đăng ký, tương tự như Máy ảo Java
(JVM) Tuy nhiên, DVM được thiết kế và tối ưu hóa đặc biệt cho Android dé dambảo hiệu suất tốt khi chạy nhiều phiên bản trên các thiết bị khác nhau Nó dựa trênlớp nhân Linux dé quản lý luồng và bộ nhớ ở mức thấp Sử dụng các thư viện cốt lõi,chúng ta có thê phát triên ứng dụng Android bằng ngôn ngữ lập trình JAVA hoặc
Kotlin tiêu chuân.
Thư viện nên tảng
Thư viện Nền tảng Android bao gồm một loạt các thư viện lõi được viết bang C/C++
và các thu viện dựa trên Java như Phương tiện, Đồ họa, Trình quản lý bề mặt,
OpenGL, và nhiều thư viện khác Những thư viện này đóng vai trò quan trọng trong
việc hỗ trợ phát triển ứng dụng trên nền tảng Android
Thư viện phương tiện cung cấp hỗ trợ dé phát và ghi định dang âm thanh và video
Trinh quản lý bê mặt chịu trách nhiệm quản lý quyền truy cập vào hệ thống con hiên
thị.
SGL và OpenGL đều là giao điện chương trình ứng dụng (API) đa ngôn ngữ, đa nền
tảng được sử dụng cho đồ họa máy tính 2D và 3D
16
Trang 19SOLite cung cấp hỗ trợ cơ sở dữ liệu và FreeType cung cấp hỗ trợ phông chữ.
Web-Kit - Công cụ trình duyệt web mã nguồn mở này cung cấp tất cả các chức năng
để hiển thị nội dung trang web và đơn giản hóa việc tải trang
SSL (Lớp cổng bảo mật) là công nghệ bảo mật dé thiết lập liên kết được mã hóa giữa
máy chủ web và trình duyệt web.
Linux Kernel
Linux Kernel đóng vai trò trung tâm trong kiến trúc của Android Nó điều khiến vàquản lý các trình điều khiển quan trọng như trình điều khiển màn hình, trình điều
khiển máy ảnh, trình điều khiển Bluetooth, trình điều khiển âm thanh, trình điều khiển
bộ nhớ, và nhiều trình điều khiển khác, cần thiết cho hoạt động của hệ thống trong
quá trình chạy.
Nhân Linux sẽ cung cấp một lớp trừu tượng giữa phần cứng thiết bị và các thành phầnkhác của kiến trúc Android Nó chịu trách nhiệm quản lý bộ nhớ, năng lượng, thiết
bi, v.v.
Cac tính năng cua nhân Linux là:
e Bảo mật: Nhân Linux xử lý bao mật giữa ứng dung và hệ thống.
e Quản lý bộ nhớ: Nó xử lý hiệu quả việc quan lý bộ nhớ do đó cung cấp sự tự
do dé phát triển ứng dụng của chúng tôi
e_ Quản lý quy trình: Nó quản lý quy trình tốt, phân bồ tài nguyên cho các quy
trình bất cứ khi nào chúng cần
e Ngăn xếp mang: Nó xử lý hiệu quả giao tiếp mạng
e_ Mô hình trình điều khiển: Nó đảm bảo rằng ứng dụng hoạt động bình thường
trên thiết bị và nhà sản xuất phần cứng chịu trách nhiệm xây dựng trình điều
khiển của họ vào bản dựng Linux
17
Trang 20-của một Native App
Platform im pall
ag
Android Windows Specific C# UI Layer UI Layer
Logic
Business Logic
Runtime is
Shared Code Shared Code
Các ứng dụng Native có hiệu suất xử lý nhanh và độ tin cậy cao Chúng tuân thủ
nguyên tắc thiết kế riêng cho từng nền tảng, giúp đạt được giao diện sử dụng tốt hơn
so với ứng dụng Web và Hybrid Nhờ tích hợp mật thiết với hệ điều hành, các ứng
dụng Native có thể truy cập trực tiếp vào hầu hết các thành phần của thiết bị như
máy ảnh, cảm biến, bộ nhớ lưu trữ được hỗ trợ bởi phần cứng, và nhiều hơn nữa.
18
Trang 21Tuy nhiên, một nhược điểm rõ rệt của các ứng dụng Native là chúng chỉ hỗ trợ chocác nên tang cụ thé Nếu muốn phát triển một ứng dụng cho cả hai hệ điều hành
Android và 1OS, bạn buộc phải có hai mã nguồn độc lập cho mỗi nền tảng, hoặc sử
dụng các công cụ như Xamarin, dé chuyên đổi mã nguồn cơ ban sang mã nguồn
riêng biệt cho từng nền tảng
Web app
Ứng dụng Web là các trang web được thiết kế với giao diện giống như các ứng
dụng Native Chúng được xây dựng bằng HTML, CSS, và JavaScript và chạy trêntrình duyệt của thiết bị đi động Ví dụ, Facebook có các ứng dụng Native trên cả
Android và iOS, và ngoài ra, néu muốn sử dụng trên trình duyệt, người dùng có thé
truy cập vào m.facebook.com, đây là một ứng dung Web di động.
bed Discover
Q
BUSINESSES
Pinterest Sephora
* a AReon beta 3 Brendan AronoffKelly tan súchac 4
@ Amy Warrell & Andrea Mittelstaedt
ie
‘SEE ALL Missed Call
Trang 22Ứng dụng Web được thiết kế dé hoạt động trên nhiều hệ điều hành di động, giúp
giảm chi phí phát triển, bảo trì và nâng cấp Tuy nhiên, do đa nền tảng, ứng dụng
Web thường có hiệu suất chậm hơn so với các ứng dung Native
Hybrid app
Ứng dung Hybrid là sự kết hợp giữa các ưu điểm và nhược điểm của ứng dung Web
và Native Hybrid app có thé được cài đặt và chạy như các ứng dung Native thông
qua việc đưa lên kho ứng dụng, nhưng phan lớn các quá trình hoạt động của ứng dungdựa trên công nghệ web Một phần của ứng dụng sẽ chạy trên một trình duyệt nhúng
(gọi là webview), và các quá trình dựa trên công nghệ web sẽ thực thi trên webview
và hiên thị kêt quả trong cửa sô của ứng dụng.
ALWAYS UPDATED (®) (e) APP STORE PRESENCE
CROSS-PLATFORM (2)
SINGLE CODE BASE (@)
CAN WORK OFFLINE
COMMON INSTALL PROCESS
(e) ACCESS TO OPERATING SYSTEAM FEATURES
CAN'T CONTROL USER UPGRADES
BYPASS ECISYSTEM RULES (®)
UNFAMILIAR INSTALL PROCESS
REQUIRE INTERNET ACCESS (@)
NO/LIMITED ACCESS TO OPERATING (®)
SYSTEAM FEATURES
(@) NEED SPECIALIZED SKILLS PER PLATFORM
(e) LIMITED BY ECOSYSTEM RULES
Hình 4 Uu điển và nhược điểm của Hybrid App
Ung dung Hybrid sử dụng một lớp trừu tượng web-to-native dé truy cập các chứcnăng của thiết bị Tùy thuộc vào framework được sử dung, Hybrid app có thé đượcphát triển cho các nền tảng cụ thé, đồng thời vẫn giữ được mã nguồn cơ bản tương
Trang 23bảo mật và rủi ro đôi với người dùng Khi phân tích và kiêm tra một mã độc APK,
chúng ta cần xem xét các phần, thành phần và thuộc tính khác nhau của tệp đó
2.2.1 Permission (Quyền của ứng dụng)
Ứng dụng độc hại (hay còn gọi là phần mềm độc hai) nham muc tiéu cac thiét bi diđộng va vi phạm thông tin nhạy cảm va riêng tư được lưu trữ trên các thiết bi này
Điều này xảy ra do sự chênh lệch giữa quyền truy cập thông tin và quyền không liên
quan và dư thừa mà các ứng dụng không mong muôn có được.
Nền tảng Android cũng phụ thuộc vào các đặc điểm riêng của mình, bao gồm việc ápdụng chính sách mã nguồn mở, hỗ trợ các cửa hàng ứng dụng không chính thức và
có khả năng xác minh ứng dụng cao Do đó, nền tảng Android phải đương đầu với
nguy cơ xâm nhập và mối đe doa đáng lo ngại như vậy
Hệ thống cấp quyền permission của Android đang là một trong những van dé an ninh
quan trọng nhất, kề từ khi yêu cầu cấp quyền được thực hiện trong quá trình cài đặt
ứng dụng Sau khi cài đặt, ứng dụng có khả năng truy cập vào tất cả các quyền đãđược cấp mà không cần thêm sự xác nhận từ người dùng dé biết rõ những quyền cụthé mà ứng dụng được phép truy cập
Trong phiên bản Android 6.0 Marshmallow, ứng dụng không sẽ không tự động
được cấp bất kỳ quyền (permission) nào trong quá trình cài đặt Thay vào đó, ứng
21
Trang 24dụng sẽ yêu cầu người dùng cung cấp quyền tương ứng vào thời điểm chạy.
Trang 25Hơn nữa, người dùng có thể rút lại các quyền (permission) bất kỳ lúc nào thông quaphần Cài đặt của ứng dụng.
MPermission
Hình 6 Cấp quyên thông qua cài đặt
Có một số quyền (permission) sẽ được cấp tự động trong quá trình cài đặt và không
thé thu hồi, được gọi là Normal Permission (PROTECT PERMISSION), bao gồm:
ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS NETWORK STATE
ACCESS NOTIFICATION POLICY
ACCESS WIFI STATE
Trang 26Vai trò của opcodes trong việc phát hiện phần mềm độc hai nằm ở việc phân tích hành
vi của ứng dụng Các hệ thống phát hiện phần mềm độc hại thường sử dụng các kỹthuật phân tích tinh va động để xác định hành vi độc hại Trong phân tích tĩnh, hệ
thống có thể kiểm tra các chuỗi opcode trong mã nhị phân của ứng dụng dé phát hiệncác mẫu độc hại đáng ngờ hoặc đã biết Bằng cách phân tích các opcode, hệ thống có
thê xác định các hướng dẫn hoặc chuỗi hướng dẫn có khả năng gây hại mà phần mềm
độc hại thường sử dụng.
Ví dụ, một số opcode có thể liên quan đến hành động như truy cập dữ liệu nhạy camcủa người dùng, thực hiện giao tiếp mang trái phép hoặc cố gang kh exploit các lỗhồng bảo mật Khi hệ thống phát hiện phần mềm độc hai gặp các chuỗi hoặc mau
opcode như vậy, nó có thê đánh dấu ứng dụng là có khả năng độc hại hoặc đáng ngờ,
và kích hoạt các biện pháp phòng ngừa hoặc điều tra bổ sung
Tuy nhiên, cần nhớ rằng phân tích opcode chỉ là một trong số nhiều kỹ thuật được sử
dụng dé phát hiện phần mềm độc hại Các hệ thống phát hiện phần mềm độc hại hiệuquả kết hợp nhiều phương pháp như phân tích tĩnh, phân tích động, phân tích hành vi,
thuật toán máy học và các phương pháp khác dé phát hiện và giảm thiêu rủi ro liên
quan đên phân mêm độc hại.
24
Trang 27Opcode Opcode Mnemonic
1 aconst_nu11
2 (0x02) iconst_m1
3 (0x03) iconst_0
9 (0x09) lconst_0
Hinh 7 Vi du vé bang anh xa Java byte code va opcode
Phân tích opcode giúp xác định các instruction đáng ngờ va là một trường thông tin
quan trọng trong quá trình phân tích Đặc biệt, trong phân tích động, việc mã nguồn
bị "làm rối" (obfuscated) càng tăng thêm sự quan trọng của việc phân tích opcode
2.2.3 API call
API REST (Giao diện lập trình ứng dụng truyền trạng thái đại diện) là một kiểu kiếntrúc phần mềm định nghĩa các nguyên tắc dé xây dựng các dịch vụ web Nó được sửdụng rộng rãi để phát triển các dịch vụ web mở rộng và có khả năng tương tác quainternet API REST sử dụng giao thức HTTP dé giao tiếp giữa máy khách và máy chủ,
là lựa chọn phổ biến dé xây dựng các API trong các ứng dụng khác nhau, bao gồm cả
Android.
Trong môi trường phát triển Android, API REST cho phép các ứng dụng Android
tương tác với máy chủ hoặc dịch vụ từ xa dé truy xuất hoặc gửi dữ liệu Cac nhà phát
Trang 28triển Android có thể sử dụng các thư viện va framework khác nhau như Retrofit,OkHttp hoặc Volley dé triển khai chức năng API REST trong ứng dụng của ho.
Dưới đây là một số khía cạnh và khái niệm chính liên quan đến API REST trong
Android:
Tài nguyên: Trong API REST, tai nguyên đại diện cho các thực thể dữ liệu có thể đượctruy cập và thao tac Ví dụ: trong ứng dụng truyền thông xã hội, tài nguyên có thé bao
gồm người dùng, bài đăng, nhận xét, v.v
Phương thức HTTP: API REST định nghĩa một số phương thức HTTP (động từ) dé
thực hiện các hoạt động khác nhau trên các tài nguyên Các phương pháp thường được
sử dụng là:
GET: Truy xuất một tài nguyên hoặc một tập hợp các tài nguyên
POST: Tạo một tài nguyên mới.
PUT: Cập nhật tài nguyên hiện có.
XÓA: Xóa một tài nguyên
Điểm cuối: Điểm cuối là các URL cụ thé đại diện cho tài nguyên Mỗi điểm cuối tươngứng với một hoạt động hoặc hành động cụ thể trên tài nguyên Ví dụ: /users có thê đạidiện cho tập hợp người dùng và /users/{id} có thé đại điện cho một người dùng cụ théđược xác định bằng ID của họ
Yêu cầu và phản hồi: Khi tương tác với API REST, ứng dụng khách (ứng dụng
Android) sẽ gửi các yêu cầu HTTP đến máy chủ, chỉ định phương thức và điểm cuối
mong muốn, cùng với bất kỳ tham số hoặc dữ liệu bắt buộc nao Máy chủ xử lý yêu
cầu và gửi lại phản hồi HTTP chứa dữ liệu được yêu cầu hoặc thông tin về sự thànhcông hay thất bại của hoạt động
26
Trang 29REST clients REST server
DELETE
in XML/JSON
Hình 8 Rest API trong ứng dung Android
Trong quá trình phat trién ứng dung Android, nha phat triển có thé sử dung API REST
dé tich hop ứng dụng cua ho với các dich vu khác nhau như mạng xã hội, dich vucung cấp dữ liệu thời tiết, công thanh toán, và nhiều hơn nữa Bằng cách gửi các yêu
cầu HTTP đến các điểm cuối (endpoints) thích hợp và xử lý các phản hồi, ứng dụngAndroid có thê truy xuất dữ liệu từ máy chủ từ xa, gửi đữ liệu và tương tác với các
dịch vụ bên ngoài theo một cách có câu trúc và chuân hóa.
Việc kiểm tra và giám sát các cuộc gọi API (thông qua các công cụ phân tích như
Burp Suite, thường được sử dụng bởi những chuyên gia kiểm thử xâm nhập) đóng
vai trò quan trọng trong việc phân tích mã độc, đặc biệt là trong phân tích động Điềunày đặc biệt quan trọng vì trong một sé trường hợp, mã có thé được "làm rối" và tránh
được phân tích tĩnh.
2.3 Môi trường Tensorflow
27
Trang 30TensorFlow là một thư viện mã nguồn mở và nên tang phát triển phổ biến trong lĩnh
vực học máy và trí tuệ nhân tạo (AI) Nó được Google phát triển và cung cấp một bộ
công cụ va khung làm việc mạnh mẽ dé xây dựng và triên khai các mô hình học máy.
TensorFlow có điểm nổi bật là khả năng xây dựng mạng no-ron sâu (deep neuralnetworks) và mô hình học máy phức tạp Thư viện này sử dụng một cấu trúc đồ thịtính toán (computational graph) dé biêu diễn các phép tính và quan hệ giữa các lớp,nút và trọng số trong mô hình Điều này cho phép TensorFlow tận dụng tối đa khảnăng tính toán song song trên nhiều thiết bị phần cứng như CPU và GPU, góp phần
gia tăng hiệu suất trong quá trình huấn luyện và triển khai mô hình
TensorFlow không chỉ hỗ trợ việc xây dựng các mô hình học máy, mà còn cung cấp
các công cụ và thư viện hỗ trợ cho quá trình tiền xử lý dữ liệu, huấn luyện mô hình,
đánh giá và triển khai Nó cung cấp các API và giao diện cho nhiều ngôn ngữ lập
trình như Python, C++, Java, và JavaScript, giúp dễ dàng sử dụng và tích hợp
TensorFlow vào các ứng dụng.
TensorFlow có nhiều ứng dụng quan trọng trong lĩnh vực học máy và AI Đây là một
sô ví dụ vê ứng dụng của TensorFlow:
e Nhận dạng hình ảnh:
e Xử lý ngôn ngữ tự nhiên
e Xử lý âm thanh
28
Trang 31Easy to run Easy experimentation
Fast debugging 7 Abstraction
hình đã được đảo tạo như BERT và Faster R-CNN chỉ với một vài dòng code.
!pip install upgrade tensorflow_hub
import tensorflow_hub as hub
model = hub.KerasLayer ("https: //t£hub.dev/google/nnlm-en-dim128/2")
embeddings = model (["The rain in Spain.", "falls",
"mainly", "In the plain!"])
print (embeddings.shape) #(4,128)
TensorFlow Hub cung cấp cho người dùng truy cập vào hàng ngàn mô-đun đã được
huấn luyện trước, bao gồm các mô-đun cho nhận dạng hình ảnh, xử lý ngôn ngữ tựnhiên, xử lý âm thanh và nhiều lĩnh vực khác Các mô-đun này được xây dựng trên
kiến tric mạng nơ-ron sâu và có trọng số đã được huấn luyện trên các tập dữ liệu lớn,giúp giảm bớt thời gian và công sức cần thiết dé xây dựng mô hình từ dau
29
Trang 32TensorFlow Hub TensorFlow Hub
Keras Lambda
Layer TensorFlow Hub
Keras Layer
Hình 10 Sử dung pre-trained model với Keras
Bang cach sử dung TensorFlow Hub, người dùng có thê dé dang tìm kiếm, tải về vàtích hợp các mô-đun đã được huấn luyện trước vào ứng dụng của họ Các mô-đunnày có thé được sử dụng như một phần của mô hình học máy tổng thé hoặc làm bộtrích xuất đặc trưng để rút trích thông tin từ dữ liệu Sử dụng các mô-đun đã được
huấn luyện trước giúp tăng tốc quá trình phát triển, giảm thiểu công sức và yêu cầu
tính toán.
Một ưu điểm quan trọng của TensorFlow Hub là khả năng chia sẻ và tái sử dụng
mô-đun Cộng đồng người dùng có thê chia sẻ các mô-đun huấn luyện trước của mình
thông qua TensorFlow Hub, tạo ra một nguồn tài nguyên phong phú và đa dạng cho
30
Trang 33cộng đông Điêu này cho phép các nhà phát triên chia sẻ kiên thức, học hỏi và sử
dụng các giải pháp có săn đề phát triển các ứng dụng AI đáng tin cậy và hiệu quả
Numpy
NumPy (Numerical Python) là một thư viện mã nguồn mở phổ biến trong ngôn ngữ
lập trình Python Nó cung cấp một bộ công cụ và chức năng mạnh mẽ dé thao tác với
mảng và ma trận đa chiều, đồng thời hỗ trợ các phép toán số học và hình học phứctạp.
NumPy đóng vai trò quan trọng trong hệ sinh thái khoa học dữ liệu của Python va là
nên tang cốt lõi cho các thư viện khác như Pandas, Matplotlib và SciPy Với NumPy,
người dùng có thể thực hiện các phép toán tính toán nhanh chóng và hiệu quả trêncác mảng số lớn, góp phần tăng tốc quá trình xử lý đữ liệu và phân tích
Dưới đây là một số đặc điểm và chức năng chính của NumPy:
Mang đa chiều: NumPy cung cấp đối tượng mảng (ndarray), cho phép lưu trữ và xử
ly dir liệu trong các mang đa chiều Mang NumPy được thiết kế dé lưu trữ các giá trị
có cùng kiểu dữ liệu, điều này giúp cải thiện hiệu suất tính toán và tiết kiệm bộ nhớ
so với việc làm việc với các danh sách thông thường trong Python.
Phép toán số học: NumPy hỗ trợ một loạt các phép toán số học và logic trên mảng,
bao gồm cộng, trừ, nhân, chia, lũy thừa, phép toán bit, và nhiều phép toán khác Tính
năng phản hồi (broadcasting) trong NumPy cho phép người dùng thực hiện các phép
toán này trên các mảng có kích thước khác nhau mà không cần thực hiện việc mở
rộng kích thước tường minh.
Hỗ trợ mô phỏng ma trận: NumPy cung cấp một loạt hàm và phương thức dé thựchiện các phép tính ma trận như nhân ma trận, tích vô hướng, nghịch đảo, chuyển VỊ
và nhiều thao tác ma trận khác Với những khả năng này, NumPy trở thành một công
cụ mạnh mẽ cho xử lý đại số tuyến tính và giải quyết các bài toán liên quan đến ma
trận.
31
Trang 34Công cụ tích hợp dữ liệu: NumPy cung cấp các chức năng dé đọc và ghi dữ liệu từ
các tệp tin, cho phép người dùng nhập
1|2|3|4
5
9 |10|11|12
13 |14|15 |16 |
Row one, columns two to four All rows in column one
>>> arr[1, 2:4] >>> arr[:, 1] >>> arr[2:, 2:] xxx BFFE1:12; ::2]
array([7, 8]) array([2, 6, 19, 14]) array([[11, 12], array([[5, 7],
[15, 16]]) [13, 15]])
Hình 11 Hình anh mình họa tính năng của Numpy
Pandas
Pandas là một thư viện mã nguồn mở được phát triển trên ngôn ngữ lập trình Python
và là một thành phần quan trọng trong hệ sinh thái khoa học đữ liệu của Python Nó
cung cấp một cách mạnh mẽ và linh hoạt dé làm việc với dữ liệu có cấu trúc va không
có cấu trúc, giúp người dùng thực hiện các tác vụ xử lý dữ liệu, phân tích và biến đổi
dữ liệu dé dàng và hiệu quả.
Pandas chủ yếu tập trung vào hai cấu trúc dữ liệu chính là Series và DataFrame
Series: Series là một cau trúc dữ liệu mảng một chiều có nhãn trong Pandas, tương tự
như một cột trong một bảng dữ liệu Nó cho phép lưu trữ dữ liệu từ các kiểu dữ liệukhác nhau và cung cấp khả năng truy cập dé dàng vào dữ liệu thông qua nhãn hoặcchỉ số Series trong Pandas hỗ trợ thực hiện các phép toán và truy vấn trên dữ liệu
Trang 35Các tính năng chính của Pandas bao gồm:
e_ Đọc và ghi dữ liệu: Pandas hỗ trợ nhiều định dạng dữ liệu như CSV, Excel,
SQL, JSON, HTML và nhiều hơn nữa, cho phép người dùng dễ dàng nhập và
xuât dữ liệu từ và đên các nguôn khác nhau.
e Xu lý dữ liệu: Pandas cung cap các công cụ đê làm sạch và biên đôi dữ liệu,
bao gôm xử lý giá trị thiêu, chuân hóa dữ liệu, thao tác trên cột và hàng, lọc
và chọn dữ liệu theo điêu kiện.
e Phân tích dữ liệu: Pandas cho phép thực hiện các thao tác phân tích dữ liệu
như tính toán thống kê, tạo đồ thị, nhóm dữ liệu, tính toán tổng hợp và tính
toán các chỉ sô thông kê.
e Tích hợp dữ liệu: Pandas giúp kết hợp và ghép các bảng dữ liệu khác nhau dựa
trên các khóa chung hoặc chỉ số, cho phép người dùng thực hiện các tác vụliên quan đến việc ghép nối và liên kết dit liệu
Pandas đã trở thành một công cụ phô biến và mạnh mẽ trong lĩnh vực khoa học dữ
liệu và phân tích dt liệu, mang lại sự dễ sử dụng và hiệu quả Với Pandas, người dùng
có thể khám phá, xử lý và phân tích dữ liệu một cách nhanh chóng và tiện lợi
Reading data from
different
data formats
Hinh 12 Hinh anh minh hoa tinh nang cua Pandas
33
Trang 362.4 AndroPy — Công cụ trích xuất thuộc tính APK
2.4.1 Giới thiệu
Đây là một công cụ đề trích xuất các tính năng tĩnh và động từ APK Android Nó kết
hợp các công cụ phân tích ứng dụng Android nổi tiếng khác nhau như phân tích
DroidBox, FlowDroid, Strace, AndroGuard hoặc VirusTotal Được cung cấp một thư
mục nguồn chứa các tệp APK, AndroPyTool áp dụng tat cả các công cụ này dé thựchiện phân tích tiền tĩnh, tĩnh và động, đồng thời tạo các tệp tính năng ở định dạng
JSON và CSV, đồng thời cho phép lưu tất cả đữ liệu trong cơ sở đữ liệu MongoDB.Lưu ý: nếu sử dụng công cụ này khi viết paper, phải trích dẫn lại
2.4.2 Cài đặt
Nguồn codebase: https://github.com/alexMyG/AndroPyTool.git
Cách cài đặt được hướng dan rõ trong repo, sau đây là một số ý sơ lược
Sử dung sourcecode ở trên, có 2 cách cai đặt:
- Cài tay (manual) Ưu điểm là có thê tùy biến code (vì một số file APK chạy không
được, code Python bị lỗi), nhược điểm là cài khá lâu, sử dụng nhiều lệnh và chạy
nhiều file riêng biệt
e Tải và cai dat package trên môi trường Linux
e Tải và cài đặt các module Python
e Tải và cài đặt Android SDK bang tay
e Tạo môi trường ảo emulator Droidbox
e Chạy file androPyTool.py dé khởi động chương trinh- Sử dung tool trực tiếp
bằng docker Ưu điểm là cài nhanh gọn, test được, POC được ngay lập tức
Nhược điểm, khó thay đổi code trong môi trường production (docker
container)
e Pull image docker về
e Sử dụng lệnh trực tiếp
34
Trang 37Các thư mục được xuất ra cung cấp thông tin hữu ích: thuộc tính, kết quả report bởi
VirusTotal,
2.5 Cac model xử lý ngôn ngữ trong Deep Learning được sử dung
2.5.1 NNLM (Neural-Net Language Models - Tensorflow Hub)
So lược:
Có 2 mô hình ngôn ngữ được giới thiệu để xử lý vấn đề thưa thớt dữ liệu (datasparseness) của N-gram Language Models Hai dạng mô hình kiểu này là Feed
Forward Neural Networks (FNNs) và Recurrent Neural Networks (RNNs).
Moi mô hình kiểu này đều có input va output là:
e Input: Word Embedding hay Character Embedding, là chuyển từ hay ký tự
sang vector số thực trong một không gian n chiều (dimensions) cố định
® Output: Với mỗi output unit là xác suất của một từ hay ký tự khi đã biết
context Context là gi thì còn tùy thuộc vào dang mô hình sử dụng Ví du:
Trong dạng FNN, context là một chuỗi có độ dài có định bao gồm những từ hoặc ký
tự trước ký tự đang xét, giống như mô hình ngôn ngữ N-gram
Context của RNN giống như của FNN nhưng có độ dài không có định Việc sử
dụng dạng RNN giúp giải quyết vấn đề hạn chế của FNN, điều này có nghĩa là
35
Trang 38không còn là N-gram nữa và các nhược diém của các mô hình ngôn ngữ N-gram
không còn nữa Đây chỉ là một dòng trong nhóm model dựa trên kiến thức
Ngoài ra, một Language Model được chia thành ba nhóm đó là
e Statistical LM (Count-based): Những mô hình thuộc nhóm này đều dựa trên
việc đếm tần suất xuất hiện của từng từ hay chuỗi, do đó nó cần một lượng dữliệu lớn, càng nhiều càng tốt
e Neural Network LM (Continuous-space): Những mô hình thuộc nhóm nay
được xây dựng theo những kiến thức đã được con người (cụ thể là các chuyêngia về ngôn ngữ học) tích luỹ, nào là cú pháp, ngữ nghĩa, các cụm từ vựng, các
thi, Nếu những kiến thức này được định nghĩa bằng các luật thì mô hình sẽđược gọi là rule-based model Mô hình này có ưu điểm là không yêu cầu một
chút dữ liệu nào đê huân luyện.
36
Trang 39e Knowledge-based LM (Mô hình kê trên): Loại mô hình ngôn ngữ này được
giới thiệu dé xử lý van đề thưa thớt dit liệu kể trên (data sparseness) của môhình ngôn ngữ N-gram Mô hình kiểu này được chia làm hai dạng là Feed
Forward Neural Networks (FNNs) và Recurrent Neural Networks (RNNs).
Ngoài ra còn một số language model khác chang hạn như KenLM,
Bên cạnh đó, khi xây dựng mô hình chính, chúng ta cần phải quan tâm đến lớp
embedding đề biéu diễn văn bản sao cho hợp lý và phù hợp với mô hình huấn luyện
Lớp embedding có thê là một mô hình xử lý không gian ma trận trên bài toán xử lý
gian học bỏ ra có thê lên tới “vô hạn”.
Do đó, mô hình trên đã tận dụng biểu diễn dữ liệu phân tán đã được học để chống lại
nhược điểm về số chiều: mỗi câu huấn luyện thông báo cho mô hình về một số tổ hợp
các câu khác.
2.5.2 Simple CNN-GRU
Kiến trúc tổng quát của một mô hình CNN-GRU đơn giản:
37