1. Giao thức điều khiển thông báo Internet (ICMP) là gì?
Giao thức ICMP là một giao thức lớp mạng được các thiết bị mạng sử dụng để phát hiện các sự cố truyền thông mạng. ICMP chủ yếu được sử dụng để xác định dữ liệu có đến đích như dự kiến một cách kịp thời hay không. Thông thường, giao thức ICMP được sử dụng trên các thiết bị mạng, chẳng hạn như bộ định tuyến. ICMP rất quan trọng để báo cáo lỗi và kiểm tra, nhưng nó cũng có thể được sử dụng trong các cuộc tấn công từ chối dịch vụ phân tán (DDoS).
2. ICMP được sử dụng để làm gì?
Mục đích chính của ICMP là để báo cáo lỗi. Khi hai thiết bị kết nối qua Internet, ICMP sẽ tạo ra lỗi để chia sẻ với thiết bị gửi trong trường hợp dữ liệu không đến được đích như dự kiến. Ví dụ, nếu một gói dữ liệu quá lớn đối với một bộ định tuyến, bộ định tuyến sẽ bỏ gói đó và gửi một thông điệp ICMP trở lại nguồn ban đầu để lấy dữ liệu.
Công dụng thứ hai của giao thức ICMP là thực hiện phát hiện mạng; các tiện ích đầu cuối thường được sử dụng traceroute và ping đều hoạt động bằng ICMP. Tiện ích traceroute được sử dụng để hiển thị đường dẫn định tuyến giữa hai thiết bị Internet. Đường dẫn định tuyến là đường dẫn vật lý thực tế của các bộ định tuyến được kết nối mà một yêu cầu phải đi qua trước khi nó đến đích. Quá trình giữa một bộ định tuyến này và một bộ định tuyến khác được gọi là “hop” và một traceroute cũng báo cáo thời gian cần thiết cho mỗi “hop” trên đường đi. Điều này giúp ích cho việc xác định các nguồn gây trễ mạng.
Ping là một phiên bản đơn giản hóa của traceroute. Một ping sẽ kiểm tra tốc độ kết nối giữa hai thiết bị và báo cáo chính xác thời gian một gói dữ liệu đến đích và quay trở lại thiết bị của người gửi. Mặc dù ping không cung cấp dữ liệu về định tuyến hoặc số “hop” nhưng nó vẫn là một số liệu rất hữu ích để đánh giá độ trễ giữa hai thiết bị. Các thông báo ICMP echo-request và echo-reply thường được sử dụng cho mục đích thực hiện ping.
Thật không may các cuộc tấn công mạng có thể khai thác quá trình này, gây gián đoạn như tấn công ICMP flood và ping.
3. ICMP hoạt động như thế nào?
Không giống như giao thức Internet (IP), ICMP không được liên kết với giao thức lớp truyền tải như TCP hoặc UDP. Điều này làm cho ICMP trở thành một giao thức không kết nối: một thiết bị không cần mở kết nối với thiết bị khác trước khi gửi tin nhắn ICMP. Lưu lượng IP thông thường được gửi bằng TCP, có nghĩa là bất kì hai thiết bị nào trao đổi dữ liệu trước tiên sẽ thực hiện TCP để đảm bảo cả hai thiết bị đều sẵn sàng nhận dữ liệu. ICMP không mở kết nối theo cách này. Giao thức ICMP cũng không cho phép nhắm tới một cổng cụ thể trên thiết bị.
4. ICMP được sử dụng như thế nào trong các cuộc tấn công DDoS?
Ping flood hoặc ICMP flood là khi kẻ tấn công cố gắng tấn công một thiết bị bằng các gói yêu cầu phản hồi ICMP. Mục tiêu phải xử lý và trả lời từng gói tin, sử dụng tài nguyên máy tính của nó cho dến khi người dùng không thể nhận được dịch vụ.
Tấn công bằng ping là khi kẻ tấn công gửi một ping lớn hơn kích thước tối đa cho phép của một gói tin đến một máy nào đó, khiến máy bị đóng băng hoặc sập. Gói tin bị phân mảnh trên đường đến mục tiêu của nó, nhưng khi mục tiêu tập hợp lại gói tin thành kích thước vượt quá kích thước tối đa ban đầu của nó, kích thước của gói tin sẽ gây ra tràn. Thiết bị mạng cũ vẫn có thể dễ bị ảnh hưởng bởi nó.
Trong cuộc tấn công Smurf, kẻ tấn công sẽ gửi một gói tin ICMP với địa chỉ IP nguồn giả mạo. Thiếu bị mạng trả lời gói tin, gửi câu trả lời tới IP giả mạo và trở thành nạn nhân trong các gói ICMP không mong muốn. Giống như ping of death, ngày nay tấn công của Smurf chỉ có thể thực hiện được với các thiết bị cũ.
ICMP không phải là giao thức lớp mạng duy nhất được sử dụng trong các cuộc tấn công DDoS lớp 3. Ví dụ, tấn công sử dụng các gói GRE trước đó.
Thông thường, các cuộc tấn công DDoS ở lớp mạng nhắm vào thiết bị và cơ sở hạ tầng mạng, nhắm vào thuộc tính web. Cloudflare Macgic Transit là một cách bảo vệ chống lại các cuộc tấn công DDoS ở lớp mạng.
Hải Yến – PKT VnPro