论文部分内容阅读
随着网络技术的持续发展和计算机的日益普及,互联网逐渐成为了眼下主流媒体及应用,将互联网与移动通信这两个现阶段发展迅速的产业连接到一起,移动互联网在信息通信产业上开辟出了新的纪元。时至今日,智能终端操作系统中发展最为迅速的要属基于Linux内核的Android操作系统,它成为了最流行的移动智能终端开发平台之一。Android应用程序迅速普及,能随时随地上网、收发E-mail、进行社交等,为人们的生活带来了很多的方便。在此期间,恶意软件产业也迅速激增,给安全方面带来极大的挑战。Android系统虽然提供了诸如沙箱(Sandbox)、文件访问控制、权限机制等措施来保护系统及应用的安全,但无数攻击者在利益的激励下针对系统及应用程序本身展开了各式各样的进攻。在此过程中Android系统暴露出系统漏洞、软件漏洞、权限机制漏洞等各方面的严重安全问题。各式各样的恶意行为在基于Android系统的智能终端上广泛存在。Android系统平台下恶意软件日益增多,奈何缺乏有效的安全措施防止恶意软件对智能终端的伤害。为此,本文针对基于Linux内核的Android系统固有特性研究了一种基于系统调用的恶意软件检测方案,设计并实现了该方案。另外,结合实例进行了相关实验测试和结果数据的分析。该方案考虑到智能终端资源有限的情况,把对智能终端未知应用程序的检测工作从移动终端转移到服务器端,让服务器端收集从移动终端传来的数据,然后分析、检测出可疑或恶意的应用程序。让绝大部分安全检测工作由服务器端承受,极大地降低了对移动终端资源的占用。其中在Android系统平台上用Java语言编程让移动终端能够自动收集应用程序在运行时产生的系统调用名称及其对应的频数信息,将这些信息作为Android应用程序的特征属性,以文件形式存储并发送给远端服务器。服务器端根据收到的文件解析文件数据,预处理后生成系统调用向量,然后使用KNN近邻分类算法识别恶意行为和正常行为。若发现有恶意行为,对用户推送警告信息,以减少恶意软件对终端或用户产生的损害,并尽可能抑制恶意软件的传播。通过实验证明,本文提出的基于系统调用的恶意软件检测方案具有可行性,并且有效的识别出了应用程序中的正常行为和恶意行为。