检测域名的同形异义词的制作方法

文档序号:26758996发布日期:2021-09-25 05:09阅读:95来源:国知局
检测域名的同形异义词的制作方法
检测域名的同形异义词


背景技术:

1.网络安全是用于保护网络和用户经由网络(诸如因特网)访问资源的越来越具有挑战性的技术问题。使用虚假或误导性域名是由恶意软件、网络钓鱼攻击、在线品牌攻击频繁采用的机制、和/或对于其他恶意活动而言的频繁采用的机制,所述其他恶意活动经常试图诱骗用户浏览/访问与虚假或误导性域名相关联的网站/服务。
附图说明
2.在以下详细描述和附图中公开了本发明的各种实施例。
3.图1提供了可以使用同形异义词示例及其相关联的punycode编码进行哄骗的目标域名的示例。
4.图2是图示根据一些实施例的用于提供用于检测域名的同形异义词的在线平台的架构的功能框图。
5.图3图示了根据一些实施例的用于同形异义词分类器训练的卷积神经网络(cnn)架构。
6.图4是根据一些实施例的用于对字符的输入图像执行卷积核训练以生成到ascii字符映射的过程。
7.图5是图示根据一些实施例的用于检测域名的同形异义词的在线过程的流程图。
8.图6是图示根据一些实施例的用于生成用于检测域名的同形异义词的模型的离线过程的流程图。
具体实施方式
9.本发明可以以多种方式实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置为执行在耦合到处理器的存储器上存储的指令和/或由耦合到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任何其他形式可以称为技术。通常,在本发明的范围内可以更改所公开过程的步骤的顺序。除非另有说明,被描述为被配置为执行任务的诸如处理器或存储器之类的部件可以被实现为被临时配置为在给定时间执行任务的通用部件或被制造为执行任务的特定部件。如本文中所使用的那样,术语“处理器”是指配置为处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核。
10.下文提供对本发明的一个或多个实施例的详细描述连同图示本发明原理的附图。结合这样的实施例描述了本发明,但本发明不限于任何实施例。本发明的范围仅由权利要求限定,并且本发明包含许多替代方案、修改和等同物。在以下描述中阐述了许多具体细节以便提供对本发明的透彻理解。这些细节是出于示例的目的而提供的,并且本发明可以在没有这些具体细节中的一些或全部的情况下根据权利要求来实践。出于清楚性的目的,没有详细描述在与本发明相关的技术领域中已知的技术材料,使得不会不必要地使本发明模糊不清。
11.网络安全是保护网络和经由网络(诸如因特网)访问资源的用户的越来越具有挑战性的技术问题。使用虚假或误导性域名(例如,哄骗(spoofed)域名)是由恶意软件、网络钓鱼攻击、在线品牌攻击频繁采用的机制、和/或对于其他恶意和/或未授权活动而言的频繁采用的机制,所述活动经常试图诱骗用户浏览/访问与虚假或误导性域名相关联的网站/服务(例如,统一资源定位符(url))。
12.通常,国际化域名(idn)使用至少一个多字节unicode字符作为标签。域名的国际化使世界上大多数的书写系统能够使用其本地字母来形成域名,所述字母对来自unicode标准的脚本可用。为了与dns协议和系统兼容,使用punycode系统将idn域编码为ascii。
13.具体来说,punycode是指可以用来转换不能以ascii编写的单词的unicode以供作为域名使用。然而,punycode也可能被误用以生成虚假或误导性域名(例如,哄骗域名),其试图使用punycode冒充目标域名。例如,此类恶意软件、网络钓鱼攻击、在线品牌攻击或其他恶意活动经常利用punycode来生成虚假或误导性域名,以便欺骗用户浏览/访问与虚假或误导性域名相关联的网站/服务(例如,url)。
14.更具体地,问题在于人类不能轻易地将punycode域(例如,xn

aa

thringen

xhb.de)提交到存储器,因此大多数系统以解码形式(例如,aa

th
ü
ringen.de)呈现这些域。因此,idn无意中为域名创建了安全问题,因为其允许大量不同但在许多情况下视觉上类似的字符的集合用于域命名。因此,不良行为者可以试图通过用视觉上类似但模糊的unicode字符来替换其ascii字符中的一个或多个来冒充目标域(例如,高价值目标域名),诸如图1中所示,如下面进一步描述的那样。
15.图1提供了可以使用同形异义词示例及其相关联的punycode编码进行哄骗的目标域名的示例。如本文中所使用的,同形异义词是指被创建以冒充另一个合法域(例如,目标域名)的域名。参考图1,如在102处所示,目标域(诸如google.com)具有在104处所示的同形异义词示例,其具有在106处所示的punycode编码。如图1中显而易见的那样,google.com目标域的同形异义词示例看起来是相同的,但具有不同的punycode编码。因此,此同形异义词可能被恶意软件、网络钓鱼攻击、在线品牌攻击潜在利用和/或用于其他恶意活动,以欺骗用户浏览/访问与同形异义词相关联的网站/服务(例如,对于本示例中google.com的目标域名的虚假或误导性域名)。
16.为了减轻由虚假或误导性域名呈现的风险(例如,潜在的恶意域),能够自动检测此类虚假或误导性域名(例如url)(包括同形异义词)是有用的。然而,静态预防方法(如现有的传统域黑名单方法和现有的传统沉洞(sinkholing)方法)通常无法有效对抗使用punycode生成的虚假或误导性域名(例如url)。
17.因此,需要的是用于提供域名和域名系统(dns)安全的新的和改进的技术。具体而言,需要的是用于通过检测域名的同形异义词来提供域名和域名系统(dns)安全的新的和改进的技术。
18.用于检测域名的同形异义词的技术概述
19.因此,公开了用于检测域名的同形异义词的各种技术。例如,所公开的用于检测域名的同形异义词的技术包括提供使用深度学习技术(例如,深度神经网络或也称为深度网络)生成的(例如,使用(一个或多个)分类器省实现的)模型。
20.在一些实施例中,公开了用于检测被称为同形异义词的恶意域名的系统、过程和/
或计算机程序产品。例如,恶意行为者经常创建同形异义词来冒充高价值域名目标,并由此欺骗不知情的用户,诸如上文关于图1类似描述的那样。他们通常使用此类虚假/误导性域来投放(drop)恶意软件、网络钓鱼用户信息、攻击品牌信誉和/或用于其他恶意和/或未授权的活动。
21.在一些实施例中,公开了用于使用深度学习技术检测同形异义词的系统、过程和/或计算机程序产品。一些现有的方法聚焦于距离和字符串匹配方法,诸如使用levenshtein距离来试图识别目标域和同形异义词域之间的相似性。当基于阈值距离比较确定两个字符串之间的距离接近时,这些方法通常标示为肯定的(positive)检测。作为示例,这些现有方法中的一些试图对idn域使用字符串匹配。然而,这样的方法将通常导致错误的虚假的肯定的检测结果和错过匹配,因为没有考虑用于创建同形异义词的字符的视觉形状。这些方法聚焦于unicode字符的整数代码点,而不是其形状或字形。该区别在此技术安全领域中是相关的,因为同形异义词被设计为愚弄人类,而人类(例如,用户)通常基于他们的视觉外观而不是基于其代码点来判断域。
22.因此,在一些实施例中,所公开的用于检测域名的同形异义词的技术利用unicode字符的形状和特征来训练深度学习系统以识别与域名的数字、字母和连字符具有视觉相似度的字符。在示例实施方式中,受监督的机器学习系统是卷积神经网络(cnn),其是视觉和图像识别任务的现有技术。在此示例实施方式中,潜在的unicode同形异义词的识别是使用离线过程实现的,并且也可以在unicode标准下每当新的脚本和字符可用时再次执行(例如,当前,在unicode标准下新的脚本和字符变为大约每年可用一次)。
23.在一些实施例中,在训练阶段期间生成ascii的数字、字母和连字符到看起来相似的unicode字符的全面和详尽的映射,然后在在线阶段期间高效且自动地应用该映射,以在dns查询和响应数据流期间实时检测有效(live)流量上的同形异义词和/或稍后在dns响应日志数据上应用的同形异义词。例如,所公开的技术可以在用于dns安全解决方案的同形异义词检测器中实现,诸如下文进一步描述的那样。在一个示例实施方式中,用于dns安全解决方案的同形异义词检测器是轻量级的,因为虽然图像生成和深度学习基础设施是用于离线/训练阶段,但是对于在线分类阶段不需要此类基础设施,其可以在有效dns流量上高效地实时执行。
24.在其他实施例中,所公开的技术可以类似地应用于检测通过恶意软件的剽窃规避、网络钓鱼混淆和/或可执行文件名冒充(例如,可执行文件名不是word.exe而实际上是malware.exe)。
25.由woodbridge等人提出的另一种现有方法(例如,参见jonathan woodbridge、hyrum s.anderson、anjum ahuja、daniel grant,endgame公司,利用孪生神经网络检测同形文字攻击,在关于安全和隐私研讨会上的2018年ieee专题讨论会,2018年5月,其可在https://arxiv.org/abs/1805.09738获得)使用了孪生神经网络,其中输入是域的宽像素。这种方法需要昂贵的基础设施,其将域转换为图像并根据图像完成同形异义词的在线预测。相比之下,所公开的用于检测域名的同形异义词的技术在逐个字符的基础上执行同形异义词检测,然后在后面的在线阶段利用该结果来识别同形异义词,以用于更高效且更准确的域名同形异义词检测的解决方案,如下面进一步描述的那样。
26.在一些实施例中,用于检测域名的同形异义词的系统、过程和/或计算机程序产品
包括:接收dns数据流,其中dns数据流(例如,有效dns数据流)包括dns查询和对于dns查询的解析的dns响应;为dns数据流中的每个域应用同形异义词检测器;以及使用同形异义词检测器检测dns数据流中域名的同形异义词。例如,所公开的同形异义词检测器(例如,同形异义词分类器)可以自动检测idn域的同形异义词并应用机器学习以用于unicode字符识别。
27.在一些实施例中,同形异义词检测器使用基于字符的映射(例如,ascii字符到(一个或多个)unicode字符映射)自动检测一个或多个目标域名的同形异义词。
28.在一些实施例中,用于检测域名的同形异义词的系统、过程和/或计算机程序产品还包括基于检测域名的同形异义词来执行缓解动作。例如,可以执行以下缓解动作中的一个或多个:基于与域名的同形异义词相关联的ip地址生成防火墙规则;配置网络设备以阻止和与域名的同形异义词相关联的ip地址的网络通信;隔离受感染的主机,其中受感染的主机基于和与域名的同形异义词相关联的ip地址的关联而被确定为受感染的;并将域名的同形异义词添加到信誉馈送。
29.在一些实施例中,用于检测域名的同形异义词的系统、过程和/或计算机程序产品包括为域名的字符图像生成训练和测试数据集;使用训练和测试数据集训练同形异义词分类器以识别在视觉上与一个或多个ascii字符类似的unicode字符;以及对unicode字符集执行同形异义词分类器以生成ascii到unicode映射。例如,所公开的同形异义词检测器(例如,同形异义词分类器)可以自动检测idn域的同形异义词并应用机器学习以用于unicode字符识别。
30.例如,与反应或离线检测不同的域名的实时同形异义词检测是对dns服务器/装置中的有效dns查询流实时执行的(例如,并可以限制对域名字符串的输入,而无需其他上下文信息)。如下文进一步描述的那样,真实dns流量数据用于训练和评估(一个或多个)同形异义词检测模型(例如,一个或多个分类器,其在某些情况下可以有效且高效地接收域名作为输入,并且确定该域名是同形异义词的概率,诸如下文进一步描述的那样)。
31.在示例实施方式中,(一个或多个)同形异义词检测模型的目标在于对于内嵌检测的实时dns查询,以使用所公开的技术促进针对同形异义词的实时执行。此外,所公开的技术可以捕获用于黑名单的恶意软件ip地址。
32.在另一个示例实施方式中,同形异义词检测器被部署用于检测dns响应日志流上的同形异义词。
33.在一些实施例中,所公开的用于检测域名的同形异义词的技术是使用离线阶段和在线阶段来实现的。在离线阶段中,生成训练和测试数据集并将其用于训练卷积神经网络(cnn)分类器。然后使用cnn分类器创建相关ascii字符到视觉上类似的unicode字符的映射。在在线阶段中,检测器利用映射和目标域名列表来识别真实、有效dns流量上的同形异义词。所公开的技术和示例系统实施方式在下文关于例如图2和图3进一步描述。
34.现在将在下文进一步描述用于检测域名的同形异义词的这些和其他技术。
35.用于检测域名的同形异义词的在线平台架构
36.图2是图示根据一些实施例的用于提供用于检测域名的同形异义词的在线平台的架构的功能框图。图2描绘了能够如何部署分类器以用于提供如在202处所示并在下文进一步描述的内嵌同形异义词检测部件。在一个实施例中,在线平台的框架包括实时处理器集
群(例如,其可以是可扩展的实施方式)。例如,实时处理器集群可以配置为处理复杂事件处理(cep)功能,其处理和分析dns流数据输入、进行实时dns流数据检测,包括用于执行域名的同形异义词检测。在示例实施方式中,包括同形异义词检测模块的检测模块可以是从离线平台(例如,离线平台,诸如下文关于图3进一步描述的那样)训练的可插拔的模块,诸如关于图2进一步描述的那样。特别地,如本文中进一步描述的那样,在线平台可以应用一个或多个模型(例如,分类器)来检测域名的同形异义词。此外,如本文中进一步描述的那样,可以在在线系统和/或离线系统中重新训练和改善这些模型。
37.参考图2,在线平台包括经由输入队列206接收dns数据流204的(例如,使用实时处理器集群实现的)同形异义词域名检测器202。例如,为了实时高效地检测域名的同形异义词,可以提供可以促进实时端到端处理的水平可扩展基础设施。如下文进一步讨论的那样,同形异义词检测模型/分类器可以被实现成以网络规模和dns速度执行。在图2中所示的在线平台的架构的一个示例实施方式中,该架构由各种分布式和水平可扩展的开源部件组成,如下文进一步讨论的那样。
38.在示例实施方式中,代理可以被配置为在一个或多个dns服务器或装置上执行以收集并周期性或实时地向dns流204发送dns查询,然后在排队机制中提供dns查询以收集和接近dns数据使用(例如,使用实时过程集群执行的)同形异义词检测模型/分类器来实现同形异义词域名检测器202的实时过程。例如,代理可以被配置为使用如图2中所示的输入队列206通过dns流作为结构化数据进行发送。在一些情况下,dns数据流可以诸如针对安全和/或针对策略/规则分离按网格划分(例如,可以基于按网格策略或某个其他粒度级别按网格配置缓解)。输入队列206可以使用开源消息队列来实现,诸如apache kafka高吞吐量分布式消息传递系统,其可以用作dns消息流的输入的持久队列。
39.在一个实施例中,同形异义词域名检测器202使用如本文中所述的各种技术对有效dns流204实时执行域名的同形异义词的自动检测,并将包括同形异义词检测结果的dns安全检测结果提供给检测数据库208(例如,并且在一些实施方式中,使用下文进一步描述的各种技术检测到的潜在同形异义词可以存储在检测数据库208中或高速缓存在另一个数据存储/高速缓存器(图2中未示出)中以用于进一步离线分析、报告和/或发送到用于进一步分析的基于云的dns安全服务212(经由因特网和/或其他网络通信),诸如下文进一步描述的那样)。在示例实施方式中,同形异义词域名检测器202可以使用用于流数据处理的开源平台来实现,诸如apache storm或apache spark,其是自由且开源的分布式实时计算系统(例如,分布式框架,其允许应用并行运行,其中用户可以基于其api在应用层中构建拓扑结构网络,其中由storm网络分配和管理的每个拓扑结构是针对一个或多个应用的),其可以实现成执行基于一个或多个同形异义词检测模型/分类器和如本文中进一步描述的各种机器学习技术的实时分析。
40.在示例实施方式中,这种在线检测框架可以实现为装置(例如,或使用装置的集合和/或计算服务器或其他类型的计算设备,包括虚拟机实例,诸如(一个或多个)虚拟装置)。例如,如由参考数字210指示的在线平台的部分可以被实现为dns服务器和/或dns装置的部件。作为另一示例,如由参考数字210指示的在线平台的部分可以在一个或多个计算机服务器或应用设备上实现,或者可以实现为云服务,诸如使用亚马逊网络服务(aws)或基于云的计算和存储服务的另一云服务提供商的云服务。
41.还如图2中所示,使用在线平台210确定的dns安全检测结果也可以传送到缓解引擎214。在一些实施方式中,缓解引擎可以在在线平台内实现或与在线平台集成和/或作为dns服务器和/或dns装置的部件。缓解引擎214可以响应于基于策略(诸如存储在策略数据库216中的dns安全策略)的dns安全检测结果确定和请求各种缓解动作。例如,缓解引擎214可以配置交换机或路由器联网设备218以使用同形异义词域名检测器202过滤(例如,阻止或列入黑名单)被确定为与不良网络域(例如,被确定为是目标域名的同形异义词的域名/fqdn)相关联的dns查询/请求。在一些实施方式中,响应于基于策略(诸如存储在策略数据库216中的dns安全策略)的dns安全检测结果的缓解动作可以包括将与目标域名的潜在同形异义词相关联的dns样本发送到dns安全服务212。
42.作为另一示例,缓解引擎214可以与dns防火墙220通信以使用同形异义词域名检测器202识别被确定为与不良网络域(例如,被确定为是目标域名的同形异义词的域名/fqdn)相关联的一个或多个确定的不良域。在一些实施方式中,缓解引擎214使用数据馈送(诸如响应策略区(rpz)数据馈送)经由发布/订阅连接协议、和/或各种其他通信机制与dns防火墙(例如,或其他防火墙设备)220通信。在一个实施例中,公开了一种用于实现用于网络安全的同形异义词域名检测器的在线平台的架构,其支持用于执行dns安全的多个分类器。例如,可以从dns数据流中高效地提取公共属性,以供两个或更多个不同的分类器使用以执行dns安全。示例分类器包括用于同形异义词域名检测、域通量(快速通量)相关活动的分类器、用于dns隧道相关活动的分类器、用于域生成算法(dga)相关活动的分类器和/或用于执行dns安全的其他分类器。现在将在下文进一步描述用于同形异义词域名检测的示例分类器。
43.在一个实施例中,同形异义词域名检测器202包括用于提供内嵌同形异义词域名检测部件的分类器。例如,如果客户端设备(未示出)向dns服务器发送dns查询(例如,a/aaaa查询),并且如果未高速缓存,则dns服务器策略将dns查询转发到上层递归(未示出)并且还在dns流204中被提供以用于使用在线平台执行的安全分析以检测域名210的同形异义词。使用同形异义词域名检测器202处理dns查询以进行安全分析以确定是否肯定(即,该特定dns查询使用基于阈值确定为同形异义词或确定为可能是同形异义词的域名,诸如下文关于图3进一步描述的那样),然后dns查询被识别为同形异义词并发送到缓解引擎214以基于存储在策略数据库216中的规则/策略来确定要执行的动作。因此,如果dns查询被解析并且检测是肯定的(如使用内嵌同形异义词域名检测器202确定的那样)(例如,针对由内嵌同形异义词域名检测器202实现的分类器检查在dns服务器处解析的域,以预测其是否是恶意的(如以上类似描述的那样),其中可以通过由内嵌同形异义词域名检测器202实现的分类器使用所公开的用于使用深度网络进行内嵌同形异义词域名检测的技术将域名预测为恶意/目标域名的同形异义词,诸如下文关于图3进一步描述的),则可以基于存储在策略数据库216中的规则/策略来执行动作(例如,将解析的ip地址添加到使用防火墙/dns防火墙实现的黑名单,其中dns防火墙220可以被实现为不同的产品/服务,诸如安全服务器/装置和/或安全服务、dns服务器/装置的部件、和/或其组合)。
44.dns数据对于检测网络中的恶意活动(包括对于检测域名的同形异义词)来说是非常有用的。因此,所公开的技术提供了用于应用深度学习以实时检测域名的同形异义词的新颖解决方案,以(1)在不使用人类工程特征的情况下,和(2)在使用用于训练的真实流量
而不是合成数据的情况下,促进域名的同形异义词的内嵌检测,如下文关于图3的进一步描述的那样。
45.训练数据集的创建
46.在一些实施例中,真实和有效流量dns数据可以用作样本来训练基于机器学习(ml)的模型(例如分类器),该模型可以自动检测目标域名的同形异义词,以促进利用根据一些实施例的深度网络的内嵌同形异义词域名检测。在示例实施方式中,使用包括训练图像、训练标签、测试图像和测试标签的专有数据集来训练同形异义词分类器。在此示例中,数据集是使用域名的ascii字符(即0
……
9、a
……
z、a
……
z和

)、unicode种子可混淆列表(例如,可在https://www.unicode.org/public/security/12.0.0/confusables.txt获得的)、变音符号(例如,变音标记、重音)和多种统一缩放的字体生成的。数据的格式是对用于手写数字的minst数据集的格式的改编(参见,例如,http://yann.lecun.com/exdb/mnist/)。与使用无符号字节标签的minst标签文件不同,我们数据集的每个标签是4字节整数。生成过程将每个字符呈现为28x28像素图像。在此示例中,训练集包括超过一百万张图像,并且测试集具有几十万张图像和标签。除了为每个字符类生成数据外,还可以包括附加类,其具有用于不属于域名字符或视觉上不类似的unicode字符的其他ascii和unicode字符的相似数量的数据点。
47.深度学习方法
48.在一个实施例中,使用卷积神经网络(cnn)训练神经网络。在另一个实施例中,可以训练和利用其他类型的神经网络来执行所公开的用于同形异义词域名检测的技术,诸如使用递归神经网络(rnn)。两种类型的神经网络可以采取原始数据作为输入,绕过手动特征提取的需要。在另一个实施例中,可以使用其他机器学习算法(诸如k

均值聚类和支持向量机(svm))来训练分类器。
49.卷积神经网络
50.cnn以图像处理中的现有技术进步而闻名,并适用于网格状拓扑结构的输入(例如,参见i.goodfellow、y.bengio和a.courville,深度学习,麻省理工学院出版社,2016年,可在http://www.deepleamingbook.org获得)。cnn自动学习过滤器来检测对于预测重要的模式。然后,由典型的神经网络(例如,多层感知器,或mlp)使用这些模式的存在(或缺乏)来进行预测。这些过滤器(例如,也称为核)是在反向传播期间学习的。图像处理中的直观示例是过滤器,其检测垂直边缘,而不管其在图像中的位置如何。
51.cnn的基础操作是逐元素乘法,在每个过滤器和输入的子部分之间执行。结果值指示这些子部分与过滤器匹配的程度。以这种方式,在输入上对过滤器进行卷积以形成激活图,该图表示发现特征的位置。每个后续的卷积层实现了进一步的抽象,从而找到由先前层中检测到的那些特征组成的更高级别的特征。
52.图像处理是二维卷积的情况。用于使用图像的同形异义词域名检测任务。如下文关于图3进一步描述的那样,在深度学习方法中训练的网络可以以字符级别操作(例如,对每个域名进行基于逐字符的图像的分析以检测同形异义词)并以嵌入层开始。
53.在示例实施方式中,可以使用python2和tensorflow训练这些示例神经网。在此示例实施方式中,用于训练的平台是可以访问gpu的aws虚拟机。在线模型/分类器可以操作以将unicode字符分类为域名标签的视觉上类似的ascii字符。分类结果的映射可用于检测
dns数据流(例如,有效dns流量)上内嵌的同形异义词。所公开的检测系统可以使用java、scala或另一高级编程语言来实现。
54.此外,所公开的技术可以包括在线持续训练(例如,包括自动特征提取)。例如,所公开的技术可以应用于在在线部署之后在没有人为交互的情况下周期性地训练和改善(一个或多个)分类器(例如,基于对unicode标准的周期性更新,如下文进一步描述的那样)。
55.用于同形异义词分类器的离线训练和使用同形异义词分类器的域名的同形异义词的在线检测的机器学习架构的实施例
56.图3图示了根据一些实施例的用于同形异义词分类器训练的卷积神经网络(cnn)架构。具体地,图3提供了示例cnn架构,其用于在离线阶段302期间训练同形异义词分类器310,然后在在线阶段314中部署同形异义词分类器以用于自动检测dns数据流(例如,有效dns流量)上的域名的同形异义词,其在下文进一步描述。例如,可以部署同形异义词分类器以用于实现同形异义词域名检测器202,如上文关于图2类似描述的那样。如下文关于图3进一步描述的那样,所公开的技术包括训练和部署cnn架构,该架构使用域名的基于逐字符图像的分析来检测域名的同形异义词。
57.参考离线阶段302,离线过程在304处开始,其中生成训练和测试数据集(例如,每个字符图像28乘28个像素或使用另一种像素密度)(例如,示例测试数据集可以包括mnist数据集)和使用unicode种子可混淆列表的标签(例如,可在https://www.unicode.org/public/security/12.0.0/confusables.txt获得的)、变音符号(例如,添加到字母的字形,诸如变音标记、变音点、变音记号或重音)和多种字体。然后使用测试数据集训练cnn分类器以将视觉上类似的unicode字符识别为ascii,然后输出同形异义词分类器,如在306处所示。在308处,生成来自具有像拉丁文字符的字形的unicode脚本的数据集和标签,并将其作为输入提供给同形异义词分类器,如图3中所示。在310处,对整个unicode集执行同形异义词分类器以基于视觉相似性将ascii字符映射到unicode集中的每个unicode字符。结果输出是ascii到unicode的映射(例如,ascii到unicode映射),如在312处所示。因此,如在312处所示,可以使用所公开的基于图像的逐字符映射将每个ascii字符映射到各种不同的unicode字符。
58.参考在线阶段314,域名的目标列表316(例如,infoblox.com、workday.com、apple.com等)被提供作为对同形异义词检测器320的输入。输入dns流(例如,dns数据流)318然后被提供给同形异义词检测器320。域名的目标列表316可以是对于给定实体/客户、对于给定垂直(例如,政府实体、银行/金融实体、医疗/医院实体、零售实体、技术实体或其他垂直市场/渠道)、对于给定地理区域中的实体的域名的可配置列表、最流行域的列表(例如,商业可获得的/开源公开可获得的域名的列表,诸如可在https://majestic.com/reports/majestic

million获得的由majestic million提供的列表,或可在https://www.domcop.com/获得的由domcop提供的列表,或其他可获得的顶级/流行域列表)、和/或其任何组合。在该示例实施方式中,同形异义词检测器320包括域名的目标列表316、ascii到unicode映射312、和输入域/dns流318。在对输入域/dns流318的操作期间,同形异义词检测器320首先应用过滤器以排除非idn域(例如,用于减少否则将用于对此类非idn域进行处理的计算操作和资源的可选的操作阶段)。同形异义词检测器320然后将在输入域/dns流318中接收到的每个域解码为unicode。同形异义词检测器320应用映射(例如,ascii到
unicode映射312)以将每个unicode字符映射到ascii字符。在此示例实施方式中,在操作的下一阶段,同形异义词检测器320对目标列表执行查找、应用相似性得分度量和/或实现k

最近邻(k

nn)算法或其他距离/分类/ml算法以基于查找识别匹配和/或基于阈值相似性得分或k

nn阈值距离结果来识别附近/接近匹配。如果找到,则同形异义词检测器320然后报告肯定检测(例如,输入域名是同形异义词,在本文中也称为同形异义词域),否则报告否定检测(例如,输入域名不是同形异义词)。最后,从处理的输入域/dns流318中检测到的同形异义词被输出,如在322处所示(例如,可以将其添加到黑名单以供防火墙/dns防火墙实现/执行和/或添加到同形异义词域黑名单馈送)。在该示例中,infoblox.com的同形异义词和apple.com的同形异义词是基于在线操作阶段期间使用同形异义词检测器执行的技术报告的。
59.现在将在下文关于图4进一步描述cnn分类器的离线训练。
60.图4是根据一些实施例的用于对字符的输入图像执行卷积核训练以生成到ascii字符的映射的过程。在示例实施方式中,训练过程将试图利用许多不同数量的卷积核来创建稍后将用于分类的特征。现在将在下文进一步描述用于对cnn分类器执行离线训练的过程400。
61.在402处,输入包括为每个字符提供每个输入图像(例如,使用具有单色通道(灰度)的28x28像素或使用另一像素密度和/或另一颜色通道)。在训练期间,可以同时处理一批输入图像(例如,100个或另一数量的输入图像),以减少用于处理整个字符图像集的计算时间。
62.在404处,卷积层1使用由尺寸为6x4像素的核定义的邻域,通过每个输入图像中的像素的线性组合来计算32个特征。
63.在406处,池化层1使用最大池化来整合来自卷积层1的相邻像素的值以减少提取特征的尺寸。在此示例中,池大小为2x2,以及步幅为2。
64.在408处,卷积层2使用由7x7核定义的邻域中的池化层1的输出的线性组合来计算64个特征。
65.在410处,池化层2使用具有2x2池大小和步幅为2的最大池化来整合来自第二卷积层的相邻像素的值。
66.在412处,在此示例实施方式中,平坦化张量为每个字符生成7x7x64个特征向量。
67.在414处,密集层1提供两层中的第一层,所述两层使用来自卷积层2的特征,以使用来自池化层2的平坦化特征向量将输入图像分类为标签。在此示例中,其包括1024个神经元。
68.在416处,密集层2包括用于将最终图像分类为输入类(例如,0
……
9、a
……
z、a
……
z、

、和否定类)的64个神经元。在此示例实施方式中,密集层2包括以速率为0.55退出正则化以帮助改进模型准确性。
69.在418处,密集层2的输出被输入到softmax函数或另一个类似的函数中,该函数将表示输入图像分类的权重向量转换为在0和1之间的数字的向量,所述数字是输入中每个可能的类的概率。因此,特定输入图像的分类结果是概率值最大的位置。
70.通常,cnn的人工智能(ai)深度学习方法被创建为像人类大脑的视觉皮层部分一样操作。在示例实施方式中,cnn架构可以实现以在训练过程期间通过使用数学卷积利用输
入图像(例如,域名的每个字符的输入图像)的空间结构来自动学习特征。
71.现在将描述所公开的用于检测域名的同形异义词的技术的附加示例过程。
72.用于检测域名的同形异义词的示例过程
73.图5是图示根据一些实施例的用于检测域名的同形异义词的在线过程的流程图。在各种实施例中,过程500由以上关于图2

4描述的系统和过程执行。
74.在502处,接收dns数据流。例如,dns数据流可以包括dns查询和对于dns查询的解析的dns响应。
75.在504处,执行针对dns数据流中的每个域应用同形异义词检测器。例如,公开了用于生成同形异义词检测模型的各种技术,该模型使用基于图像的逐字符相似性技术来识别同形异义词以检测目标域名的同形异义词,如以上类似描述的那样。
76.在506处,执行使用同形异义词检测器检测dns数据流中的域名的同形异形词。例如,同形异义词分类器可以对目标列表执行查找、应用相似性得分度量和/或实现k

最近邻(k

nn)算法或其他距离/分类/ml算法以基于查找识别匹配和/或基于阈值相似性得分或k

nn阈值距离结果来识别附近/接近匹配,如以上类似描述的那样。
77.在508处,基于检测域名的同形异义词来执行缓解动作。例如,缓解动作可以包括配置动作和/或过滤动作(例如,阻止或丢弃去往/来自不良/恶意软件网络域和/或与潜在恶意网络域相关联的不良/恶意软件ip地址的数据包)。作为另一示例,缓解动作可以包括配置网络设备(例如,实现为物理或虚拟交换机/路由器的交换机或路由器)以隔离受感染的主机和/或阻止对不良网络域和/或与域名的同形异义词相关联的不良ip地址的访问,使用网络访问控制或其他机制来隔离受感染的主机和/或阻止对不良网络域和/或不良ip地址的访问,使用开放流技术配置安全设备控制器以配置网络设备(例如,实现为物理或虚拟交换机/路由器的交换机或路由器)以隔离受感染的主机和/或阻止对不良网络域和/或不良ip地址的访问,和/或以诸如经由api或发布/订阅机制实现其他配置/编程技术,来配置网络设备(例如,实现为物理或虚拟交换机/路由器的交换机或路由器)以隔离受感染的主机和/或阻止对不良网络域和/或不良ip地址的访问。
78.图6是图示根据一些实施例的用于生成用于检测域名的同形异义词的模型的离线过程的流程图。在各种实施例中,过程600由以上关于图2

4描述的系统和过程执行。
79.在602处,执行为域名的字符的图像生成训练和测试数据集。例如,可以实现域名的字符的图像的训练和测试数据集,如上文关于图3的304类似描述的那样。
80.在604处,执行使用训练和测试数据集训练同形异义词分类器以识别在视觉上与一个或多个ascii字符类似的unicode字符。例如,可以训练同形异义词分类器,如上文关于图3的306类似描述的那样。
81.在606处,执行对unicode字符集执行同形异义词分类器以生成ascii到unicode映射。例如,同形异义词分类器可以生成ascii到unicode映射,如上文关于图3的310和312类似描述的那样。在示例实施方式中,同形异义词分类器可以被部署以提供内嵌同形异义词检测模型(例如,分类器),如上文关于图6类似描述的那样。此外,同形异义词检测模型可以使用公开的技术继续在线学习有效dns流量(例如,包括自动特征提取),如上文类似描述的那样。例如,如果新的脚本和字符被添加到unicode标准,则可以执行上述离线训练过程以更新同形异义词分类器以生成包括新的unicode字符(例如,在unicode标准下新的脚本和
字符变为大约每年可用一次)的ascii到unicode字符映射。
82.尽管为了清楚理解的目的已经相当详细地描述了前述实施例,但是本发明不限于所提供的细节。存在许多实现本发明的替代方式。所公开的实施例是说明性的而非限制性的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1