LỜI CAM ĐOANEm xin cam đoan rằng đồ án tốt nghiệp "Nghiên cứu các kỹ thuật phát hiện word-based DGA botnet dựa trên học máy" là thành quả của sự nỗ lực và nghiên cứu cá nhân của em.. Hơn
Trang 1QC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG
KHOA AN TOÀN THÔNG TIN
ĐÈ TÀI
NGHIÊN CỨU PHÁT HIỆN WORD-BASED DGA
BOTNET DỰA TRÊN HỌC MÁY
PHÙNG THỊ PHƯƠNG THẢO
Hà Nội, tháng 1 năm 2024
Trang 2OC VIEN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG
KHOA AN TOÀN THÔNG TIN
ĐÈ TÀI
NGHIÊN CỨU PHÁT HIỆN WORD-BASED DGA
BOTNET DỰA TRÊN HỌC MÁY
Giảng viên hướng dẫn : PGS.TS Hoàng Xuân Dậu
Sinh viên thực hiện : Phùng Thị Phương Thảo
Mã sinh viên : B19DCAT183
Trang 3LỜI CẢM ƠNTrước hết, em muốn bày tỏ lòng biết ơn đến tất cả các thầy cô trong Khoa
An toàn thông tin và toàn bộ đội ngũ cán bộ của Học viện Công nghệ Bưu chính
Viễn thông vì đã tạo ra một môi trường học tập tích cực và có điều kiện cho sự
phát triển của em Em chân thành cảm ơn sự quan tâm, hướng dẫn và chia sẻ
kiến thức quý báu mà các thầy cô đã dành cho em trong suốt quãng thời gian
học tập kéo dài hơn 4 năm Những kiến thức này không chỉ là nền tảng quan
trọng cho đồ án của em mà còn là nền móng cho sự thành công trong công việc
tương lai.
Em gửi lời biết ơn đối với thầy giáo PGS.TS Hoàng Xuân Dậu, đã nhận lời
hỗ trợ em làm đồ án, đã giúp em vượt qua những khó khăn của việc thực hiện,
và đã tin tưởng em dé hoàn thành đồ án này Trong thời gian học tập và làm việc
VỚI thầy, em luôn nhận được sự giúp đỡ kip thời và những lời chỉ bảo tận tâm.
Mong rằng, thầy sẽ luôn mạnh khỏe và thành công hơn nữa
Cuối cùng, em xin gửi lời cảm ơn tới bạn bè và gia đình đã hỗ trợ và động
viên em trong quá trình hoàn thành đồ án này Vì kiến thức còn hạn chế, đồ áncủa em không tránh khỏi những thiếu sót, do đó em mong muốn nhận được sự
góp ý bồ sung từ phía các thầy cô
Em xin chân thành cảm on!
Hà Nội, ngày 03 thang I năm 2024
Sinh viên thực hiện
Phùng Thị Phương Thảo
Trang 4LỜI CAM ĐOAN
Em xin cam đoan rằng đồ án tốt nghiệp "Nghiên cứu các kỹ thuật phát hiện
word-based DGA botnet dựa trên học máy" là thành quả của sự nỗ lực và nghiên
cứu cá nhân của em Mọi nguồn thông tin tham khảo được sử dụng trong đồ ánđều được đưa ra chỉ tiết và minh bạch tại phần tài liệu tham khảo Các dữ liệu vakết quả được trình bày trong đồ án đều tuân theo nguyên tắc trung thực, không
có bất kỳ hành vi sao chép hoặc đạo nhái nào
Trong trường hợp xảy ra bat kỳ sai sót nao, em xin chịu trách nhiệm vàchấp nhận mọi hình phạt hay kỷ luật mà bộ môn và nhà trường đưa ra
Sinh viên thực hiện
Phùng Thị Phương Thảo
ii
Trang 5NHẬN XÉT, DANH GIA, CHO DIEM
(Của người hướng dẫn)
Trang 6NHẬN XÉT, DANH GIA, CHO DIEM
(Của người phải biện)
Trang 7MỤC LỤCLỜI CẢM ƠN 2- 5221 2 2 2E1221121127121121111211111111111111 11c ye iLOI CAM DOAN escssssssessesssessecsssssecsusssessessussseesecsusssessessessesessissessessesseesen iiNHAN XÉT, DANH GIA, CHO DIEM cccscccsssssessesssessesesssseeessveeeveeeees iiiNHẬN XÉT, DANH GIA, CHO DIEM ccccceccssecessesecseseesesesecececersvsvseseeees iv
MỤC LUC ececsscsssessesssessessssssecssessscsussssssecsussssssussssssessusssessecsusssessusssecsesseeseeess v
DANH MỤC BANG BIỀU 2S t+ESEEESE+EEEEEEESEEESEEESESErErErkeereree viiDANH MỤC ANH VA HINH VE cescssscssesssessesssessessesssessessessessesessseessess viiiDANH MỤC CAC THUẬT NGU VIET TẮTT -2-s©sz55+25++: x
LỜI MỞ DAU wieeecsscsssessesssessesssessesssessessvsssessecsssssessecsuessessesssessessessssusaesassecees |CHƯƠNG 1: TONG QUAN VỀ BOTNET VÀ CÁC PHƯƠNG PHAPPHAT HIỆN -¿- 2-2222 2E19E19211221221121127121121171121111111 211112111111 11c 3
1.1 Khái quát về Botnet 2 2+se+E2E2E121121121121121712112121 1E xeE 3
1.1.1 Giới thiệu về Botnet ¿ :-©2¿©2222xt2E2EEeExtEEEerxerkrrrrrkervee 3
1.1.2 Kiến trúc và hoạt động của Botnet - 2 2 s+ss+xs+zszxees 4
1.2 Khái quát về DGA Botnet và Word-based DGA Botnet 7
1.2.1 Giới thiệu về DGA Botnet - 2-2 +52 2+x+£zzEezszrerxerees 7
1.2.2 Giới thiệu về Word-based DGA Botnet -5-55c 55 10
1.3 Các phương pháp phát hiện Boftnet - 55+ +cs*+++sssx+s+ 11
1.3.1 Phát hiện dựa trên chữ ky ee ceccescceeceeeeeneeeseneeeeseteeeesteeeens 11
1.3.2 Phát hiện dựa trên bat thường - eesessesseseeseseeseeeees 12
1.3.3 Phát hiện dựa trên HoneypOt .- - 5+5 s++ss+ecsseeseersee 14
1.4 Kết chương 2-52 s+Sx+ 2 E2E12112112112112111111111111111.11 xe 14CHƯƠNG 2: PHÁT HIỆN WORD-BASED DGA BOTNET DỰA TRÊNHỌC MÁ Y G55 2< 21E211221211211271211211711211112111111211.11 111111 111cc 15
2.1 Khái quát về học máyy ¿+ 2 t+eEk#EE+E£EEEEEEEEEEEEEEEEEEEEEkrkerrei 15
2.1.1 Giới thiệu về học máyy - 2-52 keSxeEE2EEESEEEEEEEEkrkerkrkree 15
2.1.2 Quy trình làm vIỆC - G1131 11 9v vn key 15
2.1.3 Phân lOại - - - E22 1611112311111 1111119553355 11 111 khe 16
2.1.4 Một số thuật toán trong học máy, ss++++ssvs+seeexes 18
Trang 82.2 Mô hình phát hiện Word-based DGA Botnet dựa trên học máy 31
2.2.1 Giới thiệu mô hin esssessesseessesseessessesstessestesteseeseesen 31 2.2.2 Các khâu xử lý - cv rey 32
2.3 Kết chương -¿- ¿52+S2+E2EE2E12E12212112112112111111217111 111111 xe 39
CHƯƠNG 3: CÀI ĐẶT VA THU NGHIỆM 2 552225: 40
3.1 Giới thiệu tập dữ liệu sử dụng ¿5c 22+ ++svvvxeeeeresss 40
3.2 Tiền xử lý dit liệu ¿+52 St E211 1521215111111 11212111111 te 40
3.3 Quá trình huấn luyện và kiểm tra 2-2 2 ©s+S2+E+£++Ee£xzxzxcrez 44
3.3.1 Huấn luyện ¿2 ¿55c +ES2ES2EE2EE2E211211211211211211 111111 xe 44E84 na < 45
3.4 Thur nghigm 0n 46 3.4.1 Phương pháp đánh giá - -c Sc S213 EsEsrerererrsrsree 46
Trang 9DANH MỤC BANG BIEU
Bảng 1 1: Một số dang DGA botnet và các mẫu tên miễn - - 5 -: 10
Bang 1 2: Cac ho botnet sử dụng word-based DGA -++++-<<+++s+2 11
Bang 1 3: Đặc trưng của một số họ word-based DGA bonet -:- 5-5: 11
Bảng 2 1: Bảng xác suất vi dụ cho thuật toán Naive Bayes - 28
Bảng 2 2: Bang khả năng ví dụ cho thuật toán Naive Bayes 28
Bảng 3 1: Danh sách các tên miền lành tính theo thống kê của Alexa 40Bảng 3 2: Danh sách tên miền các họ bofnet 2-2 2 + s+sz+E+£zzs+£+zsze: 40Bảng 3 3: Thống kê các từ điển được sử dụng trong 5 DGA botnet dựa trên từ
¬ Ö-Ö5ễ'ềễê-.-.:£ÉẢỔ - 4]Bảng 3 4: Số lượng dữ liệu trong TRAINING_DATASET -¿ 45Bảng 3 5: Số lượng dit liệu trong TEST_DATASET_I -5- 5: 45Bảng 3 6: Số lượng dữ liệu trong TEST_DATASET._2 -2- ¿55c 5s¿ 46Bang 3 7: Ma trận nhằm lẫn của mô hình phân loại tên miễn - 46
Bang 3 8: So sánh độ hiệu quả giữa các thuật toán 5-5 +++<s<++<+2 48
Bảng 3 9: Tỷ lệ phát hiện của mô hình với TEST _DATASET'_ I 48 Bảng 3 10: Tỷ lệ phát hiện của mô hình với TEST DATASET2 49
vil
Trang 10DANH MỤC ANH VÀ HÌNH VE
Hình 1 1: Mô hình Botmaster điều khiển các bot qua máy chủ C&C 3Hình 1 2: Kiến trúc Client - Server của botnet - 2 25s s+£s+zx+rxzzzzxeẻ 4
Hình 1 3: Kiến trúc P2P của Bofmt -cc:c25cvc2EEttitrtrrtrrrrrrrrrrrrirrree 4
Hình 1 4: Kiến trúc lai của botnet 2 2©2+£++++E++E++E+EE£EeEEEEErEerkrrrrkrree 5
Hình 1 5: Hoạt động của mang bofn€t - . - c6 3+ 1323 EEsseesrerereerrre 6
Hình 1 6: Cơ chế tự động sinh và đăng kí tên miền cho máy chủ của mạng
I0 — 9 Hình 2 1: Quy trình làm việc của học máy, c5 + *++*‡vvxsxeeereeses 15 Hình 2 2: Mô hình hoc máy có gid sát - - c2 3+2 ££++#vEvxeeeeresss 17
Hình 2 3: Mô hình học máy không giám sát - 55-553 +++**++*evcx+sex 18
Hình 2 4: Mặt phân cách 2 lớp dit liệu bang 1 hàm tuyến tính 19
Hình 2 5: Các siêu phang dé phan lớp -2- 2 2+2+++£++E++E+Exerxzrxerszes 20
Hình 2 6: Điểm dữ liệu 5010 12127177 : 1B 21Hình 2 7: Siêu phang tìm được khi có điểm ngoại lệ 5-52 5525221
Hình 2 §: Các điểm dữ liệu không phân biệt tuyến tính .ccccccceeeress 21
Hình 2 9: Các điểm dữ liệu đã được phân biệt tuyến tính 2-5 5+22 Hình 2 10: Ví dụ thuật toán kÌNN - - 1k1 ng ng ngư 23 Hình 2 11: Sơ đồ cây quyết định -¿- ¿+ x+S£+E£EE+EE2EEEEEEEEEEEEEEErkrkrrrrkes 24
Hình 2 12: Mô hình thuật toán rừng ngẫu nhiên - 5 s52 5s+z2s25+2 26
Hình 2 13: Logistic sử dụng hàm phi tuyến để xác định xác suất của hai lớp 0
- 29
Hình 2 14: Hình ảnh hàm SIgmOIL - c2 3E 3+ **vEE+eeeeeerereerereeree 30
Hình 2 15: Mô hình học máy phát hiện word-based DGA bofnet 3l
Hình 2 16: Biểu đồ tần suất độ dài tên miền 5 họ word-based DGA botnet 33Hình 2 17: So sánh dài tên miền giữa tên miền lành tính và tên miền DGA 33Hình 2 18: Biều đồ số lượng nguyên âm có trong tên miền word-based DGA 34
Hình 2 19: : So sánh số nguyên âm có trong tên miền lành tính và tên miền
word-based DGA bofn€T - G2 19121112111 11911 11111111 nh ng nu 35
Hình 2 20: Số từ trong tên miền của 5 ho word-based DGA có trong từ điển
9581110111110 36
Hình 2 21: So sánh số từ trong tên miền d của tên miễn lành tính và tên miềnbotnet có trong từ điển 'eng diCf, - 2-52 Ss+SE+E2ESEE2EEEEEEEEEEEEEEEEEEEEerrrkes 37Hình 2 22: số lượng từ trong tên miễn lành tính có trong từ dién 'dga_ dict 37
vill
Trang 113: Đặc trưng f8 đến f10 ¿+ s22 12EEE121511212111 11111111 cty 6 43
4: Đặc trưng f11 đến 13 -¿- 2 2++2+EE+EE2EE2E12E1211211211221221 2E xe 43
5:Vector hóa các đặc frưng -c+ + ck cv vn ng ng ng kp 44
6: Tập các vector đặc trưng của tên miền word-based DGA botnet 447: Tập các vector đặc trưng của tên miền lành tính 44
8: Sơ đồ phát hiện -¿- 2 + S+SE+EE£EEEEEEEEEEE 2121211211211 cxe 50
9: Xây dựng mô-đun huấn luyện với thuật toán Rừng ngẫu nhiên 50
10: Giao diện phát hiện word-base DGA botnet ‹‹- «+‹ 50
11: Kết quả dự đoán tên miền botnet 5-5 2 s+seEx+x+Ee£x+xeEerxez 51
12: Kết qua dự đoán tên miễn lành tính - 2-2 s2 eeeeeeeeeeeees 51
1x
Trang 12DANH MỤC CÁC THUẬT NGỮ VIET TAT
Ký hiệu Ý nghĩa tiếng Anh Ý nghĩa Tiếng Việt
ACC Accuracy Độ chính xác
C&C Command & Control Lénh va diéu khién
DGA Domain Generation Algorithm Thuật toán tao tên miềnDNS Domain Name Server Máy chủ phân giải tên miền
FNR False Negative Rate Tỷ lệ âm tính gia
FPR False Positive Rate Ty lệ dương tính giả
HTTP Hyper Text Transfer Protocol Giao thức truyen far siênvan ban
IP Internet Protocol Giao thức mang
IRC Internet Relay Chat Nhắn tin chuyền tiếp mạng
kNN K-Nearest Neighbors K láng giéng gần nhất
P2P Peer to Peer Mạng ngang hàng
SVM Support Vector Machine Máy vector hỗ trợ
TDL Top level Domain Tên miễn cấp cao nhật
Trang 13LỜI MỞ ĐẦUNgày nay, với sự phát triển không ngừng của ngành công nghệ thông tin,
vẫn đề đảm bảo an toàn thông tin trở thành một ưu tiên cấp thiết Một trongnhững mối đe đọa đáng kể là sự xuất hiện của các loại virus, mã độc, botnet va
phần mềm độc hại làm phá vỡ đi tính an toàn của hệ thống thông tin Việc phát
hiện và loại trừ mã độc trong các phần mềm máy tính là công việc hàng ngày
của những nhà quản trị hệ thống mạng Những công việc đó được thực hiện mộtcách thủ công nên tốn khá nhiều thời gian công sức và năng lực Với sự pháttriển của công nghệ thông tin hiện nay thì hoàn toàn có thé sử dụng máy tính dé
xử lý thông tin thay cho khả năng hữu hạn của con người, hiệu quả xử lý thông
tin được nâng cao, khối lượng xử lý thông tin ngày càng lớn và kéo theo nó, tamquan trọng của thông tin trong đời sống xã hội cũng được nâng lên
Đặc biệt, Botnet một loại mã độc được tin tặc sử dụng rộng rãi trên không
gian mạng, là một nguy co đáng kê Đối với người dùng thông thường, khi bịnhiễm Botnet, máy tinh của họ sẽ trở thành Zombie, tức là một thành phan trong
hệ thống Botnet và dưới sự kiểm soát của máy chủ C&C Mục đích của tin tặc
có thé là thực hiện tan công DDoS lên các máy chủ, khiến chúng quá tải vàkhông thê cung cấp dịch vụ cho người dùng hoặc doanh nghiệp, gây ra nhiều hệlụy nghiêm trọng.
Hơn thế, các thuật toán tạo tên miền (DGA) là các thuật toán được thấy
trong các họ phần mềm độc hại khác nhau được sử dụng dé tạo định kỳ một sỐlượng lớn tên miền có thé được sử dụng làm tên miền cho các máy chủ C&C
DGA đã trở thành kỹ thuật cho phép botmaster tự động sinh và đăng ký các tên
miền cho các máy chủ C&C (Command & Control) của các mạng botnet dé lântránh các công cụ phòng chống
Nhiều thuật toán DGA được phát triển và sử dụng để sinh ra tên miền
character-based DGA , tên miền word-based DGA và tên miền mixed DGA Các
kỹ thuật này cho phép sinh các tên miền một cách đơn giản là tổ hợp ngẫu nhiên
của các ký tự đến các tên miền phức tạp là tổ hợp của các từ có nghĩa tương tựnhư các tên miền bình thường Điều này gây khó khăn cho các giải pháp giámsát, phát hiện botnet nói chung và DGA botnet nói riêng Nhiều giải pháp có khảnăng phát hiện hiệu quả các tên miền dang character-based DGA, nhưng không
thể phát hiện các tên miền dạng word-based DGA và mixed DGA Ngược lại,
một số đề xuất gần đây có thê phát hiện hiệu quả các dạng tên miền word-basedDGA, nhưng lại không thé phát hiện hiệu quả các tên miền của một số dang
character-based DGA.
Trang 14Do những nguyên nhân trên, đồ án sẽ tiến hành tìm hiểu về phương pháp
phát hiện word-based DGA Botnet dựa vào các phương pháp học máy Trong
phạm vi của đồ án, các thuật toán học máy sẽ được sử dụng là máy vectơ hỗ trợ
(SVM - Support Vector Machine), rừng ngẫu nhiên (Random Forest), KNN
(K-Nearest Neighbors), Naive Bayes va Logistic.
Bồ cục đồ án bao gồm ba chương với cau trúc như sau:
Chương 1: Tổng quan về Botnet và các phương pháp phát hiện
Chương 2: Phát hiện Word-based DGA Botnet dựa trên học máy.
Chương 3: Cài đặt và thử nghiệm.
Trang 15CHƯƠNG 1: TONG QUAN VE BOTNET VÀ
CAC PHUONG PHAP PHAT HIEN
1.1 Khai quat vé Botnet
1.1.1 Giới thiệu về Botnet
Thuật ngữ đây đủ của Botnet là “Bots network” dùng đê chỉ một mạng lưới
các máy tính bị nhiễm phần mềm độc hại và được chi phối bởi một người nao đó
(Botmaster) Một mạng botnet có thể có rất nhiều máy tính (hàng trăm hàngngàn, thậm chi là hàng triệu máy tinh) [1].
Các máy tính đang bị nhiễm Botnet còn được gọi là các “Zombie” Máy
tính bị nhiễm sé bị chi phối bởi một Botmaster và điều khiển mọi hoạt động củamáy tinh đang dính mã độc làm cản trở hoạt động, gián đoán gây mat nhiêu thờigian, giảm năng suất công việc của người dùng
Mục đích chung của botnet là kiểm soát càng nhiều máy tính càng tốt trong
thời gian dài nhất có thể Điều này có thê đạt được băng cách sử dụng tính năng
tàng hình, làm cho phần mềm độc hại trở nên kín đáo nhất có thể
= - Botmaster
Hình 1 1: Mô hình Botmaster diéu khiển các bot qua máy chủ C&C
Có thê thấy, một Botnet sẽ bao gồm 3 thành phần:
- Botmaster: điều khiển máy chủ C&C đưa ra các lệnh điều khiển các
Bots.
- Command & Control Server (C&C): chịu sự điều khiến của Botmaster,
phát ra các lệnh cho các bot trong mạng.
Trang 16- Bots (Zombies): là các máy tinh bị xâm nhập, bi cài phần mềm độc hai
và chịu sự điều khiển của C&C Server
1.1.2 Kiến trúc và hoạt động của Botnet
1.1.2.1 Kiến trúc của Botnet
Kiên trúc của Botnet được chia thành 2 loại:
Hình 1 2: Kiến trúc Client - Server của botnet
Kiến trúc Client- Server là một mô hình truyền thống Ở mô hình này,
Botmaster sẽ thiết lập các lệnh, điều khiến và kiểm soát mang Botnet các C&C
Server sẽ hỗ trợ Botmaster quản lý các may Bots trong mang, đồng thời nó cũng
là cầu nối chuyên tiếp lệnh từ Botmaster đến các bots trong mạng Cac bots sẽnhận lệnh từ C&C Server giúp các hacker thực hiện các cuộc tan công mạng quy
mô lớn.
Kiến trúc này có một vai nhược điểm như nó có thể được định vị dễ dàng
và chỉ có một điểm kiểm soát Trong kiến trúc này, nếu máy chủ bị phá hủy,
bots sẽ “chết” theo [2]
a Kiến trúc ngang hàng Peer — to — Peer (P2P)
Trang 17Hình 1 3: Kiến trúc P2P cua Botnet
Trong P2P, bot sẽ không kết nối vào các may chủ điều khién ma mỗi bot sẽ
có một danh sách bot “neighbor — lang giềng”, khi nhận được lệnh điều khiến từ
một bot thành viên nào đó trong mạng, nó sẽ quảng bá lệnh này tới danh sách
láng giềng của nó
Kiến trúc nảy để khắc phục nhược điểm của kiến trúc Client — Server, mỗi
bot là một máy độc lập trên kênh truyền nên nếu một bot bất kỳ bị lỗi sẽ không
ảnh hưởng gì tới Botnet Tuy nhiên, việc thiết kế hệ thống P2P là phức tạp hơnkiến trúc Client — Server rất nhiều, cũng như không đảm bảo đường truyền và độ
Trang 18Kiến trúc lai kế thừa các đặc tính của hai loại kiến trúc trên.
Trong kiến trúc lai, có 2 loại bot là:
- Servant bot (bot phục vụ): Loại Bot này hoạt động đồng thời như một
máy khách và một máy chủ, được cau hình với các địa chi IP định tuyến
(IP tinh) Chúng gửi thông tin địa chỉ IP của mình đến danh sách bot và
ở chế độ lăng nghe chờ các kết nói đến từ các Client Bot [4]
- Client bot (bot khách): Loại Bot này hoạt động như một máy khách va
được cấu hình với các địa chỉ IP không định tuyến (IP động) Các Client
Bot nhận địa chỉ IP từ các Servant Bot, sau đó, chúng tạo kết nói để
nhận các lệnh và mã cập nhật [4].
1.1.2.2 Hoạt động cua Botnet ;
Thong thường, hoạt động cua một mang botnet có thê chia thành 4 pha: Pha
tuyên dụng thành viên, pha tương tác, pha tan công, pha duy trì
Hình 1 5: Hoạt động cua mang botnet
a Pha tuyển dụng thành viên
Trang 19Trong pha này Botmaster cần phải lợi dụng các máy tính trên Internet dé có
thể điều khiển từ xa Botmaster sử dụng các phần mềm độc hại để tìm kiếm và
lây nhiễm tối đa vào các hệ thống, máy tính có điểm yêu dé cài bot vào đó Các
kỹ thuật lây nhiễm bot tương tự như việc lây nhiễm Trojan, Worm hay Virut Đểtăng khả năng lây nhiễm, trong thực tế nhiều phần mềm bot thường được thiết
kế với các môđun có khả năng tự động khai thác các điểm yếu đã biết, thậm chí
cả những lỗ hồng chưa biết đến
b Pha tương tác
Khi nạn nhận đã trở thành bot, nó sẽ giao tiếp với botmaster qua kênhtruyền thông được sử dụng bởi Botnet đó Botmaster sẽ nhận được thông báo vềbot mới được lây nhiễm, và bot đó sẽ chờ lệnh đến từ botmaster [5]
c Pha tan công
Mang botnet có thé được sử dụng dé thực hiện nhiều cuộc tan công với quy
mô lớn và nhiều hình thức khác nhau như: tan công từ chối dịch vụ, gửi thư rác,
tấn công lừa đảo Hầu hết các mạng botnet đều được phát hiện ở pha này và
cũng có nhiều nghiên cứu tập trung vào pha này đề đề ra giải pháp chống lại cáctấn công
d Pha duy trì
Sau khi thực hiện tấn công, các bot trở về trạng thái chờ lệnh Botmaster sẽ
cập nhật cho các bot thường xuyên để tránh các kỹ thuật phát hiện mới, hoặc vácác lỗi hay bổ sung thêm tinh năng mới cho bot Trong suốt thời gian này, các
bot cần được giám sát thường xuyên để đảm bảo cho hệ thống hoạt động bình
thường [5].
1.2 Khái quát về DGA Botnet và Word-based DGA Botnet
1.2.1 Giới thiệu về DGA Botnet
12.11 Hệ thong tén miễn Ộ
Hệ thông tên miên (Domain name server - DNS) là một thành phân quan
trọng của cơ sở hạ tầng Internet, chủ yếu được sử dụng để dịch tên miền sang
địa chỉ IP và ngược lại Hiện tại hầu hết các dịch vụ mạng và ứng dụng đều dựavào DNS Đề vượt qua sự phát hiện va ngăn chặn, nâng cao khả năng tự ton tại
và kéo dài thời gian tồn tại, nhiều mạng botnet sử dung DNS để tổ chức và kiểm
soát.
1.2.1.2 Thuật toán sinh tên miền DGA
Thuật toán sinh tên miên (Domain generation algorithm - DGA), được sử dung dé tự động tạo ra một sô lượng lớn các tên miên ngâu nhiên và sau đó chon
Trang 20một tập con nhỏ của các miền này để giao tiếp với máy chủ C&C [6] Các tên
miền tạo ra sử dụng một thuật toán DGA với cùng một nhân (seed) nhất định,
các tham số đó có thé là các hằng số, ngày hiện tại, thời gian hiện tại Hầu hết
các botnet ngày nay đều sử dụng thuật toán sinh tên miền để làm điểm kết nối
tới các may chủ điều khiển Bằng cách liên tục thay đổi các tên miền đã sử dung,
các phương pháp phát hiện dựa vào các danh sách đen của các chuyên gia đã
không hiệu quả Một ưu điểm khác của việc sử dụng các tên miền này là che
giấu được các dau vết mà chúng đã dé lại
Hãy xem xét một mau mã Python đê tạo ra các tên miên khác nhau dưới đây:
def generate_domain(year, month, day):
""" Generates a domain by considering the current date """
domain = ""
for i in range(32):
year = ((year ^ 8 * year) >> 11) ^ ((year & 0xFFFFFFF0) << 17) month = ((month ^ 4 * month) >> 25) ^ 16 * (month & OxFFFFFFF8) day = ((day ^ (day << 13)) >> 19) ^ ((day & OxXFFFFFFFE) << 12) domain += chr(((year ^ month ^ day) % 25) + 97)
# add our own domain domain += '.infosec' return domain
Có thé thay chức năng generate _domain, chấp nhận ba tham số: năm, tháng
và ngày Điều này có nghĩa là thuật toán tạo ra một tên miền mới mỗi ngày, sau
đó được sử dụng bởi phần mềm độc hại dé kết nối với máy chủ C&C
Chìa khóa thành công của phương pháp DGA là dựa trên một trình tạo số
ngẫu nhiên xác định Các số này có thể là ngẫu nhiên hoặc được cung cấp từ
phần mềm độc hai và kẻ tan công Sau đó các số ngẫu nhiên này sẽ được chuyên
đổi sang một ký tự và cộng với phần tên miền cấp cao và sinh ra một tên miền
độc hại mà được kẻ tấn công sử dụng dé giao tiép voi may chu diéu khién
1.2.1.3 DGA Botnet | ;
Cac bot giao tiép với các máy chu C&C trong một botnet có thé qua giao
thức IRC, HTTP hoặc giao thức truyền thông khác Ngày nay các bot thường sửdụng giao thức HTTP nhiều hơn [7]
Dé hoạt động được trên Internet thì các bot hay máy chủ C&C đều phải có
một địa chi IP public hoặc tên miền để có thé phân giải về một dia chỉ IP Nếu
như các C&C server sử dụng các địa chi IP thì việc bi phát hiện là rất đơn giản
Chính vì vậy các C&C server thường sử dụng tên miền (dịch vụ DNS) thay vì sử
dung dia chỉ IP [7]
Trang 21Cơ chế botnet sử dụng DGA tự động sinh và đăng kí tên miền cho máy chủ
C&C của chúng được lặp lại qua các quá trình: botmaster và các bot sẽ cùng sử
dụng một thuật toán DGA để tạo một tập các tên miền giống nhau Botmaster séđịnh kì tao ra và đăng kí tên miền qua hệ thong DNS cho máy chủ C&C Dé cácbot kết nối đến máy chủ C&C, chúng dùng một thuật toán DGA cùng nhângiống như máy chủ đã dùng dé tạo ra cùng tập tên miền Sau đó chúng gửi truy
van đến hệ thống DNS dé phân giải tên miền thành địa chỉ IP Nếu quá trình
phân giải thành công, bot sẽ kết nối được đến máy chủ C&C và tải mã lệnh hay
bản cập nhật của mã độc Nếu quá trình không thành công, chúng tiếp tục sẽ tạo
ra các tập tên miền mới và gửi truy vấn đến khi quá trình được kết nối thành
Hình 1 6: Cơ chế tự động sinh và đăng kí tên miễn cho
máy chủ của mang botnet
Đề cập đến việc các bot và botmaster dùng chung thuật toán DGA cùngnhân dé tạo những tập tên miền giống nhau Nhân là yếu tố cơ bản của DGA va
đóng vai trò như một bí mật được chia sẻ giữa kẻ tấn công và phần mềm độc
hại Nhân là một tập tổng hợp các thông số đưa ra để tạo tên miền giả ngẫu
nhiên Nhân có thê truy cập được đối với cả kẻ tan công và các bot trong mạng
Không những vậy, DGA hỗ trợ kỹ thuật cho phép tên miền có thể được
đăng ký và hủy đăng ký nhanh chóng Nhờ vậy, địa chỉ IP của nhiều tên miền
9
Trang 22sinh tự động được thường xuyên thay đôi bởi kẻ tấn công đề tránh bị nằm trong
IP Blacklist [4].
1.2.1.4 Phân loại DGA botnet
Dựa vào tập các kí tự tự động sinh tên miền, có thể chia DGA botnet thành
ba dạng chính là [4]: character-based DGA botnet, word-based DGA botnet và
mixed DGA botnet.
Character-based DGA botnet: Character-based DGA là một trong những
cách triển khai cơ bản trong đó sử dụng tô hợp ngẫu nhiên các kí tự và số
trong bảng tiếng anh dé tạo nên các chuỗi giả ngẫu nhiên kết hợp với tên
miền cấp cao nhất (TLD) dé tạo thành một tên miền hợp pháp Các tên miền
được tạo bởi character-based DGA có một mức độ ngẫu nhiên nhất định,chúng không có đặc điểm ngôn ngữ nào Tên miền dựa trên character-based
có thành phan ký tự lớn hơn, điều này có thé làm giảm đáng kể xung đột vớitên miền thông thường
Word-based DGA botnet: thường sử dụng dựa trên từ điển (có thể là danh
từ, động từ hay tính từ) hoặc mô hình tạo ngôn ngữ để tạo tên miễn, đáp ứng
các đặc điểm ngôn ngữ nhất định dé tránh bị phát hiện Tuy nhiên, các tênmiền tao ra có tỷ lệ xung đột cao với các tên miền thông thường
Mixed DGA botnet: Kĩ thuật mixed DGA botnet sử dụng kết hợp cả hai kỹthuật trên dé tạo thành tổ hợp tên miền Như vậy tên miền sẽ có một phan là
kí tự bất kì, còn phần còn lại sẽ là từ nào đó
Bảng 1 1: Một số dạng DGA botnet và các mẫu tên miễn
Họ botnet Kiểu kĩ thuật Ví dụ
Bigviktor word-based DGA support.showremote-conclusion.fans
turntruebreakfast.futbol Suppobox word-based DGA sharmainewestbrook.net(fromwordlist 3)
tablethirteen.net (from wordlist 2)
childrencatch.net (from wordlist 1) Bazardoor character-based DGA aceijlahgijp.bazar
acfiimahhiiq.bazar efhijkekjijo.bazar
Chinad character-based DGA qowhi8 1jvoid4j0m.biz
Trang 231.2.2 Giới thiệu về Word-based DGA Botnet
1.2.2.1 Khái niệm ; ;
Việc sử dụng word-based DGA trong các cuộc tân công phân mém độc hại
đang gia tăng nhanh chóng trên toàn cầu Những kẻ tan công đã tạo ra danh sách
từ dựa trên các ho botnet như Matsnu, Gozi va Suppobox, có khả năng chống lại
kỹ thuật phát hiện vì chúng gần như tên miễn thật
Với word-based DGA, hai hoặc nhiều từ được chọn ngẫu nhiên từ mộthoặc nhiều từ điển dé tạo thành một tên miền, các tên miền được tạo tự động và
thường xuyên này bắt chước các đặc điểm của một tên miền hợp pháp nhằm
mục đích vượt qua các kĩ thuật phát hiện chúng Các word-based DGA có thé dédàng làm giả hơn khi các thành phần của nó là các từ tiếng Anh hợp pháp Vìvậy, việc phát hiện word-based DGA vẫn là một công việc đầy thách thức trong
lĩnh vực phát hiện botnet.
Bang 1 2: Cac ho botnet sử dụng word-based DGA.
Ho botnet Kĩ thuật Mẫu tên miền
Gozi word-based DGA williamseasily.com printingthatlabel.com
Matsnu word-based DGA shoulderracerecognizeblue.com
emergencyadaptselectdoubt.com
Suppobox word-based DGA windowtherefore.net severadifference.net
1.2.2.2 Đặc trưng cua một số họ word-based DGA bonet
Dưới đây là đặc trưng của một so họ su dung word-based DGA: Gozi,
Bigviktor, Suppobox, Pizd [8]
Bang 1 3: Đặc trưng cua một số họ word-based DGA bonet
Họ Đặc điểm TLD Mẫu tên miền
Gozi Nồi 3-4 từ trong com, ru exprdecadeincprcoundeep.ru
4 từ điển violationfashionorder.ru
divisiondevordecisionca.com
Bigviktor | Nôi 3-4 từ trong | art, click, club, support.showremoteconclusion.fans
4 từ điển com, fans, futbol, turntruebreakfast.futbol
in, info, link, net, speakoriginalworld.one
nl, observer, one,
org, pictures,
realty, rocks, tel,
lãi
Trang 241.3 Cac phuong phap phat hién Botnet
1.3.1 Phat hiện dựa trên chữ ky
-Chữ ký (signature) sử dụng trong phát hiện botnet là các mâu hoặc đặc
trưng của các botnet đã biết Kỹ thuật này dựa trên việc so sánh các thông tin thu
thập được với các chữ ký đã được xác định từ trước của các botnet, từ đó có thể
phân biệt va phát hiện ra các hành vi độc hại so với các hành vi bình thường
khác [4].
Có thé thấy, phương pháp này xác định hành vi của bot dựa trên các mô
hình đã được định nghĩa trước đó hoặc các chữ ký của các bot phổ biến, do vậy,
độ chính xác của kỹ thuật này khá cao.
Tuy nhiên, phương pháp này cũng có nhược điểm là không thê phát hiệncác loại Bots mới, hay các loại Bots biến thé mà tin tặc cố tinh tạo ra dé qua mặt
sự kiểm duyệt của các luật Bên cạnh đó, phương pháp này cần liên tục cập nhật
cơ sở đữ liệu chữ ký, luật dé không bi lỗi thời trước các loại Bots mới được tao
ra ngày càng nhiều
1.3.2 Phát hién dựa trên bắt thường
Phát hiện dựa trên bât thường là kỹ thuật xác định botnet dựa trên các dữ
liệu không bình thường ví dụ như: độ trễ cao bất thường, lưu lượng cao bất
thường, cổng dịch vụ khác thường, hành vi khác thường, từ đó có thé xác
định được sự hiện diện của mã độc bot trong mạng.
Ưu điểm của phát hiện botnet dựa trên bat thường là có tiềm năng phát hiện
các bot, botnet mới mà không cần biết trước thông tin về chúng Tuy vậy, phát
hiện botnet dựa trên bất thường thường có tỷ lệ cảnh báo sai cao hơn so với phát
hiện botnet dựa trên chữ ký [4].
Phát hiện dựa trên bất thường được chia làm 4 loại chính: khai phá dữ liệu
(data mining), phân tích hành vi (behavioral analysis), DNS, thống kê (statistical
approaches) [9].
12
Trang 251.3.2.1 Khai pha dit liệu (data mining)
-Là quá trình phân loại, săp xêp các tập hợp dữ liệu lớn đê xác định các mâu
và thiết lập các mối liên hệ nhằm giải quyết các van đề nhờ phân tích dit liệu
Data mining có thé được sử dụng trong xác định Botnet Điểm mạnh là các
thuật toán data mining cho phép việc tự động phát hiện các đặc tính từ một bộ
dữ liệu lớn Kỹ thuật này có tính tương tác, trực quan và làm việc trực tiếp VỚI
kho dir liệu [9].
Data mining vẫn có một số hạn chế trong xác định Botnet Kỹ thuật này hỗ
trợ trong việc khai phá khuôn mẫu và mdi liên hệ trong di liệu, nhưng nó không
thê đảm bảo một kết quả hoàn hảo, không thể giải thích nguyên nhân dẫn tới kết
quả, cũng như không thé sửa nếu dit liệu gặp van đề [9]
1.3.2.2 Phân tích hành vi (behavioral analysis)
Ky thuật phân tích hành vi có thé áp dụng vào trong phát hiện Botnet thông
qua các hành vi của lưu lượng mạng Một trong những ưu điểm quan trọng nhất
của kỹ thuật phân tích hành vi là khả năng phát hiện những mối nguy từ Botnetchưa biết Phân tích hành vi trong lưu lượng mạng hoạt động dựa trên đặc tính
cơ bản được tìm ra bởi các chủng loại Botnet khác nhau và không quan hệ tới
kiến trúc (ví dụ: centralized, P2P) cũng như giao thức liên lạc (ví dụ: IRC,
HTTP) được sử dụng bởi các loại Botnet [9].
Phương pháp phân tích hành vi lưu lượng mạng không phụ thuộc vào nội
dung mà packet chứa đựng, điều này có nghĩa nó hoạt động ngay cả trên lưu
lượng bị mã hóa Rất nhiều nghiên cứu đã chỉ ra rằng, việc xác định lưu lượng
mạng có thể được phân biệt một cách hiệu quả đối với các loại lưu lượng ứngdụng mạng Phan lớn những nghiên cứu này sử dụng các kỹ thuật học máy tinh
vi va đưa ra báo cáo với độ chính xác hơn 90% [9].
Phân tích hành vi lưu lượng mạng có thể là một công cụ rất mạnh trong
việc xác định Botnet, nhưng về thời gian xử lý, yêu cầu đối với môi trường phù
hợp dé quan sát hành vi của máy tính, hay nguy cơ dương tính giả có thé làm
cho việc chan đoán gặp nhiều khó khan [9]
1.3.2.3 DNS
Ky thuật phát hiện Botnet dựa trên DNS là một trong các kỹ thuật
anomaly-based sử dụng trên lưu lượng DNS Cơ chế phát hiện Botnet được phát triển nên
với 4 bước [9].
- Bước đầu: Tìm ra các đặc tính của lưu lượng DNS của Botnet mà khác biệt
với lưu lượng DNS thông thường [9].
13
Trang 26- Bước hai: Tim ra một đặc tính khóa của lưu lượng DNS và gọi là “hành vi
nhóm” [9].
- Bước 3: Phát trién thuật toán dé phân biệt truy van DNS của Botnet bằng
cách sử dụng đặc tính “hành vi nhóm” [9].
- _ Bước cuối: Phân tích thuật toán dé chứng minh tính khả thi của cơ chế phát
hiện Do nó là cơ chế phát hiện anomaly-based, nên việc phát hiện Botnet sẽ
không phụ thuộc vào chủng loại bot, Botnet [9].
1.3.2.4 Thống kê (statistical approaches)
Ky thuật thông kê chủ yêu dựa trên việc mô hình hóa dữ liệu, cu thê là các
thuộc tính thống kê, sử dụng những thông tin này để tiến hành đánh giá liệu mẫu
thử là bot hay không [9].
Điểm mạnh của kỹ thuật thống kê nằm ở khả năng phân tích dữ liệu nhanh
chóng, hơn nữa, kỹ thuật này thường đơn giản và minh bạch [9].
Trong thực tế, Botnet rất linh hoạt và thay đổi vô cùng nhanh chóng, dẫn
tới việc kỹ thuật dựa trên thống kê sẽ không hiệu quả Có thê tốn nhiều thời gian
trong việc xử lý, thu thập dữ liệu [9].
1.3.3 Phát hiện dựa trên Honeypot
Honeynet là một hệ thông tai nguyên thông tin được xây dựng với mục
đích giả dang và đánh lừa những kẻ xâm nhập bat hợp pháp, thu hút sự chú ýcủa chúng ngăn không cho chúng tiếp xúc với hệ thống thật [10] Honeypot sẽtiến hành lưu, thu thập các loại thông tin như: chữ ký của bot, cơ chế hoạt động
của C&C Server, chỉ tiết về Botnet, kỹ thuật sử dụng bởi attacker, mục tiêu của
attacker, và quan trọng nhất, lỗ hong của hệ thong ma bot khai thác
Mặc dù Honeynet hữu ích trong việc phát hiện sự ton tại nhưng lại bị hạnchế về khả năng truy vết, do đó nó không cung cấp được thông tin về kích
thước, phạm vi lây lan của Botnet, điều này khiến cho việc triệt phá Botnet gặpnhiều khó khăn Với những hạn chế như vậy, nên Honeynet thường chỉ được sửdung dé "bẫy" các Bots, phục vụ cho quá trình phân tích để có được nhữngthông tin ban đầu
Có thê thấy, công cụ này thường chỉ đóng vai trò như bước đầu trong kếhoạch phát hiện, thăm dò Botnet, nó cần phải kết hợp với các phương pháp khác
đề đạt được hiệu quả tốt hơn
1.4 Kết chương
Trong chương 1, đô án đã giới thiệu về khái niệm về botnet, DGA botnet,
đồng thời cũng trình bày về các kiến trúc của botnet, phương thức hoạt động của
botnet và một số phương pháp có thé dùng dé phát hiện botnet Ở chương tiếp
14
Trang 27theo, đồ án sẽ trình bày về học máy (Khái niệm, quy trình hoạt động và phân
loại) Và cũng trình bày về các thuật toán trong học máy sử dụng trong phần cài
đặt và thử nghiệm: Naive Bayes, kNN, Rừng ngẫu nhiên, SVM, Logistics
15
Trang 28CHƯƠNG 2: PHÁT HIỆN WORD-BASED DGA BOTNET
DỰA TRÊN HỌC MÁY
2.1 Khái quát về học máy
2.1.1 Giới thiệu về học máy
-Học máy (machine learning) hiện nay đã không còn xa lạ với môi người.Machine learning được ứng dụng trong nhiều lĩnh vực và ngành công nghiệp Vi
dụ: chân đoán trong y học, xử lý ảnh, dự đoán tài chính, phân loại, học kết hợp,
hôi quy
Học máy là một trường của trí tuệ nhân tạo (AI) cho phép máy tính tự học
từ những đữ liệu và cải thiện độ chính xác theo thời gian thông qua những thuật
toán học máy mà không cần lập trình rõ ràng
Một chương trình máy tính được cho là học từ kinh nghiệm E đối với một
số loại nhiệm vụ T và thước đo hiệu suất P, nếu hiệu suất của nó ở nhiệm vụ T,
được đo bằng P, sẽ cải thiện theo kinh nghiệm E [11]
Ví dụ: Vấn đề học lái xe robot;
® Nhiệm vụ T: Lái xe trên đường cao tốc sử dụng cảm biến tầm nhìn
e Hiệu suất P : Khoảng cách trung bình đã di chuyền trước khi xảy ra
lỗi
e Trai nghiệm đào tạo E : Chuỗi hình ảnh và lệnh lái được ghi lại khi
quan sát người lái xe.
Hiện nay, học máy là một thành phần không thê thiếu trong lĩnh vực khoa
hoc di liệu dang phát triển Thông qua việc sử dụng các phương pháp thống kê,các thuật toán được huấn luyện để đưa ra phân loại hoặc dự đoán, khám phá
những hiểu biết quan trọng trong các dự án khai phá dit liệu
2.1.2 Quy trình làm việc
16
Trang 29Machine Learning Workflow
Data Improve
collection model
Hình 2 1: Quy trình làm việc cua học máy
Quy trình làm việc của học máy bao gồm 5 bước: Thu thập dữ liệu, Xử lý
dữ liệu, Huấn luyện mô hình, Đánh giá mô hình, Cải thiện mô hình [12]
Bước 1: Data collection (Thu thập dữ liệu)
Bước đầu tiên trong học máy chính là thu thập dữ liệu Dữ liệu có thể tự
thu thập hoặc lay từ các nguồn khác nhau, các định dạng khác nhau, và phù hợpvới van dé nêu ra
Bước 2: Preprocessing (Tiền xử lý)
Tại bước này, cần xử lý lại dữ liệu đã thu thập được (chuẩn hóa, vector
hóa, loại bỏ các thuộc tính không quan trọng, gán nhãn dữ liệu, mã hóa một sé
dac trung, trich xuất đặc trưng, rút gọn dữ liệu ) nhưng vẫn đảm bảo kết quả
đầu ra Quy trình này giúp tối đa hóa thông tin về tập dữ liệu, đồng thời giúp
hiểu rõ hơn về các mối liên hệ của dữ liệu và đảm bảo độ chính xác của mô hình
học máy Dữ liệu sau đó được chia thành các tập, bao gồm huấn luyện và đánh
giá.
Bước 3: Training model (Huan luyện mô hình)
Đây được coi là bước quan trọng nhất trong quy trình làm việc của học
máy Ở bước này, tập dữ liệu sẽ được huấn luyện bằng một hoặc nhiều thuậttoán học may dé tìm hiểu đưa ra được mô hình hoc máy tối ưu nhất Từ mô hìnhnày dé dự đoán các kết qua mà đồ án cần dự đoán
Bước 4: Evaluating model (Đánh giá mô hình)
Sau khi trải qua quá trình huấn luyện, cần đánh giá dé xem mô hình củamình có tốt hay không Với tập dữ liệu dùng để đánh giá (được đưa ra ở quátrình xử lý dữ liệu), sẽ được đưa vào mô hình dé thực hiện dự đoán, và so sánh
kết quả đầu ra của mô hình với kết quả dữ liệu thực Từ đó đưa ra đánh giá qua
17
Trang 30các thông số khác nhau, từ đó kết luận được mô hình có đủ độ chính xác hay
không Độ chính xác của mô hình trên 80% được cho là tốt
Bước 5: Improve model (Cải thiện mô hình)
Cuối cùng, sau khi đã đánh giá mô hình, nếu mô hình có độ chính xác
chưa đạt thì cần huấn luyện lại mô hình, lặp lại từ bước 3 Có thể điều chỉnh lại
các thuật toán, hoặc các dữ liệu đầu vào, nhằm tăng độ chính xác của mô hình
học máy.
2.1.3 Phan loại
Dựa trên đặc tính của dữ liệu dau vào và mục tiêu của các bài toán học máy
chăng hạn như: phân lớp đữ liệu thành các nhãn, tìm kiếm các tương quan giữa
các nhóm đữ liệu, có thể phân các mô hình thành một số loại sau:
- M6 hình học có giám sat (supervised learning)
- M6 hình hoc không giám sat (unsupervised learning)
- M6 hình học ban giám sát (Semi-supervised learning)
- Mô hình học tự giám sát (Self-supervised learning)
- M6 hình học tăng cường (reinforcement learning)
- M6 hình học theo nhóm (Multi-Instance Learning)
Dưới đây là tổng quát của ba nhóm ki thuật học máy cơ ban: học máy có
giám sát, học máy không giám sát và học máy bán giám sát.
2.1.3.1 Học máy có giảm sát
Học máy có giám sát là thuật toán dự đoán đâu ra của một tap dữ liệu với
tập dữ liệu đầu vào (dữ liệu huấn luyện) là tập đã được gán nhãn
Cu thé hơn, học máy có giám sát là đưa bộ dữ liệu đã được gán nhãn vào
máy tính, tiến hành huấn luyện (training) theo một thuật toán nào đó từ đó đưa
ra được mô hình của bài toán Sau khi tìm hiểu cách tốt nhất dé mô hình hóa các
mối quan hệ cho đữ liệu được gắn nhãn, các thuật toán được huấn luyện sẽ được
sử dụng cho các bộ dữ liệu mới (không được gán nhãn) Công việc của máy tính
lúc này là dựa vào mô hình đã xây dựng tiễn hành đánh nhãn phân loại hoặc dự
đoán nhãn cho bộ dữ liệu mới.
Học máy có giám sát có thé được phân loại thành hai nhánh chính: phânloại và hồi quy
e Phan loại: bài toán phân loại với tập dữ liệu có các nhãn không được
phân thành từng nhóm Đầu ra bài toán này có thé là một nhãn mới Ví
dụ như việc dự đoán tuổi của một người, dự đoán giá nhà
18
Trang 31e - Hỏi quy: bài toán phân loại có đầu vào là dữ liệu đã được gắn với một số
hữu hạn nhãn Ví dụ như việc phân loại email có phải là spam hay không, hoặc phân loại một người là nam hay nữ.
Couto)
{Algorithm ] [Processing ]
Hình 2 2: Mô hình hoc máy có giảm sát
2.1.3.2 Học máy không giám sát
Học máy không giám sát là thuật toán cho máy tính học trên bộ dữ liệu mà không được gan nhãn, các thuật toán học máy sẽ tìm ra sự tương quan dữ liệu,
mô hình hóa dữ liệu hay chính là làm cho máy tính có kiến thức, hiểu về dit liệu,
từ đó chúng có thé phân loại các dit liệu về sau thành các nhóm, lớp giống nhau
mà chúng đã được học.
Học không giám sát sẽ không đưa ra kết qua cu thé cho câu trả lời có hay
không, hoặc một nhãn cụ thê nào đó
Phương pháp học máy không giám sát được chia thành 2 loại: Phân cụm và
không phân cụm.
e Phan cụm: Có một tập dữ liệu X, công việc của máy tính là dựa vào đặc
điểm của thông tin trong tập dir liệu tìm ra sự tương đồng hay sự liênquan để phân nhóm ( ví dụ: phân loại gen thành các nhóm về màu da,mau mắt, màu tóc giống nhau)
® Không phân cụm: Bài toán tìm ra một quy luật dựa vào tập dữ liệu có
trước.
19
Trang 32Hình 2 3: Mô hình học may không giảm sát
2.1.3.3 Hoc máy ban giám sat
Kỹ thuật nay sẽ bao gdm cả 2 kỹ thuật hoc may có giám sat va học máy
không giám sát Nó sử dụng cả dit liệu được gắn nhãn và không được gắn nhãn
dé huấn luyện — thường thi một lượng nhỏ dữ liệu được gan nhãn với một lượng
lớn dữ liệu không được gắn nhãn (vì dit liệu không được gắn nhãn ít tốn kémhơn và mất ít công sức hơn đề thu thập)
2.1.4 Một số thuật toán trong học máy
2.1.4.1 SVM (Support Vector Machine)
a Gidi thiéu
SVM (Support Vector Machine - Máy véc tơ hỗ trợ) là một thuật toán được
sử dụng phổ biến trong các bài toán phân lớp dit liệu do Vladimir N Vapnik đề
xuất [13] Đây là phương thức học máy có giám sát, có thể được sử dụng cho cả
bài toán phân lớp hay bài toán hồi quy Tuy nhiên, thuật toán này chủ yếu được
sử dụng trong việc việc phân loại [12].
Mục tiêu của thuật toán SVM sẽ tìm kiếm một siêu mặt phang (hyperplane)
dé phân tách tập dữ liệu Từ siêu mặt phăng này, sẽ phân chia không gian thànhcác miền khác nhau, mỗi miền sẽ chứa 1 loại di liệu/ một nhãn khác nhau
Siêu phăng (hyperplane) định nghĩa trong một chiều được gọi là điểm.Trong hai chiều, nó là một đường Trong không gian ba chiều, nó là một mặt
phẳng Và ở nhiều chiều hơn, nó được gọi là siêu phẳng
20
Trang 33Hình 2 4: Mặt phân cách 2 lớp dữ liệu bằng 1 hàm tuyến tínhSVM hoạt động dựa trên hai nguyên tắc chính:
e Thứ nhất: SVM tìm cách phân chia các mẫu đữ liệu có nhãn khác nhau
băng một siêu phăng sao cho khoảng cách từ siêu phẳng tới các mẫu dữ
liệu có nhãn khác nhau là lớn nhất Nguyên tắc này được gọi là nguyên
tắc lề cực đại (max margin)
©_ Thứ hai: Dé giải quyết trường hợp các ví dụ không thé phân chia bằng
một siêu phăng, phương pháp SVM sẽ ánh xạ không gian ban đầu của
các ví dụ sang một không gian khác thường là có số chiều cao hơn, sau
đó tìm siêu phăng với lề cực đại trong không gian này
b Phân loại
SVM được chia thành 2 loại: SVM tuyến tính và SVM phi tuyến tính:
- SVM tuyến tính: SVM tuyến tính được sử dụng cho dit liệu có thé phân
tách tuyến tính, có nghĩa là nếu một tập dữ liệu có thể được phân loạithành hai lớp bang cách sử dụng một đường thang duy nhất, thi dit liệu
đó được gọi là dữ liệu có thể phân tách tuyến tính và bộ phân loại được
sử dụng gọi là Bộ phân loại SVM tuyến tính
- SVM phi tuyến tính: SVM phi tuyến tính được sử dụng cho dit liệu được
phân tách không theo tuyến tính, có nghĩa là nếu tập dữ liệu không thê
được phân loại băng cách sử dụng một đường thăng, thì dữ liệu đó được
gọi là dữ liệu phi tuyến tính và bộ phân loại được sử dụng được gọi là
bộ phân loại SVM không tuyến tính
c Nguyên lý hoạt động của thuật toán SVM
21
Trang 34Như đã nói ở trên, SVM tìm cách phân chia các mẫu dữ liệu có nhãn khác
nhau băng một siêu phăng Tuy nhiên, sẽ có vô sô siêu phăng , vay làm thê nao
đê chọn một siêu phăng tôi ưu nhât.
x
Hình 2 5: Các siêu phẳng dé phân lop
Nhận thấy có rất nhiều siêu phăng nên sẽ có phương pháp chọn siêu phẳng
tối ưu nhất chính là: xác định khoảng cách lớn nhất từ điều gần nhất của một lớp
nào đó đến siêu phăng Khoảng cách này được gọi là "Margin" Nhìn hình 2.5 cóthé thay, khoảng cách margin lớn nhất day là đường C
Tuy nhiên, trong nhiều trường hợp không thé dé dàng phân tách các lớp bởi
có nhiều dữ liệu gây nhiễu Vi vậy việc xác đỉnh siêu phang là rất khó Trong
trường hợp này, SVM có tính năng cho phép bỏ qua các ngoại lệ và tìm ra siêu
phẳng có biên giới tối đa Do đó, có thé nói, SVM có khả năng mạnh trong việc