英特尔企业踪迹中的目标原子
我们对于研究用户行为与网络流量方式的直接关联很感兴趣。因此,我们搜集了英特尔公司网络内部的企业数据。我们搜集了5个星期的大约400个端点主机的踪迹。我们和其他人员随后进行了数据挖掘以发现有趣的现象、统计以及与一贯的设想相矛盾的地方。
在研究真正的企业踪迹的时候,我们看到,当目标的应用相互关联的时候,效率得到了显著的提高。因此,我们的Canary算法仅依靠我们称之为目标原子的抽象层。这是网络服务的逻辑代表。这种水平的摘要显著减少了跟踪的目标实体的数量,从而减少跟踪原子所需要的人员。对应一个连接的目的地的基本定义是元组(目标IP、目标端口、proto)。元组是一个用于连接的端点,由目标地址、目标端口和正在使用的proto传输协议所组成。在知名的服务中,多个物理主机经常提供同样的难以区别的应用程序服务。因此,我们能够把一组服务组合为一个单个的原子(目标IP、目标端口、proto)。在这里,这个服务就是基础地址解析的这个域名。这些原子的例子包括 (www.google.com, 80, tcp)、(akamaitech.com, 80, tcp)和(mail.cisco.com, 135, tcp)。
通过进一步研究应用程序使用端口的情况还可能进一步概括这个应用。设想一个用PASV模式连接的FTP服务器。最初的连接是通过端口21,但是,另一个服务器协商的短期使用的端口可用于数据传输。这样,一个FTP进程就有两个原子(ftp.service.com, 21, tcp)和(ftp.service.com, k, tcp)。在这里,“k”是一个1024以外的端口号码,可以看作是提供相同的服务。通过考虑FTP语义,我们能够把1024编号以上的全部端口增加到相关的原子(ftp.service. com, 21:>1024, tcp)。这意味着当我们看到端口21的连接时,我们可以预计在不远的将来使用一个短期的端口。
在真正的企业跟踪中,我们有许多机会实施这种水平的摘要,主要是针对微软135至139之间的RPC端口。然后,我们得出这个目标原子的全面定义(地址集、端口集和proto协议)。在这里,地址集是一组目标地址:这些地址与应用程序提供的地址是一样的;端口集是一组单个的端口或者端口范围;最后,proto是这个服务使用的一个传输协议。表1枚举了一些从企业踪迹中提取的一些原子。
表1:从企业踪迹中提取的原子(来源:英特尔公司,2009)
需要指出的是,一个目标主机能够提供许多独特的服务。在这种情况下,这个端口足以消除各个服务的歧义,尽管这些服务有同样的服务名称。这些服务名称可以通过反向DNS查询获得。最后,需要指出的是,在地址不能映射到名称的时候,做摘要是不可能的。常规的目标地址是最终的描述符。