CN110069922A - 一种系统界面劫持检测方法、装置及终端 - Google Patents
一种系统界面劫持检测方法、装置及终端 Download PDFInfo
- Publication number
- CN110069922A CN110069922A CN201810058874.0A CN201810058874A CN110069922A CN 110069922 A CN110069922 A CN 110069922A CN 201810058874 A CN201810058874 A CN 201810058874A CN 110069922 A CN110069922 A CN 110069922A
- Authority
- CN
- China
- Prior art keywords
- detected
- interface
- interactive interface
- state
- risk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephone Function (AREA)
Abstract
本发明提供了一种系统界面劫持检测方法、装置及终端,其中,系统界面劫持检测方法包括:监测待检测交互界面的当前状态;当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。本方案能够以一种不获取待检测交互界面特征的方式进行Android界面劫持风险检测,操作简便、安全系数高,并提供了存在界面劫持风险状况下的处理方案;很好的解决了现有技术中Android界面劫持风险检测方案操作繁琐、不安全的问题。
Description
技术领域
本发明涉及通信技术领域,特别是指一种系统界面劫持检测方法、装置及终端。
背景技术
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。随着Android系统的不断发展,各大硬件厂商也在不断推出各种基于Android系统的产品。目前,Android系统已经在市场上占有很大的份额。
Activity(交互界面)是Android四大组件之一,负责用户与系统的交互。在Android系统中,Activity相当于PC端的一个WEB页面或客户端界面,其不仅用于向用户展示信息,还能监听并响应用户的操作。
在Android系统中,同一个应用通常有多个Activity,但是同时展示给用户处于激活状态的只有一个,其他Activity处于暂停或停止状态。
Android中还有一种组件—Service(服务),其没有界面,但是可以监听和响应用户的操作和系统的状态,并启动Activity。使用这一特性,恶意程序可以通过Service启动伪造的Activity达到骗取点击、盗取用户信息、窃取钱财等目的;而且通常这种手段利用了Activity的生命周期,当目标Activity被激活时立即启动伪装Activity,极难被用户发现。
为了解决上述界面劫持问题,业内也有一些通过利用被劫持界面和劫持界面的应用的相关信息状态的不同来判断是否发生了界面劫持。例如申请号为201310195684.0的专利《一种Android系统Activity劫持风险检测方法及装置》公开了一种方法,该方法在目标Activity进入激活状态之前,获取当前处于激活状态的Activity的特征信息,根据所获取的特征信息,判断所述当前处于激活状态的Activity是否符合预设的安全特征,如果否,则确定系统存在Activity劫持风险。
然而该方案却有一定的局限性:
1、该方案是获取当前处于激活状态的Activity的特征信息进行判断,然而监控程序此时可能已经进入后台,相当于设计是通过本apk去获取其它apk的特征信息,该设计本身是不太安全的。
2、通常使用的安全特征指的是劫持前后处于栈顶的任务的包名是否相同,使用get Running Tasks(获取前台正运行任务)接口。然而在Android 5.0以后,这个接口逐渐被废弃了。于是Android 5.0以后的版本大家通常使用Usage Stats Manager(应用使用情况统计管理者)提供的接口查询近期应用程序的用户使用状况,从而获取最新的应用包名。然而这种新的方式需要用户提供的额外权限(PACKAGE_USAGE_STATS-查看应用使用情况权限),而且还需要用户手动到设置页面为其授权,极其麻烦,且为了兼容Android 5.0前后各版本代码量相对较大,开发较麻烦。
3、该方案只提供了界面劫持检测方法,但是当发现存在界面检测风险后只给了存在风险的提示,导致用户在知道有风险后再次回到需要保护的界面时会再一次被劫持,以至于用户无法使用服务,而普通用户并不了解相关技术,从而丢失用户。
发明内容
本发明的目的在于提供一种系统界面劫持检测方法、装置及终端,解决现有技术中Android界面劫持风险检测方案操作繁琐、不安全的问题。
为了解决上述技术问题,本发明实施例提供一种系统界面劫持检测方法,包括:
监测待检测交互界面的当前状态;
当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;
根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。
可选的,所述监测待检测交互界面的当前状态的步骤包括:
检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态;其中,所述特例状态包括存在电话广播、主菜单键或返回键被按下中的至少一种;
当所述待检测交互界面当前不处于特例状态,且不处于激活状态时,则确定所述待检测交互界面存在被劫持的风险。
可选的,所述检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态的步骤包括:
在调用继续函数之后的第一预设时长后,调用暂停函数之前,检测所述待检测交互界面当前是否不处于特例状态;
若否,则不处理;
若是,则检测所述待检测交互界面当前是否不处于激活状态;
若否,则不处理;
若是,则执行所述确定所述待检测交互界面存在被劫持的风险的操作;
其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
可选的,所述第一预设时长大于或等于0.5s,且小于或等于2s。
可选的,在监测待检测交互界面的当前状态之前,所述系统界面劫持检测方法还包括:
在继续函数中标记所述待检测交互界面的状态为激活状态,在暂停函数中标记所述待检测交互界面的状态为非激活状态;
其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
可选的,在监测待检测交互界面的当前状态时,所述系统界面劫持检测方法还包括:
监听处于栈顶的交互界面对应的应用进程的应用包名;
所述当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名的步骤包括:
当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取监听到的当前处于栈顶的交互界面对应的应用进程的应用包名,作为造成风险的应用进程的应用包名。
可选的,在监听处于栈顶的交互界面对应的应用进程的应用包名之前,所述系统界面劫持检测方法还包括:
提示用户授权以监听处于栈顶的交互界面对应的应用进程的应用包名;
在用户完成授权操作后,执行所述监听处于栈顶的交互界面对应的应用进程的应用包名的操作。
本发明实施例还提供了一种系统界面劫持检测装置,包括:
第一监测模块,用于监测待检测交互界面的当前状态;
第一获取模块,用于当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;
第一处理模块,用于根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。
可选的,所述第一监测模块包括:
第一检测子模块,用于检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态;其中,所述特例状态包括存在电话广播、主菜单键或返回键被按下中的至少一种;
第一确定子模块,用于当所述待检测交互界面当前不处于特例状态,且不处于激活状态时,则确定所述待检测交互界面存在被劫持的风险。
可选的,所述第一检测子模块包括:
第一检测单元,用于在调用继续函数之后的第一预设时长后,调用暂停函数之前,检测所述待检测交互界面当前是否不处于特例状态;
第一处理单元,用于若待检测交互界面当前处于特例状态,则不处理;
第二检测单元,用于若待检测交互界面当前不处于特例状态,则检测所述待检测交互界面当前是否不处于激活状态;
第二处理单元,用于若所述待检测交互界面当前处于激活状态,则不处理;
第一执行单元,用于若所述待检测交互界面当前不处于激活状态,则执行所述确定所述待检测交互界面存在被劫持的风险的操作;
其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
可选的,所述第一预设时长大于或等于0.5s,且小于或等于2s。
可选的,所述系统界面劫持检测装置还包括:
第二处理模块,用于在监测待检测交互界面的当前状态之前,在继续函数中标记所述待检测交互界面的状态为激活状态,在暂停函数中标记所述待检测交互界面的状态为非激活状态;
其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
可选的,所述系统界面劫持检测装置还包括:
第一监听模块,用于在监测待检测交互界面的当前状态时,监听处于栈顶的交互界面对应的应用进程的应用包名;
所述第一获取模块包括:
第一获取子模块,用于当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取监听到的当前处于栈顶的交互界面对应的应用进程的应用包名,作为造成风险的应用进程的应用包名。
可选的,所述系统界面劫持检测装置还包括:
第一提示模块,用于在监听处于栈顶的交互界面对应的应用进程的应用包名之前,提示用户授权以监听处于栈顶的交互界面对应的应用进程的应用包名;
第一执行模块,用于在用户完成授权操作后,执行所述监听处于栈顶的交互界面对应的应用进程的应用包名的操作。
本发明实施例还提供了一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现上述的系统界面劫持检测方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的系统界面劫持检测方法中的步骤。
本发明的上述技术方案的有益效果如下:
上述方案中,所述系统界面劫持检测方法通过监测待检测交互界面的当前状态;当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程;能够以一种不获取待检测交互界面特征的方式进行Android界面劫持风险检测,操作简便、安全系数高,并提供了存在界面劫持风险状况下的处理方案;很好的解决了现有技术中Android界面劫持风险检测方案操作繁琐、不安全的问题。
附图说明
图1为本发明实施例的系统界面劫持检测方法流程示意图;
图2为本发明实施例的交互界面被劫持流程示意图;
图3为本发明实施例的交互界面生命周期示意图;
图4为本发明实施例的可信任交互界面框架示意图;
图5为本发明实施例的消息处理服务框架示意图;
图6为本发明实施例的劫持程序监听服务框架示意图;
图7为本发明实施例的继续函数和暂停函数设置示意图;
图8为本发明实施例的交互界面被劫持后的处理流程示意图;
图9为本发明实施例的系统界面劫持检测方法具体应用流程示意图;
图10为本发明实施例的系统界面劫持检测装置结构示意图;
图11为本发明实施例的终端结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的技术中Android界面劫持风险检测方案操作繁琐、不安全的问题,提供一种系统界面劫持检测方法,如图1所示,包括:
步骤11:监测待检测交互界面的当前状态;
步骤12:当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;
步骤13:根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。
本发明实施例提供的所述系统界面劫持检测方法通过监测待检测交互界面的当前状态;当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程;能够以一种不获取待检测交互界面特征的方式进行Android界面劫持风险检测,操作简便、安全系数高,并提供了存在界面劫持风险状况下的处理方案;很好的解决了现有技术中Android界面劫持风险检测方案操作繁琐、不安全的问题。
其中,所述监测待检测交互界面的当前状态的步骤包括:检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态;其中,所述特例状态包括存在电话广播、主菜单键或返回键被按下中的至少一种;当所述待检测交互界面当前不处于特例状态,且不处于激活状态时,则确定所述待检测交互界面存在被劫持的风险。
具体的,所述检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态的步骤包括:在调用继续函数之后的第一预设时长后,调用暂停函数之前,检测所述待检测交互界面当前是否不处于特例状态;若否,则不处理;若是,则检测所述待检测交互界面当前是否不处于激活状态;若否,则不处理;若是,则执行所述确定所述待检测交互界面存在被劫持的风险的操作;其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
优选的,所述第一预设时长大于或等于0.5s,且小于或等于2s。
进一步的,在监测待检测交互界面的当前状态之前,所述系统界面劫持检测方法还包括:在继续函数中标记所述待检测交互界面的状态为激活状态,在暂停函数中标记所述待检测交互界面的状态为非激活状态;其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
更进一步的,在监测待检测交互界面的当前状态时,所述系统界面劫持检测方法还包括:监听处于栈顶的交互界面对应的应用进程的应用包名;
对应的,所述当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名的步骤包括:当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取监听到的当前处于栈顶的交互界面对应的应用进程的应用包名,作为造成风险的应用进程的应用包名。
为了进一步提高安全系数,在监听处于栈顶的交互界面对应的应用进程的应用包名之前,所述系统界面劫持检测方法还包括:提示用户授权以监听处于栈顶的交互界面对应的应用进程的应用包名;在用户完成授权操作后,执行所述监听处于栈顶的交互界面对应的应用进程的应用包名的操作。
下面对本发明实施例提供的所述系统界面劫持检测方法进行进一步说明。
针对上述技术问题,本发明实施例提供了一种系统界面劫持检测方法,以一种不获取目标Activity(待检测交互界面)特征的方式进行Android界面劫持风险检测,并提供了存在界面劫持风险状况下的处理方案。
在此说明,本发明实施例涉及的界面劫持的劫持原理如下:
通常情况下,Activity劫持是通过恶意程序的后台Service监控栈顶Activity,一旦发现栈顶Activity为目标Activity则立即启动伪造的恶意Activity,欺诈用户输入账号密码。Activity劫持流程如图2所示,包括:
恶意程序的后台Service监控当前最前栈顶Activity,当前栈顶Activity为需要攻击的Activity时启动恶意Activity,恶意Activity窃取用户信息后返回到正常Activity。
本发明实施例提供的方案中劫持检测可具体如下:
其中,Activity的生命周期中,在Activity被激活的流程中onCreate()(创建方法/创建函数),onStart()(开始方法/开始函数),onResume()(继续方法/继续函数)会被调用;Activity被停止或暂停时,onPause()(暂停方法/暂停函数),onStop()(停止方法/停止函数)会被调用。当恶意Activity B(下文简写为B)伪装为Activity A(后续简写为A)进行展示时,其生命周期如图3所示。
为了提升欺诈成功率,做到用户无感知,B都会较快的将A覆盖,即A onCreate()流程到B onCreate()的时间较短。因此本发明实施例针对这一特征进行设计;而且如前文所述,本方案只获取A的状态信息,通过判断A是否处于激活状态和是否存在特例情况进行Activity劫持检测:
对Activity进行封装,添加TrustedActivity的激活状态及特例状态等,重写onResume()和onPause()方法,并实现状态管理模块,消息发送模块和特例状态监听模块(如图4所示);创建HandlerService作为消息处理模块和用户警示模块(如图5所示)。另外还添加HijackListener进行界面劫持风险处理,如图6所示,其中包含了权限管理模块和当前栈顶包名监听模块,分别负责给应用授权和当收到HandlerService传来风险提示时监听当前栈顶包名并回传给HandlerService。
方案具体流程可如下所述:
1、封装TrustedActivity(可信交互界面),所有有欺诈风险的Activity(如上述A,均为需要输入用户信息的界面,尤其是需要用户手动输入信息的界面,比如登录界面、支付界面等)均继承自TrustedActivity。
2、如图7所示,通过状态管理模块在TrustedActivity中保存激活状态和特例状态。通过消息发送模块在TrustedActivity的onResume()中发送一个检测消息(发送给消息处理模块),并记录TrustedActivity激活状态为是。在TrustedActivity的onPause()中实现记录TrustedActivity激活状态为否。通过特例状态监听模块在TrustedActivity中进行特例状态监听(在onResume()与onPause()之间监听),包括是否有电话广播,是否按下HOME或BACK键等。
3、如图8所示,创建HandlerService(消息处理服务),当接收到消息1s后通过消息处理模块进行消息处理(具体是在onBind()-绑定方法/绑定函数执行过程中接收到消息)。判断TrustedActivity是否处于特例状态,若是则无需处理。否则判断TrustedActivity是否处于激活状态,若是则无需处理;若不是则通过用户警示模块提示用户有Activity劫持风险。
其中,1s是个经验值,这个时间需要让界面能够跳转到被篡改的界面,所以需要大于0.5s。同时这个时间又需要保证用户来不及输入个人信息并上传到伪造界面对应的服务器,因此有需要小于通常用户的输入时间大概2s,也就是说这个时间在0.5s-2s范围内即可。
本发明实施例提供的方案中劫持处理可具体如下:
考虑到在检测出界面劫持风险时,在不对劫持应用进行处理的情况下回到原目标Activity(如A)时,A依然会被后台恶意监听程序监听,而A会再一次提示有劫持风险,从而进入一个死循环,导致无法正常使用服务。因此本方案还提供了一套界面劫持风险的处理方案:
当检测出有界面劫持风险时,在设备未安装恶意程序检测应用(用于获取具体恶意程序的检测应用)时,消息处理服务中的用户警示模块会提示退出应用和下载恶意程序检测按钮,用户如果需要继续使用服务则下载安装恶意程序检测应用。恶意程序检测应用需要PACKAGE_USAGE_STATS权限(通过权限管理模块管理),并且需要用户手动前往“设置–安全–有权查看使用情况的应用”进行设置。恶意程序检测应用包含一个后台Service(HijackListenerService)(劫持程序监听服务)会始终监听处于栈顶的Activity的应用包名(具体通过当前栈顶包名监听模块进行监听)。一旦应用检测到有界面劫持风险(具体通过HandlerService进行检测)就会给HijackListenerService发一个消息,HijackListenerService会将当前处于堆栈顶端应用包名返回给HandlerService,HandlerService提示退出应用或者卸载返回的包名所对应的应用,如图9所示。
由上可知,本发明实施例提供的方案只需要获取所需保护的Activity的应用信息,而无需获取任何其他应用的信息,从而无需PACKAGE_USAGE_STATS权限,也无需用户手动进行权限设置。
其中,包括界面劫持检测和界面劫持风险处理方案,利用界面劫持方案需要做到用户无感知的特点,本方案在onResume()方法中发送消息并在1s之后进行处理;整体处理架构包括TrustedActivity端的状态管理模块、消息发送模块和特例状态监听模块,HandlerService端的消息处理模块和用户警示模块,以及HijackListener的权限管理模块和当前栈顶包名监听模块。
综上所述,本发明实施例提供的界面劫持检测方案无需额外提供PACKAGE_USAGE_STATS权限,且无需用户手动前往“设置–安全–有权查看使用情况的应用”进行设置;无需获取其它应用程序的相关信息,更安全。在ios中禁止应用查看其它应用的使用信息,从Android安全权限的变化历史来看这也是Android的趋势。
此外,由于Android碎片化比较严重,在部分Android系统中,通用的获取其它应用状态信息接口并不可用,导致一些常用方法在某些型号的终端并不可行;而本提案兼容性更好。
本发明实施例还提供了一种系统界面劫持检测装置,如图10所示,包括:
第一监测模块101,用于监测待检测交互界面的当前状态;
第一获取模块102,用于当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;
第一处理模块103,用于根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。
本发明实施例提供的所述系统界面劫持检测装置通过监测待检测交互界面的当前状态;当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程;能够以一种不获取待检测交互界面特征的方式进行Android界面劫持风险检测,操作简便、安全系数高,并提供了存在界面劫持风险状况下的处理方案;很好的解决了现有技术中Android界面劫持风险检测方案操作繁琐、不安全的问题。
其中,所述第一监测模块包括:第一检测子模块,用于检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态;其中,所述特例状态包括存在电话广播、主菜单键或返回键被按下中的至少一种;第一确定子模块,用于当所述待检测交互界面当前不处于特例状态,且不处于激活状态时,则确定所述待检测交互界面存在被劫持的风险。
具体的,所述第一检测子模块包括:第一检测单元,用于在调用继续函数之后的第一预设时长后,调用暂停函数之前,检测所述待检测交互界面当前是否不处于特例状态;第一处理单元,用于若待检测交互界面当前处于特例状态,则不处理;第二检测单元,用于若待检测交互界面当前不处于特例状态,则检测所述待检测交互界面当前是否不处于激活状态;第二处理单元,用于若所述待检测交互界面当前处于激活状态,则不处理;第一执行单元,用于若所述待检测交互界面当前不处于激活状态,则执行所述确定所述待检测交互界面存在被劫持的风险的操作;其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
优选的,所述第一预设时长大于或等于0.5s,且小于或等于2s。
进一步的,所述系统界面劫持检测装置还包括:第二处理模块,用于在监测待检测交互界面的当前状态之前,在继续函数中标记所述待检测交互界面的状态为激活状态,在暂停函数中标记所述待检测交互界面的状态为非激活状态;其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
更进一步的,所述系统界面劫持检测装置还包括:第一监听模块,用于在监测待检测交互界面的当前状态时,监听处于栈顶的交互界面对应的应用进程的应用包名;
对应的,所述第一获取模块包括:第一获取子模块,用于当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取监听到的当前处于栈顶的交互界面对应的应用进程的应用包名,作为造成风险的应用进程的应用包名。
为了进一步提高安全系数,所述系统界面劫持检测装置还包括:第一提示模块,用于在监听处于栈顶的交互界面对应的应用进程的应用包名之前,提示用户授权以监听处于栈顶的交互界面对应的应用进程的应用包名;第一执行模块,用于在用户完成授权操作后,执行所述监听处于栈顶的交互界面对应的应用进程的应用包名的操作。
其中,上述系统界面劫持检测方法的所述实现实施例均适用于该系统界面劫持检测装置的实施例中,也能达到相同的技术效果。
本发明实施例还提供了一种终端,如图11所示,包括存储器111、处理器112及存储在所述存储器111上并可在所述处理器112上运行的计算机程序113;所述处理器112执行所述程序时实现上述的系统界面劫持检测方法。
具体的,所述处理器执行所述程序时实现如下步骤:
监测待检测交互界面的当前状态;
当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;
根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。
本发明实施例提供的所述终端通过监测待检测交互界面的当前状态;当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程;能够以一种不获取待检测交互界面特征的方式进行Android界面劫持风险检测,操作简便、安全系数高,并提供了存在界面劫持风险状况下的处理方案;很好的解决了现有技术中Android界面劫持风险检测方案操作繁琐、不安全的问题。
其中,所述监测待检测交互界面的当前状态的步骤包括:检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态;其中,所述特例状态包括存在电话广播、主菜单键或返回键被按下中的至少一种;当所述待检测交互界面当前不处于特例状态,且不处于激活状态时,则确定所述待检测交互界面存在被劫持的风险。
具体的,所述检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态的步骤包括:在调用继续函数之后的第一预设时长后,调用暂停函数之前,检测所述待检测交互界面当前是否不处于特例状态;若否,则不处理;若是,则检测所述待检测交互界面当前是否不处于激活状态;若否,则不处理;若是,则执行所述确定所述待检测交互界面存在被劫持的风险的操作;其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
优选的,所述第一预设时长大于或等于0.5s,且小于或等于2s。
进一步的,在监测待检测交互界面的当前状态之前,所述系统界面劫持检测方法还包括:在继续函数中标记所述待检测交互界面的状态为激活状态,在暂停函数中标记所述待检测交互界面的状态为非激活状态;其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
更进一步的,在监测待检测交互界面的当前状态时,所述系统界面劫持检测方法还包括:监听处于栈顶的交互界面对应的应用进程的应用包名;
对应的,所述当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名的步骤包括:当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取监听到的当前处于栈顶的交互界面对应的应用进程的应用包名,作为造成风险的应用进程的应用包名。
为了进一步提高安全系数,在监听处于栈顶的交互界面对应的应用进程的应用包名之前,所述系统界面劫持检测方法还包括:提示用户授权以监听处于栈顶的交互界面对应的应用进程的应用包名;在用户完成授权操作后,执行所述监听处于栈顶的交互界面对应的应用进程的应用包名的操作。
其中,上述系统界面劫持检测方法的所述实现实施例均适用于该终端的实施例中,也能达到相同的技术效果。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的系统界面劫持检测方法中的步骤。
具体的,该程序被处理器执行时实现如下步骤:
监测待检测交互界面的当前状态;
当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;
根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。
本发明实施例提供的所述计算机可读存储介质上存储的计算机程序通过监测待检测交互界面的当前状态;当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程;能够以一种不获取待检测交互界面特征的方式进行Android界面劫持风险检测,操作简便、安全系数高,并提供了存在界面劫持风险状况下的处理方案;很好的解决了现有技术中Android界面劫持风险检测方案操作繁琐、不安全的问题。
其中,所述监测待检测交互界面的当前状态的步骤包括:检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态;其中,所述特例状态包括存在电话广播、主菜单键或返回键被按下中的至少一种;当所述待检测交互界面当前不处于特例状态,且不处于激活状态时,则确定所述待检测交互界面存在被劫持的风险。
具体的,所述检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态的步骤包括:在调用继续函数之后的第一预设时长后,调用暂停函数之前,检测所述待检测交互界面当前是否不处于特例状态;若否,则不处理;若是,则检测所述待检测交互界面当前是否不处于激活状态;若否,则不处理;若是,则执行所述确定所述待检测交互界面存在被劫持的风险的操作;其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
优选的,所述第一预设时长大于或等于0.5s,且小于或等于2s。
进一步的,在监测待检测交互界面的当前状态之前,所述系统界面劫持检测方法还包括:在继续函数中标记所述待检测交互界面的状态为激活状态,在暂停函数中标记所述待检测交互界面的状态为非激活状态;其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
更进一步的,在监测待检测交互界面的当前状态时,所述系统界面劫持检测方法还包括:监听处于栈顶的交互界面对应的应用进程的应用包名;
对应的,所述当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名的步骤包括:当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取监听到的当前处于栈顶的交互界面对应的应用进程的应用包名,作为造成风险的应用进程的应用包名。
为了进一步提高安全系数,在监听处于栈顶的交互界面对应的应用进程的应用包名之前,所述系统界面劫持检测方法还包括:提示用户授权以监听处于栈顶的交互界面对应的应用进程的应用包名;在用户完成授权操作后,执行所述监听处于栈顶的交互界面对应的应用进程的应用包名的操作。
其中,上述系统界面劫持检测方法的所述实现实施例均适用于该计算机可读存储介质的实施例中,也能达到相同的技术效果。
需要说明的是,此说明书中所描述的许多功能部件都被称为模块/子模块/单元,以便更加特别地强调其实现方式的独立性。
本发明实施例中,模块/子模块/单元可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述原理前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种系统界面劫持检测方法,其特征在于,包括:
监测待检测交互界面的当前状态;
当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;
根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。
2.根据权利要求1所述的系统界面劫持检测方法,其特征在于,所述监测待检测交互界面的当前状态的步骤包括:
检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态;其中,所述特例状态包括存在电话广播、主菜单键或返回键被按下中的至少一种;
当所述待检测交互界面当前不处于特例状态,且不处于激活状态时,则确定所述待检测交互界面存在被劫持的风险。
3.根据权利要求2所述的系统界面劫持检测方法,其特征在于,所述检测所述待检测交互界面当前是否不处于特例状态,且不处于激活状态的步骤包括:
在调用继续函数之后的第一预设时长后,调用暂停函数之前,检测所述待检测交互界面当前是否不处于特例状态;
若否,则不处理;
若是,则检测所述待检测交互界面当前是否不处于激活状态;
若否,则不处理;
若是,则执行所述确定所述待检测交互界面存在被劫持的风险的操作;
其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
4.根据权利要求3所述的系统界面劫持检测方法,其特征在于,所述第一预设时长大于或等于0.5s,且小于或等于2s。
5.根据权利要求1所述的系统界面劫持检测方法,其特征在于,在监测待检测交互界面的当前状态之前,所述系统界面劫持检测方法还包括:
在继续函数中标记所述待检测交互界面的状态为激活状态,在暂停函数中标记所述待检测交互界面的状态为非激活状态;
其中,所述继续函数用于所述待检测交互界面的激活,所述暂停函数用于所述待检测交互界面的暂停。
6.根据权利要求1所述的系统界面劫持检测方法,其特征在于,在监测待检测交互界面的当前状态时,所述系统界面劫持检测方法还包括:
监听处于栈顶的交互界面对应的应用进程的应用包名;
所述当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名的步骤包括:
当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取监听到的当前处于栈顶的交互界面对应的应用进程的应用包名,作为造成风险的应用进程的应用包名。
7.根据权利要求6所述的系统界面劫持检测方法,其特征在于,在监听处于栈顶的交互界面对应的应用进程的应用包名之前,所述系统界面劫持检测方法还包括:
提示用户授权以监听处于栈顶的交互界面对应的应用进程的应用包名;
在用户完成授权操作后,执行所述监听处于栈顶的交互界面对应的应用进程的应用包名的操作。
8.一种系统界面劫持检测装置,其特征在于,包括:
第一监测模块,用于监测待检测交互界面的当前状态;
第一获取模块,用于当根据所述当前状态,确定所述待检测交互界面存在被劫持的风险时,获取造成风险的应用进程的应用包名;
第一处理模块,用于根据所述应用包名提醒用户退出所述应用进程或者卸载所述应用进程。
9.一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的系统界面劫持检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项所述的系统界面劫持检测方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810058874.0A CN110069922B (zh) | 2018-01-22 | 2018-01-22 | 一种系统界面劫持检测方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810058874.0A CN110069922B (zh) | 2018-01-22 | 2018-01-22 | 一种系统界面劫持检测方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069922A true CN110069922A (zh) | 2019-07-30 |
CN110069922B CN110069922B (zh) | 2021-05-04 |
Family
ID=67364689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810058874.0A Active CN110069922B (zh) | 2018-01-22 | 2018-01-22 | 一种系统界面劫持检测方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069922B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110896540A (zh) * | 2019-11-21 | 2020-03-20 | 国网辽宁省电力有限公司电力科学研究院 | 移动互联网客户端安全评估工具、方法、计算机设备及存储介质 |
CN111125698A (zh) * | 2019-11-28 | 2020-05-08 | 中金金融认证中心有限公司 | 一种Android应用中界面防劫持的系统和方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577753A (zh) * | 2012-08-01 | 2014-02-12 | 联想(北京)有限公司 | 一种提示伪装应用隐患的方法和电子设备 |
CN104182686A (zh) * | 2013-05-23 | 2014-12-03 | 阿里巴巴集团控股有限公司 | 一种Android系统Activity劫持风险检测方法及装置 |
CN105160212A (zh) * | 2015-09-29 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 应用的安全保护方法及系统 |
US20170076092A1 (en) * | 2012-07-03 | 2017-03-16 | Bromium, Inc. | Micro-virtual machine forensics and detection |
CN107145781A (zh) * | 2017-04-18 | 2017-09-08 | 北京思特奇信息技术股份有限公司 | 一种对应用程序进行安全检测的方法及装置 |
CN107220536A (zh) * | 2017-05-24 | 2017-09-29 | 深圳爱加密科技有限公司 | 防劫持方法、系统、电子设备及可读存储介质 |
-
2018
- 2018-01-22 CN CN201810058874.0A patent/CN110069922B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170076092A1 (en) * | 2012-07-03 | 2017-03-16 | Bromium, Inc. | Micro-virtual machine forensics and detection |
CN103577753A (zh) * | 2012-08-01 | 2014-02-12 | 联想(北京)有限公司 | 一种提示伪装应用隐患的方法和电子设备 |
CN104182686A (zh) * | 2013-05-23 | 2014-12-03 | 阿里巴巴集团控股有限公司 | 一种Android系统Activity劫持风险检测方法及装置 |
CN105160212A (zh) * | 2015-09-29 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 应用的安全保护方法及系统 |
CN107145781A (zh) * | 2017-04-18 | 2017-09-08 | 北京思特奇信息技术股份有限公司 | 一种对应用程序进行安全检测的方法及装置 |
CN107220536A (zh) * | 2017-05-24 | 2017-09-29 | 深圳爱加密科技有限公司 | 防劫持方法、系统、电子设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
听风丨说话: "app安全:如何应对界面劫持", 《HTTPS://BLOG.CSDN.NET/XWH_1230/ARTICLE/DETAILS/60145186》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110896540A (zh) * | 2019-11-21 | 2020-03-20 | 国网辽宁省电力有限公司电力科学研究院 | 移动互联网客户端安全评估工具、方法、计算机设备及存储介质 |
CN111125698A (zh) * | 2019-11-28 | 2020-05-08 | 中金金融认证中心有限公司 | 一种Android应用中界面防劫持的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110069922B (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577750B (zh) | 隐私权限管理方法和装置 | |
CN105095746B (zh) | 应用程序启动鉴权方法及装置 | |
CN106200891B (zh) | 显示用户界面的方法、装置及系统 | |
CN110321714B (zh) | 基于双体系结构的可信计算平台的动态度量方法及装置 | |
CN100492300C (zh) | 在微处理器实现的设备上执行进程的系统和方法 | |
CN107193666B (zh) | 应用程序之间调用的控制方法及装置 | |
EP3203406A1 (en) | Sensitive information security protection method and device | |
CN106557669A (zh) | 一种应用程序安装过程的权限控制方法及装置 | |
WO2017109129A1 (en) | Software security | |
TW201730804A (zh) | 一種智能卡應用安全驗證方法及裝置 | |
CN109960936A (zh) | 一种对移动终端进行自动化模拟业务访问的风险识别方法 | |
CN110069922A (zh) | 一种系统界面劫持检测方法、装置及终端 | |
CN115185777A (zh) | 一种异常检测方法、装置、可读存储介质以及电子设备 | |
CN106557687A (zh) | 一种应用程序安装过程的权限控制方法及装置 | |
CN105975333B (zh) | 应用程序运行控制的方法及装置 | |
CN108667802A (zh) | 一种电力应用网络安全的监测方法及系统 | |
CN112464176B (zh) | 一种权限管理方法、装置、电子设备及存储介质 | |
CN111949421B (zh) | Sdk调用方法、装置、电子设备和计算机可读存储介质 | |
CN104063288A (zh) | 进程管理方法及装置 | |
CN116431344A (zh) | 金融服务资源降级策略的配置方法及其装置、电子设备 | |
CN107818260B (zh) | 保障系统安全的方法及装置 | |
CN114238943A (zh) | 应用程序防护方法、装置、设备及存储介质 | |
KR101946569B1 (ko) | 모바일 운영체계 시스템의 발신 호 스푸핑 방지 방법, 이를 위한 장치, 컴퓨터 판독 가능 기록 매체 및 컴퓨터 프로그램 | |
CN109783261B (zh) | 终端应用的崩溃处理方法及装置、电子设备、存储介质 | |
CN116260963B (zh) | 一种用于相机故障的应急处置方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |