避免进程被注入的方法和装置制造方法及图纸

技术编号:10817908 阅读:154 留言:0更新日期:2014-12-25 23:34
本发明专利技术提出一种避免进程被注入的方法和装置,该方法包括接收应用程序的启动参数;根据所述启动参数判断所述应用程序是否为需要保护的应用程序;如果是,将所述启动参数发送给预先创建的私有进程,使得所述私有进程根据所述启动参数孵化得到所述应用程序,其中,所述私有进程是未被注入的孵化载体。该方法能够提高避免进程间注入的效果。

【技术实现步骤摘要】
避免进程被注入的方法和装置
本专利技术涉及安全
,尤其涉及一种避免进程被注入的方法和装置。
技术介绍
进程注入是指一个应用程序进程将自己的模块通过调试等方式,插入到另一个应用程序进程中然后执行,这样就可以任意劫持对方应用程序的运行流程,窃取其内存数据。在Android系统中,应用程序进程都是由Zygote进程孵化(fork)的,所以注入Zygote进程是目前通用的注入方法,一旦Zygote进程被注入,之后由Zygote进程孵化的所有进程都被注入。 相关技术中,可以对被注入的Zygote进程进行修复,以避免进程间注入。但是,采用修复Zygote进程的方式,得到的效果并不理想。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。 为此,本专利技术的一个目的在于提出一种避免进程被注入的方法,该方法可以提高避免进程间注入的效果。 本专利技术的另一个目的在于提出一种避免进程被注入的装置。 为达到上述目的,本专利技术第一方面实施例提出的避免进程被注入的方法,包括:接收应用程序的启动参数;根据所述启动参数判断所述应用程序是否为需要保护的应用程序;如果是,将所述启动参数发送给预先创建的私有进程,使得所述私有进程根据所述启动参数孵化得到所述应用程序,其中,所述私有进程是未被注入的孵化载体。 本专利技术第一方面实施例提出的避免进程被注入的方法,通过在应用程序是需要保护的应用程序时,由私有进程完成该应用程序的孵化,由于私有进程是未被注入的,因此可以避免该应用程序的进程被注入,并且,本实施例采用建立私有进程的方式,而不是修复的方式,可以提高避免进程被注入的效果。 为达到上述目的,本专利技术第二方面实施例提出的避免进程被注入的装置,包括:接收模块,用于接收应用程序的启动参数;判断模块,用于根据所述启动参数判断所述应用程序是否为需要保护的应用程序;发送模块,用于在所述应用程序是需要保护的应用程序时,将所述启动参数发送给预先创建的私有进程,使得所述私有进程根据所述启动参数孵化得到所述应用程序,其中,所述私有进程是未被注入的孵化载体。 本专利技术第二方面实施例提出的避免进程被注入的装置,通过在应用程序是需要保护的应用程序时,由私有进程完成该应用程序的孵化,由于私有进程是未被注入的,因此可以避免该应用程序的进程被注入,并且,本实施例采用建立私有进程的方式,而不是修复的方式,可以提高避免进程被注入的效果。 本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。 【附图说明】 本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中: 图1是相关技术中应用程序启动的流程不意图; 图2是相关技术中进程注入的流程示意图; 图3是本专利技术一实施例提出的避免进程被注入的方法的流程示意图; 图4是本专利技术实施例中一种避免进程被注入的具体实现示意图; 图5是本专利技术另一实施例提出的避免进程被注入的方法的流程示意图; 图6是本专利技术另一实施例提出的避免进程被注入的实现装置; 图7是本专利技术另一实施例提出的避免进程被注入的实现装置。 【具体实施方式】 下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。相反,本专利技术的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。 为了更好的理解本专利技术,首先对应用程序(app)的启动流程进行描述。 以Android平台为例,参见图1,相关技术中,Android平台下,应用程序(app)的启动流程包括: Sll:启动器启动app,并将app的启动参数发送给服务线程。 启动器可以具体可以是指launcher。服务线程可以具体是指system_server进程中的 ActivityManagerService 服务线程。 S12:服务线程将app的启动参数发送给孵化载体。 其中,孵化载体可以具体是指Zygote进程。Zygote进程可以监听socket连接,月艮务进程通过socket连接将启动参数发送给Zygote进程。 S13:孵化载体完成app孵化。 其中,Zygote进程接收到启动参数后,可以解析参数并孵化相应app的进程。之后,Zygote进程可以将孵化得到的新进程的进程标识(Process Identifier, PID)等数据返回给 ActivityManagerService, ActivityManagerService 收到 PID 等数据后,在该进程内启动Activity Tread,进而完成app的启动。 相关技术中,参见图2,当Zygote进程被注入后,其孵化的应用程序的进程也被注入。 为了避免进程被注入,本专利技术给出如下实施例。 图3是本专利技术一实施例提出的避免进程被注入的方法的流程示意图,该方法包括: S31:接收应用程序的启动参数; 其中,参见图4,可以在Zygote进程和ActivityManagerService (以下简称AMS)之间设置sygote桥(sygoteBridge),在sygoteBridge中创建socket服务端,且修改AMS中的socket客户端,使得修改后的socket客户端重定向连接到sygoteBridge中创建的socket服务端。从而sygoteBridge可以接收服务线程ActivityManagerService通过socket发送的启动参数。 S32:根据所述启动参数判断所述应用程序是否为需要保护的应用程序; 其中,参见图4,安全入口设备中可以预先配置需要保护的应用程序的信息列表,该信息列表中包括:应用程序包名(app包名)和用户标识(用户ID),另外,启动参数中可以包括:app包名和用户ID, 当接收的启动参数中包含的app包名和用户ID与预先配置的需要保护的应用程序的信息列表中保存的app包名和用户ID—致时,可以判断出该应用程序是需要保护的应用程序。 S33:如果是,将所述启动参数发送给预先创建的私有进程,使得所述私有进程根据所述启动参数孵化得到所述应用程序,其中,所述私有进程是未被注入的孵化载体。 其中,私有进程可以称为Sygote进程,意为safe Zygote。Sygote进程在本质上的进程内存空间与Zygote几乎一样,它的目的在于提供一个新的干净的孵化载体,让需要保护的app由其孵化。 参见图4,当应用程序是需要保护的应用程序时,可以将启动参数发送给Sygote进程,由Sygote进程完成app孵化。 另一方面,参见图4,当启动参数对应的应用程序不是需要保护的app时,可以将启动参数发送给原有的Zygote进程,由Zygote进程完成相应孵化,此时会存在进程被注入问题。 本实施例通过在应用程序是需要保护的应用程序时,由私有进程完成该应用程序的孵化,由于私有进程是未被注入的,因此可以避免该应用程序的进程被注入,并且,本实施例采用建立私有进程的方式,而不是修复本文档来自技高网...

【技术保护点】
一种避免进程被注入的方法,其特征在于,包括:接收应用程序的启动参数;根据所述启动参数判断所述应用程序是否为需要保护的应用程序;如果是,将所述启动参数发送给预先创建的私有进程,使得所述私有进程根据所述启动参数孵化得到所述应用程序,其中,所述私有进程是未被注入的孵化载体。

【技术特征摘要】
1.一种避免进程被注入的方法,其特征在于,包括: 接收应用程序的启动参数; 根据所述启动参数判断所述应用程序是否为需要保护的应用程序; 如果是,将所述启动参数发送给预先创建的私有进程,使得所述私有进程根据所述启动参数孵化得到所述应用程序,其中,所述私有进程是未被注入的孵化载体。2.根据权利要求1所述的方法,其特征在于,还包括: 对应原有的孵化载体,创建新的进程,将所述新的进程确定为所述私有进程。3.根据权利要求2所述的方法,其特征在于,所述方法应用在android平台,所述原有的孵化载体是zygote进程,所述对应原有的孵化载体,创建新的进程,将所述新的进程确定为所述私有进程,包括: 创建新的zygote进程,将所述新的zygote进程确定为所述私有进程。4.根据权利要求2所述的方法,其特征在于,还包括: 创建所述私有进程的守护进程,所述守护进程用于避免所述私有进程被注入。5.根据权利要求4所述的方法,其特征在于,所述创建所述私有进程的守护进程之后,所述方法包括: 采用所述守护进程调试所述私有进程。6.根据权利要求1所述的方法,其特征在于,所述启动参数中包含应用程序包名和用户标识,所述根据所述启动参数判断所述应用程序是否为需要保护的应用程序,包括: 获取预先保存的需要保护的应用程序的信息列表,所述信息列表中记录应用程序包名和对应的用户标识; 判断所述启动参数中包含的应用程序包名和用户标识,是否属于预先保存的所述信息列表; 如果属于,判断出所述应用程序是需要保护...

【专利技术属性】
技术研发人员:周荣誉张宇平
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1