数据收集包括一组记录,每个记录基于模板的格式,每个记录包括一序列的NetFlow信息元素field,以及每个field对应的具体数值。
包括一条流的五元组信息(IP地址、端口号、协议号),以及报文字节数统计、时间戳,TLS特征等等。
从如上图可以看出,在网元上(交换机或者路由器)通过Enhanced NetFlow收集数据流特征。
思科Stealthwatch基于NetFlow、代理服务器、端点遥测、策略访问引擎。
Stealthwatch集成认知分析以及基于云的分析引擎,使得StealthWatch可以关联业务的全球威胁行为,自动识别被感染主机、指挥控制网络通信、隔离可疑流量。
在加密数据中提取多个特征,关联思科安全大数据中的 Security Map,寻找恶意软件的痕迹,通过全局到局部的认知关联提高病毒威胁检测的精度。
认知分析维护一个全局风险地图(global risk map),这个风险地图拥有关于互联网服务器的广泛行为概况,识别与攻击相关的服务器、可能会被利用或者将被用作攻击一部分的服务器。应用机器学习、统计建模的方式对加密数据进行分析。
第一个层次决定流量是否是可信的、是否是异常的,从而检测出异常流量继续走第二个层次。
第二个层次对异常流量进行事件分类和实体建模。
第三个层次进程关系建模,从而检测出威胁流量。
ETA提取数据流的4个要素包括:
数据流的前几个报文的数据包长度(数据包应用载荷的字节数,16位整数值)以及报文发送间隔时间顺序(毫秒,16位整数值)。根据这些发现,获得加密数据的流量模型, 也可以为加密流量传输的流量内容提供重要线索。
数据包字节分布,通过字节分布可以发现一个特定的字节数值在报文载荷中出现的频率。每个频繁为16位整数值。
TLS特征,包括TLS记录、TLS记录长度、TLS记录时间间隔、TLS内容类型、TLS握手类型、TLS密码套件、TLS扩展、TLS扩展长度、TLS扩展类型、TLS版本、客户端的公钥长度、TLS会话ID、TLS hello报文中观察到的随机值。
初始数据包,获取数据流的第一个报文内容(从IP报文首部开始),可以提前关键数据。这一明文数据包可能包含加密相关的宝贵数据,如加密采用的HTTP URL、DNS主机名、TLS版本、算法、证书、TLS扩展选项等。
正常报文
上图是正常访问google页面时TLS会话中的报文发送长度、报文发送间隔。X轴代表时间,Y轴向上代表客户端发送给服务端的报文大小,Y轴向下代表服务端发送给客户端的报文大小。
红色的代表未加密数据,黑色的线代表加密数据。
Google查询是一个经典模式,客户端的请求初始报文是一个很小的数据包,之后伴随服务端发送大量的应答报文,这些应答报文的大小都达到了MTU限制。
病毒报文(病毒样本bestafera)
上图是病毒样本bestafera发起的TLS会话。整个过程包括签名证书、数据泄露、C2信息。
病毒样本bestafera服务端在客户端发起连接后,发送一个签名证书给客户端。在完成握手之后,客户端开始向服务端发送泄露的数据。之后停顿了一下,然后服务器发送了一个定时调度命令和控制消息。
综上,报文长度和报文发送间隔虽然不能提供关于TLS会话报文的深刻洞察,但是可以方便推论TLS会话行为。
TLS ClientHello
报文中提供了两个重要的信息用来区分不同的TLS库和应用程序。客户端为服务器提供一组客户端排好序的密码套件列表。每个密码套件定义了一组方法,如加密算法和伪随机函数,这些方法用于TLS会话连接和数据传输。客户端还可以提供一组TLS扩展,为服务端提供必要的参数做秘钥交换,比如ec_point_formats
。
大量的用户级应用以及大量的TLS连接扩展都使用了常用的TLS库,比如BoringSSL、NSS、 OpenSSL。由于应用开发者通常会修改TLS库的默认参数以优化应用程序,所以这些应用程序通常有独特唯一的TLS指纹。
bestafera的TLS指纹是独特的,它使用OpenSSL 1.0.1r的默认设置创建TLS连接。
聚焦于三种数据类型的简单特征表示,包括NetFlow、报文长度、TLS ClientHello报文中携带的信息。这些数据类型都是从单一的TLS会话中获取。通过开发模型来合并不同的数据流特征。
在机器学习之前,需要将所有的数据特征进行标准化,使得这些特征均值为0、方差为1,从而满足标准正态分布。
利用NetFlow的5个特性:持续的数据流、客户端发送的报文数、服务端发送的报文数、客户端发送的报文字节数、服务端发送的报文字节数。
创建length-20的特征向量,每个条目存储双向流的数据包大小。从客户端到服务端的包大小是正的,从服务端到客户端的包大小是负的。
分析TLS ClientHello报文中所提供的密码套件列表和扩展列表。如176个独特的密码套件和21个独特的扩展,会产生length-197二进制特征向量。
使用scikit-learn随机森林算法进行机器学习。随机森林算法通过设置125棵决策树、在每颗决策树上设置特征个数为所有特征总数的平方根。随机森林算法使用的特征集包括SPL、TLS元数据。
从上图可以看出,当随机森林算法节点阈值在0.5的时候,病毒检测准入率可以达到99.35%。
开源工具joy,提供了报文特征提取方法。
思科Talos
思科Talos是思科的威胁情报组织,专门为思科客户、产品和服务提供卓越的保护。借助上百万个遥测代理、4个全球数据中心、超过100家威胁情报合作伙伴以及1100个威胁捕获程序,这个由超过250位安全研究人员和600名软件工程师组成的团队已经是目前全球最大的安全研究团队和分析威胁情报数量最多的组织。
思科Talos采用自动化安全大数据方法分析来自全球的邮件、网站和超过1.5亿网络终端设备的威胁情报,每天可分析全球1/3的邮件总量(6千亿封邮件/每天)、超过150万独立恶意软件样本。
思科Talos每天阻止200亿次威胁和8000万次恶意DNS查询,接收160亿网站请求。Snort、ClamAV等开源工具和平台正是出自思科Talos之手,同时思科Talos还得到了Senderbase.org和Spamcop.net社区的庞大资源支持。
ThreatGrid
一家恶意软件技术防护公司,被思科收购。
————————————————
版权声明:本文为CSDN博主「b0207191」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/b0207191/article/details/88598190