Tấn công MAC
Địa chỉ MAC và bảng CAM
Media Access Control Address (địa chỉ kiểm soát truy cập phương tiện) hay địa chỉ MAC là địa chỉ vật lí của một thiết bị. Địa chỉ MAC là một số định danh 48-bits duy nhất cho một thiết bị hệ thống để giao tiếp ở tầng liên kết dữ liệu. Địa chỉ MAC bao gồm Object Unique Identifier (OUI) 24-bits và Network Interface Controller (NIC) 24-bits. Nếu có nhiều NIC thì thiết bị sẽ có nhiều địa chỉ MAC khác nhau.
Bảng CAM (Content-Addressable Memory) được sử dụng trong switch Ethernet để ghi lại địa chỉ MAC cũng như những thông tin liên quan để chuyển tiếp gói tin. Bảng CAM ghi lại thông tin của địa chỉ MAC như VLAN liên quan, kiểu học và các thông số port. Các thông số này giúp chuyển tiếp gói tin ở tầng liên kết dữ liệu.
Cách thức hoạt động bảng CAM
“Học” địa chỉ MAC là nhiệm vụ cơ bản của switch. Switch quan sát các frame đến và ghi lại địa chỉ MAC nguồn của những frame này trong bảng CAM. Nó cũng ghi lại port xác định của địa chỉ MAC nguồn. Switch sẽ dựa vào những thông tin này để chuyển tiếp frame thông minh.
Chú ý: máy tính có thể bị tắt hoặc dịch chuyển bất cứ lúc nào. Do đó, switch phải tính thời gian của địa chỉ MAC và xóa nó khỏi bảng nếu không thấy nó một thời gian.
Switch hỗ trợ nhiều địa chỉ MAC trên tất cả port nên chúng ta có thể kết nối workstation hoặc nhiều thiết bị qua switch hoặc router. Dựa vào tính năng địa chỉ động, switch cập nhật địa chỉ nguồn mà các gói tin gửi, gắn nó vào giao diện mà nó được nhận.
Do những thiết bị được thêm vào hay xóa đi được cập nhật rất thường xuyên. Thời gian loại bỏ mặc định của địa chỉ MAC là 300 giây. Switch được thiết lập học địa chỉ MAC mặc định.
MAC Flooding Attack
MAC Flooding là một kĩ thuật, trong đó kẻ tấn công gửi ngẫu nhiên những địa chỉ MAC và IP giả để làm đầy dung lượng lưu trữ của bảng CAM. Như chúng ta đã biết, bảng CAM có độ dài cố định, nên switch sau đó sẽ hoạt động như một hub và truyền gói tin trên mọi port, giúp kẻ tấn công nghe trộm gói tin dễ dàng.
Trên Unix/Linux ta có công cụ “macof” cung cấp MAC flooding. MAC nguồn ngẫu nhiên và IP có thể được gửi trên giao diện sử dụng macof
Switch Port Stealing
Kiểu tấn công này cũng dựa vào kĩ thuật MAC flooding, kẻ tấn công sẽ gửi gói tin ARP giả với địa chỉ MAC nguồn của mục tiêu và địa chỉ đích của nó để đóng giả host của mục tiêu, ví dụ host A.
Khi những thông tin này chuyển tiếp đến switch, switch sẽ cập nhật bảng CAM. Khi host A gửi gói tin thì switch phải cập nhật lần nữa. Cứ như vậy, khi host A gửi ARP và địa chỉ MAC, switch sẽ gửi gói tin cho kẻ tấn công vì lầm tưởng host A kết nối với port này.
Chống lại tấn công MAC
Bảo mật port được sử dụng để gắn địa chỉ MAC của những thiết bị đã biết với port vật lí và xác định những hành động xâm nhập. Do đó, nếu kẻ tấn công thử kết nối PC của họ với switch port, nó sẽ ngay lập tức ngăn chặn tấn công. Trong bảo mật port động, bạn sẽ thiết lập số địa chỉ MAC và switch chỉ hỗ trợ tổng số địa chỉ MAC nào đó mà không quan tâm đến loại địa chỉ.
Thiết lập bảo mật port
Cisco Switch cung cấp bảo mật port để phòng tránh tấn công MAC. Bạn có thể thiết lập switch với địa chỉ MAC tĩnh, MAC động hoặc cả hai trong một khoảng nhất định. Thiết lập trên Cisco Switch dưới đây sẽ hỗ trợ địa chỉ MAC nhất định và 4 địa chỉ phụ. Nếu switch đã học được địa chỉ MAC tĩnh:
Thiết lập bảo mật port
Switch(config) # interface ethernet 0/0
Switch(config-if) # switchport mode access
Switch(config-if) # switchport port-security
// Enabling Port Security Switch(config-if)# switchport port-security mac-address <mac-address>
// Adding static MAC address to be allowed on Ethernet 0/0
Switch(config-if) # switchport port-security maximum 4
// Configuring dynamic MAC addresses (maximum up to 4 MAC addresses) to be allowed on Ethernet 0/0
Switch(config-if) # switchport port-security violation shutdown
// Configuring Violation action as shutdown
Switch(config-if) # exit
Tấn công DHCP
Giao thức thiết lập host động (DHCP)
DHCP là quá trình phân chia động địa chỉ MAC sao cho các địa chỉ này được chỉ định tự động và tái sử dụng khi host không cần chúng. Round Trip Time (RTT) là khoảng thời gian từ khi phát hiện DHCP server đến khi nhận được địa chỉ IP đã thuê.
DHCPv4 sử dụng 2 port:
- UDP port 67 cho Server
- UDP port 68 cho Client
RTT dùng để đánh giá chất lượng hoạt động của DHCP. Bằng cách sử dụng phiên truyền UDP, client gửi gói tin DHCP-Discover ban đầu bởi vì nó không tin về hệ thống đã kết nối. Server phản hồi gói tin DHCP-Discover với gói tin DCHP-Offer cung cấp thông số thiết lập. Client sẽ gửi tiếp gói tin DCHCP-request để yêu cầu thông số thiết lập. Cuối cùng, Server sẽ trả gói tin DHCP-Acknowledgement chứa thông số thiết lập.
DHCPv6 sử dụng 2 port:
- UDP port 546 cho clients
- UDP port 547 cho servers
DHCP Replay agent chuyển tiếp gói tin DHCP từ server đến client và ngược lại. DHCP agent giúp chuyển tiếp yêu cầu và phản hồi giữa server và client. Khi nhận được tin nhắn Replay agent sẽ tạo một yêu cầu DHCP mới để gửi từ một giao diện khác chứa thông tin cổng mặc định cũng như lựa chọn về thông tin Replay-Agent (Option-82). Khi Replay agent nhận được phản hồi từ server, nó sẽ xóa Option 82 và chuyển tiếp lại cho client.
Cách thức hoạt động của IPv6 Replay agent và DHCPv6 server tương tự như IPv4 Relay agent và DHCPv4 Server. Server nhận yêu cầu và chỉ định địa chỉ IP, DNS, thời gian thuê và các thông tin khác cho client trong khi replay server chuyển tiếp tin nhắn DHCP.
Tấn công DHCP Starvation
Đây là tấn công từ chối dịch vụ trên DHCP Server. Kẻ tấn công gửi yêu cầu ảo với địa chỉ MAC giả để truyền đến DHCP Server, từ đó thuê tất cả địa chỉ IP trong bộ trữ IP. Sau khi tất cả địa chỉ IP được phân phát, những user tiếp theo sẽ không nhận được địa chỉ IP hay gia hạn hợp đồng.
Tấn công DHCP Starvation có thể được thực hiện bởi các công cụ như “Dhcpstarv” hay “Yersinia”
Tấn công Rogue DHCP Server
Tấn công này được thực hiện bằng cách triển khai DHCP Server giả trong hệ thống cùng với tấn công starvation. Khi server DHCP chính thống đang bị tấn công từ chối dịch vụ, client không thể nhận được địa chỉ IP. Những gói tin DHCP Discovery (IPv4) hoặc Solicit (IPv6) tiếp theo được phản hồi bởi DHCP server giả với những thông số thiết lập hướng giao thông mạng về phía nó.
Chống lại tấn công DHCP
DHCP Snooping
Một người có thể dễ dàng đem một server DHCP vào môi trường hệ thống, dù vô tình hay cố ý. DHCP Snooping là kĩ thuật phòng tránh việc đó. DHCP snooping được kích hoạt trên thiết bị hệ thống để nhận diện những port đáng tin cậy từ những giao thông DHCP chính thống.
Những port khác phản hồi yêu cầu DHCP sẽ bị bỏ qua. Đây là tính năng bảo mật bằng cách lọc tin nhắn DHCP không đáng tin bằng cách xây dựng bảng gắn kết DHCP snooping. DHCP snooping có khả năng phân biệt giữa giao diện không đáng tin (kết nối với user/host cuối) và giao diện đáng tin (kết nối với DHCP server chính thống hoặc thiết bị đáng tin cậy).
Bảo mật port
Kích hoạt bảo mật port cũng giúp giảm thiểu những tấn công này bằng cách giới hạn số lượng địa chỉ MAC có thể học, thiết lập hoạt động vi phạm, thời gian loại bỏ, v.v.