Lớp thứ hai lớp data-link sử dụng địa chỉ MAC để các thiết bị phần cứng có thể truyền thông với nhau một cách trực tiếp.. ARP thực hiện điều đó thông qua một tiến trình broadcast gói tin
Trang 1ĐH QUỐC GIA TP.HCM
ĐH CÔNG NGHỆ THÔNG TIN
BÁO CÁO LAB SECURITY
ĐỀ TÀI : ARP SPOOFING
Trang 2LỜI NÓI ĐẦU
Giao thức ARP là một giao thức rất cần thiết và quan trọng trong hệ thống mạng của chúng ta ARP thực hiện công việc phân giải địa chỉ giữa lớp datalink và lớp network nhằm làm cho việc truyền dữ liệu được liên tục qua mạng Tuy nhiên nó lại không có bất
kì một cơ chế xác thực nào và dễ bị tấn công bởi các hacker Mục đích của bài lab nhằm giới thiệu các thông tin cơ bản và cách thức hoạt động của giao thức ARP Tìm hiểu các
cơ chế tấn công ARP spoofing và cách phòng thủ
Trang 3Table of Contents
I GIỚI THIỆU GIAO THỨC ARP 4
II NGUYÊN TẮC LÀM VIỆC CỦA ARP 5
III ARP CACHE 6
IV NGUYÊN LÝ TẤN CÔNG 8
1 DENIAL OF SERVICE 8
2 MAC FLOODING 8
3 MAN IN THE MIDDLE 8
V CÁCH PHÒNG THỦ 10
1 Đối với một mạng nhỏ: 10
2 Đối với một mạng lớn: 10
VI MÔ HÌNH TẤN CÔNG 11
1 Mô tả 11
2 Triển khai 12
VII MÔ HÌNH PHÒNG THỦ 20
1 ARP tĩnh 20
2 Phần mềm Anti ARP 23
VIII KẾT LUẬN 28
Trang 4I GIỚI THIỆU GIAO THỨC ARP
Giao thức ARP được thiết kế để phục vụ cho nhu cầu thông dịch các địa chỉ giữa các lớp thứ hai và thứ ba trong mô hình OSI Lớp thứ hai (lớp data-link) sử dụng địa chỉ MAC để các thiết bị phần cứng có thể truyền thông với nhau một cách trực tiếp Lớp thứ ba (lớp mạng), sử dụng địa chỉ IP để tạo các mạng có khả năng mở rộng trên toàn cầu Lớp data-link xử lý trực tiếp với các thiết bị được kết nối với nhau, còn lớp mạng xử lý các thiết bị được kết nối trực tiếp và không trực tiếp Mỗi lớp có cơ chế phân định địa chỉ riêng, và chúng phải làm việc với nhau để tạo nên một mạng truyền
thông Với lý do đó, ARP được tạo với RFC 826, “một giao thức phân định địa chỉ Ethernet - Ethernet Address Resolution Protocol”.
Mỗi thiết bị trong hệ thống mạng của chúng ta có ít nhất hai địa chỉ Một địa chỉ là
Media Access Control ( MAC ) và một địa chỉ Internet Protocol ( IP ) Địa chỉ MAC là địa chỉ của card mạng gắn vào bên trong thiết bị, nó là duy nhất và không
hề thay đổi Địa chỉ IP có thể thay đổi theo người sử dụng tùy vào môi trường mạng
ARP là một trong những giao thức của IP, chức năng của nó dùng để định vị một hosttrong một segment mạng bằng cách phân giải địa chỉ IP ra địa chỉ MAC ARP thực hiện điều đó thông qua một tiến trình broadcast gói tin đến tất cả các host trong mạng,gói tin đó chứa địa chỉ IP của host cần giao tiếp Các host trong mạng đều nhận được gói tin đó và chỉ duy nhất host nào có địa chỉ IP trùng với địa chỉ IP trong gói tin mới trả lời lại, còn lại sẽ tự động drop gói tin
ARP là một giao thức hết sức đơn giản, nó đơn thuần có 4 loại message cơ bản sau:
An ARP Request: máy tính A sẽ hỏi toàn mạng : " ai có địa chỉ IP này? "
An ARP Reply: máy tính B trả lời máy tính A : "tôi có IP đó, địa chỉ MAC của tôi là "
An Reverse ARP Request: máy tính A sẽ hỏi toàn mạng : " ai có địa chỉ MAC này? "
An Reverse ARP Reply: máy tính B trả lời máy tính A: " tôi có MAC đó, địa chỉ
IP của tôi là "
Trang 5II NGUYÊN TẮC LÀM VIỆC CỦA ARP
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ỉ MACcủ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
Trang 6III ARP CACHE
ARP cache có thể coi như một bảng có chứa một tập tương ứng giữa các phần cứng và địa chỉ Internet Protocol (IP) Mỗi một thiết bị trên một mạng nào đó đều có cache riêng Có hai cách lưu giữ các entry trong cache để phân giải địa chỉ diễn ra nhanh Đó là:
Các entry ARP Cache tĩnh Ở đây, sự phân giải địa chỉ phải được add một cách
thủ công vào bảng cache và được duy trì lâu dài
Các entry ARP Cache động Ở đây, các địa chỉ IP và phần cứng được giữ trong cache bởi phần mềm sau khi nhận được kết quả của việc hoàn thành quá trình phân giải trước đó Các địa chỉ được giữ tạm thời và sau đó được gỡ bỏ
ARP Cache biến một quá trình có thể gây lãng phí về mặt thời gian thành một quá trình sử dụng thời gian một cách hiệu quả Mặc dù vậy nó có thể bắt gặp một số vấn
đề Cần phải duy trì bảng cache Thêm vào đó cũng có thể các entry cache bị “cũ” theo thời gian, vì vậy cần phải thực thi hết hiệu lực đối với các entry cache sau một quãng thời gian nào đó
Trang 7Hình 1: Quá trình truyền thông ARPThực chất trong vấn đề hoạt động của ARP được tập trung vào hai gói, một gói ARP request và một gói ARP reply Mục đích của request và reply là tìm ra địa chỉ MAC phần cứng có liên quan tới địa chỉ IP đã cho để lưu lượng có thể đến được đích của nó trong mạng Gói request được gửi đến các thiết bị trong đoạn mạng, trong khi gửi nó nói rằng (đây chỉ là nhân cách hóa để giải thích theo hướng dễ hiểu nhất)
“Hey, địa chỉ IP của tôi là XX.XX.XX.XX, địa chỉ MAC của tôi là
XX:XX:XX:XX:XX:XX Tôi cần gửi một vài thứ đến một người có địa chỉ
XX.XX.XX.XX, nhưng tôi không biết địa chỉ phần cứng này nằm ở đâu trong đoạn mạng của mình Nếu ai đó có địa chỉ IP này, xin hãy đáp trả lại kèm với địa chỉ MAC của mình!” Đáp trả sẽ được gửi đi trong gói ARP reply và cung cấp câu trả lời, “Hey thiết bị phát Tôi là người mà bạn đang tìm kiếm với địa chỉ IP là XX.XX.XX.XX Địa chỉ MAC của tôi là XX:XX:XX:XX:XX:XX.” Khi quá trình này hoàn tất, thiết bị phát
sẽ cập nhật bảng ARP cache của nó và hai thiết bị này có thể truyền thông với nhau
Trang 8IV NGUYÊN LÝ TẤN CÔNG
Giao thức ARP là rất cần thiết và quan trọng trong hệ thống mạng của chúng ta, tuy nhiên nó lại không đề cập đến vấn đề xác thực nào cả Khi một host nhận được gói
tin ARP Reply, nó hoàn toàn tin tưởng và mặc nhiên sử dụng thông tin đó để sử dụng
sau này mà không cần biết thông tin đó có phải trả lời từ một host mà mình mong muốn hay không ARP không có cơ chế nào để kiểm tra việc đó cả và trên thực tế một
host có thể chấp nhận gói ARP Reply mà trước đó không cần phải gửi gói tin ARP Request Lợi dụng điều này, hacker có thể triển khai các phương thức tấn công như: Man In The Middle, Denial of Service, MAC Flooding
1 DENIAL OF SERVICE
Cũng vận dụng kỹ thuật trên, hacker tiến hành tấn công bằng cách gởi gói
ARP Reply đến toàn bộ các host trong mạng với nội dung mang theo là địa chỉ IP của Gateway và địa chỉ MAC không hề tồn tại Như vậy các host trong mạng tin tưởng rằng mình đã biết được MAC của Gateway và khi gửi thông tin đến
Gateway, kết quả là gửi đến một nơi hoàn toàn không tồn tại Đó là điều hacker
mong muốn, toàn bộ các host trong mạng đều không thể đi ra Internet được
Cách tấn công này cũng dùng kỹ thuật ARP Poisoning mà đối tượng nhắm đến
là Switch Hacker sẽ gửi những gói ARP Reply giả tạo với số lượng khổng lồ nhằm làm Switch xử lý không kịp và trở nên quá tải Khi đó, Switch sẽ không đủ sức thể hiện bản chất Layer2 của mình nữa mà broadcast gói tin ra toàn bộ các
port của mình Hacker dễ dàng bắt được toàn bộ thông tin trong mạng của bạn
Giả sử hacker muốn theo dõi host A gởi thông tin gì cho host B Đầu tiên, hacker sẽ gởi gói ARP Reply đến host A với nội dung là địa chỉ MAC của hacker
và địa chỉ IP của hostB.
Tiếp theo, hacker sẽ gửi gói ARP Reply tới host B với nội dung là MAC của máy hacker và IP của host A Như vậy, cả hai host A và host B đều tiếp nhận gói ARP Reply đó và lưu vào trong ARP table của mình Đến lúc này, khi host A muốn gửi thông tin đến host B, nó liền tra vào ARP table thấy đã có sẵn thông tin
Trang 9về địa chỉ MAC của host B nênsẽ lấy thông tin đó ra sử dụng, nhưng thực chất địa
chỉ MAC đó là của hacker Đồng thời máy tính của hacker sẽ mở chức năng gọi là
IP Forwading giúp chuyển tải nội dung mà host A gửi qua host B Host A và host B giao tiếp bình thường và không có cảm giác bị qua máy trung gian là máy
của hacker
Trong trường hợp khác, hacker sẽ nghe lén thông tin từ máy bạn đến Gateway.
Như vậy mọi hành động ra Internet của bạn đều bị hacker ghi lại hết, dẫn đến việc mất mát các thông tin nhạy cảm
Trang 10V CÁCH PHÒNG THỦ
ARP Poisoning là một kiểu tấn công dạng local, nghĩa là hacker thực hiện tấn công từ bên trong mạng của bạn Hậu quả của cách tấn công này là rất lớn, những người quản trị mạng cần nắm bắt rõ về kỹ thuật tấn công này Sau đây là một số
kỹ thuật giúp phòng chống tấn công kiểu ARP Poisoning.
1 Đối với một mạng nhỏ:
Ta có thể sử dụng địa chỉ IP tĩnh và ARP table tĩnh, khi đó, bạn sẽ liệt kê bằng
tay IP nào đi với MAC nào Trong Windows có thể sử dụng câu lệnh ipconfig /all
để xem IP và MAC, dùng câu lệnh arp -s để thêm vào ARP table Khi mà ép tĩnh
như vậy sẽ ngăn chặn hacker gởi các gói ARP Reply giả tạo đến máy của mình vì khi sử dụng ARP table tĩnh thì nó luôn luôn không thay đổi Chú ý rằng cách thức
này chỉ áp dụng được trong môi trường mạng với quy mô nhỏ, nếu mạng lớn hơn
là không thể vì chúng ta phải thêm vào ARP table bằng tay với số lượng quá nhiều
Ngoài ra cũng có thể sử dụng các công cụ, ví dụ như ArpWatch Nó sẽ phát hiện
và báo cáo cho bạn các thông tin liên quan đến ARP đang diễn ra trong mạng Nhờ
đó, nếu có hiện tượng tấn công bằng ARP Poisoning thì bạn có thể giải quyết kịp
thời
Trang 11VI MÔ HÌNH TẤN CÔNG
1 Mô tả
Nhóm sẽ triển khai mô hình tấn công thường gặp và phổ biến nhất là kiểu tấn Man In The Middle Phần mềm được sử dụng ở đây là Cain & Able và tiến hành ARP poisoning Lúc này attacker sẽ đóng vai trò là máy trung gian đứng ở giữa chuyển tải thông điệp giữa hai máy nạn nhân mà nạn nhân không hề hay biết Qua
đó attacker có thể thu thập toàn bộ thông tin trao đội giữa hai máy nạn nhân
Trang 122 Triển khai
Máy con lúc đầu sẽ có bảng ARP cache với địa chỉ MAC của ip router
192.168.1.1 là 00-02-cf-af-40-14
Trang 13B1: Mở Cain, chọn menu “Configure” => chọn card mạng tương ứng:
Start chức năng sniffer :
Trang 14Chuyển qua tab “Sniffer” ở trên và add (+) những host nằm trong cùng mạng LANvào danh sách:
Trang 15B2: Chọn tab “ARP” ở phía dưới và click add (+) => chọn cột bên phải là IP
router & cột bên trái là IP máy victim:
Trang 17Start ARP poisoning :
Trang 19B3: Lúc này địa chỉ MAC của router sẽ bị đổi thành địa chỉ MAC của máy tấn công:
00-0c-29-cd-fd-79
Trang 20Sau đó tiến hành dung Cain để đầu độc ARP nhưng kết quả là thông tin ARP vẫn không
bị thay đổi
Trang 24ARP giả mạo bị chặn.
Trang 25Màn hình thông báo khi cuộc tấn công ARP dừng.
Trang 26Ngoài ra chương trình sẽ tự động sửa lại bảng ARP nếu có sai sót từ trước đó do các chương trình tấn công ARP giả mạo
Trang 28VIII KẾT LUẬN
Giả mạo ARP Cache là một chiêu khá hiệu quả trong thế giới những kẻ tấn công thụ động “man-in-the-middle” vì nó rất đơn giản nhưng lại hiệu quả Hiện việc giả mạo ARP Cache vẫn là một mối đe dọa rất thực trên các mạng hiện đại, vừa khó bị phát hiện và khó đánh trả
Các quản trị viên cần phải thường xuyên kiểm tra thông tin lưu thông trên mạng vàxem xét thông tin các gói ARP nhằm phòng chống việc giả mạo ARP