Chào mừng các bạn đến với Series Giải phẫu Mạng (Network Anatomy) & Packet Analysis! Nếu trong series trước, chúng ta đã trở thành những “bác sĩ pháp y” mổ xẻ nội tạng của hệ điều hành Windows, thì ở series này, chúng ta sẽ bước ra không gian bên ngoài: Hệ thống Mạng. Đối với một SOC Analyst, nếu bạn không biết cách đọc một gói tin (Packet), bạn sẽ bị mù hoàn toàn trước các cuộc tấn công nhắm vào máy chủ. Hãy cùng khởi động bằng việc tìm hiểu bộ khung xương sống của vạn vật trên Internet: Mô hình OSI và công cụ Wireshark.
1. Bức tranh toàn cảnh: Mô hình OSI và TCP/IP
Để các thiết bị từ các nhà sản xuất khác nhau (Apple, Lenovo, Cisco…) có thể nói chuyện được với nhau, Tổ chức Tiêu chuẩn hóa Quốc tế đã tạo ra một bộ quy tắc chung gọi là Mô hình OSI (Open Systems Interconnection). Nó chia quá trình mạng phức tạp thành 7 tầng riêng biệt.
Từ trên xuống dưới, 7 tầng này bao gồm:
- Tầng 7 - Application (Ứng dụng): Nơi dữ liệu có ý nghĩa với con người (như giao thức HTTP, DNS, SSH, FTP). Hầu hết các cuộc tấn công hiện đại như SQL Injection đều nhắm vào tầng này.
- Tầng 6 - Presentation (Trình bày): Làm nhiệm vụ thông dịch, nén và đặc biệt là Mã hóa (như SSL/TLS) để bảo mật dữ liệu.
- Tầng 5 - Session (Phiên): Thiết lập, duy trì và quản lý phiên kết nối (Session ID) giữa 2 thiết bị.
- Tầng 4 - Transport (Giao vận): Kiểm soát truyền tải bằng TCP (tin cậy) hoặc UDP (tốc độ). Nó chia dữ liệu thành các đoạn nhỏ và dùng số Cổng (Port) để định tuyến đến đúng ứng dụng.
- Tầng 3 - Network (Mạng): Quản lý địa chỉ logic (IP) và tìm đường đi (Routing) tốt nhất trên môi trường Internet.
- Tầng 2 - Data Link (Liên kết dữ liệu): Quản lý địa chỉ vật lý (MAC) để các thiết bị nói chuyện trực tiếp với nhau trong cùng một mạng LAN.
- Tầng 1 - Physical (Vật lý): Chuyển đổi dữ liệu nhị phân (0 và 1) thành các xung điện, ánh sáng hoặc sóng vô tuyến (Wi-Fi) truyền trên dây cáp vật lý.
Trong thực tế triển khai, người ta thường gộp mô hình này lại cho gọn nhẹ thành Mô hình TCP/IP (4 Lớp): Lớp Ứng dụng (gộp tầng 5,6,7), Lớp Giao vận (tầng 4), Lớp Internet (tầng 3), và Lớp Giao diện mạng (gộp tầng 1,2).

2. Hành trình của một dữ liệu: Đóng gói (Encapsulation)
Khi bạn bấm nút “Gửi” một tin nhắn, dữ liệu không bay thẳng vèo sang máy bên kia. Nó phải trải qua quá trình Đóng gói (Encapsulation) - nghĩa là đi qua mỗi tầng sẽ bị bọc thêm một lớp vỏ (Header) mới.
- Dữ liệu thô (Data): Được sinh ra ở tầng Ứng dụng.
- Segment / Datagram: Xuống Tầng 4, nó được dán thêm Header của TCP hoặc UDP chứa thông tin Cổng (Port).
- Packet (Gói tin): Xuống Tầng 3, nó được bọc thêm IP Header chứa IP Nguồn và IP Đích.
- Frame (Khung): Xuống Tầng 2, nó tiếp tục được dán thêm địa chỉ MAC Nguồn và MAC Đích.
- Bits: Cuối cùng, chiếc card mạng (NIC) biến toàn bộ Frame đó thành các tia điện hoặc sóng Wi-Fi đẩy ra ngoài (Lớp 1).
Khi đến máy nhận, quá trình ngược lại gọi là Mở gói (Decapsulation) sẽ diễn ra: Lột dần từng lớp vỏ từ dưới lên trên để lấy dữ liệu thực.

3. Đặt gói tin lên “bàn mổ” Wireshark
Wireshark chính là kính hiển vi của SOC Analyst. Nó bắt được chính xác cấu trúc đóng gói mà ta vừa học. Khi bạn click vào một gói tin bất kỳ trên Wireshark, giao diện chi tiết ở khung bên dưới sẽ phản ánh đúng thứ tự của mô hình OSI.
Hãy cùng giải phẫu các thành phần cốt lõi của một gói tin:
3.1 Lớp 1 (Physical) - Mục Frame
Đây là các siêu dữ liệu vật lý mà card mạng ghi nhận được:
- Frame Length: Kích thước thực sự của gói tin khi chạy trên dây cáp (ví dụ: 96 bytes (768 bits)).
- Arrival Time: Thời gian chính xác đến từng micro giây mà gói tin chạm vào card mạng.
- Interface id: Tên card mạng đang bắt gói tin (ví dụ: wlp8s0 trên Linux).
- Protocols in frame: Wireshark tóm tắt luôn các lớp vỏ bên trong:
eth:ethertype:ip:tcp:dns(Gói DNS chạy trên TCP, bọc bởi IP và Ethernet).

3.2 Lớp 2 (Data Link) - Mục Ethernet II
Đây là nơi địa chỉ vật lý (MAC Address) làm chủ cuộc chơi:
- Source (Src) & Destination (Dst): Địa chỉ MAC (gồm 48 bit) của máy gửi và máy nhận (thường là Router để đi ra Internet).
- Type: Một ID cực kỳ quan trọng báo hiệu cho card mạng biết lớp vỏ tiếp theo là gì. Nếu là IPv4 (
0x0800), nó sẽ chuyển lên cho giao thức IPv4 xử lý. Nếu là0x86dd, đó là IPv6.

3.3 Lớp 3 (Network) - Mục IPv4
Bóc lớp Ethernet ra, chúng ta thấy bộ định tuyến Internet:
- Source Address & Destination Address: Địa chỉ IP logic của máy gửi và máy đích.
- Time to Live (TTL): “Tuổi thọ” của gói tin. Mỗi khi đi qua một con Router, số này bị trừ đi 1 để tránh gói tin chạy vòng vòng mãi mãi. Nếu thấy TTL = 64, hệ thống nguồn có khả năng cao là chạy nhân Linux.
- Flags: Các lá cờ điều khiển. Ví dụ cờ
0x2, Don't fragmentdặn các thiết bị mạng rằng: “Tuyệt đối không xé nhỏ gói tin này ra”. - Protocol: Giống như Type ở Lớp 2, trường này (ví dụ: TCP (6) hoặc UDP (17)) sẽ ra lệnh cho hệ điều hành biết giao thức Tầng 4 nào sẽ phải xử lý tiếp theo.
- Header Checksum: Dãy mã (như
0xe861) dùng để đảm bảo các thông tin (IP, TTL) không bị hỏng hóc hay thay đổi bit trong quá trình truyền.

3.4 Lớp 4 (Transport) - Transmission Control Protocol (TCP)
Bên trong cùng, chúng ta sẽ thấy cổng giao tiếp và luật chơi:
- Source Port & Destination Port: Ví dụ máy bạn dùng cổng ngẫu nhiên 58610 để gõ cửa cổng HTTPS (443) của Facebook.
- Sequence & Acknowledgment: Các con số giúp TCP sắp xếp lại thứ tự dữ liệu cho đúng và đảm bảo không gói tin nào bị rơi rớt.

3.5 Tầng 5, 6, 7: Nơi “Gói tin” biến mất và nhường chỗ cho “Dữ liệu” (Application Data)
Nếu bạn tinh mắt quan sát trên Wireshark, bạn sẽ thấy sau khi đi qua lớp TCP/UDP (Tầng 4), các lớp phía trên (Tầng 5 - Session, Tầng 6 - Presentation, Tầng 7 - Application) thường không được chia thành các mục riêng biệt rõ ràng như lớp MAC hay lớp IP, mà chúng hòa quyện lại thành một mục gọi là Application Data (như DNS, HTTP, TLS) Quá trình Wireshark “Giải mã” và hiển thị: Khi Wireshark bắt được luồng điện từ card mạng, nó thực hiện quá trình Decapsulation (Mở gói) đi ngược từ dưới lên trên. Nó bóc lớp vỏ Ethernet (Tầng 2) để lấy địa chỉ MAC, bóc tiếp lớp IP (Tầng 3) để lấy địa chỉ IP, và bóc lớp TCP (Tầng 4) để lấy số Port. Khi bóc đến Tầng 4 xong, phần lõi còn lại được đẩy thẳng lên Tầng Ứng dụng (Layer 7). Lúc này:
- Nếu là giao thức không mã hóa (như HTTP, DNS, FTP): Wireshark sẽ “đọc hiểu” và phơi bày trần trụi toàn bộ văn bản, tài khoản, mật khẩu (Clear-text) cho bạn xem.
- Nếu dữ liệu đã đi qua Tầng 6 (Presentation) và bị mã hóa bởi SSL/TLS: Wireshark sẽ gom lại và hiển thị dưới dạng một khối Encrypted Application Data chứa toàn các ký tự rác mà con người (và cả hacker) không thể đọc được

Như vậy, chúng ta đã nắm được “bản đồ kho báu” của mạng máy tính và biết cách sử dụng Wireshark để đọc những lớp vỏ cơ bản nhất. Bất kỳ một công cụ bảo mật nào (Firewall, IDS/IPS) cũng đều dựa trên nguyên lý đọc các lớp Header này để chặn/mở. Ở Bài 2 tiếp theo, chúng ta sẽ lặn sâu hơn vào Tầng 2 & 3, phân tích các giao thức kết nối nền tảng (ARP, ICMP) và trực tiếp đóng vai Hacker để thực hiện đòn tấn công mạo danh MAC (MAC Spoofing). Hẹn gặp lại các bạn!