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

Sự bùng nổ của cuộc cách mạng công nghệ thông tin và Internet đã thúc đẩy mạnh mẽ nền kinh tế tri thức và hoạt động thương mại điện tử. Tuy nhiên, cùng với sự phát triển này, các mối đe dọa an ninh mạng (Cyber Crimes, Computer Crimes) ngày càng gia tăng về quy mô và mức độ tinh vi. Các hệ thống mạng doanh nghiệp liên tục đối mặt với nguy cơ bị tấn công, đánh cắp dữ liệu, làm gián đoạn dịch vụ và phá vỡ tính sẵn sàng, tính toàn vẹn cũng như tính bí mật của hệ thống thông tin.

Thực tiễn an ninh mạng tại hầu hết các doanh nghiệp cho thấy các giải pháp bảo mật và tường lửa truyền thống không còn theo kịp sự thay đổi của các ứng dụng hiện đại và các kỹ thuật tấn công phức tạp. Tường lửa truyền thống chủ yếu hoạt động ở tầng mạng và tầng giao vận, chỉ kiểm tra dựa trên cổng (port) và địa chỉ IP đơn thuần, dễ dàng bị vượt qua bởi các thủ đoạn lẩn tránh như ẩn ứng dụng trong giao thức khác (tunnelling), phân mảnh gói tin, mã hóa SSL/SSH hoặc tấn công trực tiếp vào tầng ứng dụng. Do đó, việc nghiên cứu và ứng dụng tường lửa thế hệ mới (Next Generation Firewalls - NGFWs) với khả năng kiểm soát chuyên sâu và phát hiện xâm nhập thông minh là một yêu cầu cấp thiết đối với an toàn mạng nội bộ doanh nghiệp.

Theo văn bản đồ án tốt nghiệp của tác giả Nguyễn Thị Thu Trang (Trường Đại học Công nghệ thông tin và Truyền thông Thái Nguyên, 2016), các mục tiêu nghiên cứu cụ thể bao gồm:

  1. Nghiên cứu các chức năng chính của tường lửa thế hệ mới và các kỹ thuật sử dụng trong tường lửa thế hệ mới.
  2. Nghiên cứu cấu trúc của tường lửa thế hệ mới Suricata, các chức năng của Suricata và các bước cài đặt, cấu hình trên hệ điều hành Linux.
  3. Nghiên cứu về các luật của Suricata, cấu trúc luật và các thành phần trong luật của Suricata.
  4. Viết một số luật đơn giản trong Suricata và thực thi các luật đó.
  5. Nghiên cứu, phân tích dấu hiệu của một số cuộc tấn công, hình thành các luật tương ứng với đặc điểm của các dạng tấn công và xâm nhập đó.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Công nghệ tường lửa thế hệ mới (NGFWs); cấu trúc, chức năng và tập luật của hệ thống phát hiện/ngăn chặn xâm nhập mã nguồn mở Suricata; các dấu hiệu tấn công và quy tắc phát hiện tương ứng.
  • Phạm vi nghiên cứu: Mô hình mạng nội bộ doanh nghiệp kết nối với mạng bên ngoài (External/Internet); triển khai và thực nghiệm cấu hình Suricata trên hệ điều hành nền tảng Linux; thử nghiệm kiểm soát các giao thức mạng cơ bản (ICMP, TCP, UDP).

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

Đồ án dựa trên nền tảng lý thuyết an toàn an ninh mạng và các mô hình phòng thủ xâm nhập hiện đại, bao gồm:

  • Khái niệm và phân loại bảo mật: Bảo mật máy tính (Computer Security), bảo mật mạng (Network Security), và bảo mật Internet (Internet Security). Phân loại 4 nhóm nguy cơ đe dọa bảo mật: mối đe dọa bên trong, mối đe dọa bên ngoài, mối đe dọa có cấu trúc và mối đe dọa không có cấu trúc.
  • Các phương thức tấn công mạng: Tấn công thăm dò (Sniffing, Ping Sweep, Port Scanning); tấn công xâm nhập truy cập hệ thống và thao túng dữ liệu; tấn công từ chối dịch vụ (DoS, DDoS, DRDoS); tấn công hệ thống máy chủ phân giải tên miền (DNS); tấn công lớp ứng dụng (Web server, Mail server); tấn công nhúng mã độc (Virus, Trojan horse).
  • Khung lý thuyết tường lửa thế hệ mới (NGFWs): Khái niệm nền tảng tích hợp theo tài liệu của Lawrence C. Miller và hãng Palo Alto Networks. NGFWs kết hợp các công nghệ: Kiểm tra gói tin chuyên sâu nội tuyến (In-Line Deep Packet Inspection - DPI), Hệ thống phát hiện xâm nhập (IDS), Hệ thống ngăn chặn xâm nhập (IPS), Giám sát an ninh mạng (NSM), thư viện bắt gói tin PCAP (libpcap trên Linux, winpcap trên Windows), cùng các kỹ thuật giải mã SSL/SSH, nhận dạng người dùng qua LDAP/Active Directory và kiểm soát chính sách theo ứng dụng.
  • Nguồn tài liệu nghiên cứu: Tài liệu kỹ thuật từ tổ chức Open Information Security Foundation (OISF), tài liệu mã nguồn (Sourcefile) của Suricata và Snort.

Phương pháp nghiên cứu thực tế được tác giả áp dụng:

  • Phương pháp nghiên cứu lý thuyết: Thu thập, phân tích, tổng hợp tài liệu học thuật, báo cáo khoa học và tài liệu kỹ thuật từ nhà phát triển.
  • Phương pháp thiết kế và triển khai thực nghiệm: Cài đặt hệ thống Suricata trên môi trường hệ điều hành Linux; cấu hình liên kết giao diện mạng (eth0); thiết lập kịch bản gửi nhận gói tin; phân tích file log và lưu lượng bắt được qua PCAP; chuyển hóa các dấu hiệu nhận dạng thành tập luật (rules) của Suricata để thực nghiệm cơ chế phát hiện (alert) và ngăn chặn (drop).

Thiết kế và triển khai

Hệ thống Suricata được thiết kế và triển khai dựa trên các khối chức năng kỹ thuật:

1. Kiến trúc hệ thống Suricata

Suricata kế thừa và mở rộng kiến trúc xử lý của Snort với thiết kế đa luồng (multi-threading), tận dụng tối đa khả năng xử lý của CPU đa lõi:

  • Bộ thu bắt và giải mã gói tin (The Sniffer / Packet Decoder): Lắng nghe và thu thập các gói tin di chuyển qua giao diện mạng. Hỗ trợ giải mã các lớp liên kết (Ethernet, 802.11, Token Ring, FDDI, Cisco HDLC, SLIP, PPP, OpenBSD PF) và các giao thức mạng/giao vận (IP, ICMP, TCP, UDP) trong mã nguồn src/decode.c.
  • Bộ tiền xử lý (Preprocessors): Phân tích cú pháp dữ liệu, tái cấu trúc luồng và chống các kỹ thuật lẩn tránh của tin tặc. Cung cấp các module như Frag3 (chống phân mảnh gói tin IP), sfPortscan (phát hiện quét cổng, quét hệ điều hành) và Stream5 (tái gộp các gói tin ở tầng TCP).
  • Động cơ phát hiện (Detection Engine): Kiểm tra và đối sánh dữ liệu đã qua tiền xử lý với hệ thống các quy tắc (rules/signatures).
  • Bộ kết xuất đầu ra (The Output Modules): Gồm module Cảnh báo/Ghi nhật ký (Alert/Logging) và module Kết xuất thông tin. Hỗ trợ ghi file log, gửi thông báo SMB pop-up tới máy trạm Windows, truyền qua UNIX socket, gửi qua giao thức SNMP, gửi qua SMS hoặc lưu trữ vào hệ quản trị cơ sở dữ liệu SQL (MySQL, PostgreSQL). Tích hợp công cụ Oinkmaster (viết bằng Perl) để tự động quản lý và cập nhật tập luật.

2. Cấu trúc tập luật trong Suricata

Mỗi luật trong Suricata bao gồm hai phần chính:

  • Rule Header: Định nghĩa các thông tin định tuyến và hành động xử lý:
    • Rule Action: pass (cho qua và bỏ qua các luật sau), drop (hủy bỏ gói tin ngay lập tức), reject (bỏ qua ở cả bên gửi và nhận, đồng thời tạo cảnh báo), alert (tạo cảnh báo khi phát hiện dấu hiệu).
    • Protocol: Các giao thức được phân tích bao gồm TCP, UDP, ICMP, IP, TLS, SSH, SMTP, IMAP, MSN, SMB, DNS.
    • IP Address & Port: Địa chỉ IP nguồn/đích (cho phép định dạng CIDR, toán tử phủ định !, danh sách phân tách bằng dấu phẩy) và dải cổng mạng (sử dụng toán tử khoảng :, từ khóa any, hoặc toán tử phủ định).
    • Toán tử điều hướng: Hướng đơn -> (xác định rõ nguồn và đích) hoặc hướng kép <> (áp dụng phân tích hai chiều cho toàn bộ phiên giao tiếp).
  • Rule Options: Đặt trong dấu ngoặc đơn (), phân tách bằng dấu chấm phẩy ;, gồm 4 nhóm:
    • General: msg (thông điệp cảnh báo), sid (mã định danh quy tắc), rev (phiên bản sửa đổi), reference (liên kết tài liệu tham chiếu), classtype (phân loại lớp quy tắc), priority (mức độ ưu tiên từ 1 đến 255, ưu tiên cao nhất là 1), metadata.
    • Payload: content (chuỗi byte hoặc mã hexa cần tìm), nocase (không phân biệt chữ hoa/thường), depth (độ sâu quét từ đầu tải trọng), offset (độ lệch bắt đầu quét), distance (khoảng cách giữa các chuỗi kiểm tra), within (độ rộng kiểm tra sau khoảng cách), dsize (kiểm tra kích thước tải trọng), rpc, replace (thay đổi nội dung tải trọng và tính lại checksum).
    • Non-payload & Protocol Headers: Kiểm tra các trường tiêu đề IP (ttl, ipopts, sameip, ip_proto, id, geoip, fragbits, fragoffset), tiêu đề TCP (seq, ack, window), tiêu đề ICMP (itype, icode, icmp_id, icmp_seq), tầng HTTP (http_method, http_uri, http_raw_uri, http_header, http_user_agent, http_client_body, http_stat_code, http_stat_msg, http_server_body, file_data dựa trên thư viện HTP), và luồng (flowbits, flow).

3. Quy trình thực nghiệm

Hệ thống Suricata được cài đặt trên nền tảng Linux, nạp tập tin cấu hình suricata.yaml và áp trực tiếp lên giao diện mạng eth0. Kiểm thử được thực hiện trong mô hình phân chia vùng mạng máy chủ và mạng ngoài (External), tiến hành kích hoạt lưu lượng để kiểm tra tính chính xác của các luật cảnh báo và ngăn chặn.

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

Chương 1: Tổng quan về công nghệ tường lửa thế hệ mới

Chương này phân tích các khái niệm cơ bản về an toàn bảo mật thông tin, phân loại các phương pháp tấn công mạng phổ biến và chỉ ra các hạn chế của tường lửa truyền thống. Tác giả trình bày các yêu cầu chức năng cốt lõi của NGFWs, bao gồm nhận dạng ứng dụng không phụ thuộc cổng/giao thức (thông qua giải mã giao thức, nhận dạng mẫu dấu hiệu ngữ cảnh, phân tích hành vi Heuristics), nhận dạng người dùng thông qua tích hợp thư mục doanh nghiệp (LDAP/Active Directory), và xác định nội dung (quét dòng dữ liệu Stream-based để chống virus/spyware, định dạng dấu hiệu mối đe dọa đồng nhất Uniform Threat Signature, lọc URL, lọc tập tin và ngăn chặn rò rỉ dữ liệu).

Thuộc tính Tường lửa truyền thống Tường lửa thế hệ mới (NGFWs)
Mã nguồn (Source) Mã nguồn đóng Mã nguồn mở (đối với một số hệ thống như Suricata)
Công nghệ sử dụng Lọc gói tin qua bộ lọc; lọc/chặn giao thức thông qua port; sử dụng cơ chế NAT che giấu địa chỉ IP Tích hợp công nghệ phát hiện xâm nhập IDS; công nghệ phòng chống xâm nhập IPS; giám sát an ninh mạng NSM; công nghệ PCAP ghi nhật ký lưu lượng
Cơ chế hoạt động Packet Filtering (địa chỉ, cổng dịch vụ); Application Gateway (Proxy); Circuit Level Gateway; cơ chế NAT Application identification (phát hiện, giải mã giao thức, dấu hiệu ứng dụng, Heuristics); User identification; Content identification (lọc URL, lọc file/dữ liệu, Threat prevention)
Phạm vi hoạt động Tầng Network Tầng Application
Chức năng cơ bản Quản lý và kiểm soát luồng dữ liệu; xác thực quyền truy cập; hoạt động như thiết bị trung gian; bảo vệ tài nguyên; ghi nhận và báo cáo sự kiện Thực hiện đầy đủ chức năng truyền thống; tích hợp phòng chống xâm nhập nội tuyến; nhận dạng và lọc ứng dụng; tích hợp Directory; kiểm tra giải mã SSL/SSH tốc độ cao (multi-gigabit); lọc sâu gói tin (DPI); lọc mã độc (Malware filtering)
Sản phẩm tiêu biểu Phần mềm: SunScreen, IPF, Microsoft ISA server, Check Point NG, IPTables...
Phần cứng: Cisco PIX, NetScreen, SonicWall, WatchGuard, Nokia firewall...
Thương mại: Check Point Software Technologies, Palo Alto Networks Firewall...
Mã nguồn mở/Tường lửa mềm: Suricata, Snort, Iptables...

Chương 2: Tường lửa thế hệ mới Suricata

Chương 2 trình bày lịch sử hình thành và phát triển của Suricata do tổ chức OISF khởi xướng (phát hành bản beta tháng 12/2009, bản chuẩn tháng 7/2010 theo giấy phép GNU/GPL). Nội dung đi sâu phân tích 4 thành phần kiến trúc nội bộ của Suricata (Sniffer, Preprocessors, Detection Engine, Output).

Chương này cũng phân tích chi tiết các nhóm chức năng xử lý chuyên sâu của Suricata:

  • Hỗ trợ tầng ứng dụng HTTP sử dụng thư viện HTP (phân tích URI, User-Agent, Header, Client Body, Server Body).
  • Cơ chế quản lý trạng thái (State support) và giải mã gói tin (Packet decoding).
  • Cơ chế thiết lập ngưỡng cảnh báo (Thresholding) nhằm giảm thiểu các cảnh báo sai lệch (false positives) trong các khoảng thời gian xác định.
  • Cú pháp toàn diện của tập luật Suricata từ Rule Header đến Rule Options (General, Payload, Non-payload, Flowbits, IP/TCP/ICMP/HTTP).

Chương 3: Demo phát hiện và chặn một số giao thức trên Suricata

Chương 3 tập trung vào quá trình triển khai thực nghiệm Suricata trên hệ điều hành Linux:

  • Trình bày sơ đồ hệ thống mạng thử nghiệm gồm phân vùng mạng ngoài (External), máy chủ dịch vụ (Server) và vị trí đặt Suricata trên giao diện mạng eth0.
  • Xây dựng và nạp các tập luật mẫu để kiểm soát lưu lượng.
  • Thực hiện kịch bản kiểm thử:
    • Sử dụng lệnh ping (gói tin ICMP Echo Request) từ máy External đến máy chủ: Suricata ghi nhận, hiển thị cảnh báo phát hiện ping (Hình 3.8) và kích hoạt hành động chặn (drop) ping thành công (Hình 3.9).
    • Kiểm thử phát hiện và ngăn chặn đối với các luồng dữ liệu sử dụng giao thức TCP (Hình 3.10, Hình 3.12).
    • Kiểm thử phát hiện và ngăn chặn đối với các luồng dữ liệu sử dụng giao thức UDP (Hình 3.11, Hình 3.13).

Chương 4: Khả năng ứng dụng và mở rộng của kết quả nghiên cứu

Chương cuối tổng kết các kết quả đạt được về mặt lý thuyết và thực nghiệm. Tác giả đánh giá ý nghĩa thực tiễn của việc ứng dụng Suricata trong việc bảo vệ an ninh mạng doanh nghiệp. Đồng thời, chương 4 đề xuất mô hình nâng cao hiệu năng hệ thống mạng bằng cách kết hợp Suricata với thư viện tăng tốc xử lý gói tin DPDK (Data Plane Development Kit) và tính toán song song trên phần cứng GPU, so sánh thời gian mã hóa và xử lý dữ liệu giữa GPU và CPU nhằm đáp ứng các môi trường mạng lưu lượng lớn.

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

Khóa luận đã hoàn thành các mục tiêu nghiên cứu với các kết quả cụ thể:

  • Kết quả nghiên cứu lý thuyết: Làm rõ sự khác biệt giữa tường lửa truyền thống và NGFWs; phân tích chi tiết nguyên lý nhận dạng ứng dụng, nhận dạng người dùng và kiểm soát nội dung; giải cấu trúc kiến trúc đa luồng của Suricata cùng toàn bộ hệ thống cú pháp luật.
  • Kết quả thực nghiệm: Cài đặt và cấu hình thành công Suricata trên Linux; áp dụng cấu hình lên card mạng eth0; thực hiện phân tích và thiết lập luật kiểm soát thành công các giao thức ICMP, TCP và UDP (thể hiện qua các log phát hiện và thông báo chặn trên hệ thống).
  • Giải pháp đề xuất: Đề xuất mô hình ứng dụng tường lửa mã nguồn mở Suricata kết hợp công cụ quản lý luật Oinkmaster như một giải pháp thay thế hiệu quả về chi phí cho các doanh nghiệp; đề xuất mô hình mở rộng kết hợp Suricata với DPDK và xử lý tính toán tăng tốc trên GPU để nâng cao thông lượng mạng.
  • Đóng góp của tác giả: Hệ thống hóa tài liệu chuyên sâu bằng tiếng Việt về tường lửa thế hệ mới Suricata; cung cấp hướng dẫn chi tiết về cấu trúc cú pháp viết luật tùy biến; chứng minh khả năng áp dụng thực tế của hệ thống trong việc phát hiện và ngăn chặn các giao thức mạng phổ biến.

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

  • Hạn chế: Các bài thử nghiệm thực nghiệm mới chỉ dừng lại ở việc phát hiện và chặn các giao thức cơ bản (ICMP, TCP, UDP) trong môi trường mạng quy mô nhỏ/demo; chưa thực hiện kiểm thử diện rộng trên các cuộc tấn công phức tạp ở tầng ứng dụng hoặc các biến thể mã độc tinh vi trong môi trường mạng thực tế của doanh nghiệp.
  • Hướng nghiên cứu tiếp:
    • Hoàn thiện và thử nghiệm mô hình tích hợp Suricata với DPDK và GPU nhằm tăng tốc độ xử lý gói tin lên mức multi-gigabit.
    • Mở rộng xây dựng các bộ luật phức tạp để phát hiện và ngăn chặn các cuộc tấn công khai thác lỗ hổng ứng dụng web, tấn công từ chối dịch vụ phân tán (DDoS) và phân tích hành vi Heuristics chuyên sâu.

Giá trị tham khảo

Đồ án là tài liệu học thuật và kỹ thuật hữu ích đối với:

  • Sinh viên ngành Công nghệ thông tin, An toàn thông tin, Mạng máy tính: Tham khảo phần tổng quan lý thuyết về tường lửa thế hệ mới (NGFWs), kiến trúc IDS/IPS đa luồng và bảng tra cứu chi tiết cú pháp viết luật Suricata (từ header, tải trọng, đến các tùy chọn IP, TCP, ICMP, HTTP, Flow).
  • Kỹ sư quản trị mạng và bảo mật hệ thống: Tham khảo phương pháp cấu hình Suricata trên Linux, cách thiết lập chính sách kiểm soát gói tin, quy trình phân tích lưu lượng PCAP và định hướng tối ưu hóa phần cứng bằng DPDK/GPU.

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

1. Suricata được phát triển bởi tổ chức nào và có ưu điểm gì nổi bật về kiến trúc so với Snort truyền thống? Suricata do tổ chức Open Information Security Foundation (OISF) phát triển và phát hành phiên bản chuẩn đầu tiên vào tháng 7 năm 2010 dưới giấy phép GNU/GPL. Điểm nổi bật của Suricata là được xây dựng với kiến trúc đa luồng (multi-threading), cho phép tận dụng tối đa năng lực xử lý của các bộ vi xử lý CPU đa lõi mới nhất để tăng tốc độ phân tích lưu lượng mạng lên đến mức gigabit.

2. Kiến trúc nội bộ của Suricata bao gồm những thành phần cơ bản nào? Kiến trúc Suricata gồm 4 thành phần chính: Bộ thu bắt và giải mã gói tin (Packet Sniffer/Decoder), Bộ tiền xử lý (Preprocessors với các module như Frag3, sfPortscan, Stream5), Động cơ phát hiện (Detection Engine thực hiện so khớp tập luật), và Bộ kết xuất đầu ra (Output Modules gồm module Alert/Logging và module kết xuất thông tin ra file log, database, socket hoặc SNMP).

3. Cấu trúc một quy tắc (rule) trong Suricata gồm các thành phần nào? Một luật trong Suricata gồm hai phần:

  • Rule Header: Chứa hành động xử lý (pass, drop, reject, alert), loại giao thức (TCP, UDP, ICMP, HTTP...), địa chỉ IP nguồn/đích, cổng nguồn/đích và toán tử điều hướng (-> hoặc <>).
  • Rule Options: Đặt trong ngoặc đơn, gồm các nhóm tùy chọn chung (General: msg, sid, rev, priority), tùy chọn kiểm tra tải trọng (Payload: content, nocase, depth, offset, distance, within), tùy chọn tiêu đề không tải trọng (IP, TCP, ICMP, HTTP) và quản lý luồng (flow, flowbits).

4. Tường lửa thế hệ mới (NGFWs) khác biệt căn bản như thế nào so với tường lửa truyền thống? Tường lửa truyền thống chủ yếu lọc gói tin ở tầng mạng và giao vận dựa trên IP, port và kiểm tra trạng thái đơn giản. Ngược lại, NGFWs hoạt động ở tầng ứng dụng, tích hợp sẵn các công nghệ DPI, IDS/IPS, NSM; có khả năng nhận dạng chính xác ứng dụng (không phụ thuộc vào cổng hay giao thức sử dụng), nhận dạng người dùng thông qua tích hợp thư mục LDAP/Active Directory, và kiểm tra chuyên sâu nội dung (quét virus/spyware theo dòng dữ liệu, lọc URL, lọc dữ liệu nhạy cảm).

5. Trong phần thực nghiệm, tác giả đã tiến hành kiểm thử các chức năng nào trên Suricata? Tác giả đã cài đặt Suricata trên hệ điều hành Linux, liên kết cấu hình với giao diện mạng eth0 và thực hiện kiểm thử thành công hai trạng thái: phát hiện (alert) và ngăn chặn (drop) đối với các lưu lượng ICMP (lệnh Ping Echo Request), giao thức TCP và giao thức UDP từ phân vùng mạng ngoài (External) đến máy chủ.

Kết luận

Đồ án tốt nghiệp "Nghiên cứu các chức năng của tường lửa thế hệ mới Suricata và ứng dụng trong mạng nội bộ doanh nghiệp" của tác giả Nguyễn Thị Thu Trang đã hệ thống hóa đầy đủ cơ sở lý luận về công nghệ tường lửa thế hệ mới và kiến trúc đa luồng của hệ thống mã nguồn mở Suricata. Khóa luận cung cấp bảng tra cứu toàn diện về cú pháp xây dựng tập luật phát hiện/ngăn chặn xâm nhập, đồng thời thực nghiệm thành công việc kiểm soát các giao thức ICMP, TCP, UDP trên môi trường mạng Linux. Đây là tài liệu tham khảo có giá trị kỹ thuật cao cho sinh viên và kỹ sư trong lĩnh vực an toàn thông tin và quản trị mạng doanh nghiệp.