应用级窃听防护方法和装置与流程

文档序号:11951576阅读:434来源:国知局
应用级窃听防护方法和装置与流程

本发明涉及网络安全技术领域,尤其是涉及一种应用级窃听防护方法和装置。



背景技术:

随着智能移动设备的广泛普及,智能手机被广泛应用于移动通信,导致语音窃听木马呈现爆发式的增长,尤其是在装有Android系统的智能手机上,给用户隐私带来极大的威胁。随着智能手机的普及,越来越多的智能手机用户使用他们的设备进行语音通信,智能手机上的窃听和反窃听技术也成为移动互联网安全领域的热门话题。

目前主要存在两种类型的窃听技术,第一种窃听技术主要关注用户的正常通话语音,第二种窃听技术通过主动且隐蔽地接听或拨打某个固定的号码,将用户的智能手机转换成环境窃听器。两种窃听技术都很有可能通过安装在手机上的窃听软件,对通话语音或环境语音进行录音并通过网络传送到黑客的服务器上,从而达到窃取用户隐私的目的。

针对以上两种窃听技术,目前的反窃听技术主要包括以下两种:

第一种是静态检测技术,例如特征码扫描、可疑号码拦截。其中,特征码扫描主要是对智能手机安装的应用进行扫描,与已有的恶意应用特征库进行匹配比对,对特征码存在于特征库的应用进行报警,提醒用户卸载。同时在用户新安装应用时,也对该应用的特征码进行匹配比对。而可疑号码拦截主要是通过设置黑名单,对用户来电和去电的号码进行数据库匹配,对被纳入数据库黑名单的通话进行拦截,同时提醒用户。静态检测技术的准确率依赖于特征库,因而存在一定的延时性和漏报率。而且,检测过程依据已经被识别出的恶意应用或恶意号码,不能检测出新的恶意应用或恶意号码。

第二种是定制技术,主要是基于操作系统的定制,针对智能手机操作系统语音流处理、麦克风、电话子系统模块等进行重新设计,监控与通话相关的应用程序接口和系统调用,从而对用户通话安全进行防护。该技术需要重新定制系统,会破坏原生操作系统的完整性;在引入防护机制的同时可能产生新的漏洞;并且窃听防护的定制性较强,只能针对特定机型,无法进行大规模推广。



技术实现要素:

针对以上缺陷,本发明提供一种应用级窃听防护方法和装置,可以检测出新的恶意应用程序,并可以大规模推广。

第一方面,本发明提供的应用级窃听防护方法包括:

获取移动终端上安装的第三方应用程序的权限标记;

利用预先根据窃听过程所需的权限标记所制定的安全权限规则,对所述第三方应用程序进行过滤,得到可疑应用程序;

对所述可疑应用程序进行监控,判断在所述移动终端处于通话状态时所述可疑应用程序是否对通话内容进行录音;

若判定在所述移动终端处于通话状态时所述可疑应用程序对通话内容进行录音,则根据侧信道信息,判断所述可疑应用程序是否为窃听应用程序;其中,所述侧信道信息包括在录音过程中的CPU使用率和录音结束后预设时间段内的网络数据流量信息;

若判定所述可疑应用程序为窃听应用程序,则停止所述窃听应用程序的所有进程,并在所述移动终端的显示界面上弹出用于提醒用户的报警窗。

可选的,所述安全权限规则包括:

同时具有访问通话状态的权限标记、录音的权限标记和访问网络的权限标记的第三方应用程序为可疑应用程序;和/或

同时具有访问通话状态的权限标记、录音的权限标记、访问网络的权限标记和开机自动启动的权限标记的第三方应用程序为可疑应用程序;和/或

同时具有访问通话状态的权限标记、录音的权限标记和访问网络的权限标记,且注册具有访问通话状态的权限标记的广播接收器的第三方应用程序为可疑应用程序。

可选的,所述安全权限规则还包括:

同时具有主动拨打电话的权限标记、录音的权限标记和访问网络的权限标记的第三方应用程序为可疑应用程序;和/或

同时具有主动接听电话的权限标记、录音的权限标记和访问网络的权限标记的第三方应用程序为可疑应用程序;和/或

具有主动拨打电话的权限标记的第三方应用程序为可疑应用程序;和/或

具有主动接听电话的权限标记的第三方应用程序为可疑应用程序;

同时具有主动接听电话的权限标记、录音的权限标记、访问网络的权限标记,且注册具有访问通话状态的权限标记的广播接收器的第三方应用程序为可疑应用程序;和/或

具有主动接听电话的权限标记的第三方应用程序,且注册具有访问通话状态的权限标记的广播接收器的第三方应用程序为可疑应用程序;和/或

同时具有主动接听电话的权限标记、录音的权限标记、访问网络的权限标记和开机自动启动的权限标记的第三方应用程序为可疑应用程序;和/或

同时具有主动接听电话的权限标记和开机自动启动的权限标记的第三方应用程序为可疑应用程序。

可选的,所述根据侧信道信息,判断所述可疑应用程序是否为窃听应用程序,包括:

根据所述CPU使用率,判断所述可疑应用程序在录音过程中是否使用CPU资源;

若判定所述可疑应用程序在录音过程中使用CPU资源,则根据所述网络数据流量信息,判断在录音结束后预设时间段内网络数据流量的增加量是否超出预设值;

若所述网络数据流量的增加量超出预设值,则判定所述可疑应用程序为窃听应用程序。

可选的,所述方法还包括:

若判定在所述移动终端处于通话状态时所述可疑应用程序未对通话内容进行录音,则在所述移动终端的通话状态改变时获取所述移动终端的行为特征信息,并根据所述行为特征信息,判断所述可疑应用程序是否为窃听应用程序;

其中,所述行为特征信息包括任务栈栈顶的界面信息、屏幕状态信息和移动终端的重力加速度信息。

可选的,所述根据所述行为特征信息,判断所述可疑应用程序是否为窃听应用程序,包括:

若在所述移动终端的通话状态改变时,任务栈栈顶的应用包名与通话进程的包名不一致,所述移动终端的屏幕处于锁屏状态,且所述重力加速度小于所述预设加速度,则判定所述可疑应用程序为窃听应用程序。

可选的,所述根据所述行为特征信息,判断所述可疑应用程序是否为窃听应用程序,包括:

将所述行为特征信息输入至贝叶斯分类模型中,根据所述贝叶斯分类模型的输出值判断所述移动终端的通话是否为恶意通话;其中,所述贝叶斯分类模型为预先根据恶意通话样本对应的行为特征信息和安全通话样本对应的行为特征信息学习训练得到;

若判定所述移动终端的通话为恶意通话,则确定在通话过程中使用CPU资源的可疑应用程序为窃听应用程序。

可选的,所述方法还包括:

若判定所述移动终端的通话为恶意通话,则挂断该通话,并获取对应的通话号码,将获得的通话号码存储至黑名单中。

第二方面,本发明提供的应用级窃听防护装置包括:

获取模块,用于获取移动终端上安装的第三方应用程序的权限标记;

过滤模块,用于利用预先根据窃听过程所需的权限标记所制定的安全权限规则,对所述第三方应用程序进行过滤,得到可疑应用程序;

第一判断模块,用于对所述可疑应用程序进行监控,判断在所述移动终端处于通话状态时所述可疑应用程序是否对通话内容进行录音;

第二判断模块,用于在判定在所述移动终端处于通话状态时所述可疑应用程序对通话内容进行录音时,根据侧信道信息,判断所述可疑应用程序是否为窃听应用程序;其中,所述侧信道信息包括在录音过程中的CPU使用率和录音结束后预设时间段内的网络数据流量信息;

阻断模块,用于在判定所述可疑应用程序为窃听应用程序时,停止所述窃听应用程序的所有进程,并在所述移动终端的显示界面上弹出用于提醒用户的报警窗。

可选的,所述第二判断模块具体用于:

根据所述CPU使用率,判断所述可疑应用程序在录音过程中是否使用CPU资源;

若判定所述可疑应用程序在录音过程中使用CPU资源,则根据所述网络数据流量信息,判断在录音结束后预设时间段内网络数据流量的增加量是否超出预设值;

若所述网络数据流量的增加量超出预设值,则判定所述可疑应用程序为窃听应用程序。

本发明提供的应用级窃听防护方法和装置,利用安全权限规则过滤出可疑应用程序,然后对可疑应用程序进行监控,若发现可疑程序在通话过程中对通话内容录音,进而依据CPU使用率和网络数据流量信息判断可疑应用程序是否为窃听应用程序,从而确定移动终端安装的第三方应用程序中是否存在窃听应用程序,哪些或哪个应用程序为窃听应用程序,从而对窃听应用程序进行阻断,达到窃听防护的目的。而且不依赖于静态的特征库,因此可以检测出新的恶意应用程序。并且不是基于操作系统的定制,因此不会引入新的漏洞,还可以大规模推广。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。

图1示出了本发明一实施例中应用级窃听防护方法的流程示意图;

图2示出了本发明一实施例中应用级窃听防护装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

本发明提供一种应用级窃听防护方法,如图1所示,该方法包括:

S101、获取移动终端上安装的第三方应用程序的权限标记;

S102、利用预先根据窃听过程所需的权限标记所制定的安全权限规则,对所述第三方应用程序进行过滤,得到可疑应用程序;

S103、对所述可疑应用程序进行监控,判断在所述移动终端处于通话状态时所述可疑应用程序是否对通话内容进行录音;

S104、若判定在所述移动终端处于通话状态时所述可疑应用程序对通话内容进行录音,则根据侧信道信息,判断所述可疑应用程序是否为窃听应用程序;其中,所述侧信道信息包括在录音过程中的CPU使用率和录音结束后预设时间段内的网络数据流量信息;

S105、若判定所述可疑应用程序为窃听应用程序,则停止所述窃听应用程序的所有进程,并在所述移动终端的显示界面上弹出用于提醒用户的报警窗。

本发明提供的应用级窃听防护方法中,利用安全权限规则过滤出可疑应用程序,然后对可疑应用程序进行监控,若发现可疑程序在通话过程中对通话内容录音,进而依据CPU使用率和网络数据流量信息判断可疑应用程序是否为窃听应用程序,从而确定移动终端安装的第三方应用程序中是否存在窃听应用程序,哪些或哪个应用程序为窃听应用程序,从而对窃听应用程序进行阻断,达到窃听防护的目的。本方法不依赖于静态的特征库,因此可以检测出新的恶意应用程序。并且不是基于操作系统的定制,因此不会引入新的漏洞,还可以大规模推广。

在具体实施时,针对某种窃听技术,需要对来去电进行通知、进行录音、访问网络将录音数据发送至黑客的服务器,因此这种窃听需要有访问通话状态、录音和访问网络的权限,基于此,制定的安全权限规则为:同时具有访问通话状态的权限标记、录音的权限标记和访问网络的权限标记的第三方应用程序为可疑应用程序,即根据第三方应用程序是否存在以上权限对应的权限标记,即可实现过滤。

在实际中,窃听技术可以通过两种方式获得通话状态:一种是注册一个具有访问通话状态的权限标记的广播接收器,另一种是注册一个phonelistener,以申请开机自动启动的权限,在移动终端开机时自动启动窃听应用程序。针对第一种,如果窃听应用程序静态注册一个广播接收器,在监听到来去电时会自动启动窃听应用程序。基于此,还可以制定一条安全权限规则:同时具有访问通话状态的权限标记、录音的权限标记和访问网络的权限标记,且注册具有访问通话状态的权限标记的广播接收器的第三方应用程序为可疑应用程序。针对第二种,若应用程序具有开机自动启动的权限,则在移动终端开机时自动启动窃听应用程序,基于此还可以制定一条安全权限规则:同时具有访问通话状态的权限标记、录音的权限标记、访问网络的权限标记和开机自动启动的权限标记的第三方应用程序为可疑应用程序。

在具体实施时,有的窃听技术可以主动拨打或接听电话、进行录音和访问网络将录音数据传送至黑客的服务器,因此窃听应用程序需要具有主动拨打或接听电话、进行录音和访问网络的权限。基于此,制定两条安全权限规则:同时具有主动拨打电话的权限标记、录音的权限标记和访问网络的权限标记的第三方应用程序为可疑应用程序;同时具有主动接听电话的权限标记、录音的权限标记和访问网络的权限标记的第三方应用程序为可疑应用程序。然而,还有的窃听应用程序可以不会录音并将录音通过网络传送至黑客服务器,仅仅是将移动终端变成一个环境语音窃听器,基于此,还可以制定两条安全权限规则:具有主动拨打电话的权限标记的第三方应用程序为可疑应用程序;具有主动接听电话的权限标记的第三方应用程序为可疑应用程序。

当然,基于窃听技术的上述两种获得通话状态的方式,还可以制定安全权限规则:同时具有主动接听电话的权限标记、录音的权限标记、访问网络的权限标记,且注册具有访问通话状态的权限标记的广播接收器的第三方应用程序为可疑应用程序;具有主动接听电话的权限标记的第三方应用程序,且注册具有访问通话状态的权限标记的广播接收器的第三方应用程序为可疑应用程序;同时具有主动接听电话的权限标记、录音的权限标记、访问网络的权限标记和开机自动启动的权限标记的第三方应用程序为可疑应用程序;同时具有主动接听电话的权限标记和开机自动启动的权限标记的第三方应用程序为可疑应用程序。

应当理解的是,以上制定的各条安全权限规则之间为和/或的关系,即在进行过滤时,可以采用各条安全权限规则的任意组合进行过滤。

在具体实施时,窃听应用程序一般利用MediaRecorder类对用户的通话进行录音,这会导致MediaServer生成一个名为AndioIn_x的服务线程,其中x是一个数字。注意到这个线程是由系统生成的,窃听应用程序不能隐藏或篡改,因此暴露了录音行为。因此可以通过读取/proc/<pid>/task/<tid>/status文件,判断该线程的存在与否。如果可疑应用程序在用户通话期间出现了AndioIn_x线程,则说明可疑应用程序对通话内容进行了录音。

在具体实施时,S104中根据侧信道信息,判断所述可疑应用程序是否为窃听应用程序的具体过程可以包括:

S1041、根据所述CPU使用率,判断所述可疑应用程序在录音过程中是否使用CPU资源;

其中,CPU使用率可以通过读取/proc/<pid>/stat文件得到。

S1042、若判定所述可疑应用程序在录音过程中使用CPU资源,则根据所述网络数据流量信息,判断在录音结束后预设时间段内网络数据流量的增加量是否超出预设值;

其中,网络数据流量信息可以通过读取/proc/uid_stat/<uid>文件得到。这里主要关注的是tcp_snd的增加量,而Android SDK提供了Android.net.TrafficStats接口获取相关的信息。

S1043、若所述网络数据流量的增加量超出预设值,则判定所述可疑应用程序为窃听应用程序。

这里,通过CPU使用率判断可疑应用程序是否在录音过程中是否CPU资源,并在录音结束后是否访问网络将录音数据传递出去,从而判断可疑应用程序为窃听应用程序。

当然,在具体实施时,窃听技术有可能不会录音和传递录音数据,但是由于在安全通话和恶意通话时,移动终端的行为特征信息是不同的,所以可以根据在通话状态改变时移动终端的行为特征信息进行判断,具体为:若判定在所述移动终端处于通话状态时所述可疑应用程序未对通话内容进行录音,则在所述移动终端的通话状态改变时获取所述移动终端的行为特征信息,并根据所述行为特征信息,判断所述可疑应用程序是否为窃听应用程序;其中,所述行为特征信息包括任务栈栈顶的界面信息、屏幕状态信息和移动终端的重力加速度信息。

在具体实施时,根据所述行为特征信息,判断所述可疑应用程序是否为窃听应用程序的具体过程可以包括:

若在所述移动终端的通话状态改变时,任务栈栈顶的应用包名与通话进程的包名不一致,所述移动终端的屏幕处于锁屏状态,且所述重力加速度小于所述预设加速度,则判定所述可疑应用程序为窃听应用程序。

可理解的是,正常通话的过程中,当通话状态改变时,任务栈栈顶的界面肯定为通话界面,这意味着PhoneCallTask进程肯定位于任务栈栈顶。与之相反,窃听应用程序必须隐藏其通话界面。基于此,在通话状态发生改变时,例如,从CALL_STATE_RINGING切换到CALL_STATE_OFFHOOK时,利用getRunningTasks接口获取任务栈栈顶的应用包名,然后与系统通话进程的包名(如:“com.android.dialer”或“com.android.incallui”)进行比对,如果没有匹配成功的话,说明存在被窃听的风险。

可理解的是,在正常通话的情况下,当通话状态改变时,屏幕必须处于解锁状态。与之相反,窃听应用程序为了达到隐藏效果,不会改变当前的屏幕状态。这意味着在窃听电话的整个过程中,屏幕极有可能一直处于锁定状态。基于此,利用isScreenOn接口在通话状态改变时获取屏幕状态信息,如果是锁屏的话,说明存在被窃听的风险。

可理解的是,如果用户主动地拨打或接听电话,他极有可能在接通电话的瞬间举起手机,从而产生一个重力加速度。与之相反,窃听应用程序由于其隐蔽性不会引起用户的注意。在整个通话的过程中,除非用户恰好在晃动其手机,几乎不会产生重力加速度。利用onSensorChanged接口监控手机加速度传感器,在通话状态由CALL_STATE_RINGING切换成CALL_STATE_OFFHOOK时,如果重力加速度的值趋近于0的话,说明存在被窃听的风险。

显然,存在一些特殊情况,比如,当智能手机上安装的窃听应用程序自动接听窃听通话时,用户可能恰好在使用手机。这种情况下,不能仅凭屏幕状态来判断通话的安全性。考虑到以上分析的三个参数,我们发现贝叶斯分类算法很适合解决我们的问题。贝叶斯分类算法包括两个阶段:学习阶段和检测阶段。学习阶段通过对大量的安全通话样本和恶意通话样本进行训练。因此,根据所述行为特征信息,判断所述可疑应用程序是否为窃听应用程序,可包括:

将所述行为特征信息输入至贝叶斯分类模型中,根据所述贝叶斯分类模型的输出值判断所述移动终端的通话是否为恶意通话;其中,所述贝叶斯分类模型为预先根据恶意通话样本对应的行为特征信息和安全通话样本对应的行为特征信息学习训练得到;

若判定所述移动终端的通话为恶意通话,则确定在通话过程中使用CPU资源的可疑应用程序为窃听应用程序。

当然,若判定所述移动终端的通话为恶意通话,则挂断该通话,并获取对应的通话号码,将获得的通话号码存储至黑名单中。之后无论来电或去电,都将通话号码与黑名单进行比对,如果发现匹配,将自动挂断电话。当然,用户具有修改黑名单的权限。

在具体实施时,一旦确定窃听应用程序,就采取方法强行停止窃听应用程序的进程。如果智能手机已经被root,则可以通过简单的命令kill–STOP<pid>就可以停止恶意进程。然而,大部分的智能手机是没有被root的,因此可以通过killBackgroundProcesses接口关闭整个窃听应用程序,参数是应用包名。同时,弹出报警窗,提醒用户窃听应用程序的名称及相关信息。用户可以选择对该应用程序进一步检测,以决定是否将其卸载。

但是,当出现特殊情况,有可能导致确定的窃听应用程序并非真正的恶意应用程序,而已经将其强行关闭时,可以通过调用onSaveInstanceState存储的运行状态,并在重启时恢复,使带来的性能影响是较小的。

基于相同的发明构思,如图2所示,本发明还提供一种应用级窃听防护装置200,包括:

获取模块201,用于获取移动终端上安装的第三方应用程序的权限标记;

过滤模块202,用于利用预先根据窃听过程所需的权限标记所制定的安全权限规则,对所述第三方应用程序进行过滤,得到可疑应用程序;

第一判断模块203,用于对所述可疑应用程序进行监控,判断在所述移动终端处于通话状态时所述可疑应用程序是否对通话内容进行录音;

第二判断模块204,用于在判定在所述移动终端处于通话状态时所述可疑应用程序对通话内容进行录音时,根据侧信道信息,判断所述可疑应用程序是否为窃听应用程序;其中,所述侧信道信息包括在录音过程中的CPU使用率和录音结束后预设时间段内的网络数据流量信息;

阻断模块205,用于在判定所述可疑应用程序为窃听应用程序时,停止所述窃听应用程序的所有进程,并在所述移动终端的显示界面上弹出用于提醒用户的报警窗。

可选的,所述第二判断模块204具体用于:

根据所述CPU使用率,判断所述可疑应用程序在录音过程中是否使用CPU资源;

若判定所述可疑应用程序在录音过程中使用CPU资源,则根据所述网络数据流量信息,判断在录音结束后预设时间段内网络数据流量的增加量是否超出预设值;

若所述网络数据流量的增加量超出预设值,则判定所述可疑应用程序为窃听应用程序。

本发明提供的应用级窃听防护装置为本发明提供的应用级窃听防护方法的功能架构模块,有关内容的说明、解释、有益效果等内容请参见上述方法中的相应内容,在此不再赘述。

本领域普通技术人员可以理解:实现上述方法实施例的全部或者部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤。

本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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