Hệ thống phát hiện tấn công botnet sử dụng Web Proxy và Convolutional Neural Network
Botnet đang ngày càng trở thành những mối đe dọa nguy hiểm nhất trong lĩnh vực an ninh
mạng, nhiều hướng tiếp cận khác nhau để phát hiện tấn công bằng botnet đã được nghiên
cứu. Tuy nhiên, dù bất kì hướng tiếp cận nào được sử dụng, sự tiến hóa về bản chất của
botnet cùng tập các quy luật được định nghĩa sẵn để phát hiện ra botnet có thể ảnh hưởng
đến hiệu suất của hệ thống phát hiện botnet. Trong bài báo này, chúng tôi đề xuất một họ
kiến trúc tổng quát sử dụng thuộc nhóm Convolutional Neural Network để biến đổi từ đặc
trưng thô do các công cụ ghi nhận và phân tích network flow cung cấp thành đặc trưng cấp
cao hơn, từ đó tiến hành phân lớp (nhị phân) để đánh giá một flow tương ứng với tình trạng
bị botnet tấn công hay không. Chúng tôi thử nghiệm trên tập CTU-13 với các cấu hình khác
nhau của convolutional neural network để đánh giá tiềm năng dùng deep learning với
convolutional neural network vào bài toán phát hiện botnet. Đặc biệt là đề xuất hệ thống
phát hiện Botnet sử dụng Web proxy. Đây là một kỹ thuật giúp triển khai hệ thống phát hiện
botnet với chi phí thấp mang lại hiệu quả cao.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Hệ thống phát hiện tấn công botnet sử dụng Web Proxy và Convolutional Neural Network
net. • Độ đo FPR được định nghĩa là tỉ lệ giữa False Positive với (False Positive + True Negative), cho biết tỉ lệ các mẫu bình thường bị nhận biết nhầm thành botnet. • Độ đo TNR (True Negative Rate) được định nghĩa là tỉ lệ giữa True Negative với (True Negative + False Positive), cho biết khả năng phát hiện đủ các mẫu bình thường. • Độ đo FNR (False Negative Rate) được định nghĩa là tỉ lệ giữa False Negative với (False Negative + True Positive), cho biết tỉ lệ các mẫu botnet bị nhận nhầm thành bình thường. 3.3. Kết quả thực nghiệm Nhóm tác giả đã chọn ra tập dữ liệu thử nghiệm là tập con của các flow trong tập CTU-13 gốc. Bảng 4 trình bày số lượng mẫu (botnet và bình thường) trong từng kịch bản của bộ CTU-13 rút gọn. Trong mỗi kịch bản, số lượng mẫu botnet và mẫu bình thường được chọn bằng nhau để tránh ảnh hưởng không công bằng khi huấn luyện mô hình máy học để phân lớp. Kết quả thử nghiệm trên tập dữ liệu rút gọn này được công bố trên 80% (cho mỗi kịch bản). Do số lượng mẫu trong tập dữ liệu rút gọn tương đối ít, chỉ có kịch bản 1, 2, 9, và 13 có trên 4000 mẫu, nên chúng tôi không chọn sử dụng tập dữ liệu rút gọn để huấn luyện thử nghiệm mô hình CNN để phát hiện botnet. Trần Đắc Tốt, Phạm Tuấn Khiêm, và Phạm Nguyễn Huy Phương 17 Bảng 4. Số lượng mẫu trong bộ CTU-13 rút gọn Kịch bản Số mẫu botnet Số mẫu bình thường Tổng số mẫu (flow) CTU-1 3233 3233 6466 CTU-2 2374 2374 4748 CTU-3 19 19 38 CTU-4 2 2 4 CTU-5 159 159 318 CTU-6 27 27 54 CTU-7 49 49 98 CTU-8 53 53 106 CTU-9 3803 3803 7606 CTU-10 71 71 142 CTU-11 10 10 20 CTU-12 428 428 856 CTU-13 3803 3803 7606 Với tập CTU-13 đầy đủ, chúng tôi sử dụng thử nghiệm với ba tập đặc trưng sau: Tập đặc trưng Argus cơ bản (Argus, n.d.), tập đặc trưng Argus mở rộng, và tập đặc trưng Tranalyzer (dựa theo khuyến nghị trong (Haddadi, Phan, & Zincir-Heywood, 2016)). Bảng 5, Bảng 6, Bảng 7 lần lượt trình bày kết quả thử nghiệm trên tập dữ liệu CTU-13 (bản đầy đủ) với các tập đặc trưng này. Để tránh việc phụ thuộc vào dữ liệu huấn luyện và khảo sát khả năng của hệ thống thích nghi với nhiều tình huống khác nhau, chúng tôi sử dụng phương pháp k-fold với số lượng phần (fold) là 10. Với mỗi giá trị K của số lượng chu kỳ trong giai đoạn biến đổi đặc trưng, chúng tôi lần lượt xem xét các cấu hình khác nhau của mô hình CNN theo kiến trúc được khảo sát. Mỗi cấu hình cụ thể tương ứng với bộ tham số gồm: (1) số lượng filter trong filter bank và kích thước của filter trong mỗi chu kỳ; (2) số lượng đoạn flow liên tiếp d được dùng. Với mỗi cấu hình, chúng tôi lần lượt huấn luyện 9/10 số lượng mẫu và sử dụng 1/10 số lượng mẫu để kiểm chứng. Độ chính xác của cấu hình tốt nhất mà chúng tôi tìm được cho mỗi giá trị K–số lượng chu kỳ, được thể hiện trong Bảng 5. Qua kết quả thử nghiệm chúng ta có thể thấy là nếu giai đoạn biểu diễn đặc trưng có ít chu kỳ (K = 1 hay K = 2) để rút trích đặc trưng thì việc nhận biết botnet chưa thật sự tốt. Tuy nhiên, khi tăng số lượng chu kỳ lên, kết quả nhận biết botnet được cải thiện (với K = 3 hay K = 4). Chúng tôi không tiếp tục xét với giá trị K 6 vì lúc này cấu trúc neural network tương đối phức tạp, độ chính xác nếu cải thiện cũng không đáng kể so với việc chi phí tính toán sẽ khá cao và có nguy cơ rơi vào hiện tượng quá khớp. Kết quả thực nghiệm cho thấy tập đặc trưng Argus mở rộng có khuynh hướng cho kết quả tốt hơn tập đặc trưng Argus cơ bản và có kết quả tốt tương đương với tập đặc trưng Tranalyzer. Điều này cũng phù hợp với nhận xét khi thử nghiệm các phân lớp truyền thống (C4.5, SVM) trên tập dữ liệu CTU-13 rút gọn (Haddadi & ctg., 2016). TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] 18 Bảng 5. Kết quả thử nghiệm trên CTU-13 (bộ đầy đủ) khi sử dụng dữ liệu đầu vào là tập đặc trưng Argus cơ bản Botnet Bình thường DR FPR TNR FNR CNN được đề xuất (K = 1) 85.8% 14.2% 87.9% 12.1% CNN được đề xuất (K = 2) 87.5% 12.5% 89.1% 10.9% CNN được đề xuất (K = 3) 92.3% 7.7% 90.3% 9.7% CNN được đề xuất (K = 4) 91.7% 8.3% 90.6% 9.4% CNN được đề xuất (K = 5) 90.4% 9.6% 92.6% 7.4% Bảng 6. Kết quả thử nghiệm trên CTU-13 (bộ đầy đủ) khi sử dụng dữ liệu đầu vào là tập đặc trưng Argus mở rộng Botnet Bình thường DR FPR TNR FNR CNN được đề xuất (K = 1) 85.9% 14.1% 88.7% 11.3% CNN được đề xuất (K = 2) 87.8% 12.2% 89.2% 10.8% CNN được đề xuất (K = 3) 93.2% 6.8% 91.7% 8.3% CNN được đề xuất (K = 4) 92.4% 7.6% 92.5% 7.5% CNN được đề xuất (K = 5) 91.3% 8.7% 91.9% 8.1% Bảng 7. Kết quả thử nghiệm trên CTU-13 (bộ đầy đủ) khi sử dụng dữ liệu đầu vào là tập đặc trưng Tranalyzer. Botnet Bình thường DR FPR TNR FNR CNN được đề xuất (K = 1) 85.9% 14.1% 88.7% 11.3% CNN được đề xuất (K = 2) 87.8% 12.2% 89.2% 10.8% CNN được đề xuất (K = 3) 93.2% 6.8% 91.7% 8.3% CNN được đề xuất (K = 4) 92.4% 7.6% 92.5% 7.5% CNN được đề xuất (K = 5) 91.3% 8.7% 91.9% 8.1% Việc thử nghiệm trên tập CTU-13 với 13 kịch bản của bảy loại botnet khác nhau cho thấy tiềm năng sử dụng giải pháp phân lớp bằng máy học ứng dụng convolutional neural network với nhiều lớp ẩn. Chúng tôi đã tiến hành thử nghiệm với nhiều cấu hình cụ thể khác nhau của nhóm các convolutional neural network có kiến trúc gần giống nhau để chọn ra một cấu hình phù hợp, có khả năng phát hiện với tỉ lệ chính xác cao các flow botnet. Trần Đắc Tốt, Phạm Tuấn Khiêm, và Phạm Nguyễn Huy Phương 19 3.4. Mô hình thử nghiệm AntiBotDDOS Hình 7. Mô hình kiểm thử trên môi trường mạng LAN Web Server • Thông tin cấu hình phần cứng: DELL OptiPlex 6th Generation Intel Corei3 processor, RAM 4 GB, NIC 1 Gbps. • Hệ điều hành sử dụng là Microsoft Windows 7 64bit Enterprise Edition. • Phần mềm đóng vai trò làm dịch vụ web server là IIS 7.0. • Địa chỉ IP Address: 192.168.247.111/24. AntiBotDDOS Server • Thông tin cấu hình phần cứng: Dell Precision Tower 3420, Intel Core i5 processor, RAM 8 GB, NIC 1 Gbps. • Hệ điều hành sử dụng là FreeBSD 64bit 10.2. TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] 20 • Phần mềm đóng vai trò làm web application proxy server: NGINX 1.8.0_3,2. • Địa chỉ IP Address: 192.168.247.113/24. BoNeSi: BoNeSi là công cụ giả lập tấn công DDOS có sử dụng mạng Botnet. Công cụ này giả lập Botnet Traffic để tạo ra hiệu ứng giống như tấn công DDOS thật sự. • Sử dụng ba máy tính có cấu hình Dell Precision Tower 3620, Intel Corei5processor, RAM 8 GB, NIC 1 Gbps, NIC 1 Gbps. • Hệ điều hành Ubuntu Server 64bit 15.10. • IP Address: 192.168.247.114/24, 192.168.247.115/24, 192.168.247.114/24. Người dùng hợp lệ Có ba người dùng hợp lệ sử dụng Dell Precision Tower 3620, Intel Core i5processor, RAM 8 GB, NIC 1 Gbps, NIC 1 Gbps lần lượt với các trình duyệt Internet Explorer, Google Chrome, FireFox để truy cập. 3.5. Kịch bản tấn công BoNeSi Servers (Hình 8) tạo ra HTTP FLOOD từ bộ địa chỉ IP đã được thiết lập sẵn để kết nối đến danh sách URL. BoNeSi sử dụng thư viện libnet và libpcap trên Linux để nhận IP Packets từ lớp mạng của hạt nhân Linux, sau đó nó tiêm IP Packets này vào gói tin để gửi tới web server mục tiêu. Trong một HTTP Flood, BoNeSi thiết lập kết nối TCP và gửi HTTP request tới web server mục tiêu (Hình 8). Hình 8. Cách thức kết nối của BoNeSi-PC-Bots tới web server mục tiêu Trần Đắc Tốt, Phạm Tuấn Khiêm, và Phạm Nguyễn Huy Phương 21 Trong HTTP request mà BoNeSi gửi đi sẽ có option “Connection: close” trong header line. Với header line như vậy, web server sẽ đóng kết nối TCP lại ngay lập tức sau khi nó gửi HTTP reponse. Ba máy tính sử dụng BoNeSi (được gọi là BoNeSi Servers), mỗi máy tạo ra 50.000 PC-Bots với payload size 1470 bytes, lưu lượng mạng của cuộc tấn công này khoảng 1.764 Gbps. 4. KẾT QUẢ VÀ BÀN LUẬN Khi thực hiện tấn công với BoNeSi (Hình 9) vào hệ thống. Hình 9. Trạng thái tấn công của BoNeSi Trong trường hợp không sử dụng AntiBotDDOS thì trạng thái của webserver mục tiêu được ghi nhận (Hình 10). Hình 10. CPU của web server mục tiêu trong tình huống bị tấn công DDOS và không sử dụng AntiBotDDOS TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] 22 Truy xuất từ các máy tính người sử dụng hợp lệ, các request đều bị time out. Điều đó cho thấy tác hại của DDoS đủ lớn để làm vô hiệu hóa hoạt động của Webserver. Khi kích hoạt hệ thống AntibotDDOS (Hình 11). Hình 11. CPU của web server mục tiêu trong tình huống bị tấn công DDOS và sử dụng AntiBotDDOS Một trong những biểu hiện hiệu quả của AntibotDDOS (Hình 11), đó là khi bị tấn công DDOS bằng công cụ Bonesi, dưới sự bảo vệ của AntiBotDDOS, người dùng vẫn có thể truy cập bình thường vào webserver mục tiêu. So sánh kết quả đạt được với một số sản phẩm thương mại: • Trong cơ chế phân biệt người dùng của sản phẩm thương mại Defense Pro, do Radware phát triển, để nhận dạng người dùng và PC-Bots khá giống với module HTTP Challenge của AntiBotDDOS. Cơ chế challenge PC-Bots bằng cách sử dụng code HTTP 302 cũng gần giống với AntiBotDDOS (Bảng 8). • Không giống như công nghệ của các nhà cung cấp khác, tấn công DDOS được F5 Network phân chia như sau [Mitigating DDoS Attacks with F5 Technology–White paper]: Network attacks (layer 3 và layer 4–Mô hình OSI), session attacks (layers 5 và 6), application attacks (layer 7). Mỗi loại tấn công F5 Network sử dụng một loại công nghệ được mô tả sơ lược tại [Mitigating DDoS Attacks with F5 Technology–White paper]. Đối với kiểu tấn công DDOS HTTP GET Flood và Recursive GET Flood, nền tảng BIG- IP của F5 ngăn chặn bằng cách sử dụng JavaScript để kiểm tra đâu là trình duyệt web thật sự của người dùng. [Mitigating DDoS Attacks with F5 Technology–White paper, mục Recursive GET floods], cách thức này gần giống với hoạt động của AntiBotDDOS–module JavaScript challenge. Trần Đắc Tốt, Phạm Tuấn Khiêm, và Phạm Nguyễn Huy Phương 23 Bảng 8. Bảng so sánh AntibotDDos với các sản phẩm thương mại Thiết bị Max Mitigation Capacity/ Throughput Max Legit Concurrent Sessions Max Attack Concurrent Sessions Network Operation Block Actions AntiBotDDOS 10 Gbps 65 536 000 65 536 000 Layer 4, 7 Drop connection Radware- DefensePro x06 Series 2 000 000 Không giới hạn Layer 2, 7 Drop packet, reset (source, destination, both), suspend (source, src port, destination, dest port or any combination), Challenge-Response for TCP, HTTP and DNS suspicious traffic F5-VIPRION 2100 Blade 40 Gbps L4, 18 Gbps L7 1M L7 requests per second 400K L4 connections per second 7M-HTTP requests per second 12M max L4 CCU L2, L4, L7 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong bài báo này đã trình bày một hướng tiếp cận bài toán hoàn toàn khác so với các phương pháp cũ trước đây. Phương pháp đề xuất mới này sử dụng Convolutional Neural Network vào phân tích và đánh giá để phát hiện tấn công botnet, chúng tôi đề xuất một họ kiến trúc tổng quát sử dụng thuộc nhóm Convolutional Neural Network để biến đổi từ đặc trưng thô do các công cụ ghi nhận và phân tích network flow cung cấp thành đặc trưng cấp cao hơn, từ đó tiến hành phân lớp (nhị phân) để đánh giá một flow tương ứng với tình trạng bị botnet tấn công hay không. Qua kết quả thực nghiệm chúng tôi thử nghiệm trên tập CTU-13 với các cấu hình khác nhau của convolutional neural network là để đánh giá tiềm năng dùng deep learning với convolutional neural network vào bài toán phát hiện botnet. Đây là giải pháp tiềm năng và có thể được sử dụng trong tương lai với khối lượng flow botnet được ghi nhận đủ nhiều và đa dạng. Chúng tôi đã đề xuất hệ thống phát hiện Botnet sử dụng Web proxy. Với khả năng tự kiểm tra và phân biệt người dùng và PC-Bot thông qua các kỹ thuật; Challenge HTTP; Challenge Java; Phát hiện fake IP; Hệ thống có khả năng tự học, tự cấu hình để điều chỉnh các thông số nhằm tối ưu hoạt động phát hiện Botnet. Và khả năng xác thực người dùng thông qua cơ chế Captcha. Đây là một kỹ thuật giúp triển khai hệ thống phát hiện Botnet với chi phí thấp mang lại hiệu quả cao. Trong hướng nghiên cứu tiếp theo chúng tôi sẽ tiếp tục thu thập đủ dữ liệu (với khối lượng đủ nhiều) các flow thực tế, đặc biệt là các flow botnet của nhiều loại botnet TẠP CHÍ KHOA HỌC ĐẠI HỌC ĐÀ LẠT [CHUYÊN SAN KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ] 24 khác nhau để huấn luyện mô hình convolutional neural network để hoàn thiện các sản phẩm có khả năng phát hiện sớm Botnet. TÀI LIỆU THAM KHẢO Argus. (n.d.). Retrieved from https://openargus.org/. Celik, Z. B., Raghuram, J., Kesidis, G., & Miller, A. J. (2011). Salting public traces with attack traffic to test flow classifiers. Paper presented at The USENIX 4th CSET Workshop, California, USA. Garcia, S., Grill, M., Stiborek, H., & Zunino, A. (2014). An empirical comparison of botnet detection methods. Computers and Security Journal, 45, 100-123. Gu, G., Porras, P., Yegneswaran, V., Fong, M., & Lee, W. (2007). BotHunter: Detecting malware infection through ids-driven dialog correlation. Paper presented at The 16th USENIX Security Symposium, Massachusetts, USA. Haddadi, F., Le, C. D., Porter, L., & Zincir-Heywood, A. N. (2015). On the effectiveness of different botnet detection approaches. In J. Lopez & Y. Wu (Eds), Information security practice and experience (pp. 121-135). Berlin, German: Springer Publishing. Haddadi, F., Phan, D. T., & Zincir-Heywood, A. N. (2016). How to choose from different botnet detection systems? Istanbul, Turkey: Institute of Electrical and Electronics Engineers Publishing. Haddadi, F., & Zincir-Heywood, A. N. (2014). Benchmarking the Effect of Flow Exporters and Protocol Filters on Botnet Traffic Classification. IEEE Systems Journal, 10(4), 1390-1401. Maji. (n.d.). Retrieved from https://research.wand.net.nz/software/maji.php. Netmate. (n.d.). Retrieved from https://github.com/DanielArndt/netmate-flowcalc. Softflowd. (n.d.). Retrieved from Snort. (n.d.). Retrieved from Snort: https://www.snort.org. Tranalyzer. (n.d.). Retrieved from https://tranalyzer.com/. Wang, K., Huang, C., & Lin, S. (2011). A fuzzy pattern-based filtering algorithm for botnet detection. Computer Networks, 55, 3275-3286. Wurzinger, P., Bilge, L., Holz, T., Goebel, J., Kruegel, C., & Kirda, E. (2009). Automatically Generating Models for Botnet Detection. In M. Backers & P. Ning (Eds), Computer Science–ESORICS (pp. 232-249). Berlin, German: Springer Publishing. Zhao, D., Traore, I., Ghorbani, A., Sayed, B., Saad, S., & Lu, W. (2012). Peer to peer botnet detection based on flow intervals. In D. Gritzalis, S. Furnell, & M. Theoharidou (Eds), Information Security and Privacy Research (IFIP Advances in Information and Communication Technology) (pp. 87-102). Berlin, German: Springer Publishing. YAF. (n.d.). Retrieved from https://tools.netsa.cert.org/yaf/index.html.
File đính kèm:
- he_thong_phat_hien_tan_cong_botnet_su_dung_web_proxy_va_conv.pdf