本发明涉及网络安全检测技术领域,特别涉及一种伪造攻击的应用界面检测方法及装置。
背景技术:
近年来移动互联网快速发展,智能终端设备已越来越多地进入到人们生活中,其中以智能手机的使用最为广泛,智能手机承载了人们生活方方面面的需求,几乎每一台手机上都安装了微信、手机QQ、支付宝、银行手机客户端等应用,这些应用中含有多种用户私密信息,极易成为攻击者的攻击目标。
界面伪造攻击是钓鱼攻击的一种,恶意应用通过展示与其他合法应用相似的信息输入界面来骗取用户信任,获取用户输入的账户名、密码等信息,并通过短信、网络、邮件等各种方式发送给攻击者。目前,在Android设备上已发现两种类型的界面伪造攻击:第一种是界面劫持攻击,恶意应用在后台开启一个服务,不断获取当前运行进程的列表,发现目标进程被启动时,用自己伪造的钓鱼界面代替目标进程界面展示在前台,倘若伪造界面可供用户输入,则在骗取用户输入后,伪造界面将退出,使得原程序界面可被用户所见。第二种是伪造应用攻击,即恶意应用完全模仿目标应用,让用户误以为安装的是目标应用,从而输入电话号码、银行卡号等私密信息,造成信息的泄露,本文将其称之为伪造应用攻击。2014年5月16日,百度安全实验室公布了一款名为“微信支付大盗”的手机支付木马及其技术细节,该木马酷似正常的微信应用。“微信支付大盗”会向受害用户索要电话号码、支付卡号、PIN码等私密信息,并将获取的信息通过电子邮件的方式发送给软件作者。
界面伪造攻击通过展示与目标应用界面相似的界面实施攻击,不论是攻击用的界面还是目标应用界面,在实现时均有多种选择,如Activity、悬浮窗、对话框等,但现有的检测技术主要检测的是使用Activity来覆盖目标Activity界面的攻击,主要基于Activity界面截图的相似性或Activity切换时的函数调用特征等进行检测,对于其他类型的伪造界面缺乏检测能力,因此会存在部分漏报。此外,部分方案采用线下检测的方式判断被测应用是否包含与目标应用相似的界面,将包含有相似界面的被测应用自动判断为恶意应用,然而实际中存在部分应用模仿主流应用的界面进行设计,但并不存在界面劫持的行为,因此在缺乏用户判断的情况下进行结果的判定容易造成误报。
综上,现有伪造攻击的应用界面检测的准确率低。
技术实现要素:
本发明实施例提供了一种伪造攻击的应用界面的检测方法,用以提高伪造攻击的应用界面检测的准确率,该方法包括:
在设备运行过程中,获取待检测类型应用界面截图;
计算待检测类型应用界面截图的特征值;
根据待检测类型应用界面截图的特征值,及预先存储的所有类型的目标应用界面与特征值的关系,确定待检测类型应用界面是否为伪造攻击的应用界面的初步检测结果;所述目标应用界面为待检测类型应用界面想要实施界面伪造攻击的应用界面;
接收用户根据初步检测结果反馈的待检测类型应用界面的最终检测结果。
本发明实施例还提供了一种伪造攻击的应用界面的检测装置,用以提高伪造攻击的应用界面检测的准确率,该装置包括:
获取单元,用于在设备运行过程中,获取待检测类型应用界面截图;
计算单元,用于计算待检测类型应用界面截图的特征值;
初步检测结果确定单元,用于根据待检测类型应用界面截图的特征值,及预先存储的所有类型的目标应用界面与特征值的关系,确定待检测类型应用界面是否为伪造攻击的应用界面的初步检测结果;所述目标应用界面为待检测类型应用界面想要实施界面伪造攻击的应用界面;
最终检测结果确定单元,用于接收用户根据初步检测结果反馈的待检测类型应用界面的最终检测结果。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述伪造攻击的应用界面的检测方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有执行上述伪造攻击的应用界面的检测方法的计算机程序。
与现有技术中容易出现漏报误报的伪造攻击的应用界面的检测方案相比较,本发明实施例提供的技术方案:
首先,在设备运行过程中,进行实时的伪造攻击的应用界面检测,并将实时检测初步结果提供给用户,让用户参与判断,可以避免将实际中模仿主流的应用界面或同一应用的不同版本界面误报为伪造攻击的应用界面,通过接收用户根据初步检测结果反馈的待检测类型应用界面的最终检测结果更为精确,减少了误报率。
其次,本发明实施例提供的技术方案中待检测类型应用界面包括所有类型的应用界面,并且通过待检测类型应用界面截图的特征值,及预先存储的所有类型的目标应用界面与特征值的关系,确定待检测应用界面是否为伪造攻击的应用界面,实现了对所有类型的应用界面的伪造攻击检测,降低了漏报率。
综上,本发明实施例提供的伪造攻击界面的检测方案,提高了伪造攻击的应用界面检测的准确率,从而提高了网络安全性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例中伪造攻击的应用界面检测方法的流程示意图;
图2是本发明另一实施例中伪造攻击的应用界面检测方法的流程示意图;
图3是本发明实施例中伪造攻击的应用界面检测装置的结构示意图;
图4是本发明另一实施例中伪造攻击的应用界面检测装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在介绍本发明实施例提供的技术方案之前,首先介绍本发明实施例中涉及的专业名词:界面伪造攻击是指恶意应用通过展示与其他合法应用十分相似的信息输入界面来骗取用户信任,获取用户输入信息,并通过短信、网络、邮件等各种方式发送给恶意应用开发者。
由于发明人发现了现有技术存在的技术问题,提出了一种新的伪造攻击的应用界面的检测方案,该方案使用图像感知哈希算法计算界面的截图特征值,将被测界面与目标界面进行特征值比较,以判断其相似性。为了减少线下检测方法可能造成的误报,本发明提出的方案在用户设备实际运行的过程中,对当前展示的界面进行实时检测,将可疑界面信息展示给用户,请用户进行判断。本发明方案检测的界面不限于Activity界面,还包括悬浮窗、对话框等,检测范围更为广泛,可有效降低现有方案中的漏报率。此外,由于在应用运行过程中实时抓取界面截图并进行图像特征的计算与匹配是一个比较耗时的操作,因此本发明使用白名单和黑名单匹配来避免对同一界面的多次重复分析,从而减少对运行效率的影响。
界面伪造攻击的特点在于恶意应用所模仿的目标均是已被广泛使用的社交应用、银行应用、支付应用等应用软件,并且获取用户信息的目标界面存在供用户输入的编辑控件。恶意应用实施攻击的目的在于骗取用户输入,因此会尽量使用户看到的界面与目标应用的相应界面保持一定的相似度。
基于上述分析,该方案是一种结合黑白名单过滤和界面特征比较的攻击检测方法。当设备上有新界面将被展示时,首先判断新界面中是否包含获取用户输入的编辑控件,如果有,则提取该界面标识符,判断其是否存在于黑白名单中,如果在白名单中,则放行其展示;如果在黑名单中,则阻止其展示在设备上。如果新界面不在上述两个名单中,则在界面展示并获取焦点后获取界面截图,使用图像感知哈希算法提取界面截图特征,与保护列表(所有类型的目标应用界面与特征值的关系)中的界面特征进行比较,若不存在相似界面,询问用户是否将当前界面加入白名单及保护列表中;若存在相似界面,警示用户当前界面为可疑界面,请求用户判断是否将其加入黑名单。检测方案根据检测结果,将需要用户判断的界面的信息(如所属应用包名、与之相似的受保护界面信息等)展示给用户,用户根据该信息判断是否将当前界面加入黑白名单及保护列表中。
下面对该伪造攻击的应用界面的检测方案详细介绍如下。
图1是本发明实施例中伪造攻击的应用界面检测方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101:在设备运行过程中,获取待检测类型应用界面截图;
步骤102:计算待检测类型应用界面截图的特征值;
步骤103:根据待检测类型应用界面截图的特征值,及预先存储的所有类型的目标应用界面与特征值的关系,确定待检测类型应用界面是否为伪造攻击的应用界面的初步检测结果;所述目标应用界面为待检测类型应用界面想要实施界面伪造攻击的应用界面;
步骤104:接收用户根据初步检测结果反馈的待检测类型应用界面的最终检测结果。
具体实施时,本发明实施例提供的伪造攻击的应用界面的检测可以适用于Android应用界面伪造攻击的检测。
具体实施时,在上述步骤101中,本发明实施例中获取待检测类型应用界面截图可以通过Android系统服务WindowManagerService获取。具体地,可以通过Android系统服务WindowManagerService捕获新窗口的生成,之后调用Android系统的截屏接口获取当前界面的截图,从而可以获取包含Activity界面、悬浮窗、对话框等在内的各类型的可视界面的截图进行比较,有效保证了检测方案的覆盖率。
具体实施时,在上述步骤101中待检测类型应用界面包括所有类型的应用界面,不限于Activity界面,还包括悬浮窗界面和对话框界面等其他类型的应用界面。由于,本发明实施例提供的技术方案中待检测类型应用界面包括所有类型的应用界面,并且通过待检测类型应用界面截图的特征值,及预先存储的所有类型的目标应用界面与特征值的关系,确定待检测应用界面是否为伪造攻击的应用界面,实现了对所有类型的应用界面的伪造攻击检测,降低了漏报率。
具体实施时,在上述步骤102中,本发明实施例可以利用图像感知哈希算法计算待检测类型应用界面截图的特征值。
具体实施时,在上述步骤103中,所述所有类型的目标应用界面可以包括:Activity界面、悬浮窗界面和对话框界面。
具体实施时,在上述步骤103中,预先存储的所有类型的目标应用界面与特征值的关系可以是一个受保护的界面保护列表,当然该关系还可以是以其它形式存在。受保护的列表中的数据初始是预设的QQ、微信等应用的敏感界面信息,包括包名、应用签名、界面标识符及界面截图特征值四个字段,其中应用签名信息用来检测与目标应用包名相同的伪造应用。在用户对报警信息的处理过程中也可以将一些界面添加到保护列表中。
具体实施时,在上述步骤103中,初步检测结果可以是给用户发出的报警信息,用户可以是使用设备的用户,也可以是专业的维护人员。设备可以是用户用的手机、平板电脑等终端。
具体实施时,在上述步骤103中,由于伪造界面的界面控件结构可能跟目标界面不同,例如采用整张界面截图作为背景等,但是为了欺骗用户,伪造界面看起来应与目标界面无太大差别,因此可以采用屏幕截图来提取当前界面特征,使用感知哈希算法计算界面截图的特征值,基于特征值比较可疑界面与受保护界面的相似度,当其超过阈值时,向用户报警,请用户对当前界面的安全性做出判断,该过程即是将初步检测结果发送给用户,让用户参与判断的过程。
具体实施时,在上述步骤104中,最终检测结果为待检测类型应用界面是否为伪造攻击的应用界面的最终检测结果。
在一个实施例中,在上述步骤101之前,还可以包括:
在设备运行过程中,获取当前应用展示界面;所述当前应用展示界面为包含用户输入的编辑控件的界面;
确定所述当前应用展示界面的界面标识符;所述界面标识符为每一应用界面的唯一标识;
根据当前应用展示界面的界面标识符,以及预先存储在黑名单中的界面标识符和白名单中的界面标识符,控制当前应用展示界面及确定当前应用展示界面是否为所述待检测类型应用界面;所述黑名单用于存储伪造攻击的应用界面的界面信息,伪造攻击的应用界面的界面信息可以包括伪造攻击的应用界面的界面标识符;所述白名单用于存储正常应用界面的界面信息,正常应用界面的界面信息可以包括正常应用界面的界面标识符。
具体实施时,由于在应用运行过程中,实时抓取界面截图并进行图像特征的计算与匹配是一个比较耗时的操作,因此,本发明实施例使用白名单和黑名单匹配来避免对同一界面的多次重复分析,从而减少对运行效率的影响,提高伪造攻击的应用界面的检测效率。
具体实施时,本发明实施例中提到的正常应用界面也可以称为:“应受保护应用界面”或“受保护应用界面”,正常应用界面包括“目标应用界面”。
具体实施时,为了有效保护Android设备上所有的敏感应用界面,同时为了避免自动化测试造成的漏报及线下检测造成的误报,本发明提出了一种结合黑白名单过滤和界面特征比较的、在用户设备上实时进行的界面伪造攻击检测方法,该方法首先使用黑白名单对当前界面进行匹配,过滤出可疑界面,然后提取可疑界面的界面截图特征值与保护列表中保存的受保护界面的界面截图特征值进行比较,如果其相似度超过阈值,则判定为高危,将结果提示用户,为用户选择相应操作提供依据。方案可作为Android系统的一个服务实现,从而可以为其上运行的所有应用提供安全保护。
下面对上述提到的黑名单及白名单的定义及作用介绍如下。
通过上述可知,黑白名单过滤的目的是在提取界面特征并进行特征匹配之前对当前界面进行一次筛选,从而避免对同一界面的多次重复检测,提高运行效率。
黑名单用于将确定为伪造攻击的应用界面的界面信息保存下来,对于这些界面,不需要进行后面的界面特征提取和匹配便可直接在恶意应用展示该界面时阻止界面的生成。黑名单中的数据通过用户对报警信息的处理过程添加。
白名单用于将确定为正常界面的界面信息保存下来,对于这些界面,不需要进行任何的特殊处理。
白名单中的记录分为以下两种类型:
a.对于已知的默认安全的应用,例如Android系统应用以及QQ、微信等已知的默认安全的第三方应用,默认其中所有的界面都是安全的,这一部分的信息会在方案运行前预置在白名单中,此外,用户也可以通过配置文件将某一应用程序添加入该部分列表。
b.对于上述应用之外的应用界面,在与用户的交互中,用户可以根据界面截图特征值匹配的结果选择将当前界面加入白名单。
在一个实施例中,根据当前应用展示界面的界面标识符,以及预先存储在黑名单中的界面标识符和白名单中的界面标识符,控制当前应用展示界面及确定当前应用展示界面是否为所述待检测类型应用界面,可以包括:
在确定当前应用展示界面的界面标识符与黑名单中的任一伪造攻击的应用界面的界面标识符一致时,控制终止当前应用展示界面的展示;
在确定当前应用展示界面的界面标识符与白名单中的任一正常应用界面的界面标识符一致时,控制继续展示当前应用展示界面;
在确定当前应用展示界面的界面与黑名单中的任一伪造攻击的应用界面的界面标识符,以及与白名单中的任一正常应用界面的界面标识符均不一致时,将当前应用展示界面确定为所述待检测类型应用界面,控制继续展示所述待检测类型应用界面。
上述通过白名单和黑名单匹配来提高伪造攻击的应用界面的检测效率方案的关键匹配因素为界面标识符,下面介绍根据当前应用展示界面的界面标识符,以及预先存储在黑名单中的界面标识符和白名单中的界面标识符,控制当前应用展示界面及确定当前应用展示界面是否为所述待检测类型应用界面的两种实施方式:
第一种,Activity界面的界面标识符可以为:Activity界面所属类名及Activity界面所属包名;悬浮窗界面的界面标识符可以为:悬浮窗界面控件布局树结构信息的哈希运算结果;对话框界面的界面标识符可以为:对话框界面控件布局树结构信息的哈希运算结果。
在这种情况下,在控制当前应用展示界面及确定当前应用展示界面是否为所述待检测类型应用界面的过程中,除了考虑匹配界面信息中的界面标识符外,还需要考虑界面信息中的所属应用包名,即伪造攻击的应用界面的界面信息还可以包括伪造攻击的应用界面所属应用的包名;正常应用界面的界面信息还可以包括正常应用界面所属应用的包名;黑白名单中除了包含界面标识符,还可以包含界面所属应用包名。
具体地,在确定当前应用展示界面的界面标识符与黑名单中的任一伪造攻击的应用界面的界面标识符一致时,控制终止当前应用展示界面的展示,可以包括:
将当前应用展示界面所属应用包名与黑名单中的伪造攻击的应用界面所属应用包名进行比对;
在存在应用包名一致的情况下,进一步将当前应用展示界面的界面标识符与伪造攻击的应用界面的界面标识符进行比对;
在确定当前应用展示界面的界面标识符与黑名单中的任一伪造攻击的应用界面的界面标识符一致时,控制终止当前应用展示界面的展示。
具体地,在确定当前应用展示界面的界面标识符与白名单中的任一正常应用界面的界面标识符一致时,控制继续展示当前应用展示界面,可以包括:
将当前应用展示界面所属应用包名与白名单中的正常应用界面所属应用包名进行比对;
在存在应用包名一致的情况下,进一步将当前应用展示界面的界面标识符与正常应用界面的界面标识符进行比对;
在确定当前应用展示界面的界面标识符与白名单中的任一正常应用界面的界面标识符一致时,控制继续展示当前应用展示界面。
为了进一步提高匹配效率,可将白名单中保存的Android系统应用以及QQ、微信等已知的默认安全的第三方应用对应的界面标识符字段设置为all,意味着,这类应用所有的界面都默认是安全的,在进行界面信息匹配时,只需要进行界面所属应用包名的匹配即可,而不需要详细匹配界面标识符。
具体地,在确定当前应用展示界面的界面与黑名单中的任一伪造攻击的应用界面的界面标识符,以及与白名单中的任一正常应用界面的界面标识符均不一致时,将当前应用展示界面确定为所述待检测类型应用界面,控制继续展示所述待检测类型应用界面,可以包括:
在确定当前应用展示界面所属应用包名及界面标识符与黑名单中的任一伪造攻击的应用界面的所属应用包名及界面标识符,以及与白名单中的任一正常应用界面的所属应用包名及界面标识符均不一致时,将当前应用展示界面确定为所述待检测类型应用界面,控制继续展示所述待检测类型应用界面。
上述先根据界面所属应用包名进行索引匹配,再根据界面标识符进行索引匹配,这样的将界面标识符结合界面所属应用包名协同进行比对的方案,可以提高界面匹配效率,进一步提高了伪造攻击的应用界面检测的效率。
第二种,Activity界面的界面标识符可以为:Activity界面所属应用包名、Activity界面所属类名及Activity界面所属包名;悬浮窗界面的界面标识符可以为:悬浮窗界面所属应用包名和界面控件布局树结构信息的哈希运算结果;对话框界面的界面标识符可以为:对话框界面所属应用包名和界面控件布局树结构信息的哈希运算结果。
在这种情况下,无论是Activity界面,还是悬浮窗界面和对话框界面,他们的界面标识符中都包含界面所属应用的包名,那么在进行控制当前应用展示界面及确定当前应用展示界面是否为所述待检测类型应用界面的过程中,可以直接进行界面标识符的匹配,省略界面所属应用包名的单独匹配过程,可以简化匹配流程。具体过程不再赘述。
具体实施时,对于Activity界面来说,其context属性中包含当前Activity所属类名及包名,且该信息在一个应用中是唯一的,可以作为Activity界面的标识符。但是对于悬浮窗、对话框等其他类型界面来说,其context属性是相同的值,无法用来区分不同的界面,因此本发明使用应用包名及界面控件布局树结构信息的哈希运算结果作为这类界面的标识符,其中界面控件元素的内容,如TextView中显示的文字,可能会根据运行环境改变,因此不包含在本发明提取的界面控件布局树结构信息中。
在一个实施例中,上述伪造攻击的应用界面的检测方法还可以包括:接收用户根据最终检测结果输入的处理操作指令;所述处理操作指令可以包括:
将确定为正常应用界面的界面信息存储在所述白名单中;存储在所述白名单中的界面信息包括:正常应用界面的界面标识符;
将确定为伪造攻击的应用界面的界面信息存储在黑名单中;存储在所述黑名单中的界面信息包括:伪造攻击的应用界面的界面标识符;
将确定为目标应用界面的界面信息存储在所述所有类型的目标应用界面与特征值的关系中;存储在所述关系中的界面信息包括:目标应用界面截图的特征值。
具体实施时,检测方案将界面特征匹配的结果展示给用户,由用户选择相应的处理方案。用户可以选择的处理可以包括以下四种:
<1>加入白名单:用户选择该操作后,当前界面的信息(可以包括:所属应用包名和界面标识符)将加入白名单。
<2>加入黑名单:用户选择该操作后,当前界面的展示被终止,界面所属应用包名和界面标识符被加入黑名单。
<3>加入保护列表:用户选择该操作后,当前界面的信息被加入保护列表和白名单。
<4>暂时放行:用户选择该操作后,检测系统对当前界面不做任何操作,当该界面再次出现时仍要进行界面特征提取和匹配操作。
下面结合附图2举一实例进行说明,以便于理解本发明如何实施。
1)在设备运行过程中,通过Android系统服务WindowManagerService获取当前要进行展示的新界面;
2)判断当前新界面布局中是否有可供用户输入信息的EditText控件或继承自该控件的其他控件元素,如果没有,则不对当前界面进行特殊处理;如果有,则进行下面的操作;
3)计算当前新界面的标识符;
4)判断当前新界面的界面标识符(还可以包括界面所属应用包名)是否存在于黑名单中,如果存在,则终止当前界面的展示;如果不存在,则进行下面的操作;
5)判断当前新界面的界面标识符(还可以包括界面所属应用包名)是否存在于白名单中,如果存在,则继续展示当前界面,不做其他处理;如果不存在,则进行下面的操作;
6)放行当前界面的展示,在界面获取焦点后进行截屏,使用图像感知哈希算法计算当前界面截图的特征值;
7)将步骤6)中得到的特征值与保护列表中的特征值进行比较,若不存在相似界面,则弹出对话框,向用户展示当前界面信息(如所属应用包名),询问用户是否将当前界面添加到白名单及保护列表中,根据用户的选择进行相应操作;若存在相似界面,进行下面的操作;
8)弹出对话框,警告用户当前界面可能存在安全风险,向用户展示当前界面信息(如所属应用包名、与之相似的受保护界面信息等),请求用户选择相应的处理操作,根据用户的选择,将当前界面加入白名单、保护列表或黑名单中。
基于同一发明构思,本发明实施例中还提供了一种伪造攻击的应用界面的检测装置,如下面的实施例。由于伪造攻击的应用界面的检测装置解决问题的原理与伪造攻击的应用界面的检测方法相似,因此伪造攻击的应用界面的检测装置的实施可以参见伪造攻击的应用界面的检测方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是本发明实施例中伪造攻击的应用界面的检测装置的结构示意图,如图3所示,该装置,包括:
获取单元04,用于在设备运行过程中,获取待检测类型应用界面截图;
计算单元05,用于计算待检测类型应用界面截图的特征值;
初步检测结果确定单元06,用于根据待检测类型应用界面截图的特征值,及预先存储的所有类型的目标应用界面与特征值的关系,确定待检测类型应用界面是否为伪造攻击的应用界面的初步检测结果;所述目标应用界面为待检测类型应用界面想要实施界面伪造攻击的应用界面;
最终检测结果确定单元07,用于接收用户根据初步检测结果反馈的待检测类型应用界面的最终检测结果。
在一个实施例中,如图4所示,上述伪造攻击的应用界面的检测装置还可以包括:
初步获取单元01,用于在设备运行过程中,获取当前应用展示界面;所述当前应用展示界面为包含用户输入的编辑控件的界面;
界面标识符确定单元02,用于确定所述当前应用展示界面的界面标识符;所述界面标识符为每一应用界面的唯一标识;
筛选及控制单元03,用于根据当前应用展示界面的界面标识符,以及预先存储在黑名单中的界面标识符和白名单中的界面标识符,控制当前应用展示界面及确定当前应用展示界面是否为所述待检测类型应用界面;所述黑名单用于存储伪造攻击的应用界面的界面信息,伪造攻击的应用界面的界面信息包括伪造攻击的应用界面的界面标识符;所述白名单用于存储正常应用界面的界面信息,正常应用界面的界面信息包括正常应用界面的界面标识符。
在一个实施例中,上述筛选及控制单元03可以具体用于:
在确定当前应用展示界面的界面标识符与黑名单中的任一伪造攻击的应用界面的界面标识符一致时,控制终止当前应用展示界面的展示;
在确定当前应用展示界面的界面标识符与白名单中的任一正常应用界面的界面标识符一致时,控制继续展示当前应用展示界面;
在确定当前应用展示界面的界面标识符与黑名单中的任一伪造攻击的应用界面的界面标识符,以及与白名单中的任一正常应用界面的界面标识符均不一致时,将当前应用展示界面确定为所述待检测类型应用界面,控制继续展示所述待检测类型应用界面。
在一个实施例中,如图4所示,上述伪造攻击的应用界面的检测装置还可以包括:处理操作指令接收单元08,用于接收用户根据最终检测结果输入的处理操作指令;所述处理操作指令可以包括:
将确定为正常应用界面的界面信息存储在所述白名单中;存储在所述白名单中的界面信息包括:正常应用界面的界面标识符;
将确定为伪造攻击的应用界面的界面信息存储在黑名单中;存储在所述黑名单中的界面信息包括:伪造攻击的应用界面的界面标识符;
将确定为目标应用界面的界面信息存储在所述所有类型的目标应用界面与特征值的关系中;存储在所述关系中的界面信息包括:目标应用界面截图的特征值。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述伪造攻击的应用界面的检测方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有执行上述伪造攻击的应用界面的检测方法的计算机程序。
本发明实施提供的技术方案的有益技术效果为:
本发明实施例提供的技术方案通过Android系统服务WindowManagerService获取每一个当前进行展示的窗口,调用系统截屏函数获取当前界面截屏,从而可以获取包含Activity界面、悬浮窗、对话框在内的各类界面的截图,有效保证了检测方案的覆盖率。
本发明通过图像感知哈希算法计算界面截图的特征值,通过特征值比较判断当前被测界面与受保护列表中界面的相似性,从而识别可能的界面伪造攻击,并将可疑界面信息提示给用户,请求用户进行判断处理,从而避免误报。
由于截图并计算图像哈希值的操作较为耗时,本发明使用了黑白名单过滤已检测过的界面,避免对同一界面的重复检测,从而提高检测效率,在提供安全性保护的同时尽可能地提升用户体验。
本发明将Activity所属类名及包名作为Activity界面的唯一标识符,将界面控件布局树结构信息的哈希运算结果作为悬浮窗、对话框等其他界面的唯一标识符,结合界面所属应用包名,可以唯一标识当前应用的当前界面,在进行黑白名单过滤时可进行有效匹配。
本发明方案是在用户设备上进行实时检测,对于用户新安装的应用也具备良好的检测和保护能力。此外,在检测系统稳定运行一段时间后,若无新应用安装到用户设备上,则检测系统不需再进行界面截图及图像特征值计算与匹配等费时操作,运行耗时将显著降低,在提供安全性保护的同时有效保证用户体验。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。