Dé đối phó với sự gia tăng đáng ké của mã độc, các hình thức tan công ngày càng phức tạp va tinh vi hơn, thường sử dụng các kỹ thuật nén, mã hóa và thay đổi mã nguồn để tránh phát hiện b
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA AN TOÀN THÔNG TIN
ĐỎ ÁN TÓT NGHIỆP
DO THI THU THAO
Ha Nội, 01-2024
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA AN TOÀN THONG TIN
ĐỎ AN TOT NGHIỆP
Giảng viên hướng dẫn: PGS TS Hoang Xuân Dậu
Sinh viên: Đỗ Thị Thu Thảo
Mã sinh viên: B19DCA T182
Lớp: DI9CQAT02-B
Hà Nội, 01-2024
Trang 3LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến Thầy Hoàng Xuân Dậu
— Giảng viên Khoa An toàn thông tin, Học viện Công nghệ Bưu chính Viễn thông
đã nhiệt tình hướng dẫn tôi trong suốt thời gian làm đồ án Thay đã tạo rất nhiều điều
kiện thuận lợi, định hướng, chỉ bảo tận tình và cho những lời khuyên quý báu giúp
tôi giải quyết được những khó khăn trong việc tiếp cận những công nghệ mới Đồng
thời, thầy đã giúp tôi hiểu được những kiến thức quan trọng, giúp tôi tiếp cận với
cách tư duy, giải quyết và trình bay dé có thé tìm hiểu và hoàn thành đồ án thành
công, đúng thời hạn.
Tôi cũng xin gửi lời cảm ơn chân thành với các thầy cô giáo trong Học viện Côngnghệ Bưu chính Viễn thông nói chung, các thầy cô trong Khoa An toàn thông tin nóiriêng đã tận tình giảng dạy, truyền đạt cho tôi những kiến thức quý báu và tạo điều
kiện giúp đỡ trong suốt quá trình học tập trong những năm học vừa qua, là hành
trang giúp tôi tự tin hơn trong công việc, cuộc sống và những mục tiêu trong tương
lai.
Cuối cùng, tôi xin chân thành cảm ơn gia đình va bạn bè đã luôn tạo điều kiện,
quan tâm, ủng hộ, giúp đỡ, động viên tôi trong suốt quá trình học tập và hoàn thành
đồ án tốt nghiệp.
Tôi xin chân thành cảm on!
Sinh viên thực hiện
Thảo
D6 Thị Thu Thảo
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đề tài: “Phát hiện mã độc dựa trên học sâu sử dụng opcode”
là một công trình nghiên cứu độc lập, không sao chép từ bất kỳ một công trình nào
khác Những kiến thức được trình bày trong đồ án là do tôi tìm hiểu, nỗ lực nghiên
cứu trong suốt quá trình học tập tại trường Ngoài ra, trong đồ án tôi có sử dụng một
số nguôn tài liệu tham khảo đã được trích dẫn nguồn và chú thích rõ ràng Nếu có điều gi không trung thực, tôi xin hoàn toàn chịu trách nhiệm trước kỷ luật của bộ
môn và nhà trường đề ra
Sinh viên thực hiện
Thảo
D6 Thị Thu Thảo
il
Trang 5MỤC LỤC
LỜI CẢM ƠN - 5c 52 222E15E1571271211111211211211211111111.2111111211 1111 1e i LOI CAM DOAN (uu ecccsssssesscssesssssessssssssssussscsscssessssassasssscsnsssessessesatsstsasesnessessteatenees ii
MỤC LUC oieeecescsscssccssessessessessssssssuessessessecsussussuessesaessessessessussnsssessessessessessesssesseeseeaes iii
DANH MỤC BANG BIEU ceccccscsesssscscecsescecscssececsesucecscsrcucessvscaravsvsucavavsecacavavees VvDANH MỤC HINH ANH ccccccccsesesscsccececscsececsescecscsvsecacsvscacavssecaravsucacavavsecacaves viDANH MỤC CAC TU VIET TAT woieceecsscsssessessessesssssscssessessessesaessessessessnessesseeseess viii
MO DAU Wveecsceccsssssesssssesssessessssvesvcsessesscsucsvssussesscsuesscsussesacsussucsussesacsussucaseesaseneaseaee ix
CHUONG 1: TONG QUAN VE MÃ ĐỘC VA PHAT HIỆN MÃ DOC |
1.1 Tong quan về mã độc va phòng chống M 1
1.1.1 Khai quát về mã độc -2- +: ©2++2x++ExtEESExerkrerxerrrerkrrrrees |
1.1.2 Một số dang mã độc phổ biến 2-2 2 E£E£2E£2EE2EE2EEzrxersered 2 1.1.3 Một số cách phòng chống mã độc - 2-2 2+2+££+££+£++zx+rxerse+ 7
1.2 Các phương pháp phát hiện mã độc - 5-5555 + s++v+seseeersex 8
1.2.1 Phát hiện dựa trên phân tích tĩnh 2-2 s¿+s2+E++E++E++Ex+rxsrxerxee 8
1.2.2 Phat hiện dựa trên phân tích động 5+5 + +++s++se+seseess 11
1.3 Một số nghiên cứu liên Quam ceccccccssscssesssesssessecssessecssecsecssecsecssecsesssecseesses 13
1.4 Kết luận chương - s+Sk+EE+EE2E2E12E12212717171711211211111 1xx cre 14
CHƯƠNG 2: PHÁT HIỆN MÃ ĐỘC DỰA TRÊN HỌC SÂU SỬ DỤNG
OPCODDE 2 <+SESEỀEEEEEEE21121121121111711111111112111111 1111111111111 11c ce 15
2.1 Tổng quan về học máy, học sâu 2 2 2 + ++x£+£+£+E++zxerxerxeee 15
2.1.1 Khái quát về học máyy - 2c +2 £++E+EE+EE+EESEEEEEEEEEEEEEEerkrrkerxee l5
2.1.2 Khái quát về học sâu ¿2+ ©5£++++EE+EE£EEEEEEEEEEEEEEEEEkrrkrrkervee 18
2.1.3 Một số thuật toán học sâu -¿- + ++t+E+E+ESEE+ESEEEEEESESEEEErEeEererkrrrrr 20
2.2 _ Các kỹ thuật Word Embedding cho học sâu . -«=++<<<>+<<+ 32
2.2.1 7 Word2Vec LH HQ ng nen gyy 32
2.3 Xây dựng mô hình phát hiện mã độc dựa trên học sâu sử dụng opcode 35
2.3.1 Giới thiệu mô hình phát hiỆn - - 5 5c 5+ 2+ *++*£+vE++eeeseereeexes 35
ill
Trang 623.2 Tiền xử lý - 2 2k2 EEEEETHEE1211211211 2111111211111 x1 36 2.3.3 Huấn luyện và kiểm thử 2¿©2252+E£+EE+EE£EEEEEEEEEEEEEEerkerkerxee 38
2.3.4 Tiêu chuân đánh giá mô hình 2- 2 2s x+EE+E++E+EzEerxsrszrezez 38
24 KẾtchương - 5c tt EEE2121211211211111215 1111111111111 cre 4I
CHƯƠNG 3: CÀI ĐẶT VA THU NGHIỆM - 2© 2+££+££+£++Ex+rxerxerez 42
3.1 Giới thiệu tập dữ liệu thử nghiệm 2-2-2 ++E+E+EE+EE2EEeExerxerxeee 42
3.2 Tiền xử lý dữ liệu - + s©E+SE2EE2E12E127157171211211211211 1xx crxee 42
3.3 Huấn luyện và kiểm thử - 2-2 2+ +E+SE+EE+EE2EEEEEEEEEEEEEEEEEEErkrrkrrerree 45
3.3.1 Huấn luyện mô hình với đặc trưng Opcode được Embedding 453.3.2 Huấn luyện mô hình với đặc trưng Opcode và toán hạng được
0105902015200 7 51 3.4 can 60
3.5 Kết chương -+2++ck EkEEE1221121121121121171121121121111 11 1x xe 64
KẾT LUẬN - E119 1E 1 11111 11511111111111111111111 1111111111111 1111112 TeE 65TÀI LIEU THAM KHẢO - 2 2 £+SE+EE£EE£EEEEEEEEEEEEEEEEEEEE21122121 112 re 66
1V
Trang 7Kết quả thử nghiệm tốt nhất của mô hình LSTM - 54
Kết quả thử nghiệm tốt nhất của mô hình Bidirectional LSTM 56Kết qua thử nghiệm tốt nhất của mô hình MLP . 2-5: 59Bảng 3.10: Bảng so sánh hiệu suất của các mô hình đề xuất với trích xuất đặc trưng
Chi ZOM OPCOE 0n ố ằe - 60
Bang 3.11: Bảng so sánh hiệu suất của các mô hình đề xuất với trích xuất đặc trưng
bao gôm opcode và toán hạng - + + + + E1 E 9E 9911 1 E9 vn ng cey 61
Bang 3.12: So sánh hiệu suat của các mô hình dé xuat và các mô hình phát hiện
trước đây
Trang 8DANH MỤC HÌNH ẢNHHình 1.1 Một số dang mã độc phổ biến 2- 2 2 2 +E+EE+EE+EE£Ez£EeExerszrzee 2
Hình 1.2 Phân loại kỹ thuật phân tích tĩnh - +5 5+ +5 *S+s+v+eeeeeeees 8
Hình 1.3 Phân loại kỹ thuật phân tích động - - ¿5-5 + +55 *>+ss++e>+e+ 11
Hình 1.4 Sử dung Procmon dé theo dõi các tiến trình :- 12
Hình 2.1 Machine Learning hay còn gọi là học máy - -««++<<«+ 15 Hình 2.2 Cách phân loại thuật toán - 5-5 2+2 **++sE+serseeererreerrreere 17
Hình 2.3 Mô hình đơn giản của MILTP 5 S5 3E *kseesrerrrersrererke 20
Hình 2.4 Mô hình mạng MLP tổng quát - 2 2 2 s+s+£+2££+EzEezxzrszrs 21
Hình 2.5 Hoạt động của MILP << 1E 919 11 911 E93 9v ng ng ngư 22 Hình 2.6 Đường cong sigmoid là đường cong hình chữ SŠ 23
Hình 2.7 Mạng nơ-ron hồi quy RÌNN -¿- 2: 222c++2zz+zxtzz+erxzrxersrre 24Hình 2.8 Tang cong quên (forget gate lay€T) -2- 2 2 s+x+zx+zEzxzresred 25
Hình 2.9 Tang cổng quên (forget gate layer) c.cecsessessessesseseesessesseseseeseeseeees 26 Hinh 2.10 Cập nhật giá tri cho 6 trang thái băng cách kết hợp 2 kết qua từ tang
công vào và tang ân hàm tanh - - - - << +31 1211139311119 19 11kg ng ngư 27
Hình 2.11 Ô trạng thái mới - 2 2 + +x+EE+EE+EE£E£EEEEEEEEEEEEEEEEEEkrrkrrerkrred 27Hình 2.12 Điều chỉnh thông tin ở đầu ra thông qua ham tanh 27Hình 2.13 Kiến trúc lớp LSTM hai chiều - 2 2 25s x+£E£EzEzzszred 28Hình 2.14 Cấu trúc của mạng CNN - 2: 5¿©5£+E22EE+EE+EE+EEeEEerEerrerrkrred 30
Hình 2.15 Cấu trúc cơ bản của mang CNN - 2 2 s+cx+zxerEzrezrsrred 31
Hình 2.16 Mô hình từ nhung wo eeceecccesccesceesseeseceneceseceseeessecsseceeeeseeesseeseeeneeeneees 32
Hình 2.17 Cbow và Skip-ngram c s + xxx vn n ngnrưkt 32
Hình 2.18 Mô hình PV-DM - -.- 6 Sàn HH TH ng nghệ 33 Hình 2.19 Mô hình PV-DBOW LH HH HH TH HH HH gu ngư, 34 Hình 2.20 Mô hình phát hiện - - (5 + E113 9119 119112 1111 g1 vn 35
Hình 2.21 Dạng từ điển các từ opcodĂ - ¿- 2 + s+x+E++E£Eerxersrrsrrereered 36
Hình 2.22 Ma trận Confusion Matrix - 5 5 5< 51332 E‡+ssevessssexse 38
Hình 2.23 D6 thị ROC Curve và AUC cccc-ccccccsrrtrrrrrrrrrrrrrrrrrrrke 40
Trang 9Hình 3.1 Ma trận Confusion Matrix-CNN ĂG SH se, 44
Hình 3.2 Đồ thị ROC và AUC-CNN 2-5252 2E‡2EEEEEEEEEerkerkerkrred 44
Hình 3.3 Ma tran confusion Matrix-LSTM 0 ccccccccescceeesssecesssseeceessseeeeessaes 45
Hình 3.4 Đồ thi ROC và AUC-LSTM ou cccccccssessessesssessessessessecsessesssessesseeseesesses 45
Hình 3.5 Ma tran confusion Matrix- Bi LS”M 555555 ‡<<<5<<<< <<: 46
Hình 3.6 Đồ thi ROC và AUC- Bi LSTM 2- 52 ©52252222££++£xerxcrxecsee 46
Hình 3.7 Ma trận Confusion Matrix- MLP 5555 2222 cccceezzzzxs 47
Hình 3.8 D6 thi ROC và AUC-MLP 25c-22cccttEEkirrrrrriirrrerriee 47
Hình 3.9 Ma tran Confusion Matrix-CINN HS SS Hs nhớ, 48
Hình 3.10 Đồ thị ROC và AUC-CNN 5c c22cctrrrie 48
Hình 3.11 Ma trận Confusion Matrix-LSTM << 555cc +£<<+s<<< <2 49
Hình 3.12 Đồ thị ROC và AUC-LSTM - 5552cccctktrrrrrriirrrrriie 49
Hình 3.13 Ma trận Confusion Matrix- BI LSTÌM 5555 5 ‡<<<5<<<< <<: 50
Hình 3.14 Đồ thị ROC và AUC-Bi LSTM 2- 55c ©2z+cx2zvcxcrxrrreee 50
Hình 3.15 Ma trận Confusion MatrIx-MLP - 5c 2 + x+sseeirssssesse 51
Hình 3.16 Đồ thi ROC và AUC-MLP 2- 2c 5222E2E2£Ec2EEvExzrerrsrer 51
vii
Trang 10DANH MỤC CÁC TỪ VIET TAT
AI Artificial Intelligence Tri Tué Nhan Tao
AUC Area Under The Curve Đồ thi AUC
Bi LSTM Bidirectional LSTM Mang no ron hồi tiếp hai
chiéu
CBoW Continuous Bag of Word Mô hình túi từ liên tục
CNN Convolutional Neural Network Mạng nơ ron tích chập
DLL Data Definition Language Ngôn ngữ định nghĩa dữ liệu
LSTM Long-Short Term Memory Mạng bộ nhớ ngắn hạn
MLP Multi-layer Perceptron Mang no ron được kết nồi
đầy đủ tiêu chuẩn
PE Portable Executable Định dạng tệp dành cho các
tệp thực thi
PV-DM Distributed Memory version of Phiên ban bộ nhớ phân tan
Paragraph Vector của Vector đoạn
PV-DBOW | Distributed Bag of Words version of | Phiên ban túi từ phân tán của
Paragraph Vector Vector đoạn văn ROC Receiver Operating Characteristic Duong cong ROC
RNN Recurrent Neural Network Mang no ron hồi quy
vill
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Trong thời đại công nghệ thông tin và không gian mạng phát triển nhanh chóng,việc phát hiện và ngăn chặn mã độc đã trở thành một vấn đề quan trọng Các mã độc(Malicious software) là các chương trình thực hiện hành vi trái phép, như đánh cắp,
thay đôi thông tin, dữ liệu nhạy cảm, hoặc làm tôn hại đến các hệ thống Các dạng
mã độc thường gặp có thể liệt kê, như vi rút, sâu, botnet, trojan, spyware (mã độc
gián điệp), adware (mã độc quảng cáo), ransomware (mã độc tống tiền) và mã độc
tan công APT [1] Dé đối phó với sự gia tăng đáng ké của mã độc, các hình thức tan
công ngày càng phức tạp va tinh vi hơn, thường sử dụng các kỹ thuật nén, mã hóa
và thay đổi mã nguồn để tránh phát hiện bởi phần mềm chống virus thông thường
Phương pháp phát hiện dựa trên chữ ký truyền thống không còn hiệu quả trong việc phát hiện các mẫu mã độc mới và cập nhật các chữ ký mất nhiều thời gian và
công sức Nhằm cải thiện khả năng phát hiện, các phương pháp phát hiện mã độc
dựa trên hành vi đã được nghiên cứu và triển khai Các phương pháp này ghi nhận
và phân tích hành vi của mã độc khi thực thi trong một môi trường theo dõi, bao
gồm truy cập tệp tin, truy cập mạng và thay đôi các tham số hệ thống Thông qua
việc xây dựng các hồ sơ phát hiện, các mẫu mã độc có thé được nhận diện dựa trên
hành vi của chúng.
Dé nâng cao hiệu quả của quá trình xây dựng hồ sơ phát hiện mã độc, các phương
pháp học sâu được áp dụng để huấn luyện các đặc trưng hành vi của mã độc Sử
dụng học sâu cho phát hiện mã độc mang lại nhiều lợi ích, cho phép tự động hóa quátrình xây dựng hồ sơ phát hiện và cải thiện khả năng phát hiện các dang mã độc mới
Dé tài đồ án "Phát hiện mã độc dựa trên học sâu sử dụng opcode" nhằm nghiên cứu va áp dụng các mô hình học sâu dé tìm ra phương pháp phát hiện mã độc hiệu
quả nhất
Đồ án bao gồm 3 chương:
Chương 1: Tổng quan về mã độc và phát hiện mã độc
Chương này sẽ giới thiệu tổng quan về mã độc, bao gồm khái niệm, các dạng mã độc, ảnh hưởng của mã độc va cách dé phòng chống nó Bên cạnh đó, chương cũng
giới thiệu về các phương pháp phân tích và phát hiện mã độc, sự cần thiết của học
sâu trong việc phát hiện mã độc và chỉ ra một sé nghiên cứu liên quan.
1X
Trang 12Chương 2: Phát hiện mã độc dựa trên học sâu sử dụng opcode
Giới thiệu tông quát vê học máy và học sâu, trình bày một sô mô hình học sâu cụ thê và đưa ra mô hình phát hiện mã độc dựa trên học sâu.
Chương 3 Cài đặt và thử nghiệm
Tiến hành thử nghiệm mô hình phát hiện mã độc ở chương 2 Bao gồm: thu thập
và tiền xử lý đữ liệu, huấn luyện và kiểm thử, cuối cùng là đưa ra kết quả và đánh
- Các mô hình học sâu: Multi-layer Perceptron (MLP), Long Short Term
Memory (LSTM), Bidirectional LSTM (Bi LSTM), Convolutional Neural Network (CNN)
- Tập dữ liệu mẫu bao gồm các mẫu mã độc thu thập được từ Internet
s* Pham vi:
- Giới han trong việc phân loại các mẫu mã độc trong tập dữ liệu mau
- Tập trung nghiên cứu các mô hình học máy: MLP, LSTM, Bi LSTM, CNN
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu là nghiên cứu lý thuyết kết hợp với thực nghiệm vàphân tích, đánh giá kết quả
Trang 13CHƯƠNG 1: TONG QUAN VE MÃ ĐỘC VA PHÁT HIỆN MÃ ĐỘC
1.1 Tổng quan về mã độc và phòng chống
1.1.1 Khái quát về mã độc
Mã độc đã tồn tại từ những ngày đầu của máy tính Vào những năm 1970, loại
virus Creeper Worm đã xuất hiện và tự nhân bản trên các hệ thống từ xa, xuất hiện
thông báo "Tôi là Creeper, hãy bắt tôi nếu bạn có thể" Trong những năm 80, loại
virus Elk Cloner đã nhắm vào máy tính Apple II và từ đó, cuộc chiến chống lại phần mềm độc hại không ngừng phát triển [2].
Mã độc là một loại phần mềm được tạo ra và chèn vào hệ thống một cách bí mật
và có chủ dich dé gây thiệt hại tới máy tính cá nhân, máy chủ hoặc hệ thống mang máy tính Mục đích của mã độc là thực thi các hành vi bất hợp pháp như: truy cập
trái phép, phá hoại hệ thống, đánh cắp thông tin người dùng, lây lan thư rác, thậmchí thực hiện hành vi tống tiền, làm gián đoạn Nhằm chuộc lợi cá nhân, hoặc cáclợi ích về kinh tế, chính trị hay đơn giản chúng có khi được tạo ra chỉ là một trò đùa
ác ý nào đó Mã độc còn được định nghĩa là “Một chương trình (program) được chèn
một cách bí mật vào hệ thống với mục dich làm tốn hại đến tính bi mật, tính toàn
vẹn hoặc tính sẵn sàng của hệ thống”.
Khi được kích hoạt, mã độc sẽ tự đính kèm vào một chương trình hoặc thiết bị
đã chọn Các mã độc có thể xâm nhập vào các thiết bị bằng một số dạng tấn công,
khai thác như [3]:
* Phishing: Phishing bao gồm kẻ tan công giả làm một cá nhân hoặc trang webđáng tin cậy để thuyết phục mục tiêu tiết lộ thông tin cá nhân hoặc thông tin có giá
trị, hoặc truy cập vào các đường dẫn độc hại
* Social Engineering: Tương tự như Phishing, kẻ tan công chiếm được lòng tin
của mục tiêu dé lay thông tin, hoặc truy cập vào các đường dẫn độc hại Loại chiến thuật này khai thác lỗi và tương tác của con người dé nhận thông tin.
* Pop-ups: Quảng cáo va cửa số bật lên có thể bao gồm các liên kết độc hại hoặc
dẫn đến các trang dich giả, nơi mã độc đang chờ dé xâm nhập vào hệ thống
¢ Drive-by downloads: Người dùng truy cập các trang web giả mạo lưu trữ bộ
công cụ khai thác mã độc có thé xâm phạm hệ thống.
+ Shared networks: Mạng dùng chung với thiết bị bị nhiễm mã độc có thé lây lan
Trang 141.12 Một số dạng mã độc phổ bién
Mặc dù nhiều người vẫn thường dùng thuật ngữ "Virus" như một thuật ngữ chung
để ám chỉ các loại mã độc hại, nhưng thật ra mã độc hại bao gồm nhiều loại khác
nhau Sự phức tạp của các loại mã độc ngảy càng gia tăng, từ cách lây nhiễm, phương
pháp ân giấu, cho đến các hành vi nguy hiểm mà chúng thực hiện Việc phân loại và đặt tên cho malware làm cho việc xử lý và phòng chống sau khi xảy ra vi phạm bảo
mật dễ dàng hơn
s Virus
Virus (Vi rút máy tinh) là một chương trình hoặc mã độc tự nhân bản có khả năng
lây nhiễm và gây hại cho hệ thống máy tính bằng cách xóa, thay đổi hoặc mã hóa dữliệu, làm chậm hoặc tê liệt hệ thống, hoặc thậm chí chiếm quyền kiểm soát hoàn toànmáy tính Chúng có thê lan truyền thông qua các phương tiện như email, các tập tin
cai đặt, thiết bi USB và kết nối mạng.
trên thé giới Do tính thông dụng của Windows nên các tin tặc thường chú ý hướng
vào chúng nhiều hơn là các hệ điều hành khác [4].
Virus thường được viet dưới dạng một routine và thực hiện việc sửa đôi các tham
sô địa chỉ của các lệnh đê trỏ đên chính nó Khi virus hoàn thành nhiệm vụ, quyên điêu khiên sẽ được chuyên đên một routine được của chương trình Virus máy tính
Đỗ Thị Thu Thảo — B19DCAT182 2
Trang 15chỉ hoạt động băng mã lệnh, và khả năng tự lây nhiễm của virus phụ thuộc vào khả
năng của người tạo ra nó.
Vòng đời của virus trải qua 4 giai đoạn chính:
- Giai đoạn nam im: virus không được kích hoạt
- Giai đoạn phat tan: virus cai 1 bản sao của nó vào các chương trình khác
- Giai đoạn kích hoạt: virus được kích hoạt đề thực thi tác vụ đã định sẵn
- Giai đoạn thực hiện: virus thực thi các tác vụ
Cơ chế chèn mã virus vào chương trình chủ của file virus:
- Virus có thé chèn mã của nó vào đầu hoặc cudi chương trình bị lây nhiễm tùy
theo tình huông
- Khi chương trình nhiễm virus được thực hiện, mã virus được thực hiện trước
sau đó mã chương trình mới được thực hiện.
s* Worm
Worm (Sâu máy tính) là một loại phần mềm độc hại được thiết kế để tự lây lanqua mạng máy tinh ma không cần sự tương tác của người dùng Khác với virus máytính, worm không cần gắn kết vào các tệp hoặc chương trình đã tồn tại đề lây nhiễm
và sao chép chính nó Thay vào đó, worm tự nhân bản và phát tán độc lập, thường
thông qua các kết nối mạng và các lỗ hồng bảo mật trong hệ thống [5].
Sâu máy tính sử dụng phương pháp đệ quy dé tự sao chép mà không cần chương
trình chủ và tự phân phối dựa trên quy luật tăng trưởng theo cấp số nhân, sau đó điềukhiến và lây nhiễm ngày càng nhiều máy tính trong thời gian ngăn Các ban sao tự
tìm cách lan truyền qua các máy tính khác trong cùng mạng sử dụng cùng hệ điều hành và đặc biệt người sử dụng không hé biết.
Các phương pháp lây lan của sâu: email, các lỗ hổng bao mật, kết nối mang, thiết
bị di động, USB và các phương tiện lưu trữ khác.
s* BackDoor
BackDoor còn được gọi là TrapDoor Như tên gọi, Backdoor — Cửa sau đã phan
nào phản ánh được bản chất của nó, đó là một cơ chế hoặc mã độc được thiết kế và triển khai để tạo ra một cửa sau bí mật trong hệ thống máy tính, phần mềm hoặc
mang Backdoor thường sử dụng dé mở cửa từ phía trong hệ thống cho phép người
sử dụng có quyên truy cập, điều khiển hoặc thực hiện các hoạt động không được quy định hoặc không được ủy quyền Back door được sử dụng bởi những nhà lập trình với mục đích dò lỗi, kiểm tra chương trình Trong các cuộc tấn công trap door là
phần mềm độc hại thường trú và đợi lệnh điều khiển từ công dịch vụ TCP hoặc UDP
Đỗ Thị Thu Thảo — B19DCAT182 3
Trang 16Tin tặc có thé cài đặt một Backdoor vào thiết bị của người dùng bằng cách khaithác các lỗ hồng phần mềm, hoặc thậm chi cài đặt trực tiếp vào phần ctmg/phan lõi
của thiết bị.
Backdoor có thé được cài đặt trong hai phần khác nhau trong hệ thống:
- Phần ctmg/phan lõi: các thay đối vat lý cung cấp quyền truy cập từ xa vào
thiết bị
- Phần mềm: các tệp phần mềm độc hại ân đi dấu vết hoạt động bất hợp pháp
của chúng dé hệ điều hành không biết người dùng khác đang truy cập vào thiết bị.
+s* Logic bombs
Logic bomb là một loại mã độc được nhúng vào một chương trình hợp pháp ma
chúng có thê thực thi Một logic bomb thường được lập trình dé kích hoạt một hành
động độc hại khi xảy ra các sự kiện như thời gian đặt sẵn, sự kiện đặc biệt, hoặc điềukiện logic cụ thé Các hành động có thé gồm xóa dit liệu, gây tắc nghẽn mạng, gửithông tin nhạy cảm cho kẻ tan công, hoặc thậm chí là phá hủy hoàn toàn hệ thống.Logic bomb có thé gửi thông báo tới kẻ tan công khi người dùng truy nhập Internet
và sử dụng một chương trình đặc biệt nào đó như bộ xử lý văn bản Từ đó kẻ tấn
công có thê chuẩn bị cho các cuộc tấn công.
Logic bomb thường được an trong phan mềm chính hoặc hệ điều hành của một
hệ thống Tùy thuộc vào mục đích và cau trúc của nó, logic bomb có thể được thiết lập dé kích hoạt ngay lập tức sau khi điều kiện được đáp ứng hoặc sau một khoảng
thời gian nhất định
«+ Trojan Horses
Trojan Horses (Trojan) là một loại phan mềm độc hại được giấu kín bên trongmột phần mềm hoặc tập tin hữu ích khác đề lừa đảo người dùng và xâm nhập vào hệthống máy tính mà không được phát hiện Tên gọi "Trojan Horses" xuất phát từ câu
chuyện huyền thoại về ngựa gỗ Troy trong thần thoại Hy Lạp.
Các hành động mà Trojan Horses có thể thực hiện bao gồm:
- Gửi thông tin cá nhân: Trojan Horses có thê gửi thông tin nhạy cảm, như tên
đăng nhập, mật khẩu, số thẻ tín dụng, từ máy tính của nạn nhân đến kẻ tan công
- Tạo cửa sau (backdoor): Trojan Horses có thé mở một công kết nối (backdoor) vào hệ thống máy tính, cho phép kẻ tan công từ xa tiếp cận và kiểm soát hệ thống.
- Cai dat phân mêm độc hại khác: Trojan Horses có thê cài đặt các phân mêm độc hại khác trên hệ thông máy tính, mở ra cơ hội cho việc tân công tiêp theo.
- Gây tắc nghẽn mạng: Trojan Horses có thé tao ra lưu lượng mang lớn, gây tắc
nghẽn mạng và làm ngừng hoạt động các dịch vụ mạng.
Đỗ Thị Thu Thảo — B19DCAT182 4
Trang 17- Xoá dit liệu: Trojan Horses có thé xóa hoặc hủy hỏng đữ liệu trên máy tính, gâymat mát không thé khôi phục được.
“+ Zombie
Zombie (Mã độc zombie) là một thuật ngữ chi mã độc hoặc đoạn mã trong một
chương trình hoặc hệ thống ma không được sử dụng hoặc thực thi [6] Khi mã độc
zombie tồn tại trong một chương trình, nó có thé tạo ra lỗ héng bao mật và được kẻ
tấn công sử dụng dé thực hiện các hoạt động xâm nhập hoặc tấn công từ xa
Mã độc zombie thường được tạo ra thông qua các phương pháp lập trình không
an toàn, như lỗi quản lý bộ nhớ, lỗi xử lý đầu vào không chính xác, hoặc lỗi không
được kiểm tra hoặc xử lý Khi mã độc zombie được khai thác, kẻ tấn công có thêthay đôi hoặc thực thi mã độc này dé kiểm soát chương trình hoặc hệ thống.
Cac Zombie thường sử dụng trong các cuộc tan công từ chối dich vụ DDoS dé
tấn công vào một website nào đó Kiểu thông dụng nhất của Zombie là các agent
dùng dé tổ chức một cuộc tấn công DDoS Kẻ tan công có thé cai Zombie vào một
số lượng lớn các máy tính rồi ra lệnh tấn công cùng một lúc
Vi dụ: Trinoo và Tribe Flood Network là hai Zombie nồi tiéng được sử dung
như các công cụ dé thực hiện tan công DDoS.
s* Malicious Mobile Code
Malicious Mobile Code là một loại mã phần mềm độc hại có thể được truyền từ
xa dé chạy trên một hệ thống mà không cần sự tương tác từ người dùng Khác với
virus và worm, MMC không nhiễm vảo các tệp tin và không tự phát tán Thay vào
đó, loại tan công này thường tận dụng các quyền ưu tiên ngầm định đề thực thi mã
từ xa Các công nghệ lập trình như Java, ActiveX, JavaScript, VBScript thường được
sử dụng làm môi trường cho MMC.
Một ví dụ nổi tiếng về MMC là tấn công Nimda, sử dụng JavaScript Nimda thường được gọi là một cuộc tấn công hỗn hợp (Blended Attack) Tan công này có
thê được thực hiện thông qua một email, trong đó người dùng mở một email độc quatrình duyệt web Khi máy tinh bị nhiễm Nimda, nó sẽ có gang sử dụng danh sách địachỉ email trên máy đó để lây lan đến các máy khác
Các cuộc tan công MMC va ví dụ như Nimda nhắn mạnh sự tận dụng các lỗ hồng
và quyền ưu tiên mặc định trong hệ thống đề thực thi mã độc hại từ xa Dé bảo vệchống lại loại tấn công này, người dùng cần duy trì các bản vá bảo mật cho hệ điềuhành và các ứng dụng, cùng với việc sử dung phần mềm bảo mật tin cậy và can trọngkhi mở các tệp tin hoặc email không rõ nguồn gốc
s* Tracking Cookie
Đỗ Thị Thu Thảo — B19DCAT182 5
Trang 18Tracking Cookie là một dạng sử dụng bat hợp pháp của cookie dé theo dõi các
hoạt động duyệt web của người sử dung Cookie là một tệp dữ liệu chứa thông tin
về việc sử dụng một trang web cụ thé của người dùng Mục đích của việc duy trì
cookie trong hệ thống máy tính là dé tạo ra các giao diện và hành vi trang web phùhợp với từng người dùng Tuy nhiên, tính năng này có thê bị lạm dung dé tao ra các
phần mềm gián điệp (spyware) nhằm thu thập thông tin cá nhân về hành vi duyệt
web.
Tracking Cookie thường được sử dụng dé thu thập thông tin nhạy cảm về người dùng, chang hạn như lịch sử duyệt web, quảng cáo đã nhấp vào, hoặc thông tin cá
nhân khác Những đữ liệu này sau đó có thé được sử dụng cho các mục đích không
đúng đắn như quảng cáo không mong muốn, vi phạm quyền riêng tư hoặc thậm chí
gian lận cá nhân.
s* Spyware
Spyware là một loại phần mềm đặc biệt được thiết kế để thu thập thông tin từ
máy chủ thông qua Internet mà không được sự chấp thuận của chủ máy tính Điển hình, spyware được cai đặt một cách ấn danh như một phần mềm đi kèm với các ứng
dụng miễn phí (freeware) và phần mềm chia sẻ (shareware) mà người dùng có thể
tải xuống từ Internet.
Khi đã được cài đặt, spyware sẽ lén lút theo dõi hoạt động của máy tính và gửi
dữ liệu thông tin đến một máy chủ khác (thường thuộc về các công ty quảng cáo
hoặc tin tặc) Phần mềm gián điệp này có thê thu thập thông tin về địa chỉ email, mật
khẩu, số thẻ tín dụng và các dữ liệu khác Khác với worm và virus, spyware không
có khả năng tự sao chép và lây lan.
Các hoạt động của spyware có thé bao gồm hiền thị quảng cáo không mong muốn,
theo dõi lịch sử duyệt web, ghi lại các phím được nhắn và đánh cắp thông tin cá nhânquan trọng Mục đích chính của spyware thường là thu thập thông tin để sử dụng
cho mục đích thương mại và tiếp thị, hoặc thậm chí vi phạm quyền riêng tư và gian
lận cá nhân.
s* Virus HOAX
Virus HOAX hay các cảnh báo virus giả là một hình thức lừa đảo trực tuyến mà
kẻ tấn công sử dụng dé gửi thông báo độc hại cho người dùng, thường thông qua
email hoặc các tin nhăn pop-up trên trình duyệt web Mục tiêu của cảnh báo virus
giả là tạo ra sự hoang mang và lo ngại trong người dùng, đồng thời thuyết phục họ gửi cảnh báo cho nhiều người khác thông qua email [7].
Cảnh báo virus giả thường có dạng thông báo khẩn cấp, đòi hỏi người dùng thực
hiện các biện pháp bao mật ngay lập tức dé bảo vệ hệ thống Thông điệp trong cảnh
báo thường cho rằng máy tính của người dùng đã bị nhiễm virus hoặc đang gặp nguy
Đỗ Thị Thu Thảo — B19DCAT182 6
Trang 19hiểm bảo mật nghiêm trọng Một số cảnh báo giả có thê đề cập đến việc chữa trị mãđộc hoặc cung cấp hướng dẫn về việc thiết lập lại hệ điều hành hoặc xóa các tệp tin
gây hại Mặc dù cảnh báo giả không gây nguy hiểm trực tiếp cho hệ thống, nhưng
nó gây ra tác động tiêu cực tới người dùng và đội ngũ hỗ trợ kỹ thuật
1.13 Một số cách phòng chống mã độc
Phòng chống mã độc và ngăn chặn mã độc thật sự rất nguy hiểm với người dùngthông thường Cần có một phương pháp phòng chống mã độc và ngăn chặn một cách
tổng thê và đơn giản nhất cho tất cả mọi người Một cách tổng quan nhất, việc phòng
tránh mã độc và ngăn chặn mã độc là tổng hòa của nhiều yếu tố khác nhau Dưới
đây là một số biện pháp phòng chống mã độc thường gặp:
- Cập nhật và bảo mật hệ thống: Dam bảo rằng hệ điều hành, trình duyệt vàcác phần mềm khác được sử dụng trên hệ thống đều được cập nhật mới nhất và có
các bản vá bảo mật.
- Sử dụng phần mềm diệt virus và tường lửa: Dam bảo cập nhật định kỳ và
quét hệ thống dé phát hiện và loại bỏ các phần mềm độc hại
- Xây dựng chính sách với các thiết bị PnP: Cần thiết lập lại chế độ cho các
thiết bị và chương trình này dé hạn ché sự thực thi không kiểm soát của mã độc
- Kiểm tra và xác minh nguồn gốc của các tệp tin: Trước khi mở tệp tin từnguồn không xác định hoặc không tin cậy, cần kiểm tra và xác minh nguồn gốc
- Không nhấp vào các liên kết không đáng tin: Tránh nhấp vào liên kết trongemail, tin nhắn, hoặc trang web không đáng tin Cân thận với các liên kết rút gọn và
tránh truy cập vào các trang web đáng ngờ.
- Kiểm tra quyền truy cập ứng dụng: Điều này giúp ngăn chặn mã độc khai thác các lỗ hồng bảo mật và truy cập trái phép vào hệ thống.
- Hạn chế sử dung tài khoản quyền cao: Hạn chế việc sử dụng tai khoảnngười dùng với quyền quản trị hoặc quyền hệ thống Sử dụng tài khoản với quyền
hạn tối thiểu cần thiết dé thực hiện các hoạt động hàng ngày.
- Đào tạo người dùng: Cung cấp dao tạo và hướng dẫn cho người dùng về cách
phát hiện và tránh mã độc, bao gồm cách nhận diện email lừa đảo, tin nhắn xâmnhập và các kỹ thuật tan công phổ biến khác
- Theo dõi hoạt động mạng: Theo dõi hoạt động mạng của hệ thống dé phát
Trang 201.2 Cac phương pháp phát hiện mã độc
1.2.1 Phát hiện dựa trên phân tích tinh
Phân tích tĩnh là quá trình nghiên cứu và phân tích mã, cấu trúc một phần mềm
ma không cần thực thi nó, nhăm kiểm tra xem một tập tin hoặc phần mềm có chứa
mã độc hay không và cô gắng hiệu hành vi của mã độc đó Phân tích tĩnh có thé được
thực hiện ở hai mức độ: cơ bản và nâng cao.
Ở mức độ cơ bản, người phân tích sẽ không đi sâu vào việc phân tích các đoạn
mã của mã độc mà có thê sử dụng một SỐ công cụ dé tìm kiếm, kiểm tra một số thông
tin hữu ích như: định dạng tập tin, trích xuất các chuỗi, xem tập tin có bị làm rối
không, các hàm và thư viện mà tập tin có thé sử dụng, Một số kỹ thuật sử dụng
dùng trong phân tích tĩnh như [8]:
Cơ bản Nâng cao
Ham va thu vién Kiém tra dinh dang,
liên ket thong tin tép tin
X JN ⁄
Hình 1.2 Phân loại kỹ thuật phan tích tinh
+ Sử dung mã băm đặc trưng dé tìm kiếm, phân loại mã độc
Trong phân tích mã độc, hashing được sử dụng đề xác định tính duy nhất của cácmau mã độc Mỗi mau mã độc được chuyên đổi thành một giá trị băm duy nhất sử
dụng hàm băm Thuật toán hash phổ biến nhất được sử dụng là MDS, SHAI,
SHA256 [9].
Với mã băm thu được, ta có thé sử dụng cho nhiều mục đích khác nhau:
- Gán nhãn, đánh dấu một biến thể mã độc, trạng thái file sạch
Đỗ Thị Thu Thảo — B19DCAT182 8
Trang 21- Chia sẻ cho các chuyên gia, người dùng khác để họ hỗ trợ phát hiện hoặc đề
phòng mã độc.
- Upload lên các trang web online (VirusTotal) dé xác định xem có loại mã độc
nào tương tự hay chưa.
s* Tìm kiếm các chuỗi String
Một tệp tin thường chứa nhiều chuỗi ký tự nhằm thông điệp, tham số của các lờigọi hàm, đường dẫn tệp, tên miền hay URL
Tìm kiếm các chuỗi có thê là cách đơn giản để dự đoán hành vi của chương trình:Chương trình kết nối tới máy chủ có địa chỉ như thế nào, có các thông báo gì quantrọng, chương trình liên kết hoặc sử dụng các ứng dụng hoặc tài nguyên khác trong
hệ thong hay không [9]
Ví dụ: MalwareTech đã tìm ra killswitch trong biến thể đầu tiên của mã độc tống
tiền Wanna Cry là địa chỉ URL được hard-coded trong mã độc này.
Có nhiều công cụ cho phép tìm kiếm các string trong một chương trình:
- Các chương trình xem, chỉnh sửa file nhị phân
- Các trình disassembler, debugger như IDA Pro, OllyDBG
- Các trình xem file PE
- Công cu Strings trong bộ Sysinternals cua Microsoft hoặc BinText của McAfee
s* Các mã độc được Packed (đóng gói) và Obfuscated (làm rồi)
Các hacker viết mã độc thường sử dụng kỹ thuật packed và obfuscated dé làm
cho mã độc khó bị phân tích hơn Phần mềm độc hại được đóng gói hoặc đóng gói
lại là phần mềm độc hại đã được sửa đổi bang cách sử dụng nén thời gian chạy déphần mềm chống virus khó nhận ra và gây khó khăn hơn cho các nhà nghiên cứu khi
thực hiện phân tích phần mềm độc hại Trong khi đó, obfuscated là một phương pháp làm cho mã ngu6n hoặc ngôn ngữ máy của một chương trình trở nên khó nam bắt
hơn Làm xáo trộn thường được các lập trình viên sử dụng trong chương trình của
họ để khó bị tấn công hơn, nhưng các nhà sản xuất phần mềm độc hại cũng sử dụng
các kỹ thuật này để khiến phần mềm độc hại của họ trở nên khó bị các nhà nghiên cứu phần mềm độc hại phát hiện và phân tích hơn.
s* Hàm và thư viện liên kết
Một trong những thông tin quan trọng mà có thé thu thập được từ một tệp thực thi
là thông tin về các hàm được import Imports là các hàm mà chương trình có thể gọi
trong quá trình thực thi Mã của những hàm này thường được lưu trữ trong các tệp
khác, ví dụ như các thư viện mã nguồn Các thư viện mã nguồn này được kết nối với
tệp thực thi chính thông qua quá trình linking Các thư viện mã nguồn có thể được
Đỗ Thị Thu Thảo — B19DCAT182 9
Trang 22liên kết tĩnh (static linking) hoặc liên kết động (dynamic linking) trong quá trình
thực thi của chương trình.
- Static linking: là một phương pháp ít được sử dụng trong mã độc, mặc dù nó
phổ biến trong hệ điều hành Unix/Linux Khi một thư viện được liên kết tĩnh vào
một tệp thực thi, nó được sao chép vào tệp thực thi và làm tăng kích thước của tệp
thực thi Điều này làm cho việc phân biệt giữa mã liên kết tĩnh và mã của tệp thực
thi trở nên khó khăn khi phân tích, vì PE header (header của các tệp thực thi
Windows) không cung cấp thông tin dé xác định xem tệp chứa mã liên kết tinh hay
không.
- Runtime linking: đặc biệt khi mã độc được làm rối hoặc đóng gói Khi cầnthực hiện các chức năng, các tệp thực thi mới tải các hàm và thư viện cần thiết
- Dynamic linking: là phương pháp phổ biến nhất Khi chương trình được tải,
hệ điều hành sẽ tìm kiếm các thư viện cần thiết và liên kết chúng vào chương trình.
Điều này cho phép chương trình sử dụng các tính năng của các thư viện mà khôngcần sao chép mã của chúng vào tệp thực thi
s* Dinh dang PE file
Thường thi các công cu có thé quét các file thực thi mà không quan tâm định
dạng của chúng Những việc biết được một file thuộc định dạng nào có thể cung cấpnhiều thông tin hữu ích về các chức năng của file thực thi đó
PE (Portable Executable) là định dạng được sử dụng bởi các file thực thi, đốitượng code hoặc các DLL trong Windows Định dạng PE là một cau trúc dir liệu
chứa các thông tin cần thiết dé hệ điều hành quan lý các mã thực thi Gần như tat cả các file có mã thực thi được hệ điều hành Windows tải đều là các file định dạng PE.
Tất nhiên, một số định dạng khác vẫn được phát hiện trong một số it mã độc
Các file PE bắt đầu băng một header chứa thông tin về mã nguồn, loại phần mềm,
các hàm thư viện cần thiết, không gian cần thiết Các thông tin này là rất giá trị đối
với việc phân tích mã độc.
+ Trinh tháo rời Disassembler
Là một chương trình máy tính chuyên đổi ngôn ngữ máy sang ngôn ngữ dễ hiểuhơn Bằng cách thực hiện trình phân tách, các nhà nghiên cứu sẽ có thể thực hiệnphân tích phần mềm độc hại và có gang hiểu phần mềm độc hại bằng cách phân tích
ngôn ngữ lắp ráp và thu thập thông tin từ chương trình phần mềm độc hại có thể
được sử dụng dé xác định các đặc điểm của phần mềm độc hại
Đỗ Thị Thu Thảo — B19DCAT182 10
Trang 231.2.2 Phát hiện dựa trên phân tích động
Không giống phân tích tĩnh, phân tích động mô tả quy trình phân tích tệp tin vàcau trúc của một chương trình để xác định các chức năng lúc nó thực thi vào thờiđiểm phân tích Phân tích động cũng là một cách hiệu quả để xác định chức năng
của phần mềm độc hại Phân tích động giúp đưa ra kết luận hoặc phỏng đoán một
tệp tin mẫu có phải là mã độc hay không bằng cách thu thập thông tin về hành vi của
tệp tin thực thi.
Phân tích động
Sử dụng Sanboxes Thực thi tệp tin Giám sát tiến trình Tạo mạng giả
Hình 1.3 Phân loại kỹ thuật phán tích động
Trong phân tích động, những thông tin cần được theo dõi trong suốt quá trình
thực thi mã độc như: các hành vi với tập tin, các tiễn trình, hành vi liên quan đến
registry, hành vi liên quan đến mạng, hay lắng nghe các gói tin Phân tích động cónhiều kỹ thuật [8]:
7
«* Sử dung Sandboxie — Phuong pháp phân tích mã độc nhanh chóng
Có tương đối nhiều các phần mềm cho pháp phân tích động mức cơ bản và hầu hết đều sử dụng công nghệ sandbox Đây là công nghệ cho phép chạy các chương
trình trong một môi trường thực thi an toàn, không sợ bị ảnh hưởng tới môi trường
thực tế Sandbox hội tụ đầy đủ các yếu tố, kế cả kết nối mạng dé chương trình được
chạy trong một môi trường tương tự môi trường thực tế
Nhiều sandbox mã độc - chăng hạn như Comodo Instant Malware, Analysis,
BitBlaze, ThreatExpert, Joe Sandbox, Anubis, Norman SandBox, GFI Sandbox — có
thé phân tích mã độc miễn phí Kết quả đầu ra được phân chia chi tiết theo từng
nhóm thông tin và rất đễ theo dõi.
+* Thực thi tệp tin
Thực thi tệp tin là một bước hết sức quan trọng trong quá trình phân tích động
Mã độc trên hệ điều hành Windows được biên dịch sang 02 loại file chính (.dll, exe)
- Mã độc loại exe: có thể thực thi băng cách click trực tiếp hoặc chạy qua cửa số
dòng lệnh (cmd).
Đỗ Thị Thu Thảo — B19DCAT182 11
Trang 24- Mã độc loại dll: để chạy mã độc, sử dụng chương trình rundll32.exe hoặc thay
đổi thông tin PE header dé hệ điều hành gọi file dIl như file exe
Cú pháp chạy:
rundll32.exe DLLname, Export arguments
Export arguments: tên ham hoặc thứ tự ham trong bang export functions.
Luu y: Mot số DLL dé thực thi cần được cài đặt dưới dạng dịch vụ, do đó cầnchú ý quá trình chạy các DLL dang này dé xử lý cho phù hợp
s* Giám sát các tiến trình sử dụng Process Monitor
Process Monitor hay procmon là công cụ giám sát cho hệ điều hành Windows,
sử dụng dé giám sát các hành vi tương tác trên registry, file hệ thống, mạng, tiễn trình, luồng Đây là công cụ kết hợp và nâng cao tính năng của hai bộ công cụ:
Time Process Name PID Operation Path Result Detail ^
11:02: x4 Explorer.EXE 1276 ##RegQueryKey HKCLIS5oftwarexClasses SUCCESS Quen: Name
11:02: #4 Explorer.EXE 1276 ##ŸRegQuenyKey HKCL5oftwarexClasses SUCCESS Query: HandleTag
11:02: 1x Explorer.EXE 1276 ##tRegQueryKey HKCLI`5oftwarexClasses SUCCESS Query: HandleTag
11:02: #4 Explorer.EXE 1276 @#AegOpenKey | HKCU\Software\Classes\Applications\ NAME NOT FOUND Desired Access: R
11:02: 1£ Explorer.EXE 1276 @tRegOpenKey HKCR Applications \Procmon64.exe NAME NOT FOUND Desired Access: R
11:02: £x Explorer.EXE 1276 ##RegQueyKay HKCU\Software\Classes SUCCESS Query: Name
11:02: #4 Explorer.EXE 1276 #RegQueryKey HKCLI5oftwarexClasses SUCCESS Query: HandleTag
11:02: #4 Explorer.EXE 1276 @tReqQueryKey HKCU\Software\Classes SUCCESS Quen: Name
11:02: #4 Explorer.EXE 1276 @#RegOpenKey | HKCU\Software\Classes\Applications\ NAME NOT FOUND Desired Access: R
11:02: 1£ Explorer.EXE 1276 #ft|RegOpenKay HKCRApnlicatians`ProcmonB4.exe NAME NOT FOUND Desired Access: R
Hình 1.4 Sử dung Procmon dé theo dõi các tiến trình
s* Tạo mạng giả - Fake Network
Một phần mềm thường cần giao tiếp với các máy chủ bên ngoài qua internet để
nhận các chỉ báo và tương tác với mạng Tuy nhiên, dé nhanh chóng nhận được các
dau hiệu và chỉ báo mang mà không cần kết nối thực sự với internet, một giải pháp
là tạo một mạng giả Điều này đòi hỏi mã độc phải được ngăn cản nhận ra rằng nó đang chạy trong môi trường ảo hóa Các dấu hiệu này có thé là tên DNS, địa chỉ IP
và chữ ký gói tin Dé giả mạo mạng thành công, cần phải ngăn mã độc nhận ra rằng
nó đang thực thi trong môi trường ảo hóa.
Nhìn chung, phân tích động một phần mềm có thể hỗ trợ và chứng thực các phát
hiện của việc phân tích tĩnh lúc đầu Tuy nhiên, kỹ thuật phân tích động cũng có
Đỗ Thị Thu Thảo — B19DCAT182 12
Trang 25những khiếm khuyết, chăng hạn như một mã độc có thể phát hiện môi trường
sandbox, hoặc ảo hóa va dừng thực thi.
1.3 Một số nghiên cứu liên quan
Mục này diém qua một sô nghiên cứu liên quan gân với đô án, bao gdm các nghiên cứu như:
Nghiên cứu [10] này kết hợp thông tin tổng hợp được từ các tệp DLL đã nhập,
dau thời gian của quá trình biên dịch và các chuỗi opcode được mã hóa một cách
tĩnh Các tác giả đã sử dụng mạng LSTM để trích xuất các tính năng từ siêu dữ liệu
PE và kết hợp các lớp tích chập dé trích xuất các tính năng từ opcode tĩnh trình tự.
Kết quả là các tác giả đã đạt được 93% về độ chính xác và độ đo F1 đạt 92% Tài
liệu tham khảo [10] chia sẻ ý tưởng mô hình hóa vấn đề phát hiện phần mềm độc hại
như một vấn đề phân loại văn bản và sử dụng phương pháp học sâu một cách toàndiện, tương tự với công trình trong đồ án Tuy nhiên, phương pháp trong đồ án cũngnhấn mạnh Doc2Vec, giúp rút trích đặc trưng dựa trên học sâu một cách rất lớn
Nghiên cứu [11] đã điều tra hiệu suất của một mạng nơ-ron tích chập CNN bằng
cách xem dãy mã opcode đã được phân tách như một đoạn văn bản Tác giả nhấn mạnh rằng phương pháp học sâu đặc biệt hữu ích vì nó loại bỏ sự phụ thuộc vào kỹ thuật kỹ thuật đặc trưng, vi mang CNN có thể khám phá các đặc trưng của riêng
minh Các đặc trưng nay có thể bổ sung cho các đặc trưng được tạo ra bởi các chuyên
gia con người Trong nghiên cứu này, khi dãy mã vận hành thông qua lớp nhúng, nó
có cùng hình thức với hình ảnh, từ đó phù hợp với mạng CNN Tác giả đã đạt độ đo
F1 là 97% trên tập dữ liệu nhỏ và 86% trên tập dữ liệu lớn.
Khan và cộng sự [12] đã giới thiệu kỹ thuật chuyển đổi mã hợp ngữ, sau đó trích
xuất Opcode dé tạo ra ma trận, từ đó tạo ra hình ảnh ResNet va GoogleNet được
dao tạo bang cách sử dụng các hình ảnh được xây dựng dé phát hiện các tính năng
của phần mềm độc hai bằng cách huấn luyện, đạt được 88.36% ty lệ chính xác.
Raff et al [13] sử dụng raw bytes của tệp và học sâu dé phat hiện mã độc Hai
phương pháp MalConv (mang CNN) và byte n-gram được sử dụng dé trích xuất tính
năng Học sâu RNN được sử dụng dé xây dung va xác thực mô hình phat hiện Kết
quả thử nghiệm xác nhận rằng phương pháp được đề xuất tạo ra độ chính xác pháthiện cao lần lượt là 92,50 và 94,00 đối với các phương pháp trích xuất tinh năngMalConv và byte n-gram Điểm mạnh của phương pháp này là nó có thê xử lý tệpthô trực tiếp mà không cần tiền xử lý, chăng hạn như phân tích tĩnh hoặc động Tuynhiên, phương pháp được đề xuất chậm do kích thước tệp thô lớn và sự kết hợp của
hai phương pháp học sâu.
Abhijit Yewale và cộng sự [14] đề xuất phương pháp sử dụng sự lặp lại của
Opcode Phân tích 100 mẫu lành tính và mã độc, 20 opcode xuất hiện thường xuyên
Đỗ Thị Thu Thảo — B19DCAT182 13
Trang 26nhất: JMP, JZ, JNZ, JB, CMP, POP, MOV, PUSH, ADD, SUB, OR, AND, XOR,INC, DEC, LEA, RETN, CALL, TEST, MOVZX 20 mã lệnh này được cung cap
cho các mô hình phân loại học may Random Forest , Decision Tree BOOSTING va
Support Vector Machine.
Namanya va cong su [15] dé xuat phat hién phan mềm độc hai dựa trên hàm băm
kỹ thuật dựa trên mô hình CNN Bốn hàm băm khác nhau được sử dụng dé tìm chỉ
số tương tự giữa các họ phần mềm độc hại Nhóm giống nhau các gia đình được thực hiện băng cách sử dụng phân cụm Tất cả bốn chức năng được thực hiện khác nhau
và điểm tích lũy được tính toán để cuối cùng tính toán xác suất phần mềm độc hai.
Phát hiện mã độc là một vấn đề rất lớn và đã được được nghiên cứu bởi nhiều
nhà nghiên cứu từ rất lâu với nhiều quan điểm khác nhau Trên đây chỉ xem xét cácnghiên cứu sử dụng học máy và đặc biệt là học sâu Nhìn chung, các kết quả từ củacác nghiên cứu ở trên không giống nhau do thiếu một phương pháp thống nhất dé
phát hiện và mô tả các đặc trưng Độ chính xác của từng trường hợp còn phụ thuộc
vào tập dit liệu được sử dụng dé thử nghiệm và huấn luyện Nhìn chung, các phương
pháp dựa vào phân tích động rất hiếm so với các phương pháp khác Đồ án nổi bật
trong số các nghiên cứu này bằng cách chủ yếu dựa vào opcode được tạo động tập
dữ liệu Hơn nữa, phương pháp trong đồ án liên quan đến việc sử dụng rộng rãi
phương pháp học sâu nâng cao (CNN, LSTM ), đây cũng là một bước phát triển
gần đây trong vấn đề phát hiện phần mềm độc hại.
Trong đồ án, các mô hình học sâu MLP, LSTM, Bidirectional LSTM, CNN được
sử dụng dé xây dựng các mô hình phát hiện mã độc Các kỹ thuật học sâu này đã
được chứng minh là nhanh và hiệu quả cho các ứng dụng bảo mật thông tin nói chung và phát hiện mã độc nói riêng.
1.4 Kết luận chương
Như vậy, chương | này đã trình bày một số khái niệm tổng quan về mã độc,các dạng mã độc, biện pháp phòng chống cùng với các phương pháp phát hiện mã
độc Bên cạnh đó, chương | cũng đã đề cập một số nghiên cứu liên quan Chương 2
của đồ án sẽ giới thiệu về các kỹ thuật word embedding, các mô hình học sâu được
sử dụng phổ biến và mô hình phát hiện mã độc dựa trên học sâu sử dụng opcode
Đỗ Thị Thu Thảo — B19DCAT182 14
Trang 27CHUONG 2: PHAT HIỆN MA ĐỘC DỰA TREN HỌC SÂU
SỬ DỤNG OPCODE
2.1 Tổng quan về học máy, học sâu
2.1.1 Khái quát về học máy
Máy học, hay còn gọi là Machine Learning (ML) trong tiếng Anh, là một lĩnh
vực trong trí tuệ nhân tạo mà các chương trình máy tính được thiết kế dé tự học va
cải thiện hiệu suất theo thời gian Công nghệ này đang phát triển rất nhanh và trở
nên phổ biến trên toàn thế giới
Thuật toán máy học cho phép máy tính học từ dữ liệu và tìm ra các mẫu, quy tắchoặc thông tin tiềm ân Thay vi lập trình trực tiếp các quy tắc và giải thuật cụ thé,máy học cho phép máy tinh tự "học" thông qua việc xử lý di liệu và tìm hiểu từ kếtqua Một yếu tố quan trọng dé đạt được kết quả tốt trong máy học là sử dụng dit liệu
lớn, hay còn gọi là Big Data Sự phát triển của công nghệ đã tạo ra khối lượng lớn
dữ liệu có sẵn dé phân tích và học từ đó Điều nay giúp cải thiện độ chính xác và khả
năng dự đoán của các mô hình máy học.
Tuy nhiên, dé dam bảo tính chính xác và tránh dữ liệu giả, quá trình lựa chọn và
phân tích đữ liệu vẫn cần sự can thiệp và kiểm soát từ con người Con người thườngtham gia trong việc tiền xử lý dữ liệu, chọn lọc và xác thực kết quả của thuật toán
máy học dé đảm bảo tinh đáng tin cậy va đúng dan của kết quả.
Đỗ Thị Thu Thảo — B19DCAT182 15
Trang 28Dựa trên các tiêu chí khác nhau, người ta có thể phân loại các thuật toán Học máytheo nhiều cách khác nhau Chang hạn, dựa vào van đề, nhiệm vụ cần giải quyết củathuật toán, người ta phân loại các thuật toán Học máy thành nhiều loại [16]:
- Hồi quy (Regression): Giải quyết bài toán dự đoán giá trị một đại lượng nào đó dựa vao giá tri của các đại lượng liên quan Vi du, dựa vào các đặc điểm như diện
tích, số phòng, khoảng cách tới trung tâm dé dự đoán giá trị căn nhà
- Phân lớp (Classification): Giải quyết các bài toán nhận dang xem một đối tượng
thuộc lớp nào trong số các lớp cho trước Ví dụ, bài toán nhận diện chữ viết, bài toán
phân loại email thuộc các thuật toán phân lớp.
- Phân cụm (Clustering): Ý tưởng cơ bản giống với các thuật toán phân lớp, sự
khác biệt là ở chỗ, trong các bải toán phân cụm, các cụm chưa được xác định trước
và thuật toán phải tự khám phá và phân cụm dữ liệu.
Dựa trên cách máy tính học, người ta chia các thuật toán Học máy thành:
- Học có giám sat (Supervised learning): Thuật toán sẽ học trên dữ liệu đã được
dán nhãn Ví dụ, trong bài toán nhận diện hình ảnh, dữ liệu đầu vào sẽ là rất nhiềubức ảnh khác nhau về loài mèo Thuật toán sẽ học các đặc điểm quan trọng từ các
bức anh đó dé nhận biết xem một đối tượng trong một bức ảnh có phải là mèo hay
không.
- Học không giám sát (Unsupervised learning): Thuật toán học trên các dữ liệu
chưa được gán nhãn và sẽ phải tự khám phá ra cau trúc, phân bố của dữ liệu dé tự
phân cụm chúng.
- Học bán giám sát (Semi-supervised learning): Kết hợp cả học giám sát và học không giám sát Tức là, một số dữ liệu đầu vào sẽ được gán nhãn và một số khác thì
không được gán nhãn.
- Học tăng cường/củng cố (Reinforced learning): Thuật toán sẽ tự học dựa trên
việc tính điểm thưởng, phạt cho các kết quả thực hiện nhiệm vụ Cụ thể hơn, các
thuật toán học tăng cường nghiên cứu cách thức một tác nhân (Agent) trong một môi trường (Environment) đang ở một trạng thái (State) thực hiện một hành động
(Action) dé tối ưu hóa một phan thưởng (Reward) chung Các chương trình máy tinh
như AlphaGo đã giúp máy tính đánh bại con người trong các trò chơi như cờ vua,
cờ vây được xây dựng dựa trên thuật toán này.
Việc phân loại trên chỉ có tính chất tương đối vì cùng một thuật toán nhưng có
thể phân loại thuộc các loại khác nhau Dưới đây là một cách đê phân loại và lựa
chọn thuật toán cho phù hợp với bài toán quan tâm.
Đỗ Thị Thu Thảo — B19DCAT182 16
Trang 29Do you have labeled data?
What do you want to predict? Do you want to group the data?
Cluster Dimensionality Analysis Reduction
Hierarchical Clustering
Các thuật toán Học máy đang được áp dụng rộng rãi trong rất nhiều lĩnh vực
trong đời sống xã hội, từ sản xuất công nghiệp, nông nghiệp, tới tài chính, ngân hàng,
y tế, giáo dục, dich vụ giải trí Một số ứng dụng phô biến của Học máy có thé décập đến như [17]:
- Xử lý ảnh: Bài toán xử lý ảnh(Image Processing) giải quyết các vấn đề phântích thông tin từ hình ảnh hay thực hiện một SỐ phép biến đôi Một số ví dụ như: Gắnthẻ hình ảnh (Image Tagging), nhận dạng ký tự (Optical Character Recognition), Ô
tô tự lái (Self-driving cars)
- Phân tích văn bản: Phân tích văn bản (Text analysis) là công việc trích xuất
hoặc phân loại thông tin từ văn bản: các facebook posts, emails, các đoạn chats, tai
liệu, Một số ví dụ như: Lọc spam (Spam filtering), phân tích ngữ nghĩa (Sentiment
Analysis), Khai thác thông tin (Information Extraction)
- Khai pha dữ liệu: Khai pha dữ liệu (Data mining) là quá trình khám pha ra các thông tin có giá trị hoặc đưa ra các dự đoán từ dữ liệu Định nghĩa này có vẻ bao
quát, nhưng ta cần nghĩ về việc tìm kiếm thông tin hữu ích từ một bảng dữ liệu rất
lớn Mỗi bản ghi sẽ là một đối tượng cần phải học và mỗi cột là một đặc trưng.Chúng ta có thể dự đoán giá trị của một cột của bản ghi mới dựa trên các bản ghi đã
học hoặc là phân nhóm các bản ghi Sau đây là những ứng dụng của khai phá dữ
liệu: Phát hiện bất thường (Anomaly detection), phát hiện các ngoại lệ, phát hiện các
quy luật (Association rules)
Đỗ Thị Thu Thảo — B19DCAT182 17
Trang 30Ngoài ra, các thuật toán Học máy được sử dụng rộng rãi trong các bài toán như nhận diện giọng nói (Search by text, talk to assistant like Siri hay Google Assistant),
hệ thống khuyến nghị (ví dụ khi tìm một sản phẩm nào đó trên Google thì sau đótrên các nền tảng xã hội mà sử dụng sẽ xuất hiện một loạt các quảng cáo liên quanđến sản phẩm đó), xây dựng xe tự hành, dịch thuật, lọc email
2.1.2 Khái quát về học sâu
Học sâu là một phương thức trong lĩnh vực trí tuệ nhân tạo (AI), được sử dụng
dé dạy máy tinh xử lý dữ liệu theo cách được lay cảm hứng từ bộ não con người Mô
hình học sâu có thể nhận diện nhiều hình mẫu phức tạp trong hình ảnh, văn bản, âm
thanh hoặc các đữ liệu khác để tạo ra thông tin chuyên sâu và dự đoán chính xác Chúng ta có thé sử dụng các phương pháp học sâu dé tự động hóa các tác vụ thường đòi hỏi trí tuệ con người, chăng hạn như mô tả hình ảnh hoặc chép lời một tập tin
âm thanh [18].
Trí tuệ nhân tạo (AI) cố gang đào tạo dé giúp máy tính có thể tư duy và học hỏinhư con người Công nghệ học sâu thúc đây nhiều ứng dụng AI được sử dụng trongcác sản phẩm hàng ngày, chang hạn như:
- Tro lý kỹ thuật số
- _ Điều khiển tivi từ xa kích hoạt bang giọng nói
- Phat hiện gian lận
- _ Nhận dạng khuôn mặt tự động
Công nghệ học sâu được ứng dụng rộng rãi trong các sản phẩm và dich vụ hang
ngày chăng hạn như trợ lý kỹ thuật số, điều khiển từ xa hỗ trợ giọng nói và phát hiệngian lận thẻ tín dụng cũng như các công nghệ mới nổi chăng hạn như ô tô tự lái
s* Cách hoạt động của mô hình học sâu
Các thuật toán học sâu là các mạng nơ-ron được lập mô hình theo bộ não con
người Ví dụ: một bộ não con người chứa hàng triệu nơ-ron được kết nối với nhau,làm việc cùng nhau dé tìm hiểu và xử lý thông tin Tương tự, các mạng no-ron học
sâu, hay mạng nơ-ron nhân tạo, được tạo thành từ nhiều lớp nơ-ron nhân tạo hoạt
động cùng nhau bên trong máy tính.
Các nơ-ron nhân tạo là những mô-đun phần mềm được gọi là nút, sử dụng các
phép toán dé xử lý dữ liệu Các mạng nơ-ron nhân tạo là những thuật toán học sâu
sử dụng các nút này dé giải quyết các van đề phức tạp.
s* Các thành phần của học sâu
Một mạng nơ-ron chuyên sâu có các thành phần sau.
- Lớp đầu vào: Một mạng nơ-ron nhân tạo sẽ có một số nút dé nhập dữ liệu đầu
vào Các nút này tạo nên lớp đầu vào của hệ thống.
Đỗ Thị Thu Thảo — B19DCAT182 18
Trang 31- Lớp an: Lớp đầu vào xử lý và chuyền dit liệu đến các lớp sâu hơn trong mạngnơ-ron Các lớp an này xử lý thông tin ở các cấp độ khác nhau, thích ứng với hành
vi của mình khi nhận được thông tin mới Các mạng học sâu có hàng trăm lớp ân cóthé được dùng dé phân tích một van dé từ nhiều góc độ khác nhau
Ví dụ: Nếu phải phân loại hình ảnh của một loài vật chưa xác định, ta cần so sánh
hình ảnh này với các loài vật đã biết Chăng hạn, ta sẽ quan sát hình dáng của cặp
mắt, đôi tai, kích thước, số chi và hình mẫu lông của loài vật đó Ta sẽ cố gang xác
định các hình mẫu, chăng hạn như sau:
Loài vật có móng guôc nên nó có thê là bò hoặc hươu.
Loài vật có mat mẻo nên nó có thê là một loài mèo hoang dã nào đó.
Các lớp ân trong mạng nơ-ron chuyên sâu hoạt động theo cùng một cách Nêu một thuật toán học sâu đang cô găng phân loại một hình ảnh động vật, moi lớp an của thuật toán nay sẽ xu lý một đặc điêm khác nhau của con vat và cô găng phân loại chính xác nó.
- Lớp dau ra: Lớp dau ra bao gôm các nút xuat dữ liệu Cac mô hình học sâu xuât ra đáp án "co" hoặc "không" chỉ có hai nút trong lớp đâu ra Mặt khác, các mô hình xuât ra nhiêu đáp án hơn sẽ có nhiêu nút hơn.
+ Ứng dụng của học sâu
Hiện nay học sâu có rất nhiều ứng dụng, một số ứng dụng thường thấy như:
- Người máy: Khoa học công nghệ ngày càng phát triển, đặc biệt trong lĩnh vựcngười máy được thúc đây bởi những tiến bộ trong AI và học sâu Ví du, AI cho phéprobot cảm nhận và phản ứng với môi trường quanh nó, điều hướng, phân loại và xử
lý các đồ vật không bằng phăng, dé vỡ hoặc sắp xếp những vật lộn xộn lại với nhau
- Nông nghiệp: Ngày nay, học sâu cho phép nông dân trién khai thiết bi có thé
nhìn thấy và phân biệt giữa cây trồng và cỏ dại Khả năng này cho phép máy làm cỏ
phun thuốc diét cd một cách có chọn lọc lên cỏ dai và dé các cây khác không bị ảnh
hưởng.
- Nghiên cứu y tế và chăm sóc sức khỏe: Học sâu đang có những bước tiến đáng
kê vào việc cải thiện chất lượng, chăm sóc sức khỏe bằng cách dự đoán các sự kiện
y tế từ dữ liệu hồ so sức khỏe điện tử Từ chân đoán bệnh, chân đoán khối u cho đến các loại thuốc được tạo riêng cho từng bộ gen cá nhân, ứng dụng của học sâu vào y học đang nhận được sự chú ý từ nhiều công ty được phẩm và y tế lớn nhất hiện nay.
- Trợ lý ảo: trợ lý ảo đã không còn quá xa lạ với chúng ta bởi những hiệu quả
vượt trội ma chúng mang lại Phổ biến nhất có thé ké đến là Alexa, Siri, Google
Đỗ Thị Thu Thảo — B19DCAT182 19
Trang 32Assistant Công nghệ nay học cach hiểu và thực hiện các mệnh lệnh thông qua đánh
giá ngôn ngữ tự nhiên của con người.
2.1.3 Một số thuật toán học sâu
2.1.3.1 Mô hình MLP
s* Mô hình Neural network
Một mạng Neural được cấu thành bởi các Neural đơn lẻ được gọi là các
perceptron Một perceptron sẽ nhận 1 hoặc nhiều đầu vào x dang nhị phân và cho ra
kết quả dạng o dạng nhị phân duy nhất [19] Các đầu vào được điều phối tầm ảnhhưởng bởi các tham số trọng lượng tương ứng w của nó, còn kết quả đầu ra đượcdựa vào một ngưỡng quyết định b nào đó
Mạng Neural là sự kết hợp của các tầng perceptron hay còn được gọi làperceptron đa tầng (multilayer perceptron )
output layer input layer
hidden layer
Hình 2.3 Mô hình don giản cua MLP
Layer đầu tiên là input layer, các layer ở giữa được gọi là hidden layer, layer cuối
cùng được gọi là output layer Các hình tròn được gọi là node.
Mỗi mô hình luôn có 1 input layer, 1 output layer, có thể có hoặc không các
hidden layer Tổng số layer trong mô hình được quy ước là số layer - 1 (không tính
input layer).
Vi dụ như ở hình trên có 1 input layer, 2 hidden layer và 1 output layer Số lượng
layer của mô hình là 3 layer.
Mỗi node trong hidden layer và output layer :
» Liên kêt với tat ca các node ở layer trước đó với các hệ sô w riêng.
Đỗ Thị Thu Thảo — B19DCAT182 20
Trang 33* Mỗi node có 1 hệ số bias b riêng.
* Diễn ra 2 bước: tính tông linear và áp dung activation function
+ Kiến trúc của MLP
Multi-layer perception còn được gọi là MLP Nó là một mô hình mạng nơ-ron
được kết nối đầy đủ, giúp biến đổi bất kỳ kích thước đầu vào nào thành kích thước
mong muốn Multi-layer perception là một mạng nơ-ron có nhiều lớp: một lớp đầuvào và với mỗi đầu vào, có một nơ-ron (hoặc nút), một lớp đầu ra với một nút duy
nhất cho mỗi đầu ra và nó có thể có bat kỳ số lượng lớp ẩn nào và mỗi lớp an có thé
có bất kỳ số lượng nút nào Các tế bào thần kinh trong MLP được huấn luyện với sự
lan truyền ngược [20].
Một mạng MLP tổng quát là mạng có n (n > 2) tang (thông thường tang đầu vào
ko được tính đến), trong đó gồm 1 tang đầu ra (tang thứ n) và (n-1) tầng an.
Kiến trúc của 1 mạng MLP tổng quát có thé mô tả như sau:
- Dau vào là các véc tơ (x1, X2, , Xp) trong không gian p chiêu, dau ra là các véc
tơ (, y¿ Yq) trong không gian ¿ chiêu Đôi với các bài toán phân loại p chính là
kích thước mẫu đầu vào, g chính là số lớp cần phân loại
- Môi neural thuộc tang sau liên két với tat cả các noron thuộc tang liên trước nó.
- Dau ra của neural tang trước là dau vào của noron thuộc tang liên sau nó.
Tang vào Tang ân 1 Tang ân (n-1) Tang ra
WOO on FORO —
" wie ea
Đỗ Thị Thu Thảo — B19DCAT182 21
Trang 34s* Hoạt động của MLP
Tại tầng đầu vào các neural nhận tín hiệu vào xử lý (tính tổng trọng số, gửi tới
hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các neural thuộc tầng an thứ nhất; các noron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tang ân thứ 2 Quá trình tiếp tục cho đến khi
các neural thuộc tầng đầu ra cho kết quả
Hình 2.5 Hoạt động cua MLP
- Bắt đầu từ lớp đầu vào, truyền đữ liệu tới lớp đầu ra Bước này là sự lan truyền
về phía trước.
- Dựa trên kết quả đầu ra, tính toán sai số (chênh lệch giữa kết quả dự đoán và
kết quả đã biết) Lỗi cần được giảm thiểu.
- Truyền ngược lỗi Tìm đạo hàm của nó theo từng trọng số trong mạng và cập
nhật mô hình Trong đó, trọng số nút sau đó có thê được điều chỉnh dựa trên các hiệuchỉnh nhằm giảm thiéu lỗi trong toàn bộ đầu ra cho điểm dữ liệu thứ n Trong đó,hàm lỗi được tính bởi công thức:
Đỗ Thị Thu Thảo — B19DCAT182 22
Trang 35Sử dụng giảm độ dốc, sự thay đổi trong mỗi trọng số wji là:
de(n)
6v;(n)Aw;i(n) = —ụ yi(n) (2.2)
- Quá trình tiếp tục lặp lại ba bước nêu trên cho tới khi tim được trọng số lý tưởng
- Cuối cùng, đầu ra được lay thông qua hàm ngưỡng dé thu được nhãn lớp dự
đoán.
s* Forward Propagation trong MLP
Bước đầu tiên, tính don vị kích hoạt al” cua lop an.
z = độ we? + al wh? +-+ aw )
ay =ØG¡ `)
Don vị kích hoạt là kết quả của việc áp dụng hàm kích hoạt ¢ cho giá trị z Nóphải khả vi dé có thé học các trọng số bằng cách sử dụng phương pháp giảm độ dốc.Hàm kích hoạt @ thường là hàm sigmoid (hau cần)
OO Tye
Nó cho phép tinh phi tuyến cần thiết dé giải quyết các van dé phức tap như xử lý
hình ảnh.
Hình 2.6 Đường cong sigmoid là đường cong hình chữ S.
s* Một số kết quả đã được kiểm chứng:
- Bat kỳ ham Boolean nào cũng có thé được biéu diễn bằng mạng MLP 2 lớp trong
đó các nơ-ron sử dụng hàm truyện sigmoid
Đỗ Thị Thu Thảo — BI9DCAT182 23
Trang 36- Tat cả các hàm liên tục có thé được tính gần đúng bằng mạng MLP gồm hai lớpbằng cách sử dung một hàm truyền sigmoid cho các nơ-ron lớp an và một hàm truyềntuyến tính cho các nơ-ron lớp đầu ra và sai số nhỏ tùy ý
- Bat kỳ hàm nào cũng có thé gần đúng hoặc được tinh gần đúng bởi mạng MLP
3 lớp bằng cách sử dụng hàm truyền sigmoid cho các nơ-ron lớp ân và một hàm
truyền tuyến tính cho các nơ-ron lớp đầu ra
2.1.3.2 Mô hình LSTM
+ Mạng hồi quy RNN
Như đã trình bày ở trên về Neural Network, bao gồm 3 phan chính là Input layer,Hidden layer và Output layer, ta có thể thấy là đầu vào và đầu ra của mạng neuron
này là độc lập với nhau Như vậy mô hình này không phù hợp với những bài toán
dạng chuỗi như mô tả, hoàn thành câu vì những dự đoán tiếp theo như từ tiếp theo
phụ thuộc vào vị trí của nó trong câu và những từ dang trước nó Ví dụ, “Tôi là người
Việt Nam” và “Người Việt Nam là tôi”, nếu tách mỗi câu theo từ, ta được bộ [ “tôi,
‘la’, “người, “Việt”, ‘Nam’], nếu cho tất cả vào mạng neural, dễ thấy không có sự
phân biệt nào giữa 2 câu trên Việc đảo thứ tự duyệt các từ làm sai lệch ý nghĩ của
câu, do đó chúng ta cần một mạng neural có thé xử lí tuần tự Và như vậy RNN ra đời với ý tưởng chính là sử dụng một bộ nhớ đề lưu lại thông tin từ từ những bước
tính toán xử lý trước dé dựa vào nó có thé đưa ra dự đoán chính xác nhất cho bước
dự đoán hiện tại [21].
Mang no-ron hồi quy RNN có thé được coi là nhiều bản sao chép của cing mộtmạng, trong đó mỗi đầu ra của mạng này là đầu vào của một mạng sao chép khác.Mạng này chứa các vòng lặp bên trong cho phép thông tin có thê lưu lại được Một
vòng lặp cho phép thông tin có thé được truyền từ bước này qua bước này qua bước
khác của mạng nơ-ron Các mạng này có cấu trúc rất đơn giản, thường là một tầng
tanh Hình vẽ sau mô tả một đoạn của mạng nơ-ron hồi quy A với đầu vào là x¿ và đầu ra là hạ:
@) ®) (
&) &) &)
Hình 2.7 Mang no-ron hồi quy RNN
Đỗ Thị Thu Thảo — B19DCAT182 24
Trang 37Về lý thuyết là RNN có thể mang thông tin từ các layer trước đến các layersau, nhưng thực tế là thông tin chỉ mang được qua một SỐ lượng state nhất định, sau
đó thì sẽ bi vanishing gradient, hay nói cách khác là model chỉ học được từ các state
gần nó, tức là short term memory Van đề này đã được khám pha khá sâu bởi
Hochreiter (1991) và Bengio, et al (1994), trong các bai báo của minh, họ đã tìm
được nhưng lý do căn bản để giải thích tại sao RNN không thể học được.
Cùng thử lấy vi dụ về short term memory với bài toán là dự đoán từ tiếp theo trong đoạn văn Đoạn đầu tiên “Mặt trời mọc ở hướng ”, ta có thể chỉ sử dụng các
từ trước trong câu dé đoán là đông Tuy nhiên, với đoạn, “Tôi là người Việt Nam.
Tôi đang sống ở nước ngoài Tôi có thé nói trôi chảy tiếng ” thi rõ ràng là chỉ sử
dụng từ trong câu đây hoặc câu trước là không thé du đoán được từ cần điền là Việt.
Ta cần các thông tin từ state ở trước đó rất xa, đó điều mà RNN không làm được.
Cần một mô hình mới dé giải quyết van đề này và do đó Long short term memory
thông tin và quên thông tin.
LSTM cũng có kiến trúc dạng chuỗi như RNN, nhưng các mô-đun trong nó có cấu trúc khác với mạng RNN chuẩn Thay vi chỉ có một tang mang nơ-ron, chúng
Hình 2.8 Tang cổng quên (forget gate layer)
Đỗ Thị Thu Thảo — B19DCAT182 25
Trang 38LSTM có một cấu trúc đặc biệt gom các công (gates) dé kiêm soát luồng thông
tin đi qua Các công này bao gồm công quên (forget gate), công đầu vào (input gate)
và cổng đầu ra (output gate) Cac công này hoạt động dựa trên ham sigmoid dé điều
chỉnh thông tin được truyền đi và được lưu trữ trong "tế bào" (cell state) của LSTM.
Các cổng cho phép LSTM quyết định xem thông tin nao nên được lưu trữ, thông
tin nào nên bị xóa và thông tin nào nên được truyền đi qua các thời điểm Điều này giúp LSTM lưu trữ thông tin quan trọng trong quá trình học và giúp giải quyết vấn
đề phụ thuộc xa.
Với câu trúc đặc biệt và khả năng học các phụ thuộc xa, LSTM đã trở thành một
mô hình rất mạnh và hiệu quả trong nhiều bài toán khác nhau, bao gồm xử lý ngônngữ tự nhiên, dịch máy, nhận diện giọng nói, và nhiều ứng dụng khác
+* Hoạt động của LSTM
Dau tiên, chúng ta có ¿,/,ø tương ứng với input gate, forget gate, output gate có
công thức gần giống hệt nhau và chỉ khác mỗi ma trận tham số Chính ma trận này
sẽ quyết định chức năng khác nhau của từng công o là ký hiệu của hàm sigmoid.
e Bước l: Quyết định thông tin cần bỏ đi từ ô trạng thái
Công quên (forget gate) vào quyết định xem thông tin nào cần bỏ đi thông qua
đặc điểm của hàm sigmoid Nó sẽ lay đầu vào là h,_¡ và x; rồi đưa ra kết quả là một
số trong khoảng [0,1] cho mỗi số trong trạng thái tế bào C;_, Như vậy khi mộtvector thông tin đi qua đây, nếu nhân với 0, vector sẽ bị triệt tiêu hoàn toàn Nếu
nhân với 1, hầu hết thông tin sẽ được giữ lại.
f fi =o (We: [he-1, 24] + bf) (2.3)
Hình 2.9 Tang cong quên (forget gate layer)
e Bước 2: Quyết định thông tin mới nao sé lưu vào 6 trang thái
Việc này gồm 2 phan Đầu tiên là sử dụng một tang sigmoid được gọi là “công vào” (input gate) dé quyết định giá trị nào ta sẽ cập nhật Tiếp theo là một tang tanh tạo ra một véc-tơ cho giá trị mới nhằm thêm vao cho trạng thái Trong bước tiếp
theo, ta sẽ kết hợp 2 giá trị đó lại dé tạo ra một cập nhập cho trạng thái
Đỗ Thị Thu Thảo — B19DCAT182 26
Trang 39ip = 0 (Wj: [he-1, 24] + b¿)
: (2.4)
Ci = tanh(We-[h¿—, #;] + bc)
Hình 2.10 Cập nhật giá trị cho 6 trạng thái bang cách kết hợp 2 kết quả từ tang
công vào và tang ân ham tanh
Đây là thời điểm dé cập nhật 6 trạng thái cũ Œ,_; thành trạng thái mới C, Nhântrang thái cũ với f, dé bỏ đi những thông tin đã quyết định quên từ bước 1 Sau đócộng thêm i, * C, Trạng thái mới thu được này phụ thuộc vao việc ta quyết định cậpnhập mỗi giá trị trạng thái ra sao.
al tư Cr = ƒ¡ * Cri tts * Cr (2.5)
Hình 2.11 O trang thái mới
¢ Bước 3: Quyết định đầu ra mong muốn
Giá trị đầu ra sẽ dựa vào ô trạng thái, nhưng là một phiên bản được sàng lọc Đầu
tiên, ta chạy một tầng sigmoid để quyết định phần nào của ô trạng ở đầu ra Sau đó,
6 trạng thái được đưa qua một ham tanh dé chuyền giá trị nó về khoảng [—1,1], và
nhân nó với đầu ra của công sigmoid dé được giá trị đầu ra ta mong muốn.
Ó¿ = a (Wo [ht—1, 2] + bo) (2 6)
ht = 04 * tanh (C;)
Hình 2.12 Diéu chỉnh thông tin ở dau ra thông qua ham tanh
Đỗ Thị Thu Thảo — B19DCAT182 27
Trang 40Dé dàng nhận thấy, nếu ta thay giá trị đầu ra của input gate là 1 và đầu ra forgetgate là 0 (không nhớ trạng thái trước) thì ta sẽ được RNN thuần Vậy có thể nói,
RNN truyền thống là một dạng đặc biệt của LSTM.
2.1.3.3 Mô hình Bidirectional LSTM
LSTM hai chiều (Bidirectional LSTM) là một biến thể của LSTM mà kết hợpthông tin từ cả quá khứ và tương lai khi xử lý đữ liệu tuần tự Trong mạng LSTMthông thường, thông tin chỉ được truyền từ trái qua phải hoặc từ quá khứ đến tươnglai Tuy nhiên, trong LSTM hai chiều, có hai bộ LSTM hoạt động song song: một
bộ xử lý dữ liệu từ trái qua phải và một bộ xử lý dữ liệu từ phải qua trái.
s* Quá trình hoạt động của LSTM hai chiều
- Đầu tiên, đữ liệu được truyền qua mạng LSTM từ trái qua phải Các trạng thái
ân của LSTM từ mỗi thời điểm đều được truyền đến thời điểm tiếp theo.
- Sau đó, dữ liệu được truyền ngược lại từ phải qua trái, và các trạng thái an củaLSTM từ mỗi thời điểm cũng được truyền đến thời điểm trước đó Điều này cho
phép mạng LSTM hai chiều học được thông tin từ cả quá khứ và tương lai của mỗi
thời điểm
Kiến trúc nay có thé được hiểu là có hai mạng LSTM riêng biệt, một mạng lay
chuỗi mã thông báo như cũ trong khi mang kia nhận theo thứ tự ngược lại Cả hai
mạng LSTM này đều trả về một vectơ xác suất làm đầu ra và đầu ra cuối cùng là sựkết hợp của cả hai xác suất này Nó có thé được biểu diễn dưới dang:
- nÍ b
Pe =Pe + Pt
Trong do:
Pr: Véc to xác suat cudi cùng của mang
tị : Véc tơ xác suất từ mạng LSTM chuyên tiếp
Hình 2.13 Kiến trúc lớp LSTM hai chiêu
Đỗ Thị Thu Thảo — B19DCAT182 28