5. Giới thiệu
7.3.2 Spanning tree compromise (Tấn công làm tổn thương Spanning tree)
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 errdisable, trạng thái cần phải bị shut-down do lỗi. Cổng chỉ có thể được hoạt động trở lại khi có sự can thiệp của người quản trị hoặc được khôi phục lỗi tự động sau khoảng thời gian timeout của trạng thái errdisable.
o Câu lệnh cấu hình:
SVTH: TRẦN THỊ CA- 49THM Page 159
o Cấu hình root guard: việc cấu hình root guard được tiến hành trên giao diện của một switch. Bình thường khi một switch nhận được bản tin BPDU của một switch có bridgeID tốt hơn root bridge của nó, ngay lập tức nó sẽ công nhận switch mới chính là root bridge và như vậy làm mất đi tính ổn định của mạng. Với việc cấu hình root guard, khi một cổng của switch nhận được bản tin BPDU quảng cáo tốt hơn, port sẽ được chuyển sang một trạng thái được gọi là root-inconsistent. Trong trạng thái này, dữ liệu và BPDU không được gửi nhận qua cổng nhưng switch vẫn lắng nghe các bản tin BPDU trên đó. Chừng nào không nhận được bản tin BPDU tốt hơn nữa, port sẽ trở lại trạng thái bình thường.
o Câu lệnh cấu hình:
Switch(config-if)# spanning-tree guard root
7.3.3 ARP spoofing
Lợi dụng điểm yếu của giao thức ARP là giao thức stateless: có nghĩa là một host khi nhận bản tin reply vẫn cập nhật thông tin trong đó vào ARP cache mặc dù nó hoàn toàn không gửi đi ARP request, kẻ tấn công lợi dụng điểm yếu này để gửi đi bản tin giả mạo địa chỉ MAC nguồn tới máy nạn nhân. Kết quả là mọi thông tin máy bị tấn công gửi đi tới một host có địa chỉ IP được chứng thực sẽ được chuyển qua máy của kẻ tấn công trước tiên. Một loạt các hình thức là hệ quả của kiểu tấn công giả mạo này có thể là: DoS, man-in-the-middle (MITM), chiếm đường truyền hoặc phiên truyền …
7.3.3.1 Giả mạo ARP
Có hai hình thức dựa trên kiểu giả mạo ARP này:
Hình thức thứ nhất: kẻ tấn công gửi đi bản tin ARP reply với địa chỉ MAC là địa chỉ broadcast ở lớp 2 FF:FF:FF:FF:FF:FF. Kết quả là thông tin máy nạn nhân khi gửi unicast đến một host nào đó cũng bị coi là gửi đến tất cả các host trong mạng.
SVTH: TRẦN THỊ CA- 49THM Page 160
Hình thức thứ hai: kẻ tấn công gửi ra toàn mạng bản tin ARP reply giả mạo địa chỉ MAC của một server nào đó trong mạng bằng một địa chỉ MAC không tồn tại. Kết quả là khi các host yêu cầu một dịch vụ nào đó trên server thì sẽ không được đáp ứng. Gói tin yêu cầu có gửi đi nhưng sẽ bị huỷ vì không có host nào nhận cả. Đây chính là kiểu tấn công DoS.
7.3.3.2 Kiểu tấn công Man-in-the-middle (MITM)
Theo cách tấn công này, kẻ tấn công sẽ dùng bản tin ARP reply giả mạo gửi đến cả hai máy nạn nhân. Ví dụ:
Hình 7.11Sơ đồ tấn công Man-in-the-middle
Giả sử có hai máy A và B cần trao đổi thông tin với nhau. Máy X gửi bản tin ARP reply cho máy A với địa chỉ IP nguồn là địa chỉ của B còn địa chỉ MAC nguồn là địa chỉ của X. Ngược lại, X cũng gửi tới B bản tin giả mạo với địa chỉ IP nguồn là địa chỉ IP của A và địa chỉ MAC nguồn là địa chỉ MAC của X.
Kết quả là khi A và B trao đổi thông tin với nhau, toàn bộ thông tin này sẽ được trung chuyển qua X mà hai host này không hề hay biết. Kẻ tấn công có thể thay đổi hoặc đánh cắp thông tin tuỳ theo ý định tấn công. Tuy nhiên, để thực hiện thành công kiểu tấn công này, trên máy của kẻ tấn công phải sử dụng phần mềm chuyển gói tin thời gian thực: gói tin đến từ A hoặc B phải được gửi đi ngay tức khắc và mọi gói tin đều phải giữ nguyên thông số TTL (time to live).
SVTH: TRẦN THỊ CA- 49THM Page 161
Cách phòng chống
DAI (Dynamic ARP Inspection) là một tính năng được sử dụng để phòng chống ARP spoofing. DAI đặt từng cổng của switch ở trạng thái là không tin cậy (mặc định) hay tin cậy, thực hiện các thông điệp DAI chỉ trên những port không tin cậy. DAI kiểm tra từng thông điệp ARP request hay reply trên những port không tin cậy để quyết định xem thông điệp có phù hợp hay không.Nếu không phù hợp, switch sẽ lọc các thông điệp ARP này. DAI sẽ xác định một thông điệp ARP có hợp lệ hay không bằng cách dùng thuật toán sau:
Nếu một thông điệp ARP Reply liệt kê một địa chỉ nguồn IP mà không phải do DHCP cấp đến một thiết bị trên cổng đó, DAI sẽ lọc gói tin ARP Reply.
DAI dùng thêm các thuật toán tương tự bước 1 nhưng dùng một danh sách của các địa chỉ IP/MAC được cấu hình tĩnh.
Đối với một thông điệp ARP Reply, DAI so sánh địa chỉ nguồn MAC trong Ethernet header với địa chỉ nguồn MAC trong thông điệp ARP. Các giá trị MAC này phải giống nhau trong thông điệp ARP bình thường. Nếu các giá trị này không giống nhau, DAI sẽ lọc gói tin.
Giống như bước 3, nhưng DAI sẽ so sánh địa chỉ MAC đích và địa chỉ MAC liệt kê trong thông thông điệp ARP.
DAI kiểm tra các địa chỉ IP không mong đợi được liệt kê trong thông điệp ARP chẳng hạn như 0.0.0.0, 255.255.255.255, multicasts …
SVTH: TRẦN THỊ CA- 49THM Page 162
Câu lệnh cấu hình DAI:
Câu lệnh Tác dụng
SW(config)#ip arp inspection vlan
vlan_id[,vlan_id]
Kích hoạt tính năng DAI trên một hay nhiều vlan
SW(config-if)#ip arp inspection trust Kích hoạt tính năng DAI trên một cổng giao tiếp và thiết đặt cổng đó là một cổng đáng tin cậy (trusted interface)
SW(config-if)#ip arp inspection validate {[src-mac] [dst-mac] [ip]}
Cấu hình DAI sẽ loại bỏ gói tin khi mà địa chỉ IP không tồn tại
SVTH: TRẦN THỊ CA- 49THM Page 163
KẾT LUẬN
Sau một thời gian nghiên cứu, đồ án của em đã giải quyết được một số vấn đề sau:
- Tìm hiểu chung về mạng campus: chỉ ra mạng campus cũ và mạng campus mới, mô hình và các kỹ thuật chuyển mạch trong mạng campus. - Tìm hiểu cách triển khai VLAN (virtual local area network) và STP (
spanning-tree Protocol) trong mạng campus: cách tạo, cấu hình và lợi ích của các giao thức sử dụng trong mạng.
- Tìm hiểu Inter-VLAN và multilayer swicth: sử dụng và cấu hình định tuyến của giao thức trong mạng.
- Tìm hiểu thêm những tính năng nâng cao: HSRP, VRRP, GLBP, mục đích và cách cấu hình sử dụng giao thức trong mạng.
- Triển khai một số ứng dụng thực tế: mô tả cuộc gọi thoại ( IP telephone), và ứng dụng trong Wireless LAN.
- Tìm hiểu và cấu hình bảo mật trong mạng doanh nghiệp.
Tuy nhiên, do sự hạn chế về kiến thức và thời gian nên đồ án của em vẫn còn nhiều thiếu sót: việc triển khai được bảo mật trên mạng chưa đầy đủ và chưa chỉ rõ được các ứng dụng thực tế sử dụng mạng chuyển mạch đa lớp. Trong thời gian tới em sẽ tiếp tục hoàn thiện đề tài hơn để áp dụng vào thực tế.
Qua đây em cũng xin cảm ơn sự gúp đỡ tận tình của của các thầy cô trong bộ môn mạng truyền thông, các thầy cô trong khoa công nghệ thông tin đặc biệt là thầy Phạm Văn Nam – thầy hướng dẫn thực tập em trong suốt ba tháng qua đã tận tình giúp đỡ và tạo điều kiện cho em và các bạn hoàn thành được đồ án này. Em xin chân thành cảm ơn!
Nha Trang ngày 10 tháng 6 năm 2011
3. http://cabrillo.edu/~rgraziani/courses/cis187.html
4. http://cisco.com
5. Building Cisco Mutilayer Switched Networks 5.0 LAB 6. Và những thông tin trên internet.