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 (Luận văn thạc sĩ) - Pdf 53

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

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


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


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

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

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)

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



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.


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

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

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

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

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.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status