Nghiên cứu Phát Hiện Botnet Dựa Trên Học Máy Sử Dụng Lưu Lượng Mạng - Đồ Án Tốt Nghiệp

Nghiên cứu các phương pháp phát hiện botnet tiên tiến dựa trên học máy, sử dụng phân tích lưu lượng mạng. Tìm hiểu cách bảo vệ hệ thống khỏi botnet.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2022

69
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

LỜI MỞ ĐẦU

1. CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN BOTNET

1.1. Khái quát về Botnet

1.2. Giới thiệu về mã độc

1.2.1. Định nghĩa

1.2.2. Phân loại

1.3. Giới thiệu về Botnet

1.4. Kiến trúc và hoạt động của Botnet

1.4.1. Kiến trúc

1.4.2. Kiến trúc Client – Server

1.4.3. Kiến trúc P2P

1.5. Các phương pháp, kỹ thuật phát hiện Botnet

1.5.1. Phát hiện dựa trên honeypot

1.5.2. Phát hiện dựa trên chữ ký

1.5.3. Phát hiện dựa trên bất thường

1.6. Kết chương

2. CHƯƠNG 2: PHÁT HIỆN BOTNET DỰA TRÊN HỌC MÁY SỬ DỤNG LƯU LƯỢNG MẠNG

2.1. Mô hình phát hiện Botnet dựa trên học máy sử dụng lưu lượng mạng

2.2. Giới thiệu mô hình. Khái quát về học máy

2.3. Giới thiệu học máy. Quy trình làm việc (Workflow)

2.4. Các thuật ngữ trong học máy. Ứng dụng thực tế

2.5. Một số thuật toán học máy có giám sát

2.6. Cây quyết định (Decision Tree)

2.7. Rừng ngẫu nhiên (Random Forest)

2.8. Kết chương

3. CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ

3.1. Giới thiệu tập dữ liệu thử nghiệm

3.2. Các nền tảng và công cụ thử nghiệm

3.3. Phần mềm và thư viện

3.4. Ma trận nhầm lẫn

3.5. Huấn luyện và kiểm thử mô hình

3.6. Kết chương

Tóm tắt

I. Tổng quan Botnet Cách hiểu phương pháp phát hiện sớm

Botnet, hay mạng máy tính ma, là một trong những mối đe dọa an ninh mạng nghiêm trọng và dai dẳng nhất trong kỷ nguyên số. Đây là một mạng lưới gồm các thiết bị máy tính bị nhiễm mã độc (malware) và bị điều khiển từ xa bởi một kẻ tấn công, được gọi là Botmaster. Mỗi thiết bị bị xâm nhập trong mạng lưới này được gọi là một bot hoặc zombie. Kẻ tấn công sử dụng một hoặc nhiều máy chủ ra lệnh và điều khiển (C&C) để gửi các chỉ thị đồng loạt đến toàn bộ mạng bot, biến chúng thành một công cụ mạnh mẽ để thực hiện các hành vi phi pháp trên quy mô lớn. Các cuộc tấn công phổ biến nhất bao gồm tấn công từ chối dịch vụ phân tán (DDoS), gửi thư rác (spam), lừa đảo (phishing), gian lận nhấp chuột (click fraud) và đánh cắp thông tin nhạy cảm. Việc phát hiện Botnet trở thành một bài toán cấp thiết, đòi hỏi các giải pháp không ngừng cải tiến để đối phó với sự biến đổi liên tục của chúng. Các phương pháp phát hiện sớm đóng vai trò then chốt trong việc giảm thiểu thiệt hại, bảo vệ tài nguyên hệ thống và duy trì tính toàn vẹn của không gian mạng. Hiểu rõ bản chất, cấu trúc và vòng đời của Botnet là bước đầu tiên và quan trọng nhất để xây dựng một chiến lược phòng thủ hiệu quả, đặc biệt là khi ứng dụng các kỹ thuật tiên tiến như Học Máy (Machine Learning) để phân tích lưu lượng mạng và nhận diện các hành vi bất thường.

1.1. Định nghĩa Botnet và các kiến trúc mạng phổ biến

Một Botnet bao gồm ba thành phần chính: Botmaster (kẻ điều khiển), máy chủ C&C (Command & Control), và các Zombies (máy tính bị nhiễm). Kiến trúc của Botnet quyết định cách thức giao tiếp và điều khiển mạng lưới. Có hai kiến trúc chính được sử dụng phổ biến. Thứ nhất là kiến trúc Client-Server tập trung, nơi tất cả các bot kết nối trực tiếp đến một hoặc một vài máy chủ C&C trung tâm. Ưu điểm của mô hình này là đơn giản trong triển khai và điều khiển, nhưng nhược điểm lớn là dễ bị triệt hạ nếu máy chủ C&C bị phát hiện và vô hiệu hóa. Thứ hai là kiến trúc Peer-to-Peer (P2P) phi tập trung. Trong mô hình này, mỗi bot có thể hoạt động như cả client và server, nhận và truyền lệnh cho các bot khác trong mạng. Điều này tạo ra một mạng lưới bền vững hơn, khó bị phá vỡ hơn vì không có điểm lỗi trung tâm (single point of failure). Tuy nhiên, việc xây dựng và duy trì một Botnet P2P phức tạp hơn đáng kể. Việc hiểu rõ các kiến trúc này là nền tảng để phân tích lưu lượng mạng và tìm ra các mẫu giao tiếp đặc trưng cho từng loại Botnet.

1.2. Vòng đời và tác hại của các cuộc tấn công Botnet

Vòng đời của một Botnet thường trải qua các giai đoạn chính: lây lan, tương tác và điều khiển, tấn công, và cuối cùng là cập nhật, duy trì. Giai đoạn đầu tiên, Botmaster sử dụng nhiều kỹ thuật để lây nhiễm mã độc vào các máy tính nạn nhân, khai thác lỗ hổng phần mềm hoặc lừa người dùng cài đặt. Sau khi bị nhiễm, máy tính trở thành một bot và kết nối với máy chủ C&C để nhận lệnh. Giai đoạn tấn công là khi Botmaster huy động toàn bộ mạng lưới để thực hiện các hành vi gây hại. Tác hại của Botnet là vô cùng lớn, trong đó tấn công DDoS là một trong những hậu quả nghiêm trọng nhất, có thể làm tê liệt các trang web, dịch vụ trực tuyến của chính phủ và doanh nghiệp lớn, gây thiệt hại hàng triệu đô la. Ngoài ra, Botnet còn được dùng để phát tán thư rác, thực hiện các chiến dịch lừa đảo quy mô lớn, đánh cắp thông tin tài chính, tài khoản cá nhân và bí mật kinh doanh. Việc duy trì và cập nhật liên tục giúp Botnet lẩn tránh các biện pháp phát hiện và tồn tại trong thời gian dài.

II. Thách thức lớn trong việc phát hiện Botnet ngày nay

Việc phát hiện Botnet ngày càng trở nên khó khăn do sự phát triển không ngừng của các kỹ thuật lẩn tránh và sự đa dạng trong kiến trúc của chúng. Các phương pháp truyền thống, dù đã từng hiệu quả, đang dần bộc lộ nhiều hạn chế trước các mối đe dọa tinh vi. Ví dụ, kỹ thuật phát hiện dựa trên chữ ký (signature-based) chỉ có thể nhận diện các Botnet đã biết và dễ dàng bị qua mặt bởi các biến thể mã độc mới sử dụng kỹ thuật đa hình (polymorphic) hoặc kỹ thuật làm rối mã (code obfuscation). Các phương pháp dựa trên honeypot, mặc dù cung cấp thông tin chi tiết về hành vi của bot, lại có phạm vi hạn chế và không thể bảo vệ toàn bộ hệ thống mạng. Thách thức lớn nhất đến từ khả năng của Botnet trong việc giả mạo lưu lượng mạng hợp lệ. Nhiều Botnet hiện đại sử dụng các giao thức phổ biến như HTTP hoặc DNS để che giấu kênh giao tiếp C&C của chúng, khiến việc phân biệt giữa lưu lượng độc hại và lưu lượng bình thường trở nên vô cùng phức tạp. Hơn nữa, việc sử dụng các kênh liên lạc mã hóa càng làm cho việc phân tích nội dung gói tin trở nên bất khả thi. Những yếu tố này đòi hỏi một hướng tiếp cận mới, linh hoạt và thông minh hơn, có khả năng học và thích ứng với các mẫu hành vi mới. Đây chính là lúc Học Máy phát huy vai trò của mình trong bài toán phát hiện Botnet.

2.1. Hạn chế của các kỹ thuật phát hiện Botnet truyền thống

Các kỹ thuật phát hiện Botnet truyền thống chủ yếu được chia thành ba loại: dựa trên chữ ký, dựa trên honeypot, và dựa trên sự bất thường. Phương pháp dựa trên chữ ký hoạt động bằng cách so sánh lưu lượng mạng hoặc mã thực thi với một cơ sở dữ liệu chứa các chữ ký của mã độc đã biết. Mặc dù có độ chính xác cao và tỷ lệ dương tính giả thấp, phương pháp này hoàn toàn thất bại trước các Botnet mới hoặc các biến thể chưa từng được ghi nhận. Phương pháp dựa trên honeypot thiết lập các hệ thống bẫy để dụ dỗ và phân tích hành vi của bot. Kỹ thuật này rất hữu ích để thu thập thông tin tình báo về mối đe dọa, nhưng không có khả năng phát hiện các máy tính đã bị nhiễm trong mạng nội bộ và chỉ có thể bắt được các bot chủ động quét tìm mục tiêu. Cuối cùng, phương pháp phát hiện dựa trên bất thường giám sát các hành vi lệch khỏi chuẩn mực thông thường. Tuy có khả năng phát hiện các mối đe dọa mới, kỹ thuật này thường có tỷ lệ dương tính giả cao, gây ra nhiều cảnh báo sai.

2.2. Sự tinh vi của Botnet hiện đại và kỹ thuật lẩn tránh

Botnet hiện đại được trang bị nhiều kỹ thuật tinh vi để lẩn tránh sự phát hiện. Một trong những kỹ thuật phổ biến là sử dụng các thuật toán tạo tên miền (DGA - Domain Generation Algorithms) để liên tục thay đổi địa chỉ máy chủ C&C, khiến việc chặn dựa trên danh sách đen IP/tên miền trở nên vô hiệu. Thay vì sử dụng các cổng và giao thức lạ, chúng thường ẩn mình trong các kênh giao tiếp phổ biến như HTTP (cổng 80) hoặc DNS (cổng 53), làm cho lưu lượng mạng của chúng trông giống hệt như lưu lượng của người dùng bình thường. Việc mã hóa kênh truyền thông C&C cũng là một thách thức lớn, ngăn cản các hệ thống giám sát phân tích sâu nội dung gói tin (Deep Packet Inspection - DPI). Ngoài ra, các Botnet có thể hoạt động ở chế độ “ngủ đông”, chỉ kích hoạt vào những thời điểm nhất định để tránh bị phát hiện bởi các hệ thống phân tích hành vi liên tục. Sự phức tạp này đòi hỏi các giải pháp bảo mật phải chuyển từ việc phân tích các đặc điểm tĩnh sang phân tích các mẫu hành vi và mối tương quan trong lưu lượng mạng theo thời gian.

III. Phương pháp phát hiện Botnet bằng Học Máy đột phá

Để vượt qua những thách thức của các phương pháp truyền thống, việc ứng dụng Học Máy (Machine Learning) vào phát hiện Botnet đã mở ra một hướng đi đầy hứa hẹn. Thay vì dựa vào các quy tắc hay chữ ký định sẵn, các mô hình Học Máy có khả năng tự động "học" các mẫu hành vi phức tạp từ một tập dữ liệu lưu lượng mạng lớn. Quá trình này giúp hệ thống có thể nhận diện được cả những Botnet chưa từng được biết đến dựa trên những đặc điểm bất thường trong hành vi giao tiếp của chúng. Mô hình chung cho việc phát hiện Botnet bằng Học Máy bao gồm các bước chính: thu thập dữ liệu, tiền xử lý, trích xuất đặc trưng, huấn luyện mô hình và đánh giá. Dữ liệu đầu vào là lưu lượng mạng được thu thập dưới dạng các bản ghi (flow records) hoặc các gói tin (packets). Các thuật toán Học Máy có giám sát như Cây Quyết Định (Decision Tree), Rừng Ngẫu Nhiên (Random Forest), hay Máy Vector Hỗ Trợ (SVM) được huấn luyện trên các bộ dữ liệu đã được gán nhãn (lưu lượng bình thường và lưu lượng Botnet) để xây dựng một bộ phân loại chính xác. Phương pháp này cho thấy hiệu quả vượt trội trong việc phân tích các thuộc tính của luồng dữ liệu như thời lượng kết nối, kích thước gói tin, tần suất giao tiếp, và các mẫu giao thức để phân loại lưu lượng mạng một cách hiệu quả.

3.1. Giới thiệu mô hình phát hiện dựa trên lưu lượng mạng

Mô hình phát hiện Botnet dựa trên lưu lượng mạng bằng Học Máy là một quy trình có cấu trúc rõ ràng. Đầu tiên, dữ liệu lưu lượng mạng thô, thường ở định dạng PCAP hoặc NetFlow, được thu thập. Dữ liệu này sau đó trải qua bước tiền xử lý, bao gồm việc làm sạch, chuẩn hóa các giá trị, và xử lý các dữ liệu bị thiếu. Tiếp theo là giai đoạn trích xuất đặc trưng, nơi các thuộc tính quan trọng được rút ra từ mỗi luồng mạng. Các đặc trưng này có thể là thời gian bắt đầu, thời lượng, giao thức, cổng nguồn/đích, số byte, số gói tin, cờ TCP, v.v. Những đặc trưng này tạo thành một vector đầu vào cho mô hình Học Máy. Sau đó, mô hình được huấn luyện bằng cách sử dụng một tập dữ liệu lớn đã được gán nhãn. Cuối cùng, mô hình đã huấn luyện được sử dụng để phân loại các luồng mạng mới, xác định xem chúng là lưu lượng bình thường hay Botnet. Cách tiếp cận này không phụ thuộc vào nội dung gói tin, do đó vẫn hiệu quả ngay cả khi lưu lượng bị mã hóa.

3.2. Quy trình ứng dụng Học Máy Từ tiền xử lý đến mô hình

Quy trình ứng dụng Học Máy trong phát hiện Botnet là một chu trình lặp đi lặp lại để tối ưu hóa hiệu suất. Bước tiền xử lý dữ liệu là cực kỳ quan trọng, chiếm phần lớn thời gian và công sức. Công việc này bao gồm loại bỏ các thuộc tính không liên quan, chuyển đổi dữ liệu dạng chuỗi (categorical) sang dạng số, và chuẩn hóa (scaling) các đặc trưng về cùng một thang đo để tránh sự thiên vị của thuật toán. Sau khi dữ liệu đã sạch, bộ dữ liệu được chia thành hai phần: tập huấn luyện (training set) và tập kiểm thử (testing set), thường theo tỷ lệ 70:30 hoặc 80:20. Tập huấn luyện được sử dụng để xây dựng mô hình phân loại. Tập kiểm thử được dùng để đánh giá độ chính xác của mô hình trên dữ liệu mới mà nó chưa từng thấy. Quá trình này giúp đảm bảo rằng mô hình không bị quá khớp (overfitting), tức là chỉ hoạt động tốt trên dữ liệu huấn luyện nhưng kém hiệu quả trong thực tế. Việc lựa chọn thuật toán và tinh chỉnh các tham số của mô hình cũng là một phần quan trọng của quy trình này.

IV. Top thuật toán Học Máy phát hiện Botnet hiệu quả nhất

Trong lĩnh vực phát hiện Botnet, một số thuật toán Học Máy có giám sát đã chứng tỏ được hiệu quả vượt trội. Rừng Ngẫu Nhiên (Random Forest) thường được xem là một trong những lựa chọn hàng đầu. Đây là một thuật toán học theo tập hợp (ensemble learning) kết hợp nhiều Cây Quyết Định để đưa ra dự đoán cuối cùng. Nhờ vào cơ chế này, Rừng Ngẫu Nhiênđộ chính xác cao, khả năng xử lý tốt các tập dữ liệu lớn với nhiều thuộc tính, và đặc biệt là khả năng chống lại hiện tượng quá khớp (overfitting). Một thuật toán mạnh mẽ khác là Máy Vector Hỗ Trợ (SVM - Support Vector Machine). SVM hoạt động bằng cách tìm ra một siêu phẳng tối ưu để phân tách các điểm dữ liệu thuộc hai lớp khác nhau (lưu lượng bình thường và Botnet) trong không gian đa chiều. SVM đặc biệt hiệu quả với các bài toán có số chiều lớn. Bên cạnh đó, Cây Quyết Định (Decision Tree) cũng là một lựa chọn phổ biến nhờ tính dễ hiểu và dễ diễn giải của nó. Cuối cùng, Naïve Bayes, một thuật toán dựa trên xác suất, tuy đơn giản nhưng lại cho kết quả tốt trong các bài toán phân loại văn bản và cũng có thể được áp dụng để phân tích các đặc trưng của lưu lượng mạng.

4.1. Phân loại lưu lượng mạng với Cây Quyết Định Rừng Ngẫu Nhiên

Cây Quyết Định (Decision Tree) xây dựng một mô hình phân loại dưới dạng cấu trúc cây. Mỗi nút trong cây đại diện cho một bài kiểm tra trên một thuộc tính, mỗi nhánh đại diện cho kết quả của bài kiểm tra và mỗi nút lá đại diện cho một nhãn lớp (ví dụ: 'Botnet' hoặc 'Normal'). Thuật toán này dễ triển khai và kết quả của nó có thể được diễn giải một cách trực quan. Tuy nhiên, một cây quyết định đơn lẻ có thể dễ bị overfitting. Để khắc phục nhược điểm này, Rừng Ngẫu Nhiên (Random Forest) được sử dụng. Bằng cách xây dựng hàng trăm hoặc hàng nghìn cây quyết định trên các mẫu con ngẫu nhiên của tập dữ liệu và tổng hợp kết quả (thông qua bỏ phiếu), Random Forest cải thiện đáng kể độ chính xác và sự ổn định của mô hình. Trong bài toán phát hiện Botnet, Random Forest thường cho kết quả vượt trội khi phân tích các đặc trưng phức tạp của lưu lượng mạng.

4.2. Sức mạnh của SVM và Naïve Bayes trong an ninh mạng

Máy Vector Hỗ Trợ (SVM) là một thuật toán phân loại mạnh mẽ, tìm kiếm đường biên phân chia (siêu phẳng) có khoảng cách lớn nhất đến các điểm dữ liệu gần nhất của mỗi lớp. Điều này giúp tối đa hóa "lề" an toàn và làm cho việc phân loại trở nên tin cậy hơn. SVM có thể xử lý hiệu quả các không gian đặc trưng có số chiều cao, rất phù hợp với bài toán phân tích lưu lượng mạng nơi có hàng chục thuộc tính. Mặt khác, Naïve Bayes là một thuật toán phân loại dựa trên định lý Bayes với giả định "ngây thơ" rằng các đặc trưng là độc lập với nhau. Mặc dù giả định này không phải lúc nào cũng đúng trong thực tế, Naïve Bayes lại hoạt động nhanh, hiệu quả và đòi hỏi ít dữ liệu huấn luyện hơn so với nhiều thuật toán phức tạp khác. Nó thường được dùng làm một mô hình cơ sở (baseline) để so sánh hiệu suất với các phương pháp tiên tiến hơn trong việc phát hiện Botnet.

V. Nghiên cứu ứng dụng Đánh giá mô hình trên bộ dữ liệu CTU 13

Để kiểm chứng hiệu quả thực tiễn của các phương pháp Học Máy, việc thử nghiệm trên các bộ dữ liệu chuẩn hóa là vô cùng cần thiết. Một trong những bộ dữ liệu nổi tiếng và được sử dụng rộng rãi trong cộng đồng nghiên cứu phát hiện BotnetCTU-13. Bộ dữ liệu này được thu thập bởi Đại học Kỹ thuật Séc (CTU) và bao gồm 13 kịch bản tấn công khác nhau, mô phỏng hoạt động của nhiều loại Botnet thực tế như Neris, Rbot, và Virut. Mỗi kịch bản là sự kết hợp giữa lưu lượng Botnet, lưu lượng nền (background traffic) và lưu lượng bình thường, tạo ra một môi trường thử nghiệm gần với thực tế. Trong nghiên cứu được đề cập, các thuật toán Học Máy như SVM, Cây Quyết Định, Rừng Ngẫu Nhiên, và Naïve Bayes đã được áp dụng trên bộ dữ liệu CTU-13. Quá trình thử nghiệm bao gồm việc tiền xử lý dữ liệu cẩn thận, huấn luyện các mô hình phân loại, và sau đó đánh giá hiệu suất của chúng dựa trên các độ đo quan trọng. Kết quả từ những thử nghiệm này cung cấp cái nhìn sâu sắc về khả năng của từng thuật toán trong việc nhận diện các loại lưu lượng mạng độc hại khác nhau, cũng như so sánh ưu nhược điểm của chúng trong một kịch bản ứng dụng cụ thể.

5.1. Giới thiệu bộ dữ liệu CTU 13 và môi trường thử nghiệm

Bộ dữ liệu CTU-13 là một tài nguyên quý giá cho việc nghiên cứu và phát hiện Botnet. Nó được tạo ra bằng cách lây nhiễm mã độc vào các máy ảo và ghi lại toàn bộ lưu lượng mạng của chúng trong một khoảng thời gian. Dữ liệu này sau đó được xử lý và gán nhãn, phân biệt rõ ràng giữa lưu lượng bình thường, lưu lượng nền và lưu lượng do Botnet tạo ra. Môi trường thử nghiệm để đánh giá các mô hình Học Máy thường sử dụng các nền tảng và thư viện phổ biến như Python với các thư viện Scikit-learn (sklearn), Pandas và NumPy. Thư viện sklearn cung cấp các module cài đặt sẵn cho hầu hết các thuật toán phân loại phổ biến, giúp đơn giản hóa quá trình huấn luyện và kiểm thử mô hình. Dữ liệu từ CTU-13 được đọc, tiền xử lý và chia thành tập huấn luyện và kiểm thử để đảm bảo việc đánh giá là khách quan.

5.2. Kết quả đánh giá hiệu suất qua các độ đo chính xác

Hiệu suất của một mô hình phân loại được đánh giá thông qua nhiều độ đo khác nhau, thường được tính toán từ ma trận nhầm lẫn (confusion matrix). Độ chính xác (Accuracy) là độ đo phổ biến nhất, cho biết tỷ lệ các dự đoán đúng trên tổng số dự đoán. Tuy nhiên, trong bài toán phát hiện Botnet nơi dữ liệu thường mất cân bằng (số lượng lưu lượng bình thường lớn hơn nhiều so với lưu lượng Botnet), các độ đo khác như Precision, RecallF1-Score lại quan trọng hơn. Precision đo lường độ tin cậy của các cảnh báo (trong số những gì được dự đoán là Botnet, bao nhiêu là đúng?). Recall (còn gọi là Độ nhạy) đo lường khả năng phát hiện của mô hình (trong số tất cả các Botnet thực sự, mô hình phát hiện được bao nhiêu?). F1-Score là trung bình điều hòa của Precision và Recall, cung cấp một cái nhìn cân bằng về hiệu suất của mô hình. Các kết quả thử nghiệm trên CTU-13 thường cho thấy các thuật toán như Rừng Ngẫu Nhiên đạt được các chỉ số F1-Score và Recall rất cao, chứng tỏ khả năng phát hiện Botnet hiệu quả.

VI. Tương lai của Học Máy trong bài toán phát hiện Botnet

Tương lai của việc phát hiện Botnet chắc chắn sẽ gắn liền với những tiến bộ trong lĩnh vực Học MáyTrí tuệ nhân tạo (AI). Khi các Botnet ngày càng trở nên tinh vi và tự động hóa, các hệ thống phòng thủ cũng phải trở nên thông minh và linh hoạt hơn. Hướng phát triển chính là xây dựng các hệ thống có khả năng học hỏi liên tục (continual learning), tự động cập nhật mô hình của mình khi có các mẫu tấn công mới xuất hiện mà không cần sự can thiệp của con người. Các kỹ thuật Học sâu (Deep Learning), một nhánh của Học Máy, cũng đang cho thấy tiềm năng lớn. Các mô hình như mạng nơ-ron tích chập (CNN) hoặc mạng nơ-ron hồi quy (RNN) có thể tự động trích xuất các đặc trưng phức tạp từ lưu lượng mạng thô, giảm bớt sự phụ thuộc vào bước trích xuất đặc trưng thủ công. Một thách thức lớn trong tương lai là xử lý các tập dữ liệu khổng lồ (Big Data) trong thời gian thực để đưa ra cảnh báo sớm. Việc kết hợp Học Máy với các nền tảng xử lý dữ liệu phân tán như Spark sẽ là chìa khóa để giải quyết bài toán này. Cuối cùng, việc phát triển các mô hình Học Máy có khả năng diễn giải (Explainable AI - XAI) sẽ giúp các nhà phân tích an ninh hiểu rõ lý do tại sao một cảnh báo được đưa ra, tăng cường sự tin cậy và hiệu quả trong quá trình ứng phó sự cố.

6.1. Tổng kết ưu nhược điểm của các phương pháp đã nghiên cứu

Nghiên cứu về phát hiện Botnet bằng Học Máy đã chỉ ra những ưu điểm rõ rệt so với các phương pháp truyền thống. Ưu điểm lớn nhất là khả năng phát hiện các mối đe dọa zero-day dựa trên phân tích hành vi, tính linh hoạt và khả năng tự động hóa cao. Các thuật toán như Rừng Ngẫu NhiênSVM cho thấy độ chính xác ấn tượng trên các bộ dữ liệu thực tế như CTU-13. Tuy nhiên, phương pháp này cũng có nhược điểm. Việc xây dựng một mô hình hiệu quả đòi hỏi một lượng lớn dữ liệu gán nhãn chất lượng cao, vốn rất khó thu thập. Các mô hình Học Máy có thể bị tấn công bởi các kỹ thuật tấn công đối nghịch (adversarial attacks), nơi kẻ tấn công cố tình tạo ra lưu lượng mạng độc hại được thiết kế để đánh lừa bộ phân loại. Ngoài ra, nhiều mô hình, đặc biệt là Học sâu, hoạt động như một "hộp đen", gây khó khăn cho việc diễn giải kết quả.

6.2. Hướng phát triển và những thách thức nghiên cứu tiếp theo

Các hướng nghiên cứu trong tương lai sẽ tập trung vào việc giải quyết những thách thức hiện tại. Học bán giám sát (Semi-supervised learning)học không giám sát (unsupervised learning) là những lĩnh vực đầy hứa hẹn, giúp giảm sự phụ thuộc vào dữ liệu đã gán nhãn. Các nghiên cứu về Adversarial Machine Learning sẽ giúp xây dựng các mô hình mạnh mẽ hơn, có khả năng chống lại các cuộc tấn công lừa đảo. Một hướng đi quan trọng khác là phát triển các hệ thống phát hiện Botnet có khả năng hoạt động hiệu quả trên các thiết bị Internet of Things (IoT), vốn có tài nguyên tính toán hạn chế nhưng lại là mục tiêu ngày càng phổ biến của Botnet như Mirai. Việc tích hợp thông tin từ nhiều nguồn khác nhau (ví dụ: lưu lượng mạng, logs hệ thống, thông tin về mối đe dọa) sẽ tạo ra các mô hình toàn diện và chính xác hơn. Thách thức lớn nhất vẫn là cuộc chạy đua không ngừng nghỉ giữa các nhà nghiên cứu bảo mật và những kẻ tấn công, đòi hỏi sự sáng tạo và đổi mới liên tục.

22/09/2025

Trích đoạn nội dung tài liệu

chương I, đồ án sẽ trình bày về bài toán phát hiện Botnet đồng thời tìm hiểu về mã độc, Botnet, cụ thể hơn là định nghĩa, cách phân loại. Ngoài ra, đồ án sẽ đưa ra các phương pháp, kỹ thuật phát hiện Botnet hiện đang có trên thế giới. Khái quát về Botnet 1. Giới thiệu về mã độc 1.

Định nghĩa Mã độc (Malicious Software/Malware) là một dạng chương trình hoặc một đoạn chương trình được chèn vào chương trình khác với mục đích thực hiện các loại hành vi gây hại đến các thành phần máy tính như: máy khách, máy chủ, hệ thống mạng. và mục đích cuối cùng thường sẽ gây hại tới người dùng [1]. Các phần mềm độc hại này sẽ thực hiện các hành vi xâm phạm tới các thuộc tính của an toàn thông tin (bí mật, toàn vẹn, sẵn dùng). Mục đích mà mã độc được tạo ra và sử dụng thường là lấy trộm thông tin hoặc tạo cửa hậu (backdoor) trong hệ thống để có thể truy cập vào tài nguyên, dữ liệu mà không cần sự cho phép của chủ sở hữu.

Phân loại Có nhiều phương pháp phân loại các phần mềm độc hại, trong đó một phương pháp được thừa nhận rộng rãi là chia các phần mềm độc hại thành 2 nhóm chính: - Các phần mềm độc hại cần chương trình chủ, vật chủ (host) để ký sinh và lây nhiễm. Các phần mềm độc hại thuộc nhóm này gồm: Logic bomb, Trojan horses, Virus, Rootkit, Adware (Phần mềm quảng cáo) và Spyware (Phần mềm gián điệp), Ransomware, Cryptojacking [1, 2]. - Các phần mềm độc hại không cần chương trình chủ, vật chủ để lây nhiễm. Các phần mềm độc hại thuộc nhóm này gồm Worms (Sâu) và Zombies hay Bots [1, 2].

Trong số các phần mềm độc hại, các phần mềm độc hại có khả năng tự lây nhiễm (self- infection), hay tự nhân bản (self-replicate) gồm Virus, Worm và Bot. Các dạng còn lại không có khả năng tự lây nhiễm. Việc phân loại các phần mềm độc hại kể trên mang tính chất tương đối do hiện nay có một số phần mềm độc hại có các đặc tính của cả Virus, Worm và Bot. Các phần mềm độc hại cần chương trình chủ: - Virus: là một đoạn mã độc được gắn kèm vào một phần mềm khác (đầu hoặc cuối mã nguồn), khi phần mềm này được thực thi, thường do sự không để ý của người dùng, virus sẽ theo đó mà khởi động và tiến hành nhân bản, phát tán mã độc bằng cách chỉnh sửa các chương trình khác khi chèn chính nó vào mã nguồn của những NGUYỄN QUỐC TUẤN – B17DCAT201 12 ĐỒ ÁN TỐT NGHIỆP chương trình này [2, 3].

Mục đích thường là đánh cắp dữ liệu nhạy cảm, khởi động một cuộc tấn công DDoS hoặc nhắm tới tấn công Ransomware. Hình 1-1: Phân loại mã độc - Trojan: hay Trojan Horse, là một trong các loại malware nguy hiểm nhất. Nó thường giả dạng thành một phần mềm hữu dụng nào đó như: game, app, bản cập nhật phần mềm, hoặc được nhúng trong mail,. để lừa người dùng cài đặt.

Một khi người dùng tải và cài đặt Trojan, attacker đằng sau nó có thể vượt quyền và kiểm soát được máy tính, hệ thống. Khác với virus, Trojan không được thiết kế để có khả năng tự nhân bản [3]. Mục đích thường để truy cập tới những dữ liệu nhạy cảm, sửa đổi, xóa dữ liệu, hoặc nhắm tới tấn công Ransomware. - Logic bomb: (Bom logic) là các đoạn mã độc thường được “nhúng” vào các chương trình bình thường và thường hẹn giờ để “phát nổ” trong một số điều kiện cụ thể.

Điều kiện để bom “phát nổ” có thể là sự xuất hiện hoặc biến mất của các file cụ thể, một thời điểm cụ thể, hoặc một ngày trong tuần. Khi “phát nổ” bom logic có thể xoá dữ liệu, file, tắt cả hệ thống. - Spyware: là loại mã độc được sử dụng để bí mật thu thập dữ liệu cá nhân người dùng, cụ thể nó sẽ theo dõi hành vi sử dụng máy tính và gửi tới một bên thứ ba mà không cần sự cho phép của người dùng [1, 2]. Mục đích thường để đánh cắp dữ liệu cá nhân.

Một loại Spyware tiêu biểu là Keylogger, có khả năng ghi lại hành vi gõ phím từ người dùng. NGUYỄN QUỐC TUẤN – B17DCAT201 13 ĐỒ ÁN TỐT NGHIỆP - Rootkit: là loại mã độc, thường là tập hợp các công cụ phần mềm độc hại, cho phép hacker có được quyền truy cập từ xa với quyền hạn admin trong hệ thống mục tiêu, còn được biết đến là quyền truy cập “root”. Rootkit không có khả năng tự nhân bản, nên sẽ không lây lan được, nó phải được người dùng cài đặt trên thiết bị máy tính. Bởi vì nơi mà nó được vận hành (trong OS kernel hoặc trong BIOS), Rootkit rất khó có thể bị phát hiện và thậm chí càng khó hơn trong việc xóa bỏ [1, 2].

- Adware: là một loại phần mềm được thiết kế để thu thập dữ liệu người dùng trên máy tính, từ đó đưa ra quảng cáo phù hợp, thường là trên trình duyệt web. Adware sử dụng phương thức ngụy trang thành ứng dụng hợp pháp hoặc nó sẽ lợi dụng ứng dụng khác để lừa người dùng cài đặt [1, 2]. - Ransomware: là loại mã độc được sử dụng để khóa người dùng khỏi thiết bị/tài nguyên trên thiết bị của chính họ, hoặc mã hóa các file trong máy tính từ đó buộc người dùng phải thanh toán một khoản phí chuộc để lấy được khóa giải mã. Ransomware những năm gần đây trở thành một loại vũ khí lợi hại của tội phạm mạng bởi nó đòi hỏi người dùng phải thanh toán nhanh chóng bằng tiền điện tử - loại tiền mà không thể truy vết [1, 2].

- Cryptojacking: (hay Malicious cryptomining) là loại malware đang thịnh hành, thường được cài đặt bởi Trojan. Nó cho phép việc sử dụng máy tính người dùng để tiến hành đào tiền ảo như Bitcoin. Sau đó số tiền ảo đào được sẽ được gửi về tài khoản của attacker. Nói cách khác, Cryptojacking lợi dụng tài nguyên máy tính người dùng để kiếm tiền cho kẻ tấn công [4].

Các phần mềm độc hại không cần chương trình chủ: - Worm: là một phần mềm mã độc độc lập, có điểm tương đồng với Virus. Điểm giống nhau này nằm ở khả năng tự nhân bản của Worm, tuy vậy Worm có một điểm khác biệt rõ ràng so với Virus, chính là nó có thể tự lây lan tới các thiết bị trong mạng mà không cần tới phần mềm phụ thuộc như Virus, cũng như không cần tới tương tác của người dùng [1, 2]. Worm thường lây nhiễm một thiết bị qua một file được download hoặc trong một kết nối mạng trước khi nó nhân bản và phát tán tới mọi thiết bị trong mạng theo cấp số mũ. Mục đích thường là đánh cắp dữ liệu, khởi động một cuộc tấn công DDOS hoặc nhắm tới tấn công Ransomware.

- Bots/Botnets: Bot là một ứng dụng phần mềm mà thực hiện những tác vụ một cách tự động theo lệnh. Chúng được sử dụng với mục đích hợp pháp như đánh chỉ mục cho công cụ tìm kiếm, nhưng khi sử dụng cho mục đích xấu, chúng sẽ được thiết kế để có thể xâm nhập vào máy tính, tự động phản hồi hoặc thực thi những lệnh được gửi tới bởi C&C server. Bots có thể tự nhân bản (như Worm) hoặc nhân bản NGUYỄN QUỐC TUẤN – B17DCAT201 14 ĐỒ ÁN TỐT NGHIỆP qua tương tác với người dùng [1, 2]. Một mạng lưới nhiều bots sẽ tạo nên Botnet, thường được dùng để khởi động cuộc tấn công DDoS.

Giới thiệu về Botnet Trong phần này, đồ án sẽ tiến hành giới thiệu về Botnet, cụ thể hơn là về định nghĩa, cách thức phân loại Botnet theo các đặc điểm của nó, vòng đời của một Botnet. Ngoài ra, đồ án sẽ chỉ ra một số hành vi của các loại Botnet phổ biến. Botnet thuật ngữ đầy đủ là “Bot network” dùng để chỉ một mạng lưới các máy tính bị chi phối bởi một người nào đó (Botmaster hay Bot herder), cụ thể là bị điều khiển bởi một máy tính khác từ xa [6]. Các máy tính bị nhiễm malware và trở thành một thành phần trong Botnet được gọi là “Zombie”.

Một mạng lưới Botnet có thể gồm hàng trăm nghìn thậm chí hàng triệu máy Zombie. Hình 1-2: Mô hình tấn công của Botnet [6] Một Botnet sẽ gồm 3 thành phần chính [7]: - Botnet operator (Bot master): là kẻ nắm quyền điều khiển các máy chủ C&C đưa ra lệnh cho các bot trong Botnet. - Command & Control Server (C&C): là máy chủ điều khiển các bot. Máy chủ này được dùng để phát ra các lệnh cho các bot trong mạng.

- Zombies (Bots): là các máy tính bị xâm nhập, bị cài phần mềm độc hại và chịu sự điều khiển của C&C Server. Ở phần tiếp theo đồ án sẽ giới thiệu về các kiến trúc và hoạt động của Botnet. NGUYỄN QUỐC TUẤN – B17DCAT201 15 ĐỒ ÁN TỐT NGHIỆP 1. Kiến trúc và hoạt động của Botnet 1.

Kiến trúc Kiến trúc của một Botnet là cấu trúc liên hệ giao tiếp giữa C&C Server và các bots trong mạng đó. Các loại kiến trúc Botnet: có thể chia Botnet thành 3 loại: - Kiến trúc Centralized Client – Server - Kiến trúc Decentralized Peer-to-Peer (P2P) - Kiến trúc Unstructured a. Kiến trúc Client – Server Hình 1-3: Kiến trúc Client-Server của Botnet Thế hệ đầu tiên của Botnet được triển khai trên kiến trúc Centralized Client-Server, C&C Server kiểm soát toàn bộ các Bots/Zombies. Trong kiến trúc này, mọi điều khiển sẽ được đưa ra từ Botmaster, đưa tới C&C Server để rồi cuối cùng mỗi C&C Server sẽ truyền đi lệnh điều khiển tới những Bots/Zombies nằm dưới quyền kiểm soát của nó [7].

Nhờ sự đơn giản, kiến trúc Centralized vẫn được sử dụng phổ biến ngày nay. Tuy vậy, nhược điểm của kiến trúc này so với kiến trúc P2P là tính “nhạy cảm” của nó đối với mỗi điểm kết nối thất bại [7]. Kiến trúc P2P Thế hệ mới của Botnet là kiến trúc Decentralized peer-to-peer (P2P). Một mạng P2P là mạng mà mỗi node trong mạng có thể vừa hoạt động như client vừa hoạt động như server [7].

NGUYỄN QUỐC TUẤN – B17DCAT201 16 ĐỒ ÁN TỐT NGHIỆP Hình 1-4: Kiến trúc P2P của Botnet Trong P2P Botnet, các bot có thể nhận lệnh từ bot khác mà không cần phải từ Botmaster. Do đó, kể cả khi số lượng bot trong mạng được xác định, các chuyên gia an toàn mạng cũng không có bất kỳ thông tin gì để xác định được Botmaster. P2P Botnet có khá nhiều ưu điểm so với kiến trúc Centralized Botnet, 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ơn kiến trúc Centralized rất nhiều, cũng như không đảm bảo đường truyền và độ trệ [7].

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ