LỜI CAM ĐOAN .i
MỤC LỤC.ii
MỞ ĐẦU. 1
1. Tính cấp thiết của đề tài. 1
2. Đối tượng nghiên cứu và phương pháp nghiên cứu . 2
3. Nội dung nghiên cứu . 3
4. Ý nghĩa khoa học và ý nghĩa thực tiễn của luận án. 6
5. Điểm mới của luận án. 7
6. Cấu trúc của luận án . 7
CHƯƠNG 1. TỔNG QUAN VỀ TẤN CÔNG VÀ PHÒNG CHỐNG TẤN CÔNG DDOS. 9
1.1. Tổng quan về tấn công từ chối dịch vụ phân tán DDoS. 9
1.2. Các dạng tấn công DDoS phổ biến . 11
1.2.1. Tấn công DDoS ở lớp mạng. 11
1.2.2. Tấn công DDoS vào lớp ứng dụng . 12
1.3. Các công cụ tấn công DDoS phổ biến. 13
1.3.1. IRC-based. 14
1.3.2. Web-based. 14
1.4. Những thách thức trong việc phát hiện và phòng chống tấn công DDoS . 15
1.5. Tổng quan về các phương pháp phòng chống tấn công DDoS. 16
1.5.1. Nhóm phương pháp phòng chống tấn công lớp mạng. 18
1.5.1.1. Nhóm phương pháp áp dụng ở gần nguồn tấn công. 18
1.5.1.2. Nhóm phương pháp áp dụng ở phía đối tượng được bảo vệ . 18
1.5.1.3. Nhóm phương pháp áp dụng ở hạ tầng mạng trung gian . 19
1.5.1.4. Nhóm phương pháp kết hợp . 19
1.5.2. Nhóm phương pháp phòng chống tấn công lớp ứng dụng. 19
1.5.2.1. Nhóm phương pháp áp dụng ở phía đối tượng được bảo vệ . 20
1.5.2.2. Nhóm phương pháp kết hợp . 20
1.5.3. Nhóm các phương pháp theo giai đoạn phòng chống. 20
1.5.3.1. Giai đoạn phòng thủ . 20
1.5.3.2. Giai đoạn phát hiện tấn công . 21iv
1.5.3.3. Giai đoạn xử lý tấn công. 21
1.5.4. Phân tích lựa chọn phương pháp theo vị trí triển khai. 22
1.5.5. Các nghiên cứu liên quan đến phòng chống tấn công TCP Syn Flood. 23
1.5.6. Các nghiên cứu liên quan đến phòng chống tấn công Web App-DDoS. 26
1.6. Nghiên cứu tiêu chí đánh giá hiệu quả phương pháp. 27
1.7. Nghiên cứu, khảo sát về đánh giá thực nghiệm. 28
1.7.1. Khảo sát các tập dữ liệu đánh giá thực nghiệm. 29
1.7.2. Đánh giá thực nghiệm với tấn công TCP Syn Flood và Web App-DDoS. 31
1.8. Kết luận chương 1 . 33
CHƯƠNG 2. PHÁT HIỆN VÀ PHÒNG CHỐNG TẤN CÔNG TCP SYN FLOOD . 34
2.1. Giới thiệu bài toán. 34
2.1.1. Tổng quan về nội dung nghiên cứu trong chương 2. 34
2.1.2. Về hạn chế và phạm vi ứng dụng của phương pháp giải quyết. 36
2.2. Tổng quan về dạng tấn công TCP Syn Flood . 37
2.3. Mô hình triển khai phương pháp phát hiện và phòng chống tấn công TCP Syn Flood. 38
2.3.1. Mô hình tổng thể và các thành phần cơ bản. 39
2.3.2. Nguyên lý hoạt động cơ bản. 40
2.4. Phát hiện tấn công TCP Syn Flood . 41
2.5. Phát hiện và loại bỏ các gói tin giả mạo trong tấn công DDoS TCP Syn Flood . 43
2.5.1. Đặc trưng của các gói tin IP được gửi đi từ cùng một máy nguồn. 43
2.5.2. Kiểm chứng giả thuyết về tính chất tăng dần của giá trị PID . 44
2.5.2.1. Kiểm chứng giả thuyết PID dựa trên quan sát ngẫu nhiên . 45
2.5.2.2 Kiểm chứng giả thuyết PID trên toàn bộ tập dữ liệu thu được . 46
2.5.3. Giải pháp phát hiện và loại bỏ các gói tin giả mạo PIDAD1. 46
2.5.3.1. Thuật toán DBSCAN. 47
2.5.3.2. Giải pháp PIDAD1 . 48
2.5.4. Giải pháp phát hiện và loại bỏ các gói tin giả mạo PIDAD2. 51
2.5.4.1. Cơ chế thuật toán lọc bỏ nhanh gói tin giả mạo. 52
2.5.4.2. Phân tích đánh giá về giải pháp PIDAD2 trên góc độ lý thuyết . 55
2.5.4.3. Tăng tốc độ xử lý của giải pháp PIDAD2 với thuật toán Bloom Filter . 57
2.5.5. Phương pháp xác thực địa chỉ IP nguồn . 58
2.6. Đánh giá thực nghiệm . 60v
2.6.1. Xây dựng mô hình và dữ liệu đánh giá thực nghiệm. 60
2.6.2. Đánh giá thực nghiệm cho giải pháp PIDAD1 và PIDAD2 . 63
2.6.2.1. Giải pháp PIDAD1 . 63
2.6.2.2. Giải pháp PIDAD2 . 64
2.6.2.3. So sánh hiệu quả của giải pháp PIDAD1 và PIDAD2 . 64
2.6.3. So sánh hiệu quả của giải pháp PIDAD2 với các giải pháp khác. 66
2.7. Kết luận chương 2 . 68
CHƯƠNG 3. PHÁT HIỆN VÀ PHÒNG CHỐNG TẤN CÔNG WEB APP-DDOS . 70
3.1. Giới thiệu bài toán. 70
3.2. Tổng quan về tấn công Web App-DDoS. 71
3.2.1. Ứng dụng Web. 71
3.2.1.1. Máy chủ Web. 71
3.2.1.2. Nguyên lý hoạt động . 71
3.2.1.3. Giao thức HTTP. 72
3.2.2. Đặc trưng và thách thức trong phòng chống tấn công Web App-DDoS . 73
3.1.2.1. Một số đặc trưng của tấn công Web App-DDoS . 73
3.2.2.2. Vấn đề khó khăn trong phòng, chống tấn công Web App-DDoS. 73
3.3. Mô hình, phương pháp phòng chống tấn công Web App-DDoS. 74
3.3.1. Mô hình tổng thể và các thành phần cơ bản. 74
3.3.2. Nguyên lý hoạt động cơ bản. 75
3.4. Phát hiện tấn công Web App-DDoS . 77
3.4.1. Tiêu chí phát hiện tấn công dựa trên tần suất truy nhập . 78
3.4.2. Tiêu chí phát hiện tấn công dựa vào thời gian truy cập ngẫu nhiên . 78
3.5. Phòng chống tấn công Web App-DDoS sử dụng phương pháp FDDA. 79
3.5.1. Ý tưởng cơ bản của phương pháp FDDA . 80
3.5.2. Các khái niệm sử dụng trong phương pháp FDDA . 81
3.5.3. Thiết lập tham số đầu vào cho phương pháp FDDA . 82
3.5.4. Tiêu chí về tần suất truy cập. 82
3.5.4.1. Thiết kế bảng dữ liệu lưu vết truy cập TraTab. 83
3.5.4.2. Thiết lập tham số đầu vào và cơ chế đồng bộ. 85
3.5.4.3. Thuật toán chi tiết tính tần suất f thời gian thực . 85
3.5.4.4. Cài đặt thuật toán. 89vi
3.5.4.5. Tìm và loại bỏ nhanh các nguồn gửi yêu cầu tấn công tần suất cao . 89
3.5.5. Xây dựng tiêu chí tương quan trong phương pháp FDDA . 91
3.5.5.1 Xây dựng tập dữ liệu tương quan. 91
3.5.5.2. Thiết kế cấu trúc dữ liệu cho thuật toán . 94
3.5.5.3. Phát hiện nguồn gửi tấn công sử dụng tập dữ liệu tương quan. 95
3.5.5. Thuật toán xử lý tấn công của phương pháp FDDA. 96
3.6. Đánh giá thực nghiệm . 98
3.6.1. Tạo dữ liệu thử nghiệm. 98
3.6.4. Đánh giá thử nghiệm phương pháp FDDA . 99
3.6.4.1. Kết quả xác định nguồn gửi yêu cầu tấn công theo tiêu chí tần suất . 99
3.6.4.2. Kết quả xây dựng tập yêu cầu tương quan. 100
3.6.4.3. Kết quả đánh giá thử nghiệm phương pháp FDDA . 100
3.6.5. So sánh hiệu quả của phương pháp FDDA với các phương pháp khác. 101
3.7. Kết luận chương 3 . 102
KẾT LUẬN VÀ ĐỀ XUẤT . 103
1. Kết luận . 103
2. Kiến nghị, đề xuất . 104
DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN . 105
TÀI LIỆU THAM KHẢO. 106
124 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 538 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận án Phát hiện và phòng chống một số dạng tấn công từ chối dịch vụ phân tán - Trần Mạnh Thắng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
phát hiện tấn công TCP Syn Flood, chức
năng này là một trong các chức năng chính của hệ thống DDoS-Defence.
Việc phát hiện sớm cuộc tấn công DDoS Syn Flood là rất quan trọng trong việc xử lý và
giảm thiểu ảnh hưởng của cuộc tấn công đối với hệ thống. Đối với các phương pháp sử dụng
threshold để phát hiện tấn công DDoS thường gây ra các cảnh báo sai hoặc không phát hiện
ra. Điểm hạn chế của phương pháp sử dụng threshold là tin tặc có thể thay đổi lưu lượng tấn
công về số lượng, tần suất để tránh khỏi sự phát hiện của hệ thống, do không có cơ chế thay
đổi giá trị threshold một cách tự động phù hợp để mô tả hoạt động thực tế của hệ thống mạng
được bảo vệ khi có sự thay đổi. Do đó, trong nghiên cứu này, chúng tôi đề xuất một phương
pháp cho phép theo dõi và tự động cập nhật giá trị threshold khi số lượng và tần suất truy
nhập trên hệ thống thay đổi.
Cơ chế của phương pháp đề xuất là định kỳ theo dõi tần số xuất hiện các gói tin TCP có cờ
(flag) được thiết lập là Reset. Lý do theo dõi các gói tin TCP có flag là Reset là vì theo
nguyên lý hoạt động của giao thức TCP, khi máy chủ nhận được gói tin SYN giả mạo thì
máy chủ sẽ gửi trả lại gói tin ACK tới địa chỉ IP của máy thực (máy bị giả mạo địa chỉ IP).
Khi máy thực nhận được gói tin ACK của máy chủ thì sẽ gửi gói tin TCP Reset tới máy chủ
để hủy kết nối. Đây là điểm khác biệt giữa kết nối mạng thông thường với kết nối mạng sử
dụng trong tấn công DDoS Syn Flood.
42
Attacker
User
User
Server
IP A
IP B
Hình 2.4 Cơ chế giả mạo IP của tin tặc
Để xác định giá trị threshold, phương pháp xác định tần số xuất hiện các gói tin TCP Reset
tại từng thời điểm (Ci), sau đó giá trị threshold (Thd) sẽ được xác định dựa vào giá trị trung
bình của tần số xuất hiện các gói tin TCP Reset sau n lần lấy mẫu (Mean - μ). Tiếp theo,
chúng tôi xác định độ lệch lớn nhất (Deviation - σ) giữa giá trị Mean với số lần xuất hiện
các gói tin TCP Reset lớn nhất trong N lần lấy mẫu. Gọi Ci là giá trị tần số xuất hiện các gói
tin TCP Reset tại thời điểm Ti và Ts là thời điểm lấy mẫu tiếp theo. Phương pháp xác định
Ci được mô tả như hình dưới đây:
Ti = Ts
New
packet
Match
TCP
Reset
No
Yes
Ci = Ci++
No
Get Ci
Reset
Counter
Hình 2.5 Phương pháp xác định tần số xuất hiện gói tin TCP Reset
Giá trị μ được xác định như sau:
1
1
(C .. )NC
N
Giá trị σ được xác định như sau:
43
2
1
1
( )
n
i
i
C
N
Giá trị Thd được xác định là Thd = ∝*σ. Trong đó, giá trị ∝ được thiết lập trước, tùy theo
từng hệ thống cụ thể.
2.5. Phát hiện và loại bỏ các gói tin giả mạo trong tấn công DDoS
TCP Syn Flood
Trong phần này, luận án sẽ trình bày chức năng phát hiện tấn công TCP Syn Flood, chức
năng này là một trong các chức năng chính của hệ thống DDoS-Defence.
Khi phát hiện tấn công DDoS xảy ra thì chức năng phát hiện và loại bỏ gói tin giả mạo sẽ
được kích hoạt để chặn các gói tin tấn công gửi đến hệ thống cần bảo vệ. Chức năng phát
hiện và loại bỏ các gói tin giả mạo dựa trên phát hiện ra đặc trưng của trường PID trong IP
Header tăng liên tục khi các gói tin được gửi ra từ cùng một máy tính.
Trong phần này, luận án sẽ trình bày hai giải pháp phát hiện và loại bỏ các gói tin giả mạo
trong tấn công DDoS dạng DDoS TCP Syn Flood là PIDAD1 và PIDAD2.
2.5.1. Đặc trưng của các gói tin IP được gửi đi từ cùng một máy nguồn
Một trong những đóng góp trọng tâm của luận án là đề xuất phương pháp phát hiện các gói
tin giả mạo trong tấn công TCP Syn Flood dựa vào đặc trưng của trường Packet Identifier
trong IP Header (sau đây gọi tắt là trường PID) [104]. Đây là đặc trưng riêng của các phương
pháp được chúng tôi đề xuất, so với những phương pháp khác đã được đề xuất trước đây.
Cụ thể như sau:
Như đã phân tích ở phần trên, các gói tin giả mạo sử dụng trong tấn công TCP Syn Flood là
rất khó để phát hiện nếu xét riêng từng gói tin. Tuy nhiên, các gói tin này có thể có những
mối liên hệ riêng giữa chúng mà có thể coi là dấu hiệu tìm vết, khi chúng được quan sát
trong một luồng các gói tin giả mạo phát đi từ một máy tính. Dựa trên dấu hiệu này, ta có
thể xây dựng các phương pháp để phát hiện và thực hiện lọc bỏ (nhiều nhất có thể được) các
gói tin giả mạo sử dụng trong tấn công TCP Syn Flood.
Qua quan sát thực tế và khảo sát các tập dữ liệu kiểm thử, chúng tôi thấy rằng khi một máy
tính gửi ra một gói tin, không phân biệt địa chỉ IP đích hay dịch vụ sử dụng thì giá trị PID
sẽ tăng lên một đơn vị. Điều này có nghĩa khi quan sát ở phía máy chủ thì ta sẽ nhận được
chuỗi các gói tin có giá trị PID tăng liên tiếp, nếu chúng gửi đi từ cùng một máy.
Dưới đây, luận án trình bày chi tiết hơn về trường thông tin PID và nguyên lý hoạt động của
giao thức IP để làm sở cứ cho phát hiện mới được đề cập ở trên như sau:
Trường thông tin PID là một trường thông tin 16 bit trong IP Header. Trường thông tin này
được sử dụng để xác định thứ tự các gói tin khi bị phân mảnh (fragment) khi gói tin đó được
truyền từ môi trường mạng có MTU cao sang môi trường mạng có MTU thấp hơn.
44
Hình 2.6 IP Header [104]
Tuy nhiên, qua quan sát thực tế thì khi hoạt động ở trạng thái bình thường, một máy tính gửi
ra một gói tin mà không phân biệt địa chỉ IP đích hay dịch vụ sử dụng thì giá trị PID sẽ tăng
lên một đơn vị.
Nguyên lý này cũng được áp dụng trong phương pháp Idle-scan [74] cho phép Client kiểm
tra một cổng mở trên máy chủ hay không khi Client không thể gửi trực tiếp gói tin đến máy
chủ mà phải thông qua một máy tính khác ở trạng thái Idle (trạng thái máy tính không gửi,
nhận gói tin).
Ngoài ra, để có thêm sở cứ cho tính tăng liên tiếp của giá trị PID, chúng tôi cũng khảo sát
trên các tập dữ liệu kiểm thử và dữ liệu thu thập được trên môi trường thực tế như ở dưới
đây.
2.5.2. Kiểm chứng giả thuyết về tính chất tăng dần của giá trị PID
Các giải pháp phát hiện và loại bỏ các gói tin giả mạo trong tấn công TCP Syn Flood mà
được đề xuất dựa trên giả định rằng các gói tin được gửi đi từ cùng một máy tính sẽ có giá
trị PID tăng dần (theo dòng thời gian, nếu quan sát các packet được phát đi ra khỏi máy này).
Tuy nhiên dòng PID đến từng máy đích thì có thể tăng ngắt quãng. Trong phần này, chúng
tôi sẽ đưa ra các kết quả khảo sát kiểm chứng và thực nghiệm để củng cố cho sự phổ biến
của giả định này.
Tôi sử dụng hai tập dữ liệu để kiểm chứng tính chất tăng dần của giá trị PID như sau:
Tập dữ liệu thứ nhất là tập dữ liệu kiểm thử DARPA Intrusion Detection Evaluation [12] do
viện MIT cung cấp. Tập dữ liệu này được sử dụng nhiều bởi các nghiên cứu để đánh giá hiệu
quả của các phương pháp phát hiện xâm nhập và tấn công DDoS.
Tập dữ liệu này bao gồm hai tập tin inside.tcpdump và outside.tcpdump được thu thập trên
hệ thống DARPA vào tuần thứ 05 ngày thứ 04. Trong đó, tập tin inside.tcpdump được thu
thập từ vùng mạng bên trong, bao gồm 3.404.824 gói tin từ 505 địa chỉ IP nguồn khác nhau.
Tập tin outside.tcpdump được thu thập từ vùng mạng bên ngoài, bao gồm 2.558.481 gói tin
từ 503 địa chỉ IP nguồn khác nhau.
45
Tập dữ liệu thứ hai là tập dữ liệu dhbkdata.pcap, chúng tôi thu thập tại hệ thống mạng của
Trường Đại học Bách Khoa Hà Nội. Tập dữ liệu này được thu thập tại cổng kết nối Internet
của hệ thống mạng trong khoảng thời gian 30s. Kết quả, chúng tôi thu thập được tập dữ liệu
với 386.643 gói tin từ 8.258 địa chỉ IP nguồn khác nhau.
Các tệp tin PCAP ở trên, chúng tôi tải lên hệ thống lưu trữ của Google tại địa chỉ [46].
2.5.2.1. Kiểm chứng giả thuyết PID dựa trên quan sát ngẫu nhiên
Để thực hiện kiểm chứng giả thuyết PID dựa trên quan sát ngẫu nhiên, chúng tôi lựa chọn
một cách ngẫu nhiên một số địa chỉ IP có trong các tập dữ liệu và xác minh xem giá trị PID
của các gói tin có cùng IP nguồn có tăng liên tục hay không. Kết quả như sau:
a) Kết quả từ tập dữ liệu thứ nhất của DARPA:
IP nguồn IP đích Dịch vụ
PID tăng dần từ giá
trị
Tập tin inside.tcpdump
172.16.114.50 172.16.112.10 NTP 41-46
172.16.114.50 172.16.112.100 TCP/HTTP 49-57
172.16.114.50 172.16.112.50 TCP/HTTP 61-76
172.16.112.20 172.16.255.255 RIPv1 1700-1701
172.16.112.20 192.168.1.10 DNS 1702-1716
172.16.112.149 197.218.177.69 TCP/SMTP 10340-10427
172.16.112.149 194.7.248.153 TCP/ SMTP 13163-13188
172.16.112.149 172.16.112.50 TCP/TELNET 16203-23619
Tập tin outside.tcpdump
172.16.114.169 197.182.91.233 SMTP 13445-13456
172.16.114.169 196.37.75.158 SMTP 15916-15939
172.16.114.169 207.25.71.141 HTTP 36935-27047
135.13.216.191 172.16.144.148 SMTP 627-635
195.115.218.108 172.16.112.100 ICMP/SMTP 410-426
196.227.33.189 172.16.112.100 ICMP/SMTP 3659-3697
Bảng 2.1 Kiểm chứng giá trị PID trên tập dữ liệu DARPA
46
b) Kết quả từ tập dữ liệu thứ hai thu được từ hệ thống mạng của trường ĐHBK:
IP nguồn IP đích Dịch vụ
PID tăng dần từ giá
trị
118.69.16.64 202.191.59.169 TCP 50844
1.54.241.82 202.191.59.169 TCP/TLSv1.2 39276
202.191.59.141 42.191.59.17 QUIC 12006
202.191.56.158 27.67.252.170 HTTP 57719
202.191.56.154 185.53.178.6 HTTP 62443
202.191.59.160 216.58.220.206 QUIC 16092
Bảng 2.2 Kiểm chứng giá trị PID trên tập dữ liệu ĐHBK
2.5.2.2 Kiểm chứng giả thuyết PID trên toàn bộ tập dữ liệu thu được
Để có thêm sở cứ, chúng tôi tiếp tục xác minh tỷ lệ các gói tin có giá trị PID tăng liên tiếp
có cùng địa chỉ IP nguồn từ 03 tập tin ở trên.
Để tìm ra tỷ lệ các gói tin có giá trị PID tăng liên tiếp có cùng địa chỉ IP nguồn, chúng tôi sử
dụng cách làm như phương pháp [35]. Cách làm này chỉ khác là, chúng tôi sẽ tìm các gói tin
có giá trị PID tăng liên tiếp từ cùng địa chỉ IP nguồn thay vì tìm các gói tin có giá trị PID
tăng liên tiếp nhưng có IP nguồn khác nhau như trong [35].
Tôi kiểm chứng tỷ lệ các gói tin có ít nhất 02 giá trị tăng liên tục (2-PID); Tỷ lệ các gói tin
có ít nhất 03 giá trị tăng liên tục (3-PID); Tỷ lệ các gói tin có ít nhất 04 giá trị tăng liên tục
(4-PID). Kết quả như sau:
Tập tin 2-PID 3-PID 4-PID
inside.tcpdump 89,6% 84,2% 78,2%
outside.tcpdump 88,6% 82,1% 77,3%
dhbkdata.pcap 90,6% 89,5% 87,5%
Bảng 2.3 Kiểm chứng tỷ lệ gói tin có giá trị PID tăng dần
Trên đây chỉ là những ví dụ chi tiết lấy ra từ các khảo sát thực tế của chúng tôi; chúng đều
giúp khẳng định mạnh mẽ tính phổ biến của giả định cơ sở quan trọng về tính tăng liên tục
của PID (quan sát từ máy phát ra).
2.5.3. Giải pháp phát hiện và loại bỏ các gói tin giả mạo PIDAD1
Trong phần này, luận án trình bày về một đề xuất mới, sử dụng giải pháp PIDAD1 trong
việc phát hiện và loại bỏ các gói tin giả mạo. Ý tưởng của giải pháp này là nhóm các gói tin
nhận được phía máy chủ có giá trị PID tăng liên tiếp, nhưng có giá trị IP nguồn khác nhau
vào thành từng nhóm (Cluster). Các gói tin trong mỗi Cluster được coi là gói tin giả mạo cần
loại bỏ. Tuy nhiên, vấn đề ở đây là thông thường, người dùng thường sử dụng nhiều ứng
47
dụng, dịch vụ khác nhau cùng một lúc. Do đó, ở phía Server, ta chỉ nhận được chuỗi các gói
tin tăng liên tục ngắt quãng. Đây là vấn đề mà giải pháp đề xuất cần phải giải quyết trong
việc nhóm các gói tin có giá trị PID tăng liên tiếp vào các Cluster. Để giải quyết vấn đề này,
giải pháp PIDAD1 sử dụng thuật toán DBSCAN để nhóm các gói tin vào các Cluster.
Trong phần này, luận án sẽ trình bày tổng quan về thuật toán DBSCAN là cơ sở để thực hiện
ý tưởng đề xuất. Phần tiếp theo, luận án sẽ trình bày về quá trình Training phase, được sử
dụng để thiết lập các tham số cho thuật toán DBSCAN. Phần cuối cùng, luận án sẽ trình bày
về quá trình Detection phase để phát hiện và loại bỏ các gói tin giả mạo khi tấn công xảy ra.
Giải pháp đề xuất này được công bố với nghiên cứu “Synflood Spoof Source DDoS Attack
Defence Based on Packet ID Anomaly Detection – PIDAD” tại Information Science and
Applications (ICISA) 2016 pp 739-751/Springer.
2.5.3.1. Thuật toán DBSCAN
Thuật toán DBSCAN [6] là thuật toán do Martin Ester và các tác giả khác đề xuất là thuật
toán gom các đối tượng dựa trên mật độ, hiệu quả với cơ sở dữ liệu lớn, có khả năng xử lý
nhiễu.
Ý tưởng chính của thuật toán là vùng lân cận (Eps) mỗi đối tượng trong một Cluster có số
đối tượng lớn hơn ngưỡng tối thiểu. Các đối tượng trong mỗi Cluster được phân làm 2 loại:
đối tượng bên trong Cluster (core point: đối tượng lõi) và đối tượng nằm trên đường biên
của Cluster (border point: đối tượng biên).
Hình 2.7 Thuật toán DBSCAN [6]
a) Một số định nghĩa
Vùng lân cận Eps của đối tượng p, ký hiệu NEps(p) là tập hợp các đối tượng q sao cho
khoảng cách giữa p và q dist(p,q) nhỏ hơn hoặc bằng Eps: NEps(p) = {qD | dist(p,q) Eps}
Đối tượng p tới được trực tiếp theo mật độ (directly density-reachable) thỏa Eps, MinPts từ
đối tượng q nếu pNEps(q) và |NEps(q)| MinPts. Nếu p, q đều là đối tượng lõi (core point)
quan hệ directly density-reachable là đối xứng, nghĩa là p tới được trực tiếp theo mật độ từ
q và ngược lại. Nếu trong p, q có một core point, một đối tượng biên như hình dưới thì chỉ
đối tượng biên tới được trực tiếp theo mật độ từ đối tượng lõi mà không có chiều ngược lại
(bất đối xứng).
48
Đối tượng p tới được theo mật độ (density-reachable) thỏa Eps, MinPts từ đối tượng q nếu
tồn tại một dãy p1, p2, ..., pn (p1 =q, pn= p) sao cho pi+1 tới được theo mật độ trực tiếp từ
pi.
Đối tượng p kết nối theo mật độ (density-connected) thỏa Eps, MinPts với đối tượng q tồn
tại đối tượng o sao cho cả p và q đều tới được theo mật độ từ o.
b) Thuật toán
Để tìm một Cluster, thuật toán DBSCAN bắt đầu từ một đối tượng bất kỳ và sau đó tìm tất
cả các đối tượng tới được theo mật độ thỏa Eps and MinPts từ đối tượng p. Nếu p là đối
tượng lõi, bước trên sinh ra một Cluster thỏa Eps and MinPts. Nếu p là đối tượng biên thì
không tìm được đối tượng tới được theo mật độ từ p, DBSCAN duyệt đối tượng tiếp theo
trong cơ sở dữ liệu. Vì sử dụng chung thông số Eps và MinPts cho tất cả các Cluster nên
DBSCAN có thể kết hợp hai Cluster thành một Cluster nếu hai Cluster gần nhau. Khoảng
cách giữa hai tập đối tượng S1 và S2, ký hiệu dist (S1, S2) là giá trị khoảng cách nhỏ nhất
của hai đối tượng p, q thuộc S1, S2: dist (S1, S2) = min{dist(p,q) | pS1, qS2}. Hai tập
đối tượng trong cùng một Cluster có thể tách nhau nếu khoảng cách giữa chúng lớn hơn.
2.5.3.2. Giải pháp PIDAD1
Giải pháp PIDAD1 được đề xuất dựa trên cơ sở sự tăng liên tục của giá trị PID trong IP
Header và sử dụng thuật toán DBSCAN để nhóm các gói tin có giá trị PID tăng liên tiếp vào
các Cluster. Giải pháp PIDAD1 cần thực hiện thông qua hai quá trình Training phase và
Detection phase. Trong đó, Training phase được thực hiện để thiết lập các tham số đầu vào
cho thuật toán DBSCAN và Detection phase để phát hiện và loại bỏ các gói tin giả mạo tiếp
theo gửi đến hệ thống.
Giải pháp PIDAD1 sử dụng các ký hiệu, thuật ngữ viết tắt dưới đây với ý nghĩa như sau:
- Npc: Số lượng các gói tin có địa chỉ IP nguồn khác nhau mà hệ thống nhận được sau khi
tấn công DDoS xảy ra. Các gói tin này được sử dụng trong Training phase để thiết lập các
tham số đầu vào cho thuật toán DBSCAN.
- EPID (Expected PID): Mỗi Cluster sẽ có một giá trị EPID tương ứng. Giá trị này là giá trị một
Cluster mong đợi nhận được gói tin tiếp theo gửi tới hệ thống có giá trị PID trùng với giá trị
EPID. Điều này có nghĩa đã có các gói tin trước đó gửi tới hệ thống có giá trị PID tăng liên
tiếp nằm trong Cluster đang kiểm tra và giá trị PID của gói tin tiếp theo gửi đến hệ thống là
thành viên mới của Cluster đó. Gói tin này được coi là gói tin giả mạo tiếp theo gửi đến hệ
thống.
- MC: Mảng dữ liệu có cấu trúc để có thể lưu thông tin về các Cluster được tạo ra trong quá
trình Training phase và Detection phase. Thông tin bao gồm: giá trị Cluster ID, EPID và thời
điểm Cluster kết nạp thành viên cuối cùng vào Cluster đó.
- TLC: Thời điểm đến cuối cùng của một thành viên khi được nhóm vào một Cluster tại thời
điểm Cluster đó đang được kiểm tra.
- SP: Chỉ trạng thái gói tin được kiểm tra có nằm trong một Cluster bất kỳ hay chưa.
49
- MpC: Mảng dữ liệu có cấu trúc để lưu thông tin của mỗi gói tin gửi đến hệ thống bao gồm
PID, Cluster ID và SP.
- TTC là thời điểm kiểm tra một gói tin có thuộc về bất kỳ Cluster nào hay không.
- TCC: Khoảng thời gian tối đa để một Cluster có thể nhận được các thành viên mới và đủ
điều kiện trở thành một Cluster. Một Cluster tối thiểu phải có 03 thành viên. Giải pháp xác
định giá trị này sẽ được trình bày ở phần đánh giá thực nghiệm (Mục 2.6.2)
- CT: Cluster tạm đang được kiểm tra xem có đủ điều kiện để trở thành một Cluster hay
không. Khi hệ thống nhận được một gói tin mà không thuộc về bất kỳ Cluster nào thì một
CT được tạo ra và giá trị PID của gói tin đó được thiết lập là core point của CT. Nếu trong
khoảng thời gian TCC mà CT không kết nạp được thành viên tiếp theo thì sẽ được xóa bỏ.
- MPC: Mảng dữ liệu có cấu trúc như MC được sử dụng để lưu thông tin của các CT.
- NPT: Số lượng gói tin có trong mỗi CT.
Giải pháp PIDAD1 được thực hiện như sau:
a) Quá trình thiết lập thông tin đầu vào cho PIDAD1
Quá trình thiết lập thông tin đầu vào được thực hiện tại thời điểm hệ thống DDoS-Defence
bắt đầu phát hiện tấn công DDoS. Khi đó, trong khoảng thời gian rất ngắn, giải pháp PIDAD1
thực hiện lấy mẫu các gói tin tấn công đầu tiên tới hệ thống để thiết lập các tham số của thuật
toán DBSCAN. Giải pháp PIDAD1 chỉ tập trung vào việc phát hiện và loại bỏ các gói tin
giả mạo gửi đến hệ thống. Việc phát hiện khi nào xảy ra tấn công DDoS dạng TCP Syn
Flood, luận án trình bày ở trên. Quá trình thiết lập thông tin đầu vào được thực hiện như sau:
Khi hệ thống phát hiện có tấn công DDoS xảy ra, giải pháp PIDAD1 sẽ thu thập Npc gói tin
đầu tiên có địa chỉ IP nguồn khác nhau gửi đến hệ thống. Sau khi có được Npc gói tin,
PIDAD1 sẽ áp dụng thuật toán DBSCAN để tìm ra những Cluster là nhóm các gói tin có
PID tăng liên tiếp. Thuật toán DBSCAN áp dụng tham số Eps = 1, để thỏa mãn điều kiện
các PID tăng liên tiếp một đơn vị, MinPts = 3 để thỏa mãn điều kiện có ít nhất 3 gói tin có
PID tăng liên tiếp thì sẽ tạo lên một Cluster. Do tính chất PID tăng liên tiếp của các gói tin
trong một Cluster, nên khi mỗi khi Cluster có thành viên mới (một gói tin mới thỏa mãn điều
kiện và thuộc về Cluster đó) thì vị trí của core point sẽ được cập nhật thành vị trí của thành
viên mới đó (border point) để cập nhật trạng thái của Cluster và giá trị EPID.
Quá trình thiết lập thông tin đầu vào chỉ được thực hiện thực hiện với Npc gói tin đầu tiên
gửi đến hệ thống. Gọi Pi là gói tin thứ i (0 < i < Npc) được kiểm tra điều kiện để đưa vào một
Cluster. Giải thuật và lưu đồ thuật toán trong traning phase như sau:
Algorithm: PIDAD1
for each 𝑃𝑖 in 𝑀𝐶 do
50
if (𝑆𝑝(𝑃𝑖) == 𝑛𝑜𝑡𝑐ℎ𝑒𝑐𝑘𝑒𝑑)
set 𝐶𝑜𝑟𝑒𝑃𝑜𝑖𝑛𝑡 = 𝑃𝑖
// Scan to get new member
for each 𝑃𝑘 (𝑗 < 𝑘 < 𝑁𝑃𝐶) do
// check BorderPoint P(k)
if (𝑇𝑇𝐶(𝑃𝑗) − 𝑇𝑇𝐶(𝑃𝑖) < 𝑇𝑃𝐶) and (𝑃𝐼𝐷(𝑃𝑗) == 𝑃𝐼𝐷(𝑃𝑖) + 1)
set 𝐶𝑜𝑟𝑒𝑃𝑜𝑖𝑛𝑡 = 𝑃𝑗
for each 𝑃𝑘 (𝑗 < 𝑘 < 𝑁𝑃𝐶) do
// check BorderPoint P(k)
if (𝑇𝑇𝐶(𝑃𝑘) − 𝑇𝑇𝐶(𝑃𝑗) < 𝑇𝑃𝐶) and (𝑃𝐼𝐷(𝑃𝑘) == 𝑃𝐼𝐷(𝑃𝑘) +
1)
create new Cluster 𝐶𝑇
add 𝐶𝑇 infor to 𝑀𝐶
set 𝐶𝑜𝑟𝑒𝑃𝑜𝑖𝑛𝑡 = 𝑃𝑗
set 𝐸𝑃𝐼𝐷 = 𝑃𝐼𝐷(𝑃𝑘) + 1
add 𝑃𝑖 infor to 𝑀𝑃𝐶
add 𝑃𝑗 infor to 𝑀𝑃𝐶
add 𝑃𝑘 infor to 𝑀𝑃𝐶
set 𝑆𝑝(𝑃𝑖) = 𝑐ℎ𝑒𝑐𝑘𝑒𝑑
set 𝑆𝑝(𝑃𝑗) = 𝑐ℎ𝑒𝑐𝑘𝑒𝑑
set 𝑆𝑝(𝑃𝑘) = 𝑐ℎ𝑒𝑐𝑘𝑒𝑑
end if
end for
end if
end for
end if
end for
End
Hình 2.8 Thuật toán PIDAD1 trong Training phase
b) Quá trình phát hiện và loại bỏ các gói tin giả mạo
Như đã phân tích ở trên, sau khi xảy ra tấn công DDoS, quá trình thiết lập thông tin đầu vào
được thực hiện trong khoảng thời gian rất ngắn. Sau khi hệ thống nhận được NPC gói tin có
địa chỉ IP nguồn khác nhau, giải pháp PIDAD1 sẽ thiết lập được các Cluster và EPID tương
ứng và chuyển sang quá trình phát hiện và loại bỏ các gói tin giả mạo này được thực hiện
như sau:
Mỗi gói tin gửi đến hệ thống có thể là gói tin giả mạo hoặc gói tin thực. Theo giải pháp
PIDAD1, gói tin giả mạo là gói tin có PID trùng với bất kỳ giá trị EPID nào trong MC. Gói
tin thực là gói tin không có giá trị PID trùng với bất kỳ giá trị EPID nào và không tạo ra một
Cluster mới với những gói tin tiếp theo sau đó trong khoảng thời gian TCC. Giá trị TCC phải
nhỏ hơn TCP timeout để cho phép PIDAD1 xác định được gói tin thực trước khi xảy ra quá
trình TCP retransmission ở phía Client.
51
Hình 2.9 Thuật toán của prương pháp PIDAD1
Trong quá trình phát hiện và loại bỏ các gói tin giả mạo, PIDAD1 còn phải cập nhật trạng
thái như: xóa và thêm mới các Cluster trong các trường hợp sau:
- Một Cluster được cập nhật thông tin EPID khi Cluster đó kết nạp thêm một thành viên mới.
- Một Cluster sẽ bị xóa đi nếu sau thời gian TCC, Cluster đó không có thành viên mới kết
nạp.
- Một Cluster sẽ tạo mới khi sau khoảng thời gian TCC các gói tin mới đến hệ thống đủ điều
kiện thiết lập một Cluster mới.
Mỗi gói tin gửi đến hệ thống đang ở trạng thái kiểm tra có đủ điều kiện thiết lập Cluster mới
hay không sẽ được gán là thành viên của CT, nếu Cluster mới được thiết lập từ các gói tin
này thì CT sẽ được cập nhật thành Cluster mới, hoặc CT sẽ bị xóa bỏ nếu các gói tin không
đủ điều kiện thiết lập Cluster mới.
Mảng MTC được sử dụng để lưu thông tin của các CT. Gọi Pi là gói tin thứ i đang được kiểm
tra, C(p) là Cluster có p là core point.
2.5.4. Giải pháp phát hiện và loại bỏ các gói tin giả mạo PIDAD2
Ở phần trên, luận án đã đề xuất phương án phát hiện và loại bỏ các gói tin giả mạo bằng giải
pháp PIDAD1 sử dụng thuật toán DBSCAN. Điểm hạn chế của giải pháp PIDAD1 là phải
thực hiện quá trình thiết lập thông tin đầu vào để tìm ra các cụm và giá trị EPID cho mỗi
Cluster sử dụng thuật toán DBSCAN và trong quá trình này thì các gói tin giả mạo chưa
được phát hiện và loại bỏ.
Trong phần này, luận án đề xuất một phương án mới cho phép tìm ra các gói tin giả mạo với
cơ chế thuật toán hoàn toàn khác, cho phép phát hiện và loại bỏ ngay những gói tin giả mạo
52
đầu tiên gửi đến hệ thống mà không phải thực hiện quá trình thiết lập thông tin đầu vào như
trước đây.
Giải pháp đề xuất này được công bố với nghiên cứu “Phát hiện lọc bỏ nhanh các gói tin giả
mạo trong tấn công mạng TCP Syn Flood” tại Tạp chí Các công trình Nghiên cứu và Phát
triển về Công nghệ Thông tin và Truyền thông, năm 2016.
2.5.4.1. Cơ chế thuật toán lọc bỏ nhanh gói tin giả mạo
Trong phần này, luận án sẽ trình bày chi tiết về đề xuất mới, cơ chế lọc bỏ gói tin tấn công
dựa trên việc phát hiện các chuỗi gói tin PID tăng liên tiếp, nhưng lại có địa chỉ nguồn ngẫu
nhiên, không trùng nhau.
Ở đây, giải pháp PIDAD2 sử dụng các bảng dữ liệu có cấu trúc để lưu trữ một số thông tin
cơ bản của các gói tin gửi đến, như địa chỉ IP và giá trị PID. Các bảng này được tổ chức sao
cho việc tìm kiếm hoặc đối chiếu có thể thực hiện rất nhanh (thời gian tìm kiếm có thể coi
như hằng số). Từ đó quan hệ đặc biệt giữa các gói tin, như chuỗi PID tăng dần, có thể phát
hiện được thông qua tìm kiếm, đối chiếu.
Trong phần trình bày này, luận án tập trung mô tả về logic hoạt động của cơ chế thuật toán,
chứ không đi sâu mô tả cách thức triển khai cài đặt cụ thể các bảng dữ liệu này.
a) Cơ chế giải pháp chung
Giải pháp PIDAD2 cho phép phát hiện và loại bỏ nhanh các gói tin giả mạo sử dụng trong
tấn công SYN Flood để bảo vệ máy chủ bị tấn công bằng cách thực hiện đồng thời hai việc:
- Phát hiện các địa chỉ IP nguồn tốt, đang có nhu cầu kết nối, hay đã khởi tạo kết nối.
- Phát hiện các gói tin giả mạo thông qua bộ lọc PID-Filter.
Để thực hiện ý đồ cơ bản này, chúng tôi sử dụng hai bảng dữ liệu lữu trữ địa chỉ IP nguồn
(có thể kèm thông tin bổ sung):
- Bảng I0 để lưu trữ các địa chỉ IP nguồn sạch và tích cực (đã kết nối, hoặc đang có nhu
cầu khởi tạo kết nối thực sự), được sử dụng để cho phép các máy Client đã xác định là
hợp lệ kết nối đến hệ thống.
- Bảng I1 để lưu trữ các thông tin địa chỉ IP nguồn, giá trị PID và thời gian đến của những
gói tin mà chưa xác định được là gói tin bình thường (tốt) hay gói tin giả mạo (tấn
công). Trong quá trình kiểm tra sau đó, khi một địa chỉ IP trong I1 được xác định là
sạch (âm tính), nó sẽ được chuyển sang I0.
Sơ đồ hoạt động cơ bản của giải pháp là như hình dưới đây:
53
Permit
I0 I1 PID-Filter
2
3
5
New
Packet
Found
Not Found1
Deny
Not Found
4
Negative
Positive
Hình 2.10 Sơ đồ giải pháp PIDAD2
Có thể có những IP giả mạo (tạo ngẫu nhiên) trùng khớp với một địa chỉ IP sạch trong I0,
nhưng xác suất trùng khớp này là nhỏ. Để giảm thiểu ảnh hưởng của vấn đề trùng khớp này,
mỗi IP trong bảng I0 sẽ có ngưỡng thời gian sống nhất định, nếu sau ngưỡng đó mà hệ thống
không nhận được
Các file đính kèm theo tài liệu này:
- luan_an_phat_hien_va_phong_chong_mot_so_dang_tan_cong_tu_cho.pdf