文献标识码: A
DOI:10.16157/j.issn.0258-7998.2015.07.029
中文引用格式: 谢丽霞,赵彬彬. 基于人工免疫系统的僵尸短信入侵检测[J].电子技术应用,2015,41(7):103-106,110.
英文引用格式: Xie Lixia,Zhao Binbin. The intrusion detection of zombie SMS based on artificial immune system[J].Application of Electronic Technique,2015,41(7):103-106,110.
0 引言
近年来,智能移动技术的迅猛发展和设备的推陈出新已得到众多消费者的青睐。然而,智能终端的安全威胁和隐患也迅速出现。2012年以来,移动僵尸网络开始构成威胁。
2012年底出现的移动僵尸网络(Android.DDos.1.origin)在后台拦截短信并发起UDP Flood攻击[1];华为《2013年度安全研究报告》显示,移动僵尸网络ZitMo的mTAN(国外手机银行验证码)短信攻击已造成4 700万美元的经济损失。2013年出现了以短信作为命令控制通道的最大的移动僵尸网络(MisoSMS)。近期,移动安全公司Lookout发现了活跃两年的迄今防御力最强的移动僵尸网络(NotCompatible)[2]。移动僵尸网络正在成为下一个噩梦,对移动僵尸网络的检测已刻不容缓。
僵尸短信是指控制移动设备执行非授权行为的短信。短信服务由于实时性、可靠性等特性成为目前移动僵尸网络命令控制通道主要的、不可缺少的方式。因此,僵尸短信的识别与检测对移动设备的信息安全具有重要的理论和实践意义。
本文提出了一种基于人工免疫的僵尸短信检测模型。该模型的创新之处在于:通过量化短信签名信息生成抗原并采用实值否定选择[3]算法(Real-valued Negative Selection,RNS)生成抗体。通过抗原与抗体的亲密程度识别僵尸短信。
1 相关工作
目前,国内外的许多学者对移动僵尸网络进行了研究并提出了一系列移动僵尸网络的模型。Mulliner提出一种基于短信和http协议的移动僵尸网络模型[4]。该模型具有较高的应用性,但隐蔽性较低;Zeng提出一种采用P2P结构的基于短信的移动僵尸网络模型[5]。由于采用P2P结构且以短信作为命令控制通道的主要方式,因此该模型具有较高的应用性和隐蔽性。
在移动僵尸网络检测方面,国内外主要采用以下方法:
(1)采用僵尸网络中基于行为或流量等特征的检测方式。但是,由于移动设备的IP是变化的,所以上述方式的应用性不高。
(2)采用通用的恶意软件的检测方式(静态检测、动态检测、混合检测等),这种方式针对性差,准确率低。
综上所述,目前移动僵尸网络的检测理论和方法还不够成熟,应用性和适用性有待提高。
2 检测模型的设计
本文提出的检测模型有两个核心模块:短信过滤和短信识别免疫。短信过滤模块根据黑名单信息过滤垃圾短信或广告。短信识别免疫模块识别可疑短信,若短信识别为良性,则放行;否则,拦截该短信并通知用户,若用户修改短信属性,则放行该短信并更新抗体。检测模型的整体架构如图1所示。
2.1 短信过滤
短信过滤模块过滤垃圾短信或广告,然后将可疑僵尸短信发送到短信识别免疫模块进行处理。
短信过滤模块存储有第三方的以及用户添加的垃圾短信和广告的黑名单。当短信过滤模块拦截到短信时,提取短信的来源或目的地地址与黑名单进行查询、匹配。若存在匹配的黑名单记录,则拦截该短信并将其存储到数据库中,然后以通知的方式通知用户;反之,则放行该短信。
2.2 短信识别免疫
短信识别免疫模块是僵尸短信检测模型的核心模块。其处理流程主要有4个步骤:量化短信的签名信息生成抗原;通过改进的RNS算法生成抗体;计算抗体与抗原的亲密程度识别僵尸短信;根据用户的反馈结果更新抗体。短信识别免疫的处理流程如图2所示。
2.2.1 量化短信的签名信息生成抗原
抗原是指移动设备发送或接收的短信的签名信息所量化成的n维空间向量。
目前的僵尸短信大都包含有恶意URL链接、僵尸指令、恶意联系方式等,而且为了防止用户发现大都采用指令加密、指令分段、内容掩盖等方式隐藏僵尸短信的内容。因此,本文定义如下信息作为短信的签名信息:(1)短信的总长度(包括空格);(2)短信的长度(不包括空格);(3)空格的长度;(4)URL链接的数量;(5)标点符号、特殊字符的数量;(6)大写字母的长度;(7)电话号码(或数字)的长度;(8)英文字符串的长度。
将上述的签名信息用一组8维的空间向量表示,这组8维的空间向量即抗原。例如:短信内容为:“尊敬的客户:您当月的话费为99.99元,当前余额为50.00元。SEND_PHONE,查看收费详情:请访问:www.chinamobilexxx.com.aaa”所生成的向量组如图3所示,其中第一个数据“80”表示短信的总长度(包括空格),其他依次类推。
2.2.2 通过RNS算法生成抗体
抗体是一个二元组(x,r),其中x是与抗原维数相同的n维向量,它表示抗体的中心点,r为抗体的检测半径。
传统RNS算法生成抗体的检测半径是固定的,导致抗体对“非我”空间的覆盖率较低。为覆盖较多“非我”空间则需较多抗体,这导致算法的效率和准确率下降且时间复杂度增加。为了有效解决上述问题,抗体的检测半径不再固定不变,而是根据“自我”的分布情况决定。抗体的检测半径不变与抗体的检测半径可变对比如图4所示。
通过RNS算法生成抗体的步骤如下:
(1)随机产生候选抗体x。
(2)计算x与抗体库B中已有抗体bi(i=1,2,…,k)的欧氏距离[6]:
(3)如果di小于任一抗体bi的检测半径,说明两个超球体相交,即表明该抗体能被抗体库中已有的抗体覆盖,这与成熟抗体只能覆盖“非我”是不一致的,因此需要被淘汰,转步骤(1);否则执行步骤(4)。
(4)计算抗体x与良性短信样本集S(样本集S是一个二元组(xs,rs),xs是与抗原维数相同的n维向量,rs为自体半径)中的所有样本点sj(j=1,2,…,m)的欧氏距离dj,并求出最小距离dmin:
(5)若dmin大于样本点的自体半径,则将dmin-rs作为抗体的检测半径,抗体成熟,同时计数器c=c+1;反之抛弃该候选抗体,转步骤(1)。
(6)若成熟抗体的数量c达到期望的最大抗体数量Nmax,则算法结束;否则转步骤(1)。
2.2.3 僵尸短信识别
僵尸短信的识别是通过抗体与抗原的亲密程度实现的,抗体与抗原的亲密程度用它们之间的欧氏距离衡量。
僵尸短信的识别处理流程设计如下:
(1)获取待识别抗原a。
(2)求出a与抗体库B中的抗体bi的中心点的欧氏距离并求出最小距离dmin(i=1,2,…,k)
(3)若dmin小于或等于抗体的检测半径ri,则该抗原所对应的短信为僵尸短信;否则,该短信为良性短信。
(4)将检测出的僵尸短信通知用户。
抗原与抗体的欧氏距离计算示例如图5所示。
2.2.4 根据用户反馈结果更新抗体
虽然抗体的检测半径是可变的,但仍无法覆盖所有的“非我”空间,会出现僵尸短信误报的现象。因此,需实时更新抗体。
当短信识别免疫模块识别出僵尸短信时,会以通知的形式通知用户,用户可以修改检测结果。当用户查看短信详情并修改短信识别结果时,短信识别免疫模块会根据用户的反馈结果删除抗体库中相应的抗体。
3 检测模型的实现
本文选取Android系统作为僵尸短信检测模型的实现平台,它由短信过滤模块和短信识别免疫模块组成。
3.1 短信过滤模块
通过Android系统的广播接收者组件(BroadcastReceiver)可实现对发送到该移动设备的短信进行拦截(实现方式:采用代码方式设置广播接收的优先级最高,安装该应用前卸载其他具有拦截短信广播的应用)。对于发送的短信,在发送短信之前对短信进行过滤、识别即可。
短信过滤模块通过SQLite数据库存储的黑名单数据是:垃圾短信或广告短信的发送地址。黑名单数据的来源是:第三方应用软件的黑名单库、用户添加的黑名单记录等。
短信过滤的处理流程为:
(1)提取短信的目的地或来源地址。
(2)与黑名单信息进行查找、匹配。若匹配,短信即为垃圾短信或广告,短信过滤模块将拦截短信的发送或接收并通过Android系统的Notification类通知用户;反之,短信通过该模块并进入短信识别免疫模块。
3.2 短信识别免疫模块
短信识别免疫模块是僵尸短信检测模型最核心的模块,其主要功能为:
(1)根据短信签名信息生成抗原并计算出抗原与抗体库的最小欧氏距离[6]。
(2)将识别出的僵尸短信通过Android系统的Notification类通知用户;
(3)根据用户反馈结果更新抗体。
通过第三方commons-lang.jar工具包提取短信的签名信息并量化为抗原。短信识别免疫模块通过SQLite数据库存储已经成熟的抗体。通过Math.abs()函数求出抗原与抗体的最小欧氏距离[6]。
用户可修改识别结果,若短信被修改为良性短信,模块放行该短信并删除抗体库中相应的抗体。
4 检测实验与结果
基于本文提出的僵尸短信检测模型,以Android系统为测试平台,采用J2SE技术设计并实现了僵尸短信检测软件的核心程序。
从相关网站、论坛等收集了1 000条短信,短信类型涉及:问候祝福、商务贸易、银行支付、生活社交、服务通知等,其中良性短信600条,僵尸短信400条。软件检测界面如图6所示。
1 000条样本短信的检测结果如表1所示,检测结果表明,本文提出的检测模型能够有效检测僵尸短信,证明了其有效性和可行性。
5 结束语
本文模仿人体的免疫结构和机制,提出一种基于人工免疫的僵尸短信检测模型。在该模型中设计了两个核心模块。首先匹配黑名单信息进行初步过滤;然后量化短信的签名信息生成抗原,通过RNS算法生成抗体,以抗原与抗体的欧氏距离识别僵尸短信,最后根据用户反馈更新抗体。该检测模型能够有效地发现移动设备中的僵尸短信,保护设备的信息安全。但该检测模型仍有不足之处:提取短信的签名信息的类型较少、抗体的覆盖率不高、识别率较低等。
未来的僵尸短信检测模型将做如下改进:增加短信的签名信息类型、优化计算抗体检测半径算法、采用加权的方式计算待识别抗原与抗体的亲密程度等。
参考文献
[1] 约翰·萨福克.华为2013年度安全研究报告[R].深圳:华为公司,2013.
[2] 360安全播报.企业网络的下一个噩梦:移动僵尸网络[EB/OL].[2014-11-21].http://bobao.360.cn/news/detail/916.html.
[3] JIN Q,MING M.A method to construct self set for IDS based on negative selection algorithm[C].Proceedings of the 2011 International Conference on Mechatronic Science,Electric Engineering and Computer.Piscataway:IEEE Press,2011:1051-1053.
[4] MULLINER C,SEIFERTIN J.Rise of the iBots:owning a telco network[C].Proceedings of the 5th IEEE International Conference on Malicious and Unwanted Software(Malware).Piscataway:IEEE Press,2010:19-20.
[5] ZENG Y Y,HU X,SHIN K G.Design of SMS commanded-and-controlled and P2P-structed mobile Botnet[C].Proceedings of the fifth ACM conference on Security and Privacy in Wireless and Mobile Networks.New York:ACM Press,2012:137-148.
[6] JAVED J,YASIN H,ALI S.Human movement recognition using euclidean distance:a tricky approach[C].Proceedings of 2010 3th International Congress on Image and Signal Processing.Piscataway:IEEE Press,2010:317-321.