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

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

pdf124 trang | Chia sẻ: trungkhoi17 | Lượt xem: 387 | Lượt tải: 1download
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) = {qD | 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 pNEps(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) | pS1, qS2}. 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:

  • pdfluan_an_phat_hien_va_phong_chong_mot_so_dang_tan_cong_tu_cho.pdf
Tài liệu liên quan