TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO TÓM TẮT
NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HỌC 2023 - 2024
PHÁT HIỆN DGA BOTNET
DỰA TRÊN KÝ TỰ SỬ DỤNG HỌC SÂU
Giảng viên hướng dẫn: TS. Vũ Xuân Hạnh Sinh viên thực hiện: Ngọ Văn Sơn
Hà Nội – 2024
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO TỔNG KẾT
NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HỌC 2023 - 2024
PHÁT HIỆN DGA BOTNET
DỰA TRÊN KÝ TỰ SỬ DỤNG HỌC SÂU
Giảng viên hướng dẫn: TS. Vũ Xuân Hạnh Sinh viên thực hiện: Ngọ Văn Sơn
Hà Nội – 2024
i
MỤC LỤC
DANH MỤC HÌNH VẼ ... iii
DANH MỤC DẢNG BIỂU ... iv
DANH MỤC CÁC TỪ VIẾT TẮT ... v
PHẦN MỞ ĐẦU ... 1
1. Giới thiệu.. ... 1
2. Tính cấp thiết của đề tài ... 1
3. Mục đích nghiên cứu ... 2
4. Đối tượng và phạm vi nghiên cứu ... 2
5. Phương pháp nghiên cứu ... 3
6. Bố cục đề tài ... 3
CHƯƠNG 1: TỔNG QUAN VỀ BOTNET VÀ PHÁT HIỆN BOTNET ... 4
1.1. Tổng quan về botnet ... 4
1.1.1. Khái quát về botnet ... 4
1.1.2. Phương thức hoạt động, vòng đời ... 5
1.2. Phân loại botnet ... 5
1.2.1. Phân loại theo kiến trúc mạng ... 5
1.2.2. Phân loại botnet theo giao thức truyền thông ... 6
1.3. Lịch sử phát hiện botnet ... 7
1.4. Hướng nghiên cứu của đề tài ... 8
1.4.1. Các nghiên cứu có liên quan ... 8
1.4.2. Ưu nhược điểm của các mô hình phát hiện botnet ... 8
1.5. Kết chương ... 9
CHƯƠNG 2: PHÁT HIỆN DGA BOTNET DỰA TRÊN KÝ TỰ SỬ DỤNG HỌC SÂU . 10 2.1. Khái quát về DGA Botnet ... 10
2.1.1. Giới thiệu về DGA Botnet ... 10
2.1.2. Các loại DGA botnet ... 10
2.1.3. Phát hiện Character-based DGA botnet ... 12
2.2. Tổng quan về máy học ... 16
ii
2.2.1. Giới thiệu về máy học ... 16
2.2.2. Học sâu ... 19
2.3. Giải pháp giải quyết vấn đề ... 23
2.4. Kết chương ... 24
CHƯƠNG 3: THỬ NGHIỆM, PHÂN TÍCH, ĐÁNH GIÁ ... 25
3.1. Tiến hành thực nghiệm ... 25
3.1.1. Tiền xử lý dữ liệu ... 25
3.1.2. Phương pháp đánh giá ... 26
3.1.3. Giảm chiều dữ liệu ... 28
3.2. Đánh giá và so sánh kết quả thực nghiệm ... 28
3.2.1. So sánh các thuật toán ... 28
3.2.2. Ứng dụng thử nghiệm ... 31
3.3. Ứng dụng mô hình vào thực tế ... 32
3.4. Đưa ra nhận định ... 35
3.5. Kết chương ... 35
KẾT LUẬN 37 TÀI LIỆU THAM KHẢO ... 38
iii
DANH MỤC HÌNH VẼ
Hình 1.1: Cách thức Botmaster điều khiển các bot thông qua máy chủ C&C ... 4
Hình 1.2: Vòng đời botnet ... 5
Hình 2.1: Biểu đồ thống kê từ có nghĩa dài nhất xuất hiện trong tên miền ... 16
Hình 2.2: Quy trình học máy ... 17
Hình 2.3: Mô hình học máy có giám sát ... 17
Hình 2.4: Mô hình học máy không giám sát ... 18
Hình 2.5: Mô hình Neural network ... 20
Hình 2.6: Mô hình mạng nơ-ron hồi quy(RNN) ... 21
Hình 2.7: Mô hình LSTM (nguồn [17]) ... 22
Hình 2.8: Mô hình CNN đơn giản ... 22
Hình 2.9: Mô hình DLM... 23
Hình 3.1: Cấu trúc của ma trận nhầm lẫn ... 28
Hình 3.2: Quy trình huấn luyện và phát hiện ... 33
Hình 3.2: Phương án đặt mô hình phát hiện DGA botnet tại máy chủ DNS ... 34
Hình 3.3: Phương án đặt mô hình phát hiện DGA botnet trong mạng LAN ... 35
iv
DANH MỤC DẢNG BIỂU
Bảng 1.1: Ưu nhược điểm của các mô hình botnet ... 8
Bảng 2.1: Một số họ Character-based DGA botnet ... 11
Bảng 2.2: Một số họ word-based DGA botnet ... 11
Bảng 2.3: Bảng xác suất của 38 ký tự trong 100.000 tên miền lành tính ... 15
Bảng 3.1: Tập huấn luyện ... 25
Bảng 3.2: Tập kiểm thử ... 26
Bảng 3.3: Hiệu suất của các tập dữ liệu sử dụng thuật toán LSTM ... 29
Bảng 3.4: Hiệu suất của các tập dữ liệu sử dụng thuật toán RNN ... 29
Bảng 3.5: Hiệu suất của các tập dữ liệu sử dụng thuật toán CNN ... 29
Bảng 3.6: Kết quả phân loại 25 họ DGA botnet sử dụng 24 đặc trưng... 30
Bảng 3.7: Kết quả phân loại 25 họ DGA botnet sử dụng 25 đặc trưng (thêm f25) ... 30
Bảng 3.8: Tỷ lệ phát hiện 25 họ DGA đã được huấn luyện khi dùng 25 đặc trưng ... 30
Bảng 3.9: Tỷ lệ phát hiện 10 họ DGA không trong tập huấn luyện khi dùng 25 đặc trưng . 30 Bảng 3.10: So sánh hiệu suất của đề tài với các nghiên cứu liên quan ... 31
v
DANH MỤC CÁC TỪ VIẾT TẮT
KÝ HIỆU TIẾNG ANH TIẾNG VIỆT
ACC Accuracy Độ chính xác
AI Artificial Intelligence Trí tuệ nhân tạo
ANN Artificial Neural Network Mạng nơ ron nhân tạo
CNN Convolutional Neural Netword Mạng nơ ron tích hợp
CnC Command and Control Máy chủ lệnh và điều khiển
DGA Domain Generation Algorithms Thuật toán sinh tên miền
DL Deep Learning Học sâu
FNR False Negative Rate Tỷ lệ âm tính giả (bỏ sót)
FPR False Positive Rate Tỷ lệ dương tính giả (nhầm lẫn)
LSTM Long Short Term Memory Bộ nhớ ngắn-dài hạn
ML Machine Learning Học máy
SFS Sequential Forward Selection Lựa chọn tuần tự tiến
SBS Sequential Backward Selection Lựa chọn tuần tự lùi
1 PHẦN MỞ ĐẦU 1. Giới thiệu
Trên khắp thế giới, sự phát triển của công nghệ thông tin và viễn thông đã mở ra không gian mới cho sự tấn công và đe dọa an ninh mạng. Trong số những mối đe dọa này, botnet - một mạng lưới các máy tính và thiết bị kết nối Internet bị kiểm soát từ xa - đã trở thành một trong những công cụ nguy hiểm nhất mà các kẻ tấn công sử dụng để thực hiện các hành động xấu.
Để tạo ra một botnet, kẻ tấn công thường sử dụng các phương pháp lây lan mã độc hại thông qua email lừa đảo, các trang web độc hại, hoặc lỗ hổng bảo mật trong phần mềm. Khi một máy tính hoặc thiết bị bị nhiễm mã độc, nó sẽ trở thành một "bot"
và liên kết với máy chủ điều khiển từ xa để nhận lệnh và thực hiện các hành động theo sự điều khiển của kẻ tấn công. Một báo cáo gần đây của công ty giải pháp phòng chống bot Netacea (Anh) đã phân tích tác động của các cuộc tấn công bot đối với các tổ chức, doanh nghiệp. Nghiên cứu này cho thấy các doanh nghiệp mất trung bình 4,3% doanh thu trực tuyến hàng năm vào tay bot, tương đương 85,6 triệu USD, con số này đã tăng hơn gấp đôi trong hai năm qua. Trong đó, 72% tỉ lệ các cuộc tấn công xảy ra có nguồn gốc từ Trung Quốc và 66% đến từ Nga [1].
Botnet không chỉ là một vấn đề an ninh mạng, mà còn là một thách thức đối với sự phát triển bền vững của môi trường kỹ thuật số. Đề tài sẽ tập trung xây dựng, phát triển phương pháp phát hiện DGA botnet dựa trên kí tự sử dụng học sâu.
2. Tính cấp thiết của đề tài
Như đã đề cập trong mục Giới thiệu, các botnet đã thực sự trở thành một trong các mối đe dọa lớn nhất đối với mạng Internet toàn cầu do chúng đã và đang phát triển rất mạnh về cả quy mô, mức độ phân tán, kỹ thuật điều khiển và trực tiếp thực hiện, hoặc có liên quan chặt chẽ đến nhiều hoạt động độc hại, như tấn công DDoS, phát tán thư rác, quảng bá, phát tán các loại phần mềm độc hại, phần mềm gián điệp, quảng cáo, giả mạo địa chỉ URL, giả mạo hệ thống DNS, tấn công chèn mã độc trên các ứng
2
dụng web và đánh cắp các thông tin nhạy cảm trên các hệ thống máy chủ cũng trên hệ thống máy người dùng cuối.
Do mối đe dọa của các botnet đối với mạng Internet toàn cầu, các hệ thống, dịch vụ và người dùng Internet ngày càng lớn, việc nghiên cứu, phát triển và ứng dụng các giải pháp giám sát, phát hiện và loại trừ botnet là rất cấp thiết. Các giải pháp, kỹ thuật giám sát, phát hiện hoạt động và loại trừ các bot, botnet đóng vai trò trọng yếu và đây cũng là hướng nghiên cứu của đề tài đề tài này tập trung nghiên cứu phát hiện botnet sử dụng kỹ thuật phát hiện xâm nhập dựa trên tấn công DNS.
Đề tài “Phát hiện DGA Botnet dựa trên ký tự sử dụng phương pháp học sâu”
nhằm góp phần giải quyết một số vấn đề còn tồn tại trong các kỹ thuật, giải pháp phát hiện các dạng DGA botnet: lựa chọn, trích xuất tập đặc trưng mới phù hợp hơn để phân biệt tốt hơn các tên miền DGA và tên miền hợp lệ, nhằm tăng độ chính xác phát hiện, giảm tỷ lệ cảnh báo sai.
3. Mục đích nghiên cứu
Mục tiêu của đề tài là nghiên cứu, đề xuất một số thuật toán phát hiện DGA botnet dựa trên học sâu. Cụ thể, đề tài tập trung vào các mục tiêu sau:
• Nghiên cứu, đánh giá các phương pháp, kỹ thuật, giải pháp, công cụ phát hiện botnet hiện có;
• Nghiên cứu, đề xuất các mô hình phát hiện botnet dựa trên học sâu sử dụng các tập đặc trưng phân loại tên miền mới nhằm nâng cao độ chính xác, giảm cảnh báo sai;
• Cài đặt, thử nghiệm và đánh giá các mô hình phát hiện botnet đã đề xuất sử dụng các tệp dữ liệu thực tế.
4. Đối tượng và phạm vi nghiên cứu
• Đối tượng nghiên cứu là character-based DGA botnet.
• Phạm vi nghiên cứu giới hạn trong các kỹ thuật, giải pháp phát hiện DGA botnet sử dụng dữ liệu truy vấn DNS.
3 5. Phương pháp nghiên cứu
Đề tài sử dụng phương pháp nghiên cứu lý thuyết kết hợp với phương pháp thực nghiệm. Trong đó, phương pháp nghiên cứu lý thuyết được sử dụng để thực hiện các phần việc sau:
• Nghiên cứu nền tảng lý thuyết về botnet cho đề tài, bao gồm khái quát về botnet, bot, phương thức hoạt động của botnet, vẫn đề botnet khai thác hệ thống DNS trong quá trình hoạt động;
• Nghiên cứu nền tảng lý thuyết về học máy cho đề tài, bao gồm khái quát về học máy, một số giải thuật học sâu, phương pháp đánh giá và các độ đo đánh giá mô hình phát hiện dựa trên học máy;
• Khảo sát, đánh giá các đề xuất, giải pháp đã có cho phát hiện botnet, DGA botnet, trên cơ sở đó tổng hợp các ưu điểm, nhược điểm làm cơ sở cho đề xuất của đề tài;
• Sử dụng các đặc trưng đã có, xây dựng các mô hình phát hiện DGA botnet dựa trên phân loại trên miền DGA với tên miền hợp lệ.
• Khảo sát các tập dữ liệu về botnet, DGA botnet và lựa chọn tập dữ liệu phù hợp cho thực nghiệm;
• Thử nghiệm các mô hình phát hiện DGA botnet đề xuất trong đề tài, đánh giá, so sánh các mô hình đề xuất với các mô hình, đề xuất đã có.
6. Bố cục đề tài
Đề tài được bố cục thành ba chương với nội dung chính như sau:
Phần mở đầu
Chương 1 Tổng quan về botnet và phát hiện botnet.
Chương 2 Phát hiện DGA botnet dựa trên ký tự sử dụng học sâu.
Chương 3 Thử nghiệm, phân tích, đánh giá.
Kết luận
4
CHƯƠNG 1: TỔNG QUAN VỀ BOTNET VÀ PHÁT HIỆN BOTNET
1.1. Tổng quan về botnet 1.1.1. Khái quát về botnet
Bot là một loại phần mềm độc hại cho phép kẻ tấn công giành quyền kiểm soát máy tính, hoặc thiết bị tính toán bị lây nhiễm. Máy tính bị nhiễm bot thường được gọi là zombie hay là máy tính ma. Trên thực tế có hàng ngàn, hàng trăm ngàn máy tính và thiết bị tính toán có kết nối Internet bị nhiễm một số loại bot mà người dùng không biết và không nhận ra chúng. Kẻ tấn công có thể truy cập các zombie và kích hoạt chúng thực thi các cuộc tấn công từ chối dịch vụ, hoặc gửi hàng loạt thư rác. Khi thực hiện truy vết ngược lại nguồn khởi phát các cuộc tấn công, người ta thường tìm thấy các zombie - cũng là nạn nhân chứ không phải là kẻ tấn công thực sự. Các bot do một hoặc một nhóm kẻ tấn công thông qua một hoặc một số máy tính (gọi là botmaster) kiểm soát và chúng được liên kết tạo thành một mạng lưới các máy bị kiểm soát được gọi là botnet. Botmaster thường điều khiển các bot trong botnet do mình kiểm soát thông qua hệ thống các máy chủ chỉ huy và kiểm soát (Command and Control, hoặc C&C, hoặc CnC), minh họa tại Hình 1.1 . Kênh giao tiếp giữa các bot và các máy chủ CnC trong một botnet có thể là IRC, HTTP hoặc giao thức truyền thông khác [2].
Hình 1.1: Cách thức Botmaster điều khiển các bot thông qua máy chủ C&C
5 1.1.2. Phương thức hoạt động, vòng đời
Hình 1.2 biểu diễn vòng đời của một mạng botnet. Theo đó, các bước trong vòng đời botnet bao gồm Khởi tạo, Đăng ký, Lây nhiễm sơ bộ, Xây dựng mạng bot, Tập hợp, Khởi động tấn công, và Nâng cấp và Bảo trì.
Hình 1.2: Vòng đời botnet
1.2. Phân loại botnet
Các loại botnet có thể được phân loại theo 2 tiêu chí: (i) theo kiến trúc mạng và (ii) theo giao thức truyền thông. Botnet có thể được tổ chức theo nhiều mô hình mạng, chủ yếu theo mô hình tổ chức hệ thống các máy chủ CnC là trung gian giữa botmaster và các bot. Các giao thức truyền thông là các giao thức hỗ trợ giao tiếp giữa các máy chủ CnC và các bot trong botnet.
1.2.1. Phân loại theo kiến trúc mạng
Sức mạnh của các botnet nằm ở khả năng hình thành và điều khiển một mạng lưới linh hoạt các máy bị điều khiển có kết nối Internet. Do đó, các cách tiếp cận khác nhau được sử dụng để giải quyết các vấn đề truyền thông giữa các thực thể trong mạng botnet. Error! Reference source not found. biểu diễn các kiến trúc mạng botnet, bao g ồm kiến trúc tập trung, kiến trúc ngang hàng và kiến trúc lai.
6
Kiến trúc tập trung: Các ưu điểm của kiến trúc tập trung bao gồm: (i) triển khai dễ dàng, không đòi hỏi các phần cứng chuyên dụng; (ii) phản ứng nhanh do các máy chủ CnC trực tiếp điều phối các bot trong mạng mà không bị can thiệp bởi bên thứ ba;
(iii) khả năng tiếp cận tốt do có sự phối hợp trực tiếp giữa botmaster và các bot; (iv) cập nhật kịp thời thông tin từ botmaster; và (v) khả năng mở rộng tốt. Hạn chế của kiến trúc tập trung là máy chủ CnC được xem như là điểm yếu duy nhất trong hệ thống botnet và dễ dàng bị vô hiệu hóa.
Kiến trúc ngang hàng: Ưu điểm của kiến trúc ngang hàng là khó bị vô hiệu hóa do botnet có thể duy trì hoạt động mà không cần sử dụng các máy chủ CnC tập trung.
Tuy nhiên, các mạng botnet ngang hàng chậm hội tụ và phản ứng, khó quản lý và khả năng mở rộng kém.
Kiến trúc lai: Kiến trúc lai kế thừa các thuộc tính của kiến trúc tập trung và kiến trúc ngang hàng. Trong botnet với kiến trúc lai, có 2 loại bot hoạt động: bot phục vụ (servant bot) và bot khách (client bot). Bot phục vụ hoạt động đồng thời như một máy khách và một máy chủ, được cấu hình với các địa chỉ IP định tuyến (IP tĩnh); Ngược lại, bot khách chỉ hoạt động như một máy khách và được cấu hình với các địa chỉ IP không định tuyến (IP động).
1.2.2. Phân loại botnet theo giao thức truyền thông
Các botnet khác nhau sử dụng các giao thức khác nhau cho truyền thông và điều này làm cho việc nghiên cứu, phát hiện và phòng ngừa botnet khó khăn hơn, đặc biệt là khi botmaster có xu hướng sử dụng các giao thức truyền thông, ứng dụng phổ biến.
Các giao thức, hoặc ứng dụng phổ biến được sử dụng trong truyền thông của botnet bao gồm IRC, HTTP, DNS và P2P. Các giao thức, hoặc ứng dụng truyền thông khác cũng đã được sử dụng nhưng không phổ biến, như IM hoặc Skype.
IRC: Internet Relay Chat (IRC) là một trong những giao thức đầu tiên được sử dụng cho truyền thông trong mạng botnet. IRC hoạt động theo mô hình client-server, trong đó các bot sẽ đăng ký với máy chủ CnC do botmaster kiểm soát và chờ các lệnh.
HTTP: Giao thức truyền siêu văn bản (HTTP) là một giao thức truyền thông phổ biến được sử dụng bởi các botnet. Các máy khách (bot) liên lạc với máy chủ HTTP do
7
botmaster kiểm soát để nhận lệnh và thực hiện. Các lệnh được phát hành từ máy chủ HTTP có thể được lồng trong lưu lượng HTTP thông thường để không gây ra sự nghi ngờ. Gần đây, các phương pháp sử dụng HTTP cải tiến đã được phát hiện, trong đó botmaster xuất bản các lệnh trên các trang web công khai cho phép người dùng tải lên một số dạng nội dung. Sau đó, khi các bot riêng lẻ truy cập các trang web trên, chúng kiểm tra và tải các lệnh được xuất bản gần đây.
DNS: Hệ thống phân giải tên miền (DNS) cũng có thể được sử dụng để truyền các lệnh điều khiển từ botmaster đến các bot trong botnet. Botmaster đạt được điều này bằng cách ẩn các lệnh bên trong lưu lượng DNS thông thường.
P2P: Một số botnet sử dụng các giao thức truyền thông ngang hàng (P2P) để truyền các lệnh điều khiển tới các bot, ví dụ như Storm Worm botnet. Cách thức các giao thức này hoạt động có thể khác nhau, vì một số botnet sử dụng các ứng dụng P2P nguồn mở, hoặc có thể tạo ra các giao thức P2P riêng của chúng.
1.3. Lịch sử phát hiện botnet
Lịch sử phát hiện botnet có thể được chia thành các giai đoạn sau:
Giai đoạn đầu (1990s): Các botnet đầu tiên được phát hiện vào đầu những năm 1990. Các botnet này thường được sử dụng để thực hiện các cuộc tấn công từ chối dịch vụ (DDoS). Các botnet này thường được tạo ra bằng cách khai thác các lỗ hổng bảo mật trong phần mềm.
Giai đoạn giữa (2000s): Các botnet trở nên phức tạp hơn vào những năm 2000.
Các botnet này thường được sử dụng để gửi thư rác và lừa đảo. Các botnet này thường được tạo ra bằng cách sử dụng các kỹ thuật lừa đảo xã hội.
Giai đoạn hiện tại (2010s): Các botnet ngày nay thậm chí còn phức tạp hơn. Các botnet này thường được sử dụng để thực hiện nhiều loại tấn công mạng khác nhau, bao gồm tấn công DDoS, lừa đảo, và phát tán phần mềm độc hại. Các botnet này thường được tạo ra bằng cách sử dụng các kỹ thuật tấn công tinh vi.
8
Ngày nay, botnet là một mối đe dọa an ninh mạng nghiêm trọng. Các botnet có thể được sử dụng để thực hiện nhiều loại tấn công mạng khác nhau, có thể gây ra thiệt hại đáng kể cho các doanh nghiệp và cá nhân.
1.4. Hướng nghiên cứu của đề tài 1.4.1. Các nghiên cứu có liên quan
Học sâu đã được ứng dụng rộng rãi trong những năm gần đây trong nhiều lĩnh vực và đặc biệt đạt nhiều thành công trong lĩnh vực xử lý ảnh và xử ngôn ngữ tự nhiên.
Học sâu cũng đã và đang được sử dụng trong các mô hình phát hiện tấn công, xâm nhập, cũng như trong phát hiện botnet. Nghiên cứu của Juhong Namgung và cộng sự [3] đã đề xuất sử dụng mô hình học sâu đa lớp BiLSTM để phân loại DGA botnet. Khi CNN được áp dụng để phân loại văn bản và cho thấy sự thành công so với LSTM trong một số nhiệm vụ, nó được áp dụng một cách tự nhiên vào phân tích URL độc hại. Các đánh giá gần đây chỉ ra rằng học sâu duy trì thành công hơn so với các mô hình rừng ngẫu nhiên được huấn luyện bằng cách sử dụng các đặc trưng được lựa chọn thủ công, nhưng không xem xét bối cảnh lớn hơn của môi trường triển khai hoặc triển khai của mô hình . Tuy nhiên, đánh giá một cách có hệ thống hầu hết các hệ thống phát hiện DGA luôn hoạt động kém hiệu quả trên các họ word-based DGA botnet.
1.4.2. Ưu nhược điểm của các mô hình phát hiện botnet
Đã có rất nhiều các mô hình phát hiện botnet được công bố sử dụng rất nhiều các phương pháp khác nhau. Chỉ ra ưu nhược điểm của một số mô hình:
Bảng 1.1: Ưu nhược điểm của các mô hình botnet
Mô hình Ưu điểm Nhược điểm
Phát hiện DGA botnet sử dụng học có giám sát
Học máy có giám sát thường có khả năng phân loại với hiệu suất cao, đặc biệt là khi được huấn luyện trên dữ liệu lớn và đa dạng.
Dễ thực hiện và đa dạng thuật toán.
Phụ thuộc vào dữ liệu: Hiệu suất của mô hình phụ thuộc nhiều vào chất lượng và sự đa dạng của dữ liệu huấn luyện.
Việc có dữ liệu gắn nhãn là cần thiết, và việc thu thập và gán nhãn dữ liệu có thể tốn kém và mất thời gian.
Phát hiện DGA botnet sử dụng học không giám sát
Không yêu cầu dữ liệu được gắn nhãn giúp tiết kiệm thời gian và chi phí.
Vì không có dữ liệu gắn nhãn để đánh giá, việc đánh giá hiệu suất của mô hình có thể trở nên khó khăn và tương đối chủ quan.
9 Phát hiện DGA
botnet sử dụng học sâu
Deep learning thường cho hiệu suất tốt trong việc phân loại nhãn trên các tập dữ liệu lớn và phức tạp. Có khả năng học các đặc trưng từ dữ liệu mà không cần phải chỉ định rõ ràng từng đặc trưng Có khả năng học từ dữ liệu mới và cải thiện hiệu suất của mô hình theo thời gian khi có thêm dữ liệu mới được cung cấp.
Yêu cầu dữ liệu lớn, cần phần cứng mạnh mẽ do khả năng tính toán lớn.
Deep learning có thể dễ bị overfitting đặc biệt khi dữ liệu huấn luyện không đủ lớn hoặc không đa dạng đủ.
Việc thiết lập và huấn luyện các mạng nơ-ron sâu đòi hỏi kiến thức và kỹ năng chuyên sâu về machine learning và lập trình.
1.5. Kết chương
Có thể nói rằng botnet là mối đe dọa an ninh cho các cơ quan, tổ chức, doanh nghiệp và người dùng Internet hiện nay. Do vậy, nghiên cứu phát triển kỹ thuật phát hiện, giám sát DGA botnet là việc cấp thiết. Chương 1 giới thiệu tổng quan về botnet và phương thức hoạt động của chúnng, vắn tắt về lịch sử botnet.
Trong chương 2 trình bày về các đặc trưng của character-based DGA botnet, khái niệm học sâu và các thuật toán học sâu được sử dụng cho đề tài.
10
CHƯƠNG 2: PHÁT HIỆN DGA BOTNET DỰA TRÊN KÝ TỰ SỬ DỤNG HỌC SÂU
2.1. Khái quát về DGA Botnet 2.1.1. Giới thiệu về DGA Botnet
DGA botnet là các họ botnet sử dụng kỹ thuật DGA (Domain Generation Algorithm) để sinh và đăng ký nhiều tên miền ngẫu nhiên khác nhau cho máy chủ chỉ huy và điều khiển CnC của chúng nhằm chống lại việc bị kiểm soát và đưa vào danh sách đen. Các botnet dạng này còn được gọi là DGA-based botnet, hay ngắn gọn là DGA botnet. Các DGA botnet sử dụng thuật toán DGA để định kỳ sinh và đăng ký một lượng lớn tên miền giả ngẫu nhiên mà chúng được phân giải thành địa chỉ IP của máy chủ CnC của botnet. Lý do chính của việc sử dụng DGA là làm phức tạp việc kiểm soát và thu hồi tên miền. Có nhiều thuật toán DGA được các botnet sử dụng để sinh các tên miền. Một só thuật toán DGA sinh tên miền bằng cách ghép ngẫu nhiên các ký tự, một số khác lại sử dụng phương pháp ghép các từ theo một qui luật nào đó.
Có một số botnet sử dụng thuật toán DGA sinh các tên miền phụ thuộc thời gian. DGA có thể sử dụng các phép toán kết hợp với các biến luôn thay đổi, chẳng hạn như năm, tháng, ngày, giờ, phút để sinh tên miền ngẫu nhiên. Ví dụ, một dạng của thuật toán DGA được thực hiện bởi 1 hàm có chứa 16 vòng lặp. Mỗi vòng lặp sinh ngẫu nhiên 1 ký tự trong tên miền như sau [4]:
year = ((year ^ 8 * year) >> 11) ^ ((year & 0xFFFFFFF0) << 17) month = ((month ^ 4 * month) >> 25) ^ 16 * (month & 0xFFFFFFF8) day = ((day ^ (day << 13)) >> 19) ^ ((day & 0xFFFFFFFE) << 12) domain += chr(((year ^ month ^ day) % 25) + 97)
Trong đó: (i) toán tử ‘^’: sao chép bit nếu nó được đặt (chỉ bit 1) chỉ trong một toán hạng; (ii) toán tử ‘*’: phép nhân và gán; (iii) toán tử ‘>>’: dịch phải bit; (iv) toán tử ‘&’: phép AND; (v) toán tử ‘<<’: dịch trái bit.
2.1.2. Các loại DGA botnet
Theo tập ký tự được sử dụng để tự động sinh tên miền, các DGA botnet có thể được chia thành 3 dạng chính [2]: character-based DGA botnet, word-based DGA
11
botnet và mixed DGA botnet. Character-based DGA botnet là các DGA botnet được biết đến nhiều nhất. Phương pháp sinh tên miền của character-based DGA botnet là kết hợp các ký tự được chọn ngẫu nhiên thông qua các thuật toán. Các tên miền của họ botnet này thường được sinh bằng cách ghép ngẫu nhiên các ký tự trong bảng chữ cái tiếng Anh (a-z), các số (0-9) và các chữ số trong hệ Hexa-decimal (0-9, a-f). Mỗi họ character-based DGA botnet lại sinh tên miền với độ dài khác nhau. Bảng 2.1 liệt kê một số họ character-based DGA botnet và mẫu tên miền tự sinh.
Bảng 2.1: Một số họ Character-based DGA botnet STT Họ botnet Ký tự sử dụng Ví dụ
1 bamital ký tự Hexa 4b6c4773d825cc81f2c13a64d0b92230.co.cc 2 chinad “a..z” và “0..9” x9l30gz89yjlcqrm.ru
3 corebot “a..z” và “0..9” 0ub1rs8yjgb32e.ddns.net 4 murofet “a..z” qgptdfenlfaiygeovojfqlyx.org
5 dyre ký tự Hexa z249668e96ea6e9c6cc4a723c014bf28aa.in 6 qadars “a..z” và “0..9” v452fkpmbs1m.net
7 shiotob “a..z” và “0..9” iizvus3sgruqmv.net
8 wd ký tự Hexa và ‘w’ wde4159a184a02d12a8825da43be206a37.win 9 enviserv ký tự Hexa 47f2cd66c9.in
10 rovnix “a..z” và “0..9” rc7thuhy8agn43zzgi.biz
… … … …
Word-based DGA botnet là các DGA botnet sử dụng kỹ thuật sinh tên miền dựa trên tổ hợp các từ tiếng Anh lấy từ các từ điển. Điều này là do các tên miền sinh bởi các character-based DGA botnet thường dễ bị phát hiện bởi vì đa số các tên miền sinh bởi các botnet dạng này là tổ hợp ngẫu nhiên các ký tự, thường không có nghĩa và dễ phân biệt so với các tên miền lành tính do con người lựa chọn.
Bảng 2.2: Một số họ word-based DGA botnet STT Họ botnet Từ sử dụng Ví dụ
1 bigviktor Nối 3-4 từ trong 4 từ điển
showremote-conclusion.fans turntruebreakfast.futbol 2 matsnu Nối 2-3 từ trong 2 từ
điển world-bite-care.com activitypossess.com
12 3 ngioweb Nối từ trong 3 từ
điển overecobism-revacidom-ultrasaxeship.org rexarurission.biz
4 suppobox
Nối 2 từ trong 1 từ
điển (có 3 từ điển) sharmainewestbrook.net (từ điển 3)
tablethirteen.net (từ điển 2) childrencatch.net (từ điển 1)
Mixed DGA botnet là dạng botnet sử dụng kỹ thuật lai giữa character-based DGA botnet và word-based DGA botnet để tăng độ khó cho việc phân biệt giữa tên miền sinh bởi botnet và tên miền lành tính. Mỗi tên miền của mixed DGA botnet thường gồm 2 phần: một phần là tổ hợp ngẫu nhiên các ký tự (character-based) và phần còn lại là tổ hợp các từ có nghĩa (word-based).
2.1.3. Phát hiện Character-based DGA botnet
Như đã giới thiệu ở phần trước, character-based DGA botnet là kết hợp các ký tự được chọn ngẫu nhiên thông qua các thuật toán. Các tên miền của họ botnet này thường được sinh bằng cách ghép ngẫu nhiên các ký tự trong bảng chữ cái tiếng Anh (a-z), các số (0-9) và các chữ số trong hệ Hexa-decimal (0-9, a-f). Mỗi họ character-based DGA botnet lại sinh tên miền với độ dài khác nhau.
2.1.3.1. Các đặc trưng của Character-based DGA botnet
Qua quá trình nghiên cứu, tìm hiểu và hướng dẫn từ giảng viên, đề tài sử dụng 24 đặc trưng đã được công bố từ [5] và đề xuất thêm 1 đặc trưng về từ có nghĩa để vector hóa dữ liệu. Các đặc trưng sử dụng gồm 4 nhóm sau:
• Nhóm 1: gồm 16 đặc trưng thống kê từ vựng cho các cụm n-gram trích xuất từ mỗi tên miền. Các đặc trưng này được ký hiệu là f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16.
• Nhóm 2: gồm 6 đặc loại ký tự. Các đặc trưng này được ký hiệu là f17, f18, f19, f20, f21, f22.
• Nhóm 3: gồm 2 đặc trưng bao gồm độ hỗn độn của tên miền và giá trị kì vọng của tên miền. Các đặc trưng này kí hiệu f23, f24.
• Nhóm 4: 1 đặc trưng về ngữ nghĩa. Đặc trưng này kí hiệu f25.
Các đặc trưng n-gram (nhóm)
13
Bi-gram hay 2-gram là một cụm gồm 2 ký tự kề nhau được trích ra từ một chuỗi ký tự. Ví dụ, với chuỗi “example” gồm các bi-gram: ex, xa, am, mp, pl, le. Một tên miền có thể chứa các ký tự trong tập 26 ký tự chữ cái (a-z), các ký tự số (0-9), ký tự
“.” và “-”, do đó tổng số bi-gram có thể có là TS(bi-gram) = 38*38=1.444. Từ tập hợp các tên miền bình thường trích rút ra danh sách gồm n cụm bi-gram thường xuyên xuất hiện nhất, ký hiệu là DS(bi-gram). DS(bi-gram) được sử dụng cho việc tính toán 8 đặc trưng trong nhóm 1 cho từng tên miền.
3-gram là một cụm gồm 3 ký tự kề nhau được trích ra từ một chuỗi ký tự. Ví dụ, với chuỗi “example” gồm các tri-gram: exa, xam, amp, mpl, ple. Tương tự cách tính tổng số bi-gram, tổng số tri-gram có thể có TS(tri-gram) = 38*38*38=54.872. Từ tập hợp các tên miền bình thường trích rút ra danh sách gồm M cụm tri-gram có tần suất xuất hiện cao nhất, ký hiệu DS(tri-gram). DS(tri-gram) được sử dụng cho việc tính toán 8 đặc trưng trong Nhóm 3 cho từng tên miền.
Các đặc trưng của bi-gram và tri-gram (gọi chung là n-gram) cho từng tên miền d được tính toán theo cách tương tự nhau với [fk] là ký hiệu của đặc trưng như sau:
• [f1,f9] count(d): là số lượng n-gram của tên miền d có trong DS(n-gram).
• [f2,f10] m(d) là phân bố tần suất chung của các n-gram của tên miền d, được tính theo công thức:
m(d) = ∑count𝒊=𝟏 (d)f(i) * index(i) (1)
trong đó, f(i) là tổng số lần xuất hiện của n-gram i trong DS(n-gram) và index(i) là thứ hạng của n-gram i trong TS(n-gram)
• [f3,f11] s(d) là trọng số n-gram, được tính theo công thức:
s(d) = ∑ f(i) * 𝒗𝒕(𝒊)
count(d) 𝒊=𝟏
count(d) (2) trong đó, vt(i) là thứ hạng của n-gram i trong DS(n-gram).
• [f4,f12] mtb(d) là trung bình phân bố tần suất chung của các n-gram của tên miền d, tính theo công thức:
14 mtb(d) = 𝑚(𝑑)
𝑙𝑒𝑛(𝑑) (3)
trong đó, len(d) là là tổng số các n-gram có trong tên miền d
• [f5,f13] stb(d) là trung bình trọng số n-gram của tên miền d, tính theo công thức:
stb(d) = 𝑠(𝑑) 𝑙𝑒𝑛(𝑑) (4)
• [f6,f14] t(d) là trung bình số lượng n-gram phổ biến của tên miền d, tính theo công thức:
t(d) = 𝑐𝑜𝑢𝑛𝑡(𝑑) 𝑙𝑒𝑛(𝑑) (5)
• [f7,f15] ts(d) là trung bình tần suất n-gram phổ biến của tên miền d, tính theo công thức:
ts(d) = ∑count(d)𝑖=1 f(i)
𝑙𝑒𝑛(𝑑) (6)
• [f8,f16] entropy(d) là entropy của tên miền d, tính theo công thức:
entropy(d) = ∑ 𝒗𝒕(𝒊)
𝑳 count(d)
𝒊=𝟏 ∗ 𝑙𝑜𝑔(𝒗𝒕(𝒊)
𝑳 ) (7)
trong đó, L là số cụm n-gram phổ biến trong tập tên miền bình thường, L=N với bi-gram và L=M với tri-gram.
Các đặc trưng nhóm 2
• [f17] tanv(d) là trung bình số nguyên âm của tên miền d, tính theo công thức:
tanv(d) = co𝑢𝑛𝑡𝑟𝑎(𝑑) 𝑙𝑒𝑛(𝑑) (8)
• [f18] tanco(d) là trung bình số phụ âm của tên miền d, tính theo công thức:
tanco(d) = co𝑢𝑛𝑡𝑐𝑜(𝑑) 𝑙𝑒𝑛(𝑑) (9)
• [f19] tandi(d) là trung bình số chữ số của tên miền d, tính theo công thức:
15
tandi(d) = co𝑢𝑛𝑑𝑖(𝑑) 𝑙𝑒𝑛(𝑑) (10)
• [f20] tansc(d) là trung bình số kí tự ‘-‘ và ‘.’ của tên miền d, được tính theo công thức:
tansc(d) = co𝑢𝑛𝑡𝑠𝑐(𝑑) 𝑙𝑒𝑛(𝑑) (11)
• [f21] tanhe(d) là trung bình số kí tự hexa của tên miền d, tính theo công thức:
tanhe(d) = co𝑢𝑛𝑡ℎ𝑒(𝑑) 𝑙𝑒𝑛(𝑑) (12)
• [f22]: len(d) trả về độ dài tên miền d Đặc trưng nhóm 3
• [f23]: ent_char(d) là entropy theo ký tự của miền d. Với D(x) là phân phối xác suất của ký tự x trong miền d, ent_char(d) được tính bởi công thức:
ent_char(d) = ∑𝑥 D(x)log(D(x)) log (𝑙𝑒𝑛(𝑑)) (13)
• f24: EOD(d) là giá trị kỳ vọng của tên miền d, EOD(d) được tính bởi công thức:
EOD(d) = ∑k𝑖=1n(xi)p(xi)
∑k𝑖=1n(xi) (14)
Bảng 2.3: Bảng xác suất của 38 ký tự trong 100.000 tên miền lành tính
C P(C) C P(C) C P(C) C P(C)
- 1.24 a 9.72 l 4.73 w 1.12
0 0.15 b 2.24 m 3.41 x 0.6
1 0.21 c 3.77 n 6.15 y 1.68
2 0.21 d 3.27 o 7.09 z 0.69
3 0.13 e 9.64 p 2.89
4 0.15 f 1.59 q 0.19
5 0.08 g 2.4 r 6.61
6 0.07 h 2.75 s 6.43
7 0.08 i 7.33 t 6.2
8 0.09 j 0.49 u 3.1
9 0.08 k 1.98 v 1.43
16 Đặc trưng nhóm 4 (bổ sung)
Các tên miền lành tính thước có cấu trúc là tổ hợp các từ tiếng Anh nói chung.
Các tên miền DGA thì không như vậy. Các tên miền lành tính thường dùng các từ tiếng Anh thông dụng có độ dài từ 2 đến 11 kí tự và 92% tên miền lành tính có chứa từ vựng tiếng Anh, trong khi đó thì các họ DGA botnet đa số chỉ là các từ 2 đến 3 kí tự và số lượng tên miền có chứa từ vựng tiếng Anh chỉ chiếm 50% tổng số tên miền. Đề tài sử dụng bộ từ điển tiếng Anh [6] gồm 58.121 từ để kiểm tra từ có nghĩa có độ dài lớn nhất xuất hiện trong tên miền.
• f[25]: maxw(d) là từ có độ dài lớn nhất trong tên miền d
Hình 2.1: Biểu đồ thống kê từ có nghĩa dài nhất xuất hiện trong tên miền
2.2. Tổng quan về máy học 2.2.1. Giới thiệu về máy học 2.2.1.1. Khái niệm
Những năm gần đây, AI - Artificial Intelligence (Trí tuệ nhân tạo), và cụ thể hơn là Machine Learning (máy học) nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện, 3 - công nghệ thông tin).
Trí tuệ nhân tạo đang len lỏi vào mọi lĩnh vực trong đời sống mà có thể chúng ta không nhận ra. Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning [7] [8].
0 5000 10000 15000 20000 25000 30000
2 3 4 5 6 7 8 9 1011121314151617
Sô lượng tên miền
Độ dài của từ có nghĩa DGA botnet Lành tính
17
Hình 2.2: Quy trình học máy
2.2.1.2. Phân loại
Có nhiều mô hình học máy khác nhau như: học có giám sát, học không giám sát, học bán giám sát, học tăng cường.
• Học có giám sát
Nếu đang học một nhiệm vụ dưới sự giám sát, có người theo dõi, đánh giá xem có câu trả lời đúng hay không. Tương tự, trong học có giám sát, điều đó có nghĩa là có một bộ dữ liệu được dán nhãn đầy đủ trong khi huấn luyện một thuật toán.
Hình 2.3: Mô hình học máy có giám sát
• Học máy không giám sát
Không dễ để có được các bộ dữ liệu sạch sẽ, được dán nhãn hoàn hảo. Và đôi khi, các nhà nghiên cứu đặt ra những câu hỏi về thuật toán mà họ không biết câu trả lời. Đó là nơi học không giám sát xuất hiện.
18
Hình 2.4: Mô hình học máy không giám sát
• Học bán giám sát
Học bán giám sát giống như tên gọi của nó: một tập dữ liệu huấn luyện với cả dữ liệu được dán nhãn và không được gắn nhãn. Phương pháp này đặc biệt hữu ích khi việc trích xuất các đặc điểm liên quan từ dữ liệu gặp khó khăn và việc ghi nhãn các ví dụ là một nhiệm vụ tốn nhiều thời gian, chi phí của người nghiên cứu.
• Học tăng cường
Học tăng cường là một loại học máy trong đó tác nhân học cách đưa ra quyết định bằng cách thực hiện các hành động trong môi trường nhằm tối đa hóa một số khái niệm về phần thưởng tích lũy. Tác nhân học cách đạt được mục tiêu trong một môi trường không chắc chắn, có khả năng phức tạp thông qua thử và sai. Nó nhận được phản hồi dưới dạng củng cố tích cực hoặc tiêu cực dựa trên các hành động mà nó thực hiện.
Theo thời gian, đặc vụ học cách xác định các chiến lược hoặc hành động tốt nhất dẫn đến phần thưởng cao nhất trong các tình huống khác nhau. Học tăng cường có ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm robot, chơi trò chơi, hệ thống khuyến nghị và điều khiển phương tiện tự động.
2.2.1.3. Ứng dụng trong thực tế
Nhận dạng giọng nói: Nó còn được gọi là nhận dạng giọng nói tự động (ASR), nhận dạng giọng nói máy tính hoặc chuyển giọng nói thành văn bản là khả năng sử dụng xử lý ngôn ngữ tự nhiên (NLP) để dịch lời nói của con người sang định dạng viết. Nhiều thiết bị di động kết hợp nhận dạng giọng nói vào hệ thống của họ để tiến hành tìm kiếm bằng giọng nói. Siri—hoặc cải thiện khả năng truy cập để nhắn tin [10]
19
Dịch vụ khách hàng: Chatbot trực tuyến đang thay thế các tác nhân con người trong hành trình của khách hàng, thay đổi cách chúng ta nghĩ về sự tương tác của khách hàng trên các trang web và nền tảng truyền thông xã hội. Chatbot trả lời các câu hỏi thường gặp (FAQ) về các chủ đề như vận chuyển hoặc cung cấp lời khuyên được cá nhân hóa, bán chéo sản phẩm hoặc đề xuất kích thước cho người dùng. Ví dụ bao gồm các đại lý ảo trên các trang thương mại điện tử; bot nhắn tin, sử dụng Slack và Facebook Messenger; và các công việc thường được thực hiện bởi trợ lý ảo và trợ lý giọng nói..
Thị giác máy tính: Công nghệ AI này cho phép máy tính lấy được thông tin có ý nghĩa từ hình ảnh kỹ thuật số, video và các đầu vào trực quan khác, sau đó thực hiện hành động thích hợp. Được hỗ trợ bởi mạng lưới thần kinh tích chập (neural networks), thị giác máy tính có các ứng dụng trong việc gắn thẻ ảnh trên mạng xã hội, chụp ảnh X quang trong chăm sóc sức khỏe và xe tự lái trong ngành công nghiệp ô tô.
2.2.2. Học sâu
2.2.2.1. Khái niệm 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ạy máy tính xử lý dữ liệu theo cách được lấy 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 và các dữ liệu khác để tạo ra thông tin chuyên sâu và dự đoán chính xác. [11].
Học sâu khác biệt với học máy cổ điển ở loại dữ liệu mà nó làm việc và phương pháp học. Các thuật toán học máy tận dụng dữ liệu có cấu trúc, được gắn nhãn để đưa ra dự đoán - nghĩa là các tính năng cụ thể được xác định từ dữ liệu đầu vào cho mô hình và được sắp xếp thành các bảng. Học sâu loại bỏ một số quá trình xử lý trước dữ liệu thường liên quan đến học máy. Các thuật toán này có thể nhập và xử lý dữ liệu phi cấu trúc, như văn bản và hình ảnh, đồng thời tự động trích xuất tính năng, loại bỏ một số sự phụ thuộc vào yếu tố con người [12].
2.2.2.2. Neural network
Mạng nơ-ron (Neural network) là một phương thức trong lĩnh vực trí tuệ nhân tạo, được sử dụng để dạy máy tính xử lý dữ liệu theo cách được lấy cảm hứng từ bộ
20
não con người. Neural là tính từ của neuron (nơ-ron), network chỉ cấu trúc đồ thị nên neural network (NN) là một hệ thống tính toán lấy cảm hứng từ sự hoạt động của các nơ-ron trong hệ thần kinh. Phương thức này tạo ra một hệ thống thích ứng được máy tính sử dụng để học hỏi từ sai lầm của chúng và liên tục cải thiện. Vì vậy, mạng nơ- ron nhân tạo nhắm tới giải quyết các vấn đề phức tạp, chẳng hạn như tóm tắt tài liệu hoặc nhận diện khuôn mặt, với độ chính xác cao hơn. [13] [14]
Một mạng nơ-ron cơ bản bao gồm các nơ-ron nhân tạo liên kết theo 3 lớp:
• Lớp đầu vào (input layer)
• Lớp ẩn (hidden layer)
• Lớp đầu ra (output layer)
Hình 2.5: Mô hình Neural network
2.2.2.3. Recurrent Neural Networ (RNN)
Mạng nơ-ron hồi quy (RNN) ra đời để cải thiện điểm yếu của mạng nơ-ron (Neural network). Mạng thần kinh tái phát (RNN) là một loại Mạng thần kinh trong đó đầu ra từ bước trước được cung cấp làm đầu vào cho bước hiện tại. Trong mạng nơron truyền thống, tất cả đầu vào và đầu ra đều độc lập với nhau. Tuy nhiên, trong những trường hợp cần dự đoán từ tiếp theo của câu thì bắt buộc phải có các từ trước đó và do đó cần phải nhớ các từ trước đó. Do đó, RNN ra đời và giải quyết vấn đề này với sự trợ giúp của Lớp ẩn. Tính năng chính và quan trọng nhất của RNN là trạng thái Ẩn , ghi nhớ một số thông tin về một chuỗi. Trạng thái này còn được gọi là Trạng thái bộ nhớ vì nó ghi nhớ đầu vào trước đó của mạng. Nó sử dụng các tham số giống nhau cho mỗi đầu vào vì nó thực hiện cùng một nhiệm vụ trên tất cả các đầu vào hoặc các lớp
21
ẩn để tạo ra đầu ra. Điều này làm giảm độ phức tạp của các tham số, không giống như các mạng thần kinh khác.
Hình 2.6: Mô hình mạng nơ-ron hồi quy(RNN)
Các bước của thuật toán RNN bao gồm:
• Khởi tạo trạng thái ẩn
• Cập nhật trạng thái ẩn
• Tính toán đầu ra
• Lặp lại
2.2.2.4. Long Short-Term memory (LSTM)
Long Short-Term Memory (LSTM) là một loại mạng nơ-ron hồi quy (Recurrent Neural Network - RNN) đặc biệt, được thiết kế để mô hình hóa chuỗi thời gian và các phụ thuộc dài hạn một cách chính xác hơn so với RNN truyền thống [15]. LSTM đã tạo ra sự biến đổi lớn trong cả lĩnh vực học máy và neurocomputing [16].
Một đơn vị LSTM thông thường bao gồm một ô nhớ, một cổng đầu vào, một cổng đầu ra và một cổng quên. Ô nhớ giữ lại các giá trị qua các khoảng thời gian tùy ý và ba cổng điều chỉnh luồng thông tin vào và ra khỏi ô nhớ. Cổng quên quyết định thông tin nào cần loại bỏ từ trạng thái trước đó bằng cách gán cho trạng thái trước đó, so sánh với đầu vào hiện tại, một giá trị từ 0 đến 1. Một giá trị (làm tròn) bằng 1 có nghĩa là giữ lại thông tin, và giá trị bằng 0 có nghĩa là loại bỏ nó. Cổng đầu vào quyết định những thông tin mới nào cần lưu trữ trong trạng thái hiện tại, sử dụng cùng một hệ thống với cổng quên. Cổng đầu ra kiểm soát những thông tin nào trong trạng thái hiện tại cần đưa ra bằng cách gán một giá trị từ 0 đến 1 cho thông tin, xem xét trạng thái trước và hiện tại [15].
22
Hình 2.7: Mô hình LSTM (nguồn [17])
2.2.2.5. Convolutional Neural Network (CNN)
Mạng Nơ-ron Tích chập (Convolutional Neural Network - CNN) là một loại thuật toán học sâu được thiết kế đặc biệt cho các nhiệm vụ yêu cầu nhận dạng đối tượng, bao gồm phân loại hình ảnh, phát hiện và phân đoạn [18] [19].
Cấu trúc của CNN:
• Các lớp tích chập (Convolutional Layers)
• Các lớp gộp (Max pooling)
• Các lớp kết nối đầy đủ (Dense) Tính năng đặc biệt của CNN:
• Tự động trích xuất đặc trưng
• Bất biến dịch chuyển
• Kiến trúc phân cấp
CNN được sử dụng rộng rãi trong các lĩnh vực như phân loại hình ảnh, phát hiện đối tượng, nhận dạng khuôn mặt và phân tích hình ảnh y tế.
Hình 2.8: Mô hình CNN đơn giản
23 2.3. Giải pháp giải quyết vấn đề
Đề tài sẽ kiểm thử và so sánh độ hiểu quả của 3 thuật toán học sâu cơ bản, từ đó chọn ra thuật toán tối ưu nhất. So sánh kết quả với các nghiên cứu gần đây, và qua quá trình chạy thử nghiệm thì nhận thấy rằng thuật toán LSTM cho ra hiệu suất tốt nhất.
Thuật toán học sâu này cũng được tin dùng ở các nghiên cứu khác [20] [3] [21].
Mô hình phát hiện Character-based DGA botnet được đề xuất là DLM (Deep Learning Model). Mô hình DLM sử dụng tập đặc trưng ký tự có khả năng phân biệt hiệu quả giữa các tên miền lành tính và các tên miền character-based DGA - là các tên miền được sinh tự động sử dụng tổ hợp ngẫu nhiên các ký tự. Các đặc trưng ký tự gồm các đặc trưng được được trích xuất dựa trên quan sát, phân tích sự khác biệt giữa các tên miền lành tính và các tên miền character-based DGA ở mức ký tự mà không xem xét đến ngữ nghĩa của các cụm ký tự trong tên miền.
Hình 2.9: Mô hình DLM
24 2.4. Kết chương
Phòng chống DGA (Domain Generation Algorithm) Botnet bằng cách sử dụng học sâu là một phương pháp tiên tiến và hiệu quả trong việc đối phó với mối đe dọa ngày càng gia tăng từ các mạng botnet. DGA Botnet là một trong những mối đe dọa lớn đối với cơ sở hạ tầng mạng và thông tin cá nhân trên internet, và việc áp dụng các kỹ thuật học sâu đã mang lại nhiều lợi ích trong việc ngăn chặn chúng.
Một trong những ưu điểm lớn của việc sử dụng học sâu là khả năng phát hiện và ngăn chặn các mẫu botnet một cách tự động và linh hoạt. Thay vì phải dựa vào các quy tắc cố định hoặc cập nhật chủ động, học sâu có thể tự động học và nhận biết các mẫu botnet mới dựa trên dữ liệu đầu vào. Điều này giúp cải thiện khả năng phản ứng và đáp ứng nhanh chóng đối với các mối đe dọa mới.
Bên cạnh đó, việc sử dụng học sâu cũng có thể giúp nâng cao độ chính xác trong việc phát hiện botnet và giảm thiểu số lượng báo động giả mạo. Nhờ vào khả năng tiếp cận và phân tích dữ liệu phức tạp, các hệ thống sử dụng học sâu có thể xác định các mẫu botnet với độ chính xác cao hơn, từ đó giảm thiểu việc phát sinh các báo động không cần thiết mà vẫn đảm bảo tính toàn vẹn của hệ thống.
25
CHƯƠNG 3: THỬ NGHIỆM, PHÂN TÍCH, ĐÁNH GIÁ
3.1. Tiến hành thực nghiệm 3.1.1. Tiền xử lý dữ liệu
3.1.1.1. Chuẩn bị dữ liệu và trích chọn đặc trưng
Dữ liệu dùng để huấn luyện (training) gồm: 10.000 tên miền độc hại từ 25 họ Character-based DGA botnet được tổng hợp và lựa chọn từ các nguồn [22] [23] [24]
mỗi họ lấy 400 mẫu; 10.000 tên miền lành tính được công bố bởi Alexa. Lý do chọn số lượng mẫu huấn luyện khá ít là bởi vì mạng nơ-ron cần sự hội tụ, nếu dữ liệu để training quá lớn có thể khiến điểm hội tụ cách xa nhau.
Dữ liệu để kiểm thử (test) gồm: 50.000 tên miền độc hại được trích xuất từ 25 họ character-based DGA bottnet đã được dùng huấn luyện bên trên. Ngoài ra đề tài thực hiện phán đoán với 20.000 tên miền từ 10 họ DGA không có trong huấn luyện để đánh giá. Dữ liệu đã được xử lí chỉ giữ lại phần domain. Ví dụ: “google.com” thì sẽ lấy
“google”. Các domain sẽ được trích chọn đặc trưng theo các đặc trưng của Character- based DGA botnet đã được đề cập ở chương 2
Bảng 3.1: Tập huấn luyện STT Họ botnet Ký tự sử dụng Ví dụ
1 bamital ký tự Hexa 4b6c4773d825cc81f2c13a64d0b92230.co.cc 2 bazarbackdoor ‘a’-‘z’ bdghkmbihqrq.bazar
3 chinad “a..z” và “0..9” x9l30gz89yjlcqrm.ru 4 corebot “a..z” và “0..9” 0ub1rs8yjgb32e.ddns.net
5 dircryp ‘a’ - ‘z’ ybmjkvikqzpd.com
6 dnschanger ‘a’ – ‘z’ bjpbzsmueu.com
7 dyre ký tự Hexa z249668e96ea6e9c6cc4a723c014bf28aa.in
8 emotet ‘a’ – ‘z’ ywevmvqojkvoqqjc.eu
9 enviserv ký tự Hexa 47f2cd66c9.in 10 fobber ‘a’ – ‘z’ krcbjjliqiuoqhxlk.net
11 kraken ‘a’ – ‘z’ ocnkunltcl.dynserv.com
12 locky ‘a’ – ‘z’ euacmbinrmoagtdhg.click
13 monerodownloader Ký tự Hexa d2614e69cd1ed.blackfriday 14 murofet “a..z” qgptdfenlfaiygeovojfqlyx.org
15 murofetweekly ‘a’-‘z’ và ‘0’..’9’ p42k37j16m19b18c29d30nthti55gyeva37kwk 47cs.ru
16 necurs ‘a’-‘z’ jmfjdvcnrkrviv.la
17 padcrypt ‘a’-‘z’ nbccbeedlnnbbckf.co.uk
26
18 proslikefan ‘a’-‘z’ izawldm.org
19 qadars “a..z” và “0..9” v452fkpmbs1m.net
20 qakbot ‘a’ – ‘z’ gcckjlhhy.biz
21 reconyc “a..z” và “0..9” YO76FYOp5W.com 22 shiotob “a..z” và “0..9” iizvus3sgruqmv.net
23 sphinx ‘a’ – ‘z’ xoyifxwqjmjpfymm.com
24 tinynuke ‘a’ – ‘z’ d3945eaf2fd748909bbb7e8fb0b30bec.com 25 wd ký tự Hexa và ‘w’ wde4159a184a02d12a8825da43be206a37.win
Bảng 3.2: Tập kiểm thử STT Họ botnet Ký tự sử dụng Ví dụ
1 bedep “a..z” và “0..9” lqnlmwvummj8.com 2 cryptolocker ‘a’-‘z’ ogvxkiinjdwm.ru
3 murofet_v2 “a..z” lovetcuybijokpmy.org
4 murofet_v3 “a..z” và “0..9” ptewn10krorcqksg53cupze31ftosevctox.org 5 newgoz “a..z” và “0..9” hz7ad5nujjklan6b84zvlokz.net
6 pandabanker “a..z” và “0..9” 66ba6d365b78g.net 7 qsnatch “a..z” và “0..9” zew.com.km
8 ranbyus_v2 ‘a’ – ‘z’ wsaxwvfupjpatigjd.in 9 torpig “a..z” và “5..9” wjjr8tko.com
10 zloader ‘a’ – ‘z’ cyykypojokhtpblftlqq.com
3.1.2. Phương pháp đánh giá
Để đánh giá khả năng phát hiện của các mô hình đề xuất, đề tài sử dụng ma trận nhầm lẫn để tính các độ đo [2]. Các độ đo này được định nghĩa như sau:
• Giá trị dự đoán dương tính (PPV-Positive Predictive Value, hay Precision), còn gọi là độ chính xác là thước đo trong tất cả các mẫu tên miền DGA botnet dự đoán được đưa ra, có bao nhiêu mẫu dự đoán là chính xác, tính theo công thức:
𝑃𝑃𝑉 = 𝑇𝑃
𝑇𝑃 + 𝐹𝑃 ( 3.1 )
• Tỷ lệ dương tính thật (TPR-True Positive Rate, hay Recall) còn gọi là độ nhạy, hay độ bao phủ là thước đo trong tất cả các mẫu tên miền được dự đoán là DGA botnet, có bao nhiêu mẫu đã được dự đoán chính xác, tính theo công thức:
𝑇𝑃𝑅 = 𝑇𝑃
𝑇𝑃 + 𝐹𝑁 ( 3.2 )
• Tỷ lệ dương tính giả (FPR-False Positive Rate), hay còn gọi là “nhầm lẫn” là thước đo trong tất cả các mẫu tên miền lành tính, có bao nhiêu mẫu được dự đoán sai là tên miền DGA botnet, được tính theo công thức: