具有动态种子的 DGA 系列:DNS 流量中的意外行为

2024-08-24 23:12

本文主要是介绍具有动态种子的 DGA 系列:DNS 流量中的意外行为,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

在这篇博文中,我们将简要概述 DGA,然后分享一些有趣的发现。

Akamai 安全情报小组能够分析来自CacheServe DNS 服务器的 DNS 查询的匿名日志。作为我们僵尸网络检测工作的一部分,我们观察和监控了 100 多个已知 DGA 家族的实际行为。

我们发现,动态种子 DGA(DGA 的一个子集)的行为通常与逆向工程 DGA 算法本身所暗示的行为截然不同。更准确地说,我们看到 DGA 域名在预期生成日期之前被激活。

什么是域生成算法?

恶意软件(例如僵尸网络)通常需要与集中式服务器通信以接收命令或更新。

DGA是恶意软件用来生成大量半随机域名的算法。

受感染的设备会定期尝试连接到 DGA 提供的整个算法生成的域集。只需成功访问一个域即可与 C2 服务器建立连接。这使得网络安全研究人员更难切断 C2 通信。

工作原理

例如,想象一个僵尸网络使用假设的 DGA 家族或变体,每天生成 500 个恶意域名。

使用此 DGA 系列的受感染设备每天都会查询这 500 个域名。僵尸网络的 C2 服务器每天都会生成相同的 500 个域名(我们假设使用的是相同的种子 — 稍后会详细介绍)。但是,恶意行为者只需控制这 500 个域名中的 1 个即可与受感染的机器(机器人)建立通信。

有时种子会发生变化,从而生成一组新的域名,然后重新开始这个过程。这使得安全研究人员很难阻止恶意流量,因为域名经常变化,而且通常是随机的域名,例如“ghlidae[.]com”。

顶级域名 (TLD) 是硬编码的,并且大多限于那些获取成本低廉的 TLD。

目前存在许多不同的 DGA。一旦安全社区发现一种新算法(有时设法对其进行逆向工程),通常会为其赋予一个“家族名称”。一些最著名的 DGA 家族包括 Conficker、Mirai和 CryptoLocker。

DGA 的历史

僵尸网络、犯罪软件和

这篇关于具有动态种子的 DGA 系列:DNS 流量中的意外行为的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103875

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

Python动态处理文件编码的完整指南

《Python动态处理文件编码的完整指南》在Python文件处理的高级应用中,我们经常会遇到需要动态处理文件编码的场景,本文将深入探讨Python中动态处理文件编码的技术,有需要的小伙伴可以了解下... 目录引言一、理解python的文件编码体系1.1 Python的IO层次结构1.2 编码问题的常见场景二

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

关于DNS域名解析服务

《关于DNS域名解析服务》:本文主要介绍关于DNS域名解析服务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录DNS系统的作用及类型DNS使用的协议及端口号DNS系统的分布式数据结构DNS的分布式互联网解析库域名体系结构两种查询方式DNS服务器类型统计构建DNS域

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET