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ụ.

pdf5 trang | Chia sẻ: dntpro1256 | Lượt xem: 545 | Lượt tải: 1download
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:

  • pdfbrief_825_9306_15_7332_2053235.pdf