Tổng quan về tấn công Web App-DDoS
Tấn công Web App-DDoS là một dạng tấn công vào lớp ứng dụng. Một trong những
hình thức tấn công Web App-DDoS phổ biến, được thực hiện thông qua việc tin tặc
sử dụng mạng botnet để gửi tràn ngập các yêu cầu HTTP tới máy chủ. Khác với dạng
tấn công TCP Syn Flood được đề cập trong chương 2, là dạng tấn công này không thể
giả mạo địa chỉ IP nguồn. Bởi vì, để máy tin tặc có thể gửi yêu cầu tới máy chủ thì
kết nối mạng phải được thiết lập (phải hoàn thiện quá trình bắt tay 3 bước của giao
thức TCP) sử dụng IP thực. Do đó, để thực hiện tấn công Web App-DDoS, tin tặc
phải sử dụng mạng botnet lớn có nhiều thành viên.
Dạng tấn công Web App-DDoS là dạng tấn công làm cạn kiệt tài nguyên trên máy
chủ mà không phải dạng tấn công DDoS làm cạn kiệt năng lực xử lý của hạ tầng
mạng. Để thực hiện tấn công, tin tặc gửi tràn ngập các yêu cầu tới Server. Các yêu
cầu này là yêu cầu có thực giống hoàn toàn với các yêu cầu bình thường được gửi đi17
từ máy người sử dụng bình thường. Lý do tin tặc sử dụng yêu cầu bình thường là để
vượt qua sự kiểm soát của các thiết bị bảo vệ.
Tài nguyên băng thông sử dụng trong tấn công Web App-DDoS không yêu cầu lớn
như đối với các hình thức tấn công DDoS vào hạ tầng mạng. Đối với các hình thức
tấn công DDoS vào hạ tầng mạng, tin tặc thường gửi số lượng lớn các gói tin UDP có
kích thước lớn để làm cạn kiệt băng thông kết nối mạng (hình thức tấn công DDoS
Volumetric). Đối với dạng tấn công Web App-DDoS, tin tặc có thể sử dụng cách thức
gửi các yêu cầu có kích thước nhỏ nhưng liên tục, đều đặn với tốc độ chậm, làm máy
chủ phải giữ và phục vụ mỗi yêu cầu gửi đến mà không được kết thúc phiên làm việc
đó khiến cho máy chủ cạn kiệt tài nguyên. Hình thức tấn công này không yêu cầu
băng thông lớn như hình thức tấn công DDoS Volumetric.
Tấn công Web App-DDoS có thể thực hiện bằng nhiều hình thức tinh vi khác nhau để
vượt qua các hệ thống phòng thủ như:
Session flooding attacks - dạng tấn công này, tin tặc gửi số lượng lớn phiên kết
nối tới Server;
Request flooding attacks - dạng tấn công này, tin tặc gửi số lượng lớn các yêu
cầu trong một phiên kết nối tới Server;
Asymmetric attacks - dạng tấn công này, tin tặc gửi phiên kết nối trong đó có
các yêu cầu làm máy chủ tiêu tốn nhiều tài nguyên để xử lý;
Slow request/response attacks - tương tự dạng tấn công Asymmetric attacks,
tin tặc gửi phiên kết nối trong đó có các yêu cầu làm máy chủ tiêu tốn nhiều tài
nguyên để xử lý.
Khi tin tặc sử dụng các yêu cầu có thực để thực hiện tấn công Web App-DDoS, từ
phía máy chủ rất khó để phân biệt yêu cầu nào là yêu cầu được gửi đi từ máy bình
thường. Đặc biệt, khi tấn công DDoS xảy ra, số lượng yêu cầu gửi đến máy chủ là rất
lớn, làm máy chủ càng khó khăn hơn trong việc phát hiện các yêu cầu gửi đi từ mạng
botnet.
Ứng dụng Web là ứng dụng có đặc trưng là dữ liệu cho mỗi ứng dụng Web thay đổi
thường xuyên. Tần suất truy nhập ứng dụng Web phụ thuộc vào nội dung mà ứng
dụng đó cung cấp. Khi có nội dung mới, được sự quan tâm của nhiều người sử dụng,
tần suất truy cập ứng dụng Web tăng đột biến, giống như bị tấn công. Đây cũng là
vấn đề cần giải quyết để có thể phân biệt trường hợp này với một cuộc tấn công thực
sự.
Những điểm yếu an toàn thông tin các hệ điều hành, ứng dụng và các thiết bị IoT
xuất hiện ngày càng nhiều, điều này dẫn tới việc lợi dụng các điểm yếu này để khai
thác chiếm quyền điều khiển và phát tán mã độc trở nên dễ dàng hơn cho tin tặc. Từ
đó, tin tặc có thể xây dựng mạng botnet lớn và có thể thực hiện nhiều hình thức tấn
công DDoS tinh vi khác nhau
24 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 435 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tóm tắt 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
a các phương pháp, tôi có cơ sở đề xuất các phương pháp phòng chống hai
dạng tấn công TCP Syn Flood và Web App-DDoS theo phương pháp triển khai ở
phía gần đích.
Để lựa chọn được tiêu chí đánh giá các phương pháp được đề xuất, tôi cũng nghiên
cứu, rà soát các tiêu chí mà các tác giả đã sử dụng để đánh giá phương pháp của họ.
Trên cơ sở tham khảo kinh nghiệm của các tác giả, tôi lựa chọn đưa ra 04 tiêu chí để
đánh giá giải pháp đề xuất của mình.
Để có cơ sở đánh giá thực nghiệm, tôi cũng khảo sát kinh nghiệm của các tác giả có
các công trình nghiên cứu liên quan để từ đó đề xuất mô hình và phương pháp đánh
giá hiệu quả của các phương pháp do tôi đề xuất.
CHƯƠNG II. PHÓNG CHỐNG TẤN CÔNG TCP SYN FLOOD
Trong chương 2, luận án đã đưa ra những nội dung nghiên cứu chính như sau:
2.1. Giới thiệu bài toán
2.1.1. Tổng quan về nội dung nghiên cứu trong chương 2
Trong chương này, tôi đi sâu vào giải quyết bài toán thứ nhất đặt ra là phát hiện và
phòng chống tấn công TCP Syn Flood. Dạng tấn công này là một trong những dạng
tấn công phổ biến và khó phòng chống nhất ở lớp mạng. Bởi vì, với dạng tấn công
này, tin tặc thường giả mạo ngẫu nhiên địa chỉ IP nguồn, trong khi các trường thông
tin khác của gói tin hoàn toàn như các gói tin bình thường làm máy chủ bị tấn công
không có cách nào phát hiện gói tin giả mạo nếu xử lý riêng rẽ từng gói tin.
Mục tiêu của các phương pháp đề xuất là làm tăng cường tối đa khả năng phòng
chống và chịu đựng tấn công TCP Syn Flood và giảm thiểu khả năng rơi vào trạng
thái từ chối dịch vụ của hệ thống cần bảo vệ. Do đó, vấn đề mà các phương pháp cần
phải giải quyết ngoài việc tìm ra các gói tin giả mạo thì còn phải có cơ chế xử lý loại
bỏ thật nhanh các gói tin giả mạo này.
Phương pháp mà tôi đề xuất xuất phát từ việc đi tìm các mối liên hệ giữa các gói tin
IP khi chúng được gửi đi từ cùng một máy tính.
Tuy nhiên việc khai thác tính chất tăng liên tiếp của trường PID để phát hiện dòng
thác SYN tấn công không hề đơn giản: ta sẽ không hề thấy có dãy PID tăng liên tục
này khi quan sát ở máy nạn nhân (máy bị tấn công).
Nguyên do là vì: mỗi máy tính tham gia tấn công thường là một máy tay sai (của một
botnet nào đó) đều phải tham gia nhiều hoạt động giao dịch mạng khác nhau, có thể
8
mở nhiều liên kết TCP đồng thời thông qua nhiều tiến trình song song, trong đó chỉ
có 1 là với máy chủ nạn nhân. Cơ chế phát sinh PID sẽ hoạt động dạng round robin
lần lượt sinh PID cho nhiều tiến trình song song này. . Do đó, từ phía máy chủ bị tấn
công, chúng ta thường chỉ thu được các gói tin có giá trị PID tăng liên tục trên một
đoạn ngắn và ngắt quãng (tức là thành các chùm PID liên tục độ dài 2,3 hay 4 ).
Mặc dù vậy chúng tôi vẫn coi đây là dấu hiệu đủ tốt để phát hiện tấn công.
Tất nhiên giải pháp phát hiện và phòng chống TCP SYN Flood chúng tôi đề xuất cần
dựa trên một giả định quan trong: các máy tay sai tham gia tấn công, toàn bộ hoặc
phần lớn, đều có hệ điều hành “sạch”, giữ vững cơ chế sinh PID tăng liên tiếp nói
trên. Cần nói rõ là hầu hết các phương pháp chống tấn công TCP SYN Flood đều
phải dựa trên một giả định nào đó và giả định cơ sở của chúng tôi cũng như các giả
định đã được sử dụng kia đều có những cơ sở thực tế vững chắc, tức là mặc dù có thể
bị vi phạm nhưng qui mô vi phạm sẽ tương đối nhỏ (hoặc để thực hiện qui mô lớn là
điều khó không tưởng). Chúng tôi sẽ phân tích kỹ hơn ở phần sau.
Dựa trên ý tưởng này, hai giải pháp đã được nhóm nghiên cứu đề xuất cho 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 [108,110].
Trong giải pháp PIDAD1 [108], tôi sử dụng thuật toán DBSCAN để nhóm các gói
tin giả mạo vào từng Cluster. Mỗi Cluster sẽ giúp xác định được một giá trị PID của
gói tin giả mạo tiếp theo gửi đến. Giải pháp này có điểm hạn chế là cần khoảng thời
gian chuẩn bị nhất định khi tấn công bắt đầu xảy ra để thu thập các gói tin giả mạo
đầu tiên, được sử dụng làm dữ liệu đầu vào cho thuật toán DBSCAN. Do đó, trong
khoảng thời gian này máy chủ vẫn phải hứng chịu các gói tin tấn công giả mạo. Thêm
nữa thuật toán DBSCAN có độ phức tạp nhất định và chưa thực sự đem lại hiệu năng
phù hợp cho việc phát nhanh các gói tin giả mạo.
Ở nghiên cứu tiếp theo [110] tôi đề xuất giải pháp PIDAD2 để giải quyết những hạn
chế của giải pháp PIDAD1. Giải pháp này cho phép phát hiện nhanh các gói tin giả
mạo đầu tiên gửi đến, thông qua cơ chế lưu trữ dữ liệu có cấu trúc và sử dụng thuật
toán tìm kiếm nhanh.
Để tiếp tục tăng tốc độ xử lý của PIDAD2, tôi đề xuất phương án lưu trữ và tìm kiếm
nhanh thông tin PID, IP nguồn sử dụng thuật toán Bloom Filter [117]. Nghiên cứu
này đã được chấp nhận đăng tại Hội nghị ACDT 2018 [116].
Mô hình, phương pháp phát hiện tấn công TCP Syn Flood và cơ chế xác thực địa chỉ
IP nguồn được tôi đề xuất trong nghiên cứu [109]. Trong đề xuất này, tôi đưa ra
phương pháp pháp hiện khi nào tấn công xảy ra và cơ chế xác thực các IP sạch để cho
phép kết nối nhanh vào hệ thống khi tấn công xảy ra.
Để có cơ sở đánh giá hiệu quả phương pháp đề xuất và so sánh với các phương pháp
khác, tôi cũng đã xây dựng một hệ môi trường thực nghiệm và tạo ra dữ liệu kiểm thử
tương tự như các tác giả khác đã thực hiện đối với các đề xuất của họ.
2.1.2. Phạm vi của bài toán
Phương pháp chung của các giải pháp phòng chống tấn công TCP Syn Flood tôi đề
xuất dựa trên giả định rằng: Mặc dù tin tặc thực hiện tấn công TCP Syn Flood có khả
năng cao là sinh giả mạo địa chỉ IP nguồn và (có thể các trường thông tin khác) để
che giấu nguồn gốc, nhưng trường PID của gói tin IP là giá trị được phát sinh tự
động tăng liên tục mặc định theo nguyên lý chung của các hệ điều hành. Nói cách
khác phương pháp đề xuất dựa trên giả định là hầu hết các máy tấn công là máy tay
9
sai (cũng là một dạng nạn nhân “ngây thơ” bị khai thác) và vẫn có các tầng thấp của
hệ điều hành là sạch (có thể có bị lây nhiễm mã độc nhưng chỉ ở các tầng cao hơn)
Tất nhiên thay đổi giả mạo trường thông tin PID có thể thực hiện được, nếu tin tặc có
thể chiếm được quyền cao nhất của máy tính nạn nhân (và do đó can thiệp sâu các
tầng bên dưới của hệ điều hành). Tuy nhiên, để có thể xây dựng một đội quân tay sai
cỡ lớn đều có thể can thiệp giả mạo PID thì tin tặc phải có khả năng chiếm quyền
điều khiển của cả đội quân đông đảo máy tính tay sai này. Việc này là rất khó thực
hiện khi các hãng cung cấp sản phẩm luôn cập nhật bản vá lỗ hổng và phần mềm
phòng chống mã độc ngày càng tinh vi, hiệu quả hơn.
Cũng cần nói thêm, việc giả mạo địa chỉ IP nguồn thì dễ dàng thực hiện hơn nhiều,
bởi vì bản thân giao thức IP cũng cho phép thay đổi IP nguồn hoặc đích khi gói tin đi
từ nguồn đến đích. Trường hợp điển hình là các gói tin đi từ mạng Private ra ngoài
Internet thì phải chuyển đổi địa chỉ IP nguồn thành địa chỉ Public thông qua giao thức
NAT. Việc thay đổi IP nguồn cũng dễ dàng thực hiện bởi các ngôn ngữ lập trình như
C, C++, C# hay Java đều cung cấp các API để cho phép người lập trình đưa giá trị IP
nguồn vào.
Tóm lại giả định cơ sở của phương pháp chúng tôi đề xuất chính là cho rằng hầu hết
đội quân máy tay sai trong tấn công botnet mới chỉ tin tặc lợi dụng do sơ suất chứ
chưa thực sự bị lũng đoạn điều khiển hoàn toàn. Đây có thể coi là một hạn chế của
phương pháp đề xuất nhưng cũng có thể coi là một thực tế phổ biến đang diễn ra .
Bên cạnh đó, một số nghiên cứu khác trong phòng chống tấn công TCP Syn Flood
như phương pháp Path Identifier [36], IP Traceback [30] hay Hop-count filtering [35]
đều cần phải dựa trên những giả thuyết hay giải định nhất định.
Các phương pháp [30, 36] dựa trên giả định là đường đi từ nguồn đến đích của một
gói tin IP là duy nhất. Tuy nhiên, trên thực tế thì luôn tồn tại nhiều đường đi từ nguồn
đến đích khác nhau khi gói tin đi qua mạng Internet. Đường đi từ nguồn đến đích của
gói tin là do các Router trên Internet quyết định dựa vào thước đo metric. Metric các
Router sử dụng là số hiệu mạng AS qua giao thức định tuyến BGP. Nếu số lượng số
hiệu mạng bằng nhau thì gói tin sẽ đồng thời sử dụng hai đường đi để cân bằng tải.
Tuy nhiên, số Router trong mỗi AS là khác nhau dẫn tới số hop-count sẽ khác nhau.
Điều này làm ảnh hưởng lớn đến hiệu quả của hai phương pháp trên, nếu không đưa
ra giả thuyết đường đi duy nhất.
Một ví dụ khác nữa, trong phương pháp [35] việc phát hiện gói tin giả mạo là dựa vào
giả định là thông tin hop-count có thể tính được nhờ giá trị trường TTL sẽ giảm đi
một đơn vị khi qua mỗi Router dọc đường. Tuy nhiên, nếu tin tặc có thể giả mạo
trường TTL và học trước khoảng cách từ nguồn tấn công đến máy nạn nhân để giả
mạo trường TTL cho phù hợp thì phương pháp này cũng không xử lý chính xác được
nữa.
2.2. Tổng quan về dạng tấn công TCP Syn Flood
Dạng tấn công TCP Syn Flood là dạng tấn công DDoS mà tin tặc gửi tràn ngập gói
tin SYN đến đích bị tấn công [91]. Dạng tấn công này được cho là một trong những
dạng tấn công khó phòng chống nhất vì địa chỉ IP nguồn của gói tin tấn công được
giả mạo ngẫu nhiên, trong khi các trường thông tin khác hoàn toàn như gói tin bình
thường. Do đó, máy chủ nạn nhân khó có thể phân biệt được gói tin nào là gói tin giả
mạo khi quan sát riêng rẽ từng gói tin.
10
Tin tặc thực hiện tấn công TCP Syn Flood thông qua việc khai thác điểm yếu của
giao thức giao vận TCP trong quá trình bắt tay ba bước (3-way handshake sub-
protocol).
Các gói tin giả mạo được tạo ra với các trường thông tin giống như của gói tin thông
thường, nhưng với địa chỉ IP nguồn giả mạo (sinh ngẫu nhiên). Nếu không có cơ chế
theo dõi đặc biệt, máy chủ không thể phân biệt được gói tin nào là gói tin thực hay
giả mạo
2.3. Mô hình phương pháp phát hiện và phòng chống tấn công TCP Syn Flood
2.3.1. Mô hình tổng thể và các thành phần cơ bản
Hệ thống phát hiện và phòng chống tấn công TCP Syn Flood, tôi thiết kế thành phần
TCP Syn Flood Defence bao gồm 04 chức năng chính:
Chức năng xây dựng danh sách các địa chỉ IP sạch IP white-list;
Chức năng phát hiện tấn công TCP Syn Flood;
Chức năng phát hiện và loại bỏ gói tin giả mạo;
Chức năng xác thực địa chỉ IP nguồn
TCP Syn Flood
Defence Module
Web App-DDoS
Defence Module
Black-List White-List
DDoS-Defence System
`
`
Attacker
Server
Internet
Tab
Sniffer IF
Black list
White list
User
DDosDefence
Auth-IF
2.3.2. Nguyên lý hoạt động cơ bản
Khi hệ thống hoạt động ở trạng thái bình thường (không bị tấn công), hệ thống
DDoS-Defence sẽ theo dõi thụ động kết nối mạng để xây dựng danh sách các địa chỉ
IP nguồn thường xuyên kết nối vào hệ thống (IP white-list). Danh sách IP white-list
được xây dựng dựa vào các tiêu chí khác nhau để đảm bảo không để tin tặc không thể
đưa các địa chỉ IP độc hại vào danh sách này (chi tiết được trình bày trong mục
3.5.5). Khi có tấn công xảy ra, danh sách IP white-list sẽ được gửi đến các thiết bị
mạng để cho phép IP trong danh sách này được ưu tiên kết nối vào hệ thống cần bảo
vệ. Các IP không nằm trong IP white-list sẽ phải xác minh tính hợp lệ, trước khi cho
kết nối vào hệ thống thông qua cơ chế xác minh địa chỉ IP nguồn. Khi đó, hệ thống
DDoS-Defence sẽ đại diện máy chủ đang bị tấn công, gửi gói tin SYN, ACK về IP
nguồn để xác minh. Nếu hệ thống DDoS-Defence nhận được gói tin ACK từ IP
nguồn đó thì IP đó sẽ được đưa vào danh sách IP white-list (chi tiết tại mục 2.5.4).
11
Khi phát hiện tấn công DDoS xảy ra (tần suất gửi các gói tin TCP Reset vượt quá
ngưỡng) 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ệ.
2.4. Phát hiện tấn công TCP Syn Flood
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, 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.
Attacker
User
User
Server
IP A
IP B
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
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
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.
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ó thêm sở cứ, 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 tôi có được ở 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, tôi sử dụng cách làm như phương
pháp [110] tôi đề xuất. Cách làm này chỉ khác là tôi sẽ tìm các gói tin có giá trị PID
12
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 [110].
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%
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:
2.5.3. Phương pháp phát hiện và loại bỏ các gói tin giả mạo 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
phương 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. Phương 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, phương 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.
2.5.4. Phương pháp phát hiện và loại bỏ các gói tin giả mạo PIDAD2
Phương 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:
13
- 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, 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 phương pháp là như hình dưới đây:
Permit
I0 I1 PID-Filter
2
3
5
New
Packet
Found
Not Found1
Deny
Not Found
4
Negative
Positive
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 kết nối thực từ IP đó thì IP này sẽ bị xóa
khỏi bảng I0.
Một gói tin được xác định là hợp lệ trong các trường hợp sau (và do đó sẽ được
chuyển từ I1 sang I0):
- Trường hợp có gói tin có cùng địa chỉ IP nguồn đã gửi đến hệ thống trước đó.
Trường hợp này xảy ra khi một Client đã yêu cầu kết nối tới máy chủ nhưng
không được hồi đáp nên gửi lại yêu cầu kết nối, (cơ chế tcp retransmission [21]).
Hệ thống có thể phát hiện sai gói tin giả mạo là gói tin hợp lệ trong trường hợp địa
chỉ giả mạo của gói tin ngẫu nhiên trùng với một địa chỉ nào đó của gói tin đã gửi
đến hệ thống trước đó. Tuy nhiên xác xuất trùng khớp này chỉ là 1/232 cho mỗi
nguồn gửi gói tin giả mạo.
- Trường hợp nếu sau khoảng thời gian T (tham số hệ thống chọn trước) một cặp
(IP, PID) trong I1 được xác định là âm tính qua xét nghiệm PID-Filter.
Mỗi gói tin mới gửi đến hệ thống được xử lý theo các bước sau đây:
Bước 1: Kiểm tra địa chỉ IP nguồn của gói tin có trong bảng I0 hay không. Nếu có thì
cho gói tin vào hệ thống (chuyển tiếp vào Server). Nếu không sang bước 2.
Bước 2: Kiểm tra IP nguồn có trong bảng I1 hay không. Nếu có thì đưa thông tin IP
này vào bảng I0 (cơ chế tcp retransmission) và cho phép gói tin đi vào hệ thống. Nếu
không sang các bước sau.
14
Bước 3: Lưu thông tin (địa chỉ IP, giá trị PID, thời gian đến) của gói tin hiện thời vào
bảng I1. Triệu gọi PID-Filter với giá trị PID này.
Bước 4: Trong quá trình thực hiện PID-Filter, nếu có các giá trị PID bị phát hiện
dương tính thì các thông tin của các gói tin tương ứng sẽ bị loại bỏ khỏi bảng I1 (song
song với việc các gói tin đó bị lọc bỏ, không vào tới máy chủ bên trong).
Bước 5: Nếu PID-Filter báo âm tính, các thông tin tương ứng với giá trị PID này sẽ
chuyển khỏi bảng I1 và đưa vào bảng I0.
2.5.5. Phương pháp xác thực địa chỉ IP nguồn
2.6. Đánh giá thực nghiệm
Router
Core 1
ISP02
ISP01
ISP03
ISP04
Router
Core 2
Router
Core 3
Router
Core 4
ISP01
ISP01
ISP01
ISP01
ISP01
ISP01
ISP01
ISP01
Core
Internet
Web Server
C&C Server
Để đánh giá thực nghiệm, tôi đã xây dựng một mạng botnet trên môi trưởng ảo trên
03 máy chủ vật lý có cấu hình cao. Hệ thống thực nghiệm có quy mô bao gồm 13
Router Cisco và 45 máy tính Client, được cài đặt hệ điều hành WinXP và Centos.
Các máy tính này được cho lây nhiễm mã độc và chịu sự điều khiển của một máy chủ
C&C máy chủ để thực hiện tấn công TCP Syn Flood vào Web Server. Các Router
được thiết lập trên môi trường ảo sử dụng phần mềm GNS3 [81] với dòng Router
Cisco 7200, sử dụng IOS là c7200-adventerprisek9-mz.124-24.T.bin.
Về cơ chế hoạt động của mạng botnet như sau: Các máy Client bị nhiễm mã độc sẽ
định kỳ 03s, truy cập thông tin điều khiển từ C&C máy chủ thông qua giao thức http
tại địa chỉ: Cấu trúc của lệnh điều khiển như
sau:
Dạng tấn công Địa chỉ tấn công Cổng dịch vụ Trạng thái điều
khiển
synflood 103.192.237.100 80 Enable/disable
Với cấu trúc lệnh trên, Các máy Client sẽ thực hiện tấn công dạng TCP Syn Flood
với địa chỉ IP nguồn giả mạo ngẫu nhiên và địa chỉ máy 103.192.237.100 với cổng
dịch vụ là 80.
Để có dữ liệu kiểm thử, tôi thực hiện tấn công giả lập vào máy chủ trong khoảng thời
gian 03 phút. Tại Web Server, tôi thực hiện lấy mẫu các gói tin SYN gửi đến máy chủ
sử dụng công cụ Tcpdump với câu lệnh: tcpdump -i ens32 tcp port 80 and
15
"tcp[tcpflags] & (tcp-syn|tcp-ack)! = 0" -n -p and ip dst 103.192.237.100 -w
synflood-attack.pcap.
Kết quả tại Web Server, tôi thu được 145.377 gói tin Syn và được lưu trong tệp tin
synflood-attack.pcap [115]. Để có cơ sở đánh giá thực nghiệm, các gói tin SYN được
phân làm hai nhóm, nhóm các gói tin tấn công và nhóm các gói tin bình thường.
Nhóm các gói tin bình thường là nhóm các gói tin có địa chỉ IP nguồn là các địa chỉ
IP của các máy Client, nằm trong dải địa chỉ 103.192.237.0/24. Các gói tin này được
sinh ra khi các máy Client truy cập trang Web trên Web Server. Nhóm các gói tin tấn
công là các gói tin có địa chỉ IP không nằm trong dải địa chỉ ở trên và có giá trị ngẫu
nhiên.
2.6.2. Đánh giá thực nghiệm cho phương pháp PIDAD1 và PIDAD2
2.6.3. So sánh hiệu quả của phương pháp PIDAD2 với phương pháp khác
CHƯƠNG III. PHÒNG CHỐNG TẤN CÔNG LỚP ỨNG DỤNG WEB
Trong chương này, tôi đã tập trung nghiên cứu và đưa ra phương pháp phòng chống
tấn công Web App-DDoS, bao gồm các nội dung chính như sau:
3.1. Giới thiệu bài toán
Ứng dụng Web là ứng dụng phổ biến để cung cấp các dịch vụ trên mạng của nhiều
loại hình ngành nghề và lĩnh vực khác nhau như: Kinh tế, Chính trị, Tài chính,
Thương mại điện tử, Giao thông vận tải... Phần lớn các ứng dụng Web cung cấp dịch
vụ qua môi trường mạng Internet sử dụng giao thức HTTP/HTTPS. Do đó, ngoài
phải đối mặt với các dạng tấn công mạng khác (SQL Injection, XSS) thì ứng dụng
Web còn phải đối với dạng tấn công DDoS.
Để thực hiện tấn công DDoS vào ứng dụng Web (Web App-DDoS), như đối với hình
thức tấn công TCP Syn Flood, tin tặc lợi dụng mạng botnet để gửi tràn ngập các yêu
cầu tới máy chủ làm máy chủ quá tải và rơi vào trạng thái từ chối dịch vụ. Tin tặc
thường cố tình tạo ra các yêu cầu có thực, giống như các yêu cầu được gửi đi từ máy
tính bình thường để vượt qua các thiết bị bảo mật như Firewall và IDS/IPS.
0
50
100
24
22
9
48
45
9
72
68
8
96
91
8
12
11
47
14
53
77
DR(%)
Số lượng gói tin nhận được
PIDAD1
PIDAD2
0
50
100
150
200
24
22
9
48
45
9
72
68
8
96
91
8
12
11
47
14
53
77
Time(s)
Số lượng gói tin nhận được
PIDAD1
PIDAD2
0
50
100
24
22
9
48
45
9
72
68
8
96
91
8
12
11
47
14
53
77
DR(%)
Số lượng gói tin nhận được
C4.5
PIDAD2
0
0.5
1
24
22
9
48
45
9
72
68
8
96
91
8
12
11
47
14
53
77
FP(%)
Số lượng gói tin nhận được
C4.5
PIDAD2
16
Để giải quyết bài toán thứ hai, tôi đề xuất phương pháp phát hiện nhanh các nguồn
gửi yêu cầu tấn công Web App-DDoS ngay khi tấn công xảy ra trong nghiên cứu
[111]. Đề xuất này cũng đưa ra một mô hình mở cho phép kết hợp, bổ sung nhiều tiêu
chí khác nhau để phát hiện và xác định nguồn gửi yêu cầu tấn công. Trong đó, có tiêu
chí cho phép phát hiện ngay ra các nguồn gửi yêu cầu tấn công mà không phải trải
qua quá trình máy học/huấn luyện như các phương pháp khác. Kết quả nghiên cứu đã
được tôi công bố tại Hội nghị SoICT năm 2017.
Sau khi luận án được Hội đồng đánh giá cấp cơ sở thông qua, tôi tiếp tục nghiên cứu,
đề xuất phương pháp, thuật toán cụ thể hơn cho 02 tiêu chí tôi đã sử dụng trong
nghiên cứu [111]. Cụ thể: Đối với tiêu chí về tần suất truy nhập, tôi đề xuất giải pháp
cho phép tìm ra tần suất truy cập từ các IP nguồn gửi yêu cầu theo thời gian thực.
Giải pháp đề xuất cần rất ít tài nguyên để lưu trữ và xử lý. Tần suất xác định được sẽ
là dữ liệu đầu vào cho thuật toán của tiêu chí về tần suất. Bên cạnh đó, trong nghiên
cứu này tôi cũng đề xuất một giải pháp mới để xác định các nguồn gửi yêu cầu tấn
công thay cho giải pháp sử dụng DBSCAN trong nghiên cứu [111]. Tôi trình bày cụ
thể tiêu chí này tại mục 3.5.4.1. Kết quả nghiên cứu được tôi gửi đăng tại Hội nghị
IEEE RIVF 2019.
Đối với tiêu chí về mối quan hệ tương quan giữa các yêu cầu gửi đến máy chủ từ một
nguồn, tôi đưa ra giải pháp để thiết lập tập các yêu cầu tương quan trong quá trình
huấn luyện (training). Tập các yêu cầu tương quan được thiết lập dựa trên các điều
kiện để bảo đảm rằng tập c
Các file đính kèm theo tài liệu này:
- tom_tat_luan_an_phat_hien_va_phong_chong_mot_so_dang_tan_con.pdf