Đặt vấn đề Năm 2011, lấy lý do ủng hộ Wikileaks, các nhóm Hacktivism là một thuật ngữ diễn tả hành động tấn công, đột nhập vào một hệ thống máy tính nhằm mục đích chính trị hoặc xã hội
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan đây là tìm hiểu và nghiên cứu của riêng tôi
Các số liệu nêu trong luận văn là trung thực và có cơ sở lý thuyết tham khảo Kết quả đạt được trong luận văn là chưa từng nơi nào công bố
Tác giả
Nguyễn Huy Lợi
Trang 2MỤC LỤC
Chương 1 Giới thiệu chung 5
1.1 Đặt vấn đề 5
1.2 Mục tiêu 6
1.3 Phạm vi của đề tài 6
1.4 Tóm tắt kết quả 6
1.5 Cấu trúc luận văn 7
Chương 2 Tổng quan về DDoS 8
2.1 Giới thiệu chung về DDoS 8
2.2 Phân loại các kiểu tấn công DDoS 8
2.2.1 Tấn công làm cạn kiệt băng thông 9
2.2.2 Tấn công làm cạn kiệt tài nguyên 14
2.3 Sơ đồ mạng Botnet 17
2.3.1 Sơ đồ Handler-Agent 17
2.3.2 Sơ đồ IRC Base 18
2.4 Các phương pháp xây dựng tài nguyên tấn công 20
2.4.1 Cách thức cài đặt DDoS Agent 20
2.4.2 Giao tiếp trên mạng Botnet 22
2.5 Một số kiểu tấn công DDoS và các công cụ tấn công DDoS 22
2.5.1 Một số kiểu tấn công DDoS 22
2.5.2 Một số công cụ tấn công DDoS 23
Chương 3 Phòng thủ DDoS 29
3.1 Tại sao DDoS khó giải quyết 29
3.2 Những thách thức khi xây dựng hệ thống phòng thủ DDoS 30
3.3 Một số giải pháp phòng thủ DDoS 37
3.3.1 Giải pháp dành cho doanh nghiệp cung cấp Hosting 37
3.3.2 Giải pháp sử dụng IPS để lọc gói tin 37
3.3.3 GeoIP DNS 38
3.3.4 HAProxy 39
Chương 4 Cài đặt, thử nghiệm 41
4.1 Giải pháp dành cho doanh nghiệp cung cấp Hosting 41
4.1.1 Litespeed 41
4.1.2 CloudLinux 43
4.1.3 ConfigServer Security & Firewall (CSF) 45
4.1.4 Thử nghiệm 47
4.2 Giải pháp sử dụng IPS để lọc gói tin 51
4.2.1 Snort 52
4.2.2 Thử nghiệm 58
Kết luận: 67
Trang 3Danh mục các ký hiệu và chữ viết tắt (nếu có)
Trang 4Danh mục các hình ảnh, đồ thị
Hình 2.1 Phân loại các kiểu tấn công DDoS 9
Hình 2.2: Mô hình mạng Amplifier 11
Hình 2.3 Trả lời truy vấn DNS 13
Hình 2.4 Quá trình bắt tay ba bước 14
Hình 2.5 Tấn công TCP SYN Attack 15
Hình 2.6 :Sơ đồ mạng Botnet 17
Hình 2.7 Sơ đồ IRC Base 18
Hình 2.8 Các phương pháp xây dựng tài nguyên tấn công 20
Hình 2.9 Mô hình tấn công DDoS thông thường 25
Hình 2.10 Mô hình tấn công X-Flash 27
Hình 3.1 Phương pháp đặt gần victim 34
Hình 3.2 Phương pháp đặt gần attacker 35
Hình 3.3 Phương pháp đặt tại phần lõi của Internet 36
Hình 3.4 Phương pháp kết hợp nhiều vị trí 37
Hình 3.5 Mô hình sử dụng IPS để lọc gói tin 38
Hình 3.6 Mô hình sử dụng GeoIP DNS 39
Hình 3.7 Mô hình sử dụng HAProxy và Keepalived 40
Hình 4.1 Máy chủ chạy apache 42
Hình 4.2 Máy chủ chạy litespeed 43
Hình 4.3 Mô hình hosting chia sẻ truyền thống 44
Hình 4.4 Mô hình LVE của CloudLinux OS 44
Hình 4.5: Các thông số cấu hình CloudLinux 45
Hình 4.6: Cấu hình CloudLinux 48
Hình 4.8 Thông số của website 49
Hình 4.9 Tấn công bằng tool ab 50
Hình 4.10 Thông số của website trong khi bị tấn công 51
Hình 4.11 Giới hạn tài nguyên 51
Hình 4.12: Cấu trúc của Snort 52
Hình 4.13 Mô hình thử nghiệm sử dụng IPS để lọc gói tin 59
Trang 5Chương 1 Giới thiệu chung
1.1 Đặt vấn đề
Năm 2011, lấy lý do ủng hộ Wikileaks, các nhóm Hacktivism (là một thuật ngữ diễn tả hành động tấn công, đột nhập vào một hệ thống máy tính nhằm mục đích chính trị hoặc xã hội) như Anonymous, LulzSec, hay
TeaMp0isoN tiến hành nhiều hoạt động khác nhau chống lại các cơ quan luật pháp, ngân hàng, chính phủ, các công ty bảo mật và những nhà cung cấp phần mềm như tấn công lỗ thủng an ninh các hệ thống của Tổ chức Liên hiệp quốc (UN), cơ quan tình báo bảo mật Straffor, CIA… Cho đến nay, danh sách nạn nhân của các nhóm Hacktivism ngày một dài thêm, từ các website của chính phủ Mỹ, Ukraine, Anh, Israel, Indonesia, Mexico, Hy Lạp, Syria, Thổ Nhĩ Kỳ, … cho đến các ngân hàng như Bank of America, Nova Ljubljanska Banka's (ngân hàng lớn nhất của Slovenia) , các công ty như Visa inc, Paypal inc, MasterCard, Oracle, NASA, …
Các nhóm Hacktivism sử dụng nhiều phương pháp tấn công khác nhau nhưng phương pháp hay được sử dụng nhất là DDoS Tuy đây không phải là phương pháp mới nhưng nó vẫn đem lại hiệu quả cao, gây ảnh hưởng không nhỏ đến các công ty, tổ chức kinh doanh đặc biệt là kinh doanh trên Internet Việt Nam hiện nay đang ở giai đoạn đầu của thương mại điện tử, việc một công ty thương mại điện tử bị tấn công DDoS làm ảnh hưởng không chỉ
là hình ảnh, uy tín của công ty mà còn ảnh hưởng trực tiếp đến doanh thu, lợi nhuận của mình Trong quá trình công tác, tôi đã tiếp xúc với nhiều
trường hợp các công ty bị chính đối thủ cạnh tranh tấn công DDoS, một số trường hợp bị ảnh hưởng đến mức gần như không thu được lợi nhuận trong thời gian dài Thực tế, cũng đã có nhiều giải pháp về phòng chống DDoS,
Trang 6tuy nhiên, các giải pháp về phần cứng thì khá đắt đỏ, các giải pháp về phần mềm thì rời rạc, chưa tổng hợp Vì vậy, tôi đã lựa chọn đề tài : “Tìm hiểu DDoS và xây dựng biện pháp phòng thủ DDoS cho webserver”, với mục đích xây dựng, kiểm thử một số giải pháp sử dụng phần mềm mã nguồn mở
để các công ty vừa và nhỏ có thể triển khai dễ dàng
1.2 Mục tiêu
Luận văn có 2 mục tiêu chính :
- Nghiên cứu tìm hiểu về DDoS, phân loại DDoS, giới thiệu một số công cụ tấn công DDoS và các giải pháp phòng thủ DDoS mà về mặt chủ quan cá nhân tôi nhận thức được
- Dựa trên các giải pháp đã trình bày nói trên xây dựng một số kịch bản kiểm thử
1.3 Phạm vi của đề tài
Trong phạm vi của đề tài, tôi sẽ trình bày một cái nhìn tổng quan về DDoS và một số giải pháp dựa trên phần mềm mã nguồn mở Từ đó tôi cài đặt và kiểm thử hai giải pháp có giá thành rẻ, dễ triển khai với các doanh nghiệp vừa và nhỏ
1.4 Tóm tắt kết quả
Theo yêu cầu đặt ra ban đầu là “Tìm hiểu DDoS và triển khai hệ thống phòng thủ DDoS ”, cho đến thời điểm hiện tại, luận văn đã làm được những nội dung sau
I Tìm hiểu DDoS bao gồm
a Tìm hiểu được những kiểu tấn công của DDoS
b Tìm hiểu được mô hình mạng Botnet (mô hình, cách cài đặt, giao tiếp)
c Một số công cụ tấn công DDoS
II Giới thiệu một số giải pháp phòng thủ DDoS
III Cài đặt và thử nghiệm 2 giải pháp phòng thủ DDoS
Trang 71.5 Cấu trúc luận văn
Luận văn có 4 chương bao gồm :
Chương 1 Giới thiệu chung
Chương này tập trung xây dựng tính cấp thiết của việc thực hiện nghiên cứu, mục tiêu và tóm tắt kết quả của đề tài
Chương 2 Tổng quan về DDoS
Chương này giới thiệu về DDoS, mô hình, một số công cụ tấn công DDoS
Chương 3 Phòng thủ DDoS
Chương này làm rõ tại sao DDoS khó giải quyết đồng thời đưa ra một vài giải pháp phòng thủ DDoS dựa trên phần mềm mã nguồn mở
Chương 4 Cài đặt, thử nghiệm
Cài đặt thử nghiệm những giải pháp đã nêu ra ở chương 3
Trang 8
Chương 2 Tổng quan về DDoS
2.1 Giới thiệu chung về DDoS
DDoS (distributed denial-of-service attack) là một kiểu tấn công đưa một hệ thống cung cấp dịch vụ đến mức hoạt động tới hạn về tài nguyên, hay gây nhầm lẫn logic dẫn đến hệ thống ngừng hoạt động
Khác với DoS (denial-of-service attack) là chỉ cần một máy để tấn công, DDoS sử dụng nhiều máy tính bị chiếm quyền điều khiển kết nối với nhau (mạng Botnet) để tấn công nên sức hủy hoại là rất lớn
2.2 Phân loại các kiểu tấn công DDoS
Nhìn chung, có rất nhiều cách để phân loại các kiểu tấn công DDoS nhưng theo tôi cách phân loại theo mục đích tấn công là khá đầy đủ, đơn giản và dễ hiểu Dưới đây là sơ đồ mô tả sự phân loại các kiểu tấn công DDoS dựa theo mục đích tấn công: làm cạn kiệt băng thông và làm cạn kiệt tài nguyên hệ thống
Trang 9Hình 2.1 Phân loại các kiểu tấn công DDoS 2.2.1 Tấn công làm cạn kiệt băng thông
Tấn công làm cạn kiệt băng thông được thiết kế nhằm làm tràn ngập mạng mục tiêu với những traffic không cần thiết, với mục địch làm giảm tối thiểu khả năng của các traffic hợp lệ đến được hệ thống cung cấp dịch vụ của mục tiêu
Có hai loại tấn công làm cạn kiệt băng thông :
+ Flood attack: Điều khiển các Agent gửi một lượng lớn traffic đến hệ thống dịch vụ của mục tiêu, làm dịch vụ này bị hết khả năng về băng thông
+ Amplification attack: Điều khiển các Agent hay Client tự gửi packet đến một địa chỉ IP broadcast, làm cho tất cả các máy trong subnet này gửi packet đến hệ thống dịch vụ của mục tiêu Phương pháp này làm gia tăng traffic không cần thiết, làm suy giảm băng thông của mục tiêu
2.2.1.1 Flood attack:
Trong phương pháp này, các Agent sẽ gửi một lượng lớn IP traffic làm hệ thống dịch vụ của mục tiêu bị chậm lại, hệ thống bị treo hay đạt đến
Trang 10trạng thái hoạt động bão hòa Làm cho những người dùng thực sự của hệ thống không sử dụng được dịch vụ
Ta có thể chia Flood Attack thành hai loại:
+ UDP Flood Attack: do tính chất kết nối không cần bắt tay của UDP, hệ thống nhận UDP message chỉ đơn giản nhận vào tất cả các packet mình cần phải xử lý Một lượng lớn các UDP packet được gửi đến hệ thống dịch vụ của mục tiêu sẽ đẩy toàn bộ hệ thống đến ngưỡng tới hạn
+ Các UDP packet này có thể được gửi đến nhiều port tùy ý hay chỉ duy nhất một port Thông thường là sẽ gửi đến nhiều port làm cho hệ thống mục tiêu phải căng ra để xử lý phân hướng cho các packet này Nếu port bị tấn công không sẵn sàng thì hệ thống mục tiêu sẽ gửi ra một ICMP packet loại “destination port unreachable” Thông thường các Agent sẽ dùng địa chỉ
IP giả để che giấu hành tung, cho nên các packet trả về do không có port xử
lý sẽ dẫn đến một địa chỉ IP khác UDP Flood attack cũng có thể làm ảnh hưởng đến các kết nối xung quanh mục tiêu do sự hội tụ của packet diễn ra rất mạnh
+ ICMP Flood Attack: được thiết kế nhằm mục đích quản lý mạng cũng như định vị thiết bị mạng Khi các Agent gửi một lượng lớn
ICMP_ECHO_REPLY đến hệ thống mục tiêu thì hệ thống này phải reply một lượng tương ứng Packet để trả lời, sẽ dẫn đến nghẽn đường truyền Tương tự trường hợp trên, địa chỉ IP của các Agent có thể bị giả mạo
2.2.1.2 Amplification Attack:
Amplification Attack nhắm đến việc sử dụng các chức năng hỗ trợ địa chỉ IP broadcast của các router nhằm khuyếch đại và hồi chuyển cuộc tấn công Chức năng này cho phép bên gửi chỉ định một địa chỉ IP broadcast cho toàn subnet bên nhận thay vì nhiều địa chỉ Router sẽ có nhiệm vụ gửi đến
Trang 11Attacker có thể gửi broadcast packet trực tiếp hay thông qua một số Agent nhằm làm gia tăng cường độ của cuộc tấn công Nếu attacker trực tiếp gửi packet, thì có thể lợi dụng các hệ thống bên trong broadcast network như một Agent
Hình 2.2: Mô hình mạng Amplifier
Có thể chia amplification attack thành hai loại, Smuft va Fraggle attack:
+ Smuft attack: trong kiểu tấn công này attacker gửi packet đến
network amplifier (router hay thiết bị mạng khác hỗ trợ broadcast), với địa chỉ của nạn nhân Thông thường những packet được dùng là ICMP ECHO REQUEST, các packet này yêu cầu yêu cầu bên nhận phải trả lời bằng một ICMP ECHO REPLY packet Network amplifier sẽ gửi đến ICMP ECHO
Trang 12REQUEST packet đến tất cả các hệ thống thuộc địa chỉ broadcast và tất cả các hệ thống này sẽ REPLY packet về địa chỉ IP của mục tiêu tấn công
Smuft Attack
+ Fraggle Attack: tương tự như Smuft attack nhưng thay vì dùng ICMP ECHO REQUEST packet thì sẽ dùng UDP ECHO packet gửi đến mục tiêu Thật ra còn một biến thể khác của Fraggle attack sẽ gửi đến UDP ECHO packet đến chargen port (port 19/UNIX) của mục tiêu, với địa chỉ bên gửi là echo port (port 7/UNIX) của mục tiêu, tạo nên một vòng lặp vô hạn Attacker phát động cuộc tấn công bằng một ECHO REQUEST với địa chỉ bên nhận là một địa chỉ broadcast, toàn bộ hệ thống thuộc địa chỉ này lập tức gửi REPLY đến port echo của nạn nhân, sau đó từ nạn nhân một ECHO REPLY lại gửi trở về địa chỉ broadcast, quá trình cứ thế tiếp diễn Đây chính
là nguyên nhân Flaggle Attack nguy hiểm hơn Smuft Attack rất nhiều
+ DNS Amplification: Ta xem xét một truy vấn DNS như sau:
dig ANY isc.org @x.x.x.x với x.x.x.x là IP của một máy chủ DNS
Ta sẽ nhận được trả lời từ máy chủ DNS như sau:
; <<>> DiG 9.7.3 <<>> ANY isc.org @ x.x.x.x
;; global options : + cmd
;; Got answer :
;; ->> HEADER <<- opcode : QUERY , status : NOERROR , id : 5147
;; flags : qr rd ra ; QUERY : 1, ANSWER : 27, AUTHORITY : 4, ADDITIONAL : 5
aXbax / BzPFx +3 qO8B8pu8E / JjkWH0oaYz4guUyTVmT5Eelg44Vb1kssy
Trang 13isc.org 4084 IN NS ord.sns - pb.isc.org
isc.org 4084 IN NS sfba.sns - pb.isc.org
;; AUTHORITY SECTION :
isc.org 4084 IN NS ns.isc.afilias - nst.info
isc.org 4084 IN NS ams.sns - pb.isc.org
isc.org 4084 IN NS ord.sns - pb.isc.org
isc.org 4084 IN NS sfba.sns - pb.isc.org
DNSKEY, là giao thức được thiết kế để hệ thống DNS trở nên an toàn
Một cách đơn giản, kẻ tấn công gửi các truy vấn DNS (sử dụng giao thức UDP) đến một máy chủ DNS trên Internet nhưng dùng địa chỉ nạn nhân giả mạo thành nguồn gốc của truy vấn đó
Khi máy chủ DNS phản hồi trở lại (thường có kích thước gấp nhiều lần truy vấn gửi đi), nạn nhân sẽ hứng chịu "phản hồi" đó Hàng trăm ngàn truy vấn sẽ liên tục gửi đến máy chủ DNS để "mượn tay" tấn công hệ thống nạn nhân khiến hệ thống bị nghẽn do lưu lượng dữ liệu gửi đến quá lớn "như một cơn lũ"
Hiện có 27 triệu máy chủ DNS trên mạng Internet và chúng có thể bị tấn công để trở thành "vũ khí mạng" của tội phạm
Trang 14Ngày 28/3/2013, một nhóm tin tặc đã sử dụng phương pháp này tấn
công vào tổ chức chống thư rác Spamhaus, dữ liệu ước tính lên đến khoảng
300 gigabyte dữ liệu (GB)/giây, gấp 6 lần so với các cuộc tấn công DDoS
thông thường (vào khoảng 50 gigabyte dữ liệu/giây)
2.2.2 Tấn công làm cạn kiệt tài nguyên
Resource Deleption Attack là kiểu tấn công trong đó Attacker gửi
những packet dùng các protocol sai chức năng thiết kế, hay gửi những
packet với dụng ý làm tắt nghẽn tài nguyên mạng làm cho các tài nguyên
này không phục vụ những người dùng thông thường khác được
2.2.2.1 Protocol Exploit Attack
+ TCP SYN Attack: Transfer Control Protocol (TCP) hỗ trợ truyền
nhận với độ tin cậy cao nên sử dụng phương thức bắt tay giữa bên gửi và
bên nhận trước khi truyền dữ liệu Bước đầu tiên, bên gửi gửi một SYN
REQUEST packet (Synchronize) Bên nhận nếu nhận được SYN REQUEST
sẽ trả lời bằng SYN/ACK REPLY packet Bước cuối cùng, bên gửi sẽ truyên
packet cuối cùng ACK và bắt đầu truyền dữ liệu
Hình 2.4 Quá trình bắt tay ba bước
Nếu bên server đã trả lời một yêu cầu SYN bằng một SYN/ACK
TCP Client
Client Port 1024-65535
TCP Server
Service Port 1-1023
SYS
ACK
SYN/ACK
80
Trang 15thời gian quy định thì nó sẽ resend lại SYN/ACK REPLY cho đến hết thời
gian timeout Toàn bộ tài nguyên hệ thống “dự trữ” để xử lý phiên giao tiếp
nếu nhận được ACK packet cuối cùng sẽ bị “phong tỏa” cho đến hết thời
gian timeout
Hình 2.5 Tấn công TCP SYN Attack
Nắm được điểm yếu này, attacker gửi một SYN packet đến nạn nhân
với địa chỉ bên gửi là giả mạo, kết quả là nạn nhân gửi SYN/ACK REPLY
đến một địa chỉ khá và sẽ không bao giờ nhận được ACK packet cuối cùng,
cho đến hết thời gian timeout nạn nhân mới nhận ra được điều này và giải
phóng các tài nguyên hệ thống Tuy nhiên, nếu lượng SYN packet giả mạo
đến với số lượng nhiều và dồn dập, hệ thống của nạn nhân có thể bị hết tài
nguyên
+ PUSH Attack: Trong TCP protocol, các packet được chứa trong
buffer, khi buffer đầy thì các packet này sẽ được chuyển đến nơi cần thiết
Tuy nhiên, bên gửi có thể yêu cầu hệ thống unload buffer trước khi buffer
đầy bằng cách gửi một packet với PUSH và ACK mang giá trị là 1 Những
packet này làm cho hệ thống của nạn nhân unload tất cả dữ liệu trong TCP
buffer ngay lập tức và gửi một ACK packet trở về khi thực hiện xong điều
Malicious TCP Client
Victim TCP Server
SYS/ACK
SYN
80
?
Trang 16này, nếu quá trình được diễn ra liên tục với nhiều Agent, hệ thống sẽ không thể xử lý được lượng lớn packet gửi đến và sẽ bị treo
2.2.2.2 Malformed Packet Attack
Malformed Packet Attack là cách tấn công dùng các Agent để gửi các packet có cấu trúc không đúng chuẩn nhằm làm cho hệ thống của nạn nhân
bị treo
Có hai loại Malformed Packet Attack:
+ IP address attack: dùng packet có địa chỉ gửi và nhận giống nhau làm cho hệ điều hành của nạn nhân không xử lý nổi và bị treo
+ IP packet options attack ngẫu nhiên hóa vùng OPTION trong IP packet và thiết lập tất cả các bit QoS lên 1, điều này làm cho hệ thống của nạn nhân phải tốn thời gian phân tích, nếu sử dụng số lượng lớn Agent có thể làm hệ thống nạn nhân hết khả năng xử lý
Trang 17+ Handler: Là một phần mềm trung gian giữa Agent và Client
+ Agent: Là một thành phần software thực hiện sự tấn công mục
tiêu,nhận điều khiển từ Client thông quan các Handler
Trang 18Attacker sẽ từ Client giao tiếp với Handler để xác định số lượng các Agent đang online, điều chỉnh thời điểm tấn công và cập nhật các Agent Tuỳ theo cách attacker cấu hình mạng Botnet , các Agent sẽ chịu sự quản lý của một hay nhiều Handler
Thông thường Attacker sẽ đặt các Handler trên một Router hay Server
có lượng lưu thông lớn.Việc này nhằm làm cho các giao tiếp giữa Client,
Handler và Agent khó bị phát hiện.Các giao thức này thường diễn ra trên các giao thức TCP,UDP, hay ICMP.Chủ nhân thực sự của các Agent thường
không biết họ bị lợi dụng trong các cuộc tấn công DDos, do họ không đủ
kiến thức hoặc các chương trình Backdoor Agent chỉ sử dụng rất ít tài
nguyên hệ thống làm cho hầu như không thể thấy ảnh hưởng gì đến hiệu
năng của hệ thống
2.3.2 Sơ đồ IRC Base
Hình 2.7 Sơ đồ IRC Base
Trang 19Internet Relay Chat(IRC) là một hệ thống online chat nhiều người IRC cho phép người sử dụng tạo một kết nối đến nhiều điểm khác với nhiều người sử dụng khác nhau và chat thời gian thực Kiến trúc cũ của IRC
network bao gồm nhiều IRC server trên khắp Internet, giao tiếp với nhau trên nhiều kênh (channnel).IRC network cho phép user tao ba loại channel: Public, Private và Secrect.Trong đó :
+ Public channel: Cho phép user của channel đó thấy IRC name và nhận được message của mọi user khác trên cùng channel
+ Private channel: Được thiết kế để giao tiếp với các đối tượng cho phép.Không cho phép các user không cùng channel thấy IRC name và
message trên channel Tuy nhiên , nếu user ngoài channel dùng một số lệnh channel locator thì có thể biết được sự tồn tại của private channel đó
+ Secrect channel: Tương tự private channel nhưng không thể xác định bằng channel locator
Mạng IRC-based cũng tương tự như mạng Agent-Handler nhưng mô hình này sử dụng các kênh giao tiếp IRC làm phương tiện giao tiếp giữa Client và Agent(không sử dụng Handler).Sử dụng mô hình này, attacker còn
có thêm một số lợi thế khác như :
+ Các giao tiếp dưới dạng chat message làm cho việc phát hiện chúng
+ Sau cùng: IRC cũng là một môi trường chia sẻ file tạo điều kiện phát tán các Agent code lên nhiều máy khác
Trang 202.4 Các phương pháp xây dựng tài nguyên tấn công
Có rất nhiều điểm chung của các công cụ DDoS attack Có thể kể ra một số điểm chung như: cách cài chương trình Agent, phương pháp giao tiếp giữa các Attacker, Handler và Agent, điểm chung về loại hệ điều hành hỗ trợ các công cụ này Sơ đồ sau mô tả sự so sánh tương quan giữa các công cụ tấn công DDoS này
Hình 2.8 Các phương pháp xây dựng tài nguyên tấn công
2.4.1 Cách thức cài đặt DDoS Agent
Attacker có thể dùng phương pháp active và passive để cài đặt chương trình Agent lên các máy khác nhằm thiết lập mạng tấn công kiểu Agent-Handler hay IRC-based
Các cách cài đặt sử dụng phương pháp active như:
+ Scaning: dùng các công cụ như Nmap, Nessus để tìm những sơ hở trên các hệ thống đang online nhằm cài đặt chương trình Agent Chú ý,
Nmap sẽ trả về những thông tin về một hệ thống đã được chỉ định bằng địa
Trang 21chỉ IP, Nessus tìm kiếm từ những địa chỉ IP bất kỳ về một điểm yếu biết
trước nào đó
+ Backdoor: sau khi tìm thấy được danh sách các hệ thống có thể lợi dụng, attacker sẽ tiến hành xâm nhập và cài chương trình Agent lên các hệ thống này Có rất nhiều thông tin sẵn có về cách thức xâm nhập trên mạng, như site của tổ chức Common Vulnerabilities and Exposures (CVE), ở đây liệt kê và phân loại trên 4.000 loại lỗi của tất cả các hệ thống hiện có Thông
tin này luôn sẵn sàng cho cả giới quản trị mạng lẫn hacker
+ Trojan: là một chương trình thực hiện một chức năng thông thường nào đó, nhưng lại có một số chức năng tiềm ẩn phục vụ cho mục đích riêng của người viết mà người dùng không thể biết được Có thể dùng trojan như
một chương trình Agent
+ buffer Overflow(tràn bộ đệm): tận dụng lỗi buffer overflow,
attacker có thể làm cho chu trình thực thi chương trình thông thường bị chuyển sang chu trình thực thi chương trình của hacker (nằm trong vùng dữ liệu ghi đè) Có thể dùng cách này để tấn công vào một chương trình có
điểm yếu buffer overflow để chạy chương trình Agent
Cách cài đặt passive:
+ Bug Website: attacker có thể lợi dụng một số lỗi của trình duyệt web để cài chương trình Agent vào máy của người truy cập Attacker sẽ tạo một website mang nội dung tiềm ẩn những code và lệnh để đặt bẫy người dùng Khi người dùng truy cập nội dung của website, thì trang web tự động tải và cài đặt chương trình Agent một cách bí mật Microsoft Internet
Explorer thường là mục tiêu của cách cài đặt này, với các lỗi của ActiveX
có thể cho phép IE brower tự động download và cài đặt code trên máy của
người dùng duyệt web
Trang 22+ Corrupted file: một phương pháp khác là nhúng code vào trong các file thông thường Khi người đọc hay thực thi các file này, máy của họ lập tức bị nhiễm chương trình Agent software Một trong những kỹ thuật phổ biến là đặt tên file rất dài, do mặc định của các hệ điều hành chỉ hiển thị phần đầu của tên file nên attacker có thể gửi kèm theo email cho nạn nhân file như sau: iloveyou.txt_hiiiiiii_NO_this_is_DDoS.exe, do chỉ thấy phần
“Iloveyou.txt” hiển thị nên user sẽ mở file này để đọc và lập tức file này được thực thi và Agent code được cài vào máy nạn nhân Ngoài ra còn nhiều
cách khác như ngụy trang file, ghép file…
2.4.2 Giao tiếp trên mạng Botnet
Protocol: giao tiếp trên mạng Botnetcó thể thực hiện trên nền các protocol TCP, UDP, ICMP
Mã hóa các giao tiếp: một vài công cụ DDoS hỗ trợ mã hóa giao tiếp trên toàn bộ mạng botnet Tùy theo giao thức được sử dụng để giao tiếp sẽ
có các phương pháp mã hóa thích hợp Nếu mạng Botnet ở dạng IRC-based thì private và secrect channel đã hỗ trợ mã hóa giao tiếp
Cách kích hoạt Agent: có hai phương pháp chủ yếu để kích hoạt
Agent Cách thứ nhất là Agent sẽ thường xuyên quét thăm dò Handler hay IRC channel để nhận chỉ thị (active Agent) Cách thứ hai là Agent chỉ đơn giản là “nằm vùng” chờ chỉ thị từ Handler hay IRC Channel
2.5 Một số kiểu tấn công DDoS và các công cụ tấn công DDoS
2.5.1 Một số kiểu tấn công DDoS
- HTTP Flood
- SYN Flood
- ICMP Flood
Trang 23Mô hình :
attacker(s) >Master(s) >daemon(s) >victim(s)
Attacker -> Master : port 27665/TCP
Master -> Deamons : port 27444/UDP
Daemon -> Master : port 31335/UDP
Deamon -> UDP Flood đến mục tiêu (random port)
2.5.2.2 Tribe Flood Network (TFN/TFN2K)
Tương tự như Trinoo nhưng Tribe Flood Network còn cho phép
attacker sử dụng thêm ICMP flood, SYN flood, và Smurf
Mô hình :
attacker(s) >client(s) >daemon(s) >victim(s)
2.5.2.3 Stacheldraht
Stacheldraht là sự kết hợp các tính năng của Trinoo và TFN, bên cạnh
đó còn thêm khả năng mã hóa giao tiếp giữa attacker và stacheldraht
masters
Trang 24Stacheldraht cung cấp cho attacker khá nhiều phương thức tấn công từ chối dịch vụ : ICMP flood, SYN flood, UDP flood, và Smurf
Mô hình :
client(s) >handler(s) >agent(s) >victim(s)
Client -> handler(s) : port 16660/tcp
Handler < > agent(s): port 65000/tcp, ICMP_ECHOREPLY
2.5.2.4 Trinity
Trinity có hầu hết các kỹ thuật tấn công bao gồm: UDP, TCP SYS, TCP ACK, TCP fragment, TCP NULL, TCP RST, TCP random flag, TCP ESTABLISHED packet flood Nó có sẵn khả năng ngẫu nhiên hóa địa chỉ bên gởi Trinity cũng hỗ trợ TCP flood packet với khả năng ngẫu nhiên tập CONTROL FLAG Trinity có thể nói là một trong số các công cụ DDoS nguy hiểm nhất
2.5.2.5 Shaft
Shaft có các kĩ thuật tấn công UDP, ICMP và TCP flood Có thể tấn công phối hợp nhiều kiểu cùng lúc Có thống kê chi tiết cho phép attacker biết tình trạng tổn thất của nạn nhân, mức độ quy mô của cuộc tấn công để điều chỉnh số lượng Agent
Mô hình :
client(s) >handler(s) >agent(s) >victim(s)
Client > handler(s): port 20432/tcp
Handler -> agent(s): port 18753/udp
Agent -> handler(s): port 20433/udp
Trang 252.5.2.6 X-Flash
Vấn đề then chốt của hacker tấn công bằng hình thái cổ điển là nắm
quyền điều khiển càng nhiều máy tính càng tốt, sau đó anh ta sẽ trực tiếp
phát động tấn công hàng loạt từ xa thông qua một kênh điều khiển Với quy
mô mạng lưới tấn công bao gồm vài trăm nghìn máy, hình thái này có thể
đánh gục ngay lập tức bất cứ hệ thống nào Phối hợp với khả năng giả mạo
địa chỉ IP, kiểu tấn công này sẽ rất khó lần theo dấu vết
Hình 2.9 Mô hình tấn công DDoS thông thường
Mô hình này có một số nhược điểm:
- Mạng lưới tấn công là cố định và tấn công xảy ra đồng loạt nên rất
dễ điều tra ngược tìm manh mối
Trang 26- Software cài lên các Infected Agent là giống nhau và có thể dùng làm bằng chứng kết tội hacker
- Phía nạn nhân có thể điều chỉnh hệ thống phòng vệ để ngăn chặn vì mạng lưới tấn công là “khả kiến”
- Hacker buộc phải trực tiếp kết nối đến mạng lưới các máy tấn công tại thời điểm tấn công để điều khiển nên rất dễ lần ra thủ phạm
X-Flash xuất hiện sau khi DantruongX và nhóm BeYeu phát hiện ra
những lỗ hổng bảo mật của IE và Flash Nó chỉ bằng cách đơn giản là gửi
yêu cầu tới web server dạng HTTP Request ( yêu cầu dạng POST hay GET) với một tốc độ cực kì nhanh khiến web serivces bị treo
Cách tấn công : Hacker treo một file flash trên một website trung gian
có nhiều người truy xuất, người dùng truy xuất website này file flash sẽ được tải về máy và được chương trình Flash thực thi Từ đây vô số các yêu cầu truy xuất sẽ gởi đến website mục tiêu
Trang 27Hình 2.10 Mô hình tấn công X-Flash
Flash DDOS có một số đặc tính khiến cho việc ngăn chặn và phát hiện
gần như là không thể.Do mạng lưới tấn công phức tạp và tự hình thành :
+ Không cần thiết phải nắm quyền điều khiển và cài DDOS software
vào các infected agent Thay vào đó mọi user với một trình duyệt có hỗ trợ
nội dung Flash (có Flash player) sẽ trở thành công cụ tấn công
+ Số lượng attack agent tùy thuộc vào số lượng user truy xuất các
website đã bị hacker “nhúng” nội dung flash, số lượng này thay đổi theo thời
gian và hoàn toàn không thể nhận biết địa chỉ IP nguồn, vì đây là các user
thông thường
+ Không hề có quá trình gởi lệnh và nhận báo cáo giữa hacker và
mạng lưới tấn công, toàn bộ lệnh tấn công được “nhúng” trong nội dung
Trang 28flash và hacker không cần nhận báo cáo do đây là mô hình tấn công bất đồng
bộ
+ Tấn công bất đồng bộ: việc tấn công diễn ra không cần có mệnh lệnh User truy xuất website, load nội dung flash về trình duyệt và Flash player thực thi nội dung flash thì ngay lập tức máy của họ trở thành một
attack agent-liên tục gởi hàng trăm request đến webserver nạn nhân
+ Quy mô tấn công phụ thuộc vào số lượng website bị lợi dụng và số lượng user thường xuyên truy xuất các website này Chỉ tính trung bình hacker lợi dung được 10 website và mỗi website này có số lượng truy xuất khoảng 100 user tại một thời điểm thì tổng số request mà server nạn nhân phải hứng chịu tại một thời điểm lên đến con số vài chục ngàn Đây là một
số liệu kinh hoàng với bất kỳ ai làm quản tri hệ thống của bất cứ website nào
và kết quả thường là hệ thống tê liệt ngay lập tức
Tuy nhiên, hiện nay chương trình Flash player mới nhất đã được vá
lỗi, cách tấn công Flash hầu như không còn được sử dụng
Trang 29Chương 3 Phòng thủ DDoS
3.1 Tại sao DDoS khó giải quyết
Thực hiện tấn công DDoS có 2 trường phái chính: đó 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 ta rất 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 bình thường không rành về mạng cung có thể thực hiện 1 cuộc tấn công từ chối dịch vụ 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 đầy đủ từ a-z để 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
- IP spoofing: Sự giả mạo IP làm cho các traffic attack 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ể từ chối phục vụ những request 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
- 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
Trang 30- 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ế người ta 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ý
3.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
3.2.1 Những thách thức về mặt kĩ thuật
Cần sự xử lý phân tán từ nhiều điểm trên Internet: Vì attack
traffic 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
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
Trang 31đó 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
3.2.2 Những thách thức 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ễ làm được điều đó, vì hiện tại đã có rất nhiều hệ thống xây dựng trên nền tảng cũ, và không thể ngày thay đổi trong ngày một ngày hai được
Có một đặc điểm của DDoS là khi Victim bị tấn công, thì nếu muốn triệt để không còn traffic DDoS nữa, thì phải làm sao yêu hàng nghìn Agent ngừng tấn công Chỉ có 1 cách làm được điều này là tại các Agent phải cài đặt 1 phần mềm, hay hệ thống để ngăn chặn gói tin DDoS ngay khi vừa sinh
ra Nhưng không dễ thuyết phục được các End User làm điều đó, vì nó không mang lại lợi ích trực tiếp gì cho bản thân họ, đôi khi còn làm ảnh hưởng đến hiệu năng mạng của End User
Yế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
3.2.3 Mục tiêu khi xây dựng hệ thống phòng thủ
Trang 32Cho 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
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
3.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í
3.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
Trang 33tụ 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
3.2.4.2 Vị trí của hệ thống phòng thủ
Phương pháp đặt gần victim là phương pháp đơn giản nhất do ít phụ
thuộc vào các tác nhân khác, nạn nhân tự giải quyết vấn đề Phương pháp này thường dùng để phản ứng lại sau khi nạn nhân phát hiện bị tấn công Tuy nhiên cách tiếp cận này không thể giải quyết tận gốc, quản trị viên chỉ
có thể giảm thiểu thiệt hại chứ không thể chấm dứt cuộc tấn công
Trang 34Hình 3.1 Phương pháp đặt gần victim
Phương pháp đặt gần attacker là phương pháp ngăn chặn các gói tin
DDoS ngay khi vừa được sinh ra tại nguồn Nó có ưu điểm là giảm được tối
đa tác hại của gói tin DDoS, chống được giả mạo IP Tuy nhiên lại rất khó thực hiện do phải thay đổi hệ thống mạng trên quy mô lớn Hiện mới chỉ có khoảng ba hướng nghiên cứu theo cách tiếp cận này Trong đó, D-WARD là
có kết quả tốt nhất với khả năng hoạt động độc lập