Bối cảnh và vấn đề nghiên cứu

Sự bùng nổ của công nghệ thông tin đặt ra yêu cầu cấp thiết đối với các tổ chức, doanh nghiệp trong việc quản lý và bảo vệ tài nguyên dữ liệu trước các nguy cơ xâm nhập trái phép. Các giải pháp bảo mật truyền thống như tường lửa (Firewall), mã hóa dữ liệu và mạng riêng ảo (VPN) tuy cung cấp các lớp phòng thủ quan trọng nhưng vẫn bộc lộ hạn chế trước những hình thức tấn công nội bộ, các cuộc tấn công phức tạp hoặc lạm dụng đặc quyền hệ thống. Trong bối cảnh đó, hệ thống ngăn chặn xâm nhập (IPS - Intrusion Prevention System) được nghiên cứu và ứng dụng nhằm bổ sung năng lực phòng ngừa chủ động, phát hiện và ngăn chặn trực tiếp các mối đe dọa trong thời gian thực.

Đề tài "Nghiên cứu và triển khai phòng chống xâm nhập mạng với Snort và Iptables" được thực hiện bởi sinh viên Cao Đức Duy dưới sự hướng dẫn của thầy giáo Nguyễn Vũ tại Khoa Khoa học Máy tính – Trường Cao đẳng Công nghệ Thông tin Hữu nghị Việt - Hàn (tháng 06/2013). Mục tiêu nghiên cứu tổng quát là khảo sát các đặc trưng cơ bản của hệ thống phòng chống xâm nhập mạng Snort-Inline kết hợp với tường lửa Iptables trên nền tảng hệ điều hành Linux, tạo thành một giải pháp bảo mật vững chắc bổ sung cho các cơ chế an ninh hiện tại.

Nhiệm vụ nghiên cứu cụ thể được xác định gồm:

  1. Nghiên cứu tổng quan về các hiểm họa an ninh mạng, lịch sử hình thành, sự cần thiết và các mô hình kiến trúc của hệ thống phát hiện/ngăn chặn xâm nhập (IDS/IPS).
  2. Phân tích kiến trúc bên trong, cơ chế tiền xử lý, cấu trúc luật và nguyên lý mở rộng Inline của Snort; đồng thời làm rõ cơ chế định tuyến, lọc gói dữ liệu của Linux Netfilter/Iptables.
  3. Thiết kế và triển khai mô hình hệ thống thực nghiệm tích hợp Snort-Inline, Iptables, cơ sở dữ liệu MySQL và giao diện quản trị cảnh báo BASE (Basic Analysis and Security Engine).

Đối tượng nghiên cứu của đồ án là các mối đe dọa an ninh mạng phổ biến, phần mềm phát hiện xâm nhập mã nguồn mở Snort, cơ chế mở rộng Snort-Inline và tường lửa Netfilter/Iptables. Phạm vi nghiên cứu giới hạn trong môi trường mạng máy tính cục bộ và các dịch vụ mạng chạy trên nền tảng hệ điều hành Linux.


Cơ sở lý thuyết và phương pháp

Đồ án xây dựng nền tảng lý luận dựa trên các khái niệm, mô hình phân loại và cơ chế kỹ thuật an toàn thông tin mạng chuẩn hóa:

  • Khái niệm và phân loại IDS/IPS: Hệ thống phát hiện xâm nhập (IDS) có chức năng thu thập thông tin từ nhiều nguồn để phân tích, theo dõi và phát hiện các hành vi khai thác trái phép; khi được trang bị thêm khả năng chủ động ngăn chặn các nguy cơ phát hiện được thì trở thành hệ thống ngăn chặn xâm nhập (IPS). Phân loại kiến trúc gồm có hệ thống phát hiện xâm nhập trên máy chủ (Host-based IDS - HIDS) và hệ thống phát hiện xâm nhập trên mạng (Network-based IDS - NIDS).
  • Mô hình phát hiện xâm nhập: Phân tách thành hai phương pháp tiếp cận chính gồm Mô hình phát hiện sự lạm dụng (Misuse Detection Model - dựa trên các mẫu dấu hiệu tấn công đã biết) và Mô hình phát hiện sự bất thường (Anomaly Detection Model - bao gồm phương pháp phát hiện tĩnh dựa trên tính toàn vẹn dữ liệu/hàm băm và phát hiện động dựa trên hồ sơ hành vi người dùng/ngưỡng thống kê).
  • Cơ chế lọc gói dữ liệu Netfilter/Iptables: Kiến trúc tách rời gồm Netfilter hoạt động trực tiếp trong nhân Linux (kernel-space) và giao diện Iptables hoạt động ở không gian người dùng (user-space) để thao tác trên các bảng NAT, Filter và Mangle.
  • Cơ chế can thiệp gói tin Snort-Inline: Giải pháp tích hợp chuyển đổi Snort từ NIDS thụ động thành IPS chủ động thông qua việc sử dụng module ipqueue và thư viện libipq của Netfilter nhằm tiếp nhận và đưa ra quyết định xử lý gói tin (DROP, SDROP, REJECT) trước khi gói tin được chuyển tiếp.

Phương pháp nghiên cứu được áp dụng gồm:

  • Phương pháp phân tích - tổng hợp tài liệu: Thu thập, hệ thống hóa các cơ sở lý thuyết về an toàn mạng, các kỹ thuật tấn công (tấn công mật khẩu, SYN flood, UDP flood, IP spoofing, cửa hậu) và kiến trúc hệ thống IDS/IPS.
  • Phương pháp thiết kế và triển khai kỹ thuật: Xây dựng mô hình hệ thống thực nghiệm, cài đặt các gói phụ thuộc, biên dịch Snort hỗ trợ chế độ inline, liên kết Iptables với Snort-Inline qua libipq, thiết lập cơ sở dữ liệu MySQL và tích hợp công cụ phân tích cảnh báo giao diện web BASE kết hợp thư viện ADOdb.

Nguồn dữ liệu sử dụng trong nghiên cứu bao gồm: dữ liệu luồng gói tin mạng được bắt giữ thời gian thực qua giao diện mạng; cơ sở dữ liệu mẫu luật của Snort (với 2.930 luật chuẩn); và các bản ghi kiểm tra (audit log), nhật ký cảnh báo lưu trữ có cấu trúc trong cơ sở dữ liệu.


Thiết kế và triển khai

Đồ án là công trình kỹ thuật chuyên sâu về an ninh mạng, tập trung vào việc thiết kế cấu trúc kết nối và triển khai tích hợp giữa bộ lọc nhân Linux và hệ thống phòng chống xâm nhập Snort-Inline.

Kiến trúc module của Snort

Hệ thống Snort được tổ chức thành 5 module xử lý tuần tự:

  1. Module giải mã gói tin (Packet Decoder): Sử dụng thư viện pcap (hoặc libipq trong chế độ inline) để thu bắt gói tin trên đường truyền, phân tích cấu trúc header, phát hiện các định dạng gói tin sai lệch hoặc chiều dài TCP bất thường. Snort hỗ trợ nhiều giao thức tầng liên kết như Ethernet, 802.11, Token Ring, FDDI, Cisco HDLC, SLIP, PPP và OpenBSD PF.
  2. Module tiền xử lý (Preprocessors): Thực hiện 3 nhiệm vụ quan trọng trước khi đưa dữ liệu vào module phát hiện:
    • Tái hợp gói tin (Defragmentation/Stream): Ghép nối các mảnh gói tin bị phân mảnh và theo dõi trạng thái các phiên truyền thông TCP để chống lại kỹ thuật né tránh IDS.
    • Giải mã và chuẩn hóa giao thức (Decode/Normalize): Chuẩn hóa dữ liệu đầu vào của các giao thức Telnet, HTTP, RPC, ARP nhằm tránh các thủ thuật mã hóa URL (như biến đổi đường dẫn scripts/./iisadmin, mã hóa Hex/Unicode).
    • Phát hiện bất thường phi quy tắc (Non-rule/Anomaly): Tích hợp các plugin phát hiện chuyên biệt như portscan (cảnh báo quét cổng) và bo (Back Orifice - phát hiện mã độc điều khiển từ xa).
  3. Module phát hiện (Detection Engine): Thành phần cốt lõi thực hiện so sánh dữ liệu gói tin với tập luật được định nghĩa trước. Module có khả năng áp dụng luật độc lập trên từng thành phần: IP Header, Transport Header (TCP, UDP), Application Header (DNS, HTTP, FTP...) và phần tải dữ liệu (Payload).
  4. Module log và cảnh báo (Logging and Alerting System): Tiếp nhận các gói tin có dấu hiệu xâm nhập để tạo cảnh báo hoặc ghi lưu trữ dưới định dạng tệp văn bản/tcpdump.
  5. Module kết xuất thông tin (Output Module): Hỗ trợ định dạng và chuyển tiếp cảnh báo tới nhiều đích khác nhau: ghi tệp log, hệ thống Syslog của Unix/Linux, lưu vào cơ sở dữ liệu, tệp XML, gửi bẫy cảnh báo qua giao thức SNMP, hoặc gửi thông điệp SMB đến hệ điều hành Windows.

Cơ chế hoạt động của Iptables/Netfilter

Iptables điều khiển luồng dữ liệu thông qua hệ thống các bảng (Tables), chuỗi (Chains) và mục tiêu xử lý (Targets):

  • Bảng NAT: Thực thi chức năng chuyển đổi địa chỉ mạng, bao gồm 3 chuỗi mặc định: PREROUTING (thực hiện Destination NAT - DNAT trước khi định tuyến), POSTROUTING (thực hiện Source NAT - SNAT hoặc MASQUERADING sau khi định tuyến) và OUTPUT (NAT cho gói tin do máy cục bộ sinh ra).
  • Bảng Filter: Chịu trách nhiệm lọc gói tin với 3 chuỗi tích hợp: FORWARD (xử lý gói tin đi qua firewall), INPUT (xử lý gói tin gửi đến firewall) và OUTPUT (xử lý gói tin gửi đi từ firewall).
  • Bảng Mangle: Đảm nhận nhiệm vụ thay đổi các bit chất lượng dịch vụ (Quality of Service - QoS) trong TCP Header.
  • Targets định tuyến và lọc: Các hành động xử lý gói gồm ACCEPT, DROP, REJECT, DNAT, SNAT, MASQUERADING. Iptables cung cấp các tùy chọn lọc theo giao thức (-p tcp, -p udp, -p icmp), lọc theo cổng/dải cổng (--sport, --dport), kiểm tra nhiều cổng (-m multiport), và kiểm tra trạng thái kết nối (-m state --state với các giá trị NEW, ESTABLISHED, RELATED).

Cơ chế tích hợp Snort-Inline

Snort-Inline (khởi xướng bởi William Metcalf và được đưa vào bản chính thức từ Snort 2.0 RC1) thay đổi cách thu bắt gói tin từ chế độ lắng nghe thụ động (libpcap) sang cơ chế can thiệp trực tiếp vào luồng chuyển tiếp của Iptables thông qua hàng đợi ipqueue và thư viện libipq. Khi có gói tin đi qua chuỗi FORWARD của Iptables, gói tin được đẩy vào hàng đợi của Snort để kiểm tra.

Nhằm hỗ trợ chế độ inline, Snort bổ sung 3 hành động vào tập luật:

  • DROP: Yêu cầu Iptables loại bỏ gói tin và ghi nhật ký thông tin tương tự hành động LOG.
  • SDROP (Silent Drop): Yêu cầu Iptables loại bỏ gói tin nhưng không ghi nhật ký cảnh báo.
  • REJECT: Yêu cầu Iptables hủy gói tin và gửi phản hồi thông báo lỗi (như TCP RST hoặc ICMP Port Unreachable) về máy nguồn; không lưu log.

Thứ tự ưu tiên đánh giá luật trong Snort được điều chỉnh tương ứng:

  • Thứ tự ưu tiên Snort truyền thống: activation -> dynamic -> alert -> pass -> log.
  • Thứ tự ưu tiên Snort-Inline: activation -> dynamic -> pass -> drop -> sdrop -> reject -> alert -> log.

Xây dựng cú pháp và cấu hình tập luật (Rules)

Một luật của Snort gồm hai phần: Rule Header (xác định hành động, giao thức, địa chỉ IP nguồn/đích, cổng nguồn/đích và chiều truyền dữ liệu ->) và Rule Options (đặt trong dấu ngoặc đơn, chứa các tiêu chí đối sánh logic AND):

  • msg: Thiết lập thông điệp cảnh báo hiển thị.
  • content: Tìm kiếm chuỗi ký tự ASCII hoặc chuỗi nhị phân hệ thập lục phân (Hexadecimal, đặt giữa cặp ký tự | |) trong payload gói tin.
  • offset và depth: Giới hạn phạm vi tìm kiếm của content (tính từ vị trí byte bắt đầu offset và độ sâu byte cần quét depth).
  • content-list: Đối sánh nội dung gói tin với một danh sách các từ khóa lưu trong tệp văn bản.
  • dsize: Kiểm tra chiều dài phần dữ liệu của gói tin nhằm phát hiện tấn công tràn bộ đệm.
  • flags: Kiểm tra trạng thái các bit cờ trong TCP Header (F - FIN, S - SYN, R - RST, P - PSH, A - ACK, U - URG, 1 - Reserved 1, 2 - Reserved 2, 0 - No flag).
  • fragbits: Kiểm tra các bit cờ chống phân mảnh trong IP Header (D - Don't Fragment, M - More Fragments, R - Reserved Bit).
  • classtype: Gán loại tấn công và độ ưu tiên cảnh báo dựa trên tệp cấu hình classification.config.
  • ack: Kiểm tra giá trị trường Acknowledgement Number trong TCP Header để phát hiện kỹ thuật quét mạng TCP ping (như công cụ Nmap).

Nội dung chính theo từng chương

Chương 1: Tổng quan về bảo mật mạng

Chương 1 hệ thống hóa các hiểm họa an ninh mạng phổ biến và tổng quan kiến trúc các hệ thống bảo mật:

  • Các hình thức tấn công mạng:
    • Tấn công mật khẩu: Bao gồm tấn công thô (brute-force dùng cho mạng LAN) và tấn công từ điển (dùng cho truy nhập từ xa); phân tích cơ chế lưu trữ mật khẩu mã hóa trên hệ điều hành Windows (System_32/config/SAM/Security Account dùng DES, MD4, MD5, Kerberos) và Linux/Unix (/etc/passwd, /etc/shadow); các kỹ thuật sử dụng wordlist và chương trình gián điệp.
    • Tạo cửa hậu và xóa nhật ký: Kỹ thuật hacker mở cổng truyền thông mới, tạo tài khoản quản trị, ngụy trang đổi tên lệnh/tệp, và thay đổi mốc thời gian trong tệp nhật ký để xóa dấu vết.
    • Tấn công từ chối dịch vụ (DoS): Phân tích cơ chế tấn công SYN flood (khai thác chu trình bắt tay ba bước TCP làm cạn kiệt hàng đợi server khi không gửi gói ACK phản hồi) và tấn công UDP flood (gửi lượng lớn gói tin UDP gây quá tải xử lý).
    • Giả mạo địa chỉ IP (IP Spoofing) và các nguy cơ xuất phát từ yếu tố con người (người dùng tò mò, bất bình nội bộ, kẻ trộm dữ liệu ngân hàng, hoặc sự bất cẩn do thiếu kiến thức quản trị).
  • Lịch sử và vai trò của IDS/IPS: Khái niệm phát hiện xâm nhập bắt đầu từ bài báo của James Anderson (~25 năm trước thời điểm nghiên cứu), được nghiên cứu chính thức giai đoạn 1983–1988 tại Không lực Hoa Kỳ; thương mại hóa rộng rãi từ năm 1997 bởi công ty ISS và việc Cisco mua lại hãng Wheel vào năm 1998. Vị trí triển khai IPS được xác định tại 5 phân đoạn mạng chính: phân đoạn Internet, Extranet, Intranet, truy cập từ xa và trên từng máy chủ/máy trạm.
  • So sánh kiến trúc NIDS và HIDS:
Tiêu chí so sánh Network-based IDS (NIDS) Host-based IDS (HIDS)
Nguồn dữ liệu thu thập Toàn bộ lưu lượng gói tin lưu thông trên đoạn mạng. Nhật ký hệ thống (log), sự kiện kiểm toán trên một máy chủ đơn lẻ.
Chi phí và triển khai Chi phí thấp; chỉ cần đặt tại các vị trí mạng trọng yếu. Đắt đỏ; phải cài đặt và duy trì trên từng máy cần bảo vệ.
Khả năng phát hiện Đọc Header toàn bộ gói tin; phát hiện tấn công DoS, TearDrop, TCP SYN flood. Giám sát chi tiết thay đổi file, leo thang quyền hạn, thao tác bàn phím trực tiếp.
Độ tin cậy dấu vết Dữ liệu bắt trực tiếp trên đường truyền, hacker không thể xóa dấu vết. Log file trên host có thể bị hacker xâm nhập chỉnh sửa hoặc xóa bỏ.
Độ trễ đối phó Phát hiện và ngăn chặn tức thời (ví dụ gửi gói TCP Reset). Có độ trễ nhất định do phụ thuộc vào tiến trình ghi log của hệ điều hành.
Hạn chế chính Bị hạn chế trong mạng chuyển mạch (Switch), khó xử lý lưu lượng mã hóa/VPN. Chiếm dụng tài nguyên phần cứng (CPU, RAM, ổ đĩa) của máy chủ được bảo vệ.
  • So sánh mô hình phát hiện sự lạm dụng và phát hiện sự bất thường:
Tiêu chí Phát hiện sự lạm dụng (Misuse Detection) Phát hiện sự bất thường (Anomaly Detection)
Cơ sở đối sánh Cơ sở dữ liệu chứa các dấu hiệu tấn công đã biết (Signatures). Hồ sơ (Profile) các hành vi thông thường được chấp nhận của hệ thống.
Thuật toán xử lý Tìm kiếm phép đối sánh mẫu chính xác (Pattern matching). Tính toán độ lệch thống kê giữa hành động thực tế và ngưỡng cho phép.
Khả năng nhận diện Hiệu quả cao với tấn công cũ; không phát hiện được kiểu tấn công mới. Có khả năng phát hiện các dạng tấn công mới và hành vi bất thường chưa biết.
Độ phức tạp cấu hình Dễ cấu hình; đòi hỏi ít tài nguyên phân tích ban đầu. Khó cấu hình; đòi hỏi thời gian xây dựng dữ liệu cơ sở toàn diện.
Độ chính xác cảnh báo Tỷ lệ cảnh báo sai thấp khi dấu hiệu rõ ràng. Dễ phát sinh cảnh báo sai do ranh giới hành vi không hoàn toàn rõ ràng.

Chương 2: Giới thiệu về Snort-Inline

Chương 2 trình bày chi tiết về công cụ Snort, cơ chế Snort-Inline và tường lửa Iptables:

  • Đặc tính kỹ thuật của Snort: Phần mềm mã nguồn mở do Martin Roesch phát triển; sở hữu cơ sở dữ liệu với hơn 2.930 luật; hoạt động trên đa nền tảng hệ điều hành (Windows, Linux, OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX, MacOS). Phân tích chi tiết 5 module cấu thành: Giải mã gói tin, Tiền xử lý, Phát hiện, Log/Cảnh báo, Kết xuất thông tin.
  • Bộ luật và cú pháp Rule Snort: Phân tích chi tiết các thành phần trong Header (Action, Protocol, Address, Port, Direction) và các từ khóa thông dụng trong Options (ack, classtype, content, offset, depth, content-list, dsize, flags, fragbits).
  • Cơ chế Snort-Inline: Phân tích giải pháp kết hợp của William Metcalf từ phiên bản Snort 2.0 RC1; sử dụng cơ chế ipqueue/libipq thay cho libpcap; bổ sung các hành động DROP, SDROP, REJECT và thay đổi trình tự ưu tiên luật trong inline mode.
  • Nguyên lý Iptables/Netfilter: Phân tích cơ chế xử lý gói tin qua 3 bảng NAT, Filter, Mangle; các khái niệm Chain, Rule, Jump, Target; các cú pháp lệnh lọc theo giao thức TCP/UDP/ICMP, đa cổng, trạng thái kết nối; các lệnh dòng lệnh trợ giúp và hai công cụ quản trị sao lưu/phục hồi:
    • iptables-save: Sao lưu tập luật với tùy chọn -c (hiển thị bộ đếm gói/byte) và -t (chỉ định bảng).
    • iptables-restore: Phục hồi tập luật với tùy chọn -c (phục hồi bộ đếm) và -n (không xóa cấu hình bảng trước khi phục hồi).

Chương 3: Triển khai Snort và Iptables

Chương 3 mô tả quy trình thiết kế và thực thi hệ thống kỹ thuật:

  • Thiết kế mô hình hệ thống: Xây dựng mô hình thử nghiệm với cổng mạng bảo vệ đặt giữa vùng lưu thông mạng bên ngoài và mạng nội bộ.
  • Cài đặt và cấu hình phần mềm: Cài đặt các gói thư viện phụ thuộc; biên dịch mã nguồn Snort kích hoạt chế độ inline; cấu hình tệp snort.conf; cài đặt hệ quản trị cơ sở dữ liệu MySQL, thư viện kết nối ADOdb và phần mềm giao diện web BASE để trực quan hóa cảnh báo.
  • Vận hành và xây dựng tập luật thực nghiệm: Khởi chạy Snort-Inline liên kết với hàng đợi Iptables; thiết lập các quy tắc phát hiện xâm nhập và các quy tắc ngăn chặn trực tiếp (sử dụng hành động drop/reject) đối với các hành vi quét cổng mạng, tấn công từ chối dịch vụ và các truy vấn giao thức bất thường.

Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  1. Hệ thống hóa cơ sở lý thuyết an toàn mạng: Làm rõ bản chất của các phương thức tấn công phổ biến (SYN flood, UDP flood, password brute-force, backdoor) và cung cấp bảng so sánh chi tiết giữa NIDS - HIDS, cũng như giữa mô hình phát hiện sự lạm dụng - mô hình phát hiện sự bất thường.
  2. Làm rõ cấu trúc và cơ chế vận hành của Snort và Iptables: Phân tích chi tiết kiến trúc 5 module của Snort, hệ thống 2.930 luật chuẩn, các từ khóa cấu hình rule options và cơ chế lọc gói dữ liệu đa bảng (NAT, Filter, Mangle) của Linux Netfilter.
  3. Triển khai thành công giải pháp IPS Snort-Inline: Tích hợp Snort với Iptables thông qua hàng đợi libipq/ipqueue, cho phép hệ thống can thiệp và ngăn chặn luồng gói tin độc hại với các hành động DROP, SDROP, REJECT theo đúng trình tự ưu tiên luật được tối ưu.
  4. Xây dựng hệ thống quản trị cảnh báo tập trung: Kết nối thành công Snort-Inline với cơ sở dữ liệu MySQL, thư viện ADOdb và giao diện web BASE, tạo môi trường giám sát sự kiện bảo mật trực quan cho người quản trị.

Giải pháp và kiến nghị đề xuất từ tác giả

  • Kết hợp đa mô hình phát hiện: Để tối ưu hóa hiệu quả bảo mật, hệ thống cần kết hợp song song cả phương pháp phát hiện sự lạm dụng (xử lý nhanh các mẫu tấn công đã biết) và phát hiện sự bất thường (nhận diện các biến thể tấn công mới).
  • Phòng chống tấn công DoS và bảo vệ dữ liệu: Khuyến nghị cấu hình tường lửa giới hạn cổng SYN, tăng kích thước hàng đợi phục vụ, xác định linh hoạt thời gian timeout, thiết lập bộ đệm quản lý chu trình liên kết nửa mở (half-open connection), và định kỳ kiểm tra tính toàn vẹn của tệp hệ thống/tệp nhật ký bằng các thuật toán tóm lược thông điệp (checksums, message-digest, hàm băm).

Đóng góp của đề tài

Đồ án đã cung cấp một tài liệu kỹ thuật hoàn chỉnh và thực tế về việc chuyển đổi công cụ IDS mã nguồn mở Snort thành một hệ thống ngăn chặn xâm nhập IPS hoạt động đồng bộ với tường lửa nhân Linux Iptables, đóng góp một phương án bảo mật chi phí thấp nhưng có hiệu năng cao cho hệ thống mạng máy tính.


Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế:
    • Mô hình nghiên cứu của Snort-Inline gắn liền với hệ thống lọc gói Netfilter của Linux thông qua module ipqueue/libipq, chưa mở rộng thử nghiệm trên các nền tảng hệ điều hành Unix thương mại khác.
    • Phân tích của NIDS còn chịu ảnh hưởng và gặp khó khăn khi xử lý các gói tin trong các phiên truyền thông được mã hóa (như VPN) hoặc trên các hạ tầng mạng chuyển mạch phức tạp chia nhiều đoạn độc lập.
    • Việc sử dụng nhiều luật đối sánh nội dung sâu (content) đòi hỏi năng lực tính toán lớn từ CPU, có thể gây suy giảm thông lượng mạng khi lưu lượng truyền tải ở mức rất cao.
  • Hướng nghiên cứu tiếp: Tiếp tục tối ưu hóa hiệu năng xử lý của module phát hiện trên các môi trường mạng tốc độ cao (Gigabit), nghiên cứu phát triển thêm các plugin tiền xử lý bất thường chuyên sâu, và xây dựng các kịch bản kiểm thử tự động với đa dạng công cụ tấn công hiện đại.

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị chuyên môn cao đối với sinh viên, học viên ngành Công nghệ thông tin, Khoa học máy tính, Mạng máy tính và An toàn thông tin; cũng như các kỹ sư mạng, quản trị viên hệ thống Linux.

Các nội dung nổi bật đáng tham khảo bao gồm:

  • Toàn bộ bảng tra cứu chi tiết về cú pháp luật của Snort (các tùy chọn ack, classtype, content, offset, depth, flags, fragbits, dsize).
  • Bảng tổng hợp các tùy chọn lệnh, bảng lọc và các cờ trạng thái kết nối của tường lửa Linux Iptables.
  • Quy trình kỹ thuật từng bước tích hợp Snort-Inline với libipq, thiết lập cơ sở dữ liệu MySQL và cấu hình công cụ hiển thị giao diện web BASE/ADOdb.

Câu hỏi thường gặp

1. Snort-Inline khác biệt như thế nào so với Snort thông thường ở cấp độ xử lý gói tin?
Snort thông thường hoạt động như một NIDS thụ động, sử dụng thư viện libpcap để bắt và sao chép gói tin trên đường truyền mạng nhằm đưa ra cảnh báo. Ngược lại, Snort-Inline sử dụng module ipqueue và thư viện libipq của Netfilter để nhận trực tiếp gói tin từ hàng đợi Iptables ở chế độ devel-mode, cho phép Snort can thiệp xử lý và ra lệnh cho Iptables loại bỏ gói tin trước khi được định tuyến tiếp.

2. Trình tự ưu tiên thực thi các hành động trong luật của Snort-Inline được thay đổi ra sao so với bản Snort gốc?
Trong bản Snort truyền thống, thứ tự ưu tiên của các hành động là: activation -> dynamic -> alert -> pass -> log. Khi hoạt động ở chế độ Snort-Inline, thứ tự này được cấu hình lại thành: activation -> dynamic -> pass -> drop -> sdrop -> reject -> alert -> log.

3. Ba hành động mới được bổ sung vào bộ luật của Snort nhằm hỗ trợ chế độ inline là gì và ý nghĩa của chúng?
Ba hành động bao gồm: DROP (yêu cầu Iptables loại bỏ gói tin và ghi nhật ký thông tin), SDROP (loại bỏ gói tin trong im lặng, không ghi nhật ký), và REJECT (hủy bỏ gói tin đồng thời gửi thông báo lỗi ngược lại cho nguồn gửi, không ghi nhật ký).

4. Ba bảng (Tables) xử lý gói tin chính trong kiến trúc Iptables đảm nhận chức năng gì?
Ba bảng chính gồm: NAT table (chuyên thực thi chuyển đổi địa chỉ mạng với các chuỗi Pre-routing, Post-routing, Output); Filter table (chịu trách nhiệm lọc gói tin với các chuỗi Forward, Input, Output); và Mangle table (chịu trách nhiệm điều chỉnh các bit chất lượng dịch vụ QoS trong TCP Header).

5. Từ khóa flags và fragbits trong luật Snort dùng để kiểm tra những thông tin nào của gói tin?
Từ khóa flags dùng để đối sánh các bit cờ trong TCP Header (gồm FIN, SYN, RST, PSH, ACK, URG, Reserved 1, Reserved 2 hoặc 0). Từ khóa fragbits dùng để kiểm tra các bit quản lý phân mảnh trong IP Header, bao gồm bit Don't Fragment (DF - kiểm tra gói không bị phân mảnh), More Fragments (MF - kiểm tra các phần tiếp theo của gói phân mảnh) và Reserved Bit (RB).


Kết luận

Đồ án tốt nghiệp "Nghiên cứu và triển khai phòng chống xâm nhập mạng với Snort và Iptables" của tác giả Cao Đức Duy đã cung cấp một nghiên cứu toàn diện từ lý thuyết an ninh mạng đến giải pháp triển khai thực tế một hệ thống ngăn chặn xâm nhập mã nguồn mở. Công trình đã làm rõ kiến trúc module nội tại của Snort, cơ chế lọc gói dữ liệu của Linux Iptables và kỹ thuật ghép nối Snort-Inline thông qua thư viện libipq. Với việc tích hợp thành công giao diện phân tích BASE trên nền cơ sở dữ liệu MySQL, đồ án đã chứng minh tính khả thi và hiệu quả của mô hình bảo vệ mạng chủ động, mang lại giá trị tham khảo kỹ thuật cao cho công tác quản trị và bảo mật hệ thống thông tin.