Bối cảnh và vấn đề nghiên cứu
Trong xu thế số hóa toàn cầu, Internet đã trở thành hạ tầng công nghệ thiết yếu, phục vụ từ đời sống cá nhân đến các lĩnh vực trọng yếu như y tế, giáo dục, tài chính và quốc phòng. Sự mở rộng không ngừng của không gian mạng kéo theo các rủi ro bảo mật nghiêm trọng. Trong khi thiệt hại đối với người dùng cá nhân có thể ở mức giới hạn, các cuộc tấn công mạng nhằm vào doanh nghiệp và tổ chức lớn có thể gây thiệt hại hàng triệu đô la; đặc biệt, nguy cơ rò rỉ dữ liệu tại các cơ quan chính phủ và an ninh quốc phòng đe dọa trực tiếp đến chủ quyền quốc gia. Các đối tượng tấn công có thể nhắm vào dữ liệu, tài khoản ngân hàng, hệ thống phần mềm và hạ tầng mạng cục bộ thông qua nhiều hình thức mã độc và xâm nhập tinh vi.
Nhằm bảo vệ hệ thống thông tin nội bộ, đề tài "Phát hiện xâm nhập mạng dựa trên bất thường và các phương pháp học máy" được nhóm sinh viên ngành An toàn thông tin / Công nghệ thông tin thuộc Trường Công nghệ Thông tin và Truyền thông – Đại học Bách khoa Hà Nội thực hiện vào năm 2023. Đề tài tập trung vào ba nhiệm vụ nghiên cứu trọng tâm:
- Nghiên cứu tổng quan lý thuyết về hệ thống phát hiện xâm nhập (IDS) và hệ thống phòng chống xâm nhập (IPS), bao gồm cấu trúc, nguyên lý vận hành và các tiêu chí phân loại.
- Phân tích các phương pháp phát hiện tấn công mạng phổ biến, so sánh cơ chế phát hiện dựa trên tập luật (rule-based) và các thuật toán học máy, đồng thời tìm hiểu sâu về kiến trúc hệ thống Snort và mạng nơ-ron nhân tạo (ANN).
- Triển khai thử nghiệm công cụ Snort trên môi trường thực tế để bắt và xử lý gói tin mạng, đồng thời đánh giá khả năng tích hợp mô hình học máy PortscanAI vào khối tiền xử lý nhằm tự động hóa việc phát hiện các hành vi quét cổng (Portscan).
Đối tượng nghiên cứu của đồ án là lưu lượng mạng máy tính, các dấu hiệu bất thường biểu hiện hành vi xâm nhập, các phương thức quét cổng mạng (TCP Connect, SYN, UDP, ACK, FIN, Decoy) và cơ chế xử lý gói tin của hệ thống mã nguồn mở Snort. Phạm vi không gian nghiên cứu được giới hạn trên môi trường máy ảo chạy hệ điều hành Ubuntu, giám sát gói tin qua giao diện mạng nội bộ. Phạm vi thời gian và dữ liệu thực nghiệm được giới hạn trong năm 2023, sử dụng tập dữ liệu gồm 2.092 mẫu lưu lượng mạng phục vụ bài toán huấn luyện mô hình phân loại.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khung lý thuyết của đề tài được xây dựng dựa trên nguyên lý an ninh mạng về giám sát và bảo vệ hạ tầng thông tin:
- Hệ thống phát hiện và phòng chống xâm nhập: IDS hoạt động như một hệ thống giám sát thụ động, theo dõi lưu lượng mạng và phát tín hiệu cảnh báo đến quản trị viên khi phát hiện dấu hiệu vi phạm an ninh. Ngược lại, IPS có khả năng chủ động ngăn chặn lưu lượng độc hại ngay tại thời điểm phát hiện dựa trên chính sách định sẵn. Các hệ thống IDS được phân thành ba nhóm chính: Network IDS (NIDS) giám sát toàn bộ phân đoạn mạng, Node Network IDS triển khai tại các nút mạng cụ thể, và Host IDS (HIDS) giám sát hoạt động nội tại của từng máy chủ đơn lẻ.
- Cơ chế phát hiện dựa trên tập luật (Rule-based): Dựa trên việc xây dựng cơ sở dữ liệu chứa các quy tắc mô tả hành vi tấn công hoặc trình tự sự kiện chuẩn (ví dụ mô hình trạng thái $A \to B \to C$). Khi một chuỗi sự kiện thực tế lệch khỏi quy tắc chuẩn (ví dụ $A \to B \to D$), hệ thống sẽ gắn nhãn bất thường.
- Các mô hình học máy: Văn bản hệ thống hóa các thuật toán ứng dụng trong IDS, bao gồm Cây quyết định (Decision Tree - DT với các thuật toán CART, C4.5, Random Forest, XGBoost), Thuật toán K láng giềng gần nhất (KNN), Máy vector hỗ trợ (SVM với các hàm nhân phân chia ranh giới cực đại), và Phân cụm K-Means không giám sát.
- Mạng nơ-ron nhân tạo (ANN): Đề tài mô hình hóa mạng nơ-ron đa tầng (Multi-layer Perceptron) gồm ba lớp: lớp đầu vào (input layer), lớp ẩn (hidden layer) và lớp đầu ra (output layer). Hoạt động toán học của từng nơ-ron tuân theo công thức:
$$y = f\left(\sum x_i w_i + b\right)$$
Trong đó $x_i$ là các giá trị đầu vào, $w_i$ là các trọng số kết nối, $b$ là hệ số điều chỉnh (bias), và $f$ là hàm kích hoạt. Hàm kích hoạt được lựa chọn là hàm Sigmoid có phương trình:
$$F(x) = \frac{1}{1 + e^{-\alpha x}}$$
Mô hình được huấn luyện bằng thuật toán lan truyền ngược (Backpropagation), sử dụng quy tắc đạo hàm chuỗi (chain rule) để tính toán độ sai lệch qua hàm mất mát và cập nhật trọng số thông qua thuật toán tối ưu hóa giảm độ dốc (gradient descent).
Phương pháp nghiên cứu thực nghiệm được thực hiện thông qua việc thiết lập môi trường giả lập trên máy ảo Ubuntu. Nhóm nghiên cứu tiến hành biên dịch Snort từ mã nguồn, tích hợp các thư viện nền tảng và viết các luật phát hiện để kiểm thử với lưu lượng ping ICMP thực tế. Dữ liệu thực nghiệm được thu thập trực tiếp thông qua cơ chế tiền xử lý của Snort dưới dạng các bản ghi bảng băm địa chỉ IP (IP Hash tables), từ đó chuẩn hóa thành 2.092 mẫu dữ liệu phục vụ huấn luyện mạng nơ-ron.
Thiết kế và triển khai hệ thống
Đồ án tập trung nghiên cứu kiến trúc của hệ thống Snort và mô-đun tiền xử lý PortscanAI:
Kiến trúc chuẩn của hệ thống Snort bao gồm năm thành phần liên kết chặt chẽ:
- Mô-đun giải mã gói tin (Packet Decoder): Tiếp nhận và chuyển đổi gói tin nhị phân từ môi trường mạng sang định dạng văn bản phục vụ phân tích.
- Mô-đun tiền xử lý (Preprocessor): Xử lý gói tin thô trước khi đưa vào phân tích, bao gồm tái tạo gói, loại bỏ thông tin thừa và giải mã dữ liệu mã hóa.
- Mô-đun phát hiện (Detection Engine): So khớp gói tin với hệ thống quy tắc phát hiện để nhận biết dấu hiệu xâm nhập.
- Mô-đun ghi nhật ký và cảnh báo (Logging and Alerting System): Tạo bản ghi nhật ký và sinh cảnh báo khi phát hiện gói tin độc hại.
- Mô-đun kết xuất thông tin (Output Modules): Định dạng và xuất cảnh báo đến quản trị viên hoặc các cơ sở dữ liệu lưu trữ.
Mô-đun tiền xử lý PortscanAI được thiết kế để nhúng trực tiếp vào Snort nhằm phát hiện các hành vi quét cổng. Công cụ này được phát triển bằng ngôn ngữ ANSI C cho mô-đun tiền xử lý lõi và PHP cho giao diện giám sát nền Web. PortscanAI vận hành qua ba khối chức năng:
- Khối xử lý bảng băm (Hash tables processing): Ghi nhận lưu lượng và cập nhật các thông số mạng vào bảng IP Hash.
- Khối thích ứng dữ liệu cho mạng nơ-ron (Data adaptation for ANN): Chuẩn hóa các giá trị thống kê từ bảng băm về đoạn số học $[0, 1]$ để làm đầu vào cho mạng nơ-ron.
- Khối bộ lọc (Filter): Nhận kết quả từ mạng nơ-ron và so sánh với ngưỡng cấu hình trong tệp
snort.conf (ví dụ: cảnh báo phát sinh nếu tỷ lệ lưu lượng bình thường dưới 40%).
Mô hình mạng nơ-ron tích hợp trong PortscanAI tiếp nhận bảy tham số đầu vào được trích xuất từ bảng IP Hash:
hits_as_dst / max_hits_as_dst: Tỷ lệ số kết nối đến địa chỉ IP đích trên giá trị cực đại của bảng băm. Giá trị cao phản ánh IP đích có nguy cơ là nạn nhân bị quét cổng.
hits_as_src / max_hits_as_src: Tỷ lệ số kết nối gửi đi từ IP nguồn trên giá trị cực đại. Giá trị cao thể hiện tần suất gửi yêu cầu bất thường từ nguồn.
av_rcv_time: Thời gian trung bình giữa các yêu cầu kết nối mà IP đích nhận được (sử dụng biến thời gian AVG_TIME). Giá trị thấp chỉ ra tần suất kết nối nhận dồn dập.
av_snd_time: Thời gian trung bình giữa các yêu cầu kết nối mà IP nguồn gửi đi (sử dụng biến AVG_TIME). Giá trị thấp là biểu hiện nguồn đang thực hiện hành vi quét cổng.
negative_resp / max_negative_resp: Tỷ lệ phản hồi tiêu cực nhận được, bao gồm các gói tin TCP mang cờ RST và ACK phản hồi từ các cổng đã đóng. Giá trị cao là dấu hiệu máy chủ nhận nhiều yêu cầu tới cổng không hoạt động.
rel_hits / hits_as_src: Tỷ lệ yêu cầu khởi tạo kết nối giữa nguồn và đích so với tổng kết nối từ nguồn.
rel_hits / hits_as_dst: Tỷ lệ yêu cầu khởi tạo kết nối giữa đích và nguồn so với tổng kết nối đến đích.
Mô hình mạng nơ-ron được thiết lập gồm 3 lớp: lớp đầu vào gồm 7 nơ-ron tương ứng với 7 tham số trích xuất; một lớp ẩn gồm 4 nơ-ron; và lớp đầu ra gồm 2 nơ-ron biểu diễn trạng thái lưu lượng trong khoảng giá trị $[0, 1]$.
Về quy trình cài đặt thực tế, hệ thống Snort được triển khai trên máy ảo Ubuntu qua bốn bước:
- Bước 1: Cài đặt các gói phụ trợ từ kho lưu trữ và biên dịch:
build-essential, libpcap-dev, libpcre3-dev, libdumbnet-dev, bison, flex.
- Bước 2: Tải và giải nén các tệp
daq-2.gz và snort-2.gz, thực hiện biên dịch bằng lệnh make với cờ CFLAGS=-I/usr/include/ntirpc, liên kết tệp thực thi vào thư mục hệ thống /usr/sbin/snort và kiểm tra phiên bản bằng lệnh snort -V.
- Bước 3: Cấu hình hệ thống thư mục lưu trữ và chỉnh sửa tệp
snort.conf, thiết lập đường dẫn đến thư mục chứa các tệp luật /etc/snort/rules.
- Bước 4: Kiểm tra tính đúng đắn của tệp cấu hình bằng câu lệnh
sudo snort -i ens33 -c /etc/snort/snort.conf -T.
Nội dung chính theo từng chương
Chương I. Tổng quan về phát hiện và phòng chống xâm nhập mạng
Chương I tập trung làm rõ bản chất công nghệ, phân loại và cơ chế vận hành của các hệ thống bảo vệ chu vi mạng:
- Phân biệt IDS và IPS: Tác giả nhấn mạnh IDS đóng vai trò chuông cảnh báo thụ động, việc ngăn chặn phụ thuộc hoàn toàn vào quản trị viên. IDS truyền thống chỉ sử dụng 1 đến 2 cơ chế phân tích (lạm dụng hoặc bất thường), dễ phát sinh cảnh báo sai và phản ứng trễ (chỉ đáp ứng sau khi gói tin đã đến đích). Hơn nữa, việc phản hồi gián tiếp qua tường lửa có thể tạo ra tác dụng phụ tiêu cực, ví dụ như chặn nhầm IP của khách hàng khi kẻ tấn công giả mạo địa chỉ (IP spoofing). Ngược lại, IPS có độ chính xác cao hơn, hoạt động trên nhiều cơ chế và chủ động ngắt luồng lưu lượng độc hại ngay khi xuất hiện dấu hiệu bất thường.
- Chức năng của IDS/IPS: Được khái quát thành bốn nhóm nhiệm vụ: giám sát lưu lượng, cảnh báo tình trạng cho hệ thống, bảo vệ hệ thống dựa trên cấu hình, và phát hiện bất thường dựa trên mẫu đã biết hoặc đường cơ sở (baseline).
- Ưu nhược điểm và phân loại: Tác giả tổng hợp các ưu điểm (phát hiện sớm, cảnh báo nhanh, ghi log phân tích) và nhược điểm (phụ thuộc cấu hình, chi phí vận hành cao, khả năng phân tích lưu lượng mã hóa kém) của IDS. Phân loại chi tiết gồm Network IDS (NIDS), Node Network IDS và Host IDS (HIDS).
- Kiến trúc và nguyên lý hoạt động: Khái quát ba thành phần cốt lõi của IDS gồm thu thập gói tin, phân tích phát hiện dựa trên bộ cảm biến (sensor) và phản hồi. Quy trình hoạt động gồm 8 bước tuần tự từ lúc host tạo gói tin, cảm biến đọc gói tin trên mạng cục bộ, kiểm tra dấu hiệu vi phạm, gửi cảnh báo qua giao diện điều khiển (email, popup, web), thực thi phản hồi, lưu vết dữ liệu và tạo báo cáo sự cố.
Chương II. Các phương pháp phát hiện tấn công trong hệ thống IDS/IPS và Snort
Chương II đi sâu vào phân tích kỹ thuật hai cách tiếp cận chính trong bài toán phát hiện xâm nhập cùng công cụ Snort:
- Phương pháp phát hiện dựa trên luật (Rule-based): Sử dụng hệ chuyên gia với cơ sở dữ liệu tập luật để đối sánh với các luồng dữ liệu. Ưu điểm nổi bật là dễ cấu hình, dễ bổ sung luật và tỷ lệ báo động nhầm rất thấp. Tuy nhiên, nhược điểm lớn là hiệu năng xử lý suy giảm khi tập luật mở rộng, dẫn đến hiện tượng nghẽn cổ chai, mở quá nhiều kết nối TCP, quá tải băng thông và hoàn toàn phụ thuộc vào việc cập nhật luật thủ công của người quản trị.
- Phương pháp phát hiện dựa trên học máy: Khắc phục hạn chế của phương pháp dựa trên luật thông qua khả năng tự động học các đặc trưng của lưu lượng từ dữ liệu lớn, phát hiện được các cuộc tấn công mới chưa từng được định nghĩa, và thích ứng với dữ liệu không đầy đủ. Tác giả khảo sát các thuật toán tiêu biểu: Decision Tree (DT), K-Nearest Neighbors (KNN), Support Vector Machine (SVM), K-Means Clustering và Mạng nơ-ron nhân tạo (ANN).
- Mạng nơ-ron nhân tạo và giải thuật Backpropagation: Phân tích cơ chế nơ-ron sinh học và toán học nơ-ron nhân tạo, cấu trúc ba lớp (vào, ẩn, ra). Đồ án mô tả quy trình ứng dụng ANN trong IDS qua ba giai đoạn: thu thập nhật ký đăng nhập để tạo vector phân phối tần suất lệnh của người dùng; huấn luyện mạng nơ-ron nhận dạng người dùng; và triển khai cảnh báo bất thường trong thực tế. Thuật toán lan truyền ngược được trình bày cụ thể thông qua cơ chế tính đạo hàm hàm mất mát bằng quy tắc chuỗi và tối ưu hóa trọng số qua gradient descent.
- Khảo sát hệ thống Snort: Trình bày kiến trúc 5 mô-đun của Snort, cấu trúc cú pháp của một luật Snort chuẩn gồm phần tiêu đề (
action, protocol, sourceIP/sourcePort, destinationIP/destinationPort) và phần tùy chọn (msg, content, flow, threshold, sid, rev). Tác giả đưa ra ví dụ về luật phát hiện tấn công vét cạn HTTP Brute Force (SID 1000001, đếm 5 yêu cầu GET trong 60 giây).
- Thực nghiệm cài đặt và triển khai Snort: Trình bày chi tiết từng bước biên dịch, cài đặt các gói phụ trợ trên Ubuntu và cấu hình tệp
snort.conf. Tác giả thiết lập kịch bản phát hiện tấn công dò quét ICMP bằng cách tạo tệp luật icmp.rules với nội dung:
alert icmp any any -> any any (msg:"ICMP-Co may dang Ping"; sid:1000001; rev:1;)
Hệ thống Snort được chạy với lệnh sudo snort -i ens33 -c /etc/snort/snort.conf và ghi nhận thành công cảnh báo khi máy client thực hiện lệnh ping vào hệ thống. Văn bản đồng thời liệt kê tiêu đề của hai kịch bản tiếp theo gồm phát hiện dò quét dịch vụ/cổng và phát hiện tấn công từ chối dịch vụ (DoS).
Chương III. Thử nghiệm phát hiện tấn công xâm nhập mạng bất thường bằng học máy
Chương III trình bày bài toán thực nghiệm phát hiện tấn công quét cổng bằng mô hình mạng nơ-ron tích hợp trong Snort:
- Các kiểu tấn công Portscan: Phân tích 6 kỹ thuật thám dò mạng phổ biến:
- TCP Connect Scan: Kẻ tấn công tạo kết nối đầy đủ đến từng cổng để kiểm tra trạng thái lắng nghe.
- SYN/Stealth Scan: Gửi gói tin SYN và xác định cổng mở khi nhận lại gói SYN/ACK.
- UDP Scan: Gửi gói UDP để thăm dò phản hồi từ các cổng dịch vụ UDP.
- ACK Scan: Gửi gói tin ACK; nếu nhận được gói RST nghĩa là cổng đang đóng.
- FIN Scan: Gửi gói tin FIN; xác nhận cổng đóng khi nhận lại gói RST.
- Decoy Scan: Kỹ thuật tạo các đối tượng và địa chỉ mồi giả mạo nhằm đánh lạc hướng và gây nhầm lẫn cho hệ thống phòng thủ.
Tác giả nêu rõ hai thuộc tính cốt lõi của hành vi Portscan là số lượng (số cổng kết nối từ 1 đến 65535) và thời gian (khoảng cách trung bình giữa các lần gửi yêu cầu, đo bằng mili giây), được biến hóa theo thời gian và không gian nhằm vượt qua IDS.
- Giới thiệu và thiết kế PortscanAI: Phân tích giải pháp tích hợp công cụ học máy vào khối tiền xử lý của Snort. Hệ thống gồm mã nguồn tiền xử lý bằng ANSI C và giao diện quản trị Web viết bằng PHP. Đặc tả 7 tham số đầu vào của mạng nơ-ron trích xuất từ bảng băm IP Hash cùng các biến thời gian quản lý gói tin (
last_rcv_time, last_snd_time, av_rcv_time, av_snd_time).
- Cấu trúc và huấn luyện mạng nơ-ron: Thiết lập mạng nơ-ron 3 lớp (7 nơ-ron đầu vào, 4 nơ-ron lớp ẩn, 2 nơ-ron đầu ra) với hàm kích hoạt Sigmoid và giải thuật Backpropagation. Dữ liệu huấn luyện được thu thập bằng cơ chế tiền xử lý của Snort. Tập dữ liệu chuẩn hóa phục vụ PortscanAI gồm tổng cộng 2.092 mẫu dữ liệu, trong đó có 748 mẫu lưu lượng bình thường và 1.344 mẫu lưu lượng tấn công Portscan.
- Kết quả cài đặt và tổng kết: Tác giả ghi nhận quá trình cài đặt thực nghiệm công cụ PortscanAI không thành công do tài liệu hướng dẫn đi kèm quá ít. Cuối chương, tác giả xây dựng bảng so sánh giữa hệ thống Snort truyền thống và Snort tích hợp PortscanAI, đồng thời thảo luận về những hạn chế cố hữu của mạng nơ-ron trong an ninh mạng.
Kết quả và đóng góp
Đồ án ghi nhận các kết quả thực nghiệm và đóng góp cụ thể dựa trên nội dung báo cáo:
Thực nghiệm hệ thống Snort dựa trên tập luật đã được triển khai thành công trên môi trường máy ảo Ubuntu. Hệ thống đã lắng nghe lưu lượng qua giao diện mạng ens33, đọc đúng cấu hình tại /etc/snort/snort.conf, và kích hoạt thành công cảnh báo khi có lưu lượng ping ICMP từ máy khách gửi đến theo đúng quy tắc kiểm thử có mã định danh sid:1000001.
Về mô hình học máy PortscanAI, nhóm nghiên cứu đã xây dựng thành công thiết kế logic cho mạng nơ-ron 3 lớp (7-4-2), xác định cụ thể 7 tham số trích xuất từ bảng băm lưu lượng IP và chuẩn hóa bộ dữ liệu huấn luyện gồm 2.092 mẫu (748 mẫu bình thường và 1.344 mẫu tấn công). Tuy nhiên, về mặt triển khai thực tế, tác giả báo cáo trung thực rằng quá trình cài đặt công cụ PortscanAI không thành công do tài liệu hướng dẫn của công cụ quá ít.
Dựa trên các phân tích lý thuyết và thiết kế hệ thống, tác giả tổng hợp bảng so sánh tính năng giữa hệ thống Snort nguyên bản và hệ thống tích hợp PortscanAI:
| Tiêu chí so sánh |
Hệ thống cũ (Snort nguyên bản) |
Hệ thống có tích hợp PortscanAI |
| Khả năng tự động cảnh báo xâm nhập |
Không (phụ thuộc hoàn toàn vào tập luật do người quản trị xây dựng) |
Có (tự động nhận biết dựa trên mô hình học máy) |
| Khả năng cảnh báo cuộc tấn công mới không nằm trong tập luật |
Không |
Có (có khả năng nhận diện các hình thức TCP Connect, TCP SYN, Decoy mà không cần tạo luật trước) |
Đóng góp của đồ án thể hiện ở việc hệ thống hóa toàn diện kiến trúc IDS/IPS và quy trình biên dịch, cấu hình hệ thống Snort trên nền tảng Linux. Đồng thời, đề tài đã chỉ ra phương thức giải quyết bài toán suy giảm hiệu năng của phương pháp rule-based bằng cách đưa mạng nơ-ron nhân tạo vào tầng tiền xử lý, giúp đơn giản hóa công việc của nhà phát triển và hỗ trợ cảnh báo sớm các nguy cơ tấn công quét cổng mà không cần bảo trì tập luật thủ công.
Hạn chế và hướng nghiên cứu tiếp
Báo cáo đã chỉ ra các hạn chế thực tế trong quá trình nghiên cứu:
- Quá trình thử nghiệm và cài đặt công cụ PortscanAI trên hệ thống thực tế không thành công do sự thiếu hụt tài liệu kỹ thuật hướng dẫn từ nhà phát triển công cụ.
- Hệ thống ứng dụng học máy vẫn tiềm ẩn các hạn chế về chất lượng nhận diện, cụ thể là việc phát sinh cảnh báo dư thừa (dương tính giả) hoặc bỏ sót gói tin (âm tính giả).
- Hiệu quả hoạt động của mạng nơ-ron phụ thuộc hoàn toàn vào việc lựa chọn chính xác giá trị các tham số đầu vào.
- Cấu trúc mạng nơ-ron ảnh hưởng trực tiếp đến hiệu năng hệ thống: nếu cấu hình mạng có quá nhiều lớp, tốc độ hội tụ của mô hình sẽ trở nên rất chậm.
Về hướng nghiên cứu tiếp, văn bản xác định hệ thống cần phải trải qua quá trình thực nghiệm mở rộng với nhiều bộ tham số và cấu hình khác nhau để xác định mô hình tối ưu phù hợp với lưu lượng mạng thực tế. Đồng thời, cần tiếp tục giải quyết các vấn đề tương thích cài đặt để hoàn thiện việc tích hợp PortscanAI vào khối tiền xử lý của Snort.
Giá trị tham khảo
Đồ án môn học là tài liệu tham khảo phù hợp cho sinh viên các ngành An toàn thông tin, Mạng máy tính và Công nghệ thông tin đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp liên quan đến giám sát mạng và hệ thống phát hiện xâm nhập.
Nội dung đồ án mang lại giá trị thực tiễn ở các phần:
- Quy trình từng bước cài đặt, biên dịch Snort từ mã nguồn và cấu hình tệp
snort.conf trên môi trường Linux Ubuntu.
- Cách viết và thử nghiệm các luật Snort tùy biến cho các kịch bản mạng cụ thể.
- Phương pháp luận trích xuất và chuẩn hóa 7 thuộc tính lưu lượng mạng từ bảng băm IP phục vụ bài toán phân loại hành vi quét cổng bằng mô hình mạng nơ-ron.
- Kinh nghiệm thực tiễn về những rào cản kỹ thuật khi tích hợp các mô-đun học máy mã nguồn mở vào hệ thống IDS truyền thống.
Câu hỏi thường gặp
1. Kiến trúc của Snort gồm những thành phần nào và mô-đun tiền xử lý có vai trò gì?
Hệ thống Snort gồm năm thành phần chính: Mô-đun giải mã gói tin (Packet Decoder), Mô-đun tiền xử lý (Preprocessor), Mô-đun phát hiện (Detection Engine), Mô-đun ghi log và cảnh báo (Logging and Alerting System), và Mô-đun kết xuất thông tin (Output Modules). Trong đó, mô-đun tiền xử lý có nhiệm vụ xử lý trước gói tin thô trước khi đưa vào phân tích, thực hiện tái tạo gói, loại bỏ thông tin thừa, giải mã dữ liệu mã hóa hoặc tích hợp các công cụ phân tích bất thường như PortscanAI.
2. Mô hình PortscanAI sử dụng bao nhiêu tham số đầu vào và trích xuất từ nguồn nào?
Mô hình PortscanAI sử dụng 7 tham số đầu vào được trích xuất từ bảng băm IP (IP Hash tables) do khối tiền xử lý của Snort thu thập, bao gồm: tỷ lệ kết nối đến IP đích (hits_as_dst/max_hits_as_dst), tỷ lệ kết nối từ IP nguồn (hits_as_src/max_hits_as_src), thời gian trung bình nhận kết nối (av_rcv_time), thời gian trung bình gửi kết nối (av_snd_time), tỷ lệ phản hồi tiêu cực mang cờ RST/ACK (negative_resp/max_negative_resp), cùng hai tỷ lệ kết nối tương đối giữa nguồn và đích (rel_hits/hits_as_src và rel_hits/hits_as_dst).
3. Quy mô và cấu trúc bộ dữ liệu huấn luyện cho PortscanAI được mô tả như thế nào?
Bộ dữ liệu chuẩn hóa phục vụ huấn luyện mô hình PortscanAI gồm tổng cộng 2.092 mẫu dữ liệu. Trong đó, tập dữ liệu được phân chia thành 748 mẫu lưu lượng thuộc trạng thái bình thường và 1.344 mẫu lưu lượng ghi nhận sự kiện tấn công quét cổng (Portscan).
4. Cấu trúc mạng nơ-ron trong PortscanAI được thiết kế ra sao?
Mô hình mạng nơ-ron trong PortscanAI được xây dựng theo kiến trúc ba lớp: lớp đầu vào gồm 7 nơ-ron (tương ứng với 7 tham số mạng trích xuất), một lớp ẩn gồm 4 nơ-ron, và lớp đầu ra gồm 2 nơ-ron trả về giá trị trong khoảng $[0, 1]$. Mô hình sử dụng hàm kích hoạt Sigmoid và được huấn luyện thông qua thuật toán lan truyền ngược (Backpropagation).
5. Tại sao nhóm tác giả không thực nghiệm thành công việc cài đặt công cụ PortscanAI trên hệ thống?
Theo công bố trực tiếp của nhóm tác giả trong báo cáo, việc cài đặt và thử nghiệm công cụ PortscanAI trên môi trường thực tế không thành công do nguyên nhân "tài liệu hướng dẫn quá ít", dẫn đến việc thiếu cơ sở kỹ thuật để cấu hình và tích hợp trọn vẹn mô-đun này vào Snort.
Kết luận
Đồ án môn học đã hệ thống hóa cơ sở lý thuyết về hệ thống phát hiện và phòng chống xâm nhập mạng IDS/IPS, đồng thời phân tích rõ ưu nhược điểm giữa phương pháp phát hiện dựa trên tập luật và các kỹ thuật học máy. Nhóm tác giả đã triển khai thực tế thành công hệ thống Snort trên hệ điều hành Ubuntu, cấu hình tệp luật và kiểm thử hiệu quả kịch bản phát hiện lưu lượng ping ICMP. Mặc dù thử nghiệm tích hợp mô-đun học máy PortscanAI chưa hoàn thiện do hạn chế về tài liệu kỹ thuật, đề tài đã đề xuất được thiết kế mạng nơ-ron 7-4-2 và bộ tham số đặc trưng lưu lượng chi tiết cho bài toán nhận diện tấn công quét cổng.