《Elastic(中国)产品应用实战》—— 一、为DGA检测整合监督式和非监督式Machine Learning(上)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 《Elastic(中国)产品应用实战》—— 一、为DGA检测整合监督式和非监督式Machine Learning(上)

我们极为兴奋地推出首款监督式ML和安全集成方案!今天,我们将正式发布监督 式ML解决方案包,旨在检测网络数据中的域名生成算法DGA活动。


除了配备经充分训练的检测模型以外,我们的版本还提供采集管道ingest pipeline 配置、异常检测作业,以及有助于顺利轻松地完成从设置到DGA检测这一过程的检 测规则。导航至检测规则库查看如何开始使用监督式Machine Learning来检测您 网络中的DGA活动,并立即开始免费试用Elastic安全。


1. DGA:分解


域名生成算法DGA是一种由众多恶意软件创建者所利用的技术,旨在确保避开 防御措施而感染客户端机器。这一技术企图通过使用成百上千或成千上万随机生成 的域名(最终解析为C&C服务器的IP地址)来隐藏受感染客户端机器与命令和控 制C&CC2服务器之间的通信。


为了便于以可视化的方式理解DGA攻击的过程,想象一下,你是战场上的一名士 兵。像许多士兵一样,你拥有通过无线电频率进行通信的通信设备。你的敌人可能 试图通过干扰你的无线电频率来干扰你的通信。应对这种情况的方法之一是采用跳 频技术,即在传输过程中利用载波频率不断跳变的无线电系统。对敌人来说,频率 变化似乎是随机且不可预测的,所以很难进行干扰。


DGA就像是恶意软件的一个跳频通信信道。它们频繁更换域名,如此一来,通过DNS 域名屏蔽来阻断恶意软件C2通信信道变得不可行。因为会有太多随机生成的DNS 域名,因而难以试着识别并阻断它们。


该技术早在2009年就在恶意软件领域强势登场,当时“Conficker”蠕虫开始使用 大量随机生成的域名进行通信。安全研究人员团队通过关闭蠕虫用于通信的DNS域 名来中断其C2信道,之后蠕虫创建者开发了这一应对方案。在2017WannaCry 勒索软件席卷全球时,还执行了 DNS缓解计划。


2. “鱼目混珠”


如果隐藏一棵树的最佳地点是森林,那么恶意软件运营商早就认识到,与正常的网 络流量混在一起是躲过检测的最佳方法之一。带有随机生成域名的HTTP请求是网 络安全监测和检测的一大难题。


在现代网络中,HTTP流量庞大,很难实现人工审查。一些恶意软件和机器人具有异 常用户代理字符串,可使用搜索规则发出与其相关的警报,但恶意软件创建者可以 很轻松地利用看起来与Web浏览器没什么区别的用户代理字符串。


随着移动网络和物联网的兴起,用户代理字符串数量变得如此庞大,以致于人工审 查可疑活动也变得不可行。长期以来,Web代理始终通过分类来查找已知可疑的 URL,但是DGA域名如此众多且"短寿,使其通常未经分类。威胁情报可以识别 与已知恶意软件家族和活动相关的IP地址和HTTP请求但这些很容易被恶意软件 运营商篡改,当我们对其进行搜索时,这些列表往往已经过时了。


众多组织收集的网络流量庞大,而且DGA生成的域名具有随机性,因此,基于规则 的技术很难检测这种活动,而我们的监督式Machine Learning模型是不二之选! Elastic DGA检测ML模型采用推理,将在其被采集至Elasticsearch集群时检查 packetbeat DNS数据,以自动确定哪些是潜在的恶意域名。按照下节中的步骤开始使用。

3. 开始使用


为了在安全应用程序中开始使用DGA检测,我们已向公开可用的规则存储库发布 组特性,以便将Machine Learning模型导入Elastic Stack这一存储库不仅为我 们的社区提供了威胁检测的协作场地,而且还充当了共享测试和验证规则所需工具 的场所。


这个规则工具包的一部分是CLI 命令行接口既可用于测试规则还可与堆栈进 行交互。例如,我们已发布了各种Python库来与Kibana API进行交互。对于简化 导入模型依赖项以使规则可操作的过程,这至关重要。若要开始扩充DNS数据并接 收DGA活动的警报请遵循以下三个步骤 


步骤一:导入模型


首先必须将DGA模型、简单脚本和采集处理器导入堆栈。目前,DGA模型及任 何用于异常检测的非监督式模型后续会有更多均可以在采用github版本的检测 规则库中可用。若要上传,运行下面的CLI命令:

python -m detection_rules es <args_or_config> experimental setup-dga-model -t <release-tag>

上传后您将需要更新packetbeat配置,因为该模型将使用DGA评分扩充 packetbeat DNS事件。这可通过在Elasticsearch输出配置中添加以下额外配置轻 松实现:

output.elasticsearch:
hosts: [''your-hostname:your-port'']
pipeline: dns_enrich_pipeline

然后,监督式模型将分析并扩充Packetbeat DNS事件其中包含以下ECS字段:

dns.question.name
dns.question.registered_domain

然后,模型将这些字段添加至已处理的DNS事件中:

image.png

 扩充后的DNS数据的示例性截图如下所示:

image.png

注意:如需更多详情,请参阅检测规则自述文件。


4. 关于 DGA 规则


现在,让我们来看看部分检测DGA活动并发出相关警报的条件搜索规则。解决方案 包中提供两条搜索规则,可在Elastic Security应用程序的检测引擎中启用并运行


Machine Learning Detected a DNS Request Predicted to be a DGA Domain;

Machine Learning Detected a DNS Request With a High DGA Probability Score


第一条规则匹配任何DGA预测值为1DNS事件表明该DNS域名很可能是域 名生成算法的结果,因此是可疑的。这里的规则仅用于查找以下条件:

event.category:network and
network.protocol:dns and ml_is_dga.malicious_prediction:1

第二条规则匹配任何DGA概率评分超过0.98DNS事件表明该DNS域名很可 能是域名生成算法的结果,因此是可疑的。这里的规则仅用于查找以下条件:

event.category:network and
network.protocol:dns and ml_is_dga.malicious_probability > 0.98

Elastic检测引擎中的所有规则一样它们可以分叉fork打分支仓库并根据 局部特性进行定制。如果您发现另一个概率评分更适用于您的DNS事件,则可以向 上或向下调整第二条规则中的概率评分。如果您希望提高警报队列中DGA检测的 优先级,可以增加任何一条规则的风险评分。可将例外情况添加至规则中,以忽略 误报情况,例如可能使用伪随机域名的内容分发网络CDN域名。


我们将要探讨的另一种未来可能性是使用事件查询语言EQL), EQL采用多变量相 关性查找异常集群或基于搜索的警报集群。例如,如果我们发现参与可能的DGA活 动的主机发来的警报集群,那么就更有信心检测到需要引起注意的重大恶意检测结果。


这一集群可以包含DGA警报及诸如罕见进程、网络进程、域名或URL等其他异常 检测警报。这些额外的异常检测结果由Elastic Security应用程序中的Machine Learning方案包库生成。


步骤二:导入规则


DGA方案包中的规则可使用检测规则CLI (采用.toml格式)中的Kibana上传规则 功能导入。由于检测规则库版本中提供的规则采用.比利格式,因此只需运行以下命 令即可从规则库上传规则:

python -m detection_rules kibana upload-rule -h
Kibana client:
Options:
--space TEXT Kibana space
-kp, --kibana-password TEXT
-ku, --kibana-user TEXT
--cloud-id TEXT
-k, --kibana-url TEXT
Usage: detection_rules kibana upload-rule [OPTIONS] TOML_FILES...
Upload a list of rule .toml files to Kibana.
Options:
-h, --help Show this message and exit.
-h, --help Show this message and exit.

步骤三:启用规则并从中获益


由于我们已将经充分验证的监督式ML模型导入至堆栈、DNS事件得到扩充且相关 规则亦可供使用,那么,接下来仅需确认相关规则已启用并等待警报!


在检测引擎中查看该规则时,可确认该规则是否已激活,如下所示: 现在等待警报。

image.png

警报生成后,您便可以通过时间线功能来调查DNS事件并着手展开 相关调查。

image.png

然而,Machine Learning模型都并非无懈可击有些良性域名将被错误地标记我 们称之为误报。在下一节中,我们将探究如何利用预先配置的异常检测任务及这一 版本附带的相关规则来排除误报。


更多精彩内容,欢迎观看:

《Elastic(中国)产品应用实战》—— 一、为DGA检测整合监督式和非监督式Machine Learning(下):https://developer.aliyun.com/article/1220965?spm=a2c6h.13148508.setting.14.653f4f0eL3UEOo

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
前端开发 JavaScript Java
基于springboot的医院门诊管理系统
就此系统开发之前,对医院进行了对于这个系统的功能需求进行了解,主要围绕患者挂号、就诊,体检,医生门诊,药房、药库管理等功能的实现,医院管理系统不仅仅只是针对医院功能的管理,更是将患者的详细信息、医院的门诊信息、医生的诊断信息、药库的药品信息等等都列为此次系统将要实现的功能。因此,医院管理系统的开发会使医院更加方便快捷高效的医生患者进行管理,这种轻便快捷、成本低廉、应用性强的中小型医院管理系统既方便了医院的管理也方便了医患之间的操作。
基于springboot的医院门诊管理系统
|
应用服务中间件 nginx
nginx优化:URI过长或request header过大导致400或414报错
当出现URI过长或请求头过大导致400或414报错时,可以通过以下方式对Nginx进行优化: 1. 调整client_max_body_size参数:该参数用于限制请求体的大小。默认情况下,Nginx的client_max_body_size参数设置为1M。如果请求体超过这个大小,Nginx会返回400错误。您可以根据实际需求适当增加这个值,例如设置为10M或更大。 ``` http { client_max_body_size 10M; } ``` 2. 调整large_client_header_buffers参数:该参数用于调整请求头缓冲区的大
7223 0
Windows下的CMake下载与安装
Windows下的CMake下载与安装
Windows下的CMake下载与安装
|
Linux 文件存储 开发工具
贝锐花生壳内网穿透:无需公网IP,远程访问自建WebDAV文件共享!
WebDAV共享协议支持几乎所有系统和设备,极大方便了文件共享。群晖NAS等设备可通过安装WebDAV套件实现文件共享,结合花生壳内网穿透服务,只需三步即可实现远程访问。具体步骤包括:1. 安装花生壳客户端;2. 登录并配置映射;3. 创建映射,生成远程访问地址。这样,用户可以随时随地访问和管理文件资源。
639 3
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
496 10
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
安全 Java 数据安全/隐私保护
Stirling-PDF:一款优秀的开源PDF处理工具
Stirling-PDF是一个基于spring-boot开发的开源项目,旨在提供一个功能强大的基于Docker的本地托管PDF操作工具。它使您能够对PDF文件进行多种操作,包括拆分、合并、转换、重新组织、添加图片、旋转、压缩等。该本地托管应用最初由ChatGPT完全开发,并已发展成一个功能齐全的工具,可满足您的各种PDF需求。
5972 3
|
存储 监控 关系型数据库
zabbix 入门教程
Zabbix是一个开源的监控系统,它可以用来监控网络、服务器、虚拟机和云资源等。以下是从入门到掌握Zabbix的一些基本步骤:
1237 0
|
数据库 网络虚拟化 数据安全/隐私保护
【网络】· 路由交换设备远程管理,以及VLAN的配置
【网络】· 路由交换设备远程管理,以及VLAN的配置
699 0
|
IDE 数据库连接 数据库
基于MFC和Access数据库实现的学生学习成绩信息管理系统
基于MFC和Access数据库实现的学生学习成绩信息管理系统
471 0
基于MFC和Access数据库实现的学生学习成绩信息管理系统
|
SQL 缓存 算法
14.【clickhouse】ClickHouse从入门到放弃-实战
【clickhouse】ClickHouse从入门到放弃-实战
14.【clickhouse】ClickHouse从入门到放弃-实战

热门文章

最新文章

下一篇
开通oss服务