ICMP là gì? Công dụng và cách hoạt động của ICMP

ICMP là gì

Bạn có đang thắc mắc ICMP là gì và nó đóng vai trò quan trọng như thế nào trong mạng Internet? Trong bài viết này, tôi sẽ cùng bạn tìm hiểu chi tiết về giao thức ICMP, từ định nghĩa, chức năng cho đến cách nó có thể bị lợi dụng trong các cuộc tấn công DDoS nguy hiểm. 

Với hơn 12 năm kinh nghiệm thực chiến trong lĩnh vực an ninh mạng, đặc biệt là phòng chống DDoS, tôi – Lê Thành Trung, Founder & CEO của Chongddos.net, hy vọng những chia sẻ dưới đây sẽ giúp bạn có cái nhìn rõ ràng và đầy đủ nhất về giao thức quan trọng này.

Dưới đây là phần nội dung bạn yêu cầu, được viết theo các quy tắc và thông tin đã cung cấp:

ICMP là gì?

ICMP (Internet Control Message Protocol) là một giao thức cốt lõi thuộc lớp mạng (network layer protocol) trong bộ giao thức TCP/IP. Giao thức này được các thiết bị mạng, điển hình là bộ định tuyến (router), sử dụng để chẩn đoán và trao đổi thông tin về các vấn đề giao tiếp trong mạng Internet. 

Mục đích chính của ICMP là xác định liệu dữ liệu có đến được đích đến mong muốn một cách kịp thời và chính xác hay không. Do đó, ICMP đóng vai trò thiết yếu trong việc báo cáo lỗi và kiểm thử mạng.

Giao thức ICMP (Internet Control Message Protocol) là một giao thức trong họ các giao thức mạng của Internet Protocol (IP).
Giao thức ICMP (Internet Control Message Protocol) là một giao thức trong họ các giao thức mạng của Internet Protocol (IP).

Công dụng chính của ICMP

ICMP có hai công dụng chính: báo cáo lỗi và hỗ trợ chẩn đoán mạng.

Báo cáo lỗi

Chức năng cơ bản của ICMP là thông báo lỗi. Khi một gói dữ liệu không thể đến đích hoặc gặp sự cố trên đường truyền, ICMP sẽ tạo ra một thông báo lỗi và gửi về thiết bị gửi.

Ví dụ: Nếu một gói dữ liệu có kích thước quá lớn so với khả năng xử lý của một bộ định tuyến trên đường đi, bộ định tuyến đó sẽ từ chối và hủy gói tin. Ngay lập tức, một tin nhắn ICMP sẽ được gửi trở lại nguồn gốc để thông báo về lỗi này. Điều này giúp thiết bị gửi hiểu được vấn đề và điều chỉnh hành vi truyền dữ liệu.

Chẩn đoán mạng

Bên cạnh việc báo cáo lỗi, ICMP còn được ứng dụng rộng rãi trong các tiện ích chẩn đoán mạng phổ biến mà hầu hết người dùng Internet đều biết đến, đó là ping và traceroute.

  • Traceroute: Tiện ích này sử dụng ICMP để hiển thị chi tiết “đường dẫn định tuyến” (routing path) mà một gói tin phải đi qua giữa hai thiết bị trên Internet. Đường dẫn định tuyến bao gồm chuỗi các bộ định tuyến vật lý mà yêu cầu phải đi qua trước khi đến đích. Mỗi chặng đường giữa hai bộ định tuyến được gọi là một “hop”. Traceroute không chỉ hiển thị các hop mà còn báo cáo thời gian cần thiết để đi qua mỗi hop đó. Thông tin này cực kỳ hữu ích trong việc xác định nguyên nhân gây ra độ trễ (delay) hoặc các tắc nghẽn trong mạng.
  • Ping: Đây là một phiên bản đơn giản hơn của traceroute, tập trung vào việc kiểm tra tốc độ kết nối giữa hai thiết bị. Khi bạn sử dụng lệnh ping, một gói dữ liệu nhỏ sẽ được gửi đến đích và thời gian cần thiết để gói tin đó đến đích và quay trở lại nguồn gửi sẽ được báo cáo. Mặc dù ping không cung cấp chi tiết về đường định tuyến hay số hop, nó vẫn là một thước đo cực kỳ hữu ích để đánh giá độ trễ (latency) giữa hai thiết bị. Các thông điệp ICMP echo-request (yêu cầu tiếng vang) và echo-reply (phản hồi tiếng vang) thường được sử dụng cho mục đích thực hiện lệnh ping.

ICMP hoạt động như thế nào?

ICMP có cách thức hoạt động riêng biệt so với các giao thức khác trong mô hình TCP/IP.

Đặc điểm kết nối

Điểm khác biệt quan trọng của ICMP là nó không liên kết trực tiếp với các giao thức lớp vận chuyển như TCP (Transmission Control Protocol) hay UDP (User Datagram Protocol). Điều này làm cho ICMP trở thành một “giao thức không có kết nối” (connectionless protocol). Điều này có nghĩa là một thiết bị có thể gửi một tin nhắn ICMP đến thiết bị khác mà không cần phải thiết lập một kết nối ổn định trước đó, như cách TCP yêu cầu với quá trình “bắt tay ba bước” (TCP handshake). 

Hơn nữa, ICMP cũng không cho phép nhắm mục tiêu vào một cổng cụ thể trên thiết bị đích, điều này khác với TCP và UDP vốn sử dụng số cổng để định danh các ứng dụng trên máy chủ.

Cấu trúc gói tin ICMP

Mỗi gói tin ICMP bao gồm một tiêu đề ICMP nằm ngay sau tiêu đề IP thông thường. Điều đáng chú ý là khi một bộ định tuyến hoặc máy chủ cần gửi một thông báo lỗi thông qua ICMP, phần thân (body) hoặc phần dữ liệu (data section) của gói ICMP đó sẽ luôn chứa một bản sao của tiêu đề IP của chính gói tin đã gây ra lỗi. Điều này giúp thiết bị nhận thông báo lỗi có đầy đủ thông tin về gói tin gốc để chẩn đoán vấn đề một cách chính xác.

Dưới đây là phần nội dung bạn yêu cầu, được viết theo các quy tắc và thông tin đã cung cấp:

ICMP và các cuộc tấn công DDoS

Mặc dù ICMP là một giao thức quan trọng cho việc chẩn đoán và báo cáo lỗi mạng, nó cũng có thể bị kẻ tấn công lợi dụng để thực hiện các cuộc tấn công từ chối dịch vụ phân tán (DDoS), gây ảnh hưởng nghiêm trọng đến hoạt động của hệ thống. Dưới đây là ba hình thức tấn công DDoS phổ biến sử dụng ICMP:

Tấn công tràn ICMP (ICMP Flood Attack hay Ping Flood)

Đây là một trong những hình thức tấn công DDoS đơn giản nhưng hiệu quả. Kẻ tấn công sẽ gửi một lượng lớn các gói tin ICMP echo-request (yêu cầu ping) liên tục và dồn dập đến một thiết bị mục tiêu. Khi nhận được các yêu cầu này, thiết bị mục tiêu buộc phải xử lý từng gói tin và gửi lại phản hồi (ICMP echo-reply). 

Quá trình xử lý và phản hồi hàng loạt gói tin này sẽ tiêu tốn đáng kể tài nguyên tính toán của thiết bị (CPU, băng thông mạng). Kết quả là, thiết bị trở nên quá tải, không thể xử lý các yêu cầu hợp pháp từ người dùng, dẫn đến tình trạng dịch vụ bị gián đoạn hoặc không thể truy cập.

Tấn công Ping chết chóc (Ping of Death Attack)

Trong kiểu tấn công này, kẻ tấn công sẽ gửi một gói tin ping có kích thước lớn hơn mức tối đa cho phép theo chuẩn giao thức. Khi gói tin này được gửi đi, nó thường bị phân mảnh thành nhiều gói nhỏ hơn trong quá trình truyền qua mạng. 

Tuy nhiên, khi các gói phân mảnh này đến được thiết bị mục tiêu và được tập hợp lại thành gói tin gốc có kích thước quá lớn, nó sẽ gây ra tình trạng tràn bộ đệm (buffer overflow). Điều này có thể khiến hệ thống mục tiêu bị đóng băng, khởi động lại hoặc thậm chí là sập. 

Mặc dù đây chủ yếu là một hình thức tấn công mang tính lịch sử và ít có tác dụng với các hệ thống hiện đại, một số thiết bị mạng cũ hơn vẫn có thể dễ bị tổn thương.

Tấn công Smurf (Smurf Attack)

Kỹ thuật tấn công Smurf phức tạp hơn một chút. Kẻ tấn công sẽ gửi một gói tin ICMP echo-request đến một mạng máy tính lớn, nhưng đặc biệt là địa chỉ IP nguồn của gói tin này đã bị giả mạo (spoofed IP address) thành địa chỉ của nạn nhân. 

Các thiết bị trong mạng đó, bao gồm các bộ định tuyến và máy chủ, khi nhận được gói tin này sẽ phản hồi lại bằng cách gửi các gói ICMP echo-reply đến địa chỉ IP nguồn giả mạo (tức là địa chỉ của nạn nhân). 

Do đó, nạn nhân sẽ bị ngập lụt bởi một lượng lớn các gói tin ICMP không mong muốn từ nhiều nguồn khác nhau, gây ra tình trạng từ chối dịch vụ. Tương tự như tấn công Ping of Death, tấn công Smurf cũng chủ yếu chỉ khả thi với các thiết bị hoặc cấu hình mạng cũ.

Tại sao chọn Chống DDoS để bảo vệ hệ thống của bạn?

Là đơn vị hàng đầu tại Việt Nam trong lĩnh vực phòng chống tấn công DDoS, Chống DDoS (chongddos.net) tự hào mang đến các giải pháp toàn diện, chuyên nghiệp và dễ triển khai, giúp doanh nghiệp an tâm trước mọi mối đe dọa an ninh mạng. 

Với kinh nghiệm thực chiến từ hàng trăm dự án, đội ngũ chuyên gia bảo mật có chứng chỉ quốc tế như CISSP, CEH, OSCP và hạ tầng kiểm thử nội bộ hiện đại (lab thực chiến, hệ thống sandbox, hệ thống phân tích lưu lượng 24/7), chúng tôi cam kết giảm downtime trung bình 85% sau khi triển khai giải pháp. 

Thành tựu phục vụ trên 120 dự án doanh nghiệp và thực chiến ứng phó 36 sự cố nghi DDoS chỉ riêng trong năm 2024 đã chứng minh năng lực và độ tin cậy của chúng tôi. Hãy liên hệ ngay với chúng tôi qua Hotline 0909623968 hoặc truy cập website chongddos.net để được tư vấn và bảo vệ hệ thống của bạn 24/7!