CHƯƠNG 2 PHÁT HIỆN VÀ PHÒNG CHỐNG TẤN CÔNG TCP SYNFLOOD
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, chúng tơi đi sâu vào giải quyết bài tố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 hồn tồ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 ngồ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à chúng 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. Sau nhiều khảo sát, chúng tơi để ý thấy một tính chất có vẻ như tầm thường (thầm chí hiển nhiên) nhưng nếu biết cách khai thác thì có thể đem lại hiệu quả hữu ích: các gói tin được gửi đi từ một máy tính theo cơ chế phổ biến sẽ được hê điều hành tự động cấp phát một giá trị ID tăng dần (tăng liên tiếp cách nhau một đơn vị); đó chính là trường dữ liệu Packet ID (PID) trong mỗi IP packet. Chúng tôi đã kiểm nghiệm và đúng như dự đoán trên các hệ điều hành quen thuộc như Windows, Linux, Unix, … cơ chế tăng liên tiếp này đều áp dụng (có lẽ việc phát sinh ID tăng theo dãy tự nhiên liên tiếp là một thông lệ ngầm lĩnh ở hầu hết các hệ thống tin học).
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).
Ngun 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ể 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 được đề 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, tồ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 [1,3].
Trong giải pháp PIDAD1 [39], chúng tơi sử dụng thuật tố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 tố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 tố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 hiện và xử lý nhanh các gói tin giả mạo.
Ở nghiên cứu tiếp theo [35], chúng 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 tốn tìm kiếm nhanh.
Để tiếp tục tăng tốc độ xử lý của PIDAD2, chúng tơi đề xuất giải pháp 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 [2]. Nghiên cứu này đã được chấp nhận đăng tại Hội nghị ACDT 2018 [107].
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 chúng tôi đề xuất trong nghiên cứu [48]. Trong đề xuất này, chúng 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, chúng 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ọ.
Trên cơ sở đó, cấu trúc chương này được bố cục như sau:
Tổng quan về dạng tấn công TCP Syn Flood và các phương pháp phịng chống;
Mơ hình phương pháp phát hiện và phịng chống tấn công TCP Syn Flood;
Phát hiện tấn công TCP Syn Flood;
Cơ chế 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;
Đánh giá thực nghiệm;
Kết luận chương.
Trong đó, nội dung trọng tâm tập trung vào 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 TCP Syn Flood: (1) Giải pháp sử dụng thuật toán DBSCAN (sau đây
gọi tắt là PIDAD1) và (2) Giải pháp phát hiện và loại bỏ nhanh các gói tin giả mạo mà khơng trải qua q trình thiết lập thơng tin đầu vào (sau đây gọi là PIDAD2).
2.1.2. Về hạn chế và phạm vi ứng dụng của phương pháp giải quyết
Phương pháp chung của các giải pháp phịng chống tấn cơng TCP Syn Flood được đề 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 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 qn đơ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 ngồ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 hồn tồ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 [32], IP Traceback [47] hay Hop-count filtering [56] đều cần phải dựa trên những giả thuyết hay giả định nhất định.
Các phương pháp [47, 32] 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ì ln 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 [56] 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.