Tải bản đầy đủ (.pdf) (68 trang)

Tìm hiểu DDoS và xây dựng biện pháp phòng thủ DDoS cho webserver

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.33 MB, 68 trang )

LỜ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

1


MỤ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
Tài liệu tham khảo ........................................................................................ 68
2


Danh mục các ký hiệu và chữ viết tắt (nếu có)
STT Phần viết tắt

Phần viết đầy đủ


1

Server

Máy chủ

2

DDoS

Tấn công từ chối dịch vụ

3

Client

Máy trạm

4

Agent

Máy tính bị chiếm quyền điều khiển

5

Traffic

Lưu lượng


6

Packet

Gói tin

7

Message

Bản tin

8

Protocol

Giao thức

9

Reply

Phản hồi

10

Router

Thiết bị định tuyến


11

Subnet

Mạng con

12

Broadcast

Quảng bá

13

Port

Cổng

14

IPS

Hệ thống ngăn chặn xâm nhập

3


Danh 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

4



Chươ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,

5



tuy 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.

6


1.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

7


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.

8


Hì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

9



trạ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
tất cả địa chỉ IP trong subnet đó packet broadcast mà nó nhận được.
10



Attacker 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.
Attacker/Agent

VICTIM

Amplifie
r

Host

Host
Host

Host

Amplifier Network System

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
11



REQUEST 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
;; QUESTION SECTION:
;isc.org.
IN
;; ANSWER SECTION:
isc.org.
4084

IN
24796800 3600
isc.org.
484
IN

ANY

SOA

ns-int.isc.org. hostmaster.isc.org. 2012102700 7200 3600

NSEC
_kerberos.isc.org. A NS SOA MX TXT AAAA NAPTR
RRSIG NSEC DNSKEY SPF
isc.org.
4084
IN
DNSKEY
256 3 5
BQEAAAAB2F1v2HWzCCE9vNsKfk0K8vd4EBwizNT9KO6WYXj0oxEL4eOJ
aXbax/BzPFx+3qO8B8pu8E/JjkWH0oaYz4guUyTVmT5Eelg44Vb1kssy
q8W27oQ+9qNiP8Jv6zdOj0uCB/N0fxfVL3371xbednFqoECfSFDZa6Hw jU1qzveSsW0=

12


isc.org.
4084
IN

DNSKEY
257 3 5
BEAAAAOhHQDBrhQbtphgq2wQUpEQ5t4DtUHxoMVFu2hWLDMvoOMRXjGr
hhCeFvAZih7yJHf8ZGfW6hd38hXG/xylYCO6Krpbdojwx8YMXLA5/kA+
u50WIL8ZR1R6KTbsYVMf/Qx5RiNbPClw+vT+U8eXEJmO20jIS1ULgqy3
47cBB1zMnnz/4LJpA0da9CbKj3A254T515sNIMcwsB8/2+2E63/zZrQz
isc.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.
;; ADDITIONAL SECTION:
mx.ams1.isc.org.
484
IN
A
199.6.1.65
mx.ams1.isc.org.
484
IN
AAAA
2001:500:60::65
mx.pao1.isc.org.
484
IN
A
149.20.64.53
mx.pao1.isc.org.
484
IN
AAAA
2001:4f8:0:2::2b
_sip._udp.isc.org. 4084
IN

SRV
0 1 5060 asterisk.isc.org.
;; Query time: 176 msec
;;SERVER: x.x.x.x#53(x.x.x.x)
;; WHEN: Tue Oct 30 01:14:32 2012
;; MSG SIZE rcvd: 3223

Hình 2.3 Trả lời truy vấn DNS
Gửi một truy vấn 64 bytes nhận được kết quả là 3223 bytes trả về, hay
nói cách khác, thông qua hệ thống DNS này, kẻ tấn công có thể tăng lưu
lượng tấn công lên 50 lần. Độ lớn của gói tin trả về phụ thuộc vào
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.
13


Ngà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.

SYS

TCP
Client

TCP
Server

SYN/ACK

Client Port
1024-65535
ACK

80

Service Port
1-1023


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
REPLY nhưng không nhận được ACK packet cuối cùng sau một khoảng
14


thờ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.

Malicious
TCP
Client

Victim
TCP
Server

SYN

?
SYS/ACK

80

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

15


nà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ý.

16



2.3. Sơ đồ mạng Botnet
2.3.1 Sơ đồ Handler-Agent

Hình 2.6 :Sơ đồ mạng Botnet
Botnet là một mạng gồm từ hàng trăm tới hàng triệu máy tính bị điều
khiển hoàn toàn bởi hacker.
Mạng Botnet thông thường bao gồm 3 thành phần : Agent, Client và
Handler. Trong đó :
+ Client: Là phần mềm cơ sở để hacker điều khiển mọi hoạt động của
mạng Handler-Agent.
+ 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.

17


Attacker 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

18


Internet 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
là vô cùng khó khăn.
+ Lưu thông IRC có thể di chuyển trên mạng với số lượng lớn mà
không bị nghi ngờ.

+ Không cần phải duy trì danh sách các Agent, hacker chỉ cần logon
vào IRC server là đã có thể nhận được report về trạng thái các Agent do các
channel gửi về.
+ 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.

19


2.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 AgentHandler 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

20



chỉ 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.

21


+ 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

22


- SSH Process Table
- TCP Reset
- UDP Flood

2.5.2 Một số công cụ tấn công DDoS
2.5.2.1 Trinoo
Trinoo là một công cụ tấn công từ chối dịch vụ bằng kĩ thuật UDP
Flood được kết hợp từ nhiều nguồn.
Một cuộc tấn công DDoS bằng Trinoo được thực hiện bởi kết nối của
attacker đến Một hay nhiều Trinoo Master và chỉ dẫn cho Master phát động
tấn công DDoS đến một hoặc nhiều mục tiêu. Master sẽ liên lạc với các
daemons để ra lệnh cho các daemons gửi các UDP packet đến mục tiêu.
Mô 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.
23


Stacheldraht 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

24


2.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.

25


×