来源:Joint Detection of Malicious Domains and Infected Clients
感染恶意软件的计算机的连接和基于加密的HTTPS流量的恶意web域的检测是具有挑战性的问题,因为只有地址、时间戳和数据量是可见的。检测问题是耦合的,因为受感染的客户端往往与恶意域交互。流量数据可以大规模收集,反病毒工具可以用来识别受感染的客户端。相反,域必须在取证分析后单独标记。探讨了基于闸网络的转移学习方法;这使得检测模型来引导对方。在一项大规模的实验研究中,我们发现该模型比已知的参考模型性能更好,可以检测到以前未知的恶意软件、以前未知的恶意软件家族和以前未知的恶意域。
1介绍
恶意软件侵犯了用户的隐私,获取密码和个人信息,可以加密用户的文件索取赎金,用于实施点击欺诈,并通过在社交媒体上推广特定内容来促进政治议程(Kogan, 2015)。基于客户机的防病毒工具使用特定于供应商的混合方法,包括基于签名的分析、可移植可执行文件的静态分析、仿真(在实际操作系统中执行之前不访问实际系统资源的部分执行)和基于动态行为的分析来检测恶意软件(Swinnen和Mesbahi, 2014)。网络流量分析是杀毒软件的补充,广泛应用于企业网络。流量分析允许组织在整个网络中一致地实施可接受使用和安全策略,并最小化管理开销。流量分析使得将恶意软件检测封装到网络设备或云服务中成为可能,这些设备或云服务可以检测多态恶意软件(Karim et al., 2005)以及基于URL模式(Bartos和Sofka, 2015)的未知恶意软件。
然而,恶意软件可以很容易地阻止分析其HTTP有效载荷使用加密的HTTPS协议。HTTPS本身的使用并不引人注目,因为谷歌、Facebook、LinkedIn和许多其他流行的网站默认加密它们的网络流量,而且HTTPS的全球数据量已经超过了HTTP (Finley, 2017)。为了对HTTPS流量进行网络流量分析,现在的组织必须对其网络进行配置,以便所有web流量都通过web安全服务器进行路由。该服务器的根证书必须作为可信证书安装在所有客户端计算机上,这允许服务充当客户端和主机之间的中间人。它可以解密、检查和重新加密HTTPS请求。这种方法在大型网络上的伸缩性很差,因为加密操作的计算开销很大,而且会给网络带来潜在的漏洞。
在不破坏加密的情况下,HTTPS流量的观察者只能看到客户端和主机的IP地址和端口,以及数据包的时间戳和数据量。网络设备将一对IP地址和端口之间交换的TCP/IP数据包聚合到网络流中,地址、时间和数据量信息保存到日志文件中。大多数情况下,观察者还可以看到未加密的主机域名。HTTP有效负载(包括HTTP头字段和URL)被加密。
网络主机参与了广泛的非法活动,将已知的恶意域和IP地址的流量列入黑名单是对抗恶意软件的有效机制。恶意域可以承载银行木马和金融诈骗、点击欺诈服务器或恶意内容分发中心的后端。将一个域识别为恶意需要一个复杂的取证分析。分析人员必须收集关于承载域、软件和使用的技术的服务器的信息,并且可以研究域和共同承载域的所有权,以及观察主机的行为。
由于许多类型的恶意活动涉及与基于客户机的恶意软件的交互,因此检测恶意主机和受感染的客户机是耦合问题。在神经网络环境中,相关任务的标记数据常常被设计成共享部分参数的耦合网络。在水闸网络中(Ruder et al., 2017),参数共享的程度本身由参数控制,这使得辅助数据可以作为手头任务的灵活先验。
本文其余部分的结构如下。第二节回顾相关工作。我们在第3节中描述我们的操作环境和数据,在第4节中描述问题设置。在第5节中,我们推导了恶意软件和恶意域的联合检测模型,并描述了参考方法。第六部分是实验,第七部分是结论。
2相关工作
之前的HTTP日志分析工作(Nguyen和Armitage, 2008)已经解决了识别命令和控制服务器(Nelms et al., 2013)、无监督检测恶意软件(Kohout和Pevny, 2015b;Bartos等人,2016),并监督检测恶意软件使用领域黑名单作为标签(Franc等人,2015;Bartos and Sofka, 2015)。HTTP日志文件包含完整的URL字符串,从中可以提取大量的信息特性(Bartos和Sofka, 2015)。
最近的大量工作都是通过网络流量分析来检测Android恶意软件。Arora等人(2014)使用平均包大小、平均流持续时间和一小组其他特征来识别一小组48个恶意Android应用程序,具有一定的准确性。Lashkari等(2015)收集了1500个良性和400个恶意的Android应用程序,提取了流量持续时间和流量特征,并从Weka库中应用了几种机器学习算法。他们观察到个别流量水平的高精度值。Demontis等人(2018)针对这种检测机制建立了不同类型的攻击模型,并设计了一个特征学习范式来缓解这些攻击。Malik和Kaushal(2016)通过众包领域声誉服务(信任网络)和应用程序的资源许可来汇总应用程序的排名。
之前关于HTTPS日志的工作旨在识别应用层协议(Wright et al., 2006;Crotti et al., 2007;Dusi等人,2009)。为了对承载类似应用程序的web服务器进行集群化,Kohout和Pevny (2015a)开发了从可见时间间隔和连接数据量的直方图派生出来的特性。Lokoc等人(2016)利用这种特征表示,开发了一个近似的k-NN分类器来识别被恶意软件连接的服务器。被恶意软件联系的主机不一定是恶意的。恶意软件使用URL转发和其他技术,通过合法的主机路由其流量,并可能联系合法的服务,只是为了稀释其网络流量。不过,我们将使用直方图特征作为参考特征表示。
基于图的分类方法(如Anderson et al., 2011)已经被探索过,但不能应用到我们的操作环境中。在我们的操作环境中,云Web安全服务器只观察组织内的网络流量。为了感知网络图的一个重要部分,公司将不得不交换他们的网络流量数据,这在逻辑和隐私方面是不切实际的。
之前关于网络流分析的神经网络的工作(Pevny和Somol, 2016)使用客户端计算机的标签(已感染和未感染)——这导致了一个多实例学习问题。相比之下,我们的操作环境允许我们观察流和可执行文件之间的关联。利用域名的word2vec嵌入和长短期内存网络(LSTMs)相结合的方法,研究了来自HTTPS流量的恶意软件检测(Prasse et al., 2017)。我们将把这种方法作为实验的参考。最近的研究结果表明,卷积神经网络(CNNs)更强的鲁棒性超过了LSTMs考虑长期依赖关系的能力(Gehring et al., 2017)。这激发了我们对卷积架构的探索。神经网络也被应用于静态恶意软件分析(Pascanu et al., 2015)。
在深度学习环境中,多任务学习通常通过隐藏层的软、硬参数共享来实现。在硬参数共享中,所有任务的模型可以共享卷积层(Long and Wang, 2015),甚至所有隐层(Caruana, 1993),这可以显著增加用于优化大部分参数的样本量(Baxter, 1997)。相比之下,软参数共享可以作为分层贝叶斯建模在神经网络中的直接应用来实现:在所有任务中,每个参数都被正则化为其平均值(Duong et al., 2015;杨和Hospedales, 2016)。 Cross-stitch (Misra et al., 2016)和水闸网sluice networks络(Ruder et al., 2017)允许网络中不同部分的任务耦合程度由参数控制。水闸网络具有比十字绣网络更一般的形式,因为它们有额外的参数,允许特定任务的网络层加权。
神经网络的替代转移学习方法加强了在不同任务之间不变的中间表示(Ganin et al., 2016)。除了深度学习之外,lasso正则化器组还加强了子空间共享,并研究了多种用于多任务学习的方法,这些方法基于层次贝叶斯模型(如Finkel和Manning, 2009)、学习任务不变特征(如Argyriou等,2007)、任务相似核(Evgeniou等,2005)和学习实例特定权重(如Bickel等,2008)。
3操作环境
本节描述我们的应用程序环境。为了保护组织的所有计算机,云Web安全(CWS)服务提供了组织的私有网络和internet之间的接口。客户端计算机建立到CWS服务的VPN连接,来自组织内任何客户端的所有外部HTTP和HTTPS连接都将通过该服务进行路由。该服务可以基于主机域和组织的可接受使用策略阻止HTTP和HTTPS请求。CWS服务将阻止所有恶意域之间的所有流量。当在客户端检测到恶意软件时,它会发出警告。由于安全分析师必须处理恶意软件警告,所有发布的警告中,假警报的比例必须很小。
在应用层,HTTPS使用HTTP协议,但是所有消息都通过传输层安全性(TLS)协议或其前身安全套接字层(SSL)协议进行加密。CWS服务将单个客户端计算机、客户端端口、主机IP地址和主机端口之间的所有TCP/IP包聚合起来,这些包来自单个HTTP请求或HTTPS请求的TLS/SSL隧道到网络流。对于每个网络流,将一行写入日志文件,其中包括数据量、时间戳、客户机和主机地址以及持续时间信息。对于未加密的HTTP流量,这一行也包含完整的URL字符串。对于HTTPS流量,它包含域名——如果该名称可以通过以下机制之一观察到的话。
使用服务器名称指示协议扩展(SNI)的客户机在建立连接时发布未加密的主机域名。SNI被广泛使用,因为它需要验证承载多个域的服务器的证书,就像大多数web服务器一样。当网络使用透明的DNS代理(Blum和Lueker, 2001)时,该服务器缓存DNS请求-响应对,并可以将IP地址映射到以前解析的域名。日志文件行的结果序列作为恶意软件和恶意域检测模型的输入。
3.1数据收集
在我们的实验中,我们结合了大量的HTTPS网络流(Prasse et al., 2017),它们被标记为是否来自一个恶意的合法应用程序,以及一个由Cisco的取证专家维护的域黑名单。
Prasse等人(2017)收集了340个公司网络中通过CWS服务器的HTTPS网络流。这些网络中的客户机运行一个VPN客户机,该客户机监视进程表和网络接口,并记录哪个可执行文件创建每个网络流。回顾过去,可执行文件已经用多种防病毒工具进行了分析。结果数据集由已知客户端(由组织和VPN帐户标识)、域(完全合格的域名)、数据量和时间戳以及一个标签组成,该标签指示生成流量的应用程序是否被防病毒工具识别为恶意软件。我们按时间顺序对训练和测试数据进行分层。训练数据包含了2016年7月为期5天的171个小型到大型计算机网络的完整HTTPS流量。测试数据包含了2016年9月为期8天的169个不同计算机网络的完整HTTPS流量。思科的取证专家一直在调查可疑的主机名、二级域名和服务器IP地址,这些都被各种各样的机制标记过。这包括对托管软件和使用的技术、注册表记录、URL和流量模式的分析,以及对特定域可用的任何附加信息的分析。我们相信域几乎从不被错误地评定为恶意的,但是由于昂贵的分析过程,恶意域的黑名单必然是不完整的。所有来自或转至恶意服务的通讯都很容易被ws服务拦截。网络流量不包含任何流向在收集流量数据时已在我们的黑名单上的域的流量。流量数据集包含与4,340个恶意主机名、二级域名和服务器IP地址之间的网络流,这些恶意主机名、二级域名和服务器IP地址在收集数据后被添加到黑名单中。
3.2数据的定量分析
表1和表2总结了良性和恶意网络流、客户机计算机、受感染计算机、具有唯一散列的应用程序和组织的数量。
表3给出了最常见的恶意软件家族的统计数据。它列举了发生的变化的数量、受感染的客户机的数量,括号内是训练数据中受感染的客户机的数量。
总的来说,只有不到18000台电脑被恶意软件感染,并与当时未被列入黑名单的域名进行通信,这几乎相当于0.6%。
在流量数据中,记录流量数据后加入黑名单的域名有4340个。表4详细列出了所有数据和训练数据中出现的恶意主机名、二级域和服务器IP地址的类型。