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

Trong bối cảnh số hóa và sự phát triển của Internet vạn vật (Internet of Things - IoT), các thiết bị từ đồ dùng gia dụng cho đến hệ thống sản xuất công nghiệp đều được kết nối vào mạng viễn thông. Xu hướng này tạo ra môi trường thuận tiện nhưng đồng thời cũng mở ra nhiều nguy cơ an ninh mạng nghiêm trọng. Các hệ thống IoT có nguy cơ trở thành mục tiêu tấn công từ xa nhằm chiếm quyền kiểm soát, đe dọa sự riêng tư và an toàn dữ liệu của các tổ chức, cá nhân. Dữ liệu trong các lĩnh vực như tài chính, y tế và chính trị đòi hỏi mức độ bảo vệ nghiêm ngặt do rủi ro thất thoát thông tin gây ra những tổn thất lớn về kinh tế và uy tín.

Nhằm đối phó với các thách thức an ninh, việc phân tích lưu lượng mạng để nhận diện sớm các cuộc tấn công như từ chối dịch vụ (DoS), tấn công từ xa hoặc mã độc đóng vai trò thiết yếu. Đề tài bài tập lớn học phần Mạng máy tính với tên gọi "Phân tích gói tin TCP/IP sử dụng phần mềm Wireshark" được nhóm sinh viên Lớp K13 DC CNTT 13.6 thuộc Trường Đại học Công nghệ Đông Á thực hiện tại Bắc Ninh vào tháng 10 năm 2023.

Nhiệm vụ nghiên cứu của đề tài bao gồm các nội dung sau:

  1. Tìm hiểu tổng quan về an ninh mạng, kiến trúc bộ giao thức TCP/IP và cấu trúc gói tin IP.
  2. Khảo sát nguyên lý hoạt động, các tính năng chuyên sâu và cơ chế phân tích của phần mềm Wireshark.
  3. Thực hiện cài đặt, thiết lập và sử dụng Wireshark để thu thập, phân tích thực tế các giao thức mạng phổ biến gồm DNS, DHCP, ICMP, Ethernet, ARP và IP.
  4. Đánh giá các nguy cơ tấn công và đề xuất các biện pháp phòng ngừa, ngăn chặn việc khai thác lỗ hổng bảo mật trên từng giao thức mạng đã nghiên cứu.

Đối tượng nghiên cứu của báo cáo là mô hình truyền thông TCP/IP, cấu trúc các tầng giao thức, các gói tin dữ liệu và công cụ phân tích lưu lượng mạng Wireshark. Phạm vi nghiên cứu giới hạn trong môi trường mạng thử nghiệm máy trạm với việc bắt và mổ xẻ các gói tin truyền qua giao diện card mạng không dây (Wi-Fi: en0).

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

Đề tài vận dụng khung lý thuyết của mô hình TCP/IP tiêu chuẩn gồm 4 tầng chức năng:

  • Tầng Ứng dụng (Application Layer): Cung cấp các phương thức trao đổi dữ liệu chuẩn hóa giữa các ứng dụng và dịch vụ mạng như HTTP, HTTPS, FTP, DNS, DHCP, POP3, SMTP, SNMP.
  • Tầng Giao vận (Transport Layer): Đảm bảo việc duy trì thông tin liên lạc end-to-end trên toàn mạng thông qua hai giao thức cốt lõi là TCP (đảm bảo truyền dữ liệu tin cậy, kiểm soát luồng, ghép kênh) và UDP (tập trung vào tốc độ truyền tải gói tin nhanh chóng).
  • Tầng Mạng/Internet (Internet Layer): Xử lý việc định tuyến, vận chuyển các gói tin (packet) qua các mạng độc lập với hai giao thức chính là IP (quản lý việc xác định địa chỉ và định tuyến) và ICMP (báo cáo thông báo lỗi và kiểm tra trạng thái mạng).
  • Tầng Vật lý/Liên kết dữ liệu (Physical / Data Link Layer): Đại diện cho các phương tiện truyền dẫn vật lý (cáp, sóng vô tuyến), chịu trách nhiệm truyền dữ liệu bit và khung dữ liệu (Frame) với các giao thức như Ethernet và ARP.

Về cấu trúc dữ liệu, đề tài nghiên cứu chi tiết 14 thành phần trong Header của gói tin IP (IPv4):

Trường thông tin Kích thước Chức năng kỹ thuật
VERS 4 bit Xác định phiên bản IP đang sử dụng (ví dụ IPv4).
Service Type 8 bit Đánh dấu dữ liệu phục vụ quản lý chất lượng dịch vụ QoS (Precedence, Delay, Throughput, Reliability).
Total Length 16 bit Độ dài toàn bộ gói tin IP (bao gồm Header và Data), tính theo đơn vị byte.
Identification 16 bit Định danh duy nhất cho Datagram để hỗ trợ việc tái hợp khi gói tin bị phân mảnh.
Flags 3 bit Điều khiển phân đoạn: Bit 0 (Reserved), Bit 1 (DF - Don't Fragment), Bit 2 (MF - More Fragments).
Fragment Offset 13 bit Chỉ vị trí của đoạn phân mảnh trong IP Datagram tính theo khối 64 bit (8 byte).
Time to Live (TTL) 8 bit Giới hạn thời gian tồn tại của gói tin để chống hiện tượng loop trên bộ định tuyến (giảm 1 qua mỗi router).
Protocol 8 bit Nhận dạng giao thức tầng trên được đóng gói trong Data (TCP, UDP, ICMP...).
Header Checksum 8 bit Kiểm tra lỗi tính toàn vẹn của phần IP Header.
Source Address 32 bit Địa chỉ IP của thiết bị nguồn gửi gói tin.
Destination Address 32 bit Địa chỉ IP của thiết bị đích nhận gói tin.
Option & Padding Thay đổi Trường tùy chọn mở rộng tính năng và phần đệm để đảm bảo Header là bội số của 32 bit.
Data Tối đa 65.535 B Dữ liệu ứng dụng thực tế được truyền tải.

Phương pháp nghiên cứu được nhóm tác giả sử dụng là phương pháp thực nghiệm thực hành (empirical packet capturing): cài đặt phần mềm Wireshark trên máy tính cá nhân, bật chế độ nhận toàn bộ gói tin (promiscuous mode), tiến hành bắt lưu lượng trên card mạng Wi-Fi và áp dụng các biểu thức lọc (BPF Capture Filter và Display Filter) để trích xuất và đọc thông tin cấu trúc từng tầng giao thức.

Thiết kế và triển khai

Quá trình triển khai thực nghiệm phân tích gói tin bằng phần mềm Wireshark được thực hiện tuần tự qua các giai đoạn kỹ thuật:

  1. Cài đặt và thiết lập môi trường: Phần mềm Wireshark được tải về từ trang chủ chính thức, cài đặt trên máy trạm và cấp quyền hoạt động trên các giao diện mạng kết nối (Ethernet, Wireless, Bluetooth).
  2. Cơ chế thu thập gói tin: Kích hoạt chế độ promiscuous mode trên giao diện mạng (Wi-Fi: en0) nhằm ghi lại toàn bộ các gói tin vào và ra qua bộ chuyển đổi mạng trong thời gian thực.
  3. Áp dụng bộ lọc thu thập (Capture Filters): Sử dụng cú pháp của Berkeley Packet Filter (BPF) kết hợp các toán tử logic (AND, OR, NOT) và các thành phần qualifier (Type, Dir, Proto) nhằm giảm tải dung lượng bắt gói tin trên đường truyền lưu lượng cao.
  4. Phân tích chi tiết và tái cấu trúc luồng (Display Filters & Follow TCP Stream): Sau khi bắt gói tin, các bộ lọc hiển thị được áp dụng trên thanh Filter Textbox để trích xuất giao thức mục tiêu, đồng thời sử dụng tính năng Follow TCP Stream để xem toàn bộ nội dung hội thoại truyền thông giữa máy khách và máy chủ.

Bảng tổng hợp các biểu thức bộ lọc kỹ thuật tiêu biểu được đề tài kiểm nghiệm:

Loại bộ lọc Biểu thức (Expression) Mục đích phân tích
Capture Filter host 192.1 Bắt toàn bộ lưu lượng liên quan đến địa chỉ IP chỉ định.
Capture Filter port 53 Bắt lưu lượng cổng 53 của giao thức DNS.
Capture Filter port 67 or port 68 Bắt các gói tin DHCP Request/Response.
Capture Filter tcp[13] & 2 == 2 Bắt các gói tin TCP có cờ SYN được thiết lập (phát hiện kết nối/SYN Flood).
Display Filter dns Lọc toàn bộ các gói tin thuộc giao thức phân giải tên miền DNS.
Display Filter dns.dstport == 53 Lọc các gói tin DNS gửi đến cổng đích 53.
Display Filter udp.port == 67 or udp.port == 68 Lọc các gói tin phục vụ cấu hình địa chỉ động DHCP.
Display Filter tcp.window_size == 0 && tcp.reset != 1 Phát hiện tình trạng bộ đệm TCP đầy khiến máy nguồn yêu cầu ngưng gửi dữ liệu.
Display Filter http.response.code == 404 Lọc các phản hồi HTTP có mã trạng thái lỗi không tìm thấy tài nguyên (404 Not Found).

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

CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI

Chương 1 thiết lập tính cấp thiết của đề tài trong bối cảnh các hiểm họa an ninh mạng gia tăng khi các thiết bị IoT kết nối diện rộng. Nhóm tác giả xác định Wireshark là công cụ mã nguồn mở phục vụ việc phát hiện các hành vi bất thường, hỗ trợ ngăn chặn các cuộc tấn công mạng nguy hiểm như DoS hay mã độc, đồng thời phục vụ đắc lực cho công tác đào tạo, gỡ lỗi mạng.

Nội dung phân công công việc cụ thể giữa các thành viên trong Nhóm 04 được công bố chi tiết:

STT Họ và tên sinh viên Nhiệm vụ đảm nhiệm trong đề tài Kết quả thực hiện
1 Hoàng Văn Huy Lên ý tưởng đề tài, phân tích bài toán; Giới thiệu về Wireshark; Cài đặt và vận hành phần mềm. Hoàn thành đúng tiến độ, đạt yêu cầu
2 Nguyễn Hữu Huy Trình bày nội dung cơ bản về TCP/IP và cấu trúc gói tin IP; Cài đặt và vận hành phần mềm. Hoàn thành đúng tiến độ, đạt yêu cầu
3 Hắc Tiểu Bình Phân tích giao thức IP và Ethernet; Viết phần Kết luận; Cài đặt và vận hành phần mềm. Hoàn thành đúng tiến độ, đạt yêu cầu
4 Nguyễn Hoàng Anh Quốc Phân tích giao thức ARP và DHCP; Thiết kế slide báo cáo PowerPoint; Cài đặt và vận hành phần mềm. Hoàn thành đúng tiến độ, đạt yêu cầu
5 Trần Công Minh Phân tích giao thức DNS và ICMP; Thiết kế slide báo cáo PowerPoint; Cài đặt và vận hành phần mềm. Hoàn thành đúng tiến độ, đạt yêu cầu

CHƯƠNG 2: TỔNG QUAN VỀ WIRESHARK VÀ MÔ HÌNH TCP/IP

Chương 2 trình bày tổng quan lý thuyết về công cụ Wireshark và nền tảng giao thức mạng:

  • Đặc tính và năng lực của Wireshark: Hoạt động trên nhiều nền tảng (Windows, macOS, Linux, OpenBSD, Solaris); hỗ trợ phân tích chuyên sâu hàng trăm giao thức mạng; giải mã (decryption) các giao thức bảo mật như SSL/TLS, WEP, IPsec, SNMPv3, ISAKMP, Kerberos, WPA/WPA2; đọc và ghi dữ liệu trên nhiều định dạng file mở rộng như tcpdump (libpcap), Pcap NG, Cisco Secure IDS iplog, Microsoft Network Monitor...
  • Cơ chế đọc và điều hướng gói tin: Giao diện Packet List hiển thị các thông tin tổng quan (No, Time, Source, Destination, Protocol, Length, Info); giao diện Packet Details phân rã các tầng (Frame, Ethernet, Internet, Transport, Application).
  • Hệ thống mã màu (Coloring rules): Mặc định màu tím nhạt là lưu lượng TCP, xanh lam nhạt là lưu lượng UDP, và màu đen biểu thị gói tin bị lỗi hoặc không phân phối đúng thứ tự.
  • Tính năng tìm kiếm (Find Packet - Ctrl+F): Cho phép tìm kiếm dựa trên Display Filter, giá trị Hex, chuỗi ký tự (String) hoặc biểu thức chính quy (Regex).
  • Bộ giao thức TCP/IP: Trình bày ưu điểm (độc lập hệ điều hành, khả năng mở rộng kiến trúc client-server) cùng các nhược điểm (phức tạp trong quản lý, dễ bị tấn công TCP SYN Flood, thiếu sự phân tách rạch ròi giữa dịch vụ, giao diện và giao thức); chi tiết hóa 4 tầng mạng và 14 trường thông tin của gói tin IP.

CHƯƠNG 3: PHÂN TÍCH GÓI TIN VỚI PHẦN MỀM WIRESHARK

Chương 3 tập trung vào quy trình triển khai thực tế trên phần mềm và phân tích cấu trúc gói tin của từng giao thức cụ thể:

  • Phân tích giao thức DNS (Domain Name System):
    • Quy trình 4 bước bắt gói tin trên giao diện Wi-Fi: en0 với từ khóa lọc DNS.
    • Cấu trúc gói tin DNS thu thập gồm 4 phần chính: Header (chứa ID, Question Count, Answer Count), Answer Section (chứa thông tin phản hồi: tên miền, IP, TTL), Authority Section (chứa thông tin về máy chủ DNS có thẩm quyền), Additional Section (chứa thông tin bổ sung).
    • Cú pháp bộ lọc DNS: Lọc theo địa chỉ nguồn/đích (dns.src == [IP], dns.dst == [IP]), lọc theo cổng nguồn/đích (dns.srcport == [port], dns.dstport == 53).
    • Biện pháp phòng chống tấn công DNS: Cập nhật bản vá máy chủ; cấu hình tường lửa; triển khai chuẩn DNSSEC để chống đầu độc bộ nhớ đệm (DNS cache poisoning); giới hạn truy vấn ngoài; thiết lập DNS Response Rate Limiting (RRL) để giảm thiểu tấn công DDoS; áp dụng DNS Sinkholing hoặc DNS Firewall.
  • Phân tích các giao thức DHCP, ICMP, Ethernet, ARP và IP:
    • Mô tả nguyên lý cấu hình động IP của DHCP qua cổng UDP 67/68 và phương thức bắt gói.
    • Phân tích cơ chế thông báo lỗi của ICMP và giải pháp ngăn ngừa lạm dụng ICMP.
    • Kiểm tra trường địa chỉ MAC trên khung Ethernet và cơ chế phân giải địa chỉ IP sang MAC của giao thức ARP.
    • Mổ xẻ chi tiết gói tin IP thực tế theo các lớp của mô hình mạng.

CHƯƠNG 4: KẾT LUẬN

Chương 4 đúc kết các kết quả đạt được về mặt thực nghiệm và đề ra định hướng phát triển:

  • Hoàn thành việc khảo sát kiến trúc mạng TCP/IP và cấu hình phần mềm phân tích mã nguồn mở Wireshark.
  • Thực hiện thành công việc trích xuất và giải mã các trường dữ liệu cốt lõi trong các gói tin DNS, DHCP, ICMP, Ethernet, ARP, IP.
  • Đề xuất các nhóm biện pháp kỹ thuật nhằm tăng cường bảo mật cho các dịch vụ mạng tương ứng.

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

Văn bản báo cáo đạt được các kết quả cụ thể:

  • Xây dựng cẩm nang kỹ thuật về bộ lọc Wireshark: Tổng hợp và kiểm chứng thực tế hơn 25 biểu thức bộ lọc (cả Capture Filter BPF và Display Filter) phục vụ việc giám sát mạng, bắt đúng các luồng thông tin theo địa chỉ IP, cổng dịch vụ, cờ TCP và mã trạng thái giao thức.
  • Mô tả cấu trúc gói tin trực quan: Bóc tách thành công cấu trúc chi tiết của IP Header (14 trường kỹ thuật) và các trường chuyên biệt của giao thức DNS (ID, các phần Question, Answer, Authority, Additional).
  • Hệ thống hóa các giải pháp bảo mật giao thức: Đưa ra các giải pháp khả thi trong thực tế nhằm hạn chế các cuộc tấn công mạng:
    • Giao thức DNS: Triển khai ký số DNSSEC, giới hạn tốc độ phản hồi DNS RRL, áp dụng kỹ thuật DNS Sinkholing / DNS Firewall để chuyển hướng truy vấn độc hại.
    • Mô hình TCP/IP: Nhận diện nguy cơ tấn công SYN Flood và các vấn đề tắc nghẽn thông qua việc phân tích cờ điều khiển và trường kích thước cửa sổ (tcp.window_size == 0).

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

Theo nội dung trình bày và phạm vi thực hiện của bài tập lớn:

  • Hạn chế: Quá trình thực nghiệm bắt gói tin chỉ được thực hiện trên môi trường máy trạm cá nhân thông qua card mạng không dây (Wi-Fi: en0) ở quy mô mạng LAN nhỏ; chưa thực hiện mô phỏng các đợt tấn công an ninh mạng diện rộng trong các môi trường mạng doanh nghiệp phức tạp.
  • Hướng nghiên cứu tiếp: Mở rộng nghiên cứu sang việc tự động hóa giám sát lưu lượng mạng bằng công cụ dòng lệnh tshark; phân tích chuyên sâu các giao thức mã hóa thế hệ mới và tích hợp Wireshark vào hệ thống phát hiện xâm nhập (IDS/IPS) toàn diện.

Giá trị tham khảo

Báo cáo bài tập lớn là tài liệu tham khảo phù hợp cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, An toàn thông tin, Kỹ thuật mạng đang học tập học phần Mạng máy tính hoặc Thực hành an ninh mạng.
  • Kỹ sư quản trị mạng sơ cấp cần tài liệu tra cứu nhanh về cú pháp bộ lọc (Filter Expressions) của Wireshark và ý nghĩa các trường dữ liệu trong tiêu đề gói tin IP/DNS.
  • Các nội dung có giá trị tham khảo cao nhất gồm: Bảng tổng hợp cú pháp BPF Capture Filter và Display Filter; quy trình 4 bước bắt và mổ xẻ gói tin mạng; danh mục các biện pháp bảo vệ giao thức DNS chống khai thác.

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

1. Quy tắc hiển thị mã màu mặc định trong phần mềm Wireshark quy định như thế nào?
Theo mặc định của Wireshark: màu tím nhạt đại diện cho lưu lượng giao thức TCP; màu xanh lam nhạt đại diện cho lưu lượng giao thức UDP; và màu đen biểu thị các gói tin gặp sự cố hoặc bị lỗi (chẳng hạn gói tin không được phân phối theo đúng thứ tự).

2. Tiêu đề (Header) của gói tin DNS bao gồm những trường thông tin quan trọng nào?
Header của gói tin DNS chứa các thông tin cơ bản: trường mã nhận dạng duy nhất (ID), số lượng câu hỏi được đặt ra trong gói tin (Question Count) và số lượng câu trả lời được trả về (Answer Count).

3. Để lọc các gói tin DNS có cổng đích 53 trong Display Filter của Wireshark, cần sử dụng cú pháp gì?
Biểu thức lọc hiển thị tương ứng trong Wireshark là: dns.dstport == 53.

4. Báo cáo đề xuất các giải pháp kỹ thuật nào để ngăn chặn việc khai thác lỗ hổng qua giao thức DNS?
Nhóm tác giả đề xuất 6 biện pháp: (1) Cập nhật và vá lỗi bảo mật máy chủ DNS; (2) Sử dụng tường lửa và giám sát lưu lượng DNS; (3) Triển khai tiện ích mở rộng DNSSEC; (4) Giới hạn nhận truy vấn DNS từ các nguồn bên ngoài; (5) Cấu hình cơ chế giới hạn tốc độ phản hồi DNS Response Rate Limiting (RRL) để chống DDoS; (6) Triển khai kỹ thuật DNS Sinkholing hoặc DNS Firewall.

5. Trong cấu trúc gói tin IP, trường Flags (3 bit) và Time to Live (TTL) đảm nhiệm chức năng gì?
Trường Flags (3 bit) dùng để điều khiển phân đoạn gói tin gồm bit DF (DF=1: không phân đoạn, DF=0: có phân đoạn) và bit MF (MF=0: đoạn cuối cùng, MF=1: còn đoạn tiếp theo). Trường TTL (8 bit) dùng để chống lặp vô tận (loop) gói tin trên mạng khi có lỗi định tuyến bằng cách giảm 1 đơn vị qua mỗi router và hủy gói tin khi giá trị bằng 0.

Kết luận

Bài tập lớn "Phân tích gói tin TCP/IP sử dụng phần mềm Wireshark" của nhóm sinh viên Trường Đại học Công nghệ Đông Á đã hệ thống hóa đầy đủ cơ sở lý thuyết về mô hình mạng 4 tầng và cấu trúc gói tin IP. Thông qua việc ứng dụng công cụ Wireshark trên môi trường thực nghiệm, đề tài đã làm rõ cơ chế truyền thông, giải mã cấu trúc dữ liệu của các giao thức DNS, DHCP, ICMP, ARP, Ethernet và IP. Báo cáo đồng thời cung cấp hệ thống bộ lọc thực hành hữu ích và đề xuất các giải pháp kỹ thuật phòng chống tấn công mạng, mang lại giá trị thực tiễn cho việc nghiên cứu và học tập môn Mạng máy tính.