Giao thức ARP là gì ?
Như chúng ta đã biết, trong mạng LAN có 2 loại địa chỉ vô cùng quen thuộc là: Địa chỉ MAC và địa chỉ IP. Giao thức ARP làm nhiệm vụ phân giải địa chỉ IP và MAC, cho phép các thiết bị tự nhận dạng lẫn nhau trong mạng.
Về mặt nguyên lý, giao thức ARP cho phép liên kết địa chỉ MAC với một địa chỉ IP. Mỗi thiết bị trong mạng sẽ tự lưu giữ bảng địa chỉ IP-MAC của riêng nó.
Ví dụ trên Windows có thể xem dễ dàng qua câu lệnh arp -a
Khi các thiết bị muốn giao tiếp với một thiết bị khác, chúng sẽ gửi một gói tin quảng bá tới toàn bộ mạng để tìm kiếm thiết bị cụ thể. Lúc này các thiết bị có thể sử dụng giao thức ARP để tìm địa chỉ MAC (đây là thông tin vật lý) của một thiết bị để liên lạc.
ARP hoạt động như thế nào?
Mỗi thiết bị trong mạng đều có một bộ nhớ đệm. Với giao thức ARP, bộ nhớ đệm này lưu trữ thông tin IP / MAC của các thiết bị khác trên mạng.
Để ánh xạ hai định danh này với nhau (địa chỉ IP và địa chỉ MAC), giao thức ARP sẽ gửi hai loại thông báo:
ARP Request
ARP Reply
Khi một yêu cầu ARP được gửi đi, một gói tin sẽ được gửi quảng bá đến mọi thiết bị khác được tìm thấy trên mạng, Đại khái nó sẽ hỏi ông nào có địa chỉ IP là 10.1.1.4 như trong ví dụ dưới. Nếu thiết bị có địa chỉ IP khớp, một phản hồi ARP kèm theo địa chỉ MAC sẽ được trả lại cho thiết bị ban đầu để xác nhận điều này. Thiết bị ban đầu bây giờ sẽ ghi thông tin này và lưu trữ nó trong bộ nhớ cache của mình (bảng ARP phía trên).
Quá trình này được minh họa trong sơ đồ dưới đây:
ARP poisioning là gì ?
Còn được gọi là ARP spoofing, là một cuộc tấn công Man in the Middle, nó cho phép những kẻ tấn công chặn giao tiếp giữa các thiết bị mạng. Cuộc tấn công sẽ diễn ra như sau:
1. Kẻ tấn công phải nằm trong cùng mạng. Chúng sẽ thực hiện quét mạng để tìm địa chỉ IP của ít nhất hai thiết bị — giả sử như máy của Bob và Mary dưới đây.
2. Kẻ tấn công sử dụng một tool để giả mạo, ví dụ như Arpspoof hoặc Driftnet, để gửi phản hồi các thông tin ARP giả mạo.
3. Các phản hồi giả mạo kèm thông tin địa chỉ MAC cho cả hai địa chỉ IP, (máy của Bob và Mary), là địa chỉ MAC của kẻ tấn công. Điều này đánh lừa cả 2 máy tính kết nối với máy của kẻ tấn công, thay vì kết nối với nhau.
4. Hai thiết bị cập nhật các mục bộ nhớ cache ARP của chúng và từ thời điểm đó trở đi, chúng sẽ giao tiếp với kẻ tấn công thay vì trực tiếp với nhau.
5. Kẻ tấn công đứng ở giữa và thu nhận mọi liên lạc.
Ứng dụng của ARP poisoning
Trước đây có một công cụ rất hề hước. Chỉ cần mở phần mềm lên rồi chọn đối tượng đáng ghét và nhấn Cut off một cái, lập tức, mạng của đối phương bị mất. Khá là khó chịu nhỉ.
Netcut có cơ chế hoạt động khá đơn giản: gửi các gói ARP spoofing đến máy đối tượng liên tục để cắt mạng và máy này sẽ nhận được các thông báo “No internet access” ở phần Network notification. Đơn giản là khi đó, nạn nhân thay vì gửi gói tin ra gateway thì gói tin lại bay đi đâu đó. Nhớ lại ngày đó xài trò này trong quán net vui thật ấy.
Trước đây, các phần mềm tường lửa trên máy tính vẫn chưa phát hiện được các cuộc tấn công ARP, tuy nhiên, có thể sử dụng XArp, một công cụ phần mềm miễn phí có thể phát hiện giả mạo ARP. Khi chạy XArp, chúng ta sẽ được thông báo ngay lập tức khi nó phát hiện ra một cuộc tấn công giả mạo ARP bao gồm cả cuộc tấn công từ NetCut. Ảnh chụp màn hình bên dưới cho thấy XArp đang chạy mà không có các cuộc tấn công. Lưu ý địa chỉ MAC 00-21-5d-41-16-5a được khoanh đỏ được liên kết với IP 192.168.2.8.
Khi NetCut bắt đầu tấn công IP 192.168.2.8 nhằm cố gắng cắt kết nối Internet, XArp ngay lập tức phát hiện ra nó và hiển thị cửa sổ bật lên cảnh báo với một vài thông báo khác nhau. Thông báo quan trọng nhất sẽ là thông báo báo cáo rằng địa chỉ MAC cho IP 192.168.2.8 đã được thay đổi từ 00-21-5d-41-16-5a thành 03-27-75-49-18-73.
Nếu bạn khởi chạy chương trình XArp từ biểu tượng khay thông báo, bạn sẽ thấy rằng địa chỉ MAC cho IP 192.168.2.8 đã được thay đổi thành 03-27-75-49-18-73, điều này rõ ràng là sai.
Hiện nay thì khá nhiều antivirus software đã có thể phát hiện được các cuộc tấn công kiểu này.