Xem mẫu

  1. Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Huế, ngày 07-08/6/2019 DOI: 10.15625/vap.2019.00047 PHÁT HIỆN DGA BOTNET SỬ DỤNG KẾT HỢP NHIỀU NHÓM ĐẶC TRƯNG PHÂN LOẠI TÊN MIỀN Vũ Xuân Hạnh 1, Hoàng Xuân Dậu2 1 Trung tâm Ngoại ngữ, Tin học và Bồi dưỡng ngắn hạn, Đại học Mở Hà Nội 2 Khoa Công nghệ Thông tin 1, Học viện Công nghệ Bưu chính Viễn thông hanhvx@hou.edu.vn, dauhx@ptit.edu.vn TÓM TẮT: Trong những năm gần đây, các botnet đã trở thành một trong các nguy cơ gây mất an toàn thông tin hàng đầu do chúng không ngừng phát triển về cả quy mô và mức độ tinh vi. Nhiều dạng botnet sử dụng kỹ thuật DGA để sinh và đăng ký nhiều tên miền ngẫu nhiên khác nhau cho máy chủ lệnh và điều khiển (C&C) của chúng nhằm chống lại việc bị kiểm soát. Việc phân tích phát hiện các tên miền truy vấn hệ thống DNS có thể giúp phát hiện các hoạt động của botnet do các bot tồn tại trong hệ thống mạng cũng liên tục sử dụng kỹ thuật DGA để sinh tên miền và truy vấn hệ thống DNS để tìm địa chỉ IP của các máy chủ C&C. Các mô hình phát hiện DGA botnet dựa trên phân phân loại tên miền do botnet sinh tự động với tên miền bình thường đã được nghiên cứu, đề xuất. Bài báo này đề xuất bổ sung một nhóm gồm 4 đặc trưng phân loại tên miền mới kết hợp với 3 nhóm gồm 18 đặc trưng đã có nhằm cải thiện hiệu quả phát hiện của mô hình phát hiện DGA botnet dựa trên học máy. Các kết quả thử nghiệm cho thấy, nhóm đặc trưng phân loại mới giúp tăng đáng kể độ chính xác phát hiện và giảm tỷ lệ phát hiện nhầm. Từ khóa: DGA botnet, phát hiện DGA botnet, mô hình phát hiện botnet, đặc trưng n-gram. I. GIỚI THIỆU Trong những năm gần đây, botnet được đánh giá là một trong các nguy cơ gây mất an toàn thông tin hàng đầu trong các dạng mã độc (malware) hoạt động trên mạng Internet [1][2]. Các botnet không ngừng phát triển trên mạng Internet toàn cầu về cả quy mô và sự tinh vi của các kỹ thuật điều khiển. Mỗi thành viên trong botnet được gọi là bot. Bot là một malware do một nhóm tin tặc (botmaster) tạo ra cho phép chúng điều khiển các hệ thống máy tính bị lây nhiễm từ xa. Các bot khác với các dạng malware khác ở chỗ chúng có tính tự động (autonomy) cao và được trang bị khả năng sử dụng các kênh truyền thông để nhận lệnh và thông báo trạng thái hoạt động của mình đến hệ thống điều khiển. Các hệ thống điều khiển, hay các máy chủ lệnh và điều khiển (Command and Control - C&C) là phương tiện trung gian để botmaster gửi các lệnh và bản mã cập nhật đến các bot. Các botnet thường được sử dụng để truyền tải các phần mềm độc hại, gửi thư rác, đánh cắp thông tin nhạy cảm, lừa đảo, hoặc nghiêm trọng hơn để thực hiện các cuộc tấn công mạng trên quy mô lớn, như tấn công DDoS. Theo một số báo cáo, hiện nay có khoảng 80% lưu lượng thông tin trên Internet có liên quan đến hoạt động của các botnet, bao gồm các hoạt động gửi thư rác và tấn công mạng [1][2]. Dịch vụ tên miền (DNS - Domain Name Service) là một dịch vụ thiết yếu trên mạng Internet cho phép phân giải tên máy, hoặc tên miền sang địa chỉ IP và ngược lại. Chẳng hạn, mỗi khi trình duyệt máy khách cần truy nhập một trang web, nó trước hết gửi yêu cầu đến hệ thống DNS để tìm địa chỉ IP của máy chủ web, sau đó sử dụng địa chỉ IP tìm được để truy nhập máy chủ web và tải trang web. Như vậy, hầu hết các ứng dụng hợp pháp đều sử dụng dịch vụ DNS khi thực hiện các yêu cầu truy cập các dịch vụ mạng của mình. Tuy nhiên, dịch vụ DNS cũng được các bot trong botnet sử dụng như các ứng dụng hợp pháp. Các bot gửi các yêu cầu truy vấn DNS để tìm địa chỉ IP của máy chủ C&C và khi có địa chỉ IP, chúng truy nhập các máy chủ C&C để nhận các lệnh, cũng như để tải các bản mã bot cập nhật. Để lẩn tránh việc rà quét, phát hiện các máy chủ C&C, botmaster liên tục thay đổi tên và địa chỉ IP của các máy chủ C&C theo các kỹ thuật xác định trước, như DGA (Domain Generation Algorithms), hoặc FF (Fast Flux) [3][4]. Các thay đổi về tên và IP của các máy chủ C&C liên tục được đẩy lên hệ thống DNS. Các bot cũng được trang bị khả năng sinh tự động tên máy chủ C&C theo các kỹ thuật này. Nhờ vậy, các bot vẫn có thể tìm được địa chỉ IP của máy chủ C&C bằng cách sinh tên máy chủ tự động và truy vấn dịch vụ DNS. Do vậy, việc giám sát và phân tích dữ liệu truy vấn DNS, đặc biệt là các tên miền và kết quả truy vấn có thể tiết lộ sự tồn tại của các hành động độc hại trong hệ thống mạng được giám sát do một phần dữ liệu truy vấn DNS có thể do botnet tạo ra. Phần còn lại của bài báo được cấu trúc như sau: Mục II trình bày các nghiên cứu có liên quan; Mục III giới thiệu mô hình phát hiện DGA botnet dựa trên học máy, giới thiệu khái quát về học máy và vấn đề tiền xử lý dữ liệu; Mục IV là phần thử nghiệm, các kết quả và nhận xét; và Mục V là kết luận của bài báo. II. CÁC NGHIÊN CỨU LIÊN QUAN A. Giới thiệu về DGA botnet Như đã đề cập trong mục I, nhiều botnet hiện nay sử dụng kỹ thuật DGA để sinh và đăng ký nhiều tên miền ngẫu nhiên khác nhau cho máy chủ lệnh và điều khiển của chúng nhằm chống lại việc bị kiểm soát và đưa vào danh sách đen (Blacklist) [3][4]. Lý do chính của việc sử dụng DGA là làm phức tạp việc kiểm soát thu hồi tên miền. Các botnet dạng này còn được gọi là DGA-based botnet, hay ngắn gọn là DGA botnet.
  2. 370 PHÁT HIỆN DGA BOTNET SỬ DỤNG KẾT HỢP NHIỀU NHÓM ĐẶC TRƯNG PHÂN LOẠI TÊN MIỀN Thuật toán DGA có thể sử dụng các toán tử kết hợp với các biến có giá trị luôn thay đổi, chẳng hạn như năm, tháng, ngày, giờ để sinh tên miền ngẫu nhiên. Ví dụ, một dạng của thuật toán DGA được thực hiện bởi 1 hàm có chứa 16 vòng lặp. Mỗi vòng lặp sinh ngẫu nhiên 1 ký tự trong tên miền như sau [3][4]: year = ((year ^ 8 * year) >> 11) ^ ((year & 0xFFFFFFF0) > 25) ^ 16 * (month & 0xFFFFFFF8) day = ((day ^ (day > 19) ^ ((day & 0xFFFFFFFE) >‟: Phép dịch phải bit. Toán tử „
  3. Vũ Xuân Hạnh, Hoàng Xuân Dậu 371 lượng từ có nghĩa trong mỗi tên miền và độ dài tên miền nhằm cải thiện độ chính xác phát hiện. Chúng tôi lần lượt đánh giá hiệu quả của mô hình phát hiện trên khi bổ sung từng đặc trưng mới trên tập dữ liệu mở rộng bao gồm các tên miền bình thường và tên miền DGA botnet [13][14]. III. MÔ HÌNH PHÁT HIỆN DGA BOTNET DỰA TRÊN PHÂN LOẠI TÊN MIỀN A. Mô hình phát hiện DGA botnet Hình 2 biểu diễn mô hình phát hiện DGA botnet dựa trên học máy [10][11]. Mô hình này được xây dựng trên cơ sở phân tích ở Mục I và Mục II về việc các bot trong DGA botnet thường xuyên sinh tự động các tên miền và truy vấn hệ thống DNS để tìm địa chỉ IP của các máy chủ C&C. Mô hình phát hiện được triển khai thành 2 giai đoạn: (a) giai đoạn huấn luyện và (b) giai đoạn phát hiện. Trong giai đoạn huấn luyện, dữ liệu truy vấn hệ thống DNS được thu thập, sau đó qua khâu tiền xử lý nhằm tách các tên miền được truy vấn và trích xuất các đặc trưng của mỗi tên miền cho khâu huấn luyện. Trong khâu huấn luyện, thuật toán học máy Rừng ngẫu nhiên (Random Forest) được áp dụng để học ra Bộ phân loại. Tập dữ liệu sử dụng cho khâu huấn luyện đã được gán nhãn, gồm (1) tập tên miền bình thường, hay lành tính và (2) tập tên miền botnet. Chi tiết về các tập dữ liệu cho thử nghiệm được mô tả trong mục IV.A. Trong giai đoạn phát hiện của mô hình, các truy vấn DNS được giám sát và qua quá trình tiền xử lý đến khâu phân loại sử dụng Bộ phân loại sinh từ giai đoạn huấn luyện để xác định một tên miền là bình thường, lành tính hay tên miền sử dụng bởi DGA botnet. Hình 2. Mô hình phát hiện DGA botnet dựa trên học máy: (a) Giai đoạn huấn luyện và (b) Giai đoạn phát hiện B. Khái quát về học máy và thuật toán rừng ngẫu nhiên 1. Khái quát về học máy Học máy (Machine Learning) là một lĩnh vực của khoa học máy tính, liên quan đến việc nghiên cứu và xây dựng các kỹ thuật cho phép máy tính có khả năng tự học dựa trên dữ liệu đưa vào để giải quyết những vấn đề cụ thể [12]. Dựa theo phương pháp học, các kỹ thuật học máy thường được chia làm 3 nhóm chính: học có giám sát, học không giám sát và học bán giám sát [12]. Mỗi phương pháp học có ưu nhược điểm riêng và có miền ứng dụng riêng. Trong bài báo này, chúng tôi sử dụng thuật toán học máy có giám sát Rừng ngẫu nhiên trong mô hình phát hiện DGA botnet. Rừng ngẫu nhiên là một thuật toán học máy có giám sát - một thành viên trong chuỗi thuật toán Cây quyết định (Decision Tree). Rừng ngẫu nhiên cho độ chính xác phân loại cao, tốc độ xử lý khá nhanh và được ứng dụng rộng rãi trong nhiều lĩnh vực của Khoa học máy tính [12]. Đây cũng là thuật toán học máy cho kết quả phân loại phát hiện botnet tốt nhất được thử nghiệm trong [10][11]. 2. Thuật toán Rừng ngẫu nhiên Ý tưởng của thuật toán Rừng ngẫu nhiên là tạo ra một số cây quyết định. Các cây quyết định này sẽ chạy và cho kết quả độc lập. Câu trả lời được dự đoán bởi nhiều cây quyết định nhất sẽ được Rừng ngẫu nhiên lựa chọn [12]. Để đảm bảo các cây quyết định không giống nhau, Rừng ngẫu nhiên sẽ ngẫu nhiên chọn ra một tập con các đặc trưng (numFeatures = int(log2#Features +1)) ở mỗi nút. Các tham số còn lại được sử dụng trong Rừng ngẫu nhiên giống như trong cây quyết định. Chi tiết về thuật toán Rừng ngẫu nhiên, độc giả có thể tham khảo trong tài liệu [12].
  4. 372 PHÁT HIỆN DGA BOTNET SỬ DỤNG KẾT HỢP NHIỀU NHÓM ĐẶC TRƯNG PHÂN LOẠI TÊN MIỀN C. Tiền xử lý dữ liệu 1. Giới thiệu Như đã đề cập trong mục III.A, hai nhiệm vụ chính của khâu tiền xử lý dữ liệu bao gồm (1) làm sạch dữ liệu truy vấn DNS và (2) trích xuất các đặc trưng của tên miền truy vấn phục vụ cho khâu huấn luyện và phát hiện. Do mô hình phát hiện DGA botnet chỉ sử dụng tên miền truy vấn trong dữ liệu truy vấn DNS, nhiệm vụ (1) làm sạch dữ liệu truy vấn DNS thực hiện việc tách tên miền trong yêu cầu truy vấn (DNS Query) mà các máy khách gửi đến hệ thống DNS để tìm địa chỉ IP tương ứng. Các tên miền sau trích xuất được lưu vào tập dữ liệu tên miền cho nhiệm vụ tiền xử lý tiếp theo. Nhiệm vụ (2) trích xuất các đặc trưng của tên miền truy vấn thực hiện việc tính toán các giá trị cho các đặc trưng của tên miền và biểu diễn mỗi tên miền thành một vector đặc trưng làm đầu vào cho khâu huấn luyện và phát hiện. Chúng tôi sử dụng 18 đặc trưng đề xuất trong nghiên cứu trước đây của nhóm [10][11] và bổ sung thêm 4 đặc trưng mới để vector hoá các tên miền nhằm cải thiện hiệu quả phát hiện. Các đặc trưng sử dụng gồm 4 nhóm sau: Nhóm 1 gồm 8 đặc trưng thống kê từ vựng cho các cụm 2-gram (bi-gram) trích xuất từ mỗi tên miền. Các đặc trưng này được ký hiệu là f1, f2, f3, f4, f5, f6, f7, f8. Nhóm 2 gồm 8 đặc trưng thống kê từ vựng cho các cụm 3-gram (tri-gram) trích xuất từ mỗi tên miền. Các đặc trưng này được ký hiệu là f9, f10, f11, f12, f13, f14, f15, f16. Nhóm 3 gồm 2 đặc trưng phân bố nguyên âm của tên miền. Các đặc trưng này được ký hiệu là f17, f18. Nhóm 4 gồm 4 đặc trưng mới bổ sung, bao gồm tên miền băm, giá trị dự kiến cho mỗi tên miền, số lượng từ có nghĩa trong mỗi tên miền và độ dài tên miền. Các đặc trưng này được ký hiệu là f19, f20, f21 và f22. 2. Các đặc trưng n-gram (nhóm 1 và 2) Bi-gram hay 2-gram là một cụm gồm 2 ký tự kề nhau được trích ra từ một chuỗi ký tự. Ví dụ, với chuỗi “example” gồm các bi-gram: ex, xa, am, mp, pl, le. Một tên miền có thể chứa các ký tự trong tập 26 ký tự chữ cái (a-z), các ký tự số (0-9), ký tự “.” và “-”, do đó tổng số bi-gram có thể có là TS(bi-gram) = 38*38=1.444. Từ tập hợp các tên miền bình thường trích rút ra danh sách gồm N cụm bi-gram thường xuyên xuất hiện nhất, ký hiệu là DS(bi-gram). DS(bi-gram) được sử dụng cho việc tính toán 8 đặc trưng trong nhóm 1 cho từng tên miền. Tri-gram hay 3-gram là một cụm gồm 3 ký tự kề nhau được trích ra từ một chuỗi ký tự. Ví dụ, với chuỗi “example” gồm các tri-gram: exa, xam, amp, mpl, ple. Tương tự cách tính tổng số bi-gram, tổng số tri-gram có thể có TS(tri-gram) = 38*38*38=54.872. Từ tập hợp các tên miền bình thường trích rút ra danh sách gồm M cụm tri-gram có tần suất xuất hiện cao nhất, ký hiệu DS(tri-gram). DS(tri-gram) được sử dụng cho việc tính toán 8 đặc trưng trong nhóm 2 cho từng tên miền. Các đặc trưng của bi-gram và tri-gram (gọi chung là n-gram) cho từng tên miền d được tính toán theo cách tương tự nhau với [fk] là ký hiệu của đặc trưng như sau [10][11]: [f1,f9] count(d) là số lượng n-gram của tên miền d có trong DS(n-gram). [f2,f10] m(d) là phân bố tần suất chung của các n-gram của tên miền d, được tính theo công thức: ( ) m(d) ∑ () () (1) trong đó, f(i) là là tổng số lần xuất hiện của n-gram i trong DS(n-gram) và index(i) là thứ hạng của n-gram i trong TS(n-gram). [f3,f11] s(d) là trọng số n-gram, được tính theo công thức: ( ) ∑ () () s(d) = (2) ( ) trong đó, vt(i) là thứ hạng của n-gram i trong DS(n-gram). [f4,f12] mtb(d) là trung bình phân bố tần suất chung của các n-gram của tên miền d, được tính theo công thức: mtb(d) = m(d) / (len(d)) (3) trong đó, len(d) là là tổng số các n-gram có trong tên miền d. [f5,f13] stb(d) là trung bình trọng số n-gram của tên miền d, được tính theo công thức: stb(d) = s(d) / (len(d)) (4) [f6,f14] t(d) là trung bình số lượng n-gram phổ biến của tên miền d, được tính theo công thức: t(d) = count(d) / (len(d)) (5) [f7,f15] ts(d) là trung bình tần suất n-gram phổ biến của tên miền d, được tính theo công thức: ( ) ∑ () ts(d) = (6) ( )
  5. Vũ Xuân Hạnh, Hoàng Xuân Dậu 373 [f8,f16] entropy(d) là entropy của tên miền d, được tính theo công thức: ( ) () () entropy(d) = - ∑ ( ) (7) trong đó, L là số cụm n-gram phổ biến trong tập tên miền bình thường, L=N với bi-gram và L=M với tri-gram. 3. Các đặc trưng nguyên âm (nhóm 3) Hai đặc trưng về nguyên âm của tên miền được tính toán như sau [10][11]: [f17] countna(d) là số lượng nguyên âm có trong tên miền d. [f18] tna(d) là trung bình số nguyên âm của tên miền d, được tính theo công thức: ( ) tna(d) = (8) ( ) 4. Các đặc trưng bổ sung (nhóm 4) a) Tên miền dạng băm Thống kê trong 42 họ tên miền DGA [14], có 5 họ tên miền DGA sử dụng giá trị băm hoặc ký hiệu thập lục phân làm tên miền, như minh hoạ trong Bảng 1. Họ bamital botnet sử dụng tên miền là giá băm MD5 và sinh 26 tên miền 1 ngày. Họ dyre botnet sử dụng tên miền có độ dài cố định là 34 ký tự, trong đó lấy 1 ký tự bắt đầu trong tập [a,..,z] với 33 ký tự từ giá trị băm SHA256 và sinh 1.000 tên miền mỗi ngày. Họ pspy botnet sử dụng tên miền có độ dài cố định là 16 và sử dụng ký tự thập lục phân với tổng cộng chỉ 50 tên miền. Họ omexo botnet sử dụng tên miền có độ dài cố định là 32 và sử dụng ký tự thập lục phân với tổng cộng chỉ 20 tên miền. Trong khi đó, họ tinynuke botnet sử dụng tên miền có độ dài cố định là 32 với các ký tự thập lục phân và sinh 32 tên miền mỗi ngày. Tên miền băm và các ký tự thập lục phân không được sử dụng trong các tên miền lành tính [13]. Từ phân tích trên, chúng tôi đề xuất sử dụng đặc trưng tên miền băm với một trong 2 giá trị: là tên miền băm hay không là tên miền băm. Bảng 1. Một số họ DGA botnet sử dụng giá trị băm hoặc ký tự thập lục phân trong tên miền Họ botnet Tên miền băm botnet sử dụng cd8f66549913a78c5a8004c82bcf6b01.info bamital aa24603b0defd57ebfef34befde16370.cz.cc 5e6efdd674c134ddb2a7a2e3c603cc14.org l54c2e21e80ba5471be7a8402cffb98768.so dyre wdd7ee574106a84807a601beb62dd851f0.hk jaa12148a5831a5af92aa1d8fe6059e276.ws 484b072f94637588.net pspy 3164168f83658393.net abfb8a26a85ff915.info eef795a4eddaf1e7bd79212acc9dde16.net omexo fff1834cbcd5ba96ca75fdae9c44cf5d.net 35262768764bd6c908c386b532a3dc2f.net 8c28b41611c50aa0494df096e4d0444b.com tinynuke e8d1e174d60449c80a849936eff4fe9e.com 3ce623333166e4a227d5eb2fef098f60.com b) Giá trị dự kiến cho mỗi tên miền Mặc dù độ dài của một số họ tên miền DGA tương tự như độ dài của tên miền lành tính, các thuật toán sinh tên miền tự động DGA được thiết kế để sinh các tên miền tránh bị trùng lặp với các tên miền lành tính hiện có. Trên thực tế, thông qua phân tích thống kê, chúng tôi thấy rằng phân phối tần suất của 38 ký tự (bao gồm 26 chữ cái, 10 chữ số, dấu chấm và dấu gạch ngang) có sự khác biệt đáng kể giữa tên miền lành tính và tên miền DGA. Tên miền DGA có phân phối rất ổn định và đều nhau, trong khi phân phối của tên miền lành tính thường không ổn định và không đồng đều. Do đó, dựa trên đặc điểm này, chúng tôi đề xuất sử dụng giá trị dự kiến cho mỗi tên miền làm một đặc trưng phân loại [15]. Giá trị dự kiến cho mỗi tên miền được tính theo phương pháp sau: Cho một tên miền X gồm các chữ cái { x1 , x2 ,...xn } và các giá trị xác suất xuất hiện dự kiến tương ứng là { p( x1 ), p( x2 ),... p( xn ) }, giá trị dự kiến cho mỗi tên miền EOD(X) tính được tính theo công thức sau: k n( xi ) p ( xi ) EOD ( X ) i 1 (9) k n( xi ) i 1 Trong đó, k là số ký tự riêng biệt xuất hiện; p( xi ) là xác suất xuất hiện của ký tự xi được tính theo [9], xác suất này được tính toán trên 100.000 tên miền lành tính từ [13]; và n( xi ) là số lần xuất hiện ký tự xi . Ví dụ: EOD("google") = (2×2.4 + 2x7.28 + 9.69 + 4.65) / 6 = 5.61 EOD("glrmwqh") = (2.4 + 4.65 + 6.44 + 3.37 + 1.2 + 0.21 + 2.56) / 6 = 2.97
  6. 374 PHÁT HIỆN DGA BOTNET SỬ DỤNG KẾT HỢP NHIỀU NHÓM ĐẶC TRƯNG PHÂN LOẠI TÊN MIỀN c) Số lượng từ có nghĩa trong mỗi tên miền Theo phân tích của chúng tôi, các tên miền lành tính thường có cấu trúc là tổ hợp các từ trong tiếng Anh nói chung. Các tên miền DGA thì thường không có cấu trúc như vậy. Chúng tôi sử dụng một bộ từ điển tiếng Anh gồm 58.110 từ có độ dài từ 2 ký tự trở lên để kiểm tra số lượng từ có nghĩa xuất hiện trong tên miền là bao nhiêu và sử dụng làm một đặc trưng phân loại. Bảng 2. Xác suất xủa 38 ký tự xuất hiện trong 100.000 tên miền lành tính d) Độ dài tên miền Trong danh sách các họ tên miền DGA [14], độ dài các tên miền DGA đều lớn hơn bằng 5 và thường nằm trong khoảng từ 5 đến 20 ký tự. Tuy nhiên, cũng có một số lượng nhỏ họ botnet sử dụng tên miền có độ dài khá lớn như 28, 32, 34 ký tự… Chúng tôi kiểm tra 300.000 tên miền lành tính từ [13] và thấy rằng, có tới 16.281 tên miền lành tính có độ dài nhỏ hơn 5 và thông thường độ dài nằm trong khoảng từ 6 đến 16 ký tự. Vì số lượng tên miền DGA và tên miền lành tính có độ dài nằm trong khoảng 5 - 20 ký tự là rất cao nên với đặc trưng này, chúng tôi sẽ phân loại được các tên miền có độ dài nhỏ hơn 5 ký tự là những tên miền lành tính. Qua thống kê cho thấy, có khoảng 5% tên miền lành tính có độ dài nhỏ hơn 5 ký tự. Những tên miền này chủ yếu là các tên miền viết tắt bởi các phụ âm của các từ cần diễn đạt. Do đó, với các đặc trưng đánh giá về tần suất xuất hiện nguyên âm, số nguyên âm, tỷ lệ phụ âm, nguyên âm… sẽ thuộc diện nghi ngờ và bị phân loại thành tên miền DGA. Do vậy đặc trưng độ dài tên miền nhỏ hơn 5 ký tự được bổ sung nhằm tăng hiệu quả phân loại cho trường hợp này. IV. THỬ NGHIỆM VÀ ĐÁNH GIÁ A. Tập dữ liệu thử nghiệm Để đánh giá độ chính xác phân loại tên miền DGA và tên miền lành tính sử dụng thuật toán học máy với các đặc trưng mới, chúng tôi sử dụng các tập dữ liệu tên miền đã được bóc tách và gán nhãn, bao gồm tập các tên miền lành tính và tập các tên miền DGA do botnet sử dụng. Chúng tôi chọn 320.000 tên miền lành tính trong top 1 triệu tên miền do Alexa thống kê [13] và 320.000 tên miền DGA trong 39 họ DGA được liệt kê trong [14]. Các tên miền từ tập lành tính được gán nhãn Good và các tên miền DGA được gán nhãn Bad. Bảng 3. `Thành phần các tập dữ liệu huấn luyện và thử nghiệm Tập dữ liệu huấn luyện Số lượng bản ghi lấy từ và kiểm thử Tập nhãn “Good” Tập nhãn “Bad” Tập huấn luyện T1 100.000 100.000 Tập huấn luyện T2 150.000 50.000 Tập huấn luyện T3 50.000 150.000 Tập huấn luyện T4 200.000 200.000 Tập kiểm thử Test 20.000 20.000 Dữ liệu thử nghiệm được tổ chức thành 4 tập sử dụng cho huấn luyện, bao gồm các tập ký hiệu T1, T2, T3, T4 và tập cho kiểm thử ký hiệu Test. Thành phần tên miền của các tập dữ liệu trên cho như Bảng 3. Trong số các tập dữ liệu huấn luyện, tập T4 là sự kết hợp của 2 tập T2 và T3. Từ tập dữ liệu ban đầu, các tên miền sẽ được xử lý để bỏ đi phần tên miền mức cao nhất. Ví dụ, với tên miền “example.com”, sau khi qua xử lý, dữ liệu thu được sẽ là “example”. B. Phương pháp đánh giá Các độ đo đánh giá được chúng tôi sử dụng là: Độ chính xác (Pre) là số lượng tên miền DGA được phân loại chính xác chia cho tổng số tên miền DGA và được tính theo công thức: TP Pre (10) TP FN
  7. Vũ Xuân Hạnh, Hoàng Xuân Dậu 375 Độ chính xác (ACC) là tổng số miền được phân loại chính xác chia cho tổng số miền được phân loại và được tính theo công thức: TP TN ACC (11) TP TN FP FN Tỷ lệ dương tính giả (FPR) được xác định là số lượng tên miền lành tính được phân loại là DGA (cảnh báo nhầm) chia cho tổng tên miền lành tính và được tính theo công thức sau: FP FPR (12) FP TN Tỷ lệ âm tính giả (FNR) được xác định là số lượng tên miền DGA được phân loại là tên miền lành tính (bỏ sót) chia cho tổng số tên miền DGA và được tính theo công thức sau: FN FNR (13) FN TP Trong đó: TP là số lượng các bản ghi gán nhãn “Bad” được phân loại đúng, TN là số lượng các bản ghi gán nhãn “Good” được phân loại đúng, FP là số lượng các bản ghi gán nhãn “Good” được phân loại sai thành “Bad” và FN là số lượng các bản ghi gán nhãn “Bad” được phân loại sai thành “Good”. C. Kết quả Chúng tôi thử nghiệm với tập kiểm thử Test và bốn tập huấn luyện T1, T2, T3, T4 sử dụng kỹ thuật học máy có giám sát Rừng ngẫu nhiên với 30 cây. Trước hết, để đánh giá 4 đặc trưng mới được đề xuất bổ sung trong bài báo này, chúng tôi thử nghiệm với 18 đặc trưng trong báo cáo trước đây [10][11]. Sau đó, chúng tôi lần lượt thêm vào các đặc trưng đã nêu ở phần III.C. Các kết quả thử nghiệm cho trên các Bảng 4, 5, 6, 7 và 8. Bảng 4. Kết quả phân loại sử dụng 18 đặc trưng Tập huấn luyện ACC FPR FNR Pre T1 95.99% 3.00% 5.03% 94.98% T2 95.00% 1.17% 8.84% 91.17% T3 95.62% 6.11% 2.64% 97.36% T4 96.10% 2.78% 5.02% 94.98% Bảng 5. Kết quả phân loại sử dụng 19 đặc trưng (thêm f19) Tập huấn luyện ACC FPR FNR Pre T1 96.09% 2.87% 4.95% 95.05% T2 94.90% 1.27% 8.92% 91.08% T3 95.63% 6.03% 2.70% 97.31% T4 96.06% 2.77% 5.11% 94.90% Bảng 6. Kết quả phân loại sử dụng 20 đặc trưng (thêm f20) Tập huấn luyện ACC FPR FNR Pre T1 96.89% 2.54% 3.67% 96.34% T2 95.98% 0.95% 7.08% 92.92% T3 96.50% 5.15% 1.84% 98.17% T4 96.92% 2.39% 3.76% 96.24% Bảng 7. Kết quả phân loại sử dụng 21 đặc trưng (thêm f21) Tập huấn luyện ACC FPR FNR Pre T1 97.08% 2.53% 3.31% 96.69% T2 96.25% 0.92% 6.59% 93.42% T3 96.68% 5.15% 1.48% 98.52% T4 97.21% 2.29% 3.29% 96.71% Bảng 8. Kết quả phân loại sử dụng 22 đặc trưng (thêm f22) Tập huấn luyện ACC FPR FNR Pre T1 97.10% 2.45% 3.34% 96.67% T2 96.10% 0.98% 6.82% 93.19% T3 96.61% 5.19% 1.59% 98.42% T4 97.26% 2.25% 3.24% 96.77%
  8. 376 PHÁT HIỆN DGA BOTNET SỬ DỤNG KẾT HỢP NHIỀU NHÓM ĐẶC TRƯNG PHÂN LOẠI TÊN MIỀN
  9. Vũ Xuân Hạnh, Hoàng Xuân Dậu 377 D. Nhận xét Từ kết quả cho trên các Bảng 4, 5, 6, 7 và 8, có thể rút ra một số nhận xét sau: Khi bổ sung 4 đặc trưng mới vào mô hình phát hiện đã có sử dụng 18 đặc trưng [10][11], độ chính xác phân loại chung ACC, độ chính xác Pre đều tăng và tỷ lệ phát hiện sai FNR, FPR đều giảm, trừ trường hợp ở Bảng 5, tập huấn luyện T2. Trong trường hợp tốt nhất ở Bảng 8, tập huấn luyện T4 và khi bổ sung cả 4 đặc trưng, các độ đo phân loại đều được cải thiện đáng kể so với mô hình ban đầu, nhất là độ chính xác phân loại chung ACC, độ chính xác Pre và tỷ lệ âm tính giả FNR. Cụ thể, độ chính xác phân loại ACC tăng 1.16% (97.26% so với 96.10%), độ chính xác Pre tăng 1.79% (96.77% so với 94.98%), tỷ lệ dương tính giả giảm 0.53% (2.25% so với 2.78%) và tỷ lệ âm tính giả giảm 1.78% (3.24% so với 5.02%). Sở dĩ hiệu quả phân loại được cải thiện khi sử dụng 4 đặc trưng mới trong mô hình phát hiện là do cả 4 đặc trưng mới đều góp phần làm tăng khả năng phân biệt giữa các tên miền lành tính và các tên miền DGA. Cụ thể, đặc trưng tên miền dạng băm giúp phân biệt nhóm tên miền DGA sử dụng giá trị băm, hoặc ký tự thập lục phân; đặc trưng giá trị dự kiến cho mỗi tên miền giúp tăng khả năng phân biệt dựa trên thống kê; số lượng từ có nghĩa trong mỗi tên miền lành tính thường cao hơn so với tên miền DGA; và độ dài tên miền nhỏ hơn 5 thường là tên miền lành tính. Có thể thấy, mỗi đặc trưng mới riêng rẽ đều có ảnh hưởng tích cực đến các độ đo phân loại. Tuy nhiên, ảnh hưởng tích cực rõ nét nhất đạt được khi sử dụng đồng thời cả 4 đặc trưng mới trong mô hình phát hiện. Nhược điểm của việc bổ sung 4 đặc trưng mới là làm tăng thời gian huấn luyện và phát hiện do tăng kích thước véctơ biểu diễn tên miền. Mặc dù vậy, theo khảo sát của chúng tôi, ảnh hưởng này không quá lớn. V. KẾT LUẬN Trong bài báo này, chúng tôi đề xuất bổ sung 4 đặc trưng phân loại mới kết hợp với 18 đặc trưng đã có để hình thành 4 nhóm đặc trưng phân loại tên miền nhằm nâng cao độ chính xác phát hiện và giảm tỷ lệ phát hiện sai. Các kết quả thử nghiệm trên tập dữ liệu mở rộng khẳng định, các đặc trưng bổ sung giúp cải thiện đáng kể hiệu quả phát hiện. Đặc biệt, trong trường hợp bổ sung cả 4 đặc trưng tên miền mới, các độ đo phân loại chủ chốt được cải thiện đáng kể, trong đó độ chính xác phân loại chung ACC tăng 1.16%, độ chính xác dương Pre tăng 1.79% và tỷ lệ âm tính giả FNR giảm 1.78%. Trong tương lai, chúng tôi tiếp tục nghiên cứu, đề xuất các đặc trưng mới cùng với một số kỹ thuật khai phá dữ liệu giúp cải thiện hơn nữa hiệu quả phát hiện của mô hình. VI. TÀI LIỆU THAM KHẢO [1] Fossi, M., Egan, G., Haley, K., et al., "Symantec Internet Security Threat Report Trends," Symantec Internet Security Threat Report, vol. 16, pp. 1-20, 2011. [2] Cục An toàn thông tin, " Báo cáo An toàn thông tin Việt Nam 2016," Cục An toàn thông tin, 2016. [3] E. Durmaz, DGA classification and detection for automated malware analysis, [Online] https://cyber.wtf/ 2017/08/30/dga-classification-and-detection-for-automated-malware-analysis/, truy nhập tháng 2.2019. [4] K. Alieyan, A. Almomani, A. Manasrah and , M.M. Kadhum, "A survey of botnet detection based on DNS," Nat. Comput. Appl. Forum, Vols. 28, 1541-1558., 2017. [5] X. Li, J. Wang and X. Zhang, "Botnet Detection Technology Based on DNS.," J. Future Interne, vol. 55, no. doi:10.3390/fi9040055, p. 9, 2017. [6] Perdisci R., Corona I., Dagon D. et al, "Detecting malicious flux service networks through passive analysis of recursive DNS traces.," Computer Security Applications Conference, 2009. ACSAC‟09. pp. 311-320, 2009. [7] Yadav S, Reddy AKK, Reddy A, Ranjan S, "Detecting algorithmically generated malicious domain names," Proceedings of the 10th ACM SIGCOMM conference on Internet measurement, vol. ACM, pp. 48-61, 2010. [8] Stalmans, E., Irwin, B., "A framework for DNS based detection and mitigation of malware infections on a network," IEEE Information Security South Africa, pp. 1-8, 2011. [9] Bilge L., Kirda E., Kruegel C. và cộng sự, "EXPOSURE: Finding Malicious Domains Using Passive DNS Analysis," NDSS, 2011. [10] Nguyễn Trọng Hưng, Hoàng Xuân Dậu, Vũ Xuân Hạnh, "Phát hiện Botnet dựa trên phân loại tên miền sử dụng các kỹ thuật học máy," Tạp chí Thông tin và Truyền thông, trang 32-40, 12/2018. [11] Hoang X.D. and Nguyen Q.C, Botnet Detection Based On Machine Learning Techniques Using DNS Query Data, Future Internet, 2018, 10, 43; doi:10.3390/fi10050043. [12] A. Smola and S. Vishwanathan, "Introduction to Machine Learning," Cambridge University Press: Cambridge, UK, 2008.
  10. 378 PHÁT HIỆN DGA BOTNET SỬ DỤNG KẾT HỢP NHIỀU NHÓM ĐẶC TRƯNG PHÂN LOẠI TÊN MIỀN [13] DN Pedia, [Online]. Available: https://dnpedia.com/tlds/topm.php. [Accessed 1 2019]. [14] NetLab 360, [Online]. Available: https://data.netlab.360.com/dga/. [Accessed 1 2019]. [15] Truong DT, "Detecting domain-flux botnet based on DNS traffic features in managed network," SECURITY AND COMMUNICATION NETWORKS, vol. Security Comm. Networks, 2016. DETECTING DGA BOTNETS USING MULTIPLE CLASSIFICATION FEATURES OF DOMAIN NAMES Vu Xuan Hanh, Hoang Xuan Dau ABSTRACT: In recent years, botnets have become one of the leading information security risks because they are constantly evolving in both scale and sophistication. Many types of botnets use DGA techniques to generate and register many different random domain names for their command and control servers (C&C) against being controlled. Analysis of domain name queries sent to DNS systems can help detect botnet activities because bots existing in the network also continuously use DGA techniques to generate domain names and queries the DNS system to find the IP address of C&C servers. The DGA botnet detection models are based on the classification of domain names automatically generated by botnets with normal domain names that have been researched and proposed. This paper proposes to add a group of 4 new domain classification features that are combined with other 3 groups of 18 features to improve the detection efficiency of a machine learning-based DGA botnet detection model. Test results show that the new classification feature group helps significantly increase the detection accuracy and reduce false detection rates.
nguon tai.lieu . vn