更多精彩内容,欢迎观看:
《Elastic(中国)产品应用实战》—— 一、为DGA检测整合监督式和非监督式Machine Learning(上):https://developer.aliyun.com/article/1220971?spm=a2c6h.13148508.setting.14.653f4f0es9KU45
5. 误报?采用异常检测补救措施!
与每一种检测技术一样,总会有一些误报情况。这些误报可能会以CDN流量或自定 义域名的形式出现,看起来是恶意域名,但实际上在该环境中是正常的。为了确保 DGA检测能够适用每个用户环境,我们已创建预先配置的命名为experimental- high-sum-dga-probability的异常检测任务。启用后,这一ML任务会检查监督式 DGA模型生成的DGA评分(没错,就是LM的作用)并为特定源IP地址寻找评分 异常高的异常模式。此等事件会被分配异常评分。
为了最大限度地从异常检测任务中获益,我们将同时发布补充规则:Potential DGA Activity.这将在安全应用程序的检测页面中创建基于异常的警报。
预先配置的异常检测任务和补充规则在我们的检测规则库版本中均可用。
6. 如何选择适合您所在环境的正确配置
首先从监督式DGA模型开始。该模型对通过Packetbeat采集的每个DNS请求进行 分析,并分配一个表明该请求中涉及的域名很可能存在恶意的概率。您可以使用"开始使用(Get started) ” 一节讨论的条件逻辑规则在安全应用程序中直接使用监督 式模型的输出,或者,也可以导入并启用预先配置的异常检测任务和规则,以便根 据所处环境的微妙之处自定义检测任务。
如何选择适合您所在环境的正确配置?从简单配置开始。启用"开始使用"一节中 的条件搜索规则。这些规则直接作用于监督式模型的输出,并将快速帮助了解所处 环境中有多少误报背景噪声。如果您发现监督式模型的直接输出上运行的条件搜索 规则产生太多警报,则可能会从导入和启用异常检测任务中受益。
尤其是,在异常检测任务结果上运行的ML检测规则可能有助于寻找聚合有大量 DGA活动的来源(而非针对单个DGA评分逐个发出警报)。如果您没有运行中的ML 模块,启动免费试用版,或者可以在Elastic Cloud中试用。
异常检测模型的示例性截图及版本随附的相关规则如下所示:
experimental-high-sum-dga-probability 非监督式 ML 任务输出
作用于该非监督式ML任务输出的Potential DGA Activity ML规则的输出
由 Machine Learning Detected a DNS Request With a High DGA Probability Score
搜索规则创建的警报
由 Machine Learning Detected a DNS Request Predicted to be a DGA Domain
搜索规则创建的警报
7. 案例研究:检测 SUNBURST 攻击中的真实 DGA 活动
让我们尝试将这一实验性DGA工作流应用至最近发生的SUNBURST攻击活动中。
概括来说,12月13日太阳风公司(SolarWinds)针对猎户座(Orion)网络管理平 台遭受供应链攻击发布了安全建议。撰写本文时,这一攻击影响到2020年3月至 6月发布的猎户座版本。同样,12月13日,火眼公司(FireEye)发布了一则有关 全球性攻击活动的消息,涉及影响到猎户座软件部分版本的太阳风供应链折衷方案。
我们此前发表了一篇博文,探讨Elastic用户及太阳风案例,通常称为SUNBURST。 这篇文章强调了 Elastic Endgame 和 Elastic Endpoint Security 所采用的 Elastic Security恶意软件预防技术已针对太阳风信息披露中所述的攻击检测进行更新。
作为一种复杂的软件供应链攻击行为,SUNBURST将恶意软件植入太阳风公司的猎 户座产品中,并利用自动更新机制分发。撰写本文时,该事件的波及规模、影响范 围和影响程度仍在评估中。
8. 现有 Elastic Security 检测
一名安全研究员共享了 SUNBURST恶意软件所用的一组1,722个DGA生成的域名。 DNS Tunneling 是现有的基于 Elastic Security Machine Learning 的检测规则之一, 在本示例中的DNS域名上生成两个基于异常的警报。
与DNS Tunneling类似,SUNBURST域名样本中的子域-父域比例非常高。对与本 规则相关联的ML任务进行编码以分析Packetbeat数据,但可以对其进行复制和修 改,进而以Elastic Common Schema (ECS)格式采集其他DNS事件。这便是DNS Tunneling ML 任务:
该ML任务具有一个名为DNS Tunneling的关联检测规则:
通过此等Elastic Security规则,这些异常检测(如下所示)可转换为检测警报和可 选通知,以便将其归入适当的事件分类和响应工作队列中。这便是SUNBURST异常 检测在Elastic Machine Learning应用程序中的呈现方式:
这一检测十分有用,但可能不会检测到所有DGA活动。为了增强DGA检测功能, 我们将推出实验性DGA检测工作流。
9. 使用实验性 DGA 工作流
我们发现,实验性DGA ML检测工作流可检测大部分的此类活动。我们通过本文探 讨的监督式DGA检测模型运行了 SUNBURST DGA域名(参见上述内容,了解"如 何下载并运行该模型及其规则"的相关详情)。
我们发现,该模型将样本中的82%的域名标记为DGA,这将在样本集中生成1,420 个警报。以下是一个由监督式模型标记为DGA活动的SUNBURST DNS域名的截图:
这些事件可以转化为使用检测规则Machine Learning检测到预测为DGA域名的 DNS请求的检测警报。此外,我们也可以复制该规则并对其进行修改,以匹配观察 到的诸如SUNBURST等特定恶意软件实例所使用的父域。我们可以通过向规则查询 添加测试来匹配这组SUNBURST DGA事件,如下所示:
network.protocol:dns and ml_is_dga.malicious_prediction: 1 and dns.question.registered_domain: "avsvmcloud.com"
然后,我们可以为该规则指定一个临界严重性级别和一个99分的高风险评分,以 便将其移动至警报和分析工作队列的前面。以下是该规则所生成的警报截图,对其 进行修改后,可提醒检测SUNBURST DGA活动:
我们已在解决方案包中纳入该规则,Machine Learning检测到使用已知SUNBURST DNS域名的DGA活动。在实际感染情况下,采用高频DGA的恶意软件实例可能生 成足够多的警报,以触发默认设定值为100的max_signals断路器。在这种情况 下,我们可能会对一些恶意软件实例(而非其他实例)发出警报,具体取决于搜索 中最先匹配到的事件。
为了确保识别更多参与DGA活动的受感染的主机,我们将DGA搜索规则中的 max_signals值增加到10,000。注意:此设置不能在规则编辑器中修改,而必须在 外部规则文件中修改,然后将其导入。该设置可通过在编辑器中查阅规则文件来查看。
在DGA活动繁多且警报众多的情况下,我们还可以聚合并筛选DGA警报或事件, 以便在数据表中通过主机名或源IP进行计数,如下所示:
此外,我们还将为Packetbeat DGA事件提供一个带有可视化和聚合功能的示例仪 表板,包括按照source.ip聚合的数据表可视化功能。或者,如果DNS事件包含该 字段,也可以按照host.name进行聚合。该文件名为dga-dashboard.ndjson,可 通过选中Saved Objects(保存的对象)页面上的Import(导入)将其导入至Kibana, 该页面将在选中Stack Management (堆栈管理)后显示。
以下是该仪表板在packetbeat-*索引中显示DGA事件的截图:
10. 我们随时为您提供真诚帮助
我们随时待命!若在此过程中遇到任何问题或想要了解更多关于威胁检测和 Machine Learning的基本原理,请通过我们的社区Slack渠道、我们的讨论论坛与 我们取得联系,或者与我们面对面针对我们公开的检测库展开合作。感谢您的关注! 祝您生活愉快!