CN104239786A - 免root主动防御配置方法及装置 - Google Patents

免root主动防御配置方法及装置 Download PDF

Info

Publication number
CN104239786A
CN104239786A CN201410539412.2A CN201410539412A CN104239786A CN 104239786 A CN104239786 A CN 104239786A CN 201410539412 A CN201410539412 A CN 201410539412A CN 104239786 A CN104239786 A CN 104239786A
Authority
CN
China
Prior art keywords
application
intended application
shell
event behavior
unit
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
Application number
CN201410539412.2A
Other languages
English (en)
Other versions
CN104239786B (zh
Inventor
李常坤
刘星
石浩然
杨威
孙年忠
王玺
张海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410539412.2A priority Critical patent/CN104239786B/zh
Publication of CN104239786A publication Critical patent/CN104239786A/zh
Application granted granted Critical
Publication of CN104239786B publication Critical patent/CN104239786B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种免ROOT主动防御配置方法和相应的装置,该方法包括以下步骤:确定目标应用,保存其安装包至指定目录;利用目标应用的安装包配置外壳应用安装包,向其中注入用于调用监控单元的桩模块,修改其中的配置参数以用于加载所述目标应用,所述监控单元用于实现对源自所述目标应用的事件行为的挂钩监控;安装该外壳应用。本发明提出的主动防御方案,对现有系统的改动很小,不会影响系统的兼容性,而且实现简单、高效。

Description

免ROOT主动防御配置方法及装置
技术领域
本发明涉及计算机安全领域,具体而言,本发明涉及一种免ROOT主动防御配置方法,相应还涉及一种免ROOT主动防御配置装置。
背景技术
Unix系的操作系统,以Android为典型代表,广泛应用于各种移动通信终端中。Android具有相对较为严格的用户权限管理机制,默认状态下,用户的权限较低。要突破权限限制,需要将系统的权限提高到最高级别,也即进行ROOT授权。获得最高权限后,用户便可对第三方应用的恶意行为进行拦截,对消耗系统资源的设置项进行修改,因此,多数情况下,市面上的安全软件需要在已经获得ROOT授权的Android移动终端上工作,才能达到其最优效果。但是,一般用户并不掌握较高的专业知识,未必能对其终端进行ROOT授权,即使进行了ROOT授权,在为安全软件开放更高权限的同时,也给了恶意程序以可乘之机。更为矛盾的是,在非ROOT条件下,一部分恶意程序能工作,而传统的安全防御软件却会失去绝对优势。因此,在非ROOT条件下解决Android、Ubuntu等类似系统的安全防御需求,是业内一直以来的努力方向。
主动防御技术是满足上述需求的较佳解决方案。主动防御是基于程序事件行为自主分析判断的实时防护技术,不以病毒的特征码作为判断病毒的依据,而是从最原始的病毒定义出发,直接将程序的行为作为判断病毒的依据。主动防御是用软件自动实现了反病毒工程师分析判断病毒的过程,解决了传统安全软件无法防御未知恶意软件的弊端,从技术上实现了对木马和病毒的主动防御。
请参阅2014年9月3日公开、公开号为CN104023122A的专利申请,其请求保护一种安全防御方法及装置。该方案的基本思路是通过下载预先定制的待注入应用程序来替换当前终端的相应的应用程序,并且在系统重启后优先启动该待注入应用程序,从而实现主动防御。该思路主要是为了解决如何构建安全防御机制的问题,而其中所涉的待注入应用程序是由当前终端的应用程序进行反编译、修改代码和重新封装后生成的,也就是采用了二次打包技术。本领域技术人员可以理解,这种依赖于对应用程序进行全面的二次打包实现的行为监控方式存在不足,表现在如下几个方面:
首先,安装失败率高。事实上,越来越多的应用程序已经具备防止二次打包的免疫力,如果应用程序已经做好了防止二次打包的免疫设置,那么,强行向目标应用程序注入监控代码,会导致该目标应用不能安装,或者安装后出现异常崩溃,建构主动防御环境的成功率较低。
其次,存在监控不全面的先天不足。挂钩函数构成应用程序的一部分,恶意程序可以利用JAVA反射机制中的反射调用、JNI本地调用(Native)等技术来逃避这一防御机制。
此外,监控精细程度不高。二次打包后的应用程序,其监控对象往往局限于应用程序本身,难以具体到精细行为,难以对诸如短信操作、联系人接入或删除操作、URL访问操作、衍生物操作、安装操作、子进程侵入等具体行为做出精细的监控。
综合以上的分析可知,业内关于主动防御技术的研究,仍有较大的提升空间。
发明内容
本发明的首要目的在于,在免ROOT条件下建构更为高效的主动安全防御机制,从而提供一种免ROOT主动防御配置方法。
本发明的另一目的在于配合首要目的而提供一种免ROOT主动防御配置装置。
为实现本发明的上述目的,本发明提供如下技术方案:
本发明提供的一种免ROOT主动防御配置方法,包括以下步骤:
确定目标应用,保存其安装包至指定目录;
利用目标应用的安装包配置外壳应用安装包,向其中注入用于调用监控单元的桩模块,修改其中的配置参数以用于加载所述目标应用,所述监控单元用于实现对源自所述目标应用的事件行为的挂钩监控;
安装该外壳应用。
本发明揭示的一种实施例中,所述目标应用的确定,通过用户界面的已安装目标应用列表的指示区域被动变化到选定状态而确定;确定目标应用并将该目标应用安装包复制到所述指定目录后,卸载该目标应用。
本发明的另一实话例中,所述目标应用的确定,以接收安装广播的方式获取新装应用作为所述目标应用,从远程规则库接口获取关于该目标应用的处理规则,根据该处理规则向用户界面弹窗以获取对该目标应用的确定;将该目标应用安装包复制到所述指定目录之前或之后,停止该目标应用的安装。
具体的,所述监控单元从远程插件接口获得对应于特定事件行为的挂钩插件,所述挂钩插件用于挂钩监控特定事件行为。
具体的,利用目标应用配置外壳应用的过程包括如下具体步骤:
解析目标应用安装包,生成外壳应用镜像;
修改或替换镜像中的代码文件,以注入所述桩模块;
修改镜像中的配置文件的配置参数,用于加载指定目录中的目标应用;
对外壳应用镜像进行打包签名,完成外壳应用的封装。
进一步,封装外壳应用的步骤中,采用手机识别码或随机码的方式对外壳应用进行签名。
较佳的,所述外壳应用中,监控单元先于所述指定目录中的目标应用被加载。
较佳的,所述外壳应用安装包的文件名与目标应用安装包保持一致,而外壳应用安装包所配置的图标至少之一与目标应用不同。
具体的,所述监控单元所监控的事件行为包括以下任意一种或多种行为类型:获取运营商信息、APN操作、通知栏广告操作、获取手机识别码操作、创建快捷方式、电话拔打操作、短信操作、联系人操作、URL访问操作、子进程侵入操作、应用加载操作、命令操作、衍生物操作、激活设备管理器操作。
进一步,将目标应用配置为外壳应用的过程中,还为外壳应用配置有交互模块,该交互模块被注册为系统服务,用于针对监控单元监控到的事件行为向用户界面弹窗以获取对应于事件行为的处理策略。
本发明提供的一种免ROOT主动防御配置装置,包括:
确定装置,用于确定目标应用,保存其安装包至指定目录;
构造装置,其利用目标应用的安装包配置外壳应用安装包,向其中注入用于调用监控单元的桩模块,修改其中的配置参数以用于加载所述目标应用,所述监控单元用于实现对源自所述目标应用的事件行为的挂钩监控;
安装装置,用于安装该外壳应用。
本发明所揭示的一种实施例中,所述确定装置包括:
选定单元,其通过用户界面的已安装目标应用列表的指示区域被动变化到选定状态而确定;
处理单元,其用于在目标应用确定并将该目标应用安装包复制到所述指定目录后,卸载该目标应用。
本发明揭示的另一实施例中,所述确定装置包括:
选定单元,其以接收安装广播的方式获取新装应用作为所述目标应用,从远程规则库接口获取关于该目标应用的处理规则,根据该处理规则向用户界面弹窗以获取对该目标应用的确定;
处理单元,其在将该目标应用安装包复制到所述指定目录之前或之后,停止该目标应用的安装。
具体的,所述监控单元,用于从远程插件接口获得对应于特定事件行为的挂钩插件,所述挂钩插件用于挂钩监控特定事件行为。
进一步,所述构造装置包括:
解析单元,用于解析目标应用安装包,生成外壳应用镜像;
代码单元,用于修改或替换镜像中的代码文件,以注入所述桩模块;
配置单元,用于修改镜像中的配置文件的配置参数,用于加载指定目录中的目标应用;
封装单元,用于对外壳应用镜像进行打包签名,完成外壳应用的封装。
其中,所述封装单元,其采用手机识别码或随机码的方式对外壳应用进行签名。
较佳的,所述外壳应用中,监控单元先于所述指定目录中的目标应用被加载。
较佳的,所述外壳应用安装包的文件名与目标应用安装包保持一致,而外壳应用安装包所配置的图标至少之一与目标应用不同。
具体的,所述监控单元所监控的事件行为包括以下任意一种或多种行为类型:获取运营商信息、APN操作、通知栏广告操作、获取手机识别码操作、创建快捷方式、电话拔打操作、短信操作、联系人操作、URL访问操作、子进程侵入操作、应用加载操作、命令操作、衍生物操作、激活设备管理器操作。
进一步,所述外壳应用配置有交互模块,该交互模块被注册为系统服务,用于针对监控单元监控到的事件行为向用户界面弹窗以获取对应于事件行为的处理策略。
相较于现有技术,本发明至少具有如下优点:
1、真正实现了动态主动防御。本发明以目标应用为基本单位提出建构其主动防御环境的解决方案,可以通过在实时监测目标应用被安装后,或者通过识别用户对需要建立主动防御机制的目标程序的选定后,根据目标应用构造一个伪装成目标应用的外壳应用,再由该外壳应用去加载监控单元和真正的目标应用,为目标应用程序及时动态建立防御机制,后续可借助这一外壳应用的运行实现主动防御。这一过程不需要对系统进行ROOT授权,不依赖于联网条件,更不依赖于以特征码为基础的病毒库,因此而真正实现了对目标应用程序的主动防御。
2、所建立的主动防御机制安全有效。如前所述,本发明构造所述外壳应用时,是根据目标应用的安装包进行构造的,而目标应用的安装包本身被安全保存。由此,本发明一方面由于未改变待运行的目标应用的代码和配置,因而目标应用能够满足自校验要求,而外壳应用被视为所述的目标应用而合法存在;另一方面,即使带有恶意的目标应用企图利用JAVA反射机制避开检测,也难以逃脱监控单元的观察;再一方面还可以通过监控单元实现对真正的目标程序的事件行为的监控,以类似观察者的身份全面监视目标应用的一切事件行为,对各种特定事件行为及时做出响应,突破JVM局限,可以实现对Java函数、JNI函数、系统函数调用的监控,显然较为全面。
3、实现对目标应用的精细监控。由于监控单元可以监控目标应用的一切事件行为,对各种函数调用均可无障碍地实施监控,因此,具体到应用层面,本发明不仅可以实现对包括电话、短信、联系人等常规应用的具体操作行为的监控,也可以实现诸如衍生物(安装包)、提权命令、应用加载等高端事件行为的监控,其监控效果更为全面、具体、有效。
结合上述的分析可知,本发明提出的上述方案,对现有系统的改动很小,不会影响系统的兼容性,而且实现简单、高效。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一种免ROOT主动防御配置方法的典型实施例的原理示意图;
图2为本发明的免ROOT主动防御配置方法中将安装原包配置成外壳应用的过程的原理示意图;
图3为本发明一种免ROOT主动防御配置装置的结构示意图;
图4为本发明一种免ROOT主动防御方法的典型实施例的原理示意图;
图5为本发明的免ROOT主动防御方法中利用外壳应用的运行对目标应用的事件行为进行监控的原理示意图;
图6为本发明的免ROOT主动防御方法中对捕获的事件进行处理的原理示意图;
图7为本发明一种免ROOT主动防御装置的结构示意图;
图8为根据本发明实现的一个程序实例的用户界面之一,用于展示发现未防御应用之后的弹框交互功能;
图9为根据本发明实现的一个程序实例的用户界面之一,用于展示扫描到的应用程序列表,并向用户提供用于确定目标应用的选择区域;
图10为根据本发明实现的一个程序实例的用户界面之一,用于展示单个应用所有事件行为的默认处理策略,并提供给用户对处理策略进行修改的选项;
图11为根据本发明实现的一个程序实例的用户界面之一,用于展示进行事件行为拦截后的人机交互效果,具体是拦截发送短信的事件行为;
图12为根据本发明实现的一个程序实例的用户界面之一,用于展示进行事件行为拦截后的人机交互效果,具体是拦截插入短信的事件行为。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(PersonalDigital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“应用软件”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。同理,本发明所称的“目标应用”、“安装包”之间存在对应关系,安装包为目标应用的文件存在形式。
本发明的一种免ROOT主动防御配置方法,主要用于为操作系统构建应用程序的安全防御环境,以便在不影响应用程序的正常操作的前提下,实现主动防御。为此本发明将提供一典型实施例用于说明该方法的基本实现。相应的,应用了上述免ROOT主动防御配置方法的应用程序,其利用所述配置方法的机理进行工作,也包含一种与前者相应的主动防御方法。为便于说明,以下将以Unix系的Android操作系统及其应用程序为例,详细说明上述两种方法以及其相应装置的具体实现。
本发明的方法所应用的环境包括可与远程服务器或云端通信的移动终端,该移动终端安装有Android操作系统,该系统处于未经ROOT授权的状态。需要指出的是,即使该操作系统处于ROOT授权后的状态,本发明所述的各种方法也依然适用于该操作系统中。也就是说,本发明各种方法的实现,不受操作系统是否开放最高权限所限制。
请参阅图1的原理示意图,该图揭示了所述免ROOT主动防御配置方法的典型实施例,包括如下几大步骤:
S11、确定目标应用,保存其安装包至指定目录。
所述的目标应用,即需要建构主动防御环境的目标应用程序,就特定的处于非ROOT授权环境下的Android系统而言,出于权限限制的考虑,一般适用于第三方应用。
本发明所称的指定目录,是指本发明出于文件组织、管理效率的考虑而为这些需要建构主动防御环境而提供的自定义默认目录,所有通过本发明建立了主动防御环境的目标应用的安装包,均可被移动或复制保存到该指定目录中,进一步还可以对其进行加密或隐藏,以确保其安全性。需要指出的是,这里的指定目录,还可以是系统已经存在的目录。既可以是单个目录,也可以是多个目录。概括而言,是为本发明所采用的用于存放由本发明建构主动防御环境的目标应用安装包的目录。
目标应用的确定和处理,非常灵活,以下提供几种确定目标应用和后续处理的实施方式:
方式一:
对于已经完成安装的应用程序而言,本发明可以自动或受用户指令控制对这些已安装应用程序进行扫描,获得这些应用程序的安装信息,将这些应用程序作为候选目标应用列表显示在用户界面中(参阅图9),在图形用户界面的相应指示区域中为列表中的每个候选目标应用提供相对应的选择开关,由用户对这些开关状态进行设定,从而获得用户对具体目标应用的确定。具体而言,用户可以将某个目标应用所对应的指示区域中的选择开关,从未选定状态切换至选定状态,如图9中的“已监控”、“点击监控”二态开关示例,这种情况下,即可视为用户完成了对该目标应用的确定操作。
众所周知的,Android系统中,第三方应用的安装会涉及对如下目录做如下操作:data/app,第三方应用安装目录,安装时先把apk文件复制到此目录;data/dalvik-cache,将apk解压后的代码文件(.dex文件)安装到该目录下;data/data,用于建立并存放应用程序所需的数据。基于上述原理可知,第三方应用的apk文件即为其安装包,在data/app中可以找到该安装包。因此,对于已安装的目标应用而言,可以从data/app中复制相应的apk文件到指定目录中,然后卸载该目标应用。
方式二:
参阅图8,对于准备或者正在进行安装的应用程序而言,本发明可以通过将自身注册为默认安装器的形式,获取该应用程序的安装广播信息。继而,将这个新装应用程序作为目标应用,将其安装包或签名之类的特征信息通过远程规则库接口发送到云端服务器中,由云端服务器对其做出安全性判断。一种实施例中,云端服务器为应用程序的安全级别设定黑、灰、白三种级别,分别代表不同危险程度,并设定对应的处理规则。例如,黑应用禁止安装,灰应用由用户自行选择,白应用则可径行安装。当然,可以进一步简化为灰、白两种,或者简化为黑、白两种。本领域技术人员熟悉服务器的这种云端控制技术,将在后续进一步概要揭示。无论如何,本发明将从本机远程规则库接口中获得云端服务器有关这些应用的处理规则的反馈,利用反馈结果做出相应的后续处理。具体而言,当针对当前目标应用返回黑应用标识时,可以随即停止该目标应用的安装;当标识为白应用或灰应用时,则可放行安装。出于交互性的考虑,当完成远程判断后,本发明将向用户界面弹窗提醒用户有关判断结果,并显示相应的处理建议,询问用户是否确定对当前新装应用建构主动防御环境,用户从中确定对当前新装目标应用进行主动防御的标识后,即确定了该目标应用。
同理,用户确定该目标应用之后,本发明会将该目标应用的安装包存放至所述的指定目录中。另外,出于本发明后续将为该已确定的目标应用建构主动防御环境的考虑,本发明会立即停止该目标应用的安装,停止安装的操作既可以发明在用户确定该目标应用之前也可以发生在之后。
其它变通方式:
如前提供的两种典型的有关确定目标应用的方式,可由本领域技术人员变通利用。例如,对于方式一中的已安装目标应用而言,可以适用方式二中将已安装应用通过远程规则库接口发送到云端进行安全等级判断,并在返回结果后,参照方式二的处理方式,对已安装应用进行处理。又如,如果当前应用属于黑应用,而用户仍然希望安装该应用,则仍可允许用户在建立主动防御环境的前提下保留该已安装应用程序,或者允许相应的新装应用继续安装。
以上揭示关于确定目标应用的两种典型方式及其变通方式,本领域技术人员足以据此掌握,本发明的主动防御配置方法的首要步骤中涉及如何确定目标应用的多种途径,以及如何获得被确定的目标应用的安装包并将其保存至指定目录中的多种实现方式。
S12、利用目标应用的安装包配置外壳应用的安装包。
确定需要建构主动防御环境的目标应用后,进一步创建外壳应用。请参阅图2,该外壳应用的创建包括如下具体步骤:
S121、解析目标应用安装包,生成外壳应用镜像。
众所周知,目标应用安装包为压缩文件,将该安装包解压,即可获得其中的文件。较佳的,将目标应用安装包解压至一个临时工作目录以完成解压工作。解压后,即可对目标应用安装包中的各个文件进行解析。另一种方式中,也可以在内存中直接解析该目标应用安装包。无论如何,本领域技术人员均能通过已知方式对目标应用进行解析,获得用于配置外壳应用的相关参数和资源,并据此生成外壳应用镜像。该镜像既可以是硬盘镜像,也可以是内存镜像,其功能在于在构造外壳应用过程中作为中间状态出现,故其具体存在形式应不影响本发明的实现,本领域技术人员可以结合公知常识灵活变通之,下不赘述。S122、修改或替换镜像中的代码文件,以注入所述的桩模块。
公知的,apk安装包的构成文件中包含代码文件Classes.dex。本发明中,通过修改或者替换的方式,为外壳应用镜像构造新的Classes.dex,使该新文件中包含本发明所提供的桩模块nStub。该桩模块通过加载利用HOOK技术实现的监控单元14,使监控单元14可在运行时实现对目标应用15所创建的进程的事件行为的监控捕获。
S123、修改镜像中的配置文件的配置参数,用于加载指定目录中的目标应用15。
同理,安装包的构成文件中还包含配置文件Androidmanifest.xml,对该文件进行修改,对应修改外壳应用镜像中有关目标应用15的配置信息,使其适于加载指定目录中的目标应用15。此外,本发明利用Java反射调用机制,将LoadApk与ActivityThread涉及的运行时配置信息用反射替换成指定目录中目标应用15安装包的ClassLoader与资源,从而实现外壳应用在运行时对目标应用15的加载。
此外,图标作为一种可供人机识别的资源,在本发明中也作为配置文件之一被修改。为了使图标更易识别,本发明利用该目标应用15的原图标作为底稿,对其添加图戳,以原文件名保存替换原图标,如此,即可在外壳应用安装后,供用户通过该图戳识别其为已防御的应用。同一个目标应用15可能包括多个图标资源,可以仅对其中目标应用15所采用的主图标进行修改,也可对其包含的多个或所有图标进行类似的修改。
S124、完成该外壳应用的封装。
本子步骤为本领域技术人员所知悉的常规步骤,在完成上述的修改后,对外壳应用镜像进行打包和签名,便可完成外壳应用的封装。签名时,参照公知方式,可以采用手机识别码IME,或者采用随机码的方式进行签名。
经过以上四个子步骤,便可基于目标应用15安装包构造相应的外壳应用安装包。可以理解,外壳应用属于轻应用,体积较小,其功能主要表现在对监控单元14和对目标应用15的先后加载。在运行时,监控单元14先被桩模块加载,加载后便开始挂钩后续被加载的目标应用15的所有或部分指定的事件行为,实际上相当于将目标应用15的事件行为的控制权交到监控单元14手中。
需要指出的是,所述的监控单元14,是通过从一后台沙箱HOOK框架中获取对应于特定的事件行为的挂钩插件,利用该挂钩插件监控目标应用15的特定事件行为而实现的。所述的后台沙箱HOOK框架,在云端进行集中管理,向各终端进行分发。其中,云端主要构造有Java挂钩插件库和Native挂钩插件库。监控单元14可以通过远程插件接口向后台沙箱HOOK框架发送请求,获得针对特定事件行为的HOOK函数,即所述的挂钩插件,借此建立对特定事件行为的监控捕获和处理。
由于监控单元14与目标应用15的加载,均为外壳应用进程所驱动,且监控单元14先于目标应用15加载,因而,监控单元14在理论上可以建立对目标应用15一切事件行为的监控。以下概括说明几种典型的事件行为及其捕获实例:
(1)终端、联网有关的操作:
获取运营商信息:目标应用15例如通过getSimOperatorName()函数可以获得移动终端的IMSI,由此可进一步判断运营商的名称,进一步可以向运营商发送约定指令,实现扣费之类的非法目的。监控平台通过挂钩与此相关的消息,便可以对事件行为的捕获。
切换APN操作:同理,目标应用15通过与APN切换有关的函数实现ANP切换控制的操作,也可被监控单元14通过调用相应的挂钩插件进行监控。
类似的操作,还包括获取手机识别码IME的操作,也与上述同理。
(2)通知栏广告操作:通知栏广告是最易被恶意程序利用的手段,监控单元14通过调用相应的挂钩插件对notify函数产生的事件消息进行监控,也可对其实施监控。
(3)通信操作:
如电话拔打操作,通过StartActivity()函数可以监控拔打电话的事件行为,利用相应的挂钩插件可以对拔打电话操作建立事件行为监控。
短信操作,对应于SendTextMessage()之类的函数,同理,可以借助挂钩插件对这类函数建立事件行为监控。
联系人操作:一般对应于Query()、Insert()函数,监控单元14利用挂钩插件挂钩此类函数可以实现对此类事件行为的监控捕获。
(4)命令操作:
如SU提权操作或执行命令操作,均需用到Execve()函数,监控单元14通过监控此函数的返回消息,便可实现该类事件行为的监控。
(5)界面及访问操作:
如创造快捷方式的事件行为,则对应于SentBroacast()函数。同理,对于隐藏程序图标的操作,也可对应特定函数监控之。
如HTTP网络访问操作,则对应于Sentto()、Write()等函数。
(6)程序操作:
如应用加载操作,指当前目标应用15加载相关应用的操作,通过对dexclassloader()、loadlibrary()等函数进行挂钩监控,可以实现对此类事件行为的捕获。
又如安装子包,则对应于StartActivity()函数。
(7)其它危险操作:
例如,子进程侵入操作、衍生物操作、激活设备管理器操作等,分别对应于。
其中,子进程是指目标应用15建立的子进程,在目标应用15创建子进程时,监控单元14将收到相应的消息,而判定其创建子进程的事件行为。由此,监控单元14进一步向该子进程以内联钩子的方式在该子进程中植入监控单元14,后续便可继续对该子进程的事件行为进行监控。因而,无论是目标应用15的自身进程,还是其创建的子进程,它们直接或间接所触发的事件行为,均能被本发明的监控单元14所监控,使主动防御效果更佳。
而所述衍生物,是指目标应用15自行创建的文件,或者远程下载的文件,通常是指敏感的衍生物,例如安装包。通过挂钩fclose()函数可以捕获该事件。需要指出的是,当监控单元14捕获该事件行为后,可以按照前述的方法,进一步利用远程规则库接口发送请求到云端,由云端利用其黑、白、灰的安全等级行为规则判断该衍生物的安全等级,本发明通过远程规则库接口获得云端判定结果后,进一步弹窗询问用户是否建立对该敏感衍生物的主动防御,由此便可进一步巩固主动防御的效果。
上述的事件行为仅为摘录之用,不能理解为对本发明监控的事件行为的限制。结合上述对事件行为的分类可知,本发明的监控单元14,可以对源自目标应用15的事件行为、无论是由目标应用15直接还是间接触发的事件行为进行监控。
本发明的外壳应用安装包的文件名与目标应用15的安装包的文件名完全一致,因此,可以看出,外壳应用构成了目标应用15的伪装应用。外壳应用体积小,其构造过程较为迅速,对用户而言其构造和运行过程较为透明,基本不影响进行主动防御环境构建时的目标应用15安装和运行效率。
此外,为了便于实现用户交互,本发明还为外壳应用配备一交互接口,通过该交互接口,可以向预注册的系统服务发送消息,通过系统服务向用户界面弹窗问询用户指令,系统服务获得用户指令后返回给本外壳应用的进程,外壳应用根据用户指令可以做前述所称的系列的后续处理,这一后续处理部分将在后续涉及主动防御方法部分进行详细的揭示。
S13、安装该外壳应用。
完成该外壳应用的构造后,本发明将该外壳应用进行安装,而后,该目标应用15即具有了前述所阐述的主动防御环境,用户运行该目标应用15,会被引导至运行文件名相同的外壳应用,外壳应用一旦运行,便能实现对该目标应用15的主动防御。
由于本发明的方法的应用环境为非ROOT授权的环境,部分权限受限制,这种情况下,如果已安装目标应用15未卸载,则会先弹出一卸载该目标应用15的界面,引导用户卸载已装目标应用15;继而弹出一安装该外壳应用的界面,引导客户安装该外壳应用。当然,如果系统已获ROOT授权,本发明的方法可径行将其旧应用卸载然后安装外壳应用。
需要进一步的强调的是,前述提及的卸载目标应用15的子步骤,如本步骤所述,可以按需被后续处理,其卸载的时点,并不影响本发明的方法的实现。
以上仅仅阐述了本发明的主动防御配置方法,进一步,可以利用该主动防御配置方法构建相应的主动防御配置装置。
请参阅图3,本发明的免ROOT主动防御配置装置与前述配置方法具有严密的对应性,包括确定装置11、构造装置12以及安装装置13,如下进行具体阐述:
所述的确定装置11,用于确定目标应用15,并将该目标应用15的安装包保存至指定目录。
所述的目标应用15,即需要建构主动防御环境的目标应用15程序,就特定的处于非ROOT授权环境下的Android系统而言,出于权限限制的考虑,一般适用于第三方应用。
本发明所称的指定目录,是指本发明出于文件组织、管理效率的考虑而为这些需要建构主动防御环境而提供的自定义默认目录,所有通过本发明建立了主动防御环境的目标应用15的安装包,均可被移动或复制保存到该指定目录中,进一步还可以对其进行加密或隐藏,以确保其安全性。需要指出的是,这里的指定目录,还可以是系统已经存在的目录。既可以是单个目录,也可以是多个目录。概括而言,是为本发明所采用的用于存放由本发明建构主动防御环境的目标应用15安装包的目录。
确定装置11的构造,非常灵活,以下提供几种构造该确定装置11的实施方式:
方式一:
对于已经完成安装的应用程序而言,本发明可以自动或受用户指令控制对这些已安装应用程序进行扫描,获得这些应用程序的安装信息,通过一选定单元将这些应用程序作为候选目标应用15列表如图9所示的显示在用户界面中,在图形用户界面的相应指示区域中为列表中的每个候选目标应用15提供相对应的选择开关,由用户对这些开关状态进行设定,从而获得用户对具体目标应用15的确定。具体而言,用户可以将某个目标应用15所对应的指示区域中的选择开关,从未选定状态切换至选定状态,这种情况下,即可视为用户完成了对该目标应用15的确定操作。
众所周知的,Android系统中,第三方应用的安装会涉及对如下目录做如下操作:data/app,第三方应用安装目录,安装时先把apk文件复制到此目录;data/dalvik-cache,将apk解压后的代码文件(.dex文件)安装到该目录下;data/data,用于建立并存放应用程序所需的数据。基于上述原理可知,第三方应用的apk文件即为其安装包,在data/app中可以找到该安装包。因此,对于已安装的目标应用15而言,本发明进而为确定装置11构造一处理单元,由其从data/app中复制相应的apk文件到指定目录中,然后卸载该目标应用15。
方式二:
参阅图8,对于准备或者正在进行安装的应用程序而言,本发明可以通过将自身注册为默认安装器的形式,通过一选定单元获取该应用程序的安装广播信息。继而,将这个新装应用程序作为目标应用15,将其安装包或签名之类的特征信息通过远程规则库接口发送到云端服务器中,由云端服务器对其做出安全性判断。一种实施例中,云端服务器为应用程序的安全级别设定黑、灰、白三种级别,分别代表不同危险程度,并设定对应的处理规则。例如,黑应用禁止安装,灰应用由用户自行选择,白应用则可径行安装。当然,可以进一步简化为灰、白两种,或者简化为黑、白两种。本领域技术人员熟悉服务器的这种云端控制技术,恕不赘述。无论如何,本发明将从本机远程规则库接口中获得云端服务器有关这些应用的处理规则的反馈,利用反馈结果做出相应的后续处理。具体而言,当针对当前目标应用15返回黑应用标识时,可以随即停止该目标应用15的安装;当标识为白应用或灰应用时,则可放行安装。出于交互性的考虑,当完成远程判断后,本发明将向用户界面弹窗提醒用户有关判断结果,并显示相应的处理建议,询问用户是否确定对当前新装应用建构主动防御环境,用户从中确定对当前新装目标应用15进行主动防御的标识后,即确定了该目标应用15。
同理,用户确定该目标应用15之后,本发明会将该目标应用15的安装包存放至所述的指定目录中。另外,出于本发明后续将为该已确定的目标应用15建构主动防御环境的考虑,本发明会由一处理单元立即停止该目标应用15的安装,停止安装的操作既可以发明在用户确定该目标应用15之前也可以发生在之后。
其它变通方式:
如前提供的两种典型的有关确定目标应用15的方式,可由本领域技术人员变通利用。例如,对于方式一中的已安装目标应用15而言,可以适用方式二中将已安装应用通过远程规则库接口发送到云端进行安全等级判断,并在返回结果后,参照方式二的处理方式,对已安装应用进行处理。又如,如果当前应用属于黑应用,而用户仍然希望安装该应用,则仍可允许用户在建立主动防御环境的前提下保留该已安装应用程序,或者允许相应的新装应用继续安装。
以上揭示关于确定装置11的两种典型构造方式及其变通方式,本领域技术人员足以据此掌握,本发明的主动防御配置装置的确定装置11中涉及如何确定目标应用15的多种途径,以及如何获得被确定的目标应用15的安装包并将其保存至指定目录中的多种实现方式。
所述的构造装置12,其利用目标应用15的安装包配置外壳应用的安装包。
确定需要建构主动防御环境的目标应用15后,进一步创建外壳应用。该构造装置12包括解析单元、代码单元、配置单元以及封装单元,以下详细揭示这些单元的功能实现:
所述的解析单元,用于解析目标应用15安装包,生成外壳应用镜像。
众所周知,目标应用15安装包为压缩文件,将该安装包解压,即可获得其中的文件。较佳的,将目标应用15安装包解压至一个临时工作目录以完成解压工作。解压后,即可对目标应用安装包中的各个文件进行解析。另一种方式中,也可以在内存中直接解析该目标应用安装包。无论如何,本领域技术人员均能通过已知方式对目标应用进行解析,获得用于配置外壳应用的相关参数和资源,并据此生成外壳应用镜像。
所述的代码单元,用于修改或替换镜像中的代码文件,以注入所述的桩模块。
公知的,apk安装包的构成文件中包含代码文件Classes.dex。本发明中,通过修改或者替换的方式,构造新的Classes.dex,使该新文件中包含本发明所提供的桩模块nStub。该桩模块通过加载利用HOOK技术实现的监控单元14,使监控单元14可在运行时实现对目标应用15所创建的进程的事件行为的监控捕获。
所述的配置单元,用于修改镜像中的配置文件的配置参数,以用于加载指定目录中的目标应用15。
同理,安装包的构成文件中还包含配置文件Androidmanifest.xml,对该文件进行修改,对应修改外壳应用镜像中有关目标应用15的配置信息,使其适于加载指定目录中的目标应用15。此外,本发明利用Java反射调用机制,将LoadApk与ActivityThread涉及的运行时配置信息用反射替换成指定目录中目标应用15安装包的ClassLoader与资源,从而实现外壳应用在运行时对目标应用15的加载。
此外,图标作为一种可供人机识别的资源,在本发明中也作为配置文件之一被修改。为了使图标更易识别,本发明利用该目标应用15的原图标作为底稿,对其添加图戳,以原文件名保存替换原图标,如此,即可在外壳应用安装后,供用户通过该图戳识别其为已防御的应用。同一个目标应用15可能包括多个图标资源,可以仅对其中目标应用15所采用的主图标进行修改,也可对其包含的多个或所有图标进行类似的修改。
所述的封装单元,用于完成该外壳应用的封装。
封装单元的功能实现为本领域技术人员所应理解。在完成上述的修改后,对外壳应用镜像进行打包和签名,便可完成外壳应用的封装。签名时,参照公知方式,可以采用手机识别码IME,或者采用随机码的方式进行签名。
通过执行该构造装置12,便可基于目标应用15安装包构造相应的外壳应用安装包。可以理解,外壳应用属于轻应用,体积较小,其功能主要表现在对监控单元14和对目标应用15的先后加载。在运行时,监控单元14先被桩模块加载,加载后便开始挂钩后续被加载的目标应用15的所有或部分指定的事件行为,实际上相当于将目标应用15的事件行为的控制权交到监控单元14手中。
需要指出的是,所述的监控单元14,是通过从一后台沙箱HOOK框架中获取对应于特定的事件行为的挂钩插件,利用该挂钩插件监控目标应用15的特定事件行为而实现的。所述的后台沙箱HOOK框架,在云端进行集中管理,向各终端进行分发。其中,云端主要构造有Java挂钩插件库和Native挂钩插件库。监控单元14可以通过远程插件接口向后台沙箱HOOK框架发送请求,获得针对特定事件行为的HOOK函数,即所述的挂钩插件,借此建立对特定事件行为的监控捕获和处理。
由于监控单元14与目标应用15的加载,均为外壳应用进程所驱动,且监控单元14先于目标应用15加载,因而,监控单元14在理论上可以建立对目标应用15一切事件行为的监控。
有关本发明的主动防御配置装置中监控单元14所处理的事件行为,由于与上述主动防御配置方法具有严密对应性,故不赘述。
同理,本发明的外壳应用安装包的文件名与目标应用15的安装包的文件名完全一致,因此,可以看出,外壳应用构成了目标应用15的伪装应用。外壳应用体积小,其构造过程较为迅速,对用户而言构造和运行过程较为透明,基本不影响进行主动防御环境构建时的目标应用15安装和运行效率。
此外,为了便于实现用户交互,本发明还为外壳应用配备一交互接口,通过该交互接口,可以向预注册的系统服务发送消息,通过系统服务向用户界面弹窗问询用户指令,系统服务获得用户指令后返回给本外壳应用的进程,外壳应用根据用户指令可以做前述所称的系列的后续处理,这一后续处理部分将在后续涉及主动防御方法部分进行详细的揭示。
所述的安装装置13,用于安装该外壳应用。
完成该外壳应用后,执行安装装置13,以便直接安装该外壳应用,安装完成后,该目标应用15即具有了前述所阐述的主动防御环境,用户运行该目标应用15,会被引导至运行文件名相同的外壳应用,外壳应用一时运行,便能实现对该目标应用15的主动防御。
由于本发明的方法的应用环境为非ROOT授权的环境,部分权限受限制,这种情况下,如果已安装目标应用15未卸载,则会先弹出一卸载该目标应用15的界面,引导用户卸载已装目标应用15;继而弹出一安装该外壳应用的界面,引导客户安装该外壳应用。当然,如果系统已获ROOT授权,本发明的方法可径行将其旧应用卸载然后安装外壳应用。
需要进一步的强调的是,前述提及的卸载目标应用15的子步骤,如本步骤所述,可以按需被后续处理,其卸载的时点,并不影响本发明的方法的实现。
本发明在前述的方法和装置中为应用程序建构了主动防御环境,在此基础上,从程序执行的视角,还提供了一种免ROOT主动防御方法和一种免ROOT主动防御装置。
请参阅图4,本发明的免ROOT主动防御方法,是前述主动防御配置方法中构建的主动防御环境的具体应用,该方法建基于构建了主动防御环境配置的目标应用15,对目标应用15实施安全防护。结合图7,该方法包括如下步骤:
S31、响应运行目标应用35的指令,运行相应的外壳应用。
参阅前述配置方法的说明可知,外壳应用被安装后,其文件名与原来的目标应用35的文件名相同,伪装成目标应用35,用户对目标应用35的操作,实际上,通过桌面图标指引的快捷方式,将被引导至运行预先伪装的外壳应用,此时,用户在用户界面上的点选操作便构成运行该外壳应用的运行指令。需要指出的是,运行目标应用35的指令并不局限于由用户触发,也包括如前所述的,由应用程序、定时任务或者通过其它公知途径以函数调用的方式执行的加载指令。外壳应用为轻应用,可以快速加载至内存中运行,对用户而言,其启动过程是透明的。
外壳应用的图标是从目标应用35的默认图标改进的,一般是以该默认图标加图戳来实现这种改进,因而,从视觉效果上,还可起到一定的示警作用。
一旦产生运行目标应用35的指令,本发明即作出响应,外壳应用随即被加载到JAVA虚拟机中运行。
S32、外壳应用的加载过程。
如前的配置方法所述,本发明的外壳应用中,其代码文件Classes.dex配置有桩模块nstub,通过该桩模块可以加载监控模块;其配置文件Androidmanifest.xml运用Java反射调用原理,对其中的配置参数进行修改,使其适于加载保存在所述指定目录中的目标应用35,此外,还对目标应用35的运行时配置参数进行了适应性的修改,确定目标应用35能正常运行。
因此,请参阅图5,外壳应用运行后,如步骤S321所揭示,首先通过桩模块调用加载监控单元34,所述监控单元34从一后台沙箱HOOK框架中获取对应于特定的事件行为的挂钩插件,利用该挂钩插件挂钩并监控目标应用35的特定事件行为。所述的后台沙箱HOOK框架,在云端进行集中管理,向各终端进行分发。其中,云端主要构造有Java挂钩插件库和Native挂钩插件库。监控单元34需要挂钩具体事件行为时,通过远程插件接口向后台沙箱HOOK框架发送请求,获得针对特定事件行为的HOOK函数,即所述的挂钩插件,借此建立对特定事件行为的监控捕获和处理。
进而,如步骤S322所揭示,运行中的外壳应用将进一步加载所述位于指定目录中的目标应用35。如前所述,目标应用35调用,是利用公知的Java反射调用机制实现的。外壳应用的进程将LoadApk与ActivityThread涉及的运行时配置信息用反射替换成指定目录中目标应用35安装包的ClassLoader与资源,从而实现对目标应用35的加载。
如步骤S323显示,目标应用35被加载时,已被监控单元34利用挂钩插件建立了监控,因此,目标应用35的一切事件行为均在监控单元34的监控范围之内。位于目标应用35的安装包是完整未经修改的,因此,目标应用35被外壳应用加载后,能够完全合法、正常地运行,实现目标应用35原本能实现的所有功能。
由于监控单元34与目标应用35的加载,均为外壳应用进程所驱动,同为外壳应用进程的一部分,且监控单元34先于目标应用35加载,因而,运行中的监控单元34即建立了对目标应用35一切事件行为的监控。目标应用35运行过程中产生的任何事件行为,其事件消息均会被监控单元34捕获并进行相应的处理。
S33、捕获事件行为之后的处理过程。
请结合图6,步骤S331显示,目标应用35产生的特定事件行为被监控单元34捕获,实质上是触发特定事件行为时,所产生的事件消息被监控单元34中相应的挂钩插件(钩子函数)所捕获。捕获该事件消息,即可知晓该事件的意图,继而可以进行后续的处理。
步骤S332显示,对特定事件行为进行处理,需要获取事件行为处理策略。在这一子步骤中,可以进一步借助系统服务来实现人机交互功能。为了实现人机交互效果,本发明预先将一交互模块注册为系统服务,外壳应用可以通过其交互接口与该交互模块通信,从而实现外壳应用对用户指令或预设指令的获取。
事件行为策略的获取方式非常灵活多样,以下列举几种为本发明所择一或任意组合使用的策略:
(1)监控单元34捕获特定事件行为后,通过外壳应用内建的交互接口,向所述交互模块发送请求,由交互模块向用户界面弹窗问询用户处理策略,如图11和图12所示,该弹窗界面可以直接告知用户有关事件行为的内容及其风险,由用户选择相应的选项作为处理策略。用户选择相应选项并确定后,交互模块获得针对该特定事件行为的处理策略,将其反馈给监控单元34,监控单元34即可根据该用户指令所产生的处理策略对目标应用35的相应事件行为进行下一步的处理。
(2)在某些已被公认为相对低风险的事件行为发生时,例如对联系人的只读操作行为,或者在用户为本发明设置了自行检索针对特定事件行为所应采取的处理策略时,本发明利用一本地策略数据库检索相应的针对特定事件行为的处理策略。例如,如图10所示,某个应用的所有事件行为的默认处理策略可以被以表单的形式给出。也就是说,该本地策略数据库中,建立了特定事件行为与相应的处理策略之间的关联,并且存储了多种事件行为与相应的处理策略之间对应关系的记录数据,可以供本发明检索使用。本发明从本地策略数据库中获取相应的处理策略后,方能对相应事件行为做下一步的处理。
(3)如果用户为本发明设置了远程获取处理策略的选项,或者默认在本地策略数据库检索不到特定事件行为的具体策略时可以远程获取,又或通过前述第(1)种情况进行交互而在规定时限内得不到用户对弹窗的响应,诸如此类的情况,外壳应用均可通过其内建的远程策略接口,向预架构的云端发送请求,获得对应于该特定事件行为的相应的处理策略,并用于后续的处理。
需要指出的是,有关以上三种获取处理策略的方式,可以交叉配合使用,例如,一旦交互模块接收到监控单元34传递的事件消息的特征,即可依照默认设置,参照第(2)种方式先行检索本地策略数据库,获得系统推荐的处理策略(如果不能从本地策略数据库中获得,甚至可以进一步按第(3)种方式从云端策略数据库中获取)。继而,参照第(1)种方式,在弹窗界面设置系统推荐的处理策略为默认选项。如果用户未在规定时限内确认该默认选项,则以系统推荐的处理策略为准执行后续指令;如果用户将之改变为新的默认选项,则向监控单元34返回用户设置的处理策略。可见,人机交互过程是可以更为灵活自由地实现的。
所述的本地策略数据库,可以是云端策略数据库的一个复件,因此,本发明中,设置一个更新步骤,用于下载云端策略数据库用于更新本地策略数据库。
一般情况下,针对特定事件行为的策略可以设置为“拒绝”、“运行”、“询问”三个常见选项,其表征的具体意向为:
拒绝:针对该特定事件行为,向目标应用35发送事件行为已经执行完毕的虚假消息,以禁止该事件行为实际发生;
运行:针对该特定事件行为不做任何改变,将相应的事件消息直接转送给系统消息机制,允许目标应用35继续其事件行为;
询问:独立或依附于前述两个选项任意之一,针对该特定事件行为,标记其状态为未知状态,后续重复发生该行为时,需要再行弹窗询问用户。
实际应用中,选项“询问”可被忽略,仅需考虑是否拒绝或允许当前事件行为发生即可。
所述的事件行为,多种多样,具体包括如下几大类型:
(1)终端、联网有关的操作:
获取运营商信息:目标应用35例如通过getSimOperatorName()函数可以获得移动终端的IMSI,由此可进一步判断运营商的名称,进一步可以向运营商发送约定指令,实现扣费之类的非法目的。监控平台通过挂钩与此相关的消息,便可以对事件行为的捕获。
切换APN操作:同理,目标应用35通过与APN切换有关的函数实现ANP切换控制的操作,也可被监控单元34通过调用相应的挂钩插件进行监控。
类似的操作,还包括获取手机识别码IME的操作,也与上述同理。
(2)通知栏广告操作:通知栏广告是最易被恶意程序利用的手段,监控单元34通过调用相应的挂钩插件对notify函数产生的事件消息进行监控,也可对其实施监控。
(3)通信操作:
如电话拔打操作,通过StartActivity()函数可以监控拔打电话的事件行为,利用相应的挂钩插件可以对拔打电话操作建立事件行为监控。
短信操作,对应于SendTextMessage()之类的函数,同理,可以借助挂钩插件对这类函数建立事件行为监控。
联系人操作:一般对应于Query()、Insert()函数,监控单元34利用挂钩插件挂钩此类函数可以实现对此类事件行为的监控捕获。
(4)命令操作:
如SU提权操作或执行命令操作,均需用到Execve()函数,监控单元34通过监控此函数的返回消息,便可实现该类事件行为的监控。
(5)界面及访问操作:
如创造快捷方式的事件行为,则对应于SentBroacast()函数。同理,对于隐藏程序图标的操作,也可对应特定函数监控之。
如HTTP网络访问操作,则对应于Sentto()、Write()等函数。
(6)程序操作:
如应用加载操作,指当前目标应用35加载相关应用的操作,通过对dexclassloader()、loadlibrary()等函数进行挂钩监控,可以实现对此类事件行为的捕获。
又如安装子包,则对应于StartActivity()函数。
(7)其它危险操作:
例如,子进程侵入操作、衍生物操作、激活设备管理器操作等,分别对应于。
其中,子进程是指目标应用35建立的子进程,在目标应用35创建子进程时,监控单元34将收到相应的消息,而判定其创建子进程的事件行为。由此,监控单元34进一步向该子进程以内联钩子的方式在该子进程中植入监控单元34,后续便可继续对该子进程的事件行为进行监控。因而,无论是目标应用35的自身进程,还是其创建的子进程,它们直接或间接所触发的事件行为,均能被本发明的监控单元34所监控,使主动防御效果更佳。
而所述衍生物,是指目标应用35自行创建的文件,或者远程下载的文件,通常是指敏感的衍生物,例如安装包。通过挂钩fclose()函数可以捕获该事件。需要指出的是,当监控单元34捕获该事件行为后,可以按照前述的方法,进一步利用远程规则库接口发送请求到云端,由云端利用其黑、白、灰的安全等级行为规则判断该衍生物的安全等级,本发明通过远程规则库接口获得云端判定结果后,进一步弹窗询问用户是否建立对该敏感衍生物的主动防御,由此便可进一步巩固主动防御的效果。
上述的事件行为仅为摘录之用,不能理解为对本发明监控的事件行为的限制。
步骤S333显示,依据上述的处理策略和上述关于事件行为的说明,本发明的主动防御方法便可对各种事件行为进行相应的处理,其处理过程的概括在前文中已散列给出,以下进一步列举几种典型的应用实例:
(1)对目标应用35的精细拦截的应用:
部分恶意程序被安装后,在相当长的一段时间内处于正常使用的状态,麻痹用户的安全意识。但是,运行一段长时间之后,该目标应用35尝试从后台插入一短信引起用户的关注,达到广告和诈骗的效果。参阅图12,对该目标应用35建立主动防御机制后,本发明如前所述,通过监控单元34中相应的挂钩插件对短信操作函数的监控,一旦目标应用35产生短信操作的事件行为,便可捕获这一事件行为,继而,监控单元34通过其交互接口通知作为系统服务运行的交互模块,由交互模块向用户界面弹窗示警。用户点选“拒绝”的处理策略后,被逆反馈给监控单元34,其中相应的挂钩插件便能阻该事件行为的实际发生,达到防范风险的目的。
(2)对目标应用35释放恶意文件的应用。
目标应用35为一游戏软件,通过检查更新的方式下载并释放恶意子包,并且调用系统功能安装该子包。本发明对该目标应用35建立了主动防御之后,可以监控到其下载完文件而产生的事件行为,据此通过交互模块弹窗告警。用户指令拒绝之后,监控单元34中相应的挂钩插件便可直接删除该文件,或者仅仅拒绝该文件的安装行为。
本发明中,对于诸如此类的恶意子包,视为敏感衍生物,对衍生物是否存在恶意的判断,参照前述防御配置方法中所述及的确定安全等级的方式进行远程判断。具体而言,当检测到产生衍生物时,将相应的文件或者其签名之类的特征信息通过远程规则库接口发送给云端,并从云端获得其安全等级,如果为黑、灰应用,则在弹窗中建议用户拒绝安装;如果为白应用,则可允许其通行。通过这种方法,便可实现对敏感衍生物的安全防御。如果云端检测不到该衍生物的相关记录,可以要求本方法为其上传该文件,并由云端标示为未知应用,相应的,以灰应用予以标记,以备后用。
(3)对子进程侵入的应用。
被监控的目标应用35在运行过程中创建子进程,而子进程进一步释放恶意事件行为。监控单元34监控到目标应用35创建子进程时,即获得子进程的入口,然后向该子进程植入本发明的监控单元34,所有HOOK插件(挂钩插件)都会被以内联钩子的方式加载到该子进程中并初始化好实现挂钩,以便建立对该子进程的事件行为的监控。由此,可以看出,无论是由目标应用35进程直接触发的事件行为,还是由目标应用35进程所创建的子进程所触发的间接事件行为,均能被监控单元34成功监控。
以上通过S31、S32、S33共三个关键步骤,详细描述了本发明的主动防御方法的实现及其应用,可以看出,以该方法工作的主动防御技术,具有充分的可行性。
进一步,适应上述免ROOT主动防御方法,本发明进一步提供一种免ROOT主动防御装置,两者也自然具有严密的对应性,以下对该装置进行具体揭示:
本发明的免ROOT主动防御装置,包括启动模块31、安防模块32以及处理模块33,各模块的具体功能及实现如下所示:
所述的启动模块31,用于响应运行目标应用35的指令,运行相应的外壳应用。
参阅前述配置方法的说明可知,外壳应用被安装后,其文件名与原来的目标应用35的文件名相同,伪装成目标应用35,用户对目标应用35的操作,实际上,通过桌面图标指引的快捷方式,将被引导至运行预先伪装的外壳应用,此时,用户在用户界面上的点选操作便构成运行该外壳应用的运行指令。需要指出的是,运行目标应用35的指令并不局限于由用户触发,也包括如前所述的,由应用程序、定时任务或者通过其它公知途径以函数调用的方式执行的加载指令。外壳应用为轻应用,可以快速加载至内存中运行,对用户而言,其启动过程是透明的。
外壳应用的图标是从目标应用35的默认图标改进的,一般是以该默认图标加图戳来实现这种改进,因而,从视觉效果上,还可起到一定的示警作用。
一旦产生运行目标应用35的指令,本发明即作出响应,外壳应用随即被加载到JAVA虚拟机中运行。
所述的安防模块32,其主要实现外壳应用的加载过程,利用外壳应用先后加载监控单元34及所述目标应用35,由该监控单元34对该目标应用35的事件行为进行监控。
本发明的外壳应用中,其代码文件Classes.dex配置有桩模块nstub,通过该桩模块可以加载监控模块;其配置文件Androidmanifest.xml运用Java反射调用原理,对其中的配置参数进行修改,使其适于加载保存在所述指定目录中的目标应用35,此外,还对目标应用35的运行时配置参数进行了适应性的修改,确定目标应用35能正常运行。
因此,外壳应用运行后,首先通过桩模块调用监控单元34,所述监控单元34从一后台沙箱HOOK框架中获取对应于特定的事件行为的挂钩插件,利用该挂钩插件挂钩并监控目标应用35的特定事件行为。所述的后台沙箱HOOK框架,在云端进行集中管理,向各终端进行分发。其中,云端主要构造有Java挂钩插件库和Native挂钩插件库。监控单元34需要挂钩具体事件行为时,通过远程插件接口向后台沙箱HOOK框架发送请求,获得针对特定事件行为的HOOK函数,即所述的挂钩插件,借此建立对特定事件行为的监控捕获和处理。
进而,运行中的外壳应用将进一步加载所述位于指定目录中的目标应用35。如前所述,目标应用35调用,是利用公知的Java反射调用机制实现的。安防模块32中构造有配置模块,其由外壳应用的进程将LoadApk与ActivityThread涉及的运行时配置信息用反射替换成指定目录中目标应用35安装包的ClassLoader与资源,从而实现对目标应用35的加载。目标应用35被加载时,已被监控单元34利用挂钩插件建立了监控,因此,目标应用35的一切事件行为均在监控单元34的监控范围之内。位于目标应用35的安装包是完整未经修改的,因此,目标应用35被外壳应用加载后,能够完全合法、正常地运行,实现目标应用35原本能实现的所有功能。
由于监控单元34与目标应用35的加载,均为外壳应用进程所驱动,同为外壳应用进程的一部分,且监控单元34先于目标应用35加载,因而,运行中的监控单元34即建立了对目标应用35一切事件行为的监控。目标应用35运行过程中产生的任何事件行为,其事件消息均会被监控单元34捕获并进行相应的处理。
所述的处理模块33,用于执行捕获事件行为之后的处理过程。
目标应用35产生的特定事件行为被监控单元34捕获,实质上是触发特定事件行为时,所产生的事件消息被监控单元34中相应的挂钩插件(钩子函数)所捕获。捕获该事件消息,即可知晓该事件的意图,继而可以进行后续的处理。
对特定事件行为进行处理,需要获取事件行为处理策略。在这一子步骤中,可以进一步借助系统服务来实现人机交互功能。为了实现人机交互效果,本发明预先将一交互模块注册为系统服务,外壳应用可以通过其交互接口与该交互模块通信,从而实现外壳应用对用户指令或预设指令的获取。
如前所述,事件行为策略的获取方式非常灵活多样,通过构造一策略生成装置来执行,以下列举几种为本发明所择一或任意组合使用的策略:
(1)监控单元34捕获特定事件行为后,通过外壳应用内建的交互接口,向所述交互模块发送请求,由交互模块向用户界面弹窗问询用户处理策略,该弹窗界面可以直接告知用户有关事件行为的内容及其风险,由用户选择相应的选项作为处理策略。用户选择相应选项并确定后,交互模块获得针对该特定事件行为的处理策略,将其反馈给监控单元34,监控单元34即可根据该用户指令所产生的处理策略对目标应用35的相应事件行为进行下一步的处理。
(2)在某些已被公认为相对低风险的事件行为发生时,例如对联系人的只读操作行为,或者在用户为本发明设置了自行检索针对特定事件行为所应采取的处理策略时,本发明利用一本地策略数据库检索相应的针对特定事件行为的处理策略。也就是说,该本地策略数据库中,建立了特定事件行为与相应的处理策略之间的关联,并且存储了多种事件行为与相应的处理策略之间对应关系的记录数据,可以供本发明检索使用。本发明从本地策略数据库中获取相应的处理策略后,方能对相应事件行为做下一步的处理。
(3)如果用户为本发明设置了远程获取处理策略的选项,或者默认在本地策略数据库检索不到特定事件行为的具体策略时可以远程获取,又或通过前述第(1)种情况进行交互而在规定时限内得不到用户对弹窗的响应,诸如此类的情况,外壳应用均可通过其内建的远程策略接口,向预架构的云端发送请求,获得对应于该特定事件行为的相应的处理策略,并用于后续的处理。
需要指出的是,有关以上三种获取处理策略的方式,可以交叉配合使用,例如,一旦交互模块接收到监控单元34传递的事件消息的特征,即可依照默认设置,参照第(2)种方式先行检索本地策略数据库,获得系统推荐的处理策略(如果不能从本地策略数据库中获得,甚至可以进一步按第(3)种方式从云端策略数据库中获取)。继而,参照第(1)种方式,在弹窗界面设置系统推荐的处理策略为默认选项。如果用户未在规定时限内确认该默认选项,则以系统推荐的处理策略为准执行后续指令;如果用户将之改变为新的默认选项,则向监控单元34返回用户设置的处理策略。可见,人机交互过程是可以更为灵活自由地实现的。
所述的本地策略数据库,可以是云端策略数据库的一个复件,因此,本发明中,设置一个更新步骤,用于下载云端策略数据库用于更新本地策略数据库。
一般情况下,针对特定事件行为的策略可以设置为“拒绝”、“运行”、“询问”三个常见选项,其表征的具体意向为:
拒绝:针对该特定事件行为,向目标应用35发送事件行为已经执行完毕的虚假消息,以禁止该事件行为实际发生;
运行:针对该特定事件行为不做任何改变,将相应的事件消息直接转送给系统消息机制,允许目标应用35继续其事件行为;
询问:独立或依附于前述两个选项任意之一,针对该特定事件行为,标记其状态为未知状态,后续重复发生该行为时,需要再行弹窗询问用户。
实际应用中,选项“询问”可被忽略,仅需考虑是否拒绝或允许当前事件行为发生即可。
所述的事件行为,多种多样,具体包括如下几大类型:
(1)终端、联网有关的操作:
获取运营商信息:目标应用35例如通过getSimOperatorName()函数可以获得移动终端的IMSI,由此可进一步判断运营商的名称,进一步可以向运营商发送约定指令,实现扣费之类的非法目的。监控平台通过挂钩与此相关的消息,便可以对事件行为的捕获。
切换APN操作:同理,目标应用35通过与APN切换有关的函数实现ANP切换控制的操作,也可被监控单元34通过调用相应的挂钩插件进行监控。
类似的操作,还包括获取手机识别码IME的操作,也与上述同理。
(2)通知栏广告操作:通知栏广告是最易被恶意程序利用的手段,监控单元34通过调用相应的挂钩插件对notify函数产生的事件消息进行监控,也可对其实施监控。
(3)通信操作:
如电话拔打操作,通过StartActivity()函数可以监控拔打电话的事件行为,利用相应的挂钩插件可以对拔打电话操作建立事件行为监控。
短信操作,对应于SendTextMessage()之类的函数,同理,可以借助挂钩插件对这类函数建立事件行为监控。
联系人操作:一般对应于Query()、Insert()函数,监控单元34利用挂钩插件挂钩此类函数可以实现对此类事件行为的监控捕获。
(4)命令操作:
如SU提权操作或执行命令操作,均需用到Execve()函数,监控单元34通过监控此函数的返回消息,便可实现该类事件行为的监控。
(5)界面及访问操作:
如创造快捷方式的事件行为,则对应于SentBroacast()函数。同理,对于隐藏程序图标的操作,也可对应特定函数监控之。
如HTTP网络访问操作,则对应于Sentto()、Write()等函数。
(6)程序操作:
如应用加载操作,指当前目标应用35加载相关应用的操作,通过对dexclassloader()、loadlibrary()等函数进行挂钩监控,可以实现对此类事件行为的捕获。
又如安装子包,则对应于StartActivity()函数。
(7)其它危险操作:
例如,子进程侵入操作、衍生物操作、激活设备管理器操作等,分别对应于。
其中,子进程是指目标应用35建立的子进程,在目标应用35创建子进程时,监控单元34将收到相应的消息,而判定其创建子进程的事件行为。由此,监控单元34进一步向该子进程以内联钩子的方式在该子进程中植入监控单元34,后续便可继续对该子进程的事件行为进行监控。因而,无论是目标应用35的自身进程,还是其创建的子进程,它们直接或间接所触发的事件行为,均能被本发明的监控单元34所监控,使主动防御效果更佳。
而所述衍生物,是指目标应用35自行创建的文件,或者远程下载的文件,通常是指敏感的衍生物,例如安装包。通过挂钩fclose()函数可以捕获该事件。需要指出的是,当监控单元34捕获该事件行为后,可以按照前述的方法,进一步利用远程规则库接口发送请求到云端,由云端利用其黑、白、灰的安全等级行为规则判断该衍生物的安全等级,本发明通过远程规则库接口获得云端判定结果后,进一步弹窗询问用户是否建立对该敏感衍生物的主动防御,由此便可进一步巩固主动防御的效果。
上述的事件行为仅为摘录之用,不能理解为对本发明监控的事件行为的限制。
依据上述的处理策略和上述关于事件行为的说明,本发明的主动防御方法便可对各种事件行为进行相应的处理。以下列举几种典型的应用实例:
(1)对目标应用35的精细拦截的应用:
部分恶意程序被安装后,在相当长的一段时间内处于正常使用的状态,麻痹用户的安全意识。但是,运行一段长时间之后,该目标应用35尝试从后台插入一短信引起用户的关注,达到广告和诈骗的效果。对该目标应用35建立主动防御机制后,本发明如前所述,通过监控单元34中相应的挂钩插件对短信操作函数的监控,一旦目标应用35产生短信操作的事件行为,便可捕获这一事件行为,继而,监控单元34通过其交互接口通知作为系统服务运行的交互模块,由交互模块向用户界面弹窗示警。用户点选“拒绝”的处理策略后,被逆反馈给监控单元34,其中相应的挂钩插件便能阻该事件行为的实际发生,达到防范风险的目的。
(2)对目标应用35释放恶意文件的应用。
目标应用35为一游戏软件,通过检查更新的方式下载并释放恶意子包,并且调用系统功能安装该子包。本发明对该目标应用35建立了主动防御之后,可以监控到其下载完文件而产生的事件行为,据此通过交互模块弹窗告警。用户指令拒绝之后,监控单元34中相应的挂钩插件便可直接删除该文件,或者仅仅拒绝该文件的安装行为。
本发明中,对于诸如此类的恶意子包,视为敏感衍生物,对衍生物是否存在恶意的判断,参照前述防御配置方法中所述及的确定安全等级的方式进行远程判断。具体而言,当检测到产生衍生物时,将相应的文件或者其签名之类的特征信息通过远程规则库接口发送给云端,并从云端获得其安全等级,如果为黑、灰应用,则在弹窗中建议用户拒绝安装;如果为白应用,则可允许其通行。通过这种方法,便可实现对敏感衍生物的安全防御。如果云端检测不到该衍生物的相关记录,可以要求本方法为其上传该文件,并由云端标示为未知应用,相应的,以灰应用予以标记,以备后用。
(3)对子进程侵入的应用。
被监控的目标应用35在运行过程中创建子进程,而子进程进一步释放恶意事件行为。监控单元34监控到目标应用35创建子进程时,即获得子进程的入口,然后向该子进程植入本发明的监控单元34,所有HOOK插件(挂钩插件)都会被以内联钩子的方式加载到该子进程中并初始化好实现挂钩,以便建立对该子进程的事件行为的监控。由此,可以看出,无论是由目标应用35进程直接触发的事件行为,还是由目标应用35进程所创建的子进程所触发的间接事件行为,均能被监控单元34成功监控。
由上述的分析可见,本发明的主动防御装置,相应于主动防御方法,具有高效的可行性。
为便于本领域技术人员进一步实现本发明,以下进一步揭示云端服务器与终端设备如何相互配合实现安装包安全等级判断的相关内容:
如前所述,由客户端通过远程规则库接口发送到云端服务器的特征信息,包括:Android安装包的包名,和/或,版本号,和/或,数字签名,和/或,Android组件receiver的特征,和/或,Android组件service的特征,和/或,Android组件activity的特征,和/或,可执行文件中的指令或字符串,和/或,Android安装包目录下各文件的MD5值(签名)。
实现了本发明的方法或装置的客户端,将指定的特征信息上传到服务器(云端),在服务器预置的规则库中查找与指定的单个特征信息或其组合相匹配的特征记录;其中,所述服务器预置的规则库中包含特征记录及特征记录对应的安全级别,每条特征记录中包含单个特征信息或特征信息的组合;
服务器端规则库中预置了数千条特征记录,其中,第一条特征记录中列出了某种病毒的Android安装包包名,第二条特征记录中列出了某个正常应用的Android安装包版本号及其数字签名的MD5值,第三条特征记录中列出了某个正常应用的Android安装包包名及其receiver特征,第四条特征记录中列出了某种木马的Android安装包包名、版本号及其ELF文件中的特定字符串,等等。
关于安全等级的标识,即黑,白(安全)或者灰(未知,可疑)三种标识,可以进一步的表示为:
安全:该应用是一个正常的应用,没有任何威胁用户手机安全的行为;
危险:该应用存在安全风险,有可能该应用本身就是恶意软件;也有可能该应用本来是正规公司发布的正常软件,但是因为存在安全漏洞,导致用户的隐私、手机安全受到威胁;
谨慎:该应用是一个正常的应用,但是存在一些问题,例如会让用户不小心被扣费,或者有不友好的广告遭到投诉等;当发现这类应用之后,会提示用户谨慎使用并告知该应用可能的行为,但是由用户自行决定是否清除该应用;
木马:该应用是病毒、木马或者其他恶意软件,此处为了简单统称为木马,但并不表示该应用仅仅是木马。
应当理解,云端与客户端之间的配合,可以由本领域技术人员根据本发明所揭示的内容进一步扩充、变换、增删而改善。因而,以上揭示的内容不应理解为实现本发明的方法和装置的限制。
经过测试,本发明相对于现有技术有了较宽广的应用范围和应用效果,以下略加阐述:
由于本发明已经将HOOK框架做成了服务平台,以挂钩插件的方式为终端配置监控单元34,因此,其加载仅需依赖于相应的配置文件,管理高效且易于实现,对技术人员而言,一些简单的函数调用仅需编写配置文件即可实现挂钩插件的配置,HOOK重入、并发性能高。
采用外壳应用先后实现对监控单元34和目标应用35的加载,继而借助监控单元34对目标应用35的事件行为建立监控,可以实现对Java函数、Native函数的挂钩。
本发明不仅适用于Dalvik模式,也适用于ART模式,功能表现上两者无异,使用者不需适应不同模式编写不同的代码,简化开发工作(小范围内测试Android版本号4.4.2、4.4.3、4.4.4)。
经实测,有如下数据佐证本发明的实例的优越性:
(1)本发明的开发实例,在16部手机上对107款主流应用软件(如QQ、微信,微博,手机卫士,支付类、多种团购app,各视频播放软件等)进行了稳定性深度测试,均能正常运行。
(2)本发明的开发实例,测试涵盖手机Android操作系统版本号从2.3到4.4.3。机型包括nexus4/5、7,三星,小米,华为,联想,索尼,HTC及部分山寨手机,均获得较为优异的表现。
(3)本发明的开发实例,支持加固应用,如支持360加固、网秦加固,腾讯加固、梆梆和爱加密、APKProtect等,对于以上各家厂商提供的加固应用的测试显示,本发明的实例均可正常运行。
(4)本发明的开发实例的测试效果显示,手机端生成外壳包的成功率为99.7%(基数为100W)。
综上所述,本发明所提供的主动防御技术更为安全高效。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种免ROOT主动防御配置方法,其特征在于,该方法包括以下步骤:
确定目标应用,保存其安装包至指定目录;
利用目标应用的安装包配置外壳应用安装包,向其中注入用于调用监控单元的桩模块,修改其中的配置参数以用于加载所述目标应用,所述监控单元用于实现对源自所述目标应用的事件行为的挂钩监控;
安装该外壳应用。
2.根据权利要求1所述的免ROOT主动防御配置方法,其特征在于,所述监控单元从远程插件接口获得对应于特定事件行为的挂钩插件,所述挂钩插件用于挂钩监控特定事件行为。
3.根据权利要求1所述的免ROOT主动防御配置方法,其特征在于,利用目标应用配置外壳应用的过程包括如下具体步骤:
解析目标应用安装包,生成外壳应用的镜像;
修改或替换镜像中的代码文件,以注入所述桩模块;
修改镜像中的配置文件的配置参数,用于加载指定目录中的目标应用;
对外壳应用镜像进行打包签名,完成外壳应用的封装。
4.根据权利要求1所述的免ROOT主动防御配置方法,其特征在于,所述监控单元所监控的事件行为包括以下任意一种或多种行为类型:获取运营商信息、APN操作、通知栏广告操作、获取手机识别码操作、创建快捷方式、电话拔打操作、短信操作、联系人操作、URL访问操作、子进程侵入操作、应用加载操作、命令操作、衍生物操作、激活设备管理器操作。
5.根据权利要求1至4中任意一项所述的免ROOT主动防御配置方法,其特征在于,将目标应用配置为外壳应用的过程中,还为外壳应用配置交互接口,通过该交互接口向系统服务发送捕获的事件行为。
6.一种免ROOT主动防御配置装置,其特征在于,包括:
确定装置,用于确定目标应用,保存其安装包至指定目录;
构造装置,其利用目标应用的安装包配置外壳应用安装包,向其中注入用于调用监控单元的桩模块,修改其中的配置参数以用于加载所述目标应用,所述监控单元用于实现对源自所述目标应用的事件行为的挂钩监控;
安装装置,用于安装该外壳应用。
7.根据权利要求6所述的免ROOT主动防御配置方法,其特征在于,所述监控单元,用于从远程插件接口获得对应于特定事件行为的挂钩插件,所述挂钩插件用于挂钩监控特定事件行为。
8.根据权利要求6所述的免ROOT主动防御配置方法,其特征在于,所述构造装置包括:
解析单元,用于解析目标应用安装包,生成外壳应用镜像;
代码单元,用于修改或替换镜像中的代码文件,以注入所述桩模块;
配置单元,用于修改镜像中的配置文件的配置参数,用于加载指定目录中的目标应用;
封装单元,用于对外壳应用镜像进行打包签名,完成外壳应用的封装。
9.根据权利要求6所述的免ROOT主动防御配置方法,其特征在于,所述监控单元所监控的事件行为包括以下任意一种或多种行为类型:获取运营商信息、APN操作、通知栏广告操作、获取手机识别码操作、创建快捷方式、电话拔打操作、短信操作、联系人操作、URL访问操作、子进程侵入操作、应用加载操作、命令操作、衍生物操作、激活设备管理器操作。
10.根据权利要求6至9中任意一项所述的免ROOT主动防御配置方法,其特征在于,所述外壳应用配置有交互接口,通过该交互接口向系统服务发送捕获的事件行为。
CN201410539412.2A 2014-10-13 2014-10-13 免root主动防御配置方法及装置 Active CN104239786B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410539412.2A CN104239786B (zh) 2014-10-13 2014-10-13 免root主动防御配置方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410539412.2A CN104239786B (zh) 2014-10-13 2014-10-13 免root主动防御配置方法及装置

Publications (2)

Publication Number Publication Date
CN104239786A true CN104239786A (zh) 2014-12-24
CN104239786B CN104239786B (zh) 2017-08-04

Family

ID=52227830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410539412.2A Active CN104239786B (zh) 2014-10-13 2014-10-13 免root主动防御配置方法及装置

Country Status (1)

Country Link
CN (1) CN104239786B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765607A (zh) * 2015-04-01 2015-07-08 闻泰通讯股份有限公司 免编译修改刷机包的方法
CN105550595A (zh) * 2015-12-22 2016-05-04 北京奇虎科技有限公司 用于智能通信设备的隐私数据访问方法及系统
CN105608391A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 多elf文件保护方法及系统
CN105653903A (zh) * 2015-12-18 2016-06-08 小米科技有限责任公司 应用程序权限的管理方法及装置
CN106127031A (zh) * 2016-06-23 2016-11-16 北京金山安全软件有限公司 一种保护进程的方法、装置及电子设备
CN106503570A (zh) * 2016-11-17 2017-03-15 深圳Tcl数字技术有限公司 保护Root权限的方法及装置
CN107220082A (zh) * 2017-05-18 2017-09-29 北京小米移动软件有限公司 应用程序的安装方法、装置和设备
CN107544826A (zh) * 2017-08-22 2018-01-05 网易(杭州)网络有限公司 Xposed模块加固的方法、介质、装置和计算设备
CN108154026A (zh) * 2017-12-28 2018-06-12 成都卫士通信息产业股份有限公司 基于Android系统的免Root无侵入的安全通信方法及系统
CN108229147A (zh) * 2016-12-21 2018-06-29 武汉安天信息技术有限责任公司 一种基于Android虚拟容器的内存检测装置及方法
CN109344028A (zh) * 2018-09-13 2019-02-15 西安交通大学 一种免超级用户权限的进程行为监控装置与方法
CN110380879A (zh) * 2018-04-12 2019-10-25 上海宝信软件股份有限公司 基于docker的轨道交通综合监控部署方法及系统
CN110442327A (zh) * 2018-05-03 2019-11-12 阿里巴巴集团控股有限公司 一种应用程序构建方法、装置、服务器
CN111913742A (zh) * 2018-07-03 2020-11-10 武汉斗鱼网络科技有限公司 一种程序处理方法及相关设备
CN112257067A (zh) * 2020-11-02 2021-01-22 上海小麦互动企业发展有限公司 一种基于arm云游戏木马病毒服务器检测装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286986A (zh) * 2008-05-15 2008-10-15 华为技术有限公司 一种主动防御的方法、装置及系统
US20100095281A1 (en) * 2008-10-14 2010-04-15 Riverside Research Institute Internal Function Debugger
CN102831043A (zh) * 2011-06-17 2012-12-19 阿里巴巴集团控股有限公司 应用程序监控方法和装置
CN103077332A (zh) * 2012-12-28 2013-05-01 飞天诚信科技股份有限公司 一种运行含有自校验的加壳程序的方法和装置
EP2615792A1 (en) * 2012-01-12 2013-07-17 ARXCEO Corporation Methods and Systems for Providing Network Protection by Progressive Degradation of Service
CN103886230A (zh) * 2014-02-24 2014-06-25 四川长虹电器股份有限公司 android系统的软件版权保护方法及其系统
CN104023122A (zh) * 2014-05-06 2014-09-03 可牛网络技术(北京)有限公司 安全防御方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286986A (zh) * 2008-05-15 2008-10-15 华为技术有限公司 一种主动防御的方法、装置及系统
US20100095281A1 (en) * 2008-10-14 2010-04-15 Riverside Research Institute Internal Function Debugger
CN102831043A (zh) * 2011-06-17 2012-12-19 阿里巴巴集团控股有限公司 应用程序监控方法和装置
EP2615792A1 (en) * 2012-01-12 2013-07-17 ARXCEO Corporation Methods and Systems for Providing Network Protection by Progressive Degradation of Service
CN103077332A (zh) * 2012-12-28 2013-05-01 飞天诚信科技股份有限公司 一种运行含有自校验的加壳程序的方法和装置
CN103886230A (zh) * 2014-02-24 2014-06-25 四川长虹电器股份有限公司 android系统的软件版权保护方法及其系统
CN104023122A (zh) * 2014-05-06 2014-09-03 可牛网络技术(北京)有限公司 安全防御方法及装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765607A (zh) * 2015-04-01 2015-07-08 闻泰通讯股份有限公司 免编译修改刷机包的方法
CN105608391A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 多elf文件保护方法及系统
CN105608391B (zh) * 2015-12-17 2019-02-26 北京奇虎科技有限公司 多elf文件保护方法及系统
CN105653903B (zh) * 2015-12-18 2019-10-08 小米科技有限责任公司 应用程序权限的管理方法及装置
CN105653903A (zh) * 2015-12-18 2016-06-08 小米科技有限责任公司 应用程序权限的管理方法及装置
CN105550595A (zh) * 2015-12-22 2016-05-04 北京奇虎科技有限公司 用于智能通信设备的隐私数据访问方法及系统
CN106127031A (zh) * 2016-06-23 2016-11-16 北京金山安全软件有限公司 一种保护进程的方法、装置及电子设备
CN106503570A (zh) * 2016-11-17 2017-03-15 深圳Tcl数字技术有限公司 保护Root权限的方法及装置
CN108229147B (zh) * 2016-12-21 2021-11-12 武汉安天信息技术有限责任公司 一种基于Android虚拟容器的内存检测装置及方法
CN108229147A (zh) * 2016-12-21 2018-06-29 武汉安天信息技术有限责任公司 一种基于Android虚拟容器的内存检测装置及方法
CN107220082A (zh) * 2017-05-18 2017-09-29 北京小米移动软件有限公司 应用程序的安装方法、装置和设备
CN107220082B (zh) * 2017-05-18 2021-02-26 北京小米移动软件有限公司 应用程序的安装方法、装置和设备
CN107544826B (zh) * 2017-08-22 2020-06-09 网易(杭州)网络有限公司 Xposed模块加固的方法、介质、装置和计算设备
CN107544826A (zh) * 2017-08-22 2018-01-05 网易(杭州)网络有限公司 Xposed模块加固的方法、介质、装置和计算设备
CN108154026A (zh) * 2017-12-28 2018-06-12 成都卫士通信息产业股份有限公司 基于Android系统的免Root无侵入的安全通信方法及系统
CN108154026B (zh) * 2017-12-28 2022-01-11 成都卫士通信息产业股份有限公司 基于Android系统的免Root无侵入的安全通信方法及系统
CN110380879A (zh) * 2018-04-12 2019-10-25 上海宝信软件股份有限公司 基于docker的轨道交通综合监控部署方法及系统
CN110442327A (zh) * 2018-05-03 2019-11-12 阿里巴巴集团控股有限公司 一种应用程序构建方法、装置、服务器
CN111913742A (zh) * 2018-07-03 2020-11-10 武汉斗鱼网络科技有限公司 一种程序处理方法及相关设备
CN109344028A (zh) * 2018-09-13 2019-02-15 西安交通大学 一种免超级用户权限的进程行为监控装置与方法
CN112257067A (zh) * 2020-11-02 2021-01-22 上海小麦互动企业发展有限公司 一种基于arm云游戏木马病毒服务器检测装置
CN112257067B (zh) * 2020-11-02 2023-01-06 上海小麦互动企业发展有限公司 一种基于arm云游戏木马病毒服务器检测装置

Also Published As

Publication number Publication date
CN104239786B (zh) 2017-08-04

Similar Documents

Publication Publication Date Title
CN104239786A (zh) 免root主动防御配置方法及装置
CN104408367B (zh) 应用程序配置方法与装置
CN104462879B (zh) 应用程序免Root运行控制方法与装置
CN104239797A (zh) 主动防御方法及装置
CN104375494B (zh) 安全沙箱构造方法及装置
CN104376256B (zh) 应用程序进程孵化控制方法及装置
CN105427096B (zh) 支付安全沙箱实现方法及系统与应用程序监控方法及系统
CN104376255A (zh) 应用程序运行控制方法与装置
CN104462880A (zh) 应用程序加壳配置方法与装置
CN104536981A (zh) 实现浏览器安全的方法、浏览器客户端和装置
US11106800B1 (en) Detecting kernel exploits
CN104850779A (zh) 应用程序安全安装方法及其装置
CN104881601A (zh) 悬浮窗显示设置、控制方法和装置
CN105095746A (zh) 应用程序启动鉴权方法及装置
CN104484599A (zh) 一种基于应用程序的行为处理方法和装置
CN104885092A (zh) 用于操作系统的安全系统和方法
CN104462978A (zh) 一种应用程序权限管理的方法和装置
CN105183307A (zh) 应用程序消息显示控制方法及装置
CN104462961A (zh) 移动终端及其隐私权限优化方法
CN104486086B (zh) 数字签名方法及移动终端和服务器
CN103607385A (zh) 基于浏览器进行安全检测的方法和装置
CN105631312B (zh) 恶意程序的处理方法及系统
CN104375869A (zh) 自启动应用控制方法及装置
CN107273748A (zh) 一种基于漏洞poc实现安卓系统漏洞检测的方法
CN105550584A (zh) 一种Android平台下基于RBAC的恶意程序拦截及处置方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220729

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.