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

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 HIN DGA BOTNET SDNG KT HP NHIU  
NHÓM ĐẶC TRƯNG PHÂN LOẠI TÊN MIN  
Vũ Xuân Hạnh 1, Hoàng Xuân Du2  
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  
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 ngng phát trin vcquy mô và mức đtinh vi. Nhiu dng botnet sdng kthuật DGA để sinh và đăng ký nhiều tên min  
ngu nhiên khác nhau cho máy chlệnh và điều khin (C&C) ca chúng nhm chng li vic bkim soát. Vic phân tích phát hin  
các tên min truy vn hthng DNS có thgiúp phát hin các hoạt động ca botnet do các bot tn ti trong hthng mạng cũng  
liên tc sdng kthuật DGA để sinh tên min và truy vn hthống DNS để tìm địa chIP ca các máy chC&C. Các mô hình  
phát hin DGA botnet da trên phân phân loi tên min do botnet sinh tự động vi tên miền bình thường đã được nghiên cứu, đề  
xut. Bài báo này đề xut bsung mt nhóm gồm 4 đặc trưng phân loại tên min mi kết hp vi 3 nhóm gồm 18 đặc trưng đã có  
nhm ci thin hiu quphát hin ca mô hình phát hin DGA botnet da trên hc máy. Các kết quthnghim cho thy, nhóm  
đặc trưng phân loi mới giúp tăng đáng kể độ chính xác phát hin và gim tlphát hin nhm.  
Từ khóa: DGA botnet, phát hin DGA botnet, mô hình phát hin 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. Mi 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 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.  
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) << 17)  
month = ((month ^ 4 * month) >> 25) ^ 16 * (month & 0xFFFFFFF8)  
day = ((day ^ (day << 13)) >> 19) ^ ((day & 0xFFFFFFFE) << 12)  
domain += chr(((year ^ month ^ day) % 25) + 97)  
Trong đó:  
Toán tử „^‟: Phép mũ.  
Toán tử „%‟: Phép chia lấy phần dư.  
Toán tử „>>‟: Phép dịch phải bit.  
Toán tử „<<‟: Phép dịch trái bit.  
Toán tử „&‟: Phép và logic (AND).  
Hình 1 biểu diễn cơ chế botnet sử dụng DGA để tự động sinh và đăng ký các tên miền cho máy chủ C&C của  
mình. Theo đó, máy chủ C&C và các bot sử dụng cùng một thuật toán DGA với cùng một nhân (seed) nên chúng có  
thể sinh ra cùng một tập các tên miền. DGA botnet thường sử dụng ngày giờ như là nhân để khởi tạo thuật toán sinh  
tên miền và như vậy, DGA botnet tạo một tập các tên miền trong mỗi ngày nó hoạt động. Để khởi tạo kết nối đến máy  
chủ C&C, một bot trước hết cần thực thi thuật toán DGA để sinh một tên miền và tên miền này cũng có thể được sinh  
tự động bởi máy chủ C&C do cả máy chủ C&C và bot sử dụng chung một thuật toán DGA và một nhân. Sau khi tạo  
được tên miền, bot sử dụng hệ thống DNS để phân giải tên miền thành địa chỉ IP của máy chủ C&C. Nếu quá trình  
phân giải tên miền không thành công, bot sử dụng DGA để sinh một tên miền mới và lặp lại yêu cầu phân giải địa chỉ.  
Nếu quá trình phân giải tên miền thành công, bot sử dụng địa chỉ IP để kết nối đến máy chủ C&C để nhận các lệnh và  
điều khiển từ botmaster.  
Hình 1. Cơ chế botnet sử dụng DGA để tự động sinh và đăng ký các tên miền cho máy chủ C&C [3].  
B. Một số kỹ thuật phát hiện DGA botnet  
Liên quan đến việc giám sát các truy vấn hệ thống DNS cho phát hiện DGA botnet, một số công bố đề xuất các  
kỹ thuật phát hiện các tên miền được tạo ra tự động sử dụng các thuật toán, hoặc tên miền được mã độc sử dụng. Theo  
đó, Yadav và cộng s[7] đề xuất phương pháp phân biệt các tên miền sinh tự động bằng thuật toán thường được sử  
dụng trong các botnet với tên miền hợp lệ dựa trên phân tích sự phân bố các ký tự trong tên miền. Cũng với mục đích  
tương tự, Stalmans và cộng sự [8] sử dụng phương pháp cây quyết định C5.0 và thống kê Bayesian để phân loại các tên  
miền sinh tự động với các tên hợp lệ.  
Với cách tiếp cận khác, Bilge và cộng s[9] giới thiệu hệ thống EXPOSURE cho phép giám sát lưu lượng truy  
vấn DNS trên diện rộng để phát hiện các tên miền có liên quan đến các hành vi độc hại. EXPOSURE sử dụng 15 thuộc  
tính của tên miền để phân biệt các tên miền đáng ngờ với tên miền hợp lệ. Các kết quả thử nghiệm cho thấy hệ thống  
có khả năng mở rộng tốt và nhận dạng được các tên miền mới có liên quan đến các hành vi độc hại, như chúng được sử  
dụng cho máy chủ C&C, cho gửi thư rác và sử dụng cho các website lừa đảo.  
Các nghiên cứu trước đây của chúng tôi [10][11] đề xuất mô hình phân loại tên miền DGA botnet dựa trên các  
kỹ thuật học máy sử dụng dữ liệu truy vấn DNS. Các tên miền trước hết được loại bỏ phần tên miền cấp cao nhất và  
sau đó mỗi tên miền được chuyển đổi thành một vector gồm 18 đặc trưng sử dụng cho các khâu huấn luyện và phát  
hiện. Mô hình sử dụng tập dữ liệu gồm các tên miền bình thường, hay lành tính và các tên miền botnet đã được gán  
nhãn cho quá trình huấn luyện và phát hiện. Kết quả thử nghiệm cho thấy độ chính xác phát hiện chung tốt nhất đạt  
được là 93,21% với thuật toán học máy Rừng ngẫu nhiên.  
Trong bài báo này, chúng tôi mở rộng nghiên cứu trước đây của nhóm bằng việc bổ sung thêm 4 đặc trưng huấn  
luyện trong mô hình phát hiện DGA botnet [10][11], bao gồm tên miền dạng băm, giá trị dự kiến cho mỗi tên miền, số  
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].  
 
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) index(i) là thứ hạng của n-gram i  
trong TS(n-gram).  
[f3,f11] s(d) 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)  
(5)  
[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))  
[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)  
   ( )  
Vũ Xuân Hạnh, Hoàng Xuân Dậu  
373  
(7)  
[f8,f16] entropy(d) là entropy của tên miền d, được tính theo công thức:  
  ( )  
  ( )  
     ( )  
    
entropy(d) = -  
     (  
)
 
 
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. Hdyre 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. Hpspy 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 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  
Hbotnet  
Tên miền băm botnet sử dng  
cd8f66549913a78c5a8004c82bcf6b01.info  
aa24603b0defd57ebfef34befde16370.cz.cc  
5e6efdd674c134ddb2a7a2e3c603cc14.org  
l54c2e21e80ba5471be7a8402cffb98768.so  
wdd7ee574106a84807a601beb62dd851f0.hk  
jaa12148a5831a5af92aa1d8fe6059e276.ws  
484b072f94637588.net  
bamital  
dyre  
pspy  
3164168f83658393.net  
abfb8a26a85ff915.info  
eef795a4eddaf1e7bd79212acc9dde16.net  
fff1834cbcd5ba96ca75fdae9c44cf5d.net  
35262768764bd6c908c386b532a3dc2f.net  
8c28b41611c50aa0494df096e4d0444b.com  
e8d1e174d60449c80a849936eff4fe9e.com  
3ce623333166e4a227d5eb2fef098f60.com  
omexo  
tinynuke  
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  
p(x ), p(x ),...p(x )  
{
x , x2 ,...xn } và các giá trị xác suất xuất hiện dự kiến tương ứng là {  
}, giá trị dự kiến cho mỗi tên  
1
1
2
n
miền EOD(X) tính được tính theo công thức sau:  
k
(9)  
EOD(X )  
i
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]; 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  
 
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ờ 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] 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  
Số lượng bản ghi lấy từ  
Tập dữ liệu huấn luyện  
và kiểm thử  
Tập nhãn “Good” Tập nhãn “Bad”  
Tập huấn luyện T1  
Tập huấn luyện T2  
Tập huấn luyện T3  
Tập huấn luyện T4  
Tập kiểm thử Test  
100.000  
150.000  
50.000  
100.000  
50.000  
150.000  
200.000  
20.000  
200.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
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
ACC  
(11)  
TP
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
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
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  
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  
5.03%  
8.84%  
2.64%  
5.02%  
Pre  
T1  
T2  
T3  
T4  
95.99%  
95.00%  
95.62%  
96.10%  
3.00%  
1.17%  
6.11%  
2.78%  
94.98%  
91.17%  
97.36%  
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  
4.95%  
8.92%  
2.70%  
5.11%  
Pre  
T1  
T2  
T3  
T4  
96.09%  
94.90%  
95.63%  
96.06%  
2.87%  
1.27%  
6.03%  
2.77%  
95.05%  
91.08%  
97.31%  
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  
3.67%  
7.08%  
1.84%  
3.76%  
Pre  
T1  
T2  
T3  
T4  
96.89%  
95.98%  
96.50%  
96.92%  
2.54%  
0.95%  
5.15%  
2.39%  
96.34%  
92.92%  
98.17%  
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  
3.31%  
6.59%  
1.48%  
3.29%  
Pre  
T1  
T2  
T3  
T4  
97.08%  
96.25%  
96.68%  
97.21%  
2.53%  
0.92%  
5.15%  
2.29%  
96.69%  
93.42%  
98.52%  
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  
3.34%  
6.82%  
1.59%  
3.24%  
Pre  
T1  
T2  
T3  
T4  
97.10%  
96.10%  
96.61%  
97.26%  
2.45%  
0.98%  
5.19%  
2.25%  
96.67%  
93.19%  
98.42%  
96.77%  
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  
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] Cc An toàn thông tin, " Báo cáo An toàn thông tin Vit Nam 2016," Cc An toàn thông tin, 2016.  
[3] E. Durmaz, DGA classification and detection for automated malware analysis, [Online] https://cyber.wtf/  
[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à cng s, "EXPOSURE: Finding Malicious Domains Using Passive DNS  
Analysis," NDSS, 2011.  
[10]Nguyn Trọng Hưng, Hoàng Xuân Dậu, Vũ Xuân Hạnh, "Phát hin Botnet da trên phân loi tên min sdng  
các kthut hc máy," Tp chí Thông tin và Truyn 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.  
             
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  
[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.  
     
pdf 10 trang Thùy Anh 18580 Free
Bạn đang xem tài liệu "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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfphat_hien_dga_botnet_su_dung_ket_hop_nhieu_nhom_dac_trung_ph.pdf