ARP spoofing là gì? Thông tin chi tiết từ A->Z về ARP 2023
Thịnh Văn Hạnh 12/01/2023 1597 Lượt xem Chia sẻ bài viết
ARP là một giao thức cho phép truyền thông mạng đến một thiết bị cụ thể trên mạng. ARP chuyển địa chỉ IP sang địa chỉ Media Access Control (MAC) và ngược lại. Thông thường, các thiết bị sử dụng ARP để liên hệ với bộ định tuyến hoặc cổng cho phép kết nối Internet. Trong bài viết này, hãy cùng BKNS tìm hiểu về cách phát hiện tấn công ARP spoofing.
Tóm Tắt Bài Viết
ARP spoofing là gì?
ARP spoofing còn được gọi là ARP poisoning, là một cuộc tấn công Man in the Middle (MitM) 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:
- Kẻ tấn công phải có quyền truy cập vào mạng. Chúng quét mạng để xác định địa chỉ IPcủa ít nhất hai thiết bị — giả sử đây là một máy trạm và một bộ định tuyến.
- Kẻ tấn công sử dụng một công cụ giả mạo, chẳng hạn như Arpspoof hoặc Driftnet, để gửi phản hồi ARP giả mạo.
- Các phản hồi giả mạo thông báo rằng địa chỉ MAC chính xác cho cả hai địa chỉ IP, thuộc bộ định tuyến và máy trạm (orkstation), là địa chỉ MAC của kẻ tấn công.
- Điều này đánh lừa cả bộ định tuyến và máy trạm kết nối với máy của kẻ tấn công, thay vì kết nối với nhau.
- 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, giao tiếp với kẻ tấn công thay vì trực tiếp với nhau.
- Kẻ tấn công hiện đang bí mật đứng giữa mọi liên lạc.
Kẻ tấn công ARP spoofing giả vờ là cả hai bên tham gia của một kết nối mạng. Khi kẻ tấn công giả mạo ARP, chúng có thể:
- Tiếp tục định tuyến thông tin liên lạc như hiện tại, kẻ tấn công có thể đánh hơi (sniffing) các gói tin và đánh cắp dữ liệu, ngoại trừ trường hợp gói tin được truyền qua một kênh được mã hóa như HTTPS.
- Thực hiện chiếm quyền điều khiển session, nếu kẻ tấn công có được session ID, chúng có thể có quyền truy cập vào tài khoản mà người dùng hiện đang đăng nhập.
- Thay đổi giao tiếp – ví dụ: đẩy một file hoặc trang web độc hại đến máy tính.
- Tấn công DDoS – những kẻ tấn công có thể cung cấp địa chỉ MAC của server mà chúng muốn tấn công bằng DDoS, thay vì máy của chính chúng. Nếu làm điều này cho một số lượng lớn IP, server mục tiêu sẽ bị tấn công bởi lưu lượng truy cập.
Giao thức phân giải địa chỉ ARP là gì?
Giao thức phân giải địa chỉ ARP (Address Resolution Protocol) được sử dụng để kết nối một địa chỉ IP với một địa chỉ MAC (Media Access Control) trong mạng LAN. ARP có vai trò quan trọng trong quá trình mapping (ánh xạ) này, vì địa chỉ IP và MAC có độ dài khác nhau và cần được chuyển đổi để các hệ thống có thể nhận diện và giao tiếp với nhau.
Trong mô hình mạng OSI (Open Systems Interconnection – Kết nối Hệ thống Mở), ARP hoạt động ở lớp liên kết dữ liệu. Lớp này đảm nhiệm việc thiết lập và hủy kết nối giữa các thiết bị vật lý và truyền dữ liệu. Địa chỉ IP, được đặt trong lớp mạng, là lớp chịu trách nhiệm chuyển tiếp gói dữ liệu qua các router. ARP đóng vai trò giao tiếp giữa hai lớp này.
Ưu điểm của giao thức ARP
Giao thức ARP (Address Resolution Protocol) có nhiều ưu điểm quan trọng:
Đơn giản và hiệu quả: ARP giúp định tuyến giao tiếp giữa địa chỉ IP và địa chỉ MAC một cách đơn giản và hiệu quả. Nó cho phép các thiết bị trong mạng tìm thấy địa chỉ MAC của một địa chỉ IP cụ thể mà không cần cấu hình trước.
Tự động ánh xạ: ARP cho phép các thiết bị tự động tạo ánh xạ giữa địa chỉ IP và địa chỉ MAC khi cần thiết. Điều này đảm bảo rằng các địa chỉ MAC sẽ được tìm thấy một cách linh hoạt và tự động khi cần thiết để thiết lập kết nối và truyền dữ liệu.
Bảo mật cao: Giao thức ARP có độ an toàn cao và không chứa nhiều lỗ hổng bảo mật. Điều này giúp ngăn chặn các cuộc tấn công và đảm bảo tính bảo mật của mạng.
Sử dụng phổ biến: ARP được sử dụng rộng rãi trong các mạng LAN và đã trở thành một phần quan trọng của việc kết nối và truyền dữ liệu giữa các thiết bị trong mạng.
Tóm lại, giao thức ARP mang lại nhiều lợi ích cho việc phân giải địa chỉ IP và địa chỉ MAC trong mạng LAN, bao gồm tính đơn giản, hiệu quả, tự động ánh xạ và bảo mật cao.
Quá trình hoạt động
Quá trình hoạt động của ARP là khi một thiết bị muốn gửi dữ liệu đến một địa chỉ IP nào đó trong mạng LAN, nó sẽ kiểm tra bảng ARP để xem xem địa chỉ MAC tương ứng đã được ánh xạ hay chưa. Nếu địa chỉ MAC đã có trong bảng ARP, thiết bị gửi dữ liệu trực tiếp đến địa chỉ MAC đó. Trong trường hợp địa chỉ MAC chưa có trong bảng ARP, thiết bị gửi yêu cầu ARP broadcast để hỏi tất cả các thiết bị trong mạng về địa chỉ MAC tương ứng với địa chỉ IP mục tiêu. Sau đó, thiết bị chủ sở hữu địa chỉ IP mục tiêu sẽ trả lời yêu cầu ARP với địa chỉ MAC của nó, và quá trình ánh xạ được hoàn tất. Kết quả là, thiết bị gửi dữ liệu có thể gửi trực tiếp đến địa chỉ MAC đã được xác định.
Như vậy, ARP đóng vai trò quan trọng trong việc kết nối địa chỉ IP với địa chỉ MAC trong mạng LAN, cho phép các thiết bị giao tiếp và truyền dữ liệu một cách hiệu quả.
Giao thức ARP hoạt động như thế nào?
Ở lớp mạng, khi nguồn muốn tìm đến địa chỉ MAC của thiết bị đích, nó sẽ tìm địa chỉ MAC (Địa chỉ vật lý) ở trong ARP cache hoặc bảng ARP trước. Nếu địa chỉ này có ở trong đó, nó sẽ sử dụng địa chỉ MAC ở đó để thực hiện giao tiếp. Bên cạnh đó, nếu người dùng muốn xem ARP cache của mình (trong Windows), hãy mở Command Prompt rồi nhập arp -a
. Một bảng ARP sẽ hiện ra như sau:
Nếu địa chỉ MAC không có ở trong bảng ARP, thiết bị nguồn sẽ tạo một thông báo ARP Request. Thông báo này bao gồm địa chỉ MAC và IP của nguồn, còn địa chỉ MAC và IP sẽ được bỏ trống vì nguồn vẫn đang tìm kiếm địa chỉ này. Ví dụ:
Sender's MAC Address 00-11-0a-78-45-AD
Sender's IP Address 192.16.10.104
Target's MAC Address 00-00-00-00-00-00
Target's IP Address 192.16.20.204
Sau đó, thiết bị nguồn sẽ gửi ARP request đến mạng cục bộ.
Thiết bị nguồn gửi ARP request đến mạng cục bộ
Tất cả thiết bị khác trong mạng LAN đều sẽ nhận được thông báo này. Bây giờ, tất cả thiết bị sẽ so sánh địa chỉ IP của đích với địa chỉ IP của chính nó. Nếu địa chỉ IP của đích khớp với IP của thiết bị, nó sẽ gửi một thông báo ARP Reply. Ngược lại, nếu địa chỉ IP không khớp với nhau, thiết bị sẽ drop packet đó.
Các thiết bị có địa chỉ IP khớp với IP đích sẽ trả lời và gửi một thông báo ARP Reply. Thông báo này sẽ bao gồm địa chỉ MAC của thiết bị đó. Sau đó, thiết bị đích sẽ cập nhật bảng ARP rồi lưu trữ địa chỉ MAC của nguồn để giao tiếp. Tiếp đến, nguồn sẽ trở thành đích cho thiết bị này và tin nhắn ARP Reply sẽ được gửi đi.
Sender's MAC Address 00-11-0a-78-45-AA
Sender's IP Address 192.16.20.204
Target's MAC Address 00-11-0a-78-45-AD
Target's IP Address 192.16.10.104
Thông báo ARP thuộc loại unicast, và không thể được truyền đi vì nguồn gửi ARP Reply đến dích biết địa chỉ MAC của thiết bị nguồn.
Khi nguồn nhận được ARP reply, nó sẽ biết được địa chỉ MAC đích và cập nhật ARP cache. Bây giờ, các packet có thể được gửi dưới dạng địa chỉ MAC đích của nguồn.
Các loại ARP
Vậy cách phân loại giao thức ARP là gì? ARP được phân thành 4 loại chính:
- • Proxy ARP
- • Gratuitous ARP
- • Reverse ARP
- • Inverse ARP
Proxy ARP
Trong phương pháp Proxy ARP, các thiết bị Layer 3 có thể phản hồi các ARP request. Loại ARP này được cấu hình sao cho router sẽ phản hồi địa chỉ IP đích, và ánh xạ địa chỉ MAC đến địa chỉ IP đích và người gửi khi nó đến được đích.
Gratuitous ARP
Gratuitous ARP là một loại ARP request khác của host. Loại request này giúp mạng có thể xác định các địa chỉ IP bị trùng lặp. Do đó, khi router hay switch gửi ARP request để lấy địa chỉ IP, nó sẽ không nhận được phản hồi ARP nào. Vì vậy cũng không có node nào có thể sử dụng địa chỉ IP được cấp cho router hay swictch đó.
Reverse ARP (RARP)
Reverse ARP (RARP) là một loại giao thức ARP được hệ thống client trong LAN sử dụng để yêu cầu địa chỉ IPv4 của nó từ bảng ARP router. Quản trị viên mạng chủ yếu tạo một bảng trong bộ gateway-router, giúp xác định địa chỉ MAC đến IP cụ thể.
Inverse ARP (InARP)
InARP là một loại ARP dùng để tìm địa chỉ IP của các node từ địa chỉ lớp liên kết dữ liệu. InARP được sử dụng rộng rãi cho các rơ-le frame mạng ATM, trong đó địa chỉ mạch ảo Lớp 2 thu được từ việc signal của Layer 2.
Tại sao giao thức ARP lại quan trọng?
Vậy lý do sử dụng của giao thức ARP là gì? Vì sao nó lại quan trọng đến thế? ARP là một giao thức có vai trò to lớn, vì địa chỉ phần mềm (địa chỉ IP) của host hay máy tính kết nối với mạng cần phải được phiên dịch thành địa chỉ phần cứng (tức là địa chỉ MAC). Nếu không có ARP, host sẽ không thể tìm ra địa chỉ phần cứng của host khác. Mạng LAN sẽ giữ một bảng hay directory ánh xạ địa chỉ IP đến địa chỉ MAC của các thiết bị khác nhau. Trong đó bao gồm cả các endpoint lẫn router trên mạng đó.
Bảng hoặc directory này không được duy trì bởi người dùng hay admin mạng. Thay vào đó, giao thức ARP sẽ tạo ra các entry. Nếu thiết bị của người dùng không biết địa chỉ phần cứng của host đích, thiết bị sẽ gửi một thông báo đến tất cả host trên mạng để tìm địa chỉ này. Khi host đích thích hợp biết được request, nó sẽ phản hồi bằng địa chỉ phần cứng của nó. Địa chỉ này sau đó sẽ được lưu trữ trong bảng hay directory của ARP.
Ví dụ về giao thức ARP
Các thông báo ARP Request và ARP Reply có thể được capture. Sau đây là một ví dụ về các thông báo ARP Request được capture để minh họa cách hoạt động của ARP là gì. Ta có thể thấy rằng địa chỉ MAC ở ví dụ dưới được bỏ trống (00:00:00:00:00:00).
Thông báo request sẽ chứa nhiều trường khác nhau như:
- Loại phần cứng – Chỉ định phần cứng được sử dụng trong quá trình tuyền thông báo ARP. Loại phần cứng chủ yếu là Ethernet.
- Loại giao thức – một con số được gán cho từng giao thức, ở đây là giao thức IPv4: 2048 (hay 0x0800 trong hệ Hexa).
- Kích thước giao thức – độ dài địa chỉ IPv4 (ở đây là 4 byte).
- Opcode – xác định bản chất của thông báo ARP. Trong đó, 1 là ARP Request, còn ARP Reply là 0.
- Địa chỉ IP nguồn – ở đây là 10.10.10.2
- Địa chỉ IP đích – ở đây là 10.10.10.1
- Địa chỉ MAC nguồn – trong ví dụ này là 00:1a:6b:6c:0c:cc
Tiếp đến, một thông báo ARP Reply được capture. Tin nhắn phản hồi sẽ chứa địa chỉ MAC mà nguồn yêu cầu. Địa chỉ MAC 00:1d:09:f0:92:ab được gửi ở trong thông báo ARP Reply.
Cách phát hiện tấn công ARP spoofing
Dưới đây là một cách đơn giản để phát hiện bộ nhớ cache ARP của một thiết bị cụ thể đã bị nhiễm độc, bằng cách sử dụng command line. Khởi động trình hệ điều hành với tư cách quản trị viên. Sử dụng lệnh sau để hiển thị bảng ARP, trên cả Windows và Linux:
arp -n
Output giống như sau:
IP Address | MAC Address |
192.168.5.1 | 00-14-22-01-23-45 |
192.168.5.201 | 40-d4-48-cr-55-b8 |
192.168.5.202 | 00-14-22-01-23-45 |
IP Address | MAC Address |
192.168.5.1 | 00-14-22-01-23-45 |
192.168.5.201 | 40-d4-48-cr-55-b8 |
192.168.5.202 | 00-14-22-01-23-45 |
Nếu bảng chứa hai địa chỉ IP khác nhau có cùng địa chỉ MAC, chứng tỏ một cuộc tấn công ARP đang diễn ra. Vì địa chỉ IP 192.168.5.1 có thể được nhận dạng là bộ định tuyến nên IP của kẻ tấn công có thể là 192.168.5.202.
Để phát hiện ARP spoofing trong một mạng lớn và biết thêm thông tin về loại giao tiếp mà kẻ tấn công đang thực hiện, bạn có thể sử phần mềm Wireshark mã nguồn mở để bắt và phân tích gói tin.
Cách phòng chống ARP spoofing
Dưới đây là một số phương pháp tốt nhất có thể giúp bạn ngăn chặn ARP Spoofing trên mạng của mình:
- • Sử dụng Mạng riêng ảo (VPN) cho phép các thiết bị kết nối với Internet thông qua một tunnel được mã hóa. Điều này làm cho tất cả thông tin liên lạc được mã hóa và vô giá trị đối với kẻ tấn công ARP spoofing.
- • Sử dụng ARP tĩnh – giao thức ARP cho phép xác định mục nhập ARP tĩnh cho địa chỉ IP và ngăn thiết bị nghe phản hồi ARP cho địa chỉ đó. Ví dụ: nếu một máy tính luôn kết nối với cùng một bộ định tuyến, bạn có thể xác định một mục ARP tĩnh cho bộ định tuyến đó, điều này giúp ngăn chặn một cuộc tấn công.
- • Sử dụng packet filtering – các packet filtering có thể xác định các gói ARP bị nhiễm độc bằng cách phát hiện chúng chứa thông tin nguồn xung đột và ngăn chúng lại trước khi chúng đến được các thiết bị trên mạng của bạn.
- • Thực hiện một cuộc tấn công ARP spoofing – kiểm tra xem các hệ thống bảo mật hiện tại của bạn có đang hoạt động hay không bằng cách thực hiện một cuộc tấn công ARP spoofing với sự phối hợp của các nhóm Công nghệ thông tin và bảo mậ Nếu cuộc tấn công thành công, hãy xác định điểm yếu trong các biện pháp bảo mật của bạn và khắc phục chúng.
Lời kết
Như vậy là bạn đã hiểu rõ được ARP spoofing là gì và cách phát hiện nó, hy vọng bài viết của BKNS đã cung cấp những kiến thức bổ ích cho bạn để bạn có thể phòng chống ARP spoofing một cách hiệu quả, cảm ơn bạn đã dành thời gian đọc bài viết!
[mautic type=”form” id=”6″]>Xem thêm: