一种基于软件签名和安装时间的Android系统应用检测方法与流程

文档序号:11156192阅读:496来源:国知局
一种基于软件签名和安装时间的Android系统应用检测方法与制造工艺

本发明属于信息安全领域,尤其涉及一种基于软件签名和安装时间的Android系统应用检测方法。



背景技术:

Android系统是基于Linux的开放源码操作系统,主要应用于手机等移动终端。Android系统由操作系统、中间件、用户界面和应用程序组成,而应用程序又分为系统应用和用户应用,系统应用是在system/frameworks,system/app,vendor/app,system/priv-app目录下的应用,用户不能卸载,权限更高且数量庞大。一旦系统应用中被植入恶意应用,就可能对移动终端的用户造成不必要的损失。

针对这些手机恶意系统应用,许多软件公司相继推出多种杀毒软件。现有的Android系统应用安全检查主要分成两类:特征值匹配和启发式扫描,其中特征值匹配依赖病毒库,存在病毒库滞后的问题;启发式扫描不依赖病毒库,但若安全系统应用中具有病毒能够实现的某功能,就会出现查毒程序误报现象,且现在的Android系统中系统应用数量比较庞大,绝大多数的应用通常是安全的,如果采取杀毒引擎依次查杀,查找病毒的速度会非常慢,所以研究一种更加安全快捷的Android系统应用检测方法是具有现实意义的。

本发明通过软件签名与安装时间将Android系统应用做出安全分类,其假设依据为:Android系统中不会被大量植入具有相同签名并携带病毒的系统应用,以及在相差较短时间内Android系统中不会被大量植入带有病毒的系统应用,因为如果在短时间内大量植入病毒,病毒很容易被发现并清理,所以病毒的一般植入方式为,相隔较长时间的少量植入。本发明中所有阈值是通过对不同品牌的Android手机进行大量测试后计算得到,所有阈值的确定值根据具体手机品牌及Android系统版本取定。



技术实现要素:

针对以上技术问题,本发明提供了一种基于软件签名和安装时间的Android系统应用检测方法,本发明是在检索软件签名和安装时间下完成查毒,系统应用无须逐一与病毒库进行对比,大大地提高了查毒速度。

本发明采用的技术方案如下:

一种基于软件签名和安装时间的Android系统应用检测方法,其具体步骤为:

(1)扫描所有Android系统应用,并从Android系统应用中提取签名信息;

(2)记录同一签名信息对应的系统应用个数,若某一签名信息对应的系统应用个数在第一阈值N以上,则标记该签名信息对应的系统应用为安全应用;

(3)记录步骤(2)中所有安全应用的初始安装时间,再扫描步骤(2)中未被标记为安全应用的所有系统应用,提取并记录这些系统应用的初始安装时间,利用安全应用的初始安装时间确定未被标记的系统应用的安全性。

具体的遍历所有Android系统应用,并提取这些系统应用中的签名信息,签名信息包括公钥、有效期和开发者信息,一个应用程序只能对应一个签名,且所有系统应用的签名信息可能不全相同,所以能够通过签名是否相同判断系统应用的开发者是否相同。

具体的记录同一签名信息所对应的系统应用个数,如果某一签名信息对应的系统应用个数在第一阈值N以上,则将该签名信息对应的所有系统应用标记为安全应用。

具体的检索并记录所有安全应用的初始安装时间,将所有初始安装时间按照先后顺序排序得到时间序列{Ti},其中i=1,2,…,k,k为常量,且T1≤T2≤…≤Tk,再利用时间序列{Ti}中的元素确定若干个安全时间STIMEn和安全范围INTERVALn,其中安全范围INTERVALn与安全时间STIMEn一一对应,具体确定方法为:

(a)记录时间序列{Ti}中元素个数,若时间序列{Ti}中元素个数在第二阈值L以上,其中L为正整数,则转入步骤(b),否则不再确定安全时间STIMEn和安全范围INTERVALn,结束;

(b)以时间序列{Ti}中首元素Tf为基准时间,若时间序列{Ti}中存在时间点Tj,使Tj满足Tj-Tf≤M且Tj+1-Tf>M,其中j=f+1,f+2,…,k且第三阈值M≥0,单位为分钟,则将Tf、Tf+1、…、Tj归为同一簇,转入步骤(c),否则转入步骤(e);

(c)若该簇中所有元素个数在第二阈值L以上,其中L为正整数,则转入步骤(d),否则转入步骤(e);

(d)确定该簇的安全时间STIMEn和安全范围INTERVALn,STIMEn为该簇中最早时间FTIMEn和最晚时间LTIMEn的中间时刻,安全范围INTERVALn为:INTERVALn=(LTIMEn-FTIMEn)*APLA,其中APLA表示时间参数,数值范围为0~0.75,安全范围INTERVALn与安全时间STIMEn一一对应,并将该簇中所有元素Tf,Tf+1,…,Tj从时间序列{Ti}中剔除,时间序列{Ti}中剩余元素编号保持不变,转入步骤(a);

(e)将元素Tf从时间序列{Ti}中剔除,时间序列{Ti}中剩余元素编号保持不变,转入步骤(a)。

具体的扫描未被标记为安全应用的所有系统应用,提取并记录这些系统应用的初始安装时间,若某一系统应用的初始安装时间与某个安全时间STIMEn的时间差在该安全时间对应的安全范围INTERVALn内,也就是某一未标记的系统应用的初始安装时间与安全时间STIME1的时间差在安全范围INTERVAL1内,或者与安全时间STIME2的时间差在安全范围INTERVAL2内,以此类推,或者与安全时间STIMEn的时间差在安全范围INTERVALn内,则将该系统应用标记为安全应用,否则将该系统应用标记为待检测应用。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

(1)本发明适用于没有病毒库和网络的情况下,与其他查毒软件相比应用范围更广。

(2)Android系统中系统应用数量比较庞大,且大部分的系统应用是安全的,若采取杀毒引擎依次查杀,查找速度非常慢,本发明通过软件签名与安装时间将系统应用做出分类,所要检测的应用无须与病毒库做对比,有效提高查毒速度和准确率。

附图说明

图1是本发明的流程图;

图2是计算安全时间的算法流程图;

具体实施方式

为使本发明之目的、技术方案和优点阐述更加清晰,下面将结合附图与实际用例,对本发明做进一步的详细描述。

图1为本发明的具体流程图,主要包括以下步骤:

(1)扫描所有Android系统应用,并从Android系统应用中提取签名信息;

(2)记录同一签名信息对应的系统应用个数,若某一签名信息对应的系统应用个数在第一阈值N以上,则标记该签名信息对应的系统应用为安全应用;

(3)检索并记录步骤(2)中所有安全应用的初始安装时间,得到时间序列{Ti},其中i=1,2,…,k,k为常量,且T1≤T2≤…≤Tk,再利用时间序列{Ti}中的元素确定若干个安全时间STIMEn和安全范围INTERVALn,其中安全范围INTERVALn与安全时间STIMEn一一对应,具体确定方法为:

(a)记录时间序列{Ti}中元素个数,若时间序列{Ti}中元素个数在第二阈值L以上,其中L为正整数,则转入步骤(b),否则不再确定安全时间STIMEn和安全范围INTERVALn,结束;

(b)以时间序列{Ti}中首元素Tf为基准时间,若时间序列{Ti}中存在时间点Tj,使Tj满足Tj-Tf≤M且Tj+1-Tf>M,其中j=f+1,f+2,…,k且第三阈值M≥0,单位为分钟,则Tf、Tf+1、…、Tj为同一簇,转入步骤(c),否则转入步骤(e);

(c)若该簇中所有元素个数在第二阈值L以上,其中L为正整数,则转入步骤(d),否则转入步骤(e);

(d)确定该簇的安全时间STIMEn和安全范围INTERVALn,STIMEn为该簇中最早时间FTIMEn和最晚时间LTIMEn的中间时刻,安全范围INTERVALn为:INTERVALn=(LTIMEn-FTIMEn)*APLA,其中APLA表示时间参数,数值范围为0~0.75,安全范围INTERVALn与安全时间STIMEn一一对应,并将该簇中所有元素Tf,Tf+1,…,Tj从时间序列{Ti}中剔除,时间序列{Ti}中剩余元素编号保持不变,转入步骤(a);

(e)将元素Tf从时间序列{Ti}中剔除,时间序列{Ti}中剩余元素编号保持不变,转入步骤(a)。

(4)扫描步骤(2)中未被标记为安全应用的所有系统应用,提取并记录这些系统应用的初始安装时间,若某个系统应用的初始安装时间与某个安全时间STIMEn的时间差在该安全时间对应的安全范围INTERVALn内,也就是某一未标记的系统应用的初始安装时间与安全时间STIME1的时间差在安全范围INTERVAL1内,或者与安全时间STIME2的时间差在安全范围INTERVAL2内,以此类推,或者与安全时间STIMEn的时间差在安全范围INTERVALn内,则将该系统应用标记为安全应用,否则将该系统应用标记为待检测应用。

以下以上述过程确定参数为标准,对应用实例进行说明。

实施例1:

假设要检索某款Android手机中所有系统应用中的安全应用与待检测应用。

步骤1:扫描该款Android手机中所有系统应用,并从全部系统应用中提取签名信息;

步骤2:从Android系统应用中提取的签名信息不全相同,假设共出现三种不同的签名信息,标记为A、B、C。记录同一签名信息所对应的系统应用个数,其中A类签名信息对应的系统应用有7个;B类签名信息对应的系统应用有5个;C类签名信息对应的系统应用有3个。假设第一阈值N=5,此时某一签名信息对应的系统应用个数在5个以上,则标记该签名信息对应的系统应用为安全应用,很明显A类和B类中的系统应用个数在5个以上,则将A类和B类中所有的系统应用标记为安全应用;

步骤3:检索并记录所有被标记为安全应用的初始安装时间,即就是检索A、B两类中所有系统应用的初始安装时间,并按先后顺序将所有时间排序得到:2016/8/20 13:00:00、2016/8/20 13:05:00、2016/8/20 13:11:00、2016/8/20 13:15:00、2016/8/20 13:20:00、2016/8/20 13:22:00、2016/9/20 13:10:00、2016/9/20 13:12:00、2016/9/20 13:20:00、2016/9/20 13:26:00、2016/9/20 14:00:00、2016/9/20 14:10:00,并依次编号为:T1、T2、…、T12,所有初始安装时间组成时间序列{Ti},其中i=1,2,…,12且T1≤T2≤…≤T12。再利用时间序列{Ti}中的元素确定若干个安全时间STIMEn和安全范围INTERVALn,具体如下,假设第二阈值L=4,第三阈值M=20,M的单位为分钟:

(a)时间序列{Ti}中元素个数为12个,很明显大于4,以时间序列{Ti}中首元素T1为基准时间,若时间序列{Ti}中存在时间点Tj,使Tj与基准时间T1满足Tj-T1≤20且Tj+1-T1>20,则T1、T2、…、Tj为同一簇,其中j=2,3,…,k。很明显当j=5时满足T5-T1≤20且T6-T1>20,则T1、T2、…、T5为同一簇,该簇中共有5个元素,明显5>L,则计算该簇的安全时间STIME1和安全范围INTERVAL1,STIME1为该簇中最早时间FTIME1(T1)和最晚时间LTIME1(T5)的中间时刻,也就是2016/8/20 13:00:00和2016/8/20 13:20:00的中间时刻,即安全时间STIME1是2016/8/20 13:10:00,安全范围INTERVAL1的计算公式为:INTERVAL1=(LTIME1-FTIME1)*APLA,APLA为时间参数,数值范围是0~0.75。那么INTERVAL1=20*(0~0.75),可确定安全范围INTERVAL1为0~15分钟,最后将该簇中所有元素T1、T2、…、T5从时间序列{Ti}中剔除,时间序列{Ti}中的剩余元素的编号保持不变;

(b)现在时间序列{Ti}中的元素有T6、T7、…、T12等7个元素,明显7>L,则以时间序列{Ti}中首元素T6为基准时间,很明显时间序列{Ti}中不存在Tj,使Tj满足Tj-T6≤20且Tj+1-T6>20,则将元素T6从时间序列{Ti}中剔除,时间序列{Ti}中的剩余元素的编号保持不变;

(c)现在时间序列{Ti}中的元素有T7、T8、…、T12等6个元素,明显6>L,则以时间序列{Ti}中首元素T7为基准时间,很明显当j=10时满足T10-T7≤20且T11-T7>20,则T7、T8、T9、T10为同一簇,该簇中共有4个元素,明显4≥L,则计算该簇的安全时间STIME2和安全范围INTERVAL2,STIME2为该簇中最早时间FTIME2(T7)和最晚时间LTIME2(T10)的中间时刻,也就是2016/9/20 13:10:00和2016/9/20 13:26:00的中间时刻,即安全时间STIME2是2016/9/20 13:18:00,安全范围INTERVAL2=(LTIME2-FTIME2)*APLA,APLA为时间参数,数值范围是0~0.75。那么INTERVAL2=16*(0~0.75),可确定安全范围INTERVAL2为0~12分钟,最后将该簇中所有元素T7、T8、T9、T10从时间序列{Ti}中剔除,时间序列{Ti}中的剩余元素的编号保持不变;

(d)现在时间序列{Ti}中仅有2个元素T11和T12,明显2<L,所有安全时间STIMEn和安全范围INTERVALn已经确定完毕。

步骤4:检索C类中系统应用的初始安装时间,将C类中系统应用依次编号为:c1、c2、c3,它们的初始安装时间按编号分别为:2016/8/20 12:56:00、2016/9/20 13:28:00和2016/9/20 16:00:00。若C类中某个系统应用的初始安装时间与安全时间STIME1(2016/8/20 13:10:00)的时间差在安全范围INTERVAL1(0~15分钟)内,或者与安全时间STIME2(2016/9/20 13:18:00)的时间差在安全范围INTERVAL2(0~12分钟)内,则将该系统应用标记为安全应用,否则为待检测应用。

很明显c1的初始安装时间(2016/8/20 12:56:00)与安全时间STIME1(2016/8/20 13:10:00)的时间差为14分钟,在安全范围INTERVAL1(0~15分钟)内,c2的初始安装时间(2016/9/20 13:28:00)与安全时间STIME2(2016/9/20 13:18:00)的时间差为10分钟,在安全范围INTERVAL2(0~12分钟)内,c3的初始安装时间(2016/9/20 16:00:00)与安全时间STIME1(2016/8/20 13:10:00)的时间差超过24小时,不在安全范围INTERVAL1(0~15分钟)内,并且与安全时间STIME2(2016/9/20 13:18:00)的时间差超过2小时,不在安全范围INTERVAL2(0~12分钟)内,则可确定c1和c2为安全应用,c3为待检测应用。

以上为本发明的具体实施例,但并不用以限制本发明,对于本技术领域的普通技术人员来说,凡在不脱离本发明原理的前提下,所做的任何修改、等同替换、改进等,均应包含在本发明的保护发明范围之内。

本发明的有益效果是在对Android系统应用进行反木马检测时,根据软件签名和系统应用安装时间过滤出部分安全系统应用,而此类安全系统应用不再需要与病毒库特征值一一作对比,有效提高手机木马检测效率,并且可以克服后续反木马扫描中的木马程序误报问题。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1