-
随着移动互联网的快速发展,人们越来越多地使用远程连接来管理云服务、智能设备和计算机等系统中的资源和数据,在带给用户极大使用便利的同时,却也面临着黑客通过暴力破解登录账号密码从而远程窃取用户信息或控制用户设备等风险.所谓暴力破解,就是攻击者通过尝试所有可能的账号与密码组合远程登录他人的信息设备或系统,进而获得用户的全部使用权限,控制用户主机或系统、窃取用户资料或发动其他攻击,使网络安全面临重大风险的行为.
如2014年苹果公司icloud泄露大量用户照片的事件就是攻击者利用暴力破解发动的脚本网络攻击;同年,我国铁道部网站12306遭遇撞库(暴力破解的一种)攻击,近10万条用户信息泄露.到目前为止,暴力破解作为威胁网络安全的主流攻击手段之一,发展出了更多新型的攻击方式,严重威胁着网络安全.
全文HTML
-
应用进程是网络通信的终点,两台网络主机间可能存在不止一个通信进程,在TCP/IP协议族中,运输层使用IP地址和协议端口号来区分主机的不同进程.通过对大量实验数据分析可知,正常的远程连接中两台主机间的通信进程数维持在一个左右,少有波动;但暴力破解攻击中,攻击者为加快攻击速度,会同时开启多个进程进行攻击;以SSH协议为例,图 1是攻击及正常通信进程数对比图.
由图 1可见,即使只使用一个进程发动攻击,1 min里也会出现两个或更多通信进程.这是因为在验证账号密码时,如果连续验证失败次数过多,两台主机间的通信会自动断开,攻击者想要继续攻击就必须再开启一个新的进程来链接目标主机,攻击者使用了脚本软件,攻击频率比人工输入快很多,所以在攻击过程中会不断开启新端口.而正常通信中,验证通过后,通信进程是长时间稳定存在的,图中正常链接出现的一次波动是因为用户进行了退出再链接操作.除了SSH协议以外,TELNET,FTP,RDP通信中也存在这种统计规律.同时,在分布式暴力破解攻击中,主机发动攻击的频率非常低,会出现每分钟进程数为1或者更低的情况.此时单凭进程数无法判定异常行为的存在,需要进一步分析数据包特征.
分析主机间的通信进程数量需要对通信的数据包进行统计分析,步骤如下:
步骤1 使用抓包工具抓取流经网卡的数据包,以min为单位保存为pcap文件Ni(i=1,2,3,…).
步骤2 解析Ni中的五元组(源IP地址、源端口、目的IP地址、目的端口和应用层协议).
步骤3 保留Ni中含有有用协议的数据包,将数据包分组、相同源IP到目的IP的数据包分为一组.
步骤4 根据端口号统计每个组内的进程数Pi.
-
所有在因特网上传送的数据都是以分组(即IP数据报)为传送单位的,计算机将数据封装成数据包时,会在包头加入一些信息.通过分析大量的正常数据包和异常数据包包头,发现异常数据在包的平均大小和进程发包数上有很强的统计规律,而正常用户通信中不存在这种规律,可以通过统计数据包包头信息来分析是否存在统计特征作为判定暴力破解的依据.以暴力破解SSH协议为例,本文使用了Hydra,Bruter,Ncracker 3种暴力破解软件进行试验,并和正常用户数据进行对比,图 2是不同情况下数据包平均大小随时间的变化情况.
从图 2可以看出,在攻击情况下,每分钟包的平均大小会因为使用的攻击软件不同而发生变化,但是使用同一种攻击软件时数据包大小不会出现太大波动;而正常通信中,数据包的大小是随机变化的、没有统计规律,波动很大.类似地,通过大量的实验分析发现,这种特征也出现在每分钟进程平均发包数中,以暴力破解SSH为例,图 3是不同攻击情形每分钟进程的平均发包数.
除了SSH协议暴力破解,TELNET,RDP,FTP协议的暴力破解也存在类似统计规律.可以通过分析多个连续统计周期中数据的波动状况作为判断暴力破解的依据.
分布式的攻击其实就是多个主机以低攻击频率进行攻击,样本可能出现不连续的情况.如果去除样本间的不连续(即通信进程为0的情形),依然可以通过统计规律发现攻击行为.
判断数据波动首先要对流量进行统计处理,判断步骤如下:
步骤1 使用抓包工具抓取流经网卡的数据包,以min为单位保存为pcap文件Ni(i=1,2,3,…).
步骤2 解析Ni中的五元组(源IP地址、源端口、目的IP地址、目的端口和应用层协议).
步骤3 保留Ni中含有有用协议的数据包,将数据包分组,相同源IP到目的IP的数据包分为一组.
步骤4 根据包头信息计算出每个分组的包的总大小Ti,包数Bi并计算每个分组的包的平均大小
${{\bar t}_i} = \frac{{{T_i}}}{{{B_i}}}$ 和进程的平均发包数${{\bar b}_i} = \frac{{{B_i}}}{{{P_i}}}$ .
2.1. 进程特征
2.2. 数据包特征
-
由以上分析可知,正常连接中主机间通信进程数Pi少且稳定,其数学期望E(Pi)近似为1;暴力破解行为存在的可能性和进程数成正比,可以根据进程数将通信分为2个等级:1≤Pi<5时,不确定是否异常,需要做进一步检测;Pi≥5时为暴力破解攻击.通过如此分级可以过滤大量明显的攻击数据包,减少计算量,加速检测效率.分布式攻击中会出现2个样本间不连续的情况,可以只保存线程不为0的数据样本,这样在逻辑上数据样本依然是连续的,可以进行下一步数据包的特征检测.
-
由前述分析可知,正常流量中每分钟包的平均大小ti和进程平均发包数bi波动大,异常流量中ti,bi波动非常小.通过计算标准差可以判断数据波动大小,标准差σ为
其中:N为样本个数,X为样本均值,标准差越小代表数据波动幅度越小,一组样本的σt小于阈值σT且σb小于阈值σB时认为发生了暴力破解行为,否则为正常数据.容易看出,N越大σ越小时识别结果的准确率越高,但是随着N的增大密码被破解的可能性也越大,需要找到一个合适的N既可以保证准确率也要保证被破解的可能性较低.在1≤Pi<5时才会进入数据包的特征检测,此时的攻击频率约为10~50次/min,那么1 min内破解最简单的6位数纯数字密码的可能性为0.001%~0.005%,通过实验分析,当N=5时,可以很好保证正确率,攻击的成功率仅为0.005%~0.025%,而且随着密码强度的增加,被破解的可能性随之减小.检测时,对当前及前4个样本计算标准差,不满5个数据不计算.具体步骤如下:
1) 将数据包预处理,得到当前分钟每个分组的ti和bi.
2) 遍历当前分组的历史样本,不满5个时不进行计算,只保存样本,否则计算分组的σb和σt.每个分组只保存5个样本(当前样本加上前4个样本),当分组有新的样本保存进来时,删除最老的样本.
3) σb和σt与阈值σB,σT比较,都满足小于关系就判定为存在暴力破解行为,否则不存在异常.
4) 判定存在异常后,不再保存新来的样本,而是使用罗曼诺夫斯基准则来判断后续样本是否为攻击行为,ti,bi都被判定为异常则样本为异常,否则不存在异常.
5) 被判定为异常或非异常后,当前检测结束,准备进入下1 min的检测.循环1)-5).
确定了存在暴力破解行为后,还需要判断后续的数据是否为异常数据.为了减少计算量,后续的数据样本使用罗曼诺夫准则来判断是否为异常数据.本文使用了5个样本来判定暴力破解行为的发生,样本数量较少,所以按t分布的实际误差分布范围来判断后续数据是否和暴力破解数据无明显差异较为合理.判断步骤如下:
1) 确定样本某个特征的标准差σ0.
2) 判断罗曼诺夫斯基准则
是否成立,其中:xj为待测样本的值,x为样本均值(不包含待测样本),K(n,α)为t分布的检验系数(通过查询罗曼诺夫斯基准则检验系数表获得),n为样本个数(本文n=5),α为显著水平.
3) 如果式(2) 不成立,认为xj依然为异常数据,否则,xj为正常数据.
可以看出,式(2) 中K值过小会造成识别正确率下降,K值过大容易造成正确数据的误判.本文检验了α=0.01(K=6.53) 与α=0.05(K=3.56) 时的检测率,发现正确率和误判率没有太大差异.考虑到正常数据波动是随机的,K的增加对正确数据的误判影响更大,所以本文中取α=0.05.
-
根据上述方法,采用Python语言实现暴力破解攻击的检测系统.该系统可用于发现单机暴力破解和分布式暴力破解行为.输入为pcap格式的数据包,输出为包含暴力破解行为的IP组.检测流程如图 4所示.
3.1. 进程特征检测
3.2. 数据包特征检测
3.3. 检测方法的实现
-
为了验证暴力破解识别系统的效果,本文搭建了模拟环境来进行测试.整个实验环境由16台PC机以及1台交换机组成,其中1台主机作为被攻击的服务器,4台主机作为攻击者,其余为正常用户.测试持续通信1 080 min,期间一共进行了44次攻击,针对TELNET,FTP,RDP,SSH的远程登录账号密码暴力破解攻击各10次,分布式攻击4次(SSH,FTP,TELNET,RDP),每次攻击持续10 min,总计攻击440 min.得到的测试结果如表 1所示.
定义暴力破解识别算法的性能评价指标如下:
1) 准确度(Accuracy)
2) 误报率(False Positive Rate)
3) 漏报率(False Negative Rate)
其中:TM→M′是被正确检测出包含攻击的时长;TL→M′是不包含攻击被错误判断为包含攻击的时长;TM→L′是包含攻击被错误判断为不包含攻击的时长;TL→L′是被正确检测出不包含攻击的时长.
结合性能指标定义,基于测试结果可以容易地计算得出检测方法的各项性能指标如表 2所示.
经过分析,测试结果中5个误报(有5 min的正常数据被误判为攻击数据)是因为在正常通信中有5个连续的正常数据包的平均大小以及进程平均发包数波动极小,且与阈值相比较都满足小于关系,造成了误判;16个漏报(有16 min攻击数据没有被发现,被误判为正常通信数据)存在于3次TELNET协议攻击检测中,这是因为在TELNET协议的攻击中,其进程平均发包数在少数情况下会出现较大的波动从而影响了标准差和阈值的比较以及罗曼诺夫斯基准则的判断造成漏报.
-
本文通过对大量暴力破解流量的分析,总结出表征异常数据的流量特征以及描述方法,提出基于流量的登录账号密码暴力破解攻击检测方法,并完成了检测方法的系统开发与实现.检测系统利用标准差和罗曼诺夫斯基准则提取数据的流量特征,结合通信进程的统计规律,实现对登录账号密码暴力破解攻击的检测和判定.实验测试结果证明了本文基于流量特征的检测方法对暴力破解判定的有效性,可以识别TELNET,FTP,RDP,SSH4种典型协议的单机或分布式攻击,能取得较高的检测准确度和较低的误报率.