具有动态种子的 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

相关文章

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

mybatis-plus 实现查询表名动态修改的示例代码

《mybatis-plus实现查询表名动态修改的示例代码》通过MyBatis-Plus实现表名的动态替换,根据配置或入参选择不同的表,本文主要介绍了mybatis-plus实现查询表名动态修改的示... 目录实现数据库初始化依赖包配置读取类设置 myBATis-plus 插件测试通过 mybatis-plu

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine