Tải bản đầy đủ (.pdf) (25 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 tt

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 (509.87 KB, 25 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

TỐNG QUANG TÂN
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 WEBSITE
CHUYÊN NGÀNH :

HỆ THỐNG THÔNG TIN

MÃ SỐ : 8.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI - 2018


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. Phạm Hoàng Duy

Phản biện 1: TS. Hoàng Xuân Dậu
Phản biện 2: TS. Trần Minh Tân

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: 9 giờ 00 ngày 19 tháng 01 năm 2019
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông



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
: “Nghiên cứu và phòng chống tấn công từ chối dịch vụ vào website”, với mục đích


2

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.

1.2 Phân loại các kiểu tấn công DDoS.
Các kiểu tấn công DDoS có thể chia 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”. Dưới đây là
sơ đồ mô tả sự phân loại các kiểu tấn công DDoS.

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)


4

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
- ICMP Flood Attack


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.
Có thể chia amplification attack thành hai loại, Smuft và Fraggle attack:

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
- PUSH và ACK Attack

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.


5

Có hai loại Malformed Packet Attack:

- IP address attack.
- IP packet options attack

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.

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.


6

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

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ẽ :
 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


7

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


8

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ánh 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 lụt toàn bộ máy chủ, một 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ó.
Đầ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


9

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.


1.4.1 Kiến trúc Handler-Agent
Mạng Handler-Agent thông thường bao gồm 3 thành phần: Agent, Client và
Handler. Trong đó :
- Client
- Handler
- Agent

1.4.2 Kiến trúc 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
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
- Private channel
- Secrect channel
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.


10

1.4.3 Kiến trúc Peer-to-Peer
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.

1.4.4 Một số botnet nổi tiếng trên thế giới
- SDBot
- Agobot

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

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


11

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.

1.6 Một số công cụ tấn công DDoS
1.6.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.

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

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


1.6.4 Trinity
Trinity có hầu hết các kỹ thuật tấn công bao gồm: UDP, TCP SYN, 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.

1.6.5 DoSHTTP
DoSHTTP là một phần mềm sử dụng dễ dàng, mạnh mẽ để tấn công tràn
ngập HTTP. DoSHTTP bao gồm xác nhận URL, chuyển hướng HTTP và giám sát
hiệu suất. Công cụ DoSHTTP có thể giúp các chuyên gia CNTT thử nghiệm hiệu
năng máy chủ web và đánh giá độ bảo mật.

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


12

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.

1.7 Phòng chống DDoS
1.7.1 Phương pháp phòng chống DDoS
1.7.1.1 Đối với cuộc tấn công có quy mô lớn
Có ba giai đoạn chính trong quá trình Phòng chống DDoS:
- Giai đoạn ngăn ngừa: tối thiểu hóa lượng Agent, tìm và vô hiệu hóa các Handler.

- Giai đoạn đối đầu với cuộc tấn công: Phát hiện và ngăn chặn cuộc tấn công, làm
suy giảm và dừng cuộc tấn công, chuyển hướng cuộc tấn công.
- Giai đoạn sau khi cuộc tấn công xảy ra: thu thập chứng cứ và rút kinh nghiệm.

a) Tối thiểu họa lượng Agent
b) Tìm và vô hiệu hóa các Handler
c) Phát hiện dấu hiệu của cuộc tấn công
Có nhiều kỹ thuật được áp dụng:
- Agress Filtering
- MIB statistics

d) Làm suy giảm hay dừng cuộc tấn công
Dùng các kỹ thuật sau:
- Load balancing
- Throttling
- Drop request

e) Chuyển hướng cuộc tấn công
Honeyspots: Một kỹ thuật được nghiên cứu là Honeyspots. Honeyspots là một hệ
thống được thiết kế nhằm đánh lừa attacker tấn công vào khi xâm nhập hệ thống mà
không chú ý đến hệ thống quan trọng thực sự.

g) Giai đoạn sau tấn công
Trong giai đoạn này thông thường thực hiện các công việc sau:


13

- Traffic Pattern Analysis
- Packet Traceback

- Bevent Logs

1.7.1.2 Đối với các cuộc tấn công nhỏ
Cách 1: Chống iframe:
Đây là phương pháp được xem là thô sơ nhất. Kẻ tấn công sẽ mượn 1
website có lượt truy cập lớn nào đó chèn các iframe hướng về website cần đánh rồi
cho chạy lệnh refresh (tải lại) nhiều lần hoặc họ viết sẵn 1 tập tin flash với công
dụng tương tự rồi đặt lên website và khi người dùng truy cập vào website này thì họ
vô tình bất đắc dĩ trở thành người tấn công website kia.
Với hình thức tấn công kiểu như thế này bạn hoàn toàn có thể chống lại bằng cách
chèn 1 đoạn mã Javascript chống chèn iframe từ các website khác đến website của
bạn.
if (top.location != self.location)
{top.location = self.location}
Cách 2: Chống tải lại (TOOL F5)
Một hình thức tấn công khác nữa là dùng phím F5 liên tục có chủ ý, hoặc
dùng một phần mềm được lập trình sẵn với công dụng tương tự (tải lại trang web
liên tục sau những khoảng thời gian định sẵn)
Cách 3: Giới hạn số kết nối website tại một thời điểm
Khi một khách truy cập vào website thì sẽ tạo ra một truy vấn kết nối với cơ
sở dữ liệu (CSDL) lấy thông tin và trả về thông qua hiển thị của website. Mỗi máy
chủ sẽ có phép bao nhiêu truy vấn kết nối là hạn định và khi vượt quá hạn mức này
thì việc truy cập sẽ khó khăn hoặc không thể truy xuất được.

1.7.2. Một số công cụ mã nguồn mở phòng chống DDoS
Hiện nay có rất nhiều công cụ mã nguồn mở miễn phí giúp ta ứng dụng và
phòng chống tấn công DDoS như:
- Iptables
- Sort Inline



14

- Mod DoS-Deflate
- Alpine Linux
- HAPROXY


15

CHƯƠNG II. CÔNG CỤ MÃ NGUỒN MỞ IPTABLES VÀ
SNORT INLINE
2.1. Công cụ Iptables
2.1.1 Giới thiệu chung về Iptables
Iptables là một tường lửa ứng dụng lọc gói dữ liệu rất mạnh, miễn phí và có
sẵn trên Linux. Netfilter/Iptables gồm 2 phần là Netfilter ở trong nhân Linux và
Iptables nằm ngoài nhân. Iptables chịu trách nhiệm giao tiếp giữa người dùng và
Netfilter để đẩy các luật của người dùng vào cho Netfiler xử lí. Netfilter tiến hành
lọc các gói dữ liệu ở mức IP. Netfilter làm việc trực tiếp trong nhân, nhanh và
không làm giảm tốc độ của hệ thống.

2.1.2 Cấu trúc của Iptables
Tất cả mọi gói dữ liệu đều được kiểm tra bởi Iptables bằng cách dùng các bản tuần
tự xây dựng sẵn (queues). Có 3 loại bảng này gồm:
- Mangle
- Filter: chịu trách nhiệm lọc gói dữ liệu. Nó gồm 3 quy tắc nhỏ (chain) để thiết lập
các nguyên tắc lọc gói, gồm :
+ Forward chain: lọc gói khi đến server khác.
+ Input chain: lọc gói khi đi vào trong server.
+ Output chain: lọc gói khi ra khỏi server.

- NAT : Gồm có hai loại:
+ Pre-routing.
+ Post-routing

2.1.3 Targets
Targets là hành động sẽ diễn ra khi một gói dữ liệu được kiểm tra và phù hợp
với một yêu cầu nào đó. Khi một target đã được nhận dạng, gói dữ liệu sẽ được
nhảy (jump) để thực hiện các xử lý tiếp theo.


16

2.1.4 Các tùy chọn quan trọng của Iptables
Các tham số sau sẽ cho phép Iptables thực hiện các hành động sao cho phù
hợp với biểu đồ xử lý gói do người dùng hoạch định sẵn.

2.2 Công cụ Snort inline
2.2.1 Giới thiệu về Snort
Snort là một hệ thống ngăn chặn xâm nhập và phát hiện xâm nhập mã nguồn
mở được phát triển bởi sourcefire. Kết hợp những lợi ích của dấu hiệu, giao thức và
dấu hiệu bất thường, Snort là công nghệ IDS/IPS được triển khai rộng rãi trên toàn
thế giới.
Snort là một ứng dụng bảo mật hiện đại có ba chức năng chính : nó có thể
phục vụ như một bộ phận lắng nghe gói tin, lưu lại thông tin gói tin hoặc một hệ
thống phát hiện xâm nhậm mạng (NIDS).

2.2.2 Cấu trúc Snort
Snort bao gồm nhiều thành phần, với mỗi thành phần có một chức năng riêng.
Các thành phần chính đó là:
 Môđun giải mã gói tin (Packet Decoder)

 Môđun tiền xử lý (Preprocessors)
 Môđun phát hiện (Detection Engine)
 Môđun log và cảnh báo (Logging and Alerting System)
 Môđun kết xuất thông tin (Output Module)
Cấu trúc của Snort được mô tả như sau:

Hình 2.3: Mô hình cấu trúc hệ thống Snort


17

2.2.2.1 Môđun giải mã gói tin
Snort sử dụng thư viện pcap để bắt mọi gói tin trên mạng lưu thông qua hệ
thống
Một gói tin sau khi được giải mã sẽ được đưa tiếp vào môđun tiền xử lý.

2.2.2.2 Môđun tiền xử lý
Môđun tiền xử lý là một môđun rất quan trọng đối với bất kỳ một hệ thống
IDS nào để có thể chuẩn bị gói dữ liệu đưa vào cho môđun Phát hiện phân tích.
Ba nhiệm vụ chính của các môđun loại này là:
+ Kết hợp các gói tin
+ Giải mã và chuẩn hóa giao thức (decode/normalize)
+ Phát hiện các xâm nhập bất thường (nonrule /anormal)

2.2.2.3 Môđun phát hiện
Đây là môđun quan tọng nhất của Snort. Nó chịu trách nhiệm phát hiện các
dấu hiệu xâm nhập. Môđun phát hiện sử dụng các luật được định nghĩa trước để so
sánh với dữ liệu thu thập được từ đó xác định xem có xâm nhập xảy ra hay không.
Rồi tiếp theo mới có thể thực hiện một số công việc như ghi log, tạo thông báo và
kết xuất thông tin.

Một môđun phát hiện cũng có khả năng tách các phần của gói tin ra và áp
dụng các luật lên từng phần nào của gói tin đó. Các phần đó có thể là:
 IP header
 Header ở tầng giao vận: TCP, UDP
 Header ở tầng ứng dụng: DNS header, HTTP header, FTP header,…
 Phần tải của gói tin (bạn cũng có thể áp dụng các luật lên các phần dữ liệu
được truyền đi của gói tin)
Một vấn đề nữa trong Môđun phát hiện đó là việc xử lý thế nào khi một gói
tin bị phát hiện bởi nhiều luật. Do các luật trong Snort cũng được đánh thứ tự ưu
tiên, nên một gói tin khi bị phát hiện bởi nhiều luật khác nhau, cảnh báo được đưa
ra sẽ là cảnh báo ứng với luật có mức ưu tiên lớn nhất.

2.2.2.4 Môđun log và cảnh báo


18

Tùy thuộc vào việc môđun Phát hiện có nhận dạng được xâm nhập hay
không mà gói tin có thể bị ghi log hoặc đưa ra cảnh báo. Các file log là các file text
dữ liệu trong đó có thể được ghi dưới nhiều định dạng khác nhau chắng hạn
tcpdunmp.

2.2.2.5 Môđun kết xuất thông tin
Môđun này có thể thực hiện các thao tác khác nhau tùy theo việc bạn muốn
lưu kết quả xuất ra như thế nào. Tùy theo việc cầu hình hệ thống mà nó có thể thực
hiện các công việc như là:
 Ghi log file
 Ghi syslog
 Ghi cảnh báo vào cơ sở dữ liệu.
 Tạo file log dạng xml.

 Cấu hình lại Router, firewall.
 Gửi các cảnh báo được gói trong gói tin sử dụng giao thức SNMP.
 Gửi các thông điệp SMB (Server Message Block) tới các máy tính Windows.
Nếu không lòng với các cách xuất thông tin như trên, ta có thể viết các môđun kết
xuất thông tin riêng tùy theo mục đích sử dụng.

2.2.3 Bộ luật của Snort
2.2.3.1 Giới thiệu
Cũng giống như virus, hầu hết các hoạt động tấn công hay xâm nhập đều có
các dấu hiệu riêng. Các thông tin về các dấu hiệu này sẽ được sử dụng để tạo nên
các luật cho Snort. Thông thường, các bẫy (honey pots) được tạo ra đề tìm hiểu xem
các kẻ tắn công làm gì cũng như các thông tin về công cụ và công nghệ chúng sử
dụng. Và ngược lại, cũng có các cơ sở dữ liệu về các lỗ hổng bảo mật mà những kẻ
tắn công muốn khai thác. Các dạng tấn công đã biết này được dùng như các dấu
hiệu để phát hiện tấn công xâm nhập. Một luật có thể được sử dụng để tạo nên một
thông điệp cảnh báo, log một thông điệp hay có thể bỏ qua một gói tin.

2.2.3.2 Cấu trúc luật của Snort
Ta thấy cấu trúc của một luật có dạng như sau:


19

Hình 2.5: Cấu trúc luật của Snort

Diễn giải:
Tất cả các Luật của Snort về logic đều gồm 2 phần: Phần header và phần Option.
Cấu trúc chung của phần Header của một luật Snort gồm:
 Action
 Protocol

 Address
 Port

 Direction
2.2.4 Chế độ ngăn chặn của Snort : Snort — Inline
2.2.4.1 Tích hợp khả năng ngăn chặn vào Snort
Snort-inline là một nhánh phát triển của Snort do William Metcalf khởi
xướng và lãnh đạo. Đến phiên bản 2.3.0 RC1 của Snort, inline-mode đã được tích
hợp vào bản chính thức do snort.org phát hành. Sự kiện này đã biến Snort từ một
IDS thuần túy trở thành một hệ thống có các khả năng của một IPS, mặc dù chế độ
này vẫn chỉ là tùy chọn chứ không phải mặc định.
Ý tưởng chính của inline-mode là kết hợp khả năng ngăn chặn của iptables
vào bên trong snort. Điều này được thực hiện bằng cách thay đổi môđun phát hiện
và môđun xử lý cho phép snort tương tác với iptables.

2.2.4.2 Những bổ sung cho cấu trúc luật của Snort hỗ trợ Inline mode
Để hỗ trợ tính năng ngăn chặn của Snort-inline, một số thay đổi và bồ sung
đã được đưa vào bộ luật Snort


20

CHƯƠNG III. XÂY DỰNG GIẢI PHÁP PHÒNG CHỐNG
DDOS
3.1 Giải pháp phòng chống DDoS được đưa ra cho Website
Qua các nghiên cứu và phân tích về các hình thức tấn công DDoS và công cụ
giúp phòng chống DDoS ở chương một và chương hai. Chương ba của luận văn sẽ
tập trung vào giải pháp tấn công vào máy chủ Web và xây dựng giải pháp chống lại
các hình thức tấn công phổ biến SYN Flood, UDP Flood, HTTP Flood.
Hiện nay có rất nhiều cách phòng chống DDoS cho máy chủ web:

 Sử dụng Firewall
 Triển khai IPS (Tmrusion Prevention System- Hệ thống chống xâm nhập)
 Tăng băng thông kết nối tạm thời giải quyết lượng truy cập vào website
 Phân tán lượng truy cập đến một máy chủ khác với băng thông lớn
 Thiết lập và cân bằng tải hệ thống máy chủ đề tăng thời gian chống DDoS
 Cấu hình lại máy chủ, thiết lập thông số tường lửa để sàng lọc các địa chỉ IP
có dấu hiệu truy cập ảo.
Chúng ta lựa chọn giải pháp sử dụng IPS gồm Snort inline và Iptables để xây
dựng giải pháp phòng chống DDoS cho máy chủ Web. Phương pháp này được sử
dụng khá rộng rãi. Như trong trường hợp Vietnamnet bị tấn công DDoS, công ty
CMCinfosec đã sử dụng nhiều biện pháp khác nhau bao gồm việc kết hợp cả phần
mềm và phần cứng để hạn chế DDoS, tuy nhiên ý tưởng chính của phương pháp
trên là định tuyến các yêu cầu của người dùng về hệ thống IPS, tại đây sử dụng CSF
để lọc chặn gói tin ở tầng mạng và sử dụng IPS để lọc gói tin ở tầng ứng dụng, sau
đó các gói tin hợp lệ sẽ được định tuyến đến máy chủ thật.

3.1.1 Ưu điểm của giải pháp sử dụng hệ thống IPS
Ưu điểm của phương pháp này là cản lọc được phần lớn gói tin không hợp
lệ, máy chủ web vẫn có khả năng phục vụ mặc dù chịu cường độ DDoS lớn.
Snort inline: Snort được biết đến với các ưu điểm như dễ cấu hình, miễn
phí, sử dụng rộng rãi, chạy trên nhiều nền tảng (Windows, Unix, Linux), liên tục


21

được cập nhật. Snort Inline là một “module” của snort, thay vì lắng nghe trên công
chỉ định và theo dõi tất cả các traffc đi qua công đấy, Snort inline chỉ theo dõi các
traffic đặc biệt được chỉ định trước, do đó làm tăng khả năng và hiệu suất của Snort.
Iptables mà nền tảng là Netfilter cũng có những ưu điểm như dễ cấu hình,
tốc độ xử lý nhanh, được tích hợp sẵn trong Kernel Linux.

Việc sử dụng kết hợp Iptables với Snort inline sẽ tạo được một hệ thống
IPS hoạt động ổn định, dễ cấu hình, dễ dàng tinh chỉnh khi cần thiết.

3.1.2 ConfigServer Security & Firewall (CSF)
CSF là 1 gói ứng dụng hoạt động trên Linux như là một tường lửa miễn phí
dùng để tăng tính bảo mật cho máy chủ. CSF hoạt động dựa trên iptables và Login
Failure Daemon (ldf) để quyét các file log để phát hiện các dấu hiệu tấn công bất
thường.

3.2 Thử nghiệm, đánh giá
3.2.1 Mô hình
Với mục tiêu đặt ra là tăng thời gian chống chịu cho máy chủ Web, bảo vệ và
giảm thiệt hại của các trang web để nhưng người quản trị có thời gian khắc phục
trước một cuộc tấn công DDoS ta thực hiện thử nhiệm với các hình thức tấn công
gây ngập lụt như SYN Flood.
Công cụ sử dụng để đo thời gian đáp ứng của máy chủ web là Jmeter

3.2.2 Cài đặt
Thực hiện cài đặt tùy chỉnh Snort inline

3.2.3 Cấu hình trên IPS
Cấu hình cho phép gói tin đi qua

3.2.4 Chạy thử nghiệm
Thực hiện kiểm thử hệ thông bằng 2 kịch bản :
Kịch bản 1: Tấn công máy chủ web khi không có IPS và không cài CFS
Kịch bản 2: Tấn công máy chủ web khi có IPS, có sử dụng CSF.


22


3.2.5 Đánh giá thử nghiệm
Với mô hình thử nghiệm và phương thức tấn công như đã thực hiện chúng ta
thấy được kết quả ở các kịch bản mà chúng ta đưa ra như sau:
 Đối với kịch bản 1: Khi bị tấn công, máy chủ phải tạo ra rất nhiều tiến trình
để phục vụ yêu cầu từ các máy tấn công. Thời gian đáp ứng trung bình lên
đến 8s/một yêu cầu cho thấy việc phục vụ hết sức chậm chạp của máy chủ
khi đang bị tấn công.
 Đối với kịch bản 2: Khi kết hợp cả CSF và hệ thống IPS, các gói tin từ các
máy tấn công sẽ bị lọc một phần ở tầng mạng (CSF cản lọc), phần còn lại sẽ
bị Snort inline cản lọc ở tầng ứng dụng. Như vậy chỉ còn các gói tin từ người
dùng hợp lệ đến với máy chủ web. Đó chính là lý do tại sao tài nguyên của
máy chủ web hầu như không thay đổi trước và trong cuộc tấn công DDoS.


23

KẾT LUẬN
1. Các kết quả đạt được
Luận văn được xây dựng với mục đích nghiên cứu, tìm hiểu các hình thức
tấn công DDoS vào ứng dụng Web bao gồm các hình thức:
 Tấn công vào máy chủ cài Webserver
 Tấn công trức tiếp vào Website
Trong đó đi sâu vào hình thức tấn công DDoS vào máy chủ cài Webserver. Từ đó
đưa ra giải pháp phòng chống không chỉ Website thử nghiệm mà còn thực hiện trên
nhiều Website khác. Từ các giải pháp đó khi triển khai nó sẽ ngăn chặn được các
cuộc tấn công đồng loạt của Hacker.
+ Tìm hiểu lý thuyết về DDoS bao gồm lý thuyết chung, phân loại các kiểu
DDoS, nắm được các cách xây dựng mạng Botnet, biết được một số công cụ tấn
công DDoS và cách phòng chống DDoS.

+ Triển khai thành công hệ thống phòng chống DDoS cho máy chủ cài
Webserver bằng các công cụ mã nguồn mở Snort Inline và Iptables, tìm hiểu về lý
thuyết và cài đặt cấu hình hai công cụ.

2. Hướng nghiên cứu tiếp theo
Trong quá trình nghiên cứu thực hiện luận văn chúng ta có thể thấy được các
cuộc tấn công DDoS ngày càng có nhiều biến thể tinh vi hơn, mức độ tàn phá cũng
cao hơn, làm cho việc phòng chống DDoS ngày càng trở nên khó khăn hơn rất
nhiều. Dưới đây là một số hướng phất triển nhằm nâng cao tính hiệu quả trong
phòng chống DDoS cho máy chủ web.
 Thực hiện bổ xung các thử nghiệm với các hình thức tấn công khác nhau
đánh giá chính xác và hoàn thiện hệ thống.
 Nghiên cứu thêm giải pháp cân bằng tải HAPROXY thực hiện tích hợp vào
hệ thống và cài đặt cho các website để có thể phòng thủ tốt trước các cuộc
tấn công DDoS.


×