结合遗传算法的XGboost在DNS隧道攻击检测中的应用方法与流程

文档序号:34536331发布日期:2023-06-27 12:33阅读:18来源:国知局
结合遗传算法的XGboost在DNS隧道攻击检测中的应用方法与流程

本申请涉及隧道攻击检测,尤其涉及一种结合遗传算法的xgboost在dns隧道攻击检测中的应用方法。


背景技术:

1、企业内网环境中,dns协议是必不可少的网络通信协议之一,为用户能够访问互联网及内网资源,dns提供域名解析服务。但同时网络设备和防护设备一般很少对dns进行过滤或屏蔽,因此将指令、数据等藏匿于dns协议中进行传输是网络攻击、数据回传的一种较为隐蔽且有效的手段。

2、目前,dns隧道检测主要包含:载荷分析、流量分析。dns的载荷分析主要关注数据包中的数据,born等人使用熵的概念检测dns域名的混乱程度,对于混乱程度较高的,便定义为隧道攻击,qi等人用二元语法词频检测dns报文中域名字母频率,发现正常域名满足zipf定律,相反,dns隧道的域名则满足随机分布,而基于流量的分析主要针对流量特征进行分析,buczak等收集了不同的dns流量特征,包括dns请求包数量、响应时间间隔等。

3、但是上述方法多是基于监控终端请求异常域名长度等规则进行dns检测,攻击者长期渗透,并使用一些软件,通过修改域名长度、请求频率等特征绕过传统的dns隧道检测方法,存在检测误报率高,且容易被绕过、不灵活等问题。


技术实现思路

1、针对现有技术的上述不足,本发明提供一种结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,以解决上述技术问题。

2、本申请提供了一种结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,方法包括:根据预设过滤条件,从采集的流量日志中提取dns数据包;通过遗传算法对dns数据包进行特征处理,以获得对应的dns特征数据;根据dns数据包和dns特征数据生成样本数据;进而将样本数据作为预设xgboost算法的输入,以获得训练好的预设xgboost算法;将获取到的待检测数据作为训练好的预设xgboost算法的输入,以获得输出结果;根据预设分析规则,确定输出结果对应的待检测数据是否为dns隧道攻击。

3、进一步地,采集的流量日志至少包括:dns隐蔽隧道样本日志与正常dns流量样本日志;其中,恶意样本至少包含iodine、dnscat、dns2tcp、cobalt strike 四种。

4、进一步地,预设过滤条件至少包括以下任意一项或多项:基于黑白名单,使用cuckoo filter过滤器进行过滤;其中,白名单为:受信任的域名库,包括alexa提供的全球前10000的域名和forbes提供的全球500强企业web url;黑名单为:安全公司公布的dga家族名单;和/或,使用字符串匹配的方法进行过滤;和/或,使用bloom filter布隆过滤器进行过滤。

5、进一步地,通过遗传算法对dns数据包进行特征处理,以获得对应的dns特征数据,具体包括:获取dns数据包对应的dns请求域名长度、域名段,计算一次会话中请求域名长度的方差、均值以及域名段数量均值,并进行标准化处理,以作为dns特征数据;确定dns数据包对应的一次会话中请求时间和响应时间为dns特征数据;提取dns数据包中报文域名,基于公式:,计算域名的信息熵,其中为第个字符在域名中出现的概率,f为域名中字符分布,n为域名中字符数量,确定信息熵为dns特征数据;提取dns数据包中一次会话payload载荷量,确定一次会话中载荷量的平均值为dns特征数据;提取dns数据包中请求和响应的载荷量,根据公式:,确定请求载荷量和响应载荷量的比值,为dns特征数据;确定dns数据包对应的一次会话中请求报文次数为dns特征数据;确定dns数据包对应的a记录占比、cname记录占比和aaaa记录占比,为dns特征数据;确定dns数据包对应的域名中数字字符所占百分比为dns特征数据;计算dns数据包对应的一次会话中域名中不同字符对应的均值和中位数,确定均值和中位数为dns特征数据;确定dns数据包对应的计算域名中连续辅音字母占比及连续辅音字母长度为dns特征数据。

6、进一步地,根据dns数据包和dns特征数据生成样本数据,具体包括:根据良性dns数据包及其对应的良性dns特征数据,生成良性样本数据;根据恶性dns数据包及其对应的恶性dns特征数据,生成恶性样本数据。

7、进一步地,在将样本数据作为预设xgboost算法的输入之前,方法还包括:确认dns数据包和dns特征数据为样本数据;对样本数据进行二进制编码,获得初始化种群;采用适应度函数值确定初始化种群的适应度,筛除适应度低的个体数据;并根据适应度计算每个个体在下一次更新中被选中的概率;判断满足全局最优解的个体数量,若达到满足全局最优解的个体数量在预设接受范围,则确认获得训练好的预设xgboost算法;若不满足,则更新初始化种群,以进行新一轮训练。

8、进一步地,更新初始化种群,具体包括:根据每个个体在下一次更新中被选中的概率,从初始化种群中选择预设优良个体;基于预设交叉概率和预设优良个体,进行选择交叉运算,以生成新个体数据;基于预设变异操作规则和变异概率,获得新个体数据对应的处理后数据;根据处理后数据,使用复制的方式,生成个复制数据,进而获得更新后的样本数据。

9、进一步地,根据每个个体在下一次更新中被选中的概率,从初始化种群中选择预设优良个体,具体包括:通过公式,计算个体在下一次更新中被选中的概率;其中,为第i个体的适应度;确定概率大于预设概率阈值的个体为预设优良个体,n为个体总数。

10、本领域技术人员能够理解的是,本发明至少具有如下有益效果:

11、(1)使用遗传算法对xgboost模型进行优化,利用概率搜索,有效弥补xgboost参数多造成的调优难、收敛速度慢、容易陷入局部最优解的缺陷。

12、(2)为达到有效检测dns隧道攻击目的,本申请对dns隧道进行分析研究,构建使用cuckoo filter进行查询过滤,降低了后续模型的负荷,缓解了数据不平衡的问题。

13、(3)分析、使用多个特征数据进行数据训练,实现了全方位的检测,降低了数据误报率。



技术特征:

1.一种结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,其特征在于,所述方法包括:

2.根据权利要求1所述的结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,其特征在于,

3.根据权利要求1所述的结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,其特征在于,

4.根据权利要求1所述的结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,其特征在于,通过遗传算法对dns数据包进行特征处理,以获得对应的dns特征数据,具体包括:

5.根据权利要求1或4所述的结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,其特征在于,根据dns数据包和dns特征数据生成样本数据,具体包括:

6.根据权利要求1所述的结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,其特征在于,在将样本数据作为预设xgboost算法的输入之前,所述方法还包括:

7.根据权利要求6所述的结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,其特征在于,更新初始化种群,具体包括:

8.根据权利要求7所述的结合遗传算法的xgboost在dns隧道攻击检测中的应用方法,其特征在于,根据每个个体在下一次更新中被选中的概率,从初始化种群中选择预设优良个体,具体包括:


技术总结
本申请公开了一种结合遗传算法的XGboost在DNS隧道攻击检测中的应用方法,主要涉及DNS隧道攻击检测技术领域,用以解决现有方法检测误报率高、容易被绕过、不灵活等问题。包括:根据预设过滤条件,从采集的流量日志中提取DNS数据包;通过遗传算法对DNS数据包进行特征处理,以获得对应的DNS特征数据;根据DNS数据包和DNS特征数据生成样本数据;进而将样本数据作为预设XGBoost算法的输入,以获得训练好的预设XGBoost算法;将获取到的待检测数据作为训练好的预设XGBoost算法的输入,以获得输出结果;根据预设分析规则,确定输出结果对应的待检测数据是否为DNS隧道攻击。

技术研发人员:苗功勋,路冰,孙琦
受保护的技术使用者:中孚安全技术有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1