发布于: Aug 12, 2022
今天为大家介绍一个企业级机器学习的案列——利用 Amazon SageMaker 建立一套同形异义词攻击检测模型。相较于政府颁发的身份证号码或电话号码,我们当然更习惯于通过姓名来识别一个人的身份。同样的,域名系统(DNS)也帮助我们更便捷地通过名称指向并访问对应 IP 地址背后的互联网服务或资源。也正因为 DNS 本身广泛存在,在网络连接体系中扮演着至关重要的角色,且大多数网络安全策略往往没有做到对 UDP 53 端口的网络流量进行监控——种种原因,导致 DNS 成为不少恶意攻击者眼中的理想目标。事实上,不少已知的传统安全解决方案确实无法检测到DNS恶意软件中所使用的命令与控制通信(C&C)、数据窃取、Fast Flux 与域名生成算法。
过去二十多年当中,Infoblox 公司一直是全球领先的技术与服务供应商,专门负责管理并保护网络核心,具体涵盖 DNS、DHCP 以及IP地址管理(统称为 DDI)等领域。目前,已经有超过 8000 家客户(包括超过三分之一的全球财富五百强企业)使用 Infoblox 产品建立起可靠的本地、云以及混合网络自动化管理与保护体系。
过去五年以来,Infoblox 公司开始使用 Amazon Web Services 构建其 SaaS 服务,并帮助客户将其 DDI 体系由本地物理设备扩展至云端。本文将着力阐述 Infoblox 公司如何使用 Amazon SageMaker 以及其他多项 Amazon Web Services 服务构建起安全分析服务,借此检测滥用及冒用客户品牌的行为。
为目标客户品牌或域名进行社会工程攻击检测,已经成为企业级安全分析服务中的一大关键需求。DNS 的同形异义词代表的是在主观感知上与实际目标著名高度相似的伪造域名。恶意攻击者会创建同形异义词以模仿高价值域名目标,并借此散播恶意软件、网络钓鱼用户信息或破坏目标的品牌声誉等。对此缺乏戒心的用户往往很难将同形异义词与合法域名区分开来。在某些情况下,二者之间甚至不存在任何肉眼可见的显示区别。
- 使用 Unicode 字符中的 IDN 同形异义词(例如将「a」替换为「ɑ」)
- 多字母拟形文字(例如用「rn」替换「m」)
- 字符替换(例如用「I」替换「l」)
- Punycode 欺诈(例如,将㿝㿞㿙㿗[.] com 编码为 xn--kindle[.]com,将䕮䕵䕶䕱 [.] com编码为 xn—google[.]com)
有趣的是,同形异义词攻击的适用范围并不局限于DNS攻击,还可用于混淆操作系统上的进程名称,帮助回避检测系统乃至构建钓鱼系统。考虑到Infoblox 的不少客户都对同形异义词攻击深恶痛绝,技术团队决定使用 Amazon SageMaker 开发出一套基于机器学习(ML)的解决方案。
解决方案
传统同形异义词攻击的解决思路,主要基于字符串距离计算。虽然近年来也出现了部分使用深度学习方法的应对措施,但其主要目标仍是对整个域名进行分类。Infoblox 的方法则是对域名内的各个字符进行标记,借此解决这个令人头痛的难题。标记完成后,Infoblox 使用图像识别技术处理各个字符,这就将 Unicode 字符的处理机制由基于代码点转换为基于字形(或者说视觉形态)。也就是说,代码点将仅构成字符编码术语中代码空间的数字值,不再作为判断字符属性的依据。
凭借这种方法,Infoblox 在区分看似 ASCII 字符的 Unicode 字符方面,获得了高达 96.9% 的准确率。而且与需要重复进行在线预测的现有深度学习方法不同,Infoblox 的检测流程只需要单次离线预测。其误报比例,也远远低于单纯依赖字符串间距离计算的传统方法。
Infoblox 使用 Amazon SageMaker 构建起两大核心组件:
- 基于 CNN 分类器的 Unicode 字符同形异义词离线标识符。该模型能够提取可能存在异常的 ASCII 字符(例如作为域名中的子集)所对应的图像与标答,并将其输出至 Unicode 映射。更重要的是,此映射将随每一次 Unicode 标准发布进行重新构建。
- 通过输入的目标域名列表与 DNS 流对域名同形异义词进行在线检测,并生成检测结果。
下图为基于这两个组件做检测的全过程。
在此图中,所有字符都渲染为一个 28 x 28 像素的图像。此外,训练集与测试集中的各个字符,都将与外观最接近的 ASCII 字符(即其标签)相关联。
在接下来的章节中,我们将深入探讨这套解决方案,了解以下几项核心要点:
- 为分类器构造训练数据
- 分类器的CNN架构
- 模型评估
- 在线检测模型
相关文章