Bài tiểu
Lớp:
luận
TÌM
HIỂU VỀ
PHƯƠN
G THỨC
TẤN
Sinh
viên 1:
Nguyễn Hửu
Nhân
Sinh
viên 2: Bùi
Tấn Đạt
D15_TH08
1. Giới thiệu và lý thuyết
a. Sơ lược
Ngày nay Internet mang lại rất nhiều lợi ích hữu dụng cho chúng ta, một trong các tiện ích phổ
thông của Internet là hệ thống thư điện tử (email), trò chuyện trực tuyến (chat), công cụ tìm kiếm
(search engine), các dịch vụ thương mại và chuyển ngân và các dịch vụ về y tế giáo dục như là chữa
bệnh từ xa hoặc tổ chức các lớp học ảo. Chúng cung cấp một khối lượng thông tin và dịch vụ khổng lồ
trên Internet.
Một khối thông tin dịch vụ khổng lồ ấy có nhiều thông tin cực kỳ quan trọng và mật của nhiều tổ
chưc cá nhân… và từ ấy intenet là nơi nhắm đến của nhiều thế lực xấu gọi là tội phạm công nghệ cao
gọi tắt là hacker dùng nhiều phương thức xâm nhập nhằm đánh sập ăn cấp thông tin. Nhiều hình thức
như tấn công DDOS, ARP, Ransomware…Và bài sau đây ta sẽ nghiên cứu rõ về một trong các phương
thức tấn công là ARP.
b. MAC, ARP là gì?
Mỗi thiết bị mạng đều có một địa chỉ MAC (Medium Access Control address) và địa chỉ đó là duy
nhất. Các thiết bị trong cùng một mạng thường dùng địa chỉ MAC để liên lạc với nhau tại tầng Data Link.
Các thiết bị thường dùng cơ chế ARP (Address Resolution Protocol) và RARP (Reverse Address
Resolution Protocol) để biết được các địa chỉ MAC, IP của các thiết bị khác
c. Qua trình ARP
HostA và HostB truyền tin cho nhau, các packet sẽ được đưa xuống tầng Datalink để đóng gói, các
Host sẽ phải đóng gói MAC nguồn, MAC đích vào frame. Như vậy trước khi quá trình truyền dữ liệu xảy
ra, 2 máy sẽ phải làm động tác hỏi MAC của nhau.
Nếu mà HostA khởi động quá trình hỏi MAC trước, nó broadcast gói tin ARP request để hỏi MAC
HostB, thì HostB coi như đã có MAC của HostA, và HostB chỉ trả lời cho A MAC của HostB thôi (gói tin
trả lời từ HostB là ARP reply).
d. Lỗ hổng của ARP
Address Resolution Protocol là một giao thức truyền thông được sử dụng rộng rãi để tìm ra các địa
chỉ tầng liên kết dữ liệu từ các địa chỉ tầng mạng.
Khi một gói tin (datagram) Giao thức Internet (IP) được gửi từ một máy đến máy khác trong mạng
cục bộ, địa chỉ IP đích phải được giải quyết thành địa chỉ MAC để truyền qua tầng liên kết dữ liệu. Khi biết
được địa chỉ IP của máy đích, và địa chỉ MAC của nó cần truy cập, một gói tin broadcast được gửi đi trên
mạng nội bộ. Gói này được gọi là ARP request. Máy đích với IP trong ARP request sẽ trả lời với ARP reply,
nó chứa địa chỉ MAC cho IP đó
ARP là một giao thức phi trạng thái. Máy chủ mạng sẽ tự động lưu trữ bất kỳ ARP reply nào mà
chúng nhận được, bất kể máy khác có yêu cầu hay không. Ngay cả các mục ARP chưa hết hạn sẽ bị ghi đè
khi nhận được gói tin ARP reply mới. Không có phương pháp nào trong giao thức ARP mà giúp một máy
có thể xác nhận máy mà từ đó gói tin bắt nguồn. Hành vi này là lỗ hổng cho phép ARP spoofing xảy ra.
e. Làm thế nào để tấn công bằng ARP
ARP ATTAK
Giả sử ta có mạng Lan như mô hình trên gồm các host
Attacker: là máy hacker dùng để tấn công ARP attack
IP: 10.0.0.11
Mac: 0000:0000:0111
HostA
IP: 10.0.0.09
MAC: 0000:0000:0109
HostB
IP: 10.0.0.08
MAC: 0000:0000:0108
Victim: là máy bị tấn công ARP attack
IP: 10.0.0.10
MAC: 0000:0000:0110
Attacker muốn thực hiện ARP attack đối với máy Victim. Attacker muốn mọi gói tin HostA truyền
tới máy Victim đều có thể chụp lại được để xem trộm. Làm thế nào để Attacker có thể hiện được điều đó?
Đầu tiên, HostA muốn gởi dữ liệu cho Victim. HostA cần phải biết địa chỉ MAC của Victim để
liên lạc. HostA sẽ gửi broadcast ARP Request tới tất cả các máy trong cùng mạng Lan để hỏi xem IP
10.0.0.10 (IP của Victim) có địa chỉ MAC là bao nhiêu.
HostB, Attacker, Victim đều nhận được gói tin ARP Request, nhưng chỉ có Victim là gửi lại gói tin
ARP Reply lại cho HostA. ARP Reply chứa thông tin về IP của Victim, MAC Victim, MAC HostA
Sau khi nhận được gói tin ARP Reply từ Victim, HostA đã biết được địa chỉ MAC của Victim.
HostA bắt đầu thực hiện liên lạc, truyền dữ liệu tới Victim. HostB, Attacker không thể xem nội dung dữ
liệu được truyền giữa 2 máy HostA và Victim
Attacker muốn xem dữ liệu truyền giữa HostA và Victim. Attacker sử dụng kiểu tấn công ARP
Spoof. Attacker thực hiện gửi liên tục ARP Reply chứa thông tin về IP Victim, MAC Attacker, MAC
HostA. Ở đây, thay vì là MAC Victim, Attacker đã đổi thành địa chỉ MAC của mình.
HostA nhận được ARP Reply và nghĩ là IP Victim 10.0.0.10 sẽ có địa chỉ MAC là 0000:0000:0111
(MAC của Attacker). HostA lưu thông tin này vào bảng ARP Cache.
Bây giờ mọi thông tin, dữ liệu HostA gửi tới 10.0.0.10 (Victim), Attacker đều có thể nhận được,
Attacker có thể xem tòan bộ nội dung HostA gửi cho Victim
Attacker còn có thể kiểm sóat tòan bộ quá trình liên lạc giữa HostA và Victim thông qua ARP
Attack
Attacker thường xuyên gửi các gói tin ARP Reply chứa địa chỉ IP của HostA và Victim nhưng có
địa chỉ MAC là của Attacker.
HostA nhận được gói tin này thì cứ nghĩ Victim sẽ có địa chỉ MAC là 0000:0000:0111 (MAC của
Attacker)
Victim nhận đươc gói tin này thì cứ nghĩ HostA sẽ có địa chỉ MAC là 0000:0000:0111 (MAC của
Attacker)
Mọi thông tin trao đổi giữa HostA và Victim, Attacker đều có thể nhận được. Như vậy là Attacker
có thể biết được nội dung trao đổi giữa HostA và Victim
Sau khi bị tấn công ARP attack, sẽ rất nguy hiểm cho người dùng vì mọi thông tin trao đổi của họ
đều bị lộ, nhất là những thông tin đó là quan trọng, cần phải giữ bí mật.
f.
2.
Giới hạn và điểm yếu của kiểu tấn công ARP Spoof:
- Chỉ có những máy nằm trong cùng đường mạng với máy Attacker mới bị tấn công. Các máy
nằm khác mạng sẽ không thể bị tấn công bằng hình thức này vì
- Trong cùng một đường mạng LAN, các máy sẽ thực hiện trao đổi dữ liệu với nhau dựa vào địa
chỉ MAC. HostA muốn trao đổi dữ liệu với HostB. HostA sẽ dò tìm trong bảng ARP cache xem
IP của HostB sẽ có địa chỉ MAC tương ứng là gì. HostA đóng gói dữ liệu cần truyền với MAC
nguồn là MAC HostA, MAC đích là MAC HostB. Sau đó HostA sẽ truyền dữ liệu tới HostB
dựa vào MAC đích của gói tin.
- Trong trường hợp HostA, HostB khác đường mạng muốn liên lạc với nhau, ta phải dựa vào địa
chỉ IP để truyền dữ liệu và phải thông qua một thiết bị định tuyến, đó là router. HostA sẽ đóng
gói dữ liệu cần truyền với MAC nguồn là HostA, MAC đích là router. Gói tin đó sẽ được
truyền đến router, router sẽ dựa vào địa chỉ IP đích (IP HostB) và dò tìm trong bảng định tuyến
nhằm xác định con đường đi đến HostB. Router có khả năng ngăn chặn các gói tin broadcast
- Hình thức tấn công này không thể thực hiện được trong mạng WAN, trên Internet mà chỉ thực
hiện được trên cùng mạng LAN
g. Mô tả quá trình arp request và arp reply.
- Trong mạng LAN hiện nay có 4 host: host A, host B, host C, host D
- Host A muốn giao tiếp với host C, đầu tiên sẽ broadcast gói tin ARP Requset.
- Host C nhận thấy đúng IP của mình liền trả lời MAC của mình thông qua gói tin ARP Reply,
các host còn lại sẽ drop gói ARP Request.
- Host A nhận được địa chỉ MAC của host C và ghi nhớ vào ARP table.
Nguyên lý tấn công và cách phòng thủ
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
a. Man in the middle(Gỉa mạo DNS)
- 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 về đị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.
b. Denial of service(Từ chối dịch vụ)
- 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. Mac flooding
- 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.
d. Một số Tool tấn công
- SwitchSniffer
- Cain &abel
- Netcut
e. Cách phát hiện bị tấn công
- Cách 1: Sử dụng phần mềm XArp 2.0.
Bạn chạy chương trình XArp 2.0 và sẽ nhìn thấy một số dòng màu đỏ, trong đó có IP
Gateway, máy tấn công và các máy nạn nhân.
Bạn hãy loại ra IP Gateway và các IP máy nạn nhân bị mất mạng, còn lại chính là IP
của máy tính tấn công đó (máy này không bị mất mạng).
Nếu chú ý hơn vào XArp 2.0, bạn kéo ra sau cùng sẽ thấy cột How Often seen, bạn sẽ
thấy số dữ liệu trao đổi giữa Gateway và các máy nạn nhân tăng lên tương ứng nhau,
còn máy tấn công thì khác hẳn.
- Cách 2: bạn ping đến từng máy trong mạng LAN xem máy nào kết nối chập chờn, lúc
được lúc không thì đó chính là máy tấn công ARP spoofing bằng NetCut hay
ArpSpoof. Tất nhiên cách này thủ công và mất nhiều thời gian hơn.
f. 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ỏ:
a. 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.
2. Đối với một mạng lớn:
a. Khi quản trị trong một mạng quy mô lớn, ta có thể sử dụng chức năng Port
security. Khi mở chức năng Port security lên các port của Switch, ta có thể quy
định port đó chỉ chấp nhận một địa chỉ MAC. Như vậy sẽ ngăn chặn việc thay đổi
địa chỉ MAC trên máy hacker.
b. 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.