Demo mac flooding trên hệ điều hành ubuntu
Trong bài này, giới thiệu với các bạn các kiểu tấn công vào lớp 2 OSI và các cách phòng chống. Đầu tiên là kiểu tấn công vào bảng CAM (content address memory) của switch. 1. Địa chỉ MAC: Một địa chỉ MAC bao gồm 6 byte và thường được viết dưới dạng hexa, với các thiết bị của Cisco, địa chỉ này được viết dưới dạng số hexa ,ví dụ: 0000.0C12.FFFF là một địa chỉ MAC hợp lệ. Để đảm bảo địa chỉ MAC của một thiết bị là duy nhất, các nhà sản xuất cần phải ghi địa chỉ đó lên ROM của thiết bị phần cứng và định danh của nhà sản xuất sẽ được xác định bởi 3 byte đầu OUI (Organizationally Unique Identifier). Địa chỉ MAC được phân làm 3 loại 2.Chức năng chuyển mạch của switch: Để có thể vận chuyển chính xác được gói tin đến đích, switch cần phải có một sơ đồ ánh xạ giữa địa chỉ MAC của các thiết bị vật lí gắn tương ứng với cổng nào của nó. Sơ đồ này được lưu lại trong switch và được gọi là bảng CAM (Content Address Memory). Quá trình vận chuyển gói tin qua switch có thể được mô tả như sau: Ví dụ: Hình 1.1: Chức năng chuyển mạch của switch Các thao tác đối với bảng CAM của một switch [1]: Ví dụ: Host có địa chỉ MAC 0050.8b11.54da đã được gắn vào cổng Hình 1.2: Nội dung bảng CAM của switch.
3.Kiểu tấn công làm tràn bảng CAM (MAC flooding): 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 1.3: Mô
hình tấn công làm ngập bảng CAM 3.2.Cách phòng chống: 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: 3.3.Thí nghiệm thực tế: Hình 1.4: Sơ đồ thí nghiệm MAC flooding. • Bước 1: kẻ tấn công dùng phần mềm macflood làm ngập bảng CAM của
switch. Phần mềm này có thể làm tràn bảng CAM của switch trong vòng chưa đầy nửa giây. Cách sử dụng macflood: Hình 1.5: Minh hoạ việc sử dụng phần mềm macflood Kết quả khi hiện bảng CAM của switch: Hình 1.6:Nội dung bảng CAM của switch sau khi bị tấn công. • Bước 2: mục đích của thí nghiệm này là để kiểm tra việc truyền tin giữa hai switch và máy còn lại có bị nghe trộm hay không. Để đơn giản cho việc kiểm tra; ta ping từ switch sang máy nạn nhân. Dùng phần mềm ethereal trên máy tấn công bắt gói tin ICMP. Kết quả là: Hình 1.7: Nội dung gói tin ICMP bị nghe lén.
Hình 1.8: Switch được cấu hình port security • Bước 4: Tiến hành tấn công macflood lần thứ hai. Lần này ta chỉ gửi đi 5 bản tin có địa chỉ MAC giả mạo: Hình 1.9: Tấn công macflood lần hai
Hình 1.10: Bảng CAM sau lần tấn công thứ hai. Ta có thể nhận thấy rằng: bảng CAM chỉ chứa 3 ánh xạ nhận được từ cổng fa 4.Nhận xét, đánh giá kết quả: Một câu hỏi đặt ra là nếu switch không hỗ trợ tính năng port security thì sao? Một biện pháp có thể được dùng để phòng chống là sử dụng phần mềm phát hiện gói tin giả mạo. Như ta đã thấy, sau khi bảng CAM của switch bị tràn, mọi gói tin đến switch đều bị gửi ra các cổng và việc tấn công này cần phải tiến hành liên tục để đảm bảo rằng bảng CAM luôn bị tràn. Do đó trong khoảng thời gian aging (khoảng thời gian để switch xóa một ánh xạ ra khỏi bảng nếu không nhận được thông tin trao đổi trên cổng); kẻ tấn công phải tiến hành gửi đi ít nhất 2 lần số bản tin giả mạo. Ta có thể dùng một máy tính gắn vào một cổng trên switch để bắt các gói tin giả mạo này (do chúng bị flood ra tất cả các cổng). Từ các gói tin bị bắt được, phần mềm sẽ đọc ra địa chỉ MAC nguồn của gói tin. Nếu trong một khoảng thời gian nhất định (bằng khoảng thời gian aging của switch) số địa chỉ MAC nguồn là quá lớn, phần mềm sẽ ghi lại kết quả và báo cho người quản trị biết rằng đã có tấn công trong mạng. Tuy nhiên phương pháp này lại có rất nhiều nhược điểm: Hình 1.11: Hậu quả dây chuyền của tấn công macflood Kết quả là nếu máy phát hiện có gói tin giả mạo trên một switch thì cũng chưa thể tìm ra ngay được thủ phạm bởi vì máy của kẻ tấn công có thể nằm trên một switch khác. Việc dò tìm có thể tiến hành nếu người quản trị vào từng switch; dùng lệnh show cam- address-table để biết được gói tin giả mạo nhận được trên cổng nào. Nếu cổng nhận được nối đến switch khác thì lại phải sang switch đó để dò tiếp. Nếu cổng nhận được là một PC thì đó chính là máy của kẻ tấn công. Việc dò tìm này sẽ khá mất công nếu số lượng switch trong mạng là lớn.Như vậy so với việc phòng chống bằng port security thì phương pháp này kém hiệu quả hơn rất nhiều. 5.Code macflood: Code: #include int main(int argc, char **argv) /* Check the validity of the command
line */ /* Open the adapter */ /* Supposing to be on ethernet, set mac destination to 1:1:1:1:1:1 */ //cho dia chi sau bang 0 het for (i=1;i<=10000; i++) while (m>0) } /* Fill the rest of the packet */ /* Send down the packet */ } Nguyễn Việt Anh Lượt xem (3271) |