基于行为建模的智能终端恶意软件检测关键技术的探讨与实现

论文价格:0元/篇 论文用途:仅供参考 编辑:论文网 点击次数:0
论文字数:**** 论文编号:lw202329712 日期:2023-07-22 来源:论文网

本文是一篇软件工程论文,笔者认为随着Android版本的不断更新,传统的恶意软件检测方案已经无法保证检测效率的准确性。原本的检测内容所起到的检测权重越来越低,而恶意软件的成长也呈现了多样化发展,越来越多的学者选择把检测的方式从静态检测转移到动态检测上。
第一章 绪论
1.1研究背景和意义
随着互联网的不断发展,智能手机慢慢成为公众必不可少的电子设备。2007年苹果公司开发了IOS操作系统,2008年谷歌发布了Android操作系统并开源发布了源代码[1]。最初几年,IOS凭借其手机优化和简洁的界面拔得头筹,后期随着Android操作系统的版本不断更新,Android系统和IOS系统之间的差距也在不断拉近,后面Android更是凭借着低廉的价格达到和苹果手机相同的性能,Android操作系统超越了IOS系统成为了世界上操作系统使用量第一名,如图1.1所示[2]。现在世界上主流的手机操作系统一般就是指Android操作系统和IOS操作系统。据StatCounter网站统计,截止至2021年1月份,世界上主要的操作系统有Android(安卓)占71.93%,IOS(苹果)占27.47%,Samsung(三星)占0.28%,Unknown(未知)占0.13%,KaiOS占0.1%,Windows占0.02%[3]。至2021年,Android操作系统中使用10.0.10以上版本的人占44.47%,由于Android操作系统使用人数众多,且在Android系统的代码中,不法分子会利用系统权限调用的便利性进行违法行为,所以本论文主要研究Android操作系统中的恶意软件检测方案。


软件工程论文怎么写

.............................
1.2国内外研究现状
恶意软件主要包括恶意家族和恶意软件。恶意软件则有两种形式,一种是由开发者本人进行开发,企图通过一些不合法的途径达到一些不可告人的目的,另一种是想要非法获利的人利用已经开发好的软件,通过使用脱壳工具解析软件,在软件里面植入恶意代码,最后进行加固重新发布进入应用市场。而那些二次流入市场的APP,通常与正常的软件没有太大的区别,一般的手机用户基本不能分辨出来。
恶意家族自从第一次发布以来,家族内部的成员开始慢慢的发展壮大。那些原创的辨识性强的恶意家族不说,这些已经存在的家族成员还会进行变种,也算是另一种进化。所以恶意家族的统计是否还存在未知的种类,我们尚不可早下结论,为了我们即将设定的检测方案能够有效使用,我们在设计方案中引入机器学习的概念,提高检测准确率。
从应用软件第一个发布出来,没有人会想到会有恶意软件的存在,为了有效的判断出恶意软件,研究人员开始研究从不同的切入点来检测它们,从恶意软件和检测恶意软件方式的斗争史中我们可以看到互联网发展的历史轨迹。Android系统提供的安全机制是权限机制、组件封装、签名机制和Dalvik虚拟机。为了检测软件是否为恶意软件,人们把那些恶意软件样本进行收集标记,其中很知名的数据集有Genome数据集、Drebin数据集、FalDroid数据集、DroidBench数据集、AMD数据集、RmvDroid数据集,这些数据集各有各的特点,整理起来也是耗时耗力。恶意软件慢慢开始变化,不再是呆呆的被检测的一方,他们开始使用混淆技术伪装自己,例如一些对布局进行调整,对一些关键代码进行重命名从而逃避检测,后来发展出高级混淆技术,通过修改反射机制、加固混淆技术、将恶意行为隐藏在native代码之中等方式躲避检测。
.................................
第二章 相关背景知识介绍
2.1Android架构
2.1.1 Android系统架构
Android系统架构是安卓系统的体系结构[38],Android的系统架构和其他操作系统一样,采用了分层的结构,从高到低是系统应用,JAVA API框架、原生C/C++库、Android Runtime、硬件抽象层(HAL)和Linux内核层。
(1) 系统应用
系统在开机时内置的系统应用和后面用户安装的app都是属于应用层的,应用层主要负责用户的直接交互,应用层的应用一般是用java语言编写运行在虚拟机上的程序,开发者可以使用java语言设计并开发自己想要实现的功能。主要的系统应用有桌面(Home),联系人(Contacts),拨号(Dialer),浏览器(Browser),即时通信(IM)等。Android的系统应用是系统的核心应用,也可以使用第三方软件替代系统应用。
(2) Java API框架
Java API框架是Android应用开发的根基。应用框架层包括资源管理器,通知管理器,Activity管理器,内容提供程序和视图系统。在资源管理器中,有用于访问的非代码资源,例如本地化的字符串、图形和布局文件。在通知管理器中,可以让所有应用在状态栏中显示自定义提醒。在Activity管理器中,有用于管理应用的生命周期,提供常见的导航返回栈。内容提供程序可以让应用访问其他应用中的数据,或者共享自己的数据。应用开发者可以通过这个程序访问Android系统应用使用的框架API。框架中的视图系统可以进行扩展,内容丰富,可以使用视图系统构建应用的UI,包括列表、网格、文本框、按钮,在视图系统中,可以在按钮中嵌入浏览器,且可以直观地看到组件的详细信息。可以说能够对视图系统足够熟悉,会使得软件开发工程效率得到提高。
(3) 原生C/C++库
Android系统组件和服务都是基于原生代码进行构建的,尤其是核心组件和服务,例如Android Runtime(ART)和硬件抽象层 (HAL)需要根据原生库进行构建。Android平台给应用开发者提供Java框架API,应用开发者在应用中申请API的时候就可以使得应用使用部分原生库的功能。
.....................................
2.2恶意软件检测
具有恶意行为的软件称为恶意软件,恶意软件也就是流氓软件,主要包括恶意家族和含有恶意代码的恶意软件。随着互联网环境的发展,首先在电脑端发现了恶意软件,慢慢的随着手机的智能化设备发展,恶意软件慢慢的在手机市场上出现,一开始是黑客想要通过恶意软件来展示技术的纯熟,后面被居心不良的人拿来进行非法获利[39]。恶意家族有多达70多个,这些家族内部之间相似度较高,家族之间相似性较低,但也能看出都具有恶意行为。这些恶意家族在十年间从一个恶意家族慢慢变种,进化成为了现在这庞大的恶意家族。第二类恶意软件是一些恶意软件开发者会从应用商店下载软件,在里面植入具有恶意行为的恶意代码,在经过打包重新投入市场,这些操作使得市面上的软件鱼龙混杂,我们无法仅通过名称和图标来分辨软件是否为正版。
良性软件指正常软件开发者使用代码编程开发的软件。这类软件没有使用产生恶意行为的恶意代码,但是这些良性软件也容易翻车,软件开发者经常会为了达到某种功能而引用第三方工具包,有些工具包内部会存在恶意代码,导致软件成为恶意软件。
恶意软件检测是针对待测软件进行检测来判断该软件是否为恶意软件的程序。恶意软件检测主要通过静态检测方式和动态检测方式对待测软件进行检测,现代针对恶意软件检测的手法主要有静态检测、动态检测和动静态混合检测。在工作环境在,研究人员通常会使用反编译工具对软件的基本信息进行了解,如包名、签名信息、签名的MD5、MD5、Sha1。后面会做静态检测,对软件中的权限信息,服务信息、API使用信息进行分析,从app使用者的角度进行分析,从软件开始运行的入口,一步步进行检查,针对开机自启动、全局广播、读取短信息、删除信息等这类敏感行为操作,梳理其恶意行为的操作逻辑。更详细的内容则通过动态检测,例如使用抓包工具在模拟器中运行的app进行处理,能直观的看到软件在使用恶意行为的时候操作的数据。
...................................
第三章 基于权限和代码特征的恶意软件检测方法 ............................... 25
3.1权限分析 .................................... 25
3.2检测框架设计 ......................... 28
第四章 基于调用行为建模的恶意软件检测方案..................... 41
4.1恶意行为 ........................................ 41
4.1.1 恶意软件类别 .......................................... 41
4.1.2 恶意行为 .................................. 42
第五章 总结与展望 ...................................... 55
5.1工作总结 ...................................... 55
5.2工作展望 .......................... 55
第四章 基于调用行为建模的恶意软件检测方案
4.1恶意行为
4.1.1 恶意软件类别
恶意软件最容易出现在第三方软件平台,相较于手机平台的商店,第三方软件平台由于其开放特性,系统的安全审查机制没有很完善,远程控制、信息窃取、诱导性广告等具有恶意行为的软件不能被有效的检测出来,导致第三方软件平台极其容易出现恶意软件。2018年国家互联网应急中心(CNCERT)针对网络上的软件下载站开展了计算机恶意程序检测行动。该行动随机抽取了4424个样本软件,其中含有恶意程序的多达142个,其中木马类占57%,流氓软件类占20%,后门类占7%,黑客工具类占6%,信息窃取类占6%,病毒类占4%。恶意软件按照恶意程序类型分可以分为木马类、蠕虫类、病毒类、后门类、风险类、信息窃取类、黑客工具类和广告类[48]。按照属性分为勒索软件类、流氓行为类、资费消耗类、信息窃取类、诱骗欺诈类。按照行为分类分为广告软件、勒索软件、短信软件、恐吓软件。
(1)勒索软件类(Ransomware)
勒索类软件一般是对用户智能设备锁屏,要求受害者使用支付宝、微信等方式对幕后人员支付赎金,对用户的财产安全产生了威胁。一般的恶意行为有将自身界面置顶,使得智能设备处于锁屏状态,无法解锁使用智能设备;私自更改智能设备PIN码;监测手机后台的开机自启动广播,当监测到广播即智能设备处于开机状态,便启动锁屏代码;勒索软件通常会提前内置好联系方式和付款方式,提示受害者付费。大部分是预留了QQ号码进行收费。
(2)恐吓软件类(Scareware)
恐吓类软件是伪杀毒软件,这种软件会在用户使用设备时弹出窗口等信息通知用户中病毒等涉及危险的信息,欺骗用户来达到下载恶意软件的目的,该类恶意软件通常会出现在浏览页面上,弹出的广告和系统提示基本相同,不熟悉设备的用户极其容易混淆真假弹窗,然后被骗。


软件工程论文参考

.................................
第五章 总结与展望
5.1工作总结
随着Android版本的不断更新,传统的恶意软件检测方案已经无法保证检测效率的准确性。原本的检测内容所起到的检测权重越来越低,而恶意软件的成长也呈现了多样化发展,越来越多的学者选择把检测的方式从静态检测转移到动态检测上。 本文研究中开展的主要工作有以下几个方面:
(1)提出一种基于软件代码和权限作为特征码的静态检测方法。先对样本进行反编译,并提取它们的权限数据和代码中使用的方法数据,并对这些数据依据Dravik语句分类进行提取。然后使用N-Gram自然语句对数据进行处理,最后以权限和代码作为特征码,并将数据集进行优化使用随机森林模型、SVM算法模型、KNN算法模型进行训练。
(2)提出了基于第三章的恶意软件检测方法,对待测软件生成软件信任评估值,然后依据第四章的基于软件调用行为检测方法对待测软件进行检测。若出现恶意行为,则对软件的信任评估值进行降低,并对软件设定阈值。当信任评估值低于阈值,则判定软件为恶意软件。
(3)提出了一种基于行为建模的恶意软件检测方法。该方法主要是对软件的系统调用进行采集,并根据采集出来的数据分成系统调用类接口、文件操作类接口、进程控制类接口、网络类接口、系统信号类接口、进程通讯类接口和其他类这七种类型。我们把这七类系统调用根据时间进行统计,并使用多种分类器算法对数据集进行训练。
参考文献(略)

如果您有论文相关需求,可以通过下面的方式联系我们
客服微信:371975100
QQ 909091757 微信 371975100