2. 中国科学院信息工程研究所, 北京 100093 ;
3. 北京邮电大学计算机学院, 北京 100876
2. Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China ;
3. School of Computer Science, Beijing University of Posts and Telecommunications, Beijing 100876, China
随着大数据、IoT(Internet of Things)技术的发展,越来越多的终端设备接入网络空间.数字视频摄像机、VoIP网络电话、网络打印机、智能交换机等新型终端设备和传统的服务器、路由器共同构成新的网络环境.当前网络空间中的终端设备具有规模庞大、类型复杂的特点.据统计,除普通网站和主机外,接入网络空间的终端设备数量已超过500万,大类超过20种[1].复杂的网络环境带来了更多的安全隐患,新型的黑客攻击可能针对一个无线路由器以重置路由信息、获得管理员权限、窃取用户隐私流量等[2-4],甚至攻击大型工业控制系统扰乱工业生产[5-7].
终端设备存在的安全漏洞时刻威胁着用户的隐私安全和财产安全,对终端设备进行漏洞检测与风险评估是保障网络空间安全的基本途径之一. 特定的安全漏洞往往威胁某一特定类型或版本的网络设备.因此,进行安全评估和安全预警就要求能够对终端设备的类型及其型号进行准确的识别.以往的识别技术仅针对Apache、IIS等传统的Web服务器软件,并不能完全适用于新的网络环境.本文在此方向上探索和研究新的终端设备识别方法,并为网络空间终端设备安全评估和安全预警提供思路.
1 研究现状与相关工作近年来,网络指纹识别技术已成为网络安全领域的研究热点,国内外学者提出了诸多网络指纹识别的理论和方法.
文献[8]提出通过服务标识(Banner)来识别Web服务器软件的方法.由于部分终端设备的HTTP返回包中并不含有Banner信息,因此该方法在识别终端设备时具有一定局限性.文献[9]提出一种不依赖Banner信息的识别方法,即通过返回的某些原因短语差异和超长URL处理方式差异来识别.但此种方法可能会增加终端设备的处理负担,造成拒绝服务,或被防火墙等设备判定为攻击行为,引发报警.文献[10]提出一种类似识别TCP/IP栈指纹[11]的Web指纹识别方法.该方法通过构造畸形的HTTP请求,并根据不同Web服务器软件处理方式的差异进行识别.但此种差异的数量是有限的,不同类型和型号终端设备的数量远大于此种差异的数量,通过这种方法来识别将会出现重复,导致误判.文献[12]向Web服务器分别发送15种畸形的HTTP请求,并以返回的状态码作为输入,构造朴素贝叶斯分类器进行分类,实现对主流Web服务器软件的识别,但未能实现对无线路由器、IP摄像头、智能交换机等其他终端设备的识别.
在此前的研究中,识别对象仅为传统的Web服务器软件.而如今的网络空间中终端设备类型复杂、数量繁多,传统的识别方法难以保证对新型网络空间终端设备的识别准确率.因此,本文提出一种基于K-means聚类算法的网络空间终端设备识别模型.该模型通过选取适当的HTTP头字段是否存在作为特征,以余弦距离测度作为相似性度量测度,在大量无标记样本中加入标记样本,通过无监督机器学习的方法对终端设备进行识别,解决了传统Web指纹识别方法中识别对象局限于主流Web服务器的缺陷,实现了对无线路由器、IP摄像机、智能交换机等新型终端设备的识别.
2 K-means聚类模型K-means聚类算法是一种无监督学习方法,通过将研究对象样本集按相似性准则划分为若干簇,最终达到簇内相似、簇间相异的聚类效果[13].在聚类过程中,首先人工确定聚类数K,并在样本集中随机选取K个样本作为初始聚类中心;对样本集中的每个样本,计算其与所有聚类中心的相似度,并将其划分给最相似的簇;然后重新计算各簇的簇内平均值作为新的聚类中心.整个过程重复进行,直到聚类准则函数收敛.
算法步骤如下:
1) 设给定样本集X={x1,x2,…,xn},其中xi为第i个样本的d维特征向量;给定聚类数K,并在样本集X中随机选取K个初始聚类中心,记为c1,c2,…,cK;
2) 对给定样本集的n个样本,根据相似性度量函数计算它们与各聚类中心的相似性程度,并按相似性程度划分为K个簇C1,C2,…,CK;
3) 分别计算各簇的簇内平均值,作为新的聚类中心;
4) 计算聚类准则函数
$J=\sum\limits_{j=1}^{K}{\sum\limits_{{{x}_{j}}}{d\left( {{x}_{i}},{{c}_{j}} \right),}}$ | (1) |
式中,cj表示簇Cj的聚类中心,d(xi,cj)表示相似性度量函数;
5) 若聚类准则函数收敛,则终止算法;否则重复执行步骤2)至步骤4),直至聚类准则函数收敛;
6) 聚类准则函数收敛时,J值最小,聚类效果最优.
3 网络空间终端设备识别模型 3.1 识别模型设计识别模型如图 1所示,该模型主要包括4大功能模块.
Download:
|
|
图 1 网络空间终端设备识别模型 Fig. 1 Cyberspace device identification model |
样本采集模块:负责在整个IPv4地址空间中进行端口扫描,获取开放Web服务的无标记设备的IP地址,加入已知类型的标记设备的IP地址后形成设备IP地址集;向IP地址集中所有IP地址发送HTTP-GET请求以获取完整的HTTP返回包头部作为原始样本.
获取到的原始样本的信息可能为如下形式:
或
特征提取模块:提取HTTP返回包头部中能够反映终端设备特性的信息作为样本特征,去除冗余信息,以便降低计算复杂度,提高识别效率.
经提取后的样本信息可能为如下形式:
或
数据预处理模块:对提取后的样本特征进行预处理,将文本类型的特征数据转化为数值型,对特征数值进行向量化,使其能够适用于聚类算法.
经数据处理后的特征信息可能为如下形式:
或
聚类模块:以样本的多维特征向量作为输入,使用K-means聚类算法对数据进行划分,输出为聚类后的若干簇.
验证:首先,根据标记设备划分情况对聚类结果分配标签;其次,验证是否所有相同类型的标记样本都被划分到同一簇、同一个簇中与标签类型相同的终端设备占总数的百分比.
给出标签分配规则如下:
定义3.1 标签分配规则 对于设备类型Y,若所有Y型标记样本均被划分至同一簇,则定义该簇的类型为Y;否则,定义具有Y型标记样本数量最多的簇的类型为Y.
3.2 特征选取接收到HTTP-GET请求后,不同的终端设备返回的响应包间具有一定的差异,差异体现在返回包中头部组成不同、返回状态码不同、返回包整体长度不同、返回包内容不同;而同一类型的终端设备返回的HTTP包具有一定的相似性.因此,根据HTTP返回包中的这些差异特征能够对终端设备的类型进行识别.选择较好的特征集以及采用较好的特征处理方法能够使识别模型获得更好的识别性能.
本文在整个IPv4地址空间中随机选取20 000个开放Web服务的IP地址进行抽样调查.分别发送HTTP-GET请求,统计HTTP返回包中的头字段总数,选取出现频率最高的30个头字段(不含“content-length”字段)作为特征1至特征30;选取HTTP返回状态码及“content-length”字段值作为特征31和特征32,如表 1所示.其中xi表示第i个样本的特征向量,xij表示第i个样本的第j个特征.
对原始特征进行预处理和向量化后才能作为聚类算法的输入,本文采用的处理方式如下:
1) 若HTTP返回包头部中存在特征1至特征30中的头字段,则相应位置的数值为1;若不存在,数值为0;
2) 返回的HTTP状态码根据状态码集S中的索引,特征31数值标记为1~36中某值.
状态码集S为
S={200,202,203,204,205,301,302,307,400,401,402,403,404,405,406,407,408,410,412,416,451,456
,461,479,500,501,502,503,504,508,510,520,534,535,550,596}
3) 若HTTP返回包头部中存在头字段“content-length”,则特征32数值为“content-length”字段具体数值,若不存在,数值为0.
特征预处理和向量化伪代码如下:
最终,将原始样本HTTP返回包文本特征转换为32维特征向量,为聚类模型提供输入.
3.3 相似性度量函数在K-means聚类过程中,2个样本间的相似性计算非常重要,相似性度量函数的优劣决定最终的聚类效果.在向量空间模型下,可以借助向量之间的某种距离表示样本间的相似度.目前,研究者已提出多种方法来评价同一个特征空间中2个特征向量间的距离,然而并非所有的距离测度在各种情况下都适用.文献[14]指出,余弦距离测度和谷本距离测度相比欧氏距离测度等更适合作为文本文档的相似性测度.本文选取的特征来源于HTTP返回包头部信息,经文本文档特征提取和向量化得到.因此,本文选取余弦距离函数作为相似性度量函数.
特征向量xi与聚类中心cj的余弦相似度计算如下:
$\cos \theta =\frac{{{x}_{i}}c{{'}_{j}}}{\sqrt{\left( {{x}_{i}}x{{'}_{i}} \right)\left( {{c}_{j}}c{{'}_{j}} \right)}},$ | (2) |
根据式(2)得出相似性度量函数
$d\left( {{x}_{i}},{{c}_{k}} \right)=1-\frac{{{x}_{i}}c{{'}_{j}}}{\sqrt{\left( {{x}_{i}}x{{'}_{i}} \right)\left( {{c}_{j}}c{{'}_{j}} \right)}},$ | (3) |
由式(3)可知,特征向量xi与聚类中心cj的余弦相似度越高,相似性度量函数d(xi,cj)的值越小.
根据式(3)得出聚类准则函数
$J=\sum\limits_{j=1}^{K}{\sum\limits_{{{x}_{j}}}{d\left( {{x}_{i}},{{c}_{j}} \right)=}}\sum\limits_{j=1}^{K}{\sum\limits_{{{x}_{j}}}{\left( 1-\frac{{{x}_{i}}c{{'}_{j}}}{\sqrt{\left( {{x}_{i}}x{{'}_{i}} \right)\left( {{c}_{j}}c{{'}_{j}} \right)}} \right).}}$ | (4) |
由式(4)可知,当聚类准则函数收敛时,函数值J达到最小,即所有簇的簇内元素与簇中心的余弦相似度均达到最高,聚类效果最优.
下面对余弦距离测度和欧氏距离测度下K-means聚类效果进行讨论.
设有3种类型的终端设备A,B,C各4个,2个A设备由于语言支持不同,第32个特征出现了10字节的偏差,B设备没有content-length字段.12个设备的前31维特征向量均为:
在第32个特征不同的4种情况下,对12个终端设备在不同距离测度下进行30次聚类实验,正确聚类次数结果如表 2所示.
由表 2可知,无论在各设备的第32个特征差别极大或极小的情况下,2种A设备相差10字节,差距较小;而B设备和C设备相差10,实际上是一个字段的有无,差距较大,此时采用余弦距离测度进行聚类的结果正确率要明显高于采用欧氏距离.因此,对于本文选取的特征向量,余弦距离函数更适合作为K-means聚类中的相似性度量函数,证明本文选取余弦测度的合理性和先进性.
3.4 算法描述根据网络空间终端设备识别模型,给出实验相应算法:
1) 扫描IPv4空间中开放Web服务的IP地址,加入已知设备类型的IP地址,形成IP地址集;
2) 获取原始样本集D={d1,d2,…,dn},包括标记样本和无标记样本,其中di为第i个原始样本的HTTP头部;
3) 对原始样本di进行特征提取、预处理和向量化;
4) 得到样本集X={x1,x2,…,xn},其中xi为第i个样本的32维特征向量;给定聚类数K,并在样本集X中随机选取K个初始聚类中心,分别为c1,c2,…,ck;
5) n个样本,按照它们与各聚类中心的余弦相似性划分为K个簇C1,C2,…,CK;
6) 分别计算各簇内平均值,作为新的聚类中心;
7) 根据式(4)计算聚类准则函数J;
8) 若聚类准则函数J收敛,则终止算法;否则重复执行步骤4)至步骤6),直至聚类准则函数J收敛;
9) 得到最终聚类结果簇C1,C2,…,CK,按标记样本划分情况分配标签;
10) 根据标签对簇内元素进行识别准确度验证.
4 实验及结果分析 4.1 实验准备本文在整个IPv4地址空间中随机选取50 000个开放80端口的IP地址作为无标记样本,随机选取避免了终端设备局部相似的现象,获取的研究对象样本更加合理;另选取50个IP地址作为标记样本,其中共有5种已知类型的终端设备,每种10个.
对50 050个IP地址发送HTTP-GET请求,获取HTTP返回包头部,对头部数据进行特征提取和向量化,将样本原始数据转换为32维特征向量.将50 000个无标记样本和50个标记样本重组为样本集1、样本集2、样本集3,分别含有30 050、40 050、50 050个样本.
4.2 实验结果按照本文给出的算法流程,对样本集1、样本集2、样本集3分别取K=3 000、K=4 000、K=5 000进行识别实验.
根据定义3.1中标签分配规则,为聚类结果分配标签.对5个有标签簇进行统计后得到标记样本识别数和簇样本数结果如表 3所示.
样本识别准确率计算方法如下:
定义4.1 样本识别准确率 设聚类结果中某簇按照标签分配规则被标记为Y型,则Y型设备的样本识别准确率Ra(Y)为
$Ra\left( Y \right)=\frac{Y型簇中Y型样本数}{Y型簇中样本总数}.$ | (5) |
对聚类结果进行人工验证后得到识别准确率如表 4所示.
样本识别遗漏率计算方法如下:
定义4.2 标记样本识别遗漏率 设聚类结果中某簇按照标签分配规则被标记为Y型,且Y型标记样本不全在Y型簇内,则Y型设备的标记样本识别遗漏率Ro(Y)为
$Ro\left( Y \right)=\frac{非Y型簇中Y型标记样本总数}{Y型标记样本总数}.$ | (6) |
由于同一种类型的终端设备的标记样本和无标记样本并无差别,标记样本可视为所有同类样本的抽样,因此标记样本识别遗漏率能在一定程度上反映总体识别遗漏情况.
由表 3可知,3次实验中,同种类型的标记样本始终被划分至同一簇,因此各种设备的标记样本识别遗漏率Ro(Y)均为0.
对聚类结果中的无标签簇进行分析后发现,多个无标签簇中含有大量同种类型的终端设备,对于无标签簇,需人工后验进行标签分配,分配规则如下:
定义4.3 后验标签分配规则 对于设备类型Y,若某无标签簇中Y型设备所占比例最高,则定义该簇的类型为Y.
经人工后验统计筛选并分配标签后得到样本数结果如表 5所示.
根据式(5)计算识别准确率如表 6所示.
根据以上实验结果中表 3可知,对于一种类型的终端设备,随着样本数量的增加,识别出的设备总数呈递增趋势,并且该类型的所有标记样本始终被成功划分至同一类.因此证明本文提出的识别模型能够成功识别出多种类型的终端设备,并且具有较低的识别遗漏率.
由表 4可知,除TP-Link无线路由器外,该模型对其余几种终端设备均能达到较高的识别准确率.对被标记为TP-Link无线路由器的簇进行分析后发现,该簇内包含其他类型的终端设备,列举2种被误划分至同一簇的终端设备如下:
DIGI PortServer TS4 MEI串口通信服务器:
APC UPS 网络管理卡:
特征向量分别为:
标记样本TP-Link无线路由器的特征向量为:
可见,该簇内各设备的HTTP返回包头部字段个数较少,且不同样本间的特征差异极小,结果导致聚类器误判,致使识别出的设备总数过多,识别准确率下降.
由表 5和表 6可知,后验标签簇中的样本数随着样本总数的增加呈递增趋势,且均具有较高的识别准确率.可见,该模型在遇到未知标签设备时仍然能够具有较好的识别率,证明了该方法的普适性.
5 讨论本文提出的模型,在识别网络空间终端设备时具有一定的先进性.与文献[12]相比,在探测稳健性方面,本文使用的探测流量均为正常的HTTP请求,而非构造的畸形请求.畸形的请求对识别对象具有一定的危害性,容易造成拒绝服务,并且畸形的请求在探测防火墙等设备时会被判定为攻击行为,造成探测误差;在识别对象方面,文献[12]实现了对主流Web服务器软件的识别,而本文针对的识别对象理论上能够覆盖大部分类型和版本的终端设备,包括无线路由器、IP摄像头、VoIP网关等;在指纹储备方面,普通模型需要维护一个较大的指纹库,且对于未知指纹,识别能力较差,本文模型采用无监督学习方法,可事先加入标记样本,同时支持对聚类结果进行后验,即能够在聚类结束后再给簇添加相应的标签,具有较高的普适性.本文模型与其他模型相比具有的先进性如表 7所示.
当然,该模型还存在一些不足和待优化之处,比如目前所针对的识别对象均为开放HTTP服务的终端设备,而对于只能通过Telnet、SSH等其他方式进行访问的终端设备,还需要进一步研究适用的网络指纹;对于最优聚类数K值的确定,还需要进一步研究网络空间终端设备总类型数的估算方法;对于个别类型的终端设备,该模型的识别误判率较高,还需进行大量研究以继续优化样本特征向量,这也是本文接下来的研究重点.
6 结束语网络空间中终端设备的数量一直呈不断增长的趋势,因此,终端设备识别技术将会是一种非常实用而且必需的技术.该技术对于全面统计终端设备的分布情况以及预警设备潜在威胁具有很强的实用意义.本文提出的基于余弦测度下K-means的网络空间终端设备识别模型,充分考虑了终端设备类型复杂、数量繁多的特点,通过从终端设备返回包的HTTP数据包头字段和状态码中提取特征信息,并使用以余弦距离函数作为相似性度量函数的K-means聚类算法,成功实现了对网络空间终端设备的识别,为网络空间终端设备安全评估和安全预警提供思路和理论支持.
[1] | ZoomEye. 网络设备统计分析[EB/OL]. (2015-12-31)[2015-12-31].https://www.zoomeye.org/statistic/device. |
[2] | Gallagher S. Backdoor in wireless DSL routers lets attacker reset router, get admin[EB/OL]. (2014-01-03)[2015-12-31]. http://arstechnica.com/security/2014/01/backdoor-in-wireless-dsl-routers-lets-attacker-reset-router-get-admin/. |
[3] | Chirgwin R. Hacker backdoors Linksys, Netgear, Cisco and otheh routers[EB/OL]. (2014-01-06)[2015-12-31]. http://www.theregister.co.uk/2014/01/06/hacker_backdoors_linksys_netgear_cisco_and_other_routers/. |
[4] | 国家互联网应急中心. 关于多款D-LINK路由器产品存在后门漏洞的情况通报[EB/OL]. (2013-10-25)[2015-12-31]. http://www.cert.org.cn/publish/main/9/2013/20131025152943288740930/20131025152943288740930_.html. |
[5] | Singh D, Sinha R, Songara P, et al. Vulnerabilities and attacks targeting social networks and industrial control systems[J]. Eprint Arxiv , 2014, 4 (1) :133–142. |
[6] | 彭勇, 江常青, 谢丰, 等. 工业控制系统信息安全研究进展[J]. 清华大学学报:自然科学版 , 2012, 52 (10) :1. |
[7] | 卢慧康. 工业控制系统脆弱性测试与风险评估研究[D]. 上海:华东理工大学, 2014. http://www.cnki.com.cn/article/cjfdtotal-gykj201504006.htm |
[8] | Shah S. An introduction to HTTP fingerprinting [EB/OL]. (2004-05-19)[2015-12-31]. http://net-square.com/httprint_paper.html. http://www.doc88.com/p-3159071586854.html |
[9] | Lee D, Rowe J, Ko C, et al. Detecting and defending against Web-server fingerprinting [C]//CSAC 2002: 2002 Computer Security Applications Conference. United States: IEEE Computer Society, 2002: 321-330. |
[10] | 杨可新, 鞠九滨. 利用Web指纹进行服务映射[J]. 计算机工程与应用 , 2004, 40 (4) :7–9. |
[11] | Fyodor. Remote OS detection via TCP/IP stack fingerprinting[J]. Phrack Magazine , 1998, 17 (3) :1–10. |
[12] | 吴少华, 孙丹, 胡勇. 基于贝叶斯理论的Web服务器识别[J]. 计算机工程 , 2015, 41 (7) :190–193. |
[13] | 刘三民, 孙知信, 刘余霞. 基于K均值集成和SVM的P2P流量识别研究[J]. 计算机科学 , 2012, 39 (4) :46–48. |
[14] | 陈磊磊. 不同距离测度的K-Means文本聚类研究[J]. 软件 , 2015, 36 (1) :56–61. |