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

Nghiên cứu và phòng chống tấn công từ chối dịch vụ phân tán vào các website

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 (1.61 MB, 69 trang )

i

LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu và tìm hiểu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được công bố
trong bất kì công trình nào khác.

Tác giả luận văn

Tống Quang Tân


ii

LỜI CẢM ƠN
Lời đầu tiên, tôi xin chân thành cảm ơn TS. Phạm Hoàng Duy - Học viện
Công nghệ Bưu chính Viễn Thông, người đã trực tiếp hướng dẫn tôi thực hiện luận
văn này. Với sự hướng dẫn, cung cấp tài liệu, động viên của Thầy đã giúp tôi vượt
qua nhiều khó khăn về chuyên môn trong suốt quá trình thực hiện luận văn.
Tôi xin chân thành cảm ơn Ban Giám đốc, Ban chủ nhiệm Khoa Sau Đại học
và Khoa Công nghệ Thông tin, cùng các thầy, cô đã giảng dạy và quản lý đào tạo
trong suốt hai năm theo học tại Học viện Công nghệ Bưu chính Viễn thông.
Tôi xin chân thành cảm ơn Hội đồng chấm đề cương đã góp ý cho đề cương
luận văn.
Cuối cùng, tôi xin cảm ơn gia đình, bạn bè và các đồng nghiệp tại nơi tôi đang
công tác đã động viên, tạo điều kiện cho tôi trong suốt thời gian học tập và nghiên
cứu.
Hà Nội, ngày 26 tháng 01 năm 2018
Học viên

Tống Quang Tân




iii

MỤC LỤC
LỜI CAM ĐOAN ............................................................................................................ i
LỜI CẢM ƠN ..................................................................................................................ii
MỤC LỤC ....................................................................................................................... iii
DANH MỤC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT ................................................. v
DANH SÁCH BẢNG ..................................................................................................... vi
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ...................................................................... vii
MỞ ĐẦU ......................................................................................................................... 1
CHƯƠNG I. TỔNG QUAN VỀ DDOS........................................................................ 3
1.1 Giới thiệu chung về DDoS. ...................................................................................3
1.2 Phân loại các kiểu tấn công DDoS. .......................................................................3
1.2.1 Tấn công làm cạn kiệt băng thông .....................................................................4
1.2.2 Tấn công làm cạn kiệt tài nguyên. .....................................................................7
1.2.3 Tấn công cơ sở hạ tầng ......................................................................................9
1.2.4 Tấn công Zero-day ...........................................................................................10
1.3 Tấn công DDoS Website .....................................................................................10
1.3.1 Tấn công vào máy chủ cài webserver ..............................................................11
1.3.2 Tấn công trực tiếp vào website ........................................................................13
1.4 Xây dựng Botnet .................................................................................................13
1.4.1 Kiến trúc Handler-Agent ..................................................................................14
1.4.2 Kiến trúc IRC Base...........................................................................................15
1.4.3 Kiến trúc Peer-to-Peer ......................................................................................16
1.4.4 Một số botnet nổi tiếng trên thế giới ................................................................17
1.5 Các phương pháp xây dựng tài nguyên tấn công. ...............................................17
1.5.1 Cách thức cài DDoS Agent ..............................................................................18
1.5.2 Giao tiếp trên mạng Botnet ..............................................................................18

1.6 Một số công cụ tấn công DDoS ..........................................................................19
1.6.1 Trinoo ...............................................................................................................19
1.6.2 Tribe Flood Network (TFN/TFN2K) ................................................................19
1.6.3 Stacheldraht .....................................................................................................19
1.6.4 Trinity ...............................................................................................................19
1.6.5 DoSHTTP .........................................................................................................20


iv

1.6.6 X-flash ..............................................................................................................20
1.7 Phòng chống DDoS .............................................................................................21
1.7.1 Phương pháp phòng chống DDoS ...................................................................21
1.7.2. Một số công cụ mã nguồn mở phòng chống DDoS.........................................25
1.8 Kết luận chương 1 ...............................................................................................26
CHƯƠNG II. CÔNG CỤ MÃ NGUỒN MỞ IPTABLES VÀ SNORT INLINE .... 27
2.1. Công cụ Iptables .................................................................................................27
2.1.1 Giới thiệu chung về Iptables ............................................................................27
2.1.2 Cấu trúc của Iptables .......................................................................................27
2.1.3 Targets..............................................................................................................30
2.1.4 Các tùy chọn quan trọng của Iptables .............................................................32
2.2 Công cụ Snort inline............................................................................................35
2.2.1 Giới thiệu về Snort ...........................................................................................35
2.2.2 Cấu trúc Snort ..................................................................................................35
2.2.3 Bộ luật của Snort ..............................................................................................40
2.2.4 Chế độ ngăn chặn của Snort : Snort — Inline .................................................49
2.3 Kết luận chương 2 ...............................................................................................50
CHƯƠNG III. XÂY DỰNG GIẢI PHÁP PHÒNG CHỐNG DDOS ....................... 51
3.1 Giải pháp phòng chống DDoS được đưa ra cho Website ...................................51
3.1.1 Ưu điểm của giải pháp sử dụng hệ thống IPS .................................................51

3.1.2 ConfigServer Security & Firewall (CSF)........................................................52
3.2 Thử nghiệm, đánh giá..........................................................................................52
3.2.1 Mô hình ............................................................................................................52
3.2.2 Cài đặt ..............................................................................................................53
3.2.3 Cấu hình trên IPS .............................................................................................54
3.2.4 Chạy thử nghiệm ..............................................................................................56
3.2.5 Đánh giá thử nghiệm ........................................................................................59
3.3 Kết luận chương 3 ...............................................................................................59
KẾT LUẬN ................................................................................................................... 61
DANH MỤC TÀI LIỆU THAM KHẢO .................................................................... 62


v

DANH MỤC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT
Từ viết tắt

Tiếng Anh

CPU

Central Processing Unit

DDoS

Distributed Denial of Service

DNS

Domain Name System


DoS

Denial of Service

HTTP

Hypertext Transfer Protocol

CSF

ConfigServer Security & Firewall

ICMP

Internet Control Message
Protocol

IDS

Intrusion Detection System

IP

Internet Protocol

IPS

Intrusion Prevention System


P2P

Peer to peer

SIP

Session Initiation Protocol

SMTP

Simple Mail Transfer Protocol

SYN

Synchronization

TCP

Transport Control Protocol

UDP

User Datagram Protocol

Tiếng Việt
Bộ xử lý trung tâm
Tấn công từ chối dịch vụ phân tán
Hệ thống phân giải tên miền
Tấn công từ chối dịch vụ
Giao thức truyền tải siêu văn bản

Tường lửa bảo mật cấu hình máy
chủ
Giao thức thông báo điều khiển
mạng internet
Hệ thống phát hiện xâm nhập
Giao thức kết nối Internet
Hệ thống phòng chống xâm nhập
Mạng ngang hàng
Giao thức khởi tạo phiên
Giao thức truyền tải thư điện tử
đơn giản
Đồng bộ hóa
Giao thứ điều khiển truyền vận
Giao thức gói dữ liệu người dùng


vi

DANH SÁCH BẢNG
Bảng 2.1 Các loại queues và chức năng của nó ........................................................ 29
Bảng 2.2 Miêu tả các target mà Iptables thường dùng nhất..................................... 29
Bảng 2.3 Bảng các tùy chọn quan trọng của Iptables ............................................... 32
Bảng 2.4 Các điều kiện TCP và UDP thông dụng .................................................... 34


vii

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1: Phân loại các kiểu tấn công DdoS...............................................................4
Hình 1.2: Amplification Attack................................................................................... 6

Hình 1.3: Ba bước kết nối TCP/IP .............................................................................. 7
Hình 1.4: Trường hợp IP nguồn giả ........................................................................... 8
Hình 1.5: Phân tích các trang web bị tấn công.......................................................... 10
Hình 1.6: Sơ đồ Handler-Agent ................................................................................ 14
Hình 1.7: Sơ đồ IRC Base ......................................................................................... 15
Hình 1.8: Sơ đồ Peer-to-Peer .................................................................................... 15
Hình 1.9: Các phương pháp xây dựng tài nguyên tấn công ...................................... 18
Hình 1.10: Mô hình mạng Classic DDoS ................................................................. 20
Hình 1.11: Mô hình mạng X-Flash DDoS ............................................................... 21
Hình 1.12: Các giai đoạn chi tiết trong phòng chống DDoS .................................... 22
Hình 2.1: Mô hình Iptables/netfilter ......................................................................... 27
Hình 2.2: Mô tả đường đi của gói dữ liệu. ............................................................... 29
Hình 2.3: Mô hình cấu trúc hệ thống Snort............................................................... 36
Hình 2.4: Xử lý một gói tin Ethernet ........................................................................ 37
Hình 2.5: Cấu trúc luật của Snort .............................................................................. 41
Hình 2.6: Header luật của Snort ................................................................................ 41
Hình 3.1: Mô hình thử nghiệm sử dụng IPS để lọc gói tin ....................................... 53
Hình 3.2: Tài nguyên của máy chủ web khi chưa bị tấn công ở kịch bản 1 ............. 56
Hình 3.3: Thời gian đáp ứng trung bình của máy chủ web khi chưa bị tấn công ở
kịch bản 1 .................................................................................................................. 56
Hình 3.4: Tài nguyên của máy chủ web khi bị tấn công ở kịch bản 1 ...................... 57
Hình 3.5: Thời gian đáp ứng trung bình của máy chủ web khi bị tấn công ở kịch bản 1 57
Hình 3.7 Thời gian đáp ứng trung bình của máy chủ web khi bị tấn công ở kịch bản 2. 59


1

MỞ ĐẦU
Lịch sử của tấn công từ chối dịch vụ bắt đầu từ những năm 2000 khi lần đầu
tiên một cậu thiếu niên 15 tuổi Micheal Calce với biệt hiệu aka_mafiaboy từ

Quebec, Canada tấn công vào một loạt các Website thương mại điện tử lớn
như Amazon, eBay, Yahoo, Fifa, Dell Inc làm chúng không thể truy cập trong hàng
giờ đồng hồ. Năm 2005, một lập trình viên 18 tuổi tên là Farid Essabar đã viết ra
sâu máy tính để lây nhiễm và thành lập mạng Botnet tấn công vào máy chủ của
hãng tin CNN làm sập dịch vụ trực tuyến của hãng. Hình thức tấn công này đã mở
ra một kỷ nguyên mới cho các phương pháp tấn công DDoS mới, nguy hiểm và tinh
vi hơn. Ngày nay DDoS đã sử dụng nhiều mánh khóe, kỹ thuật mới hơn như kỹ
thuật khuếch đại tấn công, sử dụng máy chủ điều khiển lệnh từ xa… làm mức độ
thiệt hại tăng lên đáng kể. Điển hình là vụ tấn công Spamhus năm 2013 với mức
băng thông có thời điểm đến 300Gbps, thậm chí mạng Internet toàn cầu cũng bị ảnh
hưởng khi truy cập vào hầu hết các website đều chậm đi rõ rệt. Việc không có một
cơ chế hiệu quả hoàn toàn để chống lại dạng tấn công nguy hiểm và gây nhiều thiệt
hại này là một chủ đề công nghệ sôi động, được nhiều nhà nghiên cứu quan tâm,
chia sẻ và học hỏi kinh nghiệm. Bất cứ công trình nào mang lại hiệu quả phòng
chống hoặc giảm thiểu thiệt hại do DDoS cũng đều mang lại lợi ích rất lớn cho
thương mại toàn cầu, có khả năng triển khai rộng rãi tạo ra một môi trường mạng
Internet an toàn.
Việt Nam hiện nay đang ở giai đoạn thúc đẩy áp dụng công nghệ thông tin vào
cơ quan nhà nước, việc một trang web của cơ quan nhà nước bị tấn công DDoS làm
ảnh hưởng không chỉ là hình ảnh, uy tín của cơ quan đó mà còn ảnh hưởng trực tiếp
đến uy tín và làm trì trệ công việc. 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ơ quan bị tin tặc tấn công DDoS, một số trường hợp không
thực hiện được các công việc trong thời gian dài. Thực tế, cũng đã có nhiều giải
pháp về phòng chống DDoS, 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


2
: “Nghiên cứu và phòng chống tấn công từ chối dịch vụ vào các website”, 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ơ quan, tổ chức có thể triển khai dễ dàng.
Luận văn sẽ được trình bày với 3 chương chình với nội dung như sau:
Chương I. Tổng quan về DDoS.
Nội dung chương này giới tổng quan về DDoS, phân loại các kiểu tấn công
DDoS, cách thức xây dựng mạng Botnet, giới thiệu một số công cụ tấn công DDoS
và các cách phòng chống DDoS, giới thiệu một số công cụ mã nguồn mở phòng
chống DDos.
Chương II. Công cụ mã nguồn mở Iptables và Snort inline
Nội dung chương này giới thiệu về hai phần mềm mã nguồn mở miễn phí
Iptables và Snort, trình bày về lý thuyết và một số cấu hình cơ bản và quan trọng
của Iptables và Snort inline.
Chương III. Xây dựng giải pháp phòng chống DDoS
Nội dung chương này trình bày giải pháp, mô hình thực nghiệm và quá trình
kiểm tra đánh giá, nhận xét hệ thống phòng chống xâm nhập bằng các phần mềm đã
nêu ở chương II.


3

CHƯƠNG I. TỔNG QUAN VỀ DDOS
1.1 Giới thiệu chung về DDoS.
Tấn công từ chối dịch vụ phân tán (DDoS - Distributed Denial Of Service) là
hoạt động làm chấm dứt hoặc gián đoạn các dịch vụ tại máy nạn nhân. Tấn công
DDoS huy động số lượng lớn các máy bị lợi dụng để tấn công nạn nhân vào cùng
một thời điểm. Do DDoS có tính chất phân tán nên việc ngăn chặn là rất khó khăn.
Việc ngăn chặn DDoS không thể từ một máy tính bị tấn công mà phải kết hợp giữa
các router để tiến hành phân tích và chặn. Do có số lượng Agent lớn và bao phủ trên
diện rộng nên việc phát hiện được các gói tin tấn công nhưng khó có khả năng giải
quyết triệt để được DDoS. Ở đây Agent là những máy trực tiếp gửi thông điệp tấn
công. Trên Internet tấn công từ chối dịch vụ phân tán là một dạng tấn công từ nhiều

máy tính tới một đích, nó gây ra từ chối các yêu cầu hợp lệ của các user bình
thường. Bằng các tạo ra rất nhiều các gói tin đến đích cụ thể, nó có thể gây tình
trạng tương tự như hệ thống bị shutdown.
Khác với tấn công DoS (Denial of Service) 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.

1.2 Phân loại các kiểu tấn công DDoS.
Để hiểu nghiên cứu về các cuộc tấn công DDoS, điều quan trọng là phải hiểu
các cơ chế phân loại tấn công DDoS. Nhìn chung, có rất nhiều biến thể của kỹ thuật
tấn công DDoS nhưng nếu nhìn dưới góc độ chuyên môn thì có thể chia các biến thể
này thành hai loại dựa trên 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”. Tuy nhiên, trong thực tế, một cuộc tấn công có thể có cả
hai tác động và có thể áp đặt những ảnh hưởng cao nhất có thể lên toàn bộ Internet.
Loại này được đặt tên là tấn công cơ sở hạ tầng. Chúng ta sẽ đề cập đến loại tấn
công này trong nghiên cứu của mình. Trong bài luận cũng sẽ giới thiệu một loại tấn
công khác được gọi là tấn công zero-day, nơi mà các tác động của cuộc tấn công
không xác định. Dưới đây là sơ đồ mô tả sự phân loại các kiểu tấn công DDoS.


4

Hình 1.1: Phân loại các kiểu tấn công DDoS

1.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 (BandWith Depletion) đượ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:
- Tấn công tràn băng thông (Flood attack)

- Tấn công khuếch đại (Amplification attack)

1.2.1.1 Tấn công tràn băng thông (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 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 connectionless 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


5
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 software 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 REQUEST
đế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.

1.2.1.2 Tấn công khuếch đại (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.
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.


6

Hình 1.2: Amplification Attack
Có thể chia amplification attack thành hai loại, Smuft và Fraggle attack:
- Smuft attack: trong kiểu tấn công này attacker Điều khiển các agent hay
client tự gửi message đến một địa chỉ IP broadcast làm cho tất cả các máy trong
subnet này gửi message đến hệ thống dịch vụ của mục tiêu làm gia tăng traffic
không cần thiết và làm suy giảm băng thông mục tiêu. Trong Smurf Attack, cần có
ba thành phần: hacker (người ra lệnh tấn công), mạng khuếch đại (sẽ nghe lệnh của
hacker) và nạn nhân. Hacker sẽ gửi các ICMP echo request packets đến địa chỉ
broadcast của mạng khuếch đại. Điều đặc biệt là các ICMP echo request packet này
có địa chỉ IP nguồn chính là địa chỉ IP của nạn nhân. Khi các packet đó đến được
địa chỉ broadcast của mạng khuếch đại, lập tức tất cả các máy tính trong mạng
khuếch đại sẽ nhận được các packet này. Các máy này tưởng rằng máy tính nạn
nhân đã gửi ICMP echo request packets đến (do hacker đã làm giả địa chỉ IP
nguồn), lập tức chúng sẽ đồng loạt gửi trả lại hệ thống nạn nhân các ICMP reply
echo request packet. Hệ thống máy nạn nhân sẽ không chịu nổi một khối lượng
khổng lồ packet và nhanh chóng bị ngừng hoạt động, crash hoặc reboot. Như vậy có
thể thấy rằng hacker chỉ cần gửi một lượng nhỏ các ICMP echo request packets đi,
và hệ thống mạng khuếch đại sẽ khuếch đại lượng ICMP echo request packet này

lên gấp bội.


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

1.2.2 Tấn công làm cạn kiệt tài nguyên.
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.

1.2.2.1 Protocol Exploit Attack.
- TCP SYN Attack: Transfer Control Protocol 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 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 1.3: Ba bước kết nối TCP/IP
Nếu bên server đã trả lời một yêu cầu SYN bằng một SYN/ACK nhưng
không nhận được ACK packet cuối cùng sau một khoảng thời gian quy định thì nó



8
sẽ gửi lại SYN/ACK 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 1.4: Trường hợp IP nguồn giả
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 đến một địa chỉ khác 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 và ACK 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 cờ 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 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.

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



9
- 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ý.

1.2.3 Tấn công cơ sở hạ tầng
Loại tấn công DDoS thảm khốc nhất là tấn công cơ sở hạ tầng. Mục đích của
cuộc tấn công này là làm hư hại các yếu tố quan trọng của Internet. Do đó, nó
không chỉ nhắm vào băng thông của mạng mà còn là các tài nguyên (bộ nhớ, CPU)
của hệ thống đích. Ví dụ, tấn công cơ sở hạ tầng nhắm vào DNS, đặc biệt là DNS
gốc vì chúng là các điểm dịch vụ phân cấp hàng đầu và cung cấp dịch vụ cho tất cả
người dùng Internet trên toàn thế giới. Vì DNS duy trì cấu trúc phân cấp, một cuộc
tấn công kiểu này chỉ nhắm vào các máy chủ tên gốc không thể gây ra những tác
động quá nghiêm trọng đến dịch vụ Internet của toàn thế giới. Thông thường, kẻ tấn
công sử dụng kỹ thuật lũ lụt DNS để khởi động tấn công. Trong cuộc tấn công lũ lụt
DNS, đội quân tấn công bị xâm nhập hoặc botnet gửi các yêu cầu UDP bình thường
đến máy chủ DNS. Tuy nhiên, số lượng yêu cầu như vậy là rất lớn mà nó tràn ngập
hệ thống và cuối cùng tất cả các nguồn lực được tiêu thụ. Do đó, hệ thống từ chối
tất cả các yêu cầu hợp pháp trong một khoảng thời gian đáng kể. Vào ngày 21 tháng
10 năm 2002, một cuộc tấn công cơ sở hạ tầng đã được đưa ra nhằm vào tất cả 13
máy chủ tên gốc. Cuộc tấn công này đã không đi ra như là một thành công nhưng đã
giới thiệu cuộc tấn công kiểu này. Gần đây, chính xác sau 14 năm, vào ngày 21
tháng 10 năm 2016, cuộc tấn công DDoS lớn nhất đã nhắm đến một cơ sở hạ tầng
chính được gọi là Dyn DNS. Hệ thống này cung cấp dịch vụ phân giải địa chỉ DNS
cho hơn 3.500 doanh nghiệp. , Linkedin, v.v. Nó cung cấp dịch vụ hiệu suất cao với
cơ sở hạ tầng DNS được quản lý bao gồm nhiều trung tâm dữ liệu nằm ở nhiều châu
lục. Nó có khả năng phân tích 3 tỷ điểm dữ liệu mỗi ngày. Theo nguồn tin Dyn,
trong mỗi tháng, các cuộc tấn công DDoS đáng kể được phát hiện và giảm thiểu bởi

các chuyên gia DNS có kinh nghiệm của Dyn. Tuy nhiên, điều trớ trêu là trong cuộc
tấn công DDoS của tháng 10, hệ thống hiệu năng cao này đã giảm xuống trong một
khoảng thời gian đáng kể. Những kẻ tấn công liên quan đến hàng triệu thiết bị IoT
kém bảo đảm trong cuộc tấn công này không phải là máy tính mạnh mẽ mà là một


10
số thiết bị thông minh như tủ lạnh thông minh, webcam và máy quay video kỹ thuật
số (DVR). Vì vậy, nó giới thiệu một mối đe dọa đáng kể trong thế giới an ninh
mạng hiện tại. Điều này là do, hiện tại số lượng thiết bị IoT là 28,4 tỷ và con số này
đang tăng lên với tốc độ lớn. Nó đã được báo cáo rằng để lây nhiễm các số lượng
lớn các thiết bị, một phần mềm độc hại botnet mã nguồn mở, ‘‘ Mirai, ’’ được sử
dụng. Phần mềm độc hại này được thiết kế để lây nhiễm các thiết bị IoT và khởi
chạy các cuộc tấn công DDoS dựa trên hướng dẫn của kẻ tấn công. Cuối cùng, cuộc
tấn công này lại mang lại sự cần thiết của một giải pháp hợp tác toàn cầu về các mối
đe dọa của thế giới hiện tại.

1.2.4 Tấn công Zero-day
Zero-day DDoS Attacks là tên được đặt cho các phương pháp tấn công DDoS
mới, khai thác các lỗ hổng chưa được vá. Các tổ chức bảo mật hoặc công ty phần
mềm tư nhân khác nhau đưa ra các khuyến khích và phần thưởng để báo cáo các lỗ
hổng. Tác động và dấu hiệu của loại tấn công này cũng không được biết cho đến khi
cuộc tấn công được thực hiện.

1.3 Tấn công DDoS Website
Hiện nay những cuộc tấn công DDoS nhắm vào các trang web được thực hiện
thường xuyên và hình thức ngày càng phức tạp. Theo thống kê hằng năm rất nhiều
trang web bị tấn công và thiệt hại là rất lớn.

Hình 1.5: Phân tích các trang web bị tấn công



11
Thông thường một cuộc tấn công xảy ra khi hacker thực hiện các hoạt động
nhằm mục đích “food” network với một lượng thông tin khổng lồ. Khi ta nhập URL
của một website nào đó vào trình duyệt, tức là ta đang gửi một request đến server
máy tính của website đó. Về cơ bản thì mỗi một Sever chỉ có khả năng xử lý một số
lượng reqquest nhất định được gửi đến trong cùng một lúc. Lợi dụng đặc điểm này,
kẻ tấn công sẽ khuếch đại số request lên với khối lượng khổng lồ khiến cho server
mất khả năng xử lí lượng reqquest này và ta không thể truy cập trang web đó.
Trong một cuộc tấn công từ chối dịch vụ phân tán (DDoS), kẻ tấn công sẽ tiến
hành sử dụng máy tính nhiễm mã độc để tấn công một máy tính khác, lợi dụng các
lỗ hổng và điểm yếu về bảo mật, kẻ tấn công sẽ chiếm đoạt kiểm soát rất nhiều máy
tính có hệ thống bảo mật yếu. Sau khi đã nắm trong tay toàn quyền điều khiển,
hacker sẽ buộc máy tính đó gửi đi một lượng lớn dữ liệu tới trang web mục tiêu.
Tấn công DDoS nhiều khi được sử dụng để che dấu cuộc tấn công mạng phía sau.
Trong khi trang web đang bị tấn công, đội ngũ nhân lực về an ninh mạng bên trong
và bên ngoài thường tập trung vào việc ngắt các trang web này, làm sạch lưu lượng
và cho nó hoạt động trở lại. Những nỗ lực to lớn này lại mang lại một cơ hội to lớn
cho một chuỗi tấn công ẩn ở cổng sau (back door) và chèn vào các công cụ SQL.
Như vậy, tấn công DDoS chỉ là màn chắn cho các hoạt động bất thường này mà
thôi.
Một cuộc tấn công DDoS vào một website có thể chia ra làm hai cách như sau:

1.3.1 Tấn công vào máy chủ cài webserver
Để tấn công một website nào đó hiện này kẻ tấn công thông thường sẽ nhắm
đến máy chủ cài đặt website đó, dưới đây là một số hình thức tấn công phổ biến:

1.3.1.1 UDP Flood
UDP (User Datagram Protocol) là một giao thức kết nối không tin cậy. Một

cuộc tấn công gây ngập lụt UDP có thể được bắt đầu bằng cách gửi một số lượng
lớn các gói tin UDP tới cổng ngẫu nhiên trên một máy chủ và kết quả là các máy
chủ sẽ :


12
 Kiểm tra các ứng dụng với cổng;
 Thấy rằng không có ứng dụng nghe ở cổng;
 Trả lời với một ICMP Destination Unreachable gói.
Như vậy, hệ thống nạn nhân sẽ bị buộc nhận nhiều gói tin ICMP, dẫn đến mất
khả năng xử lý các yêu cầu của các khách hàng truy cập thông thường.

1.3.1.2 SYN Flood
Kiểu tấn công TCP SYN flood là một kiểu tấn công trực tiếp vào máy chủ
bằng cách tạo ra một số lượng lớn các kết nối TCP nhưng không hoàn thành các kết
nối này.
Một người dùng bình thường kết nối tới máy chủ ban đầu thực hiện Request
TCP SYN và lúc này máy chủ không còn khả năng đáp lại – kết nối không được
thực hiện.

1.3.1.3 Reflected Attack
Reflected Attack hay còn gọi là tấn công ánh xạ được thực hiên bằng cách gửi
càng nhiều gói tin với địa chỉ giả mạo đến càng nhiều máy tính càng tốt. Các máy
tính nhận được các gói tin sẽ trả lời, nhưng tin trả lời này tới địa chỉ nạn nhân bị giả
mạo. Tất nhiên các máy tính này sẽ cố gắng trả lời ngay lập tức làm trang web bị
ngập lụt đến khi tài nguyên máy chủ bị cạn kiệt.

1.3.1.4 Unintentional DDoS
Unintentional DDoS hay còn gọi là sự gia tăng không chủ ý. Nó xảy ra khi có
sự tăng đột biến trong lưu lượng web khiến máy chủ không thể xử lý tất cả các yêu

cầu đến. Càng nhiều lưu lượng truy cập xảy ra, càng nhiều tài nguyên được sử dụng.
Điều này khiến thời gian tải trang hết hạn và cuối cùng server sẽ không phản hồi và
ngừng kết nối.

1.3.1.5 Slowloris
Loại tấn công từ chối dịch vụ phân tán này rất khó để phát hiện và hạn chế. Sự
việc đáng chú ý nhất là vụ tấn công trong cuộc bầu cử tổng thống Iran năm 2009.
Loại tấn công này có kĩ thuật tương tự như SYN flood (tạo nửa kết nối để làm cạn
kiệt tài nguyên máy chủ) nhưng diễn ra ở lớp HTTP (lớp ứng dụng). Để tấn công,


13
tin tặc gửi yêu cầu HTTP đến máy chủ, nhưng không gửi toàn bộ yêu cầu, mà chỉ
gửi một phần (và bổ sung nhỏ giọt, để khỏi bị ngắt kết nối). Với hàng trăm kết nối
như vậy, tin tặc chỉ tốn rất ít tài nguyên, nhưng đủ để làm treo máy chủ, không thể
tiếp nhận các kết nối từ người dùng hợp lệ.

1.3.2 Tấn công trực tiếp vào website
Cách tấn công trực tiếp vào website này thường dùng cho các cuộc tấn công
nhỏ lẻ và nhắm vào các lỗ hổng của các ứng dụng web điển hình là các cách tấn
công sau :

1.3.2.1 Application Level Attacks
Application level attacks nhằm vào mục tiêu là các ứng dụng có nhiều lỗ hổng.
Thay vì cố gắng gây lụt toàn bộ máy chủ, kẻ tấn công sẽ tập trung tấn công vào một
hoặc một vài ứng dụng. Các ứng dụng email dựa trên web, WordPress, Joomla và
phần mềm diễn đàn là những ví dụ điển hình về các mục tiêu cụ thể của ứng dụng

1.3.2.2 Degradation of Service Attacks
Degradation of Service Attacks hay còn gọi là tấn công làm suy giảm dịch vụ.

Mục đích của cuộc tấn công này là làm chậm thời gian đáp ứng của website. Thông
thường một cuộc tấn công DDoS nhằm mục đích khiến trang web không thể thực
hiện tác vụ thông thường. Nhưng mục tiêu của kiểu tấn công này là để làm chậm
thời gian phản hồi xuống mức hầu hết mọi người không thể sử dụng được trang
web. Máy tính Zombie được sử dụng để làm tràn máy tính mục tiêu với lưu lượng
truy cập độc hại, nó sẽ gây ra các vấn đề về hiệu suất và thời gian tải trang. Những
loại tấn công này có thể khó phát hiện vì mục tiêu không phải là để đưa trang web
ngừng kết nối, nhưng để làm giảm hiệu suất. Chúng thường bị lẫn lộn với sự gia
tăng lưu lượng sử dụng website.

1.4 Xây dựng Botnet
Để xây dựng một mạng botnet đòi hỏi những kỹ năng nhất định về lập trình.
Hiện nay có khá nhiều tài liệu nói về kiến thức, cách xây dựng mạng botnet với ai
có nhu cầu quan tâm và học hỏi, để nắm được cách thức hoạt động của nó.


14
Đầu tiên, kẻ tấn công sẽ tìm cách biến máy người sử dụng thành một bot trong
mạng botnet của mình, hắn sẽ tạo ra một file có đính kèm mã độc và đưa lên
internet để người dùng tải về. Con đường phổ biến mà người dùng trở thành nạn
nhân là tải một file đính kèm trong email bị nhiễm mã độc hoặc tải một phần mềm,
file bị nhiễm mã độc từ mạng Internet.
Các bot có thể liên lạc với nhau, liên hệ với máy chủ từ xa để nhận lệnh từ
máy điều khiển hoặc tải về thêm những loại mã độc khác với những chức năng khác
nhau. Các máy điều khiển với IP không cố định, có thể thường xuyên thay đổi để
tránh bị phát hiện hoặc thông qua các Proxy.
Nhiệm vụ hàng đầu của việc xây dựng botnet chính là làm gia tăng số lượng
bot trong hệ thống botnet với mục tiêu là các cuộc tấn công DDoS với số lượng các
bot tham gia lớn. Mỗi một máy tính khi bị nhiễm mã độc của kẻ tấn công có thể lây
lan sang nhiều máy khác. Ngoài mục đích tấn công DDoS, kẻ tấn công có thể lợi

dụng mạng botnet để thực hiện những hành động khác như gửi thư rác, tham gia
vào các click gian lận, hăm dọa và tống tiền.

1.4.1 Kiến trúc Handler-Agent

Hình 1.6: Sơ đồ Handler-Agent


15
Mạng Handler-Agent 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 phần mềm 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.
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.

1.4.2 Kiến trúc IRC Base


Hình 1.7: Sơ đồ IRC Base
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


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

1.4.3 Kiến trúc Peer-to-Peer

Hình 1.8: Sơ đồ Peer-to-Peer


17
Không giống như 2 mô hình trên, Botnet dựa trên kiến trúc Peer-to-Peer
không có thành phần trung gian gửi lệnh riêng biệt. Các lệnh được gửi đến các bot
thông qua giao thức P2P.
Trong trường hợp này mỗi bot không chỉ đóng vai trò tấn công, mà còn đóng
vai kiểm soát và gửi lệnh cho các bot khác. Như vậy, kiến trúc botnet dựa trên P2P
rất khó để đánh sập vì sự phân bố của nó rất rộng, và không hề có một máy chủ điều
khiển.

1.4.4 Một số botnet nổi tiếng trên thế giới
- SDBot: Lợi dụng lỗ hổng bị đã được khai thác để xâm nhập hệ thống của
mạng chia sẻ không an toàn. SDbot lây lan chủ yếu qua mạng chia sẻ và tìm ra
mạng chia sẻ không được bảo vệ hoặc mạng có mật khẩu yếu Khi SDBot có thể kết
nối với một hệ thống có lỗ hổng, nó sẽ được tải về và thực hiện việc lây nhiễm hệ
thống. Hệ thống bị lây nhiễm sẽ mở một số loại backdoor cho phép kẻ tấn công truy
cập vào. Nó có thể thay đổi các thanh ghi trong window để đảm bảo chương trình
luôn luôn chạy khi Windows khởi động.
- Agobot: Các máy bị lây nhiễm Agobot sẽ mở ra một backdoor để cho phép
kẻ tấn công để giao tiếp và điều khiển máy. Nó có khả năng lây lan qua mạng P2P
(peer-to-peer). Để tránh bị phát hiện, nó chặn các truy cập của máy Agent đến các
trang web của các công ty chống virus và các hãng bảo mật. Để mở rộng hệ thống
mạng botnet của mình, các Agobot tạo các tệp tin với các từ khóa là tên của các trò
chơi phổ biến để người dụng download về. Các tệp tin này chứa các phần mềm độc

hại được cài đặt vào máy nạn nhân.

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


18

Hình 1.9: Các phương pháp xây dựng tài nguyên tấn công

1.5.1 Cách thức cài DDoS Agent
- 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.
+ 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.
+ 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.
+ Buffer Overflow: 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

1.5.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 protocol đượ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.


×