Kỹ thuật phát hiện nguồn gốc tấn công từ chối dịch vụ
Từ khi xuất hiện đến nay, loại hình tấn công từ chối dịch vụ (Denial of Service) luôn là
một vấn đề nan giải đối với cộng đồng Internet, và cho đến bây giờ, vẫn chưa có một biện pháp
kỹ thuật nào hoàn toàn khắc chế được kiểu tấn công này. Với đặc tính là sử dụng các gói tin nặc
danh từ nhiều nguồn khác nhau để tấn công tới một nạn nhân duy nhất, rất khó để tìm ra nơi
xuất phát của tấn công. Bài báo này sẽ đề cập đến một kỹ thuật giúp "dò ngược" từ nơi bị tấn
công đến nơi xuất phát tấn công, từ đó có thể xây dựng lại "đường đi" cũng như phát hiện ra nơi
khởi nguồn của một cuộc tấn công từ chối dịch vụ.
5 trang |
Chia sẻ: dntpro1256 | Lượt xem: 649 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Kỹ thuật phát hiện nguồn gốc tấn công từ chối dịch vụ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
T¹p chÝ Khoa häc & C«ng nghÖ - Sè 1(45) Tập 2/N¨m 2008
104
KỸ THUẬT PHÁT HIỆN NGUỒN GỐC TẤN CÔNG TỪ CHỐI DNCH VỤ
Ngô Hải Anh - Nguyễn Văn Tam (Viện Công nghệ thông tin – Viện KH&CN Việt Nam)
1. Tổng quan về tấn công từ chối dịch vụ
Cùng với sự phát triển nhanh chóng của Internet, tấn công từ chối dịch vụ (Denial of
Service -DoS) đã trở nên rất phổ biến. Mục đích của kiểu tấn công này là phá vỡ các dịch vụ mà
nạn nhân đang cung cấp. Trong quá trình tấn công đang diễn ra, nạn nhân không thể cung cấp
các dịch vụ của họ. Có 2 hình thức tấn công từ chối dịch vụ chính:
Tấn công DoS thông thường – Normal DoS: thường được sinh ra từ một máy trạm hoặc
một số lượng nhỏ các máy tính ở cùng địa điểm.
Tấn công DoS phân tán – Distributed DoS: thường sinh ra từ một số lượng rất lớn các
máy tính.
2. Các kiểu tấn công
Tấn công ứng dụng – Các tấn công loại này sẽ khai thác những lỗ hổng đã biết trong các
ứng dụng, gửi những yêu cầu bất thường đến để phá hoại ứng dụng.
Tấn công hệ điều hành – Tấn công kiểu này thường khai thác các kẽ hở trong cài đặt
chồng IP, gửi các gói tin IP bất thường để phá hoại hệ điều hành.
Tấn công lỗ hổng mạng - Khai thác những lỗ hổng trong thiết kế mạng để tấn công.
Tấn công thiết bị mạng –Thông thường tấn công kiểu này sẽ cố gắng làm kiệt sức nguồn lực
phần cứng trên các thiết bị mạng (router, firewall), chẳng hạn làm tràn bộ đệm của bộ nhớ hoặc CPU.
Tấn công làm quá tải (Flood hay Overload attacks) – là các tấn công bằng cách gửi số
lượng rất lớn các kiểu lưu lượng khác nhau đến nạn nhân (có thể thông qua các lỗ hổng đã nói ở
trên) làm cho họ quá tải khả năng xử lý.
3. Tìm ra nguồn gốc của tấn công
Việc truy tìm thủ phạm gây ra tấn công DoS thực sự khó khăn, lý do chính là các tấn
công đến từ rất nhiều địa chỉ IP nguồn khác nhau, các địa chỉ đó đều đã bị giả mạo. Vì vậy để
tìm ra nơi thực sự xuất phát tấn công, chúng ta cần một cơ chế có thể đi ngược lại từ vị trí nạn
nhân đến nơi xuất phát tấn công. Có một số phương pháp thực hiện yêu cầu này. Ví dụ có thể sử
dụng cách tìm qua các router hoặc các bước truyền (hop).
Ý tưởng thực hiện phương pháp này như sau: tìm tới nơi mà “cơn lũ” dữ liệu đang đi vào
router để từ đó tìm ra bước truyền ngay trước đó.
Cách thực hiện gồm các bước sau:
• Xuất phát tại giao diện mà ở đó luồng dữ liệu đi vào router
• Tìm ra router đã kết nối tại đầu bên kia của liên kết
• Lặp lại thao tác trên bất kỳ router nào dọc đường đi
• Router cuối cùng trong dây chuyền này là chính là luồng dữ liệu tấn công
T¹p chÝ Khoa häc & C«ng nghÖ - Sè 1(45) Tập 2/N¨m 2008
105
Rất nhiều router cung cấp các công cụ cho phép người quản trị mạng làm công việc trên.
Ví dụ các router của hãng Cisco hỗ trợ một tính năng mang tên NetFlow [1], đây là tính năng
cho phép thu thập thông tin theo thời gian thực về tất cả các luồng đi qua router.
Tuy nhiên, phương pháp trên có một số nhược điểm. Bởi vì cuộc tấn công nào cũng có
thể sẽ đi ngang một vài “hệ tự quản” (autonomous systems – AS), mỗi AS đều thuộc một nhà
cung cấp khác nhau, do đó để hoàn tất một quá trình dò vết, nạn nhân sẽ phải cần đến sự phối
hợp của một số các nhà cung cấp dịch vụ, quá trình này có thể sẽ rất phức tạp và mất thời gian.
Một hạn chế khác của việc dò vết là luồng tấn công phải hoạt động trong suốt quá trình theo dõi
ngược. Nếu như vì lý do gì đó mà tấn công “tạm dừng”, quá trình theo dõi sẽ không thể tiếp tục
được nữa. Phần tiếp theo của bài viết sẽ đề cập đến một phương pháp tối ưu hơn.
4. Phương pháp đánh dấu gói tin theo xác suất
Để lần ngược lại nơi bắt đầu tấn công, có thể lấy thông tin từ các router trên đường luồng
dữ liệu tấn công “đi qua”, khi đó sẽ cho phép tại đích đến (chính là nạn nhân) có thêm thông tin
để dựng lại đường đi của luồng tấn công, qua đó có thể thực sự tìm ra nguồn gốc của cuộc tấn
công. Savage, Wetherall, Karlin và Anderson đã phát minh ra một phương pháp gọi là “dò
ngược” (traceback) [2]. Phương pháp này đòi hỏi các router trên đường đi của một luồng dữ liệu
sẽ cho thêm thông tin vào các gói tin khi chúng đang trên đường chuyển tiếp hướng về nạn
nhân.
Một xác suất p được định nghĩa tại tất cả các router, mỗi gói tin sẽ được đánh dấu với
thông tin thêm bằng cách sử dụng giá trị của p. Đường đi của tấn công sẽ được xây dựng lại
bằng cách theo dõi ngược các gói tin IP đã được đánh dấu này. Để tăng thêm hiệu quả, cách
đánh dấu có thể không cố định mà được hiệu chỉnh theo xác suất (adjusted probabilistic). Như
vậy vấn đề đặt ra là việc đánh dấu sẽ diễn ra như thế nào, và phần nào trong khuôn dạng của một
gói tin IP sẽ được “đánh dấu”? Header của một gói tin IPv4 có khuôn dạng như sau:
Trường IP identification có độ dài 16 bits. Đối với mục đích dò ngược, chúng ta cần sử
dụng vừa vặn 16 bits này cho các giá trị “đánh dấu” và giá trị “khoảng cách”. Thực tế cho thấy
rằng hầu hết đường đi trên Internet đều không quá 30 bước truyền. Do đó năm bits (tương ứng
với khoảng cách 32 bước truyền) sẽ đủ để đáp ứng giá trị khoảng cách. Còn lại 11 bits (có thể
cung cấp 211 = 2048 giá trị có thể) sẽ được sử dụng cho việc đánh dấu.
Một hàm băm h(.) được sử dụng để ánh xạ giữa 32-bit địa chỉ IP của router với 11-bit giá
trị đánh dấu. Hàm này là một hàm thống kê ngẫu nhiên đáng tin cậy, có nghĩa là đối với bất kỳ
đầu vào của một địa chỉ IP, tất cả 211 = 2048 giá trị đánh dấu đều có thể dùng làm đầu ra.
T¹p chÝ Khoa häc & C«ng nghÖ - Sè 1(45) Tập 2/N¨m 2008
106
Có một nghiên cứu đã đề nghị một xác suất đánh dấu pd = 1/d [3] với d là khoảng cách
(số các bước truyền) của một router so với nguồn xuất phát của gói tin. Giả sử độ dài đường đi
của một tấn công có độ dài là k. Điều đó có thể cho phép nói rằng có k router tham gia vào lược
đồ đánh dấu giữa điểm xuất phát và đích đến.
Giá trị xác suất đánh dấu sẽ là:
pd =
cd +−1
1
(1)
ở đó d – 1 là giá trị trường khoảng cách của gói tin được nhận từ một router cách d bước truyền
so với nguồn của tấn công, c ≥ 1, c ∈ R. Chúng ta sẽ thấy rằng đối với một router nhận một gói
tin với trường khoảng cách có giá trị bằng không, chúng ta cần đảm bảo các giá trị xác suất luôn
nhỏ hơn hoặc bằng 1. Do đó c ≥ 1.
Gọi α d là xác suất mà nạn nhân nhận được một gói tin đã đánh dấu bởi một router cách
d bước truyền từ kẻ tấn công. Khi đó:
α d = pd . ∏
+=
k
di 1
(1 – pi) (2)
Kết hợp với (1), ta tính đuợc:
α d =
+− ck 1
1
(3)
Do đó chúng ta thấy rằng xác suất của việc nhận một gói tin đã được đánh dấu bởi bất kỳ
router nào dọc đường đi của tấn công sẽ phụ thuộc vào độ dài của đường đi chứ không phụ
thuộc vào vị trí của router.
4.1. Thuật toán đánh dấu gói tin
Một router dọc theo đường đi của một gói tin sẽ đọc giá trị khoảng cách trong trường IP
identification. Sau đó router sẽ tìm đến bảng chứa các giá trị khoảng cách và xác suất đánh dấu
tương ứng. Quyết định sẽ được thực hiện như sau: router sinh ra một số ngẫu nhiên, nếu số ngẫu
nhiên này nhỏ hơn hoặc bằng xác suất đánh dấu thì gói tin sẽ được đánh dấu, nếu không thì gói tin
sẽ không được đánh dấu. Nếu router quyết định đánh dấu một gói tin, nó sẽ ghi giá trị h(địa chỉ IP)
vào trường IP identification. Giá trị khoảng cách trong trường IP identification khi đó sẽ tăng thêm
và gói tin được định tuyến. Kể cả trường hợp router quyết định không đánh dấu gói tin, nó vẫn
luôn luôn tăng giá trị khoảng cách trong trường IP identification, và gói tin vẫn được định tuyến.
Thuật toán đánh dấu gói tin như sau:
_________________________________________________
m = h(địa chỉ IP)
for each gói tin
read d = giá trị của trường khoảng cách
sinh ra một số ngẫu nhiên x ∈ [0, 1)
p = xác suất đánh dấu tương ứng với d, lấy từ bảng
if x ≤ p (nếu xảy ra, gói tin được đánh dấu)
write m vào trường đánh dấu
giá trị trường khoảng cách = d + 1
____________________________________________________
T¹p chÝ Khoa häc & C«ng nghÖ - Sè 1(45) Tập 2/N¨m 2008
107
5. Xây dựng lại đường đi của tấn công
Để xây dựng lại đường đi của một gói tin và xác định nguồn gốc của tấn công, nạn nhân cần một
bản đồ các router. Nạn nhân sẽ so khớp các dấu của gói tin với các router trên bản đồ, qua đó có thể xây
dựng lại đường đi của tấn công. Bản đồ này có thể xem như một đồ thị có hướng G. Gốc của G là nạn
nhân, tất cả các đỉnh trong G là các router, mỗi router y trong G bao gồm tập hợp ρ y các con của nó.
y và ρ y trong đồ thị G
Trong suốt quá trình diễn ra tấn công DoS, nạn nhân sẽ nhận một lượng lớn các dấu từ
các router. Trước khi xây dựng lại đường đi dựa trên các dấu này, chúng ta cần phân nhóm các
dấu dựa trên độ dài đường đi của tấn công.
Giả sử có n kẻ tấn công (tấn công từ chối dịch vụ phân tán) ở những khoảng cách khác
nhau so với nạn nhân. Trong trường hợp này, nạn nhân sẽ có các tập hợp khác nhau các dấu,
mỗi tập chứa các dấu từ các kẻ tấn công có cùng khoảng cách đến nạn nhân. Đặt các giá trị
khoảng cách khác nhau của các gói tin trong các tập các dấu thuộc tập µ. Có nghĩa là nạn nhân
giờ đây có | µ | tập hợp khác nhau của các dấu, mỗi tập tương ứng cho các dấu của các gói tin
gửi bởi các kẻ tấn công mà ở cùng khoảng cách so với nạn nhân. Miền giá trị của trường khoảng
cách sẽ là 0 ≤ k ≤ 31. Gọi tập các dấu nhận bởi nạn nhân với giá trị khoảng cách k ∈ µ là λk. Ký
hiệu số kẻ tấn công tại khoảng cách k bước truyền là nk. Khi đó ta sẽ có:
λk = nk . k (4)
Bây giờ ta sẽ xem xét thuật toán xây dựng lại đường đi của tấn công. Đồ thị G được
duyệt qua bởi mỗi tập các gói tin có cùng giá trị trường khoảng cách (cho mỗi tập λk, ∀ k ∈ µ).
Bắt đầu tại điểm gốc của đường tấn công là nạn nhân. Các dấu của “láng giềng” con với nạn
nhân được kiểm tra với mỗi dấu trong tập. Các dấu của các router mà đã so khớp sẽ được thêm
vào đồ thị tấn công. Tiếp tục lặp lại như vậy, “con” của các router sẽ được kiểm tra với kiểu
cách tương tự. Quá trình này cứ lặp lại cho đến khi chiều sâu của đồ thị bằng với đường đi.
Đường đi của tấn công sẽ được chứa trong Sd, với 0 ≤ d ≤ k.
Thuật toán xây dựng lại đường đi được thực hiện như sau:
___________________________________________________
∀ k ∈ µ
S0 = nạn nhân
for d = 0 to (k – 1)
∀ y in Sd
∀ R ∈ ρ y
if R ∈ λk then
insert R Sd + 1
output Sd
output Sk
____________________________________________________
T¹p chÝ Khoa häc & C«ng nghÖ - Sè 1(45) Tập 2/N¨m 2008
108
6. Kết luận
Ở hoàn cảnh hiện nay thì việc xác định vị trí của các tấn công từ chối dịch vụ mới chỉ khả
thi về mặt lý thuyết chứ chưa được cài đặt trên các hệ thống thương mại. Khó khăn chính trong
việc cài đặt là số lượng lớn các nhà cung cấp sẽ phải hỗ trợ các chức năng này để triển khai các
dịch vụ. Một vấn đề khác nữa là toàn bộ quá trình xử lý thêm nói trên có thể sẽ là một khó khăn
với các router trung tâm trên Internet, chúng phải chuyển đi hàng ngàn gói tin mỗi giây. Các khối
lượng lưu lượng lớn đó sẽ cần một sự gia tăng phụ phí CPU để cài đặt được các tính năng trên.
Tuy nhiên việc tìm hiểu các phương thức xác định điểm xuất phát tấn công vẫn luôn cần thiết và
phải được hoàn thiện dần theo thời gian, song song với sự phát triển của các loại hình tấn công
Tóm tắt
Từ khi xuất hiện đến nay, loại hình tấn công từ chối dịch vụ (Denial of Service) luôn là
một vấn đề nan giải đối với cộng đồng Internet, và cho đến bây giờ, vẫn chưa có một biện pháp
kỹ thuật nào hoàn toàn khắc chế được kiểu tấn công này. Với đặc tính là sử dụng các gói tin nặc
danh từ nhiều nguồn khác nhau để tấn công tới một nạn nhân duy nhất, rất khó để tìm ra nơi
xuất phát của tấn công. Bài báo này sẽ đề cập đến một kỹ thuật giúp "dò ngược" từ nơi bị tấn
công đến nơi xuất phát tấn công, từ đó có thể xây dựng lại "đường đi" cũng như phát hiện ra nơi
khởi nguồn của một cuộc tấn công từ chối dịch vụ.
Summary
Techniques for detecting source of Denial-of-Service attack
Since the beginning of its formation, the Denial of Service attack has been a serious
problem to the community of Internet users. Until now, there have never been any solutions this
preventing this type of attack. Having the characteristic of using anonymous packets from
different sources to attack the only target victim, it is very difficult to find out where exactly the
attack comes from. This article mentions a technique which helps to traceback from where it is
attacked to where it starts to attack. As a result, it is possible to rebuild attack path as well as
discover the original start of an attack.
Tài liệu tham khảo
[1]. Cisco Systems, “White paper – NetFlow Services and Applications”.
[2]. Stefan Savage, David Wetherall, Anna Karlin and Tom Anderson, “Practical Network Support for IP
Traceback”.
[3]. Tao Peng, Christopher Leckie, and Kotagiri Ramamohanarao, “Adjusted Probabilistic Packet
Marking for IP Traceback”.
[4]. David Moore, Geoffrey M. Voelker and Stefan Savage, “Inferring Internet Dennial-of-Service Activity”.
[5]. Kyoungwon Suh and Thu D. Nguyen, “A Practical Defense Against SYN Denial-of-Service Attacks”.
[6]. Gary Pack, Jaeyoung Yoon, Eli Collins, Cristian Estan, “On Filtering of DDoS Attacks Based on
Source Address Prefixes”.
[7]. Ramkumar Chinchani, Suranjan Pramanik, Ashish Garg, “Handling Failures and DoS Attack Using
Network Device Groups”.
[8]. Cisco Systems, “White paper – Distributed denial of service threats: risks, mitigation, and best practices”.
[9]. David Moore, Geoffrey M. Voelker and Stefan Savage, "Inferring Internet Denial-of-Service Activity".
[10]. Alex C.Snoeren, Craig Partridge, Luis A. Sanchez, Christine E. Jones, Fabrice Tchakountio,
Beverly Schwartz, Stephen T. Kent, and W. Timothy Strayer, "Single-Packet IP Traceback".
Các file đính kèm theo tài liệu này:
- brief_825_9306_15_7332_2053235.pdf