Tìm kiếm
Đóng hộp tìm kiếm này.

DGA là gì và làm thế nào để phát hiện chúng?

Thuật toán tạo tên miền (DGA) là một loại thuật toán tạo ra số lượng lớn tên miền theo định kỳ và tự động. Thông thường, các miền được phần mềm độc hại và botnet sử dụng làm điểm hẹn để tạo điều kiện cho việc gọi lại các máy chủ Command & Control của tác nhân độc hại. DGA cho phép phần mềm độc hại tạo ra hàng chục nghìn tên miền mỗi ngày, phần lớn chúng chưa được đăng ký. Một số lượng lớn các miền chưa đăng ký được sử dụng để giả mạo các miền đã đăng ký, cho phép các mạng botnet bị lây nhiễm trốn tránh sự phát hiện và ngăn chặn bằng hệ thống phát hiện bảo mật dựa trên chữ ký hoặc IP.

Họ phần mềm độc hại đầu tiên được biết đến sử dụng DGA là Kraken vào năm 2008. Cuối năm đó, sâu Conflicker đã đẩy chiến thuật DGA trở nên nổi tiếng. Ngay cả sau 10 năm, vẫn có thể tìm thấy Conflicker hoặc một trong các biến thể của nó trên một số mạng hiện nay.

Cùng với sự gia tăng ngày càng nhiều của phần mềm độc hại, việc sử dụng DGA đã trở nên phổ biến hơn.

Mục tiêu của việc phát hiện DGA

Vì hoạt động DGA là một chỉ báo đáng kể về sự xâm phạm, nên việc phát hiện bất kỳ hoạt động nào như vậy trên mạng của bạn trở nên quan trọng. Có ba cấp độ phát hiện DGA, với mỗi cấp độ tiếp theo tương quan với sự gia tăng mức độ nghiêm trọng. Việc phát hiện ở các cấp độ sau khó hơn, nhưng cũng quan trọng hơn.

Nếu DGA được phát hiện, điều đó có nghĩa là một hoặc nhiều hệ thống của bạn đã bị nhiễm phần mềm độc hại dựa trên DGA và đã trở thành mạng botnet. Một số hành động cần được thực hiện. Mục tiêu đầu tiên là xác định các hệ thống bị ảnh hưởng, làm sạch hoặc cách ly chúng đúng cách để ngăn chặn sự leo thang.

Mục tiêu tiếp theo là xác định xem một tên miền DGA nhất định đã được đăng ký hay chưa. Nếu miền đã được đăng ký, miền đó đã trở thành một máy chủ Command & Control đang hoạt động, gây rủi ro lớn cho mạng của bạn. Các hệ thống bị nhiễm, hiện là mạng botnet, có thể sử dụng các máy chủ này để gọi về nhà và nhận lệnh từ kẻ tấn công độc hại. Do đó, thành phần thứ hai của hệ thống phát hiện DGA hiệu quả là khả năng phân biệt các miền đã đăng ký với các miền chưa đăng ký.

Ví dụ, một DGA có thể tạo ra 1000 tên miền, từ xyzwer1, xyzwer2…. sang xyzwer1000. Tin tặc chỉ cần đăng ký một miền, tức là xyzwer500, không phải 999 miền khác. Nếu miền đã đăng ký và IP liên quan của nó có thể được xác định, thông tin có thể được sử dụng để chặn kênh liên lạc giữa hệ thống được nhắm mục tiêu và máy chủ Command & Control. Ngoài ra, thông tin cần được phổ biến cho tất cả các hệ thống ngăn chặn hoặc phát hiện khác tại chỗ để cản trở việc gọi lại đến máy chủ đó từ bất kỳ hệ thống nào trong mạng.

Mục tiêu cuối cùng nhưng quan trọng nhất của hệ thống phát hiện DGA là xác định xem việc gọi lại có thành công với các miền đã đăng ký hay không và liên hệ đã được thực hiện giữa (các) hệ thống bị nhiễm và máy chủ Command & Control. Nếu hoạt động như vậy được phát hiện, một số thiệt hại có thể đã được thực hiện. Có lẽ phần mềm độc hại trong mạng của bạn đã được cập nhật hoặc phần mềm độc hại mới đã được cài đặt. Dữ liệu nhạy cảm có thể đã bị loại bỏ.

DGA Detection hoạt động như thế nào?

Hoạt động DGA được phát hiện bằng cách bắt và phân tích các gói mạng, thường theo năm bước chung.

Bước 1 - Phát hiện ứng dụng DNS
Quá trình phát hiện bắt đầu thông qua yêu cầu DNS và / hoặc thông báo phản hồi. DNS là một giao thức Internet cơ bản và hầu hết các tường lửa đều có chính sách cho phép lưu lượng DNS gửi đi trên cổng dành riêng của nó 53. Tuy nhiên, tin tặc có thể lợi dụng cổng 53 để gửi lưu lượng của nó mà không tuân theo định dạng thông báo DNS tiêu chuẩn. Cuộc tấn công này được gọi là đường hầm DNS. Công cụ kiểm tra gói tin sâu (DPI) được khuyến nghị để xác định các ứng dụng DNS chính xác hơn.

Bước 2 - Trích xuất tên miền
Sau khi ứng dụng mạng được xác định là DNS, tên miền trong thông báo phản hồi và truy vấn DNS cần được trích xuất. Để trích xuất đúng tên miền, nội dung của thông báo DNS cần được phân tích cú pháp cẩn thận và cần có công cụ DPI để thực hiện tác vụ này.

Bước 3 - Phát hiện bất kỳ DGA nào
Phân tích cần được thực hiện trên các miền được trích xuất từ ​​thông báo DNS để xác định xem chúng có phải là DGA hay không. Đây có lẽ là bước phức tạp nhất. Thách thức là giảm cả dương tính giả cũng như âm tính giả. Các cơ chế phát hiện đã phát triển đáng kể trong hơn 10 năm qua.
Một số cơ chế dựa trên Shannon Entropy tương đối đơn giản.
https://www.splunk.com/blog/2015/10/01/random-words-on-entropy-and-dns.html
Một số cơ chế dựa trên các Ngrams phức tạp hơn như được trình bày bởi Fyodor trong hội nghị Hitb
Gần đây, với việc học máy trở nên phổ biến, các phương pháp luận của nó cũng đã được áp dụng để phát hiện DGA. Máy học có thể kết hợp các tính năng của Ngrams, Shannon Entropy, cũng như độ dài của tên miền để ảnh hưởng đến quyết định. Một số mô hình học máy đã được thử. Có một bài đăng blog rất hay của Jay Jacobs vào năm 2014 mô tả quá trình này.
Đây là một máy dò DGA mã nguồn mở khác dựa trên Học máy với Chuỗi Markov:
https://github.com/exp0se/dga_detector

Bước 4 - Phát hiện miền DGA đã đăng ký
Để phát hiện xem một tên miền DGA đã được đăng ký hay chưa, cần phải kiểm tra các phản hồi DNS. Chỉ theo dõi các yêu cầu DNS là không đủ - hệ thống phát hiện nên theo dõi toàn bộ giao dịch để tạo điều kiện tương quan giữa các phần thông tin.

Bước 5 - Phát hiện lưu lượng truy cập đến các miền DGA đã đăng ký
Khi hầu hết các hệ thống phát hiện DGA hiện tại tập trung vào việc phát hiện xem một tên miền có phải là một miền DGA hay không, họ thường quên câu hỏi cuối cùng, câu hỏi quan trọng nhất: có bất kỳ lưu lượng truy cập nào đã được gửi đến các miền DGA đã đăng ký hay không? Để phát hiện điều này kịp thời, việc phát hiện miền DGA phải được kết hợp chặt chẽ với việc kiểm tra lưu lượng mạng. Kết quả cần được gửi lại cho cơ quan thanh tra giao thông ngay lập tức trước khi thực hiện bất kỳ thiệt hại nào.

Bước 6 - Chặn lưu lượng truy cập đến các miền DGA đã đăng ký
Mặc dù về mặt kỹ thuật không phải là một phần của phát hiện, nhưng nếu có tích hợp với hệ thống ngăn chặn như Tường lửa hoặc IPS, một quy tắc nên được chèn ngay lập tức để chặn tất cả lưu lượng truy cập đến các miền đã đăng ký.

Một hệ thống phát hiện DGA tuyệt vời nên thực hiện tất cả 5 bước. Một hệ thống phát hiện DGA xuất sắc cũng nên bao gồm Bước 6. Thật không may, hầu hết các hệ thống phát hiện DGA ngày nay chỉ dừng lại ở bước 3 hoặc bước 4.

Kết luận
Bởi vì DGA rất khó bị phát hiện với hệ thống phát hiện hoặc ngăn chặn dựa trên chữ ký hoặc danh tiếng, chúng đã trở nên khá phổ biến với các nhà phát triển phần mềm độc hại.
Cần có hệ thống phát hiện thông minh để thực hiện việc phát hiện. Một hệ thống phát hiện DGA xuất sắc phải trích xuất thông tin tên miền từ các giao dịch DNS, thực hiện phân tích kỹ lưỡng để phát hiện trạng thái DGA, kiểm tra trạng thái đăng ký của các miền bị nghi ngờ, tương quan với kiểm tra lưu lượng mạng để đánh giá mức độ xâm phạm và tích hợp lý tưởng với các hệ thống phòng ngừa để tránh xa hơn thỏa hiệp. Để giảm cả kết quả dương tính giả cũng như âm tính giả, việc học máy cần được xem xét nghiêm túc. Chỉ với trí thông minh toàn diện và lan tỏa ở mọi giai đoạn, mối đe dọa mới có thể thực sự được cải thiện.

Thông tin

Kho lưu trữ trong Github của Andrey Abakumove chứa các thuật toán tạo tên miền, cũng như từ điển các tên miền độc hại.

Di chuyển về đầu trang