Kiểu tấn công smurf attack diễn ra khi một host gửi một số lượng lớn gói tin ICMP Echo request với vài địa chỉ IP nhập nhằng trong phần địa chỉ nguồn của gói tin. Địa chỉ đích sẽ là địa chỉ subnet broadcast hoặc còn gọi là directed broadcast.
Router sẽ truyền các gói tin này dựa trên việc so sánh trong bảng định tuyến cho đến khi nào gói tin qua được cổng của router kết nối vào mạng đích. Router sau đó sẽ truyền gói tin vào trong LAN như là LAN broadcast, gửi một bản copy cho tất cả các host. Xem hình vẽ bên dưới.
Trong hình trên, kẻ tấn công gửi gói tin về địa chỉ directed-broadcast, địa chỉ nguồn của gói tin là 1.1.1.1 (cho một đợt tấn cống phụ). R1 khi nhận được gói tin, kiểm tra địa chỉ đích và sẽ truyền gói tin vào trong LAN như là LAN broadcast. R1 trả lời với thông điệp ICMP echo reply với gói tin gửi trả về 1.1.1.2.
Một đặc điểm khác của smurf attack là địa chỉ nguồn IP của gói tin được gửi từ máy tấn công là địa chỉ IP của máy bị tấn công. Ví dụ trong hình trên, nhiều host sẽ nhận gói tin ICMP Echo request ở bước 2. Sau đó các host này trả lời lại với Echo reply về địa chỉ 10.1.1.2 – là địa chỉ nguồn của gói tin ICMP Echo ở bước 1. Kết quả là máy 10.1.1.2 sẽ bị nhận một số lượng rất lớn các gói tin.
Có vài giải pháp cho vấn đề. Đầu tiên là, nếu dùng Cisco IOS 12.0, đặt lệnh no ip directed-broadcast trong cổng của router, giúp ngăn ngừa router truyền traffic vào trong LAN (chặn bước 2).
Ngoài ra, dùng phép kiểm tra reverse-path-forwarding (RPF check) bằng cách dùng lệnh ip verify unicast source reachable-via {rx | any} [allow-default] [allowself-ping][list] ở chế độ interface. Lệnh này có hai tác dụng:
Kiểm tra RPF chặt chẽ: Dùng từ khóa rx routers sẽ kiểm tra nếu một route được so trùng trong bảng định tuyến dùng một cổng đi ra (outgoing interface) mà cổng này đúng bằng cổng nhận gói tin. Nếu không trùng, gói tin bị loại bỏ.
Kiểm tra RPF lỏng lẻo: Dùng từ khóa any, router sẽ kiểm tra bất kỳ route nào có thể được dùng để đến được nguồn của gói tin IP.
Lệnh này cũng có thể bỏ qua các tuyến đuờng mặc định default-route khi nó thực hiện kiểm tra (mặc định) hoặc dùng default route khi kiểm tra bằng cách dùng từ khóa allow-default. Có nghĩa là, trong cơ chế kiểm tra lỏng, chỉ cần có một tuyến đường (kể cả tuyến mặc định default route) đến được nguồn của gói tin thì gói tin đó được router xem là hợp lệ.
Ngoài ra, mặc dù không được khuyến cáo lệnh này có thể kích hoạt lệnh ping về địa chỉ nguồn để kiểm tra kết nối. Cuối cùng, những địa chỉ mà RPF kiểm tra có thể được giới hạn bởi một ACL.
Ví dụ trong hình trên, nếu R1 dùng kiểm tra RPF theo kiểu chặt chẽ, nó sẽ lưu ý rằng đường đi của nó để đến 1.1.1.2 (là nguồn của gói tin ở bước 1) không chỉ đến cổng s0/0 như cổng ra, vì vậy gói tin sẽ bị drop. Nếu dùng kiểm tra RPF lỏng lẻo, R1 sẽ tìm thấy một route kết nối trực tiếp đúng bằng 1.1.1.2. Vì vậy router sẽ cho phép gói tin đi qua.
Sau cùng, giả sử rằng AS1 sẽ không bao giờ nhận được gói tin với địa chỉ nguồn 1.0.0.0, R1 có thể dùng một inbound ACL để loại bỏ bất kỳ gói tin nào đến từ 1.0.0.0/8 khi nó đi vào s0/0 từ Internet.
Hai web site trên mạng có chức năng tìm ra các web đang bị nguy cơ tấn công kiểu smurf attack là http://www.netscan.org và http://www.powertech.no/smurf/.
• Một biến thể của smurf attack là fraggle, trong đó dùng UDP thay cho dùng ICMP. Kiểu tấn công này dùng hai chương trình là CHARGEN và ECHO UDP, chạy tương ứng trên UDP port 19 và 7. Cả hai ứng dụng này được thiết kế để hoạt động giống như ICMP ping và nó được thiết kế để trả lời những yêu cầu từ các máy khác về sự tồn tại của nó. Ta có thể dùng cùng một cách phòng chống trong smurf attack.