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

Phát hiện mã độc dựa trên học sâu sử dụng opcode

80 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phát hiện mã độc dựa trên học sâu sử dụng opcode
Tác giả Đỗ Thị Thu Thảo
Người hướng dẫn PGS. TS Hoàng Xuân Dậu
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành An toàn thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 80
Dung lượng 24,49 MB

Nội dung

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 1

HỌ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 2

HỌ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 3

LỜ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 4

LỜ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 5

MỤ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 6

23.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 7

Kế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 8

DANH 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 9

Hì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 10

DANH 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 11

MỞ ĐẦ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 12

Chươ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 13

CHƯƠ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 14

1.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 15

chỉ 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 16

Tin 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 18

Tracking 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 19

hiể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 20

1.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 22

liê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 23

1.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 25

nhữ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 26

nhấ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 27

CHUONG 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 28

Dự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 29

Do 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 30

Ngoà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 32

Assistant 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 34

s* 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 35

Sử 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 37

Về 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 38

LSTM 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 39

ip = 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 40

Dé 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

Ngày đăng: 27/03/2024, 20:57

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

TÀI LIỆU LIÊN QUAN

w