Hans Journal of Data Mining 数据挖掘, 2012, 2, 16-20 http://dx.doi.org/10.12677/hjdm.2012.22004 Published Online April 2012 (http://www.hanspub.org/journal/hjdm) Research on Spam SMS Detection and Prevention on Android Platform Yin Li1,2, Mingyu Fan1,2, Guangwei Wang1,2 1Department of Computer Science and Engineering, University of Electronic Science and Technology of China, Chengdu 2Research Center of Information Security, University of Electronic Science and Technology of China, Chengdu Email: vince-32@126.com Received: Feb. 3rd, 2012; revised: Feb. 28th, 2012; accepted: Mar. 2nd, 2012 Abstract: Mobile terminal is currently a fast developing area, among which Android holds quite a big market share. But Android faces huge security threats due to its platform openness, especially threats from spam SMS. This dissertation researches on spam SMS problems and proposes a method by combining blacklist and Bayesian Algorithm on the detection of spam SMS. By testing the implemented system, the purpose of filtering and effectively resisting harassment from spam SMS has been achieved. Keywords: Mobile Terminal; Android; Spam SMS Detection; Bayesian Algorithm Android 平台垃圾短信检测及防范研究 李 寅1,2,范明钰 1,2,王光卫 1,2 1电子科技大学计算机科学与工程学院,成都 2电子科技大学信息安全研究中心,成都 Email: vince-32@126.com 收稿日期:2012 年2月3日;修回日期:2012 年2月28 日;录用日期:2012 年3月2日 摘 要:当前移动终端的发展十分迅速,其中 Android 平台以其开放性占据了很大的市场份额。然而 Android 平台由于开放性,其面临的安全威胁十分突出,尤其是来自垃圾短信的威胁。本文研究了现阶段 Android 平台 面临的垃圾短信骚扰问题,并针对垃圾短信检测提出了结合黑名单和贝叶斯算法的检测方法。本文实现的系统 经测试能达到过滤垃圾短信的目的,并有效抵御垃圾短信的骚扰。 关键词:移动终端;Android;垃圾短信检测;贝叶斯算法 1. 引言 目前,智能移动终端的普 及十分迅速,Android 平台占据了很大的市场份额,但伴随而来的是日趋严 重的安全问题。尤其是来自垃圾短信的威胁,使得用 户面临着经济损失、隐私泄露及被骚扰的危险[1]。目 前传统的解决方案普遍大多局限在电信运营商层面, 提供的仅是针对非法服务提供商(SP)的监控,无法对 个人的恶意、非法行为进行有效监控,用户端的垃圾 短信骚扰问题始终没有得到很好的解决。因此本文的 写作目的在于研究、总结用户端 Android 平台垃圾短 信的检测方法,并编程进行实验及测试,为今后垃圾 短信的防治提供理论和数据支持。 本文的组织结构如下:第一章介绍 Android 平台 面临的垃圾短信威胁;第二章分析垃圾短信的危害和 现有检测技术;第三章着重阐述垃圾短信检测方法及 系统实现;第四章对提出的检测系统进行测试并提供 测试结果分析;第五章是结束语,对本文作一个回顾 和展望。 Copyright © 2012 Hanspub 16 Android 平台垃圾短信检测及防范研究 2. 研究现状 2.1. 垃圾短信的定义及危害 垃圾信息是指未经接收者同意、包含违法或具有 广告性质内容,或恶意报复他人的侵害通信自由的信 息[2]。垃圾短信的泛滥,具有十分大的危害,具体表 现在以下几个方面。 1) 违法内容的短信为违法犯罪活动提供了活动 的渠道,潜在地威胁到了用户的生命财产安全,并且, 违法内容的短信实际上为犯罪分子提供了一个沟通 的平台,对社会治安起到了很大的负面影响。 2) 具有广告性质的短信对用户的影响存在两个 方面首先,用户不能甄别短信的真实性,任何非法的 商业行为都能通过该平台进行,如销售伪劣产品等。 其次,广告短信往往针对特定用户会多次重复发送, 对用户形成一种骚扰,这种危害主要体现在对用户精 神层面的伤害。 3) 恶意骚扰、报复他人的短信对用户造成的危害 主要在精神层面,对用户造成很大的困扰,虽然用户 基本不会面临经济损失的风险,但其危害也不容小 视。 垃圾短信很有可能与 Android 平台的恶意程序相 结合,如在短信中包含一些非法广告、骚扰以及带有 病毒的链接地址,一旦用户收到这种类型的短信,很 有可能误将其中包含的链接打开,致使手机中毒[3]。 2.2. 垃圾短信检测技术 垃圾短信检测技术大多都借鉴了垃圾邮件的检 测技术。由于手机功能十分有限,因此早期的检测方 法主要集中部署在电信运营商这一端,而随着智能手 机的普及以及手机功能的日渐强大,基于客户端垃圾 短信检测研究也逐渐增多。 文献[4]分析了基于状态的检测方法,状态检测是 指电信运营商对某一手机或SP 接收或发送的短信数 量进行检测,一旦超过某个阈值则向用户报警。如果 能检测到发送垃圾短信的个人或SP 则可立即对其进 行过滤。状态检测包括两种方法,第一种是检测单位 时间内发送的短信数量,达到阈值则自动报警。该方 法对缓慢攻击无能为力。第二种是由运营商检测每两 条短信发送或接收的间隔,如果过于频繁,超过了设 定的频率则自动报警。此方法适用于运营商,缺点是 会对电信服务器带来较大的额外负担[4]。 智能手机的普及以及手机功能的日渐强大为客 户端垃圾短信检测创造了可行性。根据近几年国内外 的研究成果,一些新的方法和检测手段被引入了垃圾 短信检测领域。 文献[5]基于随机映射提出了一种实时垃圾短信 检测方法,它在 k-means (k = 2)聚类算法的基础上增 加了额外的降维操作,将向量点映射到随机选择的低 维空间。该方法利用了大量垃圾短信在分类期间更易 被分类为大样本容量的类别的原理,在SMSC(短消息 服务中心)实现了转发短信的空档期,实现了对垃圾短 信的过滤。该方法能在高维空间基于相似度分类短 信,但它不能区分大量发送的正常短信和垃圾短信[5]。 文献[6]提出了一种基于 CAPTCHA 验证机制的 垃圾短信检测系统。CAPTCHA 是一种自动区分计算 机和人类的验证机制,我们平时使用的验证码即其一 种常见应用。该文献在SMSC插入了 CAPTCHA 验证 系统,当SMSC 收到短信时,其首先随机选择图片和 文本,生成验证短信发送给发件人。如果发件人正确 回复了验证短信,则被认为是人类发送者,否则判定 为计算机程序[6]。该方法能有效区分人类和计算机, 对短信群发器有很好的检测效果。但该方法每次都要 求发件人回复,过程十分繁琐,且只能检测通过群发 器发送的垃圾短信。 José María Gómez Hidalgo等[7]分析了现有各种垃 圾邮件的检测方法,指出在垃圾邮件检测领域,机器 学习算法是比较有效的检测方法,其中贝叶斯聚类算 法非常适用于引入到垃圾短信检测领域[7]。但作者并 未进一步深入探索如何利用贝叶斯聚类算法检测垃 圾短信。 根据对现有 Android 平台的部分垃圾短信过滤工 具(如360 手机卫士、金山手机卫士等)的研究,目前 普遍采用的做法是基于黑名单和关键字的过滤,需要 用户的人工输入黑名单和过滤关键字,自动化程度较 低。 3. Android平台垃圾短信检测系统 文献[7]已经指出基于机器学习的方法(特别是贝 叶斯聚类算法)是很有效的检测方法,并且现有的智能 手机平台和手机强大的硬件资源为客户端的垃圾短 信检测系统的提供了可行性。另外,黑名单机制也能 Copyright © 2012 Hanspub 17 Android 平台垃圾短信检测及防范研究 以较低的系统开销保证垃圾短信的过滤[8]。因此本文 结合黑名单机制,提出了基于机器学习的 Android 平 台垃圾短信检测方法,并实现了相应程序。 3.1. 系统总体设计 本文提出的基于机器学习的 Android平台垃圾短 信检测系统结合了黑名单机制和机器学习的方法,进 行垃圾短信检测。 黑名单的实现较简单,通过用户输入黑名单号码 (包括直接输入号码和选择联系人两种方式),在收到 短信时提取发件人号码进行匹配,匹配成功则过滤短 信并提示用户。黑名单主要用于快速过滤来自已知联 系人的短信。 基于机器学习的检测方法实现比较复杂,本文采 用了机器学习算法中的贝叶斯聚类算法,将短信分类 为垃圾短信和正常短信两类。贝叶斯算法的实现过程 是首先收集垃圾短信样本作为训练集训练分类器,训 练完成后使用另外一组样本作为测试集进行测试。 根据黑名单机制和基于机器学习的检测方法的 设计思路,系统总体设计为四个模块:操作界面模块、 数据库操作模块、Service 模块以及 Broadcast Receiver 模块。 操作界面模块分为手动输入和导入通讯录两种 输入方式;数据库操作模块接收请求,完成黑名单的 匹配并反馈结果;Service模块按功能分为黑名单和贝 叶斯分类器两大部分:黑名单部分按照上述方法进行 匹配判定。贝叶斯分类器采用离线模式进行训练,训 练好后置入系统,完成对短信的分类;Broadcast Receiver 模块由收到短信事件触发,根据判定结果决 定是否过滤短信。 上述模块相互配合完成整体功能,当收到一条短 信时按如下流程检测:首先触发 Broadcast Receiver 根据操作界面设置判定是否启动过滤服务;若过滤服 务已开启,则运行 Service 模块进行黑名单匹配和短 信分类过程。其中黑名单匹配在短信分类前完成,并 只对不属于黑名单的短信才进行第二步的分类过程; 最后,Broadcast Receiver模块根据检测结果过滤对应 短信。系统总体结构图如下图1所示。 3.2. 系统详细设计 本文提出的基于机器学习的Android平台垃圾短 Figure 1. System overall architecture 图1. 系统总体结构 信检测系统结合采用了黑名单机制和贝叶斯分类算 法,其中贝叶斯分类器的设计是关键。另外,本系统 在黑名单输入方面也考虑了多种方式。下面我们分别 阐述操作界面以及贝叶斯分类器的详细设计。 3.2.1. 操作界面 目前常用的输入方式包括手动输入、导入短信记 录、导入通讯录以及按地区过滤等方式。由于垃圾短 信通常会被删除,因此导入短信记录的方式并不实 用。另外,按地区过滤的方式会造成无法接收同一地 区其它短信,误过滤率很高。 经综合分析,手动输入陌生号码和导入通讯录两 种方式比较适宜,其中前者包括单个添加和批量添加 两种方式。设置好的黑名单通过提交请求到数据库操 作模块进行保存。导入通讯录在程序启动时从通讯录 中读取并显示联系人信息,用户只需选择联系人并保 存黑名单即可。 上述两种输入方式既保证了良好的垃圾短信过 滤功能,又避免了对部分短信的误过滤。 3.2.2. 贝叶斯分类器 贝叶斯算法是一种常用的聚类算法,其最基本的 形式是朴素贝叶斯方法。其原理是计算文本 s属于某 个类别的条件概率 j Pc s,概率值最大的类即文本s 所属的类别[9]。计算概率值时利用了贝叶斯公式: jjj Pc sPcPscPs (1) Copyright © 2012 Hanspub 18 Android 平台垃圾短信检测及防范研究 其中 j Pc 是类别的先验概率, j Psc 是类别条 件概率。s由一组特征向量表示(t1, t2,…, tn),假设各特 征彼此独立,则: 12 j jj n PscPtc PtcPtcj (2) 其中 j Pc 和 1 j Ptc 可用训练集估计。 为提高自动化程度和检测速度,本文设计的贝叶 斯分类器采用离线分析的方式获取关键字,训练完成 后再置入整体系统中,实时分析短信内容。 垃圾短信具有长度短、发送频率大的特征,且其 内容通常是恶意骚扰或广告等。因此本文选择短信长 度、发送频率及内容作为特征向量,采用朴素贝叶斯 算法,按如下步骤计算特征: 1) n维特征向量 s = (t1, t2,···, tn)代表了一条短信样 本,用于描述对n个属性 a1, a2,···, an样本的n个关键 字。 2) 根据朴素贝叶斯算法,分别计算短信样本 s属 于c0和c1两个类别(分别代表正常短信和垃圾短信集 合)的后验概率值,选择概率值最大的类别作为s的分 类,该类被称为最大后验假定。 3) 由公式(1),P(s)为常量,要最大化 j Pc s, 则需最大化 j j Pc Psc。 j P c是类别的先验概率, 先验概率可以用cj类中的样本数mj除以样本总数 m 求得。 4) 上述计算的复杂度随特征向量长度急剧增大。 为降低计算复杂度,我们假设特征向量各属性彼此独 立,根据公式(2),我们可利用训练集估计 1 j Ptc, 其中 i = 1, 2,···, n。 5) 分别计算 j j Pc Psc,将短信样本s归类到 对应后验概率值最大的类。 4. 系统测试 根据系统检测垃圾短信的两种机制,我们分别对 黑名单过滤、贝叶斯分类器以及系统性能进行了测 试。 4.1. 黑名单过滤测试 我们将人工收集的 613 条垃圾短信输入本系统检 测,统计其平均响应时间、过滤准确率等数据,得到 了如下表 1测试结果。 其中连续过滤准确率是指在连续收到多条短信, Table 1. Blacklist filter test 表1. 黑名单过滤测试 测试指标 结果 平均响应时间 0.38 s 过滤准确率 99.7% 连续过滤准确率 99.3% 且每两条短信间隔不超过 2 s 的情况下,能正确过滤 并显示的短信条数占测试短信总量的比例。 测试结果表明黑名单过滤的响应时间和准确率 都较理想,能快速过滤来自已知联系人和部分陌生号 码的短信。 4.2. 贝叶斯分类器测试 在构建分类器时,我们使用上述 613 条垃圾短信 对分类器进行了训练。测试期间我们另外收集了 1121 条短信作为分类器测试集,其中垃圾短信 217条(恶意 骚扰类 26 条、广告类 134 条、诈骗类 57 条),占 19.4%。 同时仿照黑名单测试检测了响应时间及准确率等指 标。 将以上测试集输入贝叶斯分类器检测,共过滤出 垃圾短信 211条,占所有短信的 18.8%。经人工统计, 其中包括恶意骚扰类 23 条、广告类 133条,以及诈 骗类 55 条。如下表 2所示,贝叶斯分类器的平均响 应时间为 0.33 s,过滤准确率和连续过滤准确率分别 达到了 97.2%和96.3%,能够满足客户端的需要。 4.3. 性能测试 本小节性能测试的内容主要包括源文件大小、运 行期间内存占用,以及后台过滤功能等。如下表3所 示本文提出的系统在非运行期间仅占用 21.6 KB的内 存空间,运行期间的内存占用为63 KB,几乎不会对 手机造成负担。 接下来我们测试后台过滤功能。退出整个程序, 我们向模拟器发送了一条短信,利用贝叶斯分类器进 行分类。如下图2所示,该系统仍能够过滤短信,完 全不影响用户的正常使用。 5. 结束语 本文提出了基于机器学习的 Android平台垃圾短 信检测系统。该系统结合了黑名单和朴素贝叶斯方 Copyright © 2012 Hanspub 19 Android 平台垃圾短信检测及防范研究 Copyright © 2012 Hanspub 20 Table 2. Bayesian classifier test 表2. 贝叶斯分类器测试 测试指标 结果 平均响应时间 0.33 s 过滤准确率 97.2% 连续过滤准确率 96.3% Table 3. Performance test 表3. 性能测试 测试指标 结果 源文件大小 21.6 KB 运行期间内存占用 63 KB Figure 2. Filter spam SMS test in background 图2. 后台过滤功能测试 法,其中黑名单适用于过滤来自已知联系人的恶意骚 扰类垃圾短信,而贝叶斯分类器则基于内容进行过 滤,自动化程度较高,适用于过滤广告或诈骗类的垃 圾短信。根据系统测试结果,该系统是一款轻量级的 过滤系统,非常适用于手机用户,但贝叶斯分类器的 检测准确率方面还有提升的空间。因此今后的工作重 点将围绕提高提高贝叶斯分类器的检测准确率以及 增加后续处理功能进行。 6. 致谢 本论文撰写期间,范明钰和王光卫老师提供了很 全面的指导,帮助我顺利完成了该论文撰写,在此表 示衷心地感谢! 参考文献 (References) [1] 戴沁芸, 王允非. 网络安全迎来3G 时代[J]. 信息安全与通信 保密, 2010, 11(5): 34-37. [2] 何培舟, 温向明, 郑伟. 垃圾短信的防治方法研究[J]. 通信 技术, 2008, 41(12): 340-341. [3] 落红卫, 孙萌. 移动终端安全威胁和防护措施[J]. 现代电信 科技, 2009, 39(11): 24-25. [4] 张尼, 张智江, 宋建, 李晓宇. 垃圾短消息过滤技术综述[J]. 移动通信, 2009, 33(6): 17-21. [5] S. Dixit, S. Gupta and C. V. Ravishankar. Lohit: An online detection & control system for cellular SMS spam. Proceedings of the IASTED International Conference Communication, N et w o r k and Information Security, Phoenix, 2005: 52-54. [6] M. H. Shirali-Shahreza, M. Shirali-Shahreza. An anti-SMS-spam using CAPTCHA. ISECS International Colloquium on Com- puting, Communication, Control and Management, Guangzhou, 2008: 320. [7] J. M. G. Hidalgo, G. C. Bringas, E. P. Sánz and F. C. García. Content based SMS spam filtering. Proceedings of the ACM Symposium on Document Engineering, New York, 2006: 107. [8] 吴文俊. 一种垃圾短消息过滤与举报系统 Mobile 客户端的设 计与实现[D]. 北京大学, 2009. [9] 潘文锋. 基于内容的垃圾邮件过滤研究[D]. 中国科学院计算 技术研究所, 2004. |