Trao đổi với tôi

http://www.buidao.com

11/17/09

[Security] Chống tấn công giả mạo ARP!

ARP và nguyên tắc làm việc trong mạng LAN

Như ta đã biết tại tầng Network của mô hình OSI , chúng ta thường sử dụng các loại địa chỉ mang tính chất quy ước như IP, IPX… Các địa chỉ này được phân thành hai phần riêng biệt là phần địa chỉ mạng (NetID) và phần địa chỉ máy ( HostID) . Cách đánh số địa chỉ như vậy nhằm giúp cho việc tìm ra các đường kết nối từ hệ thống mạng này sang hệ thống mạng khác được dễ dàng hơn. Các địa chỉ này có thể được thay đổi theo tùy ý người sử dụng.

Trên thực tế, các card mạng (NIC) chỉ có thể kết nối với nhau theo địa chỉ MAC, địa chỉ cố định và duy nhất của phần cứng. Do vậy ta phải có một cơ chế để chuyển đổi các dạng địa chỉ này qua lại với nhau. Từ đó ta có giao thức phân giải địa chỉ: Address Resolution Protocol (ARP).


Nguyên tắc làm việc của ARP trong một mạng LAN

Khi một thiết bị mạng muốn biết địa chỉ MAC của một thiết bị mạng nào đó mà nó đã biết địa chỉ ở tầng network (IP, IPX…) nó sẽ gửi một ARP request bao gồm địa chỉ MAC address của nó và địa chỉ IP của thiết bị mà nó cần biết MAC address trên toàn bộ một miền broadcast. Mỗi một thiết bị nhận được request này sẽ so sánh địa chỉ IP trong request với địa chỉ tầng network của mình. Nếu trùng địa chỉ thì thiết bị đó phải gửi ngược lại cho thiết bị gửi ARP request một gói tin (trong đó có chứa địa chỉ MAC của mình). Trong một hệ thống mạng đơn giản, ví dụ như PC A muốn gửi gói tin đến PC B và nó chỉ biết được địa chỉ IP của PC B. Khi đó PC A sẽ phải gửi một ARP broadcast cho toàn mạng để hỏi xem "địa chỉ MAC của PC có địa chỉ IP này là gì ?" Khi PC B nhận được broadcast này, nó sẽ so sánh địa chỉ IP trong gói tin này với địa chỉ IP của nó. Nhận thấy địa chỉ đó là địa chỉ của mình, PC B sẽ gửi lại một gói tin cho PC A trong đó có chứa địa chỉ MAC của B. Sau đó PC A mới bắt đầu truyền gói tin cho B.


Nguyên tắc hoạt động của ARP trong môi trường hệ thống mạng:


Hoạt động của ARP trong một môi trường phức tạp hơn đó là hai hệ thống mạng gắn với nhau thông qua một Router C. Máy A thuộc mạng A muốn gửi gói tin đến máy B thuộc mạng B. Do các broadcast không thể truyền qua Router nên khi đó máy A sẽ xem Router C như một cầu nối hay một trung gian (Agent) để truyền dữ liệu. Trước đó, máy A sẽ biết được địa chỉ IP của Router C (địa chỉ Gateway) và biết được rằng để truyền gói tin tới B phải đi qua C. Tất cả các thông tin như vậy sẽ được chứa trong một bảng gọi là bảng định tuyến (routing table). Bảng định tuyến theo cơ chế này được lưu giữ trong mỗi máy. Bảng định tuyến chứa thông tin về các Gateway để truy cập vào một hệ thống mạng nào đó. Ví dụ trong trường hợp trên trong bảng sẽ chỉ ra rằng để đi tới LAN B phải qua port X của Router C. Bảng định tuyến sẽ có chứa địa chỉ IP của port X. Quá trình truyền dữ liệu theo từng bước sau :

· Máy A gửi một ARP request (broadcast) để tìm địa chỉ MAC của port X.

· Router C trả lời, cung cấp cho máy A địa chỉ MAC của port X.

· Máy A truyền gói tin đến port X của Router.

· Router nhận được gói tin từ máy A, chuyển gói tin ra port Y của Router. Trong gói tin có chứa địa chỉ IP của máy B. Router sẽ gửi ARP request để tìm địa chỉ MAC của máy B.

· Máy B sẽ trả lời cho Router biết địa chỉ MAC của mình. Sau khi nhận được địa chỉ MAC của máy B, Router C gửi gói tin của A đến B.

Trên thực tế ngoài dạng bảng định tuyến này người ta còn dùng phương pháp proxyARP, trong đó có một thiết bị đảm nhận nhiệm vụ phân giải địa chỉ cho tất cả các thiết bị khác.Theo đó các máy trạm không cần giữ bảng định tuyến nữa Router C sẽ có nhiệm vụ thực hiện, trả lời tất cả các ARP request của tất cả các máy .


Cấu hình XP/Vista - Win2k3/2k8 chống bị tấn công giả mạo ARP

Khi ta sử dụng Laptop ngoài công cộng, nếu bảo mật không kỹ thì dễ bị hacker lợi dụng kiểu tấn công này để nghe lén (sniff) hoặc cho ta out khỏi mạng (netcut).
Ở đây, chỉ xin nói về kỹ thuật đơn giản là gán ARP tĩnh:

B1: Xác định địa chỉ Defaut Gateway ( hoặc địa chỉ của Router-Modem ADSL)
Start -> Run -> cmd. Gõ ipconfig để xác định


B2: Xác định ARP của mình là tĩnh hay động và địa chỉ IP, địa chỉ MAC của Default Gateway. Nếu là dynamic là động, còn static là tĩnh
Start -> Run -> cmd. Gõ arp -a


B3: Cấu hình ARP tĩnh cho máy của bạn
Trong Windows XP/2003: Start -> Run -> cmd, gõ arp -s ip_của_gateway mac_của_gateway
Vd cho trường hợp trên hình:
Trích:
arp -s 192.168.1.1 00-50-7f-0d-7f-75
Trong WIndows Vista/2008 thì phức tạp hơn 1 chút: Start -> Run -> cmd, gõ netsh -c "interface ipv4" rồi nhấn Enter,
Gõ tiếp set neighbors "tên_card mạng" "ip_của_gateway" "mac_của_gateway"
Vd cho trường hợp trên hình:
Trích:
netsh -c "interface ipv4" ->Enter
set neighbors WIRED 192.168.1.1 00-50-7f-0d-7f-75
*Lưu ý: Nếu như tên card mạng của bạn có khoảng trắng bạn phải để trong dấu " " -> vd
Trích:
set neighbors "Local Area Network" 192.168.1.1 00-50-7f-0d-7f-75

**Nếu các bạn muốn trở về lại dạng ARP dynamic thì làm như sau:
netsh -c "interface ipv4" -> Enter
Gõ tiếp delete neighbors "tên_card mạng"

Link: http://khongtenmien.com/forum/showthread.php?t=1759