Trong môi trường mạng cục bộ Ethernet hoặc Wi-Fi dùng chung, các thiết bị dựa vào cơ chế định tuyến động và thông báo cổng mặc định (default gateway) để chuyển tiếp lưu lượng ra mạng diện rộng. Thông thường, máy trạm của người dùng gửi các gói tin đến bộ định tuyến cục bộ, sau đó thiết bị này chuyển tiếp dữ liệu đến đích cuối cùng. Tuy nhiên, kiến trúc IPv4 ban đầu chứa đựng một giao thức điều khiển chẩn đoán được thiết kế từ năm 1981: Giao thức thông điệp điều khiển Internet (ICMP), quy chuẩn trong RFC 792.
Bên trong RFC 792 có thông điệp ICMP Redirect (Loại 5 - Type 5). Ra đời trong giai đoạn mạng máy tính mặc định tin cậy lẫn nhau, cơ chế chuyển hướng này cho phép một router thông báo cho thiết bị đầu cuối rằng đang có một router khác tối ưu hơn để đi đến đích. Khi bị kẻ tấn công cùng kết nối trong mạng LAN lợi dụng, cơ chế này biến thành kỹ thuật tấn công nguy hiểm mang tên đầu độc định tuyến ICMP Redirect (ICMP Route Poisoning).
Cấu trúc nhị phân của thông điệp ICMP Loại 5 theo RFC 792
Khi bộ định tuyến nhận được một gói dữ liệu IP và nhận thấy gói tin này sẽ phải chuyển tiếp ngược ra đúng cổng mạng vật lý vừa tiếp nhận, hệ thống định tuyến sẽ coi đây là một chặng đi chưa tối ưu. Thiết bị gửi ban đầu lẽ ra có thể gửi thẳng đến router kế tiếp mà không cần đi qua trung gian. Do đó, router sẽ gửi ngược lại một gói tin ICMP Redirect về cho máy trạm nguồn.
Cấu trúc nhị phân của gói tin ICMP Redirect bao gồm:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (5) | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gateway Internet Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Internet Header + 64 bits of Original Data Datagram |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Các trường thông tin kỹ thuật chính:
- Trường Type: Mang giá trị số nguyên
5, biểu thị thông điệp chuyển hướng ICMP Redirect. - Trường Code: Xác định phạm vi chuyển hướng:
Code 0: Chuyển hướng lưu lượng cho toàn bộ dải mạng đích.Code 1: Chuyển hướng lưu lượng cho một máy chủ cụ thể (Host Redirect).Code 2: Chuyển hướng theo loại dịch vụ (ToS) và dải mạng.Code 3: Chuyển hướng theo loại dịch vụ và máy chủ cụ thể.
- Gateway Internet Address: Địa chỉ IPv4 (32-bit) của bộ định tuyến kế tiếp mà máy trạm được khuyên chuyển tiếp dữ liệu đến.
- Phần tải trọng: Chứa toàn bộ tiêu đề IPv4 gốc cộng thêm tối thiểu 64 bit (8 byte) đầu tiên của gói dữ liệu ban đầu đã kích hoạt cảnh báo chuyển hướng.
Khi nhân hệ điều hành của máy nhận xử lý thông điệp này, nó đọc 64 bit dữ liệu gốc để đối chiếu với danh sách socket đang hoạt động. Nếu các tham số khớp với một phiên truyền tải thực tế, nhân hệ điều hành sẽ chấp thuận và cập nhật bảng chuyển tiếp lưu lượng (FIB) trong bộ nhớ đệm.
Kịch bản tấn công trung gian Man-in-the-Middle trên mạng nội bộ
Lỗ hổng cốt lõi của RFC 792 nằm ở việc thiếu vắng hoàn toàn cơ chế xác thực mật mã. Mọi máy tính kết nối vào cùng phân đoạn mạng Layer-2 (như mạng Wi-Fi công cộng tại quán cà phê hay mạng nội bộ văn phòng chưa cấu hình Dynamic ARP Inspection) đều có thể giả mạo gói tin ICMP Loại 5.
Quy trình tấn công diễn ra qua ba giai đoạn:
- Giám sát lưu lượng: Kẻ tấn công lắng nghe các gói tin phát trên mạng cục bộ để thu thập tiêu đề kết nối của nạn nhân.
- Tạo gói tin giả mạo: Kẻ tấn công tạo một khung ICMP Loại 5 Mã 1. Trường địa chỉ cổng kế tiếp được trỏ về IP của kẻ tấn công, địa chỉ nguồn giả mạo thành địa chỉ của router thật, đính kèm tiêu đề IP và 8 byte tải trọng mà nạn nhân vừa phát đi.
- Tiêm tuyến đường vào nhân hệ điều hành: Khi máy nạn nhân nhận gói tin, nhân hệ điều hành tưởng rằng chỉ dẫn đến từ router chính thống. Hệ thống lập tức ghi đè một tuyến đường máy chủ cụ thể
/32vào bộ nhớ định tuyến, chuyển toàn bộ lưu lượng tới địa chỉ IP của kẻ tấn công.
| Giai đoạn | Hành động của kẻ tấn công | Phản ứng nhân hệ điều hành nạn nhân | Trạng thái mạng |
|---|---|---|---|
| Thu thập | Bắt gói tin TCP/UDP phát đi | Truyền nhận dữ liệu bình thường | Xác định phiên kết nối đang mở |
| Gửi gói giả | Bơm gói ICMP Loại 5 Mã 1 | Xác minh 64 bit dữ liệu đính kèm | Trùng khớp thông số socket kết nối |
| Đổi bảng route | Khai báo IP máy tấn công làm gateway | Cài tuyến đường động dạng /32 |
Bảng định tuyến cục bộ bị đầu độc |
| Đánh chặn | Thu thập gói tin của nạn nhân | Chuyển tiếp gói tin đến router thật | Chiếm quyền kiểm soát trung gian L3 |
Nguy cơ đối với mạng riêng ảo VPN và rò rỉ lưu lượng
Khi hoạt động trên máy tính, mạng riêng ảo (VPN) tạo ra một giao diện mạng ảo (như wg0 hoặc tun0) và chuyển hướng lưu lượng truy cập qua đường hầm mã hóa. Mặc dù dữ liệu được đóng gói an toàn, kỹ thuật ICMP Redirect vẫn tạo ra các rủi ro đáng kể nếu hệ thống không được cấu hình cô lập chặt chẽ:
1. Đổi hướng máy chủ VPN
Để duy trì đường hầm, ứng dụng VPN buộc phải định tuyến các gói tin UDP mang tải trọng mã hóa qua giao diện mạng vật lý (như wlan0 hoặc eth0) đến cổng mạng cục bộ. Nếu kẻ tấn công phát tán gói tin ICMP Redirect nhắm thẳng vào địa chỉ IP công khai của máy chủ VPN, hệ điều hành có thể bị lừa gửi toàn bộ gói tin đường hầm về máy kẻ tấn công. Tuy không thể giải mã thuật toán ChaCha20-Poly1305, kẻ tấn công vẫn phân tích được tần suất truyền tải, kích thước gói tin hoặc chủ động làm rớt mạng để gây nghẽn dịch vụ.
2. Xuyên thủng đường hầm và rò rỉ dữ liệu
Trong các cấu hình phân tách lưu lượng (split tunneling) hoặc khi phần mềm VPN không quản lý bảng định tuyến bằng chính sách nâng cao, một tuyến đường máy chủ /32 do kẻ tấn công tiêm vào có độ ưu tiên cao hơn các dải mạng rộng (như 0.0.0.0/1). Hậu quả là lưu lượng truy cập đến các dịch vụ nhạy cảm bị đẩy thẳng ra card mạng vật lý dưới dạng văn bản thô, bỏ qua hoàn toàn giao diện VPN được bảo vệ.
Vô hiệu hóa tính năng ICMP Redirect trên hệ điều hành
Do hạ tầng mạng hiện đại đã được tối ưu và không cần các chỉ dẫn chuyển hướng từ trạm phát, việc tắt tiếp nhận thông điệp ICMP Redirect là biện pháp phòng thủ căn bản được khuyến nghị bởi chuẩn RFC 1122.
Cấu hình trên nhân Linux bằng Sysctl
Người dùng có thể kiểm tra trạng thái tiếp nhận thông điệp chuyển hướng hiện tại:
sysctl -a | grep -E "accept_redirects|send_redirects"
Để chặn hoàn toàn các gói tin chuyển hướng trên toàn bộ giao diện mạng, thêm các thông số sau vào tệp cấu hình /etc/sysctl.d/99-disable-icmp-redirects.conf:
# Chặn tiếp nhận ICMP redirect trên tất cả giao diện IPv4
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
# Tắt tính năng tự gửi gói chuyển hướng ICMP
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Chặn tiếp nhận ICMPv6 redirect trên mạng IPv6 (RFC 4861)
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
Áp dụng cấu hình ngay lập tức:
sudo sysctl --system
Thiết lập trên macOS và hệ thống BSD
Trên hệ điều hành macOS hoặc các nhánh BSD, quản trị viên sử dụng lệnh quản lý tham số nhân mạng:
sudo sysctl -w net.inet.icmp.drop_redirect=1
Thiết lập trên hệ điều hành Windows
Trên máy tính Windows, chính sách tiếp nhận ICMP Redirect được quy định trong sổ đăng ký hệ thống (Registry). Quản trị viên có thể vô hiệu hóa bằng công cụ dòng lệnh PowerShell:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "EnableICMPRedirect" -Value 0 -Type DWord
Kiến trúc bảo vệ đa tầng với định tuyến chính sách RiceGuard
Bên cạnh việc thiết lập cấu hình nhân hệ thống, kiến trúc mạng RiceGuard của VPNRice chủ động ngăn chặn triệt để nguy cơ đầu độc định tuyến bằng các giải pháp kỹ thuật chuyên biệt:
- Bảng định tuyến độc lập và gắn nhãn tường lửa (fwmark): Thay vì can thiệp vào bảng định tuyến mặc định của hệ thống, RiceGuard gắn nhãn lưu lượng ứng dụng bằng cờ tường lửa riêng biệt. Cơ sở dữ liệu chính sách định tuyến (
ip rule) chuyển toàn bộ gói tin có nhãn vào bảng định tuyến chuyên dụng51820, hoàn toàn miễn nhiễm với các tuyến đường cục bộ bị tiêm vào bảng chính. - Lọc gói tin tầng mạng vật lý: Hệ thống áp dụng các quy tắc tường lửa
nftablesnhằm loại bỏ ngay lập tức các gói tin ICMP Loại 5 gửi đến giao diện mạng vật lý trước khi nhân hệ điều hành kịp phân tích. - Cơ chế chống phát lại gói tin WireGuard: Bất kỳ nỗ lực can thiệp hay phát lại gói tin mã hóa nào trên đường truyền nội bộ đều bị loại bỏ nhờ khung bảo vệ cửa sổ trượt 64-bit và quá trình bắt tay mật mã Noise IK.
Nhờ sự kết hợp giữa tinh chỉnh nhân hệ điều hành và cơ chế định tuyến chính sách Layer-3 của VPNRice, kết nối mạng của bạn luôn được bảo vệ an toàn trước các cuộc tấn công chuyển hướng và đầu độc định tuyến trên mọi môi trường mạng không đáng tin cậy.



