Ghi chú về mac flooding
mac flooding
1
port security
1
Male avatar

manhdung viết ngày 29/06/2015

Hôm nay, khi tôi đọc tài liệu cấu hình switch có gặp một tính năng gọi là port security. Tìm hiểu ngược lại xem tại sao cần port security thì bắt gặp thuật ngữ mac flooding. Tôi đã gặp thuật ngữ này từ hồi học đại học nhưng thời điểm đó chẳng quan tâm. Đến tận bây giờ, đọc một hồi, trao đổi với đồng nghiệp một chập thấy rất thú vị nên chia sẻ luôn. Chúng ta sẽ đi xuôi từ vấn đề cho đến giải pháp.

Mac flooding là gì ?

Đây là một kỹ thuật tấn công trong LAN rất phổ biến. Mục đích của kỹ thuật này là chiếm dụng toàn bộ bandwidth toàn bộ mạng LAN bằng các broadcast traffic. Thoạt nhìn thì chỉ là mục đích phá hoại nhưng đối tượng tấn công có thể đi xa hơn khi tận dụng để nghe lén packet của người khác. Một mục đích nguy hiểm hơn hẳn.

Mac flooding hoạt động thế nào ?

Kẻ tấn công phải nằm trong chính mạng LAN đó. Hắn ta sẽ sử dụng một software để tạo thật nhiều frame với source mac address giả mạo (mac spoofing) rồi gửi đến switch. Khi nhận được frame này, switch chẳng tài nào phân biệt đâu là giả đâu là thật. Nó sẽ xem frame này như một frame bình thường. Nó cập nhật source mac address vào bảng CAM ( Bảng CAM hay có người gọi là bảng MAC sẽ lưu trữ các liên kết giữa mac address và port vật lý của switch. Nhờ vào bảng CAM, switch có thể biết đượcc một thiết bị có mac address X đang nằm ở port vật lý nào để còn đẩy frame trả lời về port đó. Switch sẽ không phải broadcast frame như cách hub vẫn làm nữa). Với chỉ một hai mac address giả mạo thì không thành vấn đề. Nhưng như tên gọi, kẻ tấn công sẽ không chỉ dừng ở một hay hai mac address. Hắn sẽ đầu độc switch liên tục toàn các mac address giả mạo đến một thời điểm mà toàn bộ bảng CAM đầy. Quá trình này cũng loại bỏ đi các mapping mac-port đúng trước đó để nhường chỗ cho các thông tin giả mạo liên tục tràn vào. Vì lúc này chỉ chứa toàn địa chỉ giả mạo nên bảng CAM không còn giúp cho switch forward frame đến đúng port được nữa. Khả năng học hỏi điều đúng đắn của switch cũng bị ngăn chặn khi nó liên tục bị đầu độc.

Có thể bạn nghĩ switch sẽ bị quá tải khi bảng CAM đầy. Chính tôi cũng đã nghĩ như vậy. Nhưng sau khi thảo luận với đồng nghiệp, tôi nhận ra đó là suy nghĩ sai lầm. Bảng CAM nằm trong một memory space cố định và riêng biệt nên không thể có chuyện switch sẽ tự ngốn sạch toàn bộ memory của nó khiến IOS bị crash. Nó cũng giống như việc một ứng dụng nằm trong user space bị cạn sạch memory rồi crash thì không làm ảnh hưởng được đến kernel.

Quay trở lại câu chuyện, mọi giao tiếp thông thường lúc này sẽ đều khiến switch phát sinh một broadcast traffic do trong switch chẳng còn thông tin mac đúng nữa để mà forward unicast. Switch hoạt động chẳng khác nào hub. Điều này dẫn đến hai hậu quả. Một là quá nhiều broadcast traffic làm bandwidth LAN bị ngốn sạch. Hai là kẻ tấn công có thể nhân cơ hội này để nghe lén mọi traffic trên mạng vì gói tin broadcast có đập đến network card của hắn. Một network card thường có chế độ gọi promisc mode cho phép network interface controller nhận tất cả các traffic thay vì chọn lọc các traffic hướng đến nó.

GIải pháp ?

Bạn phải có managed switch để thực hiện giải pháp này. Với các unmanaged switch việc phát hiện và xử lý sẽ rất khó khăn. Hiện tại, các dòng switch cisco hầu hết đều hỗ trợ một tính năng gọi là port security. Tính năng này thích hợp cho môi trường office network vừa và lớn. Bằng việc cấu hình, network admin có thể đăng ký một số lượng mac address nhất định ứng với một port vật lý mà switch được phép học. Nếu vượt quá giá trị đăng ký, switch sẽ discard các frame có unknown mac hoặc shutdown port đó luôn. Mac flooding không thể nào làm tràn bảng CAM được. Ngay cả khi không cấu hình port security, một managed switch cũng có thể giúp xác định nguồn tấn công nhanh chóng. Bạn chỉ cần show bảng mac và quan sát các mac giả mạo đến từ port nào. Nếu tổ chức switch theo mô hình ba layer: core-distributed-edge thì giới hạn một port switch đã thu hẹp phạm vi tìm kiếm rất nhiều.

Một chú ý nhỏ khi dùng port security. Nếu có sự dịch chuyển nhân sự, port security có thể vô tình chặn các traffic hợp lệ. Tình huống như sau: Bạn đăng ký tối đa có 10 MAC cho một port. Có 6 người làm việc thường xuyên thực hiện traffic qua port đó như vậy switch sẽ ghi nhớ có 6 mac hoạt động trên tổng số 10 mac. Không có vấn đề gì. Nhưng nếu một ngày nào đó 6 người này chuyển đi, thay vào đó 6 người mới dùng các thiết bị mới. Các mac cũ vẫn được giữ. Mỗi mac được học đều có aging. Sau thời gian này, switch sẽ quên mac học được nhưng không may thời điểm chuyển chỗ 6 mac cũ chưa được quên. Switch cứ thế học hỏi tiếp. Switch học được 10/10 mac đến tới hạn luôn. Tùy vào action bạn chọn là discard hay shutdown mà có hai người không vô được mạng hay toàn bộ cả 6 người mới không vô được mạng luôn.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

manhdung

44 bài viết.
240 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
67 11
Giới thiệu RabbitMQ là một message broker ( messageoriented middleware) sử dụng giao thức AMQP Advanced Message Queue Protocol (Đây là giao thức ph...
manhdung viết hơn 2 năm trước
67 11
Male avatar
45 4
Giả định bạn tiếp nhận một server mới toanh, bạn cần tìm một số thông tin về nó như loại CPU, loại main, loại memory, memory dùng của hãng nào... c...
manhdung viết hơn 1 năm trước
45 4
Male avatar
38 7
Giới thiệu MongoDB là một giải pháp nosql database. Data được lưu ở dạng các bson document. Hỗ trợ vertical scaling và horizontal scaling, dynamic...
manhdung viết hơn 2 năm trước
38 7
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
44 bài viết.
240 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!