Giới thiệu
Trong hầu hết các cuộc tấn công an toàn thông tin, kẻ tấn công thường phải trải qua ba giai đoạn chính:
Trong đó, giai đoạn thu thập thông tin đóng vai trò đặc biệt quan trọng. Kẻ tấn công tìm cách xác định:
Một trong những giả định phổ biến là firewall sẽ che giấu hoàn toàn mạng nội bộ khỏi bên ngoài. Tuy nhiên, kỹ thuật Firewalk cho thấy điều này không phải lúc nào cũng đúng.
Traceroute – Nền tảng của Firewalk
Traceroute là công cụ quen thuộc dùng để xác định các router trung gian trên đường đi từ máy nguồn đến máy đích. Cơ chế của traceroute dựa trên trường TTL (Time To Live) trong IP packet.
Nguyên lý hoạt động:
Thông thường:
Khi firewall chặn traceroute
Nhiều firewall được cấu hình để chặn ICMP và traceroute, nhằm tránh việc lộ topology mạng. Khi đó, traceroute sẽ dừng lại tại firewall và chỉ trả về các thông báo Request timed out.
Kết luận thông thường lúc này là:
👉 Và đây chính là điểm mà Firewalk khai thác.
Firewalking – “Đi bộ” xuyên firewall như thế nào?
Firewall không thể chặn mọi loại lưu lượng, vì nó vẫn phải cho phép một số dịch vụ hợp lệ (ví dụ DNS – UDP 53).
Ý tưởng cốt lõi của Firewalk:
Ví dụ:
Do Firewalk hoạt động ở tầng IP (TTL), nên nó có thể sử dụng:
→ Bất kỳ dịch vụ nào dựa trên các protocol này đều có thể bị “thăm dò”.
Nguy cơ false negative và cách khắc phục
Một vấn đề lớn của firewalking là false negative.
Ví dụ:
👉 Giải pháp của Firewalk là scan toàn bộ các hop trung gian, từ đó:
Nhược điểm:
Firewalk – Công cụ thực thi Firewalking
Tác giả của kỹ thuật Firewalking cũng phát triển công cụ Firewalk như một bản proof-of-concept.
Đặc điểm chính:
Hạn chế:
Ngoài Firewalk, công cụ hping2 cũng hỗ trợ kỹ thuật firewalking ở mức độ nhất định.
Vì sao Firewalk nguy hiểm?
Một trong những điểm đáng lo ngại nhất là:
Điều này đồng nghĩa với việc:
Biện pháp phòng thủ
Firewalking có thể bị hạn chế bằng cách:
Quan trọng nhất:
Kết luận
Firewalk cho thấy rằng firewall không đảm bảo che giấu hoàn toàn hệ thống nội bộ. Một attacker có kiến thức và kiên nhẫn vẫn có thể suy ra:
Chiến lược an toàn hiệu quả phải là phòng thủ nhiều lớp, trong đó:
Firewalk là một minh chứng rõ ràng rằng:
👉 Đặt niềm tin tuyệt đối vào một cơ chế bảo mật duy nhất là một sai lầm.
Trong hầu hết các cuộc tấn công an toàn thông tin, kẻ tấn công thường phải trải qua ba giai đoạn chính:
- Thu thập thông tin (Information Gathering)
- Khai thác (Exploitation)
- Che giấu & duy trì truy cập (Post-exploitation / Metastasis)
Trong đó, giai đoạn thu thập thông tin đóng vai trò đặc biệt quan trọng. Kẻ tấn công tìm cách xác định:
- Các host “đáng chú ý” trong hệ thống
- Những dịch vụ đang được mở
- Kiến trúc mạng và cơ chế kiểm soát truy cập
Một trong những giả định phổ biến là firewall sẽ che giấu hoàn toàn mạng nội bộ khỏi bên ngoài. Tuy nhiên, kỹ thuật Firewalk cho thấy điều này không phải lúc nào cũng đúng.
Traceroute – Nền tảng của Firewalk
Traceroute là công cụ quen thuộc dùng để xác định các router trung gian trên đường đi từ máy nguồn đến máy đích. Cơ chế của traceroute dựa trên trường TTL (Time To Live) trong IP packet.
Nguyên lý hoạt động:
- Mỗi router đi qua sẽ giảm TTL đi 1
- Khi TTL = 0, router sẽ drop packet và trả về ICMP “TTL Exceeded in Transit”
- Traceroute lợi dụng cơ chế này để “bắt” từng router lộ diện
Thông thường:
- Windows (tracert) sử dụng ICMP Echo
- Unix/Linux sử dụng UDP datagram (port mặc định 33434 trở lên)
Khi firewall chặn traceroute
Nhiều firewall được cấu hình để chặn ICMP và traceroute, nhằm tránh việc lộ topology mạng. Khi đó, traceroute sẽ dừng lại tại firewall và chỉ trả về các thông báo Request timed out.
Kết luận thông thường lúc này là:
“Không thể biết thêm thông tin gì phía sau firewall”
👉 Và đây chính là điểm mà Firewalk khai thác.
Firewalking – “Đi bộ” xuyên firewall như thế nào?
Firewall không thể chặn mọi loại lưu lượng, vì nó vẫn phải cho phép một số dịch vụ hợp lệ (ví dụ DNS – UDP 53).
Ý tưởng cốt lõi của Firewalk:
- Xác định firewall nằm ở hop nào
- Gửi packet với TTL vừa đủ để tới firewall
- Dùng các loại packet/dịch vụ được phép qua firewall
- Quan sát phản hồi ICMP để suy ra dịch vụ nào được cho phép
Ví dụ:
- Firewall chỉ cho phép DNS (UDP 53)
- Gửi packet UDP port 53 với TTL = firewall + 1
- Nếu nhận được ICMP TTL Exceeded từ hop phía sau → traffic đã đi xuyên firewall
Do Firewalk hoạt động ở tầng IP (TTL), nên nó có thể sử dụng:
- UDP
- TCP
- ICMP
→ Bất kỳ dịch vụ nào dựa trên các protocol này đều có thể bị “thăm dò”.
Nguy cơ false negative và cách khắc phục
Một vấn đề lớn của firewalking là false negative.
Ví dụ:
- Firewall 1 chặn port 23
- Firewall 2 cho phép port 23
- Nếu chỉ scan từ Firewall 2 về phía trong → có thể kết luận sai rằng Firewall 2 chặn port 23
👉 Giải pháp của Firewalk là scan toàn bộ các hop trung gian, từ đó:
- Xác định chính xác firewall nào đang chặn dịch vụ
- Vẽ được Access Control List logic của từng firewall trên đường đi
Nhược điểm:
- Chậm hơn so với việc scan trực tiếp firewall cuối
- Nhưng đổi lại là độ chính xác cao
Firewalk – Công cụ thực thi Firewalking
Tác giả của kỹ thuật Firewalking cũng phát triển công cụ Firewalk như một bản proof-of-concept.
Đặc điểm chính:
- Hỗ trợ Linux
- Có giao diện đồ họa (GTK)
- Scan đầy đủ tất cả hop trung gian
- Cho phép chỉ định port cần kiểm tra
Hạn chế:
- Không giả lập payload dịch vụ thực tế
- Firewall có DPI (Deep Packet Inspection) có thể chặn
- IDS/IPS có thể phát hiện hành vi firewalking
Ngoài Firewalk, công cụ hping2 cũng hỗ trợ kỹ thuật firewalking ở mức độ nhất định.
Vì sao Firewalk nguy hiểm?
Một trong những điểm đáng lo ngại nhất là:
Phần lớn firewall không log traffic trên các port được phép
Điều này đồng nghĩa với việc:
- Kẻ tấn công kiên nhẫn
- Scan chậm, đúng dịch vụ
- Có thể thu thập rất nhiều thông tin nội bộ
- Gần như không để lại dấu vết trong log firewall
Biện pháp phòng thủ
Firewalking có thể bị hạn chế bằng cách:
- Chặn outbound ICMP TTL Exceeded
- Sử dụng NAT để che giấu địa chỉ nội bộ
- Không để firewall lộ vai trò hop trung gian
- Triển khai Defense in Depth
Quan trọng nhất:
Không bao giờ coi firewall là lớp phòng thủ duy nhất
Kết luận
Firewalk cho thấy rằng firewall không đảm bảo che giấu hoàn toàn hệ thống nội bộ. Một attacker có kiến thức và kiên nhẫn vẫn có thể suy ra:
- Dịch vụ nào được cho phép
- Topology mạng phía sau firewall
- Cách ACL đang được thiết kế
Chiến lược an toàn hiệu quả phải là phòng thủ nhiều lớp, trong đó:
- Firewall chỉ là một phần
- Host vẫn cần hardening
- Cần HIDS/IDS/IPS và giám sát liên tục
Firewalk là một minh chứng rõ ràng rằng:
👉 Đặt niềm tin tuyệt đối vào một cơ chế bảo mật duy nhất là một sai lầm.