Phương pháp tấn công DDoS chủ yếu thường là tấn công tràn ngập mạng thông qua việc gửi số lượng lớn các gói tin đến nạn nhân, việc làm này tiêu tốn tài nguyên mạng như băng thông, bộ đệm
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thế Hùng
XÁC THỰC CÁC THÀNH PHẦN TRONG HỆ THỐNG PAC ĐỂ CHỐNG LỪA DỐI VÀ LỢI DỤNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Mạng truyền thông
HA NOI-2010
Trang 2KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Mạng truyền thông
HA NOI-2010
Trang 3
Tóm tắt nội dung luận văn
Giao thức lan tỏa ngược là một cơ chế để phòng chống lại các cuộc tấn công DDoS theo phương pháp phản ứng lại và kết hợp nhiều vị trí Giao thức lan tỏa ngược được nhóm tác giả (ĐHCN) công bố lần đầu tại Hội nghị Khoa học Công nghệ Thái Nguyên (2007) Sau đó tác giả Hoàng Văn Quân (K49 ĐHCN) đã trình bày chi tiết mô hình lý thuyết và cài đặt thử nghiệm phần lõi của giao thức trong khóa luận tốt nghiệp đại học (2008 - ĐHCN) Những phần còn lại trong mô hình lý thuyết vẫn chưa được phát triển Vì vậy, dưới sự định hướng của giáo viên hướng dẫn và sự trợ giúp của tác giả, tôi thực hiện khóa luận tốt nghiệp này với mục đích hoàn thiện đầy đủ các thành phần đã nêu trong mô hình lý thuyết của giao thức
Trang 4
MỤC LỤC
Mở đầu: Tính cấp thiết của đề tài 1
Chương 1: Tổng quan về DDoS 2
1.1 Tổng quan về tấn công DDoS 2
1.1.1 Khái niệm về DDoS 2
1.1.2 Tổ chức mạng lưới DDoS 3
1.1.2.1 Tuyển mộ mạng lưới Agent 3
1.1.2.2 Điều khiển mạng lưới Agents 5
1.1.3 Các loại tấn công DDoS ……… 7
1.1.3.1 SYN flood attack: 8
1.1.3.2 UDP Flood attack 9
1.1.3.3 Smurf attack 14
1.1.3.4 DNS Zone Transfer based Flooding 10
1.1.3.5 Ping based attacks 16
1.1.3.6 CGI attacks(Common Gateway Interface) 16
1.2 Tổng quan về phòng thủ DDoS 17
1.2.1 Tại sao DDoS khó giải quyết 17
1.2.2 Những thách thức khi xây dựng hệ thống phòng thủ DDoS 18
1.2.2.1 Về mặt kĩ thuật 18
1.2.2.2 Về mặt xã hội 19
1.2.3 Mục tiêu khi xây dựng hệ thống phòng thủ 20
1.2.4 Các hướng phòng thủ DDoS 21
1.2.4.1 Phòng ngừa và Phản ứng lại 21
Trang 5
1.2.4.2 Vị trí của hệ thống phòng thủ 17
Chương 2: Các nghiên cứu về phòng chống DDoS 25
2.1 Giao thức AITF 25
2.1.1 Giới thiệu … … 25
2.1.2 Tổng quan về giao thức AITF 25
2.1.3 Cơ chế hoạt động AITF 26
2.1.4 nhận xét 27
2.2 Hệ thống D-WARD 27
2.2.1 Mục tiêu 27
2.2.2 Triển khai D-WARD 28
3.2.3 Nhận xét 29
Chương 3: GIAO THỨC LAN TỎA NGƯỢC 29
3.1 Giới thiệu về giao thức Lan tỏa ngược 29
3.1.1 Khái niệm chung 29
3.1.2 Các thuật ngữ 30
3.1.2.1 Bộ lọc (Filter) 30
3.1.2.2 Router/Gateway 30
3.1.2.3 Cơ chế “Lan tỏa ngược” 30
3.2 Cơ chế hoạt động 31
3.2.1 Bước 1: Khởi động 31
3.2.2 Bước 2: Bắt đầu 32
3.2.3 Bước 3: Kiểm tra giả mạo 32
3.2.4 Bước 4: Rút gọn 32
Trang 6
3.2.5 Bước 5: Ngăn chặn 33
3.2.6 Bước 6: Lan tỏa ngược 34
3.3 Chống lừa dối 35
3.3.1 Nguy cơ 35
3.3.2 Giải pháp 35
3.4 Chống lợi dụng giao thức 36
3.4.1 Nguy cơ 36
3.4.2 Giải pháp 36
3.5 Nhận xét 37
3.5.1 Ưu điểm 37
3.5.2 Nhược điểm 37
Chương 4: Phát triển chức năng rút gọn và xác thực cho giao thức lan tỏa ngược 38
4.1 Rút gọn 38
4.1.1 Ý tưởng 38
4.1.2 Cách thức xác định địa chỉ IP của Agw 38
4.1.3 Thực thi quá trình rút gọn 40
4.1.4 Nhận xét 40
4.2 xác thực 35
4.2.1 Ý tưởng 41
4.2.2 Thực thi quá trình xác thực 41
4.2.3 Kết luận 42
Kết Luận 43
Trang 7
Mở đầu: Tính cấp thiết của đề tài
Sự bùng nổ về công nghệ thông tin và viễn thông kéo theo sự xuất hiện của nhiều vấn đề nan giải liên quan đến mạng Internet Tấn công DDoS là một trong những vấn đề nóng hổi, luôn thu hút được sự quan tâm của cộng đồng Internet Trong những năm gần đây, ngày càng có nhiều các cuộc tấn công DDoS với qui mô lớn, gây ảnh hưởng nghiêm trọng đến các tổ chức lớn như:
Vào ngày 15 tháng 8 năm 2003, Microsoft đã chịu đợt tấn công DDoS làm gián đoạn websites trong vòng 2 giờ
Vào lúc 15:09 giờ GMT ngày 27 tháng 3 năm 2003: toàn bộ phiên bản tiếng anh của website Al-Jazeera bị tấn công làm gián đoạn trong nhiều giờ
Tháng 6 năm 2004, một cuộc tấn công DDoS đánh sập Akamail name server, khiến khách hàng không thể truy cập đến server dịch vụ, bao gồm cả công cụ tìm kiếm phổ biến Google và Yahoo, một tháng sau đó một cuộc tấn công khác làm tràn ngập Doubleclick name server khiến các khách hàng của dịch vụ này tê liệt trong vòng 3 giờ
Trên thế giới đã có nhiều nghiên cứu về phòng chống DDoS, nhưng thực sự tất cả chỉ là những lý thuyết thử nghiệm, mới được triển khai qui mô nhỏ trong phòng thí nghiệm, chưa được áp dụng rộng rãi Tôi viết luận văn này nhằm mục đích đưa ra một cái nhìn rõ ràng hơn về DDoS và giới thiệu một cách thức phòng chống DDoS-giao thức Lan tỏa ngược, với những phần phát triển thêm vào
Trang 8
Chương 1: Tổng quan về DDoS
1.1 Tổng quan về tấn công DDoS
1.1.1 Khái niệm về DDoS
Tấn công DoS (Denial of Service) là một hành động cố ý của những kẻ có ý định xấu nhằm mục đích làm quá tải tài nguyên mạng, khiến mạng mất khả năng phục vụ những người dùng hợp lệ Phương pháp tấn công DDoS chủ yếu thường là tấn công tràn ngập mạng thông qua việc gửi số lượng lớn các gói tin đến nạn nhân, việc làm này tiêu tốn tài nguyên mạng như băng thông, bộ đệm router, khả năng xử lý của cpu Một vài phương pháp tấn công DDoS phổ biến có thể nêu tên như: SYN flooding, UDP flooding, DNS base flooding, ICMP direct broadcast, Ping flood attack Dựa trên số lượng các máy tính tham gia để tiến hành một cuộc tấn công, tấn công DoS có thể được chia làm hai loại:
kẻ tấn công sử dụng tất cả băng thông sẵn có thông qua việc tạo ra một số lượng lớn các gói tin từ một máy tính, hay là trường hợp tấn công phân tán, khi rất nhiều máy tính kết hợp với nhau cùng gửi các truy vấn đến nạn nhân cùng một thời điểm- hay còn gọi là DDoS (distributed denial of sevice) Tấn công DDoS rất đa dạng, thường thì rất khó để tìm ra đâu là kẻ tấn công thực sự mà chỉ dò ra được đến các máy tính bị lợi dụng, điều
khiển tham gia cuộc tấn công, do vậy rất khó để ngăn ngừa tấn công DDoS
Những khái niệm sau đây thường đi với tấn công DDoS: victim, agent, handle,
attacker và stepping stone Victim là nạn nhân của cuộc tấn công, hay còn gọi là máy
mục tiêu Agent là những máy trực tiếp gửi gói tin tấn công tới nạn nhân Attacker là kẻ tấn công thực sự, Attacker ra lệnh cho các Handle, mỗi Handle này sẽ chịu trách nhiệm điểu khiển một lượng Agent trực tiếp tấn công vào nạn nhân Khi truy tìm ngược lại các vết tấn công, thường chỉ có thể tìm ra các Agent – máy tính bị lợi dụng, chứ khó có thể tìm ra kẻ điều khiển thực sự Ngoài ra, trong 1 số hệ thống DDoS, Attacker có thể sử dụng thêm một máy tính nữa dùng để điều khiển hệ thống từ xa, được gọi là stepping stone, nhằm che giấu hành tung của mình
Trang 9
Xét về mặt cấu trúc gói tin, từng thông điệp gửi đến nạn nhân là hợp lệ Mặt khác các core router khi định tuyến chỉ quan tâm đến địa chỉ đích chứ không quan tâm đến địa chỉ nguồn, nên nếu attacker giả mạo IP của Agent, sự phức tạp của việc xác định các Agent cũng như các gói tin tấn công trở nên rất khó khăn
1.1.2 Tổ chức mạng lưới DDoS
Tùy theo kế hoạch tấn công mà attacker có thể huy động 1 số lượng lớn các máy tính gián tiếp hay trực tiếp tham gia Việc này có thể làm thủ công, bán thủ công hoặc hoàn toàn tự động Các attacker thường hay sử dụng công cụ phổ biến Trinoo và Shaft, công cụ trên sẽ điều khiển những những tiến trình được cài đặt tự động tại các máy agents
để tấn công vào victim Ngày nay attacker thường sử dụng những kịch bản tự động để cài đặt những tiến trình ngầm vào các agents, hoặc thậm chí sử dụng những công cụ tự động scan để dò tìm những lỗ hổng rồi lây nhiễm qua máy khác Điều này đang ngày càng trở lên nguy hiểm, bởi lẽ một khi đã có thể điều khiển 1 tiến trình trong máy Victim, thì attacker có thể cài đặt virut, các phần mềm độc hại khác, ăn cắp dữ liệu,thông tin cá nhân, tài khoản ngân hàng… chứ không chỉ đơn thuần nhằm tấn công DDoS nữa
Có 3 bước thực hiện chung để tổ chức 1 mạng lưới DDoS: tuyển mộ mạng lưới agent, điều khiển mạng botnet đó và thực hiện tấn công
1.1.2.1 Tuyển mộ mạng lưới Agent
Muốn thành lập mạng botnet, attacker phải tìm kiếm được những máy tính dễ bị lợi dụng (Vulnerable Machines) Quá trình này được gọi là quá trình thăm dò, attacker gửi
1 vài gói tin để thử xem những host nào có thể lợi dụng Quá trình thăm dò có thể thực hiện dễ dàng thông qua một số công cụ có sẵn, hoặc thực hiện tự động với sâu hay virut máy tính
Một bot (khái niệm này xuất phát từ robot) là 1 chương trình máy khách được chạy
ẩn trên máy tính bị hại, gửi thông báo cho attacker các thông tin trạng thái của máy tính bị lợi dụng và chờ đợi lệnh điều khiển từ attacker để phát hành tấn công Các chương trình bot ngày nay thậm chí còn có khả năng tự động scan các máy trong cùng dải mạng để tìm
3
Trang 10Ngày nay, với sự bùng nổ của các dịch vụ Web và các mạng chia sẻ ngang hàng, Attacker đã có thêm nhiều cách thức khác nhau để thành lập được một mạng botnet lớn một cách nhanh chóng Theo cách này, Attacker thường khai thác những lỗi của phần mềm, lợi dụng sự cả tin và những thói quen không an toàn của người sử dụng máy tính để cài đặt 1 tiến trình trên máy tính, từ đó có thể từ xa tra lệnh cho máy tính tấn công Victim Điển hình ở Việt Nam đã có thời kì bùng nổ Virut, Trojan lan truyền qua Yahoo Messenger Kẻ tấn công đã lợi dụng 1 lỗi bảo mật trên trình duyệt Web Internet Explorer
để tạo 1 trang web, sao cho mỗi khi người dùng vào trang web đó là bị cài đặt 1 chương trình chạy ngầm trên máy tính Từ đó chương trình này tiếp tục quảng bá nó, dụ dỗ người khác vào website kia bằng cách gửi tin nhắn chứa link đến tất cả bạn bè của người bị hại qua phần mềm Yahoo Messenger, đặt status có chứa link đến trang web… Mỗi khi sử dụng YM trên máy bị nhiễm, thì hàng chục, hàng trăm bạn bè trong friend list đều được
‘giới thiệu’ đến Website độc hại đó Và vì tin tưởng lẫn nhau, chỉ cần 1 người bạn lỡ dùng
IE mở website ấy lên là chương trình được nhân bản, và nó tiếp tục quảng bá đến hàng chục, hàng trăm người khác Chương trình ấy lây lan nhanh đến mức cơ quan quản lý dịch vụ Yahoo Messenger Việt Nam đã phải chặn tất cả các tin nhắn offline có chứa link
lạ trong đó
Trang 11
1.1.2.2 Điều khiển mạng lưới Agents
Khi mạng lưới các Agents đã trở lên rộng lớn, có thể lên tới hàng chục, hàng trăm nghìn nên rất khó để Attacker liên lạc với từng agent, để điều khiền Agents, Attacker thường sử dụng các công cụ kết nối “nhiều – nhiều” Có 2 mục đích của việc làm này:
1 – Attacker ra lệnh rõ ràng, mạch lạc hơn
2 – Attacker dễ dàng thu thập được thông tin, hành vi của các Agents
Những công cụ tạo mạng lưới Agents trước đây như Trinoo, Tribe Flood Network (TFN), và Shaft chỉ có thể tạo mạng botnet với vài trăm hoặc vài nghìn Agents Nhưng ngày nay số lượng 1 mạng botnet đã tăng lên rất lớn, điển hình là mạng Phatbot đã có đến 400.000 host
Có một số cách thông dụng để Attacker có thể điều khiển mạng botnet của mình:
Ra lệnh trực tiếp
Một số công cụ như Trinoo xây dựng 1 mạng gồm 2 thành phần là handler và agents Attacker sẽ điều khiển mạng qua handler, còn handler sẽ gửi lệnh đó đến nhiều agents (đôi khi sử dụng 1 bộ lệnh khác với attacker đã dùng) để chúng trực tiếp tấn công Victim
(hình 1: ra lệnh tấn công)
Trang 12Ra lệnh gián tiếp
Phương pháp ra lệnh trực tiếp có 1 số nhược điểm đối với Attacker Handlers cần phải lưu trữ những định nghĩa về các Agents, và đôi khi, chính những Agents cũng lưu những giá trị để xác định Handler Vì thế phương pháp ra lệnh trực tiếp thường tạo ra nhiều hiện tượng bất thường trên mạng (ví dụ máy tính đột nhiên mở nhiều cổng lạ chờ kết nối, Web server lại tự khởi tạo liên lạc với nhiều IP ngoài…), khiến cho người quản trị nhanh chóng phát hiện ra dấu vết Trong phương pháp ra lệnh trực tiếp thì Handler và Agent luôn luôn phải ở trạng thái sẵn sàng đợi lệnh Dù không có thông điệp nào truyền tải giữa Attacker với Handler, giữa Handler với Agent thì người quản trị vẫn có thể phát hiện ra có những tiến trình ngầm hoạt động trong máy tính, mở những cổng lạ để chờ đợi lệnh điều khiển Vì thế, Attacker cần phải viết trước những đoạn code để lập kịch bản trước, tránh để cho các quản trị viên phát hiện ra
Điển hình của phương pháp ra lệnh gián tiếp này là việc sử dụng hệ thống Internet Relay Chat (IRC) để điều khiển 1 số lượng lớn Agents Hai chương trình nổi tiếng đã
được sử dụng là Kaiten bot trên Unix và Power bot trên Windows Đầu tiên, cả Attacker
và Agent (bot) đều kết nối tới 1 IRC Server như là 1 IRC Client bình thường Tới khi hầu hết các sites đều chấp nhận các kênh IRC cho người dùng, thì những giao tiếp DDoS đều chưa tạo bất cứ 1 hiện tượng bất thường nào Vai trò của Attacker chỉ được thể hiện như
là 1 kênh truyền bình thường tới IRC Server, và được bảo vệ bởi password Có những đoạn code chuẩn định nghĩa về kênh truyền mặc định ở trong các bot, đầu tiên nó sẽ học
Trang 131.1.3 Các loại tấn công DDoS
Một cuộc tấn công DDoS có thể tiêu tốn hoàn toàn băng thông mạng, bộ đệm gói tin trên router, làm tê liệt khả năng xử lý cpu, ram của nạn nhân Tôi sẽ tập trung chủ yếu vào cách tấn công làm tràn ngập băng thông mạng và thảo luận về cách hoạt động của một packet flood (gói tin gửi bởi kẻ tấn công)
Trang 14
1.1.3.1 SYN flood attack:
Loại tấn công này sử dụng cơ chế của giao thức TCP, là loại tấn công chủ yếu để làm tràn ngập băng thông của nạn nhân Một kết nối TCP được hình thành sử dụng cơ chế bắt tay 3 bước đầu tiên một gói tin SYN với địa chỉ nguồn giả yêu cầu được gửi từ host của kẻ tấn công đến nạn nhân Nạn nhân tiếp nhận yêu cầu là một SYN-ACK, truy cập cấu trúc dữ liệu cho kết nối, và lưu trữ thông tin cần thiết cho kết nối vào hàng đợi, chờ kẻ tấn công gửi gói tin yêu cầu SYN-ACK ở trên Khi thực hiện xong điều này, hàng đợi xóa thông tin kết nối, kết nối được thành lập Nhưng nếu địa chỉ nguồn là địa chỉ giả mạo, bước thứ 3 của quá trình bắt tay 3 bước ở trên không bao giờ được hoàn thành Do vậy, thông tin cần thiết cho việc kết nối được lưu trữ trong hàng đợi cho đến hết một khoảng thời gian mặc định được thiết lập rồi mới bị loại bỏ Mỗi server chỉ có một số lượng hạn chế bộ nhớ, do vậy sẽ hạn chế số lượng các kết nối chờ cho tới khi kết nối được thiết lập , một kẻ tấn công gửi tói tin SYN-REQUEST sử dụng địa chỉ nguồn ảo với một tốc độ cao
có thể khiến hàng đợi kết nối quá tải, do vậy ngăn cản những người dùng hợp lệ yêu cầu dịch vụ của server
(hình 3: SYN food attack)
Trang 15
1.1.3.2 UDP Flood attack
Khác với giao thức hướng kết nối TCP, UDP là giao thức không hướng kết nối yếu
tố này có thể được kẻ tấn công lợi dụng để gửi một số lượng lớn luồng dữ liệu với địa chỉ giả mạo tới một cổng sever nạn nhân Server nạn nhân xử lý các gói tin này và sớm nhận
ra rằng đó không phải là yêu cầu cho một dịch vụ cụ thể Vì vậy cpu của server nạn nhân tốn hiệu năng vô ích vào việc xử lý những yêu cầu này Với việc gửi một số lượng lớn các luồng dữ liệu giả mạo như vậy, kẻ tấn công có thể khiến cpu của server nạn nhân quá tải , hơn nữa UDP không có cơ chế điều khiển tắc nghẽn, nó sẽ có xu hướng cắt bớt băng thông khi tốc độ gửi các gói tin tăng nhanh và có thể ép những người dùng hợp lệ sử dụng giao thức TCP(có cơ chế điều khiển tắc nghẽn) phải hạ thấp tốc độ gửi gói tin, gây ra sự mất cân bằng trong phân phối dịch vụ
1.1.3.3 Smurf attack
Kẻ tấn công gửi gói tin ping ICMP đến địa chỉ broadcast của mạng, điều này khiến tất cả những host trong mạng phải gửi gói tin ICMP đáp lại, việc này thường tạo ra một lượng lớn các luồng dữ liệu và có xu hướng tiêu tốn nhiều băng thông mạng
(Hình 4: smurf attack)
Trang 16
1.1.3.4 DNS Zone Transfer based Flooding
Một Zone Transfer(vùng chuyển đổi ) yêu cầu thông tin về tên server (Name Server) của tất cả các vùng còn lại Cách này thường được sử dụng khi một server khác tự cập nhật thông tin bằng cách gửi yêu cầu đến server chính Khi kẻ tấn công gửi những yêu cập lập đi lặp lại đến name server có thể gây ra sự tiêu tốn băng thông mạng rất lớn vì luồng dữ liệu cho mỗi yêu cầu là khá lớn
(hình 5: DNS zone transfer)
Trang 17
1.1.3.5 Ping based attacks
Hay còn gọi là Ping of death hay “Long ICMP” khi mà host tấn công gửi một lượng lớn các gói tin ICMP đến server nạn nhân Những kẻ tấn công thường sử dụng các gói tin
có độ dài lớn hơn 65536 bytes, độ dài lớn nhất của gói tin được quản lý bởi giao thức TCP Cách tấn công này ảnh hưởng đến cả khả năng xử lý của cpu và băng thông mạng
(hình 6: Ping base attack)
1.1.3.6 CGI attacks( Common Gateway Interface)
Cpu luôn tốn rất nhiều thời gian để xử lý các kịch bản CGI, vì vậy khi kẻ tấn công gửi một số lượng lớn các kịch bản CGI đến server nạn nhân có thể làm chậm khả năng xử
lý của server
11
Trang 18
Tất cả những cách tấn công trên đều nhằm mục đích làm giảm chức năng của hệ thống mạng và có thể dẫn đến đánh sập hệ thống, làm hệ thống không có khả năng hoạt động Những cuộc tấn công DDoS có thể phân tán, rải rác, khiễn cho việc xác định kẻ tấn công là rất khó khăn, cần phải hiểu về hành vi, hoạt động của các luồng dữ liệu trong hệ thống mạng để từ đó phát hiện sớm và có những biện pháp hiệu quả để ngăn chặn tấn công DDoS
1.2 Tổng quan về phòng thủ DDoS
1.2.1 Tại sao DDoS khó giải quyết
Có 2 hướng để thực hiện tấn công DDoS: đó là nhằm vào điểm yếu (vulnerability attack) và làm ngập mạng (flooding attack) Do có 1 số đặc tính về kĩ thuật như sau làm khó giải quyết được triệt để các cuộc tấn công DDoS:
- Sự đơn giản: Một người sử dụng máy tính bình thường không rành về mạng cũng
có thể thực hiện 1 cuộc tấn công DDoS Bởi vì đã có sẵn rất nhiều công cụ DDoS trên mạng và cả hướng dẫn sử dụng rất chi tiết để thực hiện
- Sự đa dạng của các gói tin tấn công: Sự giống nhau giữa các traffic tấn công và các traffic hợp lệ làm quản trị viên khó có thể phân biệt được Khác với các nguy cơ bảo mật như virut, worm, adware… cần phải có những gói tin mánh khóe, mẹo mực lợi dụng vào lỗ hổng, nhưng flood attack chỉ cần lưu lượng lớn traffic và header cũng như nội dung packet đều có thể tùy ý theo Attacker
- Sự giả mạo IP làm cho các luồng dữ liệu tấn công từ agents đến như là từ những người dùng hợp lệ Vì thế quản trị viên rất khó phân biệt để có thể phát hiện các cuộc tấn công
- Lượng traffic lớn, gửi với tần suất cao: Lượng traffic khổng lồ mà DDoS tạo ra không chỉ làm ngập tài nguyên của Victim, mà còn làm quản trị viên rất khó mô tả, phân tích và tách biệt được packet hợp lệ và packet tấn công chúng
Trang 19
- Số lượng lớn các Agents: Một trong những điểm mạnh của tấn công DDoS là có thể huy động được 1 số lượng lớn Agent phân tán trên toàn Internet Khi đó, luồng tấn công sẽ lan tỏa trên nhiều nhánh tới Victim, điểm tụ tấn công sẽ gần sát nạn nhân, và hệ thống phòng thủ sẽ rất khó có thể chống từ phía xa Ngoài ra, hệ thống Agent phân tán cũng đồng nghĩa với sự phức tạp, phong phú, khác biệt về mô hình quản lý mạng giữa các ISP khác nhau, vì thế các cơ cơ chế phòng thủ yêu cầu sự phối hợp từ nhiều nơi sẽ triển khai khó khăn hơn rất nhiều
- Những điểm yếu trên mô hình mạng Internet: Có những cơ chế, giao thức mạng
mà khi thiết kế chưa lường trước được những điểm yếu có thể bị lợi dụng (ví dụ TCP SYN, ping of Death, LAND Attack…) Đôi khi là lỗi của nhà quản trị khi cấu hình các policy mạng chưa hợp lý
1.2.2 Những thách thức khi xây dựng hệ thống phòng thủ DDoS
Do những tính chất phức tạp của DDoS như đã trình bày ở trên, nên xây dựng 1 hệ thống phòng thủ DDoS là không đơn giản Để làm được điều đó cần xử lý được cả trên 2 lĩnh vực: kĩ thuật và xã hội
1.2.2.1 Về mặt kĩ thuật
- Xử lý phân tán từ nhiều điểm trên Internet: Vì các luồng tấn công xảy ra từ
nhiều nguồn khác nhau, đi qua toàn mạng Internet trong khi thường chỉ có một mình Victim với ít thiết bị, quyền hạn, khả năng xử lý hạn chế nên không thể đạt được hiệu quả cao Sự tấn công phân tán thì cần sự phòng thủ phân tán thì mới giải quyết triệt để được
- Thiếu thông tin chi tiết về các cuộc tấn công thực tế: Có không nhiều thông tin
về tác hại của DDoS gây lên cho các doanh nghiệp, nó thường chỉ có khi tác hại của nó là
rõ ràng và doanh nghiệp không thể tự xử lý được mà phải báo lên chính quyền Vì thế lại càng ít các thông tin chi tiết, như là bản log các traffic, sơ đồ mạng chi tiết của doanh nghiệp
Trang 20
- Khó thử nghiệm trên thực tế: Những hệ thống thử nghiệm DDoS ở phòng thí
nghiệm không thể phản ánh đúng thực tế rộng lớn, phong phú trên mạng Internet được Trong khi đó nếu muốn triển khai để thử nghiệm thật qua Internet thì các điều luật không cho phép, vì tấn công DDoS không chỉ ảnh hưởng đến Victim, mà còn liên quan đến rất nhiều các thành phần khác như router, switch… của ISP quản lý ở phần lõi Mạng Còn nếu thử nghiệm luôn trên 1 hệ thống thật đang bị tấn công thì lại thiếu thông tin cần đo đạc ở Agent, Handler, Attacker…
- Chưa có chuẩn đánh giá các hệ thống phòng thủ: Có nhiều vendor đã công bố
rằng giải pháp của họ có thể giải quết được DDoS Nhưng hiện tại chưa có 1 lộ trình chuẩn nào để kiểm thử các hệ thống phòng thủ DDoS Từ đó dẫn đến 2 vấn đề: thứ nhất là những người phát triển hệ thống phòng thủ tự test chính họ, do đó những thiết kế sẽ luôn phù hợp nhất để hệ thống đó hoạt động thuận lợi Thứ hai là những nghiên cứu về DDoS không thể so sánh hiệu suất thực tế của các hệ thống phòng thủ khác nhau, thay vào đó,
họ chỉ có thể nhận xét về từng giải pháp trên môi trường thử nghiệm mà thôi
1.2.2.2 Về mặt xã hội
Một thử thách lớn khi muốn giải quyết triệt để vấn nạn tấn công DDoS là về yếu tố
Xã hội Có rất nhiều điều luật về an ninh, bảo mật của nhiều đất nước, nhiều ISP khác nhau mà người triển khai khó có thể thỏa mãn tất cả để thực hiện hệ thống phòng thủ của mình Ví dụ ISP không cho bạn sơ đồ chi tiết cấu hình Mạng, không cho phép bạn tự do cài đặt chương trình trên các router của họ… Đối với các nạn nhân của DDoS, thông thường là các doanh nghiệp, thì việc đầu tiên là họ sẽ cố gắng tự mình giải quyết, nếu thành công thì sẽ giấu kín, không công bố cho bên ngoài là mình đang bị tấn công vì lo ngại ảnh hưởng đến danh tiếng của công ty Chỉ khi nào dịch vụ của họ bị chết hẳn, không thể tự cứu thì mới liên hệ với các ISP và chính quyền
Một vấn đề khác là đôi khi cần phải sửa đổi một số điểm yếu của các kiến trúc mạng để giảm tác hại của DDoS, ví dụ như giao thức TCP, IP, HTTP… Nhưng không dễ
Trang 21Yếu tố cuối cùng là thiếu sự thống nhất về các điều luật, chế tài xử phạt các Attacker, Handler, Agents giữa các bộ luật về Công nghệ thông tin của các nước và giữa các quy định về bảo mật, an toàn của các Internet Service Provider
1.2.3 Mục tiêu khi xây dựng hệ thống phòng thủ
Cho dù triển khai hệ thống phòng thủ theo cách thức nào thì cuối cùng cũng phải hướng tới 4 mục tiêu chính như sau:
- Tính hiệu quả: yêu cầu các thành phần tham gia vào hệ thống phòng thủ: victim,
router… đều không phải chịu thêm tải quá nặng Ví dụ khi bình thường CPU Usage của Server chỉ chạy 10% để phục vụ cho các Client, nhưng sau khi cài đặt hệ thống phòng thủ vào, cho dù chưa xảy ra DDoS thì CPU Usage do phải tính toán thêm nhiều nên đã lên đến 20% là không chấp nhận được
- Tính trọn vẹn: Một hệ thống phòng thủ tốt cần phải bảo vệ Victim được khỏi tất
cả các kiểu tấn công DDoS Bởi vì đối với Attacker, một khi đã điều khiển được mạng botnet thì hắn hoàn toàn có thể sử dụng nhiều kịch bản tấn công khác nhau, lợi dụng nhiều điểm yếu của giao thức, của mạng hoặc thay đổi thông số bên trong packet Vì thế nếu hệ thống chỉ có thể phòng thủ được 1 số cách tấn công nhất định, thì khi attacker thay đổi, hệ thống đó sẽ sụp đổ hoàn toàn
Trang 22
- Cung cấp dịch vụ cho tất cả các traffic hợp lệ: đây là yêu cầu quan trọng nhất
khi triển khai một hệ thống phòng thủ DDoS
- Chi phí phát triển và điều hành thấp
1.2.4 Các hướng phòng thủ DDoS
Có thể phân loại các phương pháp giải quyết DDoS theo hai tiêu chí là thời gian và
vị trí Xét theo thời gian, có hai xu hướng: trước (phòng ngừa) và sau (phản ứng lại khi
cuộc tấn công xảy ra) Xét theo vị trí đặt trung tâm điều khiển việc xử lý phòng chống
DDoS, thì có các vị trí: gần Victim, gần Attacker, trong phần lõi của Internet hoặc kết
hợp nhiều vị trí
1.2.4.1 Phòng ngừa và Phản ứng lại
Phương pháp phòng ngừa áp dụng các chính sách để kẻ tấn công không thể hoặc khó tấn công hệ thống Phương pháp này có thể được thực hiện bằng cách tăng cường sức mạnh của hệ thống: năng lực xử lý các yêu cầu dịch vụ, băng thông… để giảm thiểu tối
đa tác hại của cuộc tấn công DDoS Nhưng do mạng lưới tấn công có đặc điểm phân tán,
là tập trung của nhiều máy tính cấu hình trung bình nên dễ tập hợp được số lượng lớn để hội tụ thành một lượng băng thông gấp nhiều lần so với hệ thống của victim Vì vậy việc tăng cường sức mạnh không thực sự có hiệu quả
Phương pháp phản ứng lại chấp nhận cho cuộc tấn công xảy ra, sau đó truy tìm và tiêu diệt các hướng tấn công, làm giảm thiểu rủi ro hoặc chấm dứt cuộc tấn công Bằng cách phát hiện chính xác kẻ tấn công, nạn nhân sẽ có chính sách cấm những truy nhập, từ
đó giảm thiểu được tác hại của cuộc tấn công Phương pháp này hiện là hướng nghiên cứu chính trong việc giải quyết DDoS
Nhược điểm chung của phương pháp phản ứng lại là việc giải quyết không triệt để
và không chủ động Nạn nhân bị tấn công đã phải hứng chịu các hậu quả Biện pháp này chỉ giúp chấm dứt hậu quả sớm và giảm thiểu thiệt hại