发布于: 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 的同形异义词代表的是在主观感知上与实际目标著名高度相似的伪造域名。恶意攻击者会创建同形异义词以模仿高价值域名目标,并借此散播恶意软件、网络钓鱼用户信息或破坏目标的品牌声誉等。对此缺乏戒心的用户往往很难将同形异义词与合法域名区分开来。在某些情况下,二者之间甚至不存在任何肉眼可见的显示区别。

Infoblox 面对的挑战
 
传统域名由数字、字母及连接符组成,各字符均来自 ASCII 字符编码方案,其中包含128个代码点(即可能的字符);对于拓展ASCII而言,其代码点数量则扩充至256个。国际化域名(IDN)是指可以使用 Unicode 字符的域名,支持用户在其中使用带有连字或变音符号的拉丁字母(例如 é or ü,当然也支持不使用拉丁字母)。IDN 为大部分书面系统及语言提供了广泛的字母选项,并允许您以自己熟悉的语言访问互联网。同样的,随着互联网服务在全球范围内使用规模的不断增长,IDN 成为人们与目标市场轻松建立联系、摆脱语言障碍的理想方法。而为了实现多语种支持,每个 IDN 均以 Punycode 表示,其中包含一组 ASCII 字符。例如,amāzon.com 将被转换为 xn--amzon-gwa.com。接下来,各个 IDN 域名都将被转换为 ASCII 形式以与 DNS 相兼容,从而确定如何将域名转换为正确的目标IP地址。
简而言之,IDN 的意义在于帮助所有人轻松访问互联网。但其同样也招来了欺诈者们的关注,他们试图使用外观相同的某些图形替换掉其中的某些字符,借此将用户重新定向至伪造域名处。这一过程,就被称为同形异义词攻击,其中使用Unicode字符创建出与目标域名难以甚至无法区分的伪造域名。以 paypal.com 为例,他们会将其中的a替换为拉丁文小写字母alpha(‘ɑ’ [U+0251]),即 pɑypal.com 的形式。乍看起来,二者似乎并无区别,但在仔细检查后,两个“a”明显有所不同。
 
最常见的异同形异义词构造方法包括:
  • 使用 Unicode 字符中的 IDN 同形异义词(例如将「a」替换为「ɑ」)
  • 多字母拟形文字(例如用「rn」替换「m」)
  • 字符替换(例如用「I」替换「l」)
  • Punycode 欺诈(例如,将㿝㿞㿙㿗[.] com 编码为 xn--kindle[.]com,将䕮䕵䕶䕱 [.] com编码为 xn—google[.]com)

有趣的是,同形异义词攻击的适用范围并不局限于DNS攻击,还可用于混淆操作系统上的进程名称,帮助回避检测系统乃至构建钓鱼系统。考虑到Infoblox 的不少客户都对同形异义词攻击深恶痛绝,技术团队决定使用 Amazon SageMaker 开发出一套基于机器学习(ML)的解决方案。
 
从业务的角度来看,处理同形异义词攻击往往需要占用组织中大量宝贵的资源。在应对域名伪造与同形异义词攻击方面,一种常见的方法是预先注册数百个可能的品牌同形异义词域名,借此堵住攻击者的后路。遗憾的是,这样的缓解措施只能挡住一小部分攻击者,目标明确的恶意方总能找到具有良好效果的攻击机会。而使用 Infoblox IDN 同形异义词检测器,我们已经在 Alexa 前 50 大域名的 43 个当中观察到 IDN 同形异义词,同样的情况在金融服务与加密货币域名领域也极为常见。下表展示了其中部分示例。

解决方案

传统同形异义词攻击的解决思路,主要基于字符串距离计算。虽然近年来也出现了部分使用深度学习方法的应对措施,但其主要目标仍是对整个域名进行分类。Infoblox 的方法则是对域名内的各个字符进行标记,借此解决这个令人头痛的难题。标记完成后,Infoblox 使用图像识别技术处理各个字符,这就将 Unicode 字符的处理机制由基于代码点转换为基于字形(或者说视觉形态)。也就是说,代码点将仅构成字符编码术语中代码空间的数字值,不再作为判断字符属性的依据。

凭借这种方法,Infoblox 在区分看似 ASCII 字符的 Unicode 字符方面,获得了高达 96.9% 的准确率。而且与需要重复进行在线预测的现有深度学习方法不同,Infoblox 的检测流程只需要单次离线预测。其误报比例,也远远低于单纯依赖字符串间距离计算的传统方法。

Infoblox 使用 Amazon SageMaker 构建起两大核心组件:

  • 基于 CNN 分类器的 Unicode 字符同形异义词离线标识符。该模型能够提取可能存在异常的 ASCII 字符(例如作为域名中的子集)所对应的图像与标答,并将其输出至 Unicode 映射。更重要的是,此映射将随每一次 Unicode 标准发布进行重新构建。
  • 通过输入的目标域名列表与 DNS 流对域名同形异义词进行在线检测,并生成检测结果。

下图为基于这两个组件做检测的全过程。

在此图中,所有字符都渲染为一个 28 x 28 像素的图像。此外,训练集与测试集中的各个字符,都将与外观最接近的 ASCII 字符(即其标签)相关联。

在接下来的章节中,我们将深入探讨这套解决方案,了解以下几项核心要点:

  • 为分类器构造训练数据
  • 分类器的CNN架构
  • 模型评估
  • 在线检测模型

相关文章