5. Giới thiệu
7.1 MAC Layer Attacks: MAC flooding (Tấn công làm ngập bảng CAM)
Kiểu tấn công làm tràn bảng CAM dựa vào điểm yếu của thiết bị chuyển mạch : bảng CAM chỉ chứa được một số hữu hạn các ánh xạ (ví dụ như switch Catalysh 6000 có thể chứa được tối đa 128000 ánh xạ) và các ánh xạ này không phải tồn tại mãi mãi trong bảng CAM. Sau một khoảng thời gian nào đó, thường là 300 s; nếu địa chỉ này không được dùng trong việc trao đổi thông tin thì nó sẽ bị gỡ bỏ khỏi bảng.
Khi bảng CAM được điền đầy, tất cả thông tin đến sẽ được gửi đến tất cả các cổng của nó trừ cổng nó nhận được. Lúc này chức năng của switch không khác gì chức năng của một hub.
Ví dụ:
Hình 7.1 Mô hình tấn công làm ngập bảng CAM
Trong ví dụ trên, host C của kẻ tấn công gửi đi liên tục hàng loạt các bản tin có địa chỉ MAC nguồn là địa chỉ giả mạo (host X và host Y). Switch sẽ cập nhật địa chỉ của các host giả mạo này vào bảng CAM. Kết quả là khi host A gửi tin đến cho host B, địa chỉ của B không tồn tại trong bảng nên gói tin được switch gửi ra các cổng của nó và bản tin A chỉ gửi riêng cho B cũng sẽ được chuyển đến C.
SVTH: TRẦN THỊ CA- 49THM Page 148
7.1.2 Cách phòng chống.
Nguyên lí chung của các phương pháp phòng chống là không để các gói tin có địa chỉ MAC lạ đi qua switch. Phương pháp phòng chống hiệu quả nhất là cấu hình port security trên switch. Đây là một đặc trưng cấu hình cho phép điều khiển việc truy cập vào cổng switch thông qua địa chỉ MAC của thiết bị gắn vào.
Khi switch nhận được một gói tin chuyển đến, nó sẽ kiểm tra địa chỉ MAC nguồn của gói tin với danh sách các địa chỉ đã được cấu hình trước đó. Nếu hai địa chỉ này khác nhau thì tuỳ theo sự cấu hình của người quản trị mà switch sẽ xử lí gói tin đến với các mức độ khác nhau.
Các lệnh cấu hình port-security Câu lệnh Tác dụng Switch(config-if)# switchport mode access Thiết lập cổng về chế độ access Switch(config-if)# switchport port-security
Cho phép cổng được hoạt động trong chế độ port- security.
Switch(config-if)# switchport
port-security maximum value
Cho phép cấu hình số địa chỉ MAC tối đa mà cổng có thể học tự động và cho phép các thiết bị này truyền dữ liệu qua. Mặc định thì cổng chỉ cho phép một địa chỉ MAC (một thiết bị) được gán vào và số địa chỉ có thể nằm trong khoảng từ 1 đến 1024.
Switch(config-if)# switchport port-security mac-address
mac_address
Bên cạnh cách cấu hình cho phép switch học tự động địa chỉ MAC; có thể gán tĩnh một số địa chỉ MAC có thể truy cập vào một port. Nếu số lượng địa chỉ gán tĩnh mà nhỏ hơn số địa chỉ MAC switch có thể học tự động thì số địa chỉ MAC còn lại sẽ được học tự động.
Switch(config-if)# switchport port-security violation {protect |
SVTH: TRẦN THỊ CA- 49THM Page 149
restrict | shutdown} hành khi một gói tin đến không phù hợp với yêu cầu
của port-security (khi có nhiều hơn số địa chỉ MAC tối đa được học hoặc khi gói tin đến có địa chỉ MAC khác so với các địa chỉ MAC đã được cấu hình tĩnh). Các biện pháp xử lí có thể là :
- shutdown: cổng sẽ bị ngừng hoạt động, không nhận và chuyển gói tin.
- restrict: cổng chỉ cho phép các gói tin có địa chỉ MAC hợp lệ đi qua, các gói tin vi phạm sẽ bị huỷ. Đồng thời số lượng các bản tin vi phạm sẽ được thống kê và báo cho người quản trị biết.
- protect: cũng giống như trong trường hợp restrict, tuy nhiên việc vi phạm sẽ không được ghi lại.
Phương pháp này tuy có yêu cầu công việc của người quản trị tăng lên đôi chút tuy nhiên nó là phương pháp rất hiệu quả để khoá các gói tin không rõ nguồn gốc có ý định tấn công vào switch.
7.2 VLAN attack: VLAN Hooping.
Kiểu tấn công này thường xuất phát do có cấu hình sai tồn tại trên switch. Các cuộc tấn công VLAN hopping dựa vào trunking do cấu hình bất hợp lý các trunk port sẽ cho phép kẻ tấn công đi qua các thiết bị lớp 3 khi trao đổi thông tin từ một VLAN này sang một VLAN khác. Mặc định, các trunk port có thể truy nhập tới tất cả các VLAN, dữ liệu truyền qua đường trunk có thể được đóng gói theo chuẩn IEEE 802.1Q hoặc ISL (Cisco) được dùng để trao đổi thông tin giữa các switch.
SVTH: TRẦN THỊ CA- 49THM Page 150 Giao thức DTP (Dynamic Trunking Protocol) tự động cấu hình kiểu trunking ISL/802.1Q. Ta có thể cấu hình trạng thái DTP trên mỗi trunk port. Các trạng thái bao gồm: On, Off, Desirable, Auto và Non-Negotiate.
- On: trạng thái này được sử dụng khi switch khác không hiểu giao thức DTP.
- Off: trạng thái này được sử dụng khi port đã được cấu hình từ trước không với mục đích trở thành trunk port.
- Desirable: trạng thái này được sử dụng khi muốn trở thành trunk port. - Auto: Đây là trạng thái mặc định trên nhiều switch.
- Non-Negotiate: trạng thái này được sử dụng khi ta chỉ định cụ thể kiểu port là ISL hay 802.1Q .
7.2.1 Kiểu tấn công VLAN hopping cơ bản 7.2.1.1 Phương thức tấn công 7.2.1.1 Phương thức tấn công
Kẻ tấn công sử dụng một máy tính có cài phần mềm giả lập biến máy tính này thành một Switch và bật tính năng Trunking trên Switch giả này. Nếu port kết nối với máy tính này trên Switch thật có bặt tính năng Auto trunking (default setting) thì Switch giả trên sẽ trở thành một thành viên của tất cả các VLAN. Khi đó máy tính của kẻ tấn công có thể liên lạc được với mọi VLAN trong hệ thống.
Hình 7.2 Tấn công VLAN hopping cơ bản
Hoặc kẻ tấn công có thể dùng 1 Switch thật gắn vào hệ thống Switch bằng port có các tính năng Auto Trunking (DTP) hoặc cấu hình trunking theo 1 giao thức nào đó.
SVTH: TRẦN THỊ CA- 49THM Page 151
7.2.1.2 Cách phòng chống
Cách tốt nhất để chống Switch spoofing là tắt tính năng trunking trên tất cả các port ngoại trừ port dùng để nối đến các switch khác (sử dụng lệnh
switchport mode access trên các port không phải là trunk port). Trên port trunk thì cũng tắt tính năng dynamic trunnking (DTP), chỉ cấu hình trunk tĩnh.
7.2.2 Kiểu tấn công VLAN đóng gói kép 7.2.2.1 Cách thức tấn công 7.2.2.1 Cách thức tấn công
Attacker dùng phần mềm sửa đổi frames gán 02 VLAN Tag vào Ethernet frames trước khi gửi đi. Outer Tag chứa VLAN ID của VLAN Attacker đang dùng và VLAN ID này trùng với Native VLAN của đường trunk. Khi frames giả này được gửi đi, Switch đầu tiên nhận frame này sẽ remove Outer tag và gửi nó đi đến các port thuộc Outer VLAN và kể cả đường Trunk (nếu máy đích không có CAM table của switch này). Vì outer tag có VID trùng với native VID của đường trunk nên Switch đầu tiên không add thêm Tag nào vào frame của attacker. Khi frame này đến Switch thứ hai, Switch này xem phần Tag Inner và thấy rằng frame này cần được chuyển đến VID ghi trong inner Tag và nó chuyển frame này đến port thuộc VLAN cần tấn công hoặc floods nó nếu không có trong CAM tabe.
SVTH: TRẦN THỊ CA- 49THM Page 152
7.2.2.2 Cách phòng chống
Kiểu tấn công này chỉ xảy ra khi native VLAN trên đường trunk trùng với VLAN mà attacker sử dụng để tấn công. Vì thế ta nên set native trên các đường trunk là 1 VLAN không có người dùng nào sử dụng (không có port vào gán vào VLAN này – unused VLAN)
7.3 Spoofing Attack (Tấn công giả mạo) 7.3.1 DHCP spoofing 7.3.1 DHCP spoofing
7.3.1.1 Phương thức tấn công
Một Server DHCP thông thường cung cấp những thông tin cơ bản cho một máy tính hoạt động trên mạng. Ví dụ: máy tính người dùng có thể nhận địa chỉ IP, địa chỉ gateway, địa chỉ DNS… Giả sử kẻ tấn công xây dựng một Server DHCP giả trong cùng mạng với máy tính người dùng, và khi máy tính người dùng thực hiện gởi broadcast DHCP Request, khi đó Server DHCP giả có thể sẽ gởi thông tin trả lời và máy tính người dùng sẽ dùng Server DHCP giả làm gateway. Lúc này tất cả luồng dữ liệu gởi ra mạng bên ngoài đều sẽ đi qua gateway giả và kẻ tấn công sẽ thực hiện phân tích và biết được nội dụng của dữ liệu sau đó gói được chuyển tiếp đi như bình thường. Đây là một dạng tấn công “man-in-the-middle”, kẻ tấn công thay đổi đường đi của gói dữ liệu mà người dùng không thể nhận biết.
SVTH: TRẦN THỊ CA- 49THM Page 153
7.3.1.2 Cách phòng chống
Với DHCP Snooping sẽ giúp ngăn chặn loại tấn công này loại này. Khi DHCP được kích hoạt, cổng trên Switch sẽ phân loại thành cổng tin cậy (trusted) và không tin cậy (untrusted).
Cổng tin cậy cho phép nhận DHCP Reply hay cổng được kết nối với Server DHCP, trong khi cổng không tin cậy chỉ cho phép nhận DHCP Request hay cổng kết nối với máy tính người dùng. Nếu Server DHCP giả gắn vào cổng không tin cậy và gởi DHCP Reply thì gói Reply sẽ bị loại bỏ. DHCP Snooping sẽ thực hiện phân tích gói DHCP Request và Reply, xây dựng bảng cơ sở dữ liệu về địa chỉ IP được cấp, địa chỉ MAC, thông tin cổng… mà máy tính đó thuộc.
Hình 7.5 Giải pháp chống DHCP spoofing
7.3.1.3 Các câu lệnh cấu hình
Câu lệnh Tác dụng
SW(config)#ip dhcp snooping Kích hoạt tính năng DHCP Snooping
SW(config)#ip dhcp snooping vlan
vlan_id
Xác định tính năng DHCP Snooping trên VLAN
SW(config)#interface port
SW(config-if)#ip dhcp snooping trust
SVTH: TRẦN THỊ CA- 49THM Page 154
7.3.2 Spanning tree compromise (Tấn công làm tổn thương Spanning tree) 7.3.2.1 Giả mạo root bridge. 7.3.2.1 Giả mạo root bridge.
Lợi dụng điểm yếu về chứng thực bản tin, một hacker có thể tiến hành tấn công theo kiểu gửi đi bản tin BPDU giả dạng để tuyên bố mình là root bridge. Thực hiện điều này không khó bởi chỉ cần gửi đi bản tin BPDU có priority cực thấp thì khả năng của host trở thành root bridge là rất cao.
Hậu quả của kiểu tấn công giả mạo:
Cấu trúc cây STP bị thay đổi không theo ý muốn của người quản trị. Ví dụ khi kẻ tấn công chiếm được quyền làm root bridge, khi nhận được bản tin TCN báo có sự thay đổi cấu hình từ một switch, root vẫn gửi đi bản tin BPDU với TC =0 báo trạng thái STP bình thường. Kết quả là mọi switch khác đều không biết về sự thay đổi này dẫn đến việc trao đổi thông tin có thể bị gián đoạn.
Dữ liệu truyền qua lại giữa các switch thuộc các nhánh khác nhau của cây STP sẽ được truyền qua host trước (tấn công Man-in-The- Middle).
Hình 7.6 Mô hình tấn công giả mạo root bridge
Mô tả các bước tấn công :
SVTH: TRẦN THỊ CA- 49THM Page 155
Kẻ tấn công trên PC 4 gửi đi bản tin giả mạo có Priority thấp nhất đến switch 3.
Quá trình hội tụ trong mạng diễn ra như sau: Khi switch 3 nhận được bản tin BPDU từ cổng 3 của nó, nó biết là có sự thay đổi topology của mạng. Lúc đó 3 cổng trên switch 3 sẽ chuyển từ trạng thái blocking sang trạng thái listening để switch tham gia vào quá trình bình bầu root bridge, root port và designated port.
Trong trạng thái này, switch 3 cũng gửi đi bản tin BPDU có priority 0 đến hai switch 1 và 2. Quá trình bình bầu diễn ra có kết quả như sau:
Các switch sẽ coi PC 4 là root bridge.
Trên switch 3: cổng 3 được chọn làm root port vì có chi phí đến root thấp nhất, cổng 1 và 2 được chọn làm designated port vì nó gửi đi bản tin quảng cáo có chi phí thấp hơn so với chi phí của các bản tin gửi từ switch 1 và 2.
Trên switch 1: cổng 1 được chọn làm root port, cổng 2 được chọn là designated port vì tuy cùng cost đến root nhưng switch 1 có priority thấp hơn switch 2.
Trên switch 2: cổng 1 được chọn làm root port, cổng 2 là non- designated port.
Sau khi đã chọn được root port, switch 3 sẽ gửi đi bản tin TCN qua cổng 3 cho root bridge mới thông báo là đã có sự thay đổi trong mạng. Kẻ tấn công gửi lại bản tin TCA cho switch 3 và gửi đi bản tin BPDU có TC=1 đến tất cả các switch khác. Các switch khác khi nhận được bản tin này sẽ đặt thời gian tồn tại các ánh xạ trong bảng cache xuống còn 15s để chuẩn bị học địa chỉ MAC mới.
SVTH: TRẦN THỊ CA- 49THM Page 156
Hình 7.7 Trạng thái Listening
Tất cả quá trình trên được diễn ra trong khoảng 15s (các cổng trên switch ở trạng thái listening). Các switch đợi thêm 15s nữa để học lại địa chỉ MAC. Sau 30s các cổng là root port hoặc designated port sẽ được đặt vào trạng thái forwarding còn các cổng là non-designated port sẽ được đặt vào trạng thái blocking. Trạng thái hội tụ mới:
Hình 7.8 Mô tả trạng thái thay đổi của STP
Ta có thể thấy rõ cấu trúc cây STP đã bị thay đổi hoàn toàn.
Tấn công Man-in-The-Middle
SVTH: TRẦN THỊ CA- 49THM Page 157 Trong sơ đồ tấn công trên, kẻ tấn công cần có hai card mạng gắn vào các cổng tương ứng trên các switch. Sau khi gửi đi bản tin giả mạo, cây STP mới sẽ là:
Hình 7.10 Mô hình cây STP mới
Ta có thể thấy: dữ liệu từ PC 1 sang PC 2 phải đi qua máy của kẻ tấn công thay vì đi trực tiếp qua đường nối giữa switch 1 và switch 2 như trong sơ đồ mạng trước khi bị tấn công.
7.3.2.2 Tấn công DoS
Kiểu tấn công DoS dựa vào điểm yếu thứ hai của STP: chỉ cần kẻ tấn công gửi đi bản tin BPDU giả mạo thông báo có sự thay đổi topology của mạng, sau đó thuật toán STP sẽ được các switch thực hiện và nếu bản tin này được gửi đi liên tục thì các switch chỉ làm được nhiệm vụ chạy STP mà không thực hiện được các chức năng khác. Hậu quả của kiểu tấn công này là các dịch vụ của mạng sẽ bị tê liệt.
Ví dụ: Kẻ tấn công có thể thực hiện kiểu tấn công DoS như sau :
Bước1: Bắt một gói tin BPDU để lấy ra priority của root bridge hiện thời.
Bước2: Gửi đi bản tin quảng cáo với priority giảm dần.
Bước3: Khi priority giảm về 0, kẻ tấn công không gửi đi bản tin quảng cáo nữa. Sau khoảng thời gian Maxage, các switch sẽ bình
SVTH: TRẦN THỊ CA- 49THM Page 158 bầu lại và sau 50s, mạng lại hội tụ và kẻ tấn công lại tiếp tục các bước như trên.
Hậu quả là các cổng trên switch luôn ở trong trạng thái listening. Khi đó bất kì một gói tin nào đi đến switch cũng đều bị hủy. Kết quả là việc trao đổi thông tin trong mạng có thể sẽ không được thực hiện suôn sẻ như bình thường.
Phòng chống:
Cách phòng chống giả mạo STP nói chung là không cho host gửi đi bản tin BPDU giả mạo: cấu hình portfast, BPDU guard và root guard.
o Cấu hình portfast: việc cấu hình portfast sẽ chuyển trạng thái của cổng switch từ trạng thái blocking sang trạng thái Forwarding ngay lập tức, làm giảm thời gian hội tụ STP về 0. Tuy việc cấu hình portfast làm giảm thời gian hội tụ STP về 0 nhưng thuật toán STP vẫn chạy và vẫn phát hiện loop. Tuy nhiên loop chỉ có thể được phát hiện sau một khoảng thời gian nhất định: khoảng thời gian để chuyển cổng thành các trạng thái STP bình thường.
o Câu lệnh cấu hình:
Switch(config-if)# spanning-tree portfast
o Cấu hình BPDU guard: cấu hình này thường đi kèm với cấu hình portfast trên cùng một cổng. Nếu cổng nhận được bất kì một bản tin BPDU nào đó thì ngay lập tức, cổng sẽ được chuyển vào trạng thái