一种安卓手机入侵检测方法及其检测系统转让专利

申请号 : CN201310218439.7

文献号 : CN103327492B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王天时张京源夏焕春吴宁

申请人 : 王天时

摘要 :

本发明为一种安卓手机入侵检测方法及其检测系统,该检测方法是通过对安卓手机中各应用程序的敏感权限进行静态检测,同时对具有联网权限的应用程序进行流量比例检测与抓包分析,并将检测结果通过可视界面告知用户;该检测系统包括敏感权限检测模块、权重分析模块以及显示模块;敏感权限检测模块包括并联设置的联网权限检测子模块、发送短信权限检测子模块、接收短信权限检测子模块、拨打电话权限检测子模块以及访问联系人信息权限检测子模块;各子模块的输出端与权重分析模块的输入端相连接,权重分析模块的输出端与显示模块相连接;与现有技术相比,本发明的检测方法简单有效,检测结果的精细度更高。

权利要求 :

1.一种安卓手机入侵检测方法,其特征在于:

所述检测方法是通过对所述安卓手机中各应用程序的敏感权限进行静态检测,并对各敏感权限进行权重分析,同时对具有联网权限的应用程序进行流量比例检测与抓包分析,并将检测结果通过可视界面告知用户;

所述检测方法的具体步骤为,

步骤1,系统参数设定步骤:设置所述系统运行所需的参数,包括触发周期、网络地址黑名单、应用程序状态、各所述敏感权限的加权系数Hn以及加权上限值;

步骤2,系统启动步骤:若触发周期达到所述步骤1的设定值或者智能手机安装新的应用程序时,所述敏感权限检测模块通过触发信号启动;

步骤3:敏感权限检测步骤:所述应用程序的敏感权限包括联网权限、接收短信权限、发送短信权限、拨打电话权限以及访问联系人信息权限;通过并行处理方式分别对各所述敏感权限进行检测,其具体过程是:步骤3-1:通过包管理器类获取所述应用程序的包名称,并通过JAVA编程继承所述包管理器,并从所述包名称中获取包信息和权限信息;

步骤3-2:分别检测各所述敏感权限,即步骤3-2-1、步骤3-2-2、步骤3-2-3、步骤

3-2-4、步骤3-2-5并序执行;

步骤3-2-1,联网权限检测步骤:

获取所述应用程序根目录中的xml文件,所述xml文件描述了包中暴露的组件、各自的实现类、可处理数据以及启动位置;

将所述xml文件中的数据与允许应用程序打开网络套接字的声明语句进行数据比对;

若所述xml文件中存在允许应用程序打开网络套接字的声明语句,则检测结果为是;

若所述xml文件中不存在允许应用程序打开网络套接字的声明语句,则检测结果为否;

步骤3-2-2,发送短信权限检测步骤:

将所述xml文件中的数据与允许应用程序发送短信的声明语句进行数据比对;

若所述xml文件中存在允许应用程序发送短信的声明语句,则检测结果为是;

若所述xml文件中不存在允许应用程序发送短信的声明语句,则检测结果为否;

步骤3-2-3,接收短信权限检测步骤:

将所述xml文件中的数据与允许应用程序监控将收到的短信,并进行记录或处理的声明语句进行数据比对;

若所述xml文件中存在允许应用程序监控将收到的短信,并进行记录或处理的声明语句,则检测结果为是;

若所述xml文件中不存在允许应用程序监控将收到的短信,并进行记录或处理的声明语句,则检测结果为否;

步骤3-2-4,拨打电话权限检测步骤:

将所述xml文件中的数据与允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句进行数据比对;

若所述xml文件中存在允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句,则检测结果为是;

若所述xml文件中不存在允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句,则检测结果为否;

步骤3-2-5,访问联系人信息权限检测步骤:

将所述xml文件中的数据与允许应用程序读取用户联系人数据的声明语句进行数据比对;

若所述xml文件中存在允许应用程序读取用户联系人数据的声明语句,则检测结果为是;

若所述xml文件中不存在允许应用程序读取用户联系人数据的声明语句,则检测结果为否;

步骤4,权重分析步骤;

根据所述步骤3-2-1至步骤3-2-5的检测结果确定Rn的值;Rn表示所述应用程序是否具有第n种操作的权限,n代表各所述敏感权限的编号,n的取值为1、2、3、4、5;

若第n种所述敏感权限的检测结果为是,则Rn=1;

若第n种所述敏感权限的检测结果为否,则Rn=0;

根据Rn以及所述步骤1设置的各所述敏感权限的加权系数Hn计算所述应用程序中各敏感权限的加权值D,如公式(1)所示:其中,0≤Hn≤1,且

步骤5,判断步骤;

将所述步骤4计算得到的加权值D与所述步骤1设定的加权上限值进行比对;

若加权值D≥加权上限值,则向人机交互界面发送报警信息;

若加权值D<加权上限值,则向人机交互界面发送安全信息;

步骤6,用户处理步骤;

用户根据所述步骤5发送的报警信息或安全信息,删除或保留所述应用程序,其中,在步骤3-2-1中,若联网权限检测的结果为是,则执行流量检测分析步骤,流量检测分析步骤包括分别对所述安卓手机进行流量比例检测和抓包分析,流量比例检测步骤、抓包分析步骤与所述步骤4的权重分析步骤并序执行;

流量检测分析步骤为:

步骤3-3,流量比例检测步骤:

步骤3-3-1,利用提供网络流量统计的JAVA类统计通过所有网络接口收到的字节总数,从而获取所述应用程序总的接收流量,即各所述应用程序的下载流量值;

步骤3-3-2,利用提供网络流量统计的JAVA类,统计通过所有网络接口发送的字节总数,从而获取所述应用程序总的发送流量,即各所述应用程序的上传流量值;

步骤3-3-3,根据所述步骤3-3-1和3-3-2中各所述应用程序的下载流量值、上传流量值,获取各所述应用程序的流量分配比例,并将所述流量分配比例结果传输至人机交互界面;

步骤3-4,抓包分析步骤:

步骤3-4-1:获得所述安卓手机的系统管理员权限;

步骤3-4-2,利用网络数据包捕获函数包生成库;

步骤3-4-3,通过JAVA本地调用技术调用所述步骤3-4-2中生成的库;

步骤3-4-4,抓包步骤:通过网络数据采集分析工具获取网络数据包的头部数据;

步骤3-4-5,解包步骤:通过网络数据包捕获函数包对所述步骤3-4-4获取的头部数据进行解码;

步骤3-4-6:将所述步骤3-4-5中获取的解码数据与所述步骤1中预设的网络地址黑名单进行数据比对;

若所述解码数据中存在与所述网络地址黑名单的数据包发送记录,则向人机交互界面发送报警信息,跳转至步骤6;

若所述解码数据中不存在与所述网络地址黑名单的数据包发送记录,则重复执行所述步骤3-4-4至步骤3-4-6,重复次数为每分钟100~1000次;若最后一次抓包分析检测步骤中仍未发现与所述网络地址黑名单的数据包发送记录,则向人机交互界面发送安全信息,跳转至步骤6。

2.使用权利要求1所述的检测方法的一种安卓手机入侵检测系统,其特征在于:所述检测系统包括敏感权限检测模块、权重分析模块以及显示模块;

所述敏感权限检测模块的输出端与所述权重分析模块的信号输入端连接,所述权重分析模块的分析结果送至所述显示模块;

所述敏感权限检测模块包括联网权限检测子模块、发送短信权限检测子模块、接收短信权限检测子模块、拨打电话权限检测子模块以及访问联系人信息权限检测子模块;各所述子模块并联设置,且各所述子模块的输出端均与所述权重分析模块的输入端连接;

所述敏感权限检测模块用于检测所述安卓手机中各应用程序的敏感权限,即分别检测联网权限、发送短信权限、接收短信权限、拨打电话权限以及访问联系人信息权限;

所述权重分析模块用于对所述敏感权限检测模块的检测结果做进一步分析,分析检测各敏感权限所占的比重,根据所述权重分析模块的分析结果判断所述安卓手机是否发生入侵,并将检测结果传输至所述显示模块,由用户判断是否保留所述应用程序。

3.根据权利要求2所述的一种安卓手机入侵检测系统,其特征在于:所述权重分析模块包括加权计算子模块和对比子模块;

所述加权计算子模块用于计算各所述应用程序中敏感权限的加权值;

所述对比子模块用于将所述加权计算子模块的计算结果与预设值进行数据对比,并将对比结果传输至所述显示模块,以告知用户所述安卓手机是否发生入侵;

所述加权计算子模块与对比子模块串联设置,且所述加权计算子模块的信号输入端与所述敏感权限检测模块的信号输出端相连接,所述对比子模块的信号输出端与所述显示模块的信号输入端相连接。

4.根据权利要求2所述的一种安卓手机入侵检测系统,其特征在于:所述检测系统还包括流量检测分析模块;

所述流量检测分析模块用于对含有联网权限的应用程序进行流量分配比例检测以及数据包网络地址检测;

所述流量检测分析模块包括流量比例检测子模块;

所述流量比例检测子模块包括WIFI流量查看单元、GPRS流量查看单元以及总流量查看单元;

所述WIFI流量查看单元和GPRS流量查看单元分别用于统计各所述应用程序通过WIFI和GPRS方式所耗费的下载流量和上传流量;所述总流量查看单元用于统计各所述程序的总下载流量和上传流量,从而获取流量的分配比例;

所述WIFI流量查看单元和GPRS流量查看单元并联设置,所述WIFI流量查看单元和GPRS流量查看单元的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述WIFI流量查看单元和GPRS流量查看单元的信号输出端与所述总流量查看单元的信号输入端相连接,所述总流量查看单元的信号输出端与所述显示模块相连接。

5.根据权利要求4所述的一种安卓手机入侵检测系统,其特征在于:所述检测系统还包括抓包分析子模块;

所述抓包分析子模块与所述流量比例检测子模块并联设置,且所述抓包分析子模块的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述抓包分析子模块的信号输出端与所述显示模块相连接;

所述抓包分析子模块用于分析发送接收的数据包网络地址,并根据预设的网络地址黑名单判断所述安卓手机是否发生入侵;

所述抓包分析子模块包括抓包单元、解包单元以及分析单元;

所述抓包单元、解包单元以及分析单元依次串联设置,所述抓包单元的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述分析单元的信号输出端与所述显示模块的信号输入端相连接;

所述抓包单元用于获取网络数据包信息;所述解包单元用于对所述网络数据包信息进行解码;所述分析单元用于将解码后的所述网络数据包与预设的IP地址黑名单进行对比,从而判断所述安卓手机是否发生入侵,并将检测结果传输至所述显示模块。

6.根据权利要求2所述的一种安卓手机入侵检测系统,其特征在于:所述检测系统还包括触发模块;

所述触发模块的信号输出端与所述敏感权限检测模块的信号输入端相连接;

所述触发模块包括周期触发子模块和新软件安装触发子模块;

所述周期触发子模块用于周期性地检测所述安卓手机中正在运行的所述应用程序的敏感权限,并将检测结果通过所述显示模块告知用户;

所述新软件安装子模块用于主动检测所述安卓手机上新安装应用程序的敏感权限,并将检测结果通过所述显示模块告知用户。

7.根据权利要求2~5之一所述的一种安卓手机入侵检测系统,其特征在于:所述检测系统还包括用户操作模块;

所述用户操作模块的信号输入端与所述显示模块的信号输出端相连接;

所述用户操作模块用于对所述应用程序执行删除命令或保留命令。

说明书 :

一种安卓手机入侵检测方法及其检测系统

技术领域

[0001] 本发明涉及移动通讯领域中的安全防护系统,尤其涉及一种安卓手机入侵检测方法及其检测系统。

背景技术

[0002] 随着智能手机用户的剧增,恶意软件所造成的不安全因素已受到越来越多的关注。智能手机上大量免费应用软件的推广为攻击者绑定木马提供了便利条件,恶意的服务商通过木马使移动设备隐秘的向特定目标发送增值短信或非法联网,大大损害了用户利益。
[0003] 安装Android系统的智能手机占据了全球智能手机市场的最大份额,且由于Android平台是一个开源系统,这就使得相对于其他智能手机系统而言,针对使用Android平台的智能手机的攻击更加容易取得显著效果。
[0004] 对于安卓手机系统的安全防护软件而言,保证本系统中文件和信息数据的安全是重点之一。目前主流的手机安全软件大多只关注手机病毒查杀、防火墙、数据流量监控和恶意短信拦截等功能,而很少支持针对软件权限的检测功能,考虑到多数手机恶意软件都是通过提升权限而获取敏感信息来实施攻击,这就导致采用现有的手机安全软件的检测结果的精细度较低。
[0005] 如图1所示,中国专利CN102810143A提供了一种基于Android平台手机应用程序的安全系统及方法,该现有技术专利仅能在应用程序的安装过程中针对Android安全机制本身的局限性进行安全防护,无法按照用户自身的需求对应用程序中各敏感权限进行定制分析,也无法实现对各应用程序所消耗的流量进行量化检测以及地址检测;
[0006] 因此,研发出一套高效的手机入侵检测系统具有十分重要的现实意义。

发明内容

[0007] 为了解决现有的智能手机安全检测软件检测精度较低的缺陷,本发明提供了一种安卓手机入侵检测系统及检测方法;本发明通过改进检测方法,能够在恶意应用程序实施攻击之前警示用户敏感权限的使用情况以及检测流量情况,从而及时删除恶意应用程序,大幅提高了安卓手机的安全性。
[0008] 本发明的技术方案如下,
[0009] 一种安卓手机入侵检测方法,所述检测方法是通过对所述安卓手机中各应用程序的敏感权限进行静态检测,并对各敏感权限进行权重分析,同时对具有联网权限的应用程序进行流量比例检测与抓包分析,并将检测结果通过可视界面告知用户;
[0010] 所述检测方法的具体步骤为,
[0011] 步骤1,系统参数设定步骤:设置所述系统运行所需的参数,包括触发周期、网络地址黑名单、应用程序状态、各所述敏感权限的加权系数Hn以及加权上限值;
[0012] 步骤2,系统启动步骤:若触发周期达到所述步骤1的设定值或者所述智能手机安装新的应用程序时,所述敏感权限检测模块通过触发信号启动;
[0013] 步骤3:敏感权限检测步骤:所述应用程序的敏感权限包括联网权限、接收短信权限、发送短信权限、拨打电话权限以及访问联系人信息权限;通过并行处理方式分别对各所述敏感权限进行检测,其具体过程是:
[0014] 步骤3-1:通过包管理器类获取所述应用程序的包名称,并通过JAVA编程继承所述包管理器,并从所述包名称中获取包信息getPackageInfo和权限信息getPermissionInfo;
[0015] 包管理器类即PakeageManager类,它是JAVA的一个抽象类,其中定义了一些抽象方法以及静态变量;包管理器类的功能包括你:安装、卸载应用;查询权限相关信息;查询应用程序的相关属性;查询已安装应用;增加、删除权限;清楚用户数据、缓存、代码等。
[0016] 步骤3-2:分别检测各所述敏感权限,即步骤3-2-1、步骤3-2-2、步骤3-2-3、步骤3-2-4、步骤3-2-5并序执行;
[0017] 步骤3-2-1,联网权限检测步骤:
[0018] 获取所述应用程序根目录中的xml文件,即AndroidManifest.xml文件,所述xml文件中描述了包信息中暴露的组件、各自的实现类、可处理数据以及启动位置;
[0019] 将所述xml文件中的数据与允许应用程序打开网络套接字的声明语句android.permission.INTERNET进行数据比对;
[0020] android.permission.INTERNET是一条可在AndroidManifest.xml文件中进行声明的语句,本语句作用是声明允许程序打开网络套接字;
[0021] 若所述xml文件中存在允许应用程序打开网络套接字的声明语句,则检测结果为是;
[0022] 若所述xml文件中不存在允许应用程序打开网络套接字的声明语句,则检测结果为否;
[0023] 步骤3-2-2,发送短信权限检测步骤:
[0024] 将所述xml文件中的数据与允许应用程序发送短信的声明语句android.permission.SEND_SMS进行数据比对;
[0025] android.permission.SEND_SMS是一条可在AndroidManifest.xml进行声明的语句,本语句作用是声明允许程序发送SMS短信;
[0026] 若所述xml文件中存在允许应用程序发送短信的声明语句,则检测结果为是;
[0027] 若所述xml文件中不存在允许应用程序发送短信的声明语句,则检测结果为否;
[0028] 步骤3-2-3,接收短信权限检测步骤:
[0029] 将所述xml文件中的数据与允许应用程序监控将收到的短信,并进行记录或处理的声明语句android.permission.RECEIVE_SMS进行数据比对;
[0030] android.permission.RECEIVE_SMS是一条可在AndroidManifest.xml进行声明的语句,本语句作用是声明允许程序监控一个将收到的短信息,并对其进行记录或处理;
[0031] 若所述xml文件中存在允许应用程序监控将收到的短信,并进行记录或处理的声明语句,则检测结果为是;
[0032] 若所述xml文件中不存在允许应用程序监控将收到的短信,并进行记录或处理的声明语句,则检测结果为否;
[0033] 步骤3-2-4,拨打电话权限检测步骤:
[0034] 将所述xml文件中的数据与允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句android.permission.CALL_PHONE进行数据比对;
[0035] android.permission.CALL_PHONE是一条可在AndroidManifest.xml进行声明的语句,本语句作用是声明允许一个程序初始化一个电话拨号而不需要用户通过用户拨号界面对呼叫进行确认;
[0036] 若所述xml文件中存在允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句,则检测结果为是;
[0037] 若所述xml文件中不存在允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句,则检测结果为否;
[0038] 步骤3-2-5,访问联系人信息权限检测步骤:
[0039] 将所述xml文件中的数据与允许应用程序读取用户联系人数据的声明语句android.permission.READ_CONTACTSE进行数据比对;
[0040] android.permission.READ_CONTACTSE是一条可在AndroidManifest.xml进行声明的语句,本语句作用是声明允许程序读取用户联系人数据;
[0041] 若所述xml文件中存在允许应用程序读取用户联系人数据的声明语句,则检测结果为是;
[0042] 若所述xml文件中不存在允许应用程序读取用户联系人数据的声明语句,则检测结果为否;
[0043] 步骤4,权重分析步骤;
[0044] 根据所述步骤3-2-1至步骤3-2-5的检测结果确定Rn的值;Rn表示所述应用程序是否具有第n种操作的权限,n代表各所述敏感权限的编号,n的取值为1、2、3、4、5;
[0045] 若第n种所述敏感权限的检测结果为是,则Rn=1;
[0046] 若第n种所述敏感权限的检测结果为否,则Rn=0;
[0047] 根据Rn以及所述步骤1设置的各所述敏感权限的加权系数Hn计算所述应用程序中各敏感权限的加权值D,如公式1所示:
[0048]
[0049] 其中,0≤Hn≤1,且
[0050] 在具体实施中,用户可以根据自己对于某敏感权限的重视程度,设定不同的权重。例如某些用户重视对联系人信息访问的权限,那么就可以把该项敏感权限的权重设定很高,只要有使用马上预警。同时,为了避免使用中过多预警带来的不便利,可以将不是特别重视的敏感权限设定权重低一些,这样可以避免过多的预警;具体方法如下:
[0051] 默认情况下,各敏感权限的加权系数Hn均为0.2,即H1=H2=H3=H4=H5=0.2;若用户对某些敏感权限并不重视,只重视部分敏感权限,例如只重视4个敏感权限,则将不重视的敏感权限对应的加权系数设为0,重视的敏感权限对应的加权系数为1/4,则所述应用程序中敏感权限的加权值为D=R1×H1+R2×H2+R3×H3+R4×H4;
[0052] 步骤5,判断步骤;
[0053] 将所述步骤4计算得到的加权值D与所述步骤1设定的加权上限值进行比对;
[0054] 若加权值D≥加权上限值,则向人机交互界面发送报警信息;
[0055] 若加权值D<加权上限值,则向人机交互界面发送安全信息;
[0056] 对于新安装的应用程序,系统会根据敏感权限操作加权机制主动对用户实施告警。
[0057] 对于已安装的应用程序,用户首先要设置重视的敏感权限以及安全级别,共可勾选五个敏感权限,分别是连通网络权限、发送短信权限、接收短信权限、拨打电话权限、读联系人权限,安全级别可以设置为高、中、低,设置完成后进入敏感权限检测模块的初始界面,用户在初始界面的程序名处选择需要进行检测的应用,就可以显示这五个敏感权限的检测结果。系统设置一个加权上限值,当加权值≥上限值时,系统自动告警,提示用户该软件可能存在危险。用户可以设置三个系统安全级别:高、中、低,当设置为高时,上限值=0.2;当设置为中时上限值=0.5;当设置为低时,上限值=0.8,当应用的敏感权限危险值大于上限值时,系统将会自动告警。
[0058] 步骤6,用户处理步骤;
[0059] 用户根据所述步骤5发送的报警信息或安全信息,删除或保留所述应用程序。
[0060] 在步骤3-2-1中,若联网权限检测的结果为是,则执行流量检测分析步骤,流量检测分析步骤包括分别对所述安卓手机进行流量比例检测和抓包分析,流量比例检测步骤、抓包分析步骤与所述步骤4的权重分析步骤并序执行;
[0061] 流量检测分析步骤为:
[0062] 步骤3-3,流量比例检测步骤:
[0063] 步骤3-3-1,利用 提供 网络 流量 统计 的JAVA类,即 API-android.net.TrafficStats类,统 计 通 过 所 有 网 络 接 口 收 到的 字 节 总 数 TrafficStats.getTotalRxBytes,从而获取所述应用程序总的接收流量,即各所述应用程序的下载流量值;
[0064] 步骤3-3-2,利用 提供 网络 流量 统计 的JAVA类,即 API-android.net.TrafficStats类,统 计 通 过 所 有 网 络 接 口 发 送的 字 节 总 数 TrafficStats.getTotalTxBytes,从而获取所述应用程序总的发送流量,即各所述应用程序的上传流量值;
[0065] 步骤3-3-3,根据所述步骤3-3-1和3-3-2中各所述应用程序的下载流量值、上传流量值,获取各所述应用程序的流量分配比例,并将所述流量分配比例结果传输至人机交互界面;
[0066] 步骤3-4,抓包分析步骤:
[0067] 步骤3-4-1:获得所述安卓手机的系统管理员ROOT权限;
[0068] 步骤3-4-2,利用网络数据包捕获函数包libpcap和jnetpcap生成库;
[0069] libpcap是unix/linux平台下的网络数据包捕获函数包;大多数网络监控软件都以它为基础;libpcap提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。
[0070] jnetpcap是libpcap的一个JAVA完整封装,jNetpcap使用与libpcap相同风格的API。
[0071] 步骤3-4-3,通过JAVA本地调用jni技术调用所述步骤3-4-2中生成的库;
[0072] 步骤3-4-4,抓包步骤:通过网络数据采集分析工具tcpdump获取网络数据包的头部数据;
[0073] tcpdump是Linux中的网络数据采集分析工具,可以将网络中传送的数据包的“头”完全截获下来提供分析。
[0074] 步骤3-4-5,解包步骤:通过网络数据包捕获函数包对所述步骤3-4-4获取的头部数据进行解码;
[0075] 步骤3-4-6:将所述步骤3-4-5中获取的解码数据与所述步骤1中预设的网络地址黑名单进行数据比对;
[0076] 若所述解码数据中存在与所述网络地址黑名单的数据包发送记录,则向人机交互界面发送报警信息,跳转至步骤6;
[0077] 若所述解码数据中不存在与所述网络地址黑名单的数据包发送记录,则重复执行所述步骤3-4-4至步骤3-4-6,重复次数为每分钟100~1000次;若最后一次抓包分析检测步骤中仍未发现与所述网络地址黑名单的数据包发送记录,则向人机交互界面发送安全信息,跳转至步骤6。
[0078] 本发明的第二个保护主题是:
[0079] 使用本检测方法的一种安卓手机入侵检测系统,所述检测系统包括敏感权限检测模块、权重分析模块以及显示模块;
[0080] 所述敏感权限检测模块的输出端与所述权重分析模块的信号输入端连接,所述权重分析模块的分析结果送至所述显示模块;
[0081] 所述敏感权限检测模块包括联网权限检测子模块、发送短信权限检测子模块、接收短信权限检测子模块、拨打电话权限检测子模块以及访问联系人信息权限检测子模块;各所述子模块并联设置,且各所述子模块的输出端均与所述权重分析模块的输入端连接;
[0082] 所述敏感权限检测模块用于检测所述安卓手机中各应用程序的敏感权限,即分别检测联网权限、发送短信权限、接收短信权限、拨打电话权限以及访问联系人信息权限;
[0083] 所述权重分析模块用于对所述敏感权限检测模块的检测结果做进一步分析,分析检测各敏感权限所占的比重,根据所述权重分析模块的分析结果判断所述安卓手机是否发生入侵,并将检测结果传输至所述显示模块,由用户判断是否保留所述应用程序。
[0084] 所述权重分析模块包括加权计算子模块和对比子模块;
[0085] 所述加权计算子模块用于计算各所述应用程序中敏感权限的加权值;
[0086] 所述对比子模块用于将所述加权计算子模块的计算结果与预设值进行数据对比,并将对比结果传输至所述显示模块,以告知用户所述安卓手机是否发生入侵;
[0087] 所述加权计算子模块与对比子模块串联设置,且所述加权计算子模块的信号输入端与所述敏感权限检测模块的信号输出端相连接,所述对比子模块的信号输出端与所述显示模块的信号输入端相连接。
[0088] 所述检测系统还包括流量检测分析模块;
[0089] 所述流量检测分析模块用于对含有联网权限的应用程序进行流量分配比例检测以及数据包网络地址检测;
[0090] 所述流量检测分析模块包括流量比例检测子模块;
[0091] 所述流量比例检测子模块包括WIFI流量查看单元、GPRS流量查看单元以及总流量查看单元;
[0092] 所述WIFI流量查看单元和GPRS流量查看单元分别用于统计各所述应用程序通过WIFI和GPRS方式所耗费的下载流量和上传流量;所述总流量查看单元用于统计各所述程序的总下载流量和上传流量,从而获取流量的分配比例。
[0093] 所述WIFI流量查看单元和GPRS流量查看单元并联设置,所述WIFI流量查看单元和GPRS流量查看单元的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述WIFI流量查看单元和GPRS流量查看单元的信号输出端与所述总流量查看单元的信号输入端相连接,所述总流量查看单元的信号输出端与所述显示模块相连接。
[0094] 所述检测系统还包括抓包分析子模块;
[0095] 所述抓包分析子模块与所述流量比例检测子模块并联设置,且所述抓包分析子模块的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述抓包分析子模块的信号输出端与所述显示模块相连接;
[0096] 所述抓包分析子模块用于分析发送接收的数据包网络地址,并根据预设的网络地址黑名单判断所述安卓手机是否发生入侵;
[0097] 所述抓包分析子模块包括抓包单元、解包单元以及分析单元;
[0098] 所述抓包单元、解包单元以及分析单元依次串联设置,所述抓包单元的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述分析单元的信号输出端与所述显示模块的信号输入端相连接;
[0099] 所述抓包单元用于获取网络数据包信息;所述解包单元用于对所述网络数据包信息进行解码;所述分析单元用于将解码后的所述网络数据包与预设的IP地址黑名单进行对比,从而判断所述安卓手机是否发生入侵,并将检测结果传输至所述显示模块。
[0100] 所述检测系统还包括触发模块;
[0101] 所述触发模块的信号输出端与所述敏感权限检测模块的信号输入端相连接;
[0102] 所述触发模块包括周期触发子模块和新软件安装触发子模块;
[0103] 所述周期触发子模块用于周期性地检测所述安卓手机中正在运行的所述应用程序的敏感权限,并将检测结果通过所述显示模块告知用户;
[0104] 所述新软件安装子模块用于主动检测所述安卓手机上新安装应用程序的敏感权限。并将检测结果通过所述显示模块告知用户。
[0105] 所述检测系统还包括用户操作模块;
[0106] 所述用户操作模块的信号输入端与所述显示模块的信号输出端相连接;
[0107] 所述用户操作模块用于对所述应用程序执行删除命令或保留命令。
[0108] 本发明实现的安卓手机入侵检测方法采用了信息安全入侵检测技术中的静态误用检的原理和模型。其中,流量检测分析模块的数据包分析功能采用了基于本地开发组件NDK的C语言编程,其余代码均采用基于辅助开发组件ADK的JAVA编程。用户可以自行检查所安装软件的权限,预先知道该软件进行各种行为所需要的权限,避免敏感权限的使用,可以随时卸载掉不可信任的程序软件。
[0109] 同时,对于具有连通网络权限的程序进行WIFI和GPRS的流量统计,通报手机用户流量的分配比例,然后通过分析发送接收的数据包IP地址,根据静态的、预先确定的IP地址黑名单来判断手机是否发生了入侵,而标准的IP地址黑名单可以通过云服务器生成。
[0110] 本发明的检测系统采用对各软件的访问权限进行静态检测,检测方法简单却十分有效的保护系统中文件和信息数据的方案,该方法在恶意软件实施攻击之前向用户提示告警信息,并提供用户自行判断是否保留此软件的选择。
[0111] 同时,对于具有网络权限的程序在已有流量监控的基础上增加了抓包分析,达到了更精细的安全分析的目的。

附图说明

[0112] 图1为现有技术中的一种安卓手机安全检测系统的工作流程图;
[0113] 图2为本发明的一种安卓手机入侵系统及检测方法的工作流程图;
[0114] 图2a为图2中联网权限检测方法的工作流程图;
[0115] 图2b为图2中联网发送短信权限检测方法的工作流程图;
[0116] 图2c为图2中接收短信权限检测方法的工作流程图;
[0117] 图2d为图2中拨打电话权限检测方法的工作流程图;
[0118] 图2e为图2中访问联系人信息权限检测方法的工作流程图;
[0119] 图3为本发明的流量检测分析方法的工作流程图;
[0120] 图4为图3中抓包分析子模块的工作流程图;
[0121] 下面结合附图和具体实施方式对本发明作进一步详细地说明,本发明的保护范围不局限于下述的具体实施方式。

具体实施方式

[0122] 如图2、图2a、图2b、图2c、图2d、图2e、图3、图4所示,
[0123] 一种安卓手机入侵检测方法,所述检测方法是通过对所述安卓手机中各应用程序的敏感权限进行静态检测,并对各敏感权限进行权重分析,同时对具有联网权限的应用程序进行流量比例检测与抓包分析,并将检测结果通过可视界面告知用户;
[0124] 所述检测方法的具体步骤为,
[0125] 步骤1,系统参数设定步骤:设置所述系统运行所需的参数,包括触发周期、网络地址黑名单、应用程序状态、各所述敏感权限的加权系数Hn以及加权上限值;
[0126] 步骤2,系统启动步骤:若触发周期达到所述步骤1的设定值或者所述智能手机安装新的应用程序时,所述敏感权限检测模块通过触发信号启动;
[0127] 步骤3:敏感权限检测步骤:所述应用程序的敏感权限包括联网权限、接收短信权限、发送短信权限、拨打电话权限以及访问联系人信息权限;通过并行处理方式分别对各所述敏感权限进行检测,其具体过程是:
[0128] 步骤3-1:通过包管理器类获取所述应用程序的包名称,并通过JAVA编程继承所述包管理器,并从所述包名称中获取包信息和权限信息;
[0129] 步骤3-2:分别检测各所述敏感权限,即步骤3-2-1、步骤3-2-2、步骤3-2-3、步骤3-2-4、步骤3-2-5并序执行;
[0130] 步骤3-2-1,联网权限检测步骤:
[0131] 获取所述应用程序根目录中的xml文件,所述xml文件描述了包中暴露的组件、各自的实现类、可处理数据以及启动位置;
[0132] 将所述xml文件中的数据与允许应用程序打开网络套接字的声明语句进行数据比对;
[0133] 若所述xml文件中存在允许应用程序打开网络套接字的声明语句,则检测结果为是;
[0134] 若所述xml文件中不存在允许应用程序打开网络套接字的声明语句,则检测结果为否;
[0135] 步骤3-2-2,发送短信权限检测步骤:
[0136] 将所述xml文件中的数据与允许应用程序发送短信的声明语句进行数据比对;
[0137] 若所述xml文件中存在允许应用程序发送短信的声明语句,则检测结果为是;
[0138] 若所述xml文件中不存在允许应用程序发送短信的声明语句,则检测结果为否;
[0139] 步骤3-2-3,接收短信权限检测步骤:
[0140] 将所述xml文件中的数据与允许应用程序监控将收到的短信,并进行记录或处理的声明语句进行数据比对;
[0141] 若所述xml文件中存在允许应用程序监控将收到的短信,并进行记录或处理的声明语句,则检测结果为是;
[0142] 若所述xml文件中不存在允许应用程序监控将收到的短信,并进行记录或处理的声明语句,则检测结果为否;
[0143] 步骤3-2-4,拨打电话权限检测步骤:
[0144] 将所述xml文件中的数据与允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句进行数据比对;
[0145] 若所述xml文件中存在允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句,则检测结果为是;
[0146] 若所述xml文件中不存在允许应用程序初始化电话拨号而不需要用户通过用户拨号界面对呼叫进行确认的声明语句,则检测结果为否;
[0147] 步骤3-2-5,访问联系人信息权限检测步骤:
[0148] 将所述xml文件中的数据与允许应用程序读取用户联系人数据的声明语句进行数据比对;
[0149] 若所述xml文件中存在允许应用程序读取用户联系人数据的声明语句,则检测结果为是;
[0150] 若所述xml文件中不存在允许应用程序读取用户联系人数据的声明语句,则检测结果为否;
[0151] 步骤4,权重分析步骤;
[0152] 根据所述步骤3-2-1至3-2-5的检测结果确定Rn的值;Rn表示所述应用程序是否具有第n种操作的权限,n代表各所述敏感权限的编号,n的取值为1、2、3、4、5;
[0153] 若第n种所述敏感权限的检测结果为是,则Rn=1;
[0154] 若第n种所述敏感权限的检测结果为否,则Rn=0;
[0155] 根据Rn以及所述步骤1设置的各所述敏感权限的加权系数Hn计算所述应用程序中各敏感权限的加权值D,如公式1所示:
[0156]
[0157] 其中,0≤Hn≤1,且
[0158] 步骤5,判断步骤;
[0159] 将所述步骤4计算得到的加权值D与所述步骤1设定的加权上限值进行比对;
[0160] 若加权值D≥加权上限值,则向人机交互界面发送报警信息;
[0161] 若加权值D<加权上限值,则向人机交互界面发送安全信息;
[0162] 步骤6,用户处理步骤;
[0163] 用户根据所述步骤5发送的报警信息或安全信息,删除或保留所述应用程序。
[0164] 在步骤3-2-1中,若联网权限检测的结果为是,则执行流量检测分析步骤,流量检测分析步骤包括分别对所述安卓手机进行流量比例检测和抓包分析,流量比例检测步骤、抓包分析步骤与所述步骤4的权重分析步骤并序执行;
[0165] 流量检测分析步骤为:
[0166] 步骤3-3,流量比例检测步骤:
[0167] 步骤3-3-1,利用提供网络流量统计的JAVA类统计通过所有网络接口收到的字节总数,从而获取所述应用程序总的接收流量,即各所述应用程序的下载流量值;
[0168] 步骤3-3-2,利用提供网络流量统计的JAVA类,统计通过所有网络接口发送的字节总数,从而获取所述应用程序总的发送流量,即各所述应用程序的上传流量值;
[0169] 步骤3-3-3,根据所述步骤3-3-1和3-3-2中各所述应用程序的下载流量值、上传流量值,获取各所述应用程序的流量分配比例,并将所述流量分配比例结果传输至人机交互界面;
[0170] 步骤3-4,抓包分析步骤:
[0171] 步骤3-4-1:获得所述安卓手机的系统管理员权限;
[0172] 步骤3-4-2,利用网络数据包捕获函数包生成库;
[0173] 步骤3-4-3,通过JAVA本地调用技术调用所述步骤3-4-2中生成的库;
[0174] 步骤3-4-4,抓包步骤:通过网络数据采集分析工具获取网络数据包的头部数据;
[0175] 步骤3-4-5,解包步骤:通过网络数据包捕获函数包对所述步骤3-4-4获取的头部数据进行解码;
[0176] 步骤3-4-6:将所述步骤3-4-5中获取的解码数据与所述步骤1中预设的网络地址黑名单进行数据比对;
[0177] 若所述解码数据中存在与所述网络地址黑名单的数据包发送记录,则向人机交互界面发送报警信息,跳转至步骤6;
[0178] 若所述解码数据中不存在与所述网络地址黑名单的数据包发送记录,则重复执行所述步骤3-4-4至步骤3-4-6,重复次数为每分钟100~1000次;若最后一次抓包分析检测步骤中仍未发现与所述网络地址黑名单的数据包发送记录,则向人机交互界面发送安全信息,跳转至步骤6。
[0179] 使用本检测方法的一种安卓手机入侵检测系统,所述检测系统包括敏感权限检测模块、权重分析模块以及显示模块;
[0180] 所述敏感权限检测模块的输出端与所述权重分析模块的信号输入端连接,所述权重分析模块的分析结果送至所述显示模块;
[0181] 所述敏感权限检测模块包括联网权限检测子模块、发送短信权限检测子模块、接收短信权限检测子模块、拨打电话权限检测子模块以及访问联系人信息权限检测子模块;各所述子模块并联设置,且各所述子模块的输出端均与所述权重分析模块的输入端连接;
[0182] 所述敏感权限检测模块用于检测所述安卓手机中各应用程序的敏感权限,即分别检测联网权限、发送短信权限、接收短信权限、拨打电话权限以及访问联系人信息权限;
[0183] 所述权重分析模块用于对所述敏感权限检测模块的检测结果做进一步分析,分析检测各敏感权限所占的比重,根据所述权重分析模块的分析结果判断所述安卓手机是否发生入侵,并将检测结果传输至所述显示模块,由用户判断是否保留所述应用程序。
[0184] 所述权重分析模块包括加权计算子模块和对比子模块;
[0185] 所述加权计算子模块用于计算各所述应用程序中敏感权限的加权值;
[0186] 所述对比子模块用于将所述加权计算子模块的计算结果与预设值进行数据对比,并将对比结果传输至所述显示模块,以告知用户所述安卓手机是否发生入侵;
[0187] 所述加权计算子模块与对比子模块串联设置,且所述加权计算子模块的信号输入端与所述敏感权限检测模块的信号输出端相连接,所述对比子模块的信号输出端与所述显示模块的信号输入端相连接。
[0188] 所述检测系统还包括流量检测分析模块;
[0189] 所述流量检测分析模块用于对含有联网权限的应用程序进行流量分配比例检测以及数据包网络地址检测;
[0190] 所述流量检测分析模块包括流量比例检测子模块;
[0191] 所述流量比例检测子模块包括WIFI流量查看单元、GPRS流量查看单元以及总流量查看单元;
[0192] 所述WIFI流量查看单元和GPRS流量查看单元分别用于统计各所述应用程序通过WIFI和GPRS方式所耗费的下载流量和上传流量;所述总流量查看单元用于统计各所述程序的总下载流量和上传流量,从而获取流量的分配比例。
[0193] 所述WIFI流量查看单元和GPRS流量查看单元并联设置,所述WIFI流量查看单元和GPRS流量查看单元的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述WIFI流量查看单元和GPRS流量查看单元的信号输出端与所述总流量查看单元的信号输入端相连接,所述总流量查看单元的信号输出端与所述显示模块相连接。
[0194] 所述检测系统还包括抓包分析子模块;
[0195] 所述抓包分析子模块与所述流量比例检测子模块并联设置,且所述抓包分析子模块的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述抓包分析子模块的信号输出端与所述显示模块相连接;
[0196] 所述抓包分析子模块用于分析发送接收的数据包网络地址,并根据预设的网络地址黑名单判断所述安卓手机是否发生入侵;
[0197] 所述抓包分析子模块包括抓包单元、解包单元以及分析单元;
[0198] 所述抓包单元、解包单元以及分析单元依次串联设置,所述抓包单元的信号输入端与所述联网权限检测子模块的信号输出端相连接,所述分析单元的信号输出端与所述显示模块的信号输入端相连接;
[0199] 所述抓包单元用于获取网络数据包信息;所述解包单元用于对所述网络数据包信息进行解码;所述分析单元用于将解码后的所述网络数据包与预设的IP地址黑名单进行对比,从而判断所述安卓手机是否发生入侵,并将检测结果传输至所述显示模块。
[0200] 所述检测系统还包括触发模块;
[0201] 所述触发模块的信号输出端与所述敏感权限检测模块的信号输入端相连接;
[0202] 所述触发模块包括周期触发子模块和新软件安装触发子模块;
[0203] 所述周期触发子模块用于周期性地检测所述安卓手机中正在运行的所述应用程序的敏感权限,并将检测结果通过所述显示模块告知用户;
[0204] 所述新软件安装子模块用于主动检测所述安卓手机上新安装应用程序的敏感权限。并将检测结果通过所述显示模块告知用户。
[0205] 所述检测系统还包括用户操作模块;
[0206] 所述用户操作模块的信号输入端与所述显示模块的信号输出端相连接;
[0207] 所述用户操作模块用于对所述应用程序执行删除命令或保留命令。
[0208] 上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的结构,因此前面描述的方式只是优选地,而并不具有限制性的意义。