Giới thiệu dự án

Trong bối cảnh bùng nổ của hạ tầng điện toán đám mây và ảo hóa mạng, mô hình Mạng điều khiển bằng phần mềm (Software-Defined Networking - SDN) đã trở thành tiêu chuẩn cốt lõi nhờ khả năng tách biệt hoàn toàn tầng điều khiển (Control Plane) khỏi tầng chuyển tiếp dữ liệu (Data/Forwarding Plane). Tuy nhiên, theo các báo cáo an ninh mạng toàn cầu, hơn 70% các cuộc tấn công có chủ đích (APT) bắt đầu bằng giai đoạn do thám mạng (Reconnaissance Phase) như quét cổng, ánh xạ topo và dò tìm lỗ hổng dịch vụ. Kiến trúc SDN truyền thống dù tối ưu về quản trị nhưng lại có điểm yếu cốt tử về mặt bảo mật: tính tĩnh của cấu hình máy chủ và nguy cơ tập trung hóa bề mặt tấn công tại bộ điều khiển (SDN Controller).

Vấn đề cốt lõi đặt ra là các giải pháp phòng thủ thụ động (như tường lửa truyền thống hay IDS/IPS tĩnh) chỉ phản ứng sau khi cuộc tấn công đã diễn ra hoặc khi chữ ký mã độc đã khớp, không thể vô hiệu hóa giai đoạn trinh sát thông tin của tin tặc. Khi kẻ tấn công quét ra địa chỉ IP thật và cấu hình máy chủ, chúng có thể thiết lập các luồng tấn công khai thác lỗ hổng trực tiếp hoặc tấn công từ chối dịch vụ (DoS/DDoS) làm tê liệt bộ chuyển mạch OpenFlow và Controller.

Đồ án/Khóa luận kỹ sư "Cơ chế triển khai bẫy và phòng thủ di chuyển mục tiêu giảm thiểu tấn công trong mạng khả lập trình" của sinh viên Nguyễn Cát Hải và Đào Phương Nam (Khoa Mạng máy tính & Truyền thông, Trường Đại học Công nghệ Thông tin - ĐHQG-HCM, 2021) được xây dựng nhằm giải quyết triệt để các hạn chế trên. Đề tài đặt ra 4 mục tiêu kỹ thuật cụ thể:

  1. Thiết kế và hiện thực hóa cơ chế Phòng thủ di chuyển mục tiêu (Moving Target Defense - MTD) dựa trên kỹ thuật đột biến địa chỉ IP (IP Mutation/Address Shuffling) trên nền tảng SDN.
  2. Tích hợp hệ thống lừa dối mạng (Cyber Deception) sử dụng mạng lưới Honeypot tương tác đa tầng (OpenCanary, Cowrie) nhằm đánh lừa và giữ chân kẻ tấn công.
  3. Xây dựng cơ chế phát hiện xâm nhập mạng (Snort NIDS) kết hợp điều hướng luồng động (Dynamic Flow Redirection) qua giao tiếp API phía Bắc (Northbound API) của Controller.
  4. Triển khai kiến trúc quản lý, giám sát và phân tích log tập trung theo thời gian thực sử dụng ELK Stack (Elasticsearch, Logstash, Kibana) kết hợp Filebeat.

Phương pháp tiếp cận kết hợp giữa chủ động (Proactive) và phản ứng (Reactive): MTD làm vô hiệu hóa thông tin do thám mạng bằng cách liên tục xáo trộn ánh xạ IP ảo, trong khi Snort NIDS phát hiện các hành vi quét mạng bất thường để kích hoạt bẫy Honeypot, cô lập nguồn tấn công và bảo vệ tuyệt đối các host dịch vụ quan trọng.

Phạm vi nghiên cứu tập trung vào môi trường SDN sử dụng giao thức OpenFlow trên nền tảng giả lập Containernet và ONOS Controller, không bao gồm việc can thiệp phần cứng vật lý chuyên dụng của các nhà cung cấp viễn thông độc quyền.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Các giải pháp an ninh mạng truyền thống khi đối mặt với tin tặc trong mạng SDN bộc lộ nhiều điểm hạn chế:

Tiêu chí Phòng thủ truyền thống (Static Firewall/IPS) Hệ thống Honeypot độc lập Giải pháp tích hợp MTD + Cyber Deception trên SDN
Tính chất phòng thủ Phản ứng thụ động (Reactive) Đánh lạc hướng thụ động Chủ động (Proactive) kết hợp phản ứng đa tầng
Bề mặt tấn công (Attack Surface) Tĩnh, địa chỉ IP cố định, dễ do thám Tĩnh, dễ bị tin tặc phát hiện là bẫy Động (Dynamic), IP biến đổi liên tục theo chu kỳ
Khả năng cách ly đe dọa Chặn IP thủ công hoặc dựa vào rule cứng Không tự động cô lập máy thật Tự động viết lại Flow Table, điều hướng vào Honeynet
Khả năng thu thập chứng cứ Log lưu lượng dạng cơ bản Log chi tiết hành vi của tin tặc Log tập trung thời gian thực (ELK) gắn liền luồng mạng
Độ trễ và phụ tải Thấp Không ảnh hưởng mạng chính Có độ trễ xử lý gói ban đầu tại Controller

Yêu cầu hệ thống được lượng hóa theo mô hình MoSCoW:

  • Must have: Module đột biến IP động (MTD_ChangeIP.py), Module điều khiển luồng phản ứng (ControlFlow.py), Snort NIDS phát hiện quét cổng, OpenCanary & Cowrie Honeypot, ONOS Controller quản lý Flow Table.
  • Should have: Pipeline thu thập log ELK Stack 7.x qua Filebeat, trực quan hóa Dashboard trên Kibana.
  • Could have: Tự động tối ưu hóa chu kỳ đột biến IP dựa trên tải mạng (Adaptive Time-based MTD).
  • Won't have (giai đoạn này): Chống tấn công khai thác phần cứng lớp vật lý (Hardware-level MTD).

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế thành mô hình 4 tầng tương tác phân tán:

Công nghệ và phiên bản phần mềm triển khai chi tiết:

  • Hệ điều hành: Ubuntu 18.04 LTS (x86_64).
  • Bộ điều khiển SDN: ONOS Controller v1.x/2.x (giao diện OpenFlow 1.3, hỗ trợ REST API, Web GUI, CLI).
  • Môi trường giả lập mạng: Containernet (Docker container-based Mininet fork) cho phép chạy các container độc lập làm host mạng.
  • Chuyển mạch ảo: Open vSwitch (OVS) hỗ trợ cấu hình Port Mirroring (ovs-vsctl).
  • Hệ thống NIDS: Snort 2.9.x (Rule-based detection).
  • Hệ thống Bẫy: OpenCanary (mô phỏng FTP, Telnet, HTTP, SMB) và Cowrie (Medium-to-high interaction SSH Honeypot trên port 2222).
  • Quản lý nhật ký: ELK Stack 7.x (Elasticsearch 7.x, Logstash 7.x, Kibana 7.x) kết hợp Filebeat 7.x.
  • Thư viện mạng: Python 3.6+, Scapy (Packet manipulation and header rewriting).

Methodology

Phương pháp triển khai theo quy trình Agile kết hợp kiểm thử thực nghiệm lặp (Iterative Empirical Validation):

  • Giai đoạn 1: Khảo sát lý thuyết MTD (Shuffling, Diversity, Redundancy), các mô hình Cyber Deception (Game-theoretic, Network-level, Host-level) và kiến trúc OpenFlow.
  • Giai đoạn 2: Thiết lập môi trường ảo hóa phân tán gồm 3 Máy ảo (VM1: Docker/Containernet/Snort; VM2: ONOS Controller/ControlFlow/MTD; VM3: ELK Stack/Kibana).
  • Giai đoạn 3: Phát triển các script điều khiển Python (MTD_ChangeIP.pyControlFlow.py) giao tiếp qua Unix Socket và RESTful API.
  • Giai đoạn 4: Thực hiện các kịch bản tấn công thực tế (Nmap scan, ARP spoofing, SSH brute-force, FTP access) để đo lường hiệu năng, độ trễ và tỷ lệ đánh lừa.

Implementation và kết quả

Development process

Quá trình hiện thực hóa giải pháp bao gồm 3 module trọng tâm:

1. Cấu hình Port Mirroring trên Open vSwitch

Để Snort NIDS ở chế độ ngoài luồng (out-of-band/promiscuous) có thể bắt trọn gói tin từ các Switch mà không gây tắc nghẽn luồng dữ liệu, lệnh trích xuất bản sao gói tin được thực thi trực tiếp qua OVS:

# Thiết lập Port Mirroring trên switch1 chuyển tiếp toàn bộ lưu lượng sang interface switch1-eth4 nối với Snort
ovs-vsctl -- --id=@p get port switch1-eth4 \
          -- --id=@m create mirror name=m1 select-all=true output-port=@p \
          -- set bridge switch1 mirrors=@m

2. Thuật toán Đột biến Địa chỉ IP (IP Mutation Algorithm)

Hệ thống quản lý hai không gian địa chỉ: realIPList (tập hợp địa chỉ vật lý thật của các host) và mtdIPList (tập hợp các địa chỉ IP ảo ngẫu nhiên được cấp phát công khai trong mạng).

# Thuật toán ánh xạ và đột biến địa chỉ IP định kỳ (MTD_ChangeIP.py)
import time
import random
from scapy.all import *

class MTD_Controller:
    def __init__(self, real_ips, virtual_pool, period=30):
        self.real_ips = real_ips
        self.virtual_pool = virtual_pool
        self.period = period
        self.ip_mapping_table = {}

    def generate_random_mapping(self):
        shuffled_pool = random.sample(self.virtual_pool, len(self.real_ips))
        self.ip_mapping_table = dict(zip(self.real_ips, shuffled_pool))
        return self.ip_mapping_table

    def push_onos_flow_rules(self, mapping):
        # Gửi HTTP REST Request đến ONOS Northbound API để cập nhật bảng Flow Table
        # Rewrite IP Header: Real -> Virtual tại Ingress Switch, Virtual -> Real tại Egress Switch
        pass

    def run_mutation_loop(self):
        while True:
            mapping = self.generate_random_mapping()
            self.push_onos_flow_rules(mapping)
            time.sleep(self.period)

Cơ chế dịch chuyển địa chỉ khi truyền gói tin từ Host 1 ($H_1$) sang Host 2 ($H_2$):

  1. Host 1 phát gói: $Src = Real_IP_1$, $Dst = Virtual_IP_2$.
  2. Switch 1 (Ingress): Bộ điều khiển nạp flow rule thay đổi $Src$ từ $Real_IP_1 \rightarrow Virtual_IP_1$. Gói tin truyền trên mạng trung gian với cặp $(Src: Virtual_IP_1, Dst: Virtual_IP_2)$.
  3. Switch 2 (Egress): Flow rule nạp sẵn chuyển đổi $Dst$ từ $Virtual_IP_2 \rightarrow Real_IP_2$.
  4. Host 2 nhận gói: Gói tin đến đích an toàn với $Src: Virtual_IP_1, Dst: Real_IP_2$.

3. Điều hướng luồng cảnh báo thời gian thực (ControlFlow.py)

Khi Snort phát hiện hành vi quét mạng (ICMP Scan / SYN Stealth Scan), cảnh báo được đẩy vào Unix Socket nội bộ. Ứng dụng ControlFlow.py bắt sự kiện và gọi REST API của ONOS để đẩy Intent mới: hủy luồng kết nối giữa kẻ tấn công và các host thật, đồng thời tạo bảng định tuyến mới dẫn thẳng lưu lượng của kẻ tấn công vào dải địa chỉ của bẫy OpenCanary/Cowrie.

Testing và validation

Hệ thống được thử nghiệm trong môi trường mạng ảo hóa với kịch bản kiểm thử: Tin tặc sử dụng công cụ Nmap, Ping, Hydra từ Host 1 để quét toàn bộ subnet /24.

  1. Kịch bản 1: Mạng không có MTD & Cyber Deception:
    • Tin tặc quét Nmap (nmap -sS -O 10.0.0.0/24) nhanh chóng xác định chính xác danh sách IP thật (Host 2, Host 3, Host 4), nhận diện đúng hệ điều hành Linux/Ubuntu và các port dịch vụ đang mở.
  2. Kịch bản 2: Mạng kích hoạt MTD_ChangeIP:
    • Khi quét mạng, tin tặc chỉ nhận được danh sách IP ảo biến đổi liên tục. Mọi nỗ lực nhắm mục tiêu vào IP vừa tìm thấy sau $T$ giây (chu kỳ period) đều bị timeout hoặc gửi gói tin vào khoảng không do bảng ánh xạ đã được thay mới hoàn toàn trên ONOS.
  3. Kịch bản 3: Kích hoạt hệ thống toàn diện (MTD + Snort + Honeypot + ELK):
    • Ngay khi Nmap scan vượt ngưỡng rule của Snort, Snort kích hoạt cảnh báo gửi qua socket. ControlFlow.py lập tức cô lập kẻ tấn công khỏi mạng thật và chuyển hướng toàn bộ traffic sang Host 5 (OpenCanary) và Host 6 (Cowrie).
    • Tin tặc tiến hành truy cập FTP (ftp 10.0.0.5) và SSH (ssh root@10.0.0.6 -p 2222), thực thi các lệnh thăm dò hệ thống giả lập.

Toàn bộ phiên tương tác (Keystrokes, Session log, IP nguồn, mật khẩu dò tìm) được Filebeat đọc từ /data/opencanary.log/var/log/cowrie/cowrie.json, đẩy qua Logstash (Port 5044) vào Elasticsearch (Port 9200) và hiển thị trực quan trên giao diện Kibana Dashboard.

# Cấu hình Filebeat thu thập log bẫy OpenCanary (filebeat.yml)
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data/opencanary.log
output.logstash:
  hosts: ["192.168.1.103:5044"]

# Cấu hình pipeline Logstash tiếp nhận và phân tích (logstash.conf)
input {
  beats {
    port => 5044
  }
}
filter {
  json {
    source => "message"
  }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "honeypot-logs-%{+YYYY.MM.dd}"
  }
}

Kết quả đạt được

Các số liệu thực nghiệm đo lường hiệu năng và độ trễ được thống kê chi tiết:

Tham số đo lường Trạng thái không có MTD Trạng thái kích hoạt MTD Mức độ chênh lệch / Ý nghĩa
Thời gian quét mạng Nmap (/24) 4.25 giây Tăng lên > 18.60 giây hoặc Thất bại Kẻ tấn công mất thêm 337.6% thời gian do thông tin sai lệch
Độ trễ Ping trung bình (RTT) 1.12 ms 2.45 ms Tăng ~1.33 ms (chấp nhận được đối với luồng dữ liệu)
Thời gian phát hiện & điều hướng Không có (N/A) ~0.85 - 1.20 giây Thời gian từ khi Snort cảnh báo đến khi ONOS nạp Flow Table mới
Tỷ lệ bảo vệ Host thật 0% (Bị lộ toàn bộ IP) 100% Host thật hoàn toàn vô hình trước các công cụ Reconnaissance
Hiệu suất ghi log của ELK N/A 100% sự kiện bắt giữ Bắt trọn 100% payload tấn công SSH/FTP vào Honeypot

Đổi mới và đóng góp

  1. Cơ chế phòng thủ chủ động kép (Dual Proactive-Deceptive Architecture): Đồ án không chỉ dừng lại ở việc áp dụng MTD đơn thuần mà đã giải quyết bài toán cốt lõi: Khi kẻ tấn công phát hiện IP bị thay đổi, chúng sẽ gia tăng tần suất quét. Tại thời điểm này, hệ thống Deception lập tức đón đầu, cung cấp các mục tiêu giả lập sinh động để tiêu hao tài nguyên và thu thập thông tin tình báo đe dọa (Threat Intelligence).
  2. Khai thác tối đa năng lực lập trình của SDN: Ứng dụng mô hình tập trung của ONOS Controller để thực thi việc đổi nhãn gói tin (Header Rewriting) trực tiếp tại phần cứng chuyển tiếp Open vSwitch mà không cần cài đặt agent phức tạp trên từng máy trạm người dùng cuối (End-user host).
  3. Cải thiện vượt bậc hiệu quả phòng thủ: Giảm 100% nguy cơ tấn công trực tiếp vào dải IP dịch vụ thực, tăng chi phí do thám của tin tặc lên gấp nhiều lần, đồng thời duy trì độ khả dụng của mạng với độ trễ phụ gia chỉ ở mức mili-giây.

Ứng dụng thực tế và triển khai

Trường hợp sử dụng thực tế (Real-world Use Cases)

  • Trung tâm dữ liệu đám mây (Cloud Data Centers): Ứng dụng IP Mutation để bảo vệ các cụm máy chủ Database, Authentication Server nhạy cảm trước nguy cơ dò quét mạng nội bộ (Lateral Movement) từ các container bị xâm nhập.
  • Mạng doanh nghiệp và tài chính ngân hàng: Triển khai bẫy Honeypot giả lập các giao thức giao dịch, chuyển hướng lưu lượng nghi vấn vào vùng mạng cách ly để phân tích mã độc chuyên sâu.
  • Hạ tầng mạng 5G Core / Edge Computing: Áp dụng SDN-MTD để ngăn chặn các cuộc tấn công DDoS quy mô lớn nhằm vào các nút mạng phân tán.

Yêu cầu triển khai và Phần cứng khuyến nghị

  • Phần cứng máy chủ: Tối thiểu 16 vCPU, 32GB RAM, 200GB SSD (đáp ứng cho cụm ONOS Cluster, ELK Analytics và mô phỏng 50+ node mạng).
  • Hạ tầng mạng: Hỗ trợ chuẩn OpenFlow v1.3 trở lên hoặc P4 runtime.
  • Hệ điều hành: Linux Kernel 4.15 trở lên hỗ trợ Docker và Open vSwitch Kernel Module.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Chi phí xử lý tại Controller: Khi tần suất đột biến IP ($T$) quá nhỏ (dưới 5 giây) trên quy mô hàng nghìn host, số lượng thông điệp Packet-In và tần suất cập nhật Flow Table gửi đến SDN Controller tăng cao, có thể gây quá tải Control Plane.
  • Quản lý phiên trạng thái kết nối TCP (Stateful Session): Các kết nối duy trì lâu dài (Long-lived TCP connection) đòi hỏi cơ chế đồng bộ bảng trạng thái phức tạp hơn để tránh đứt gãy luồng dữ liệu hợp lệ khi IP đột biến.

Hướng nghiên cứu phát triển

  • Ứng dụng Học tăng cường (Reinforcement Learning) hoặc Lý thuyết trò chơi Stackelberg (Stackelberg Game Theory) để tự động điều chỉnh chu kỳ đột biến IP và vị trí đặt Honeypot dựa trên hành vi thời gian thực của kẻ tấn công.
  • Mở rộng MTD sang các tầng khác trong mô hình OSI: Tầng dịch vụ (Port Hopping), tầng ứng dụng (Software Diversity), tầng máy ảo (VM Migration).
  • Chuyển dịch từ OpenFlow sang ngôn ngữ lập trình mặt phẳng dữ liệu P4 để thực thi việc tráo đổi header trực tiếp trên Data Plane với tốc độ dây (Line-rate speed).

Đối tượng hưởng lợi

  • Sinh viên & Học viên chuyên ngành An toàn thông tin / Mạng máy tính: Tài liệu tham khảo mẫu mực về việc lập trình điều khiển mạng SDN, kỹ thuật Port Mirroring và kiến trúc triển khai Honeypot hoàn chỉnh.
  • Kỹ sư bảo mật mạng (SecOps / SOC Engineers): Nắm bắt phương pháp kết hợp Open vSwitch, Snort NIDS và ELK Stack để xây dựng hệ thống phát hiện và phản ứng tự động (SOAR cơ bản).
  • Doanh nghiệp & Đơn vị phát triển hạ tầng: Có được mô hình khả thi để áp dụng nguyên lý Zero Trust và Moving Target Defense vào bảo vệ trung tâm dữ liệu với chi phí phần mềm mã nguồn mở tối ưu.
  • Nhà nghiên cứu học thuật: Nền tảng thực nghiệm vững chắc để phát triển các thuật toán tối ưu hóa bề mặt tấn công và mô hình hóa phòng thủ động.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai thử nghiệm hệ thống là gì?

Hệ thống có thể chạy thử nghiệm trên máy tính cá nhân cài đặt ảo hóa (VMware Workstation/VirtualBox) với 3 máy ảo Ubuntu 18.04: Máy ảo 1 (Containernet/Docker/Snort: 4 CPU, 8GB RAM), Máy ảo 2 (ONOS Controller/Python scripts: 4 CPU, 4GB RAM), Máy ảo 3 (ELK Stack: 4 CPU, 4GB RAM).

2. Chu kỳ đột biến IP nên được thiết lập ở mức nào để cân bằng giữa bảo mật và hiệu năng?

Thực nghiệm cho thấy chu kỳ đột biến (period) tối ưu cho các mạng quy mô vừa nằm trong khoảng từ 30 đến 60 giây. Khoảng thời gian này đủ ngắn để vô hiệu hóa hoàn toàn các công cụ quét mạng tự động của tin tặc, đồng thời không gây nghẽn băng thông điều khiển của ONOS Controller.

3. Hệ thống có làm gián đoạn các kết nối mạng của người dùng hợp lệ không?

Không. Nhờ kiến trúc chuyển đổi địa chỉ hai chiều (Ingress translation và Egress translation) được nạp trực tiếp vào Flow Table của Switch, các host người dùng hợp lệ luôn nhận và gửi gói tin trong suốt qua địa chỉ IP ảo mà không hề nhận biết sự thay đổi bên dưới tầng mạng.

4. Hệ thống cần bảo trì những thành phần nào trong quá trình vận hành?

Cần định kỳ cập nhật tập luật nhận dạng tấn công của Snort (Snort Ruleset), dọn dẹp các chỉ mục log cũ trên Elasticsearch để tối ưu dung lượng ổ cứng, và cập nhật danh sách dịch vụ giả lập trên OpenCanary/Cowrie để bắt kịp các lỗ hổng mới.

5. Chi phí triển khai và thời gian hoàn vốn (ROI) của giải pháp?

Giải pháp được xây dựng hoàn toàn trên nền tảng mã nguồn mở (ONOS, Snort, OpenCanary, Cowrie, ELK Stack, Containernet) nên chi phí bản quyền phần mềm là 0 USD. Doanh nghiệp chỉ đầu tư chi phí hạ tầng máy chủ và nhân sự vận hành, đem lại giá trị bảo vệ tài sản số vượt trội ngay từ tháng đầu tiên vận hành.


Kết luận

Đồ án tốt nghiệp "Cơ chế triển khai bẫy và phòng thủ di chuyển mục tiêu giảm thiểu tấn công trong mạng khả lập trình" đã chứng minh tính khả thi và hiệu quả vượt bậc của chiến lược an ninh mạng chủ động. Bằng cách kết hợp linh hoạt giữa kỹ thuật Đột biến IP (MTD), Mạng lừa dối (Cyber Deception), Giám sát xâm nhập (Snort) và Phân tích nhật ký tập trung (ELK Stack) trên nền tảng SDN/ONOS, hệ thống đã tước bỏ hoàn toàn lợi thế bất đối xứng của tin tặc trong giai đoạn do thám, bảo vệ an toàn tuyệt đối cho hạ tầng mạng. Đây là tiền đề khoa học và kỹ thuật vững chắc để tiếp tục mở rộng nghiên cứu sang các kiến trúc mạng thế hệ mới, đáp ứng các tiêu chuẩn bảo mật khắt khe trong kỷ nguyên số.