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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 《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

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
6天前
|
机器学习/深度学习 存储 算法
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)(下)
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)
10 0
|
6天前
|
机器学习/深度学习 存储 数据可视化
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)(上)
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)
16 0
|
1月前
|
机器学习/深度学习 人工智能
AI模型提早5年预警乳腺癌,MIT研究登Science获LeCun转发
【9月更文挑战第1天】麻省理工学院(MIT)研究人员开发的深度学习AI模型,在乳腺癌早期预警方面取得突破性进展,相比传统方法提前5年预警癌症,准确率超过90%。此成果不仅在医学界引起轰动,还获得了人工智能领域知名学者Yann LeCun的高度评价。尽管面临准确性和可解释性的挑战,但该研究展示了AI在医疗领域的巨大潜力,有望革新乳腺癌的早期筛查和诊断方式。论文详情见[链接]。
39 3
|
2月前
|
机器学习/深度学习 运维 算法
【阿里天池-医学影像报告异常检测】3 机器学习模型训练及集成学习Baseline开源
本文介绍了一个基于XGBoost、LightGBM和逻辑回归的集成学习模型,用于医学影像报告异常检测任务,并公开了达到0.83+准确率的基线代码。
55 9
|
机器学习/深度学习 人工智能 监控
AI:Algorithmia《2020 state of enterprise machine learning—2020年企业机器学习状况》翻译与解读
AI:Algorithmia《2020 state of enterprise machine learning—2020年企业机器学习状况》翻译与解读
AI:Algorithmia《2020 state of enterprise machine learning—2020年企业机器学习状况》翻译与解读
|
弹性计算 运维 供应链
《Elastic(中国)产品应用实战》—— 一、为DGA检测整合监督式和非监督式Machine Learning(下)
《Elastic(中国)产品应用实战》—— 一、为DGA检测整合监督式和非监督式Machine Learning(下)
|
机器学习/深度学习 SQL 人工智能
AI:Algorithmia《2021 enterprise trends in machine learning 2021年机器学习的企业趋势》翻译与解读
AI:Algorithmia《2021 enterprise trends in machine learning 2021年机器学习的企业趋势》翻译与解读
AI:Algorithmia《2021 enterprise trends in machine learning 2021年机器学习的企业趋势》翻译与解读
|
机器学习/深度学习 人工智能 算法
Advanced Sci | 打破生成式深度学习限制:低量数据下的“one-shot”药设计法
Advanced Sci | 打破生成式深度学习限制:低量数据下的“one-shot”药设计法
168 0
Advanced Sci | 打破生成式深度学习限制:低量数据下的“one-shot”药设计法
|
机器学习/深度学习 人工智能 数据可视化
Nat.Commun. | AI指导发现炎症性肠病保护治疗方法
Nat.Commun. | AI指导发现炎症性肠病保护治疗方法
166 0
Nat.Commun. | AI指导发现炎症性肠病保护治疗方法
|
算法 数据挖掘 数据库
Nat. Commun. | 识别药物靶点的贝叶斯机器学习方法
Nat. Commun. | 识别药物靶点的贝叶斯机器学习方法
281 0
Nat. Commun. | 识别药物靶点的贝叶斯机器学习方法