基于hook的iOS系统关键行为检测装置和方法
【专利摘要】一种基于hook的苹果操作系统iOS关键行为检测装置和方法,该检测装置是通过hook关键行为的应用程序编程接口API实时捕获iOS系统的关键行为,用于监控苹果终端iOS系统的设定关键行为,获取与该关键行为相关的信息,并在服务端实时展示给用户,或者保存为结果报表,以供用户进行审核与评估;该装置是由分别设置在iOS终端层的行为追踪模块,以及位于PC设备层、顺序连接的用户接口模块、安全风险报告模块和行为分析模块共四个部件组成的。本发明检测装置的创新优点是:系统关键行为检测的实时性和全面性,能够检测多种系统关键行为,还具有很好的扩充能力,既支持多操作系统,又能提供多种不同的检测报告,方便查阅和分析。
【专利说明】基于hook的1S系统关键行为检测装置和方法
【技术领域】
[0001]本发明涉及一种检测苹果手机操作系统1S关键行为的技术,确切地说,涉及一种基于钩子hook的1S系统关键行为检测装置和方法,属于信息安全中的软件安全的【技术领域】。
【背景技术】
[0002]目前,基于hook的1S关键行为检测工具很少。现有技术的开源软件也只包括:Introspy0下面对Instrospy-1OS进行简介:它是一款1S上用于动态检测软件行为、评估软件安全的工具。该工具分为两部分:行为追踪器和行为分析器。其中,行为追踪器安装在1S终端中,通过hook关键行为的应用程序编程接口 API (Applicat1n ProgrammingInterface)来获取指定软件的关键行为,这些API包括:加解密、IPC、数据存储和网络连接等。最后将这些函数调用的信息记录并永久保存在数据库中。行为分析器是安装在PC设备中,是以行为追踪器生成的数据库文件作为输入,进行分析处理后,在本地生成指定格式(如xml、html)的结果报表,并在结果报表中,罗列出该指定软件执行过程中执行的所有关键行为。
[0003]现在,有关1S系统关键行为检测领域,国内外的科研人员开展的研究都很少,成型的检测装置更是凤毛麟角。目前,1S系统关键行为检测方法只有一种:敏感文件监测。该敏感文件监测的基本思路是读取数据库中的敏感文件并进行匹配。由于1S系统中的所有敏感文件数据库都是sql ite数据库,可以像访问普通数据文件一样访问它。所以,敏感文件监测的通常操作步骤是:首先读取敏感文件数据库的内容(如短信数据库),然后每隔设定一段时间,重新读取该敏感文件数据库,并将所读取的内容与以前的读取内容或结果进行匹配,得到最新的文件修改,判断是否触发了敏感行为。
[0004]目前,仅有的1S系统关键行为检测方法都是以监控文件操作为主,虽然也能捕获到系统的关键行为,但是,其局限性还是比较大。比如:
[0005](I)检测的实时性不强:基于监控文件的系统关键行为检测是目前1S系统关键行为检测使用的最普遍的方法。其主要思路就是不断比较敏感文件中的内容,用于判断系统的关键行为。
[0006]例如:通过不断读取/private/var/mobile/Library/SMS/目录下的 sms.db 文件,判断是否有写入的新数据。若有,则认为触发了系统发送、接收了短信。但是,这种方法不具有实时性,无法在短信发送、接受之后,就立即检测到结果。
[0007](2)成本高、效率低:因为读取敏感文件要涉及到读文件、匹配文件等多项操作,时间成本与其他成本太高。如果文件很大,则大大降低了检测的效率。
[0008]目前,1S平台上恶意软件不少,例如:2012年Kaspersky Lab发现了一款名叫Find&Call的恶意应用,它能够在用户无法察觉的情况下,将用户通讯录和短信内容发送至指定的服务器。2014年Stefan Esser发现了 unf1d恶意插件,它能够获得用户的应用标识appID (applicat1n identificat1n)和密码,并将其发送给指定服务器。这些恶意软件都能在用户不知情的情况下,触发系统的关键行为,如:偷偷发送短信、联网或拨打电话等,给用户隐私和财产安全造成了很大的威胁。因此,国内外的业内科技人员都在关注动态检测软件运行时,是否触发苹果操作系统1S的关键行为的检测技术。
【发明内容】
[0009]有鉴于此,本发明的目的是提供一种基于hook的1S系统关键行为检测装置和方法,本发明可以实时监测电话、短信、联网、地理位置等系统关键行为,它是通过hook技术拦截所有系统关键行为触发的函数,获得关键行为的相关信息,并发送给服务器,再将检测出来的系统安全风险向用户报告。
[0010]为了达到上述目的,本发明提供了一种基于hook的苹果操作系统1S关键行为检测装置,其特征在于:所述装置是通过hook关键行为的应用程序编程接口API (Applicat1n Programming Interface)实时捕获1S系统的关键行为,用于监控苹果终端1S系统的设定关键行为,获取与该关键行为相关的信息,并在服务端实时展示给用户,或者保存为结果报表,以供用户进行审核与评估;该装置是由分别设置在1S终端层的行为追踪模块,以及位于PC设备层、顺序连接的用户接口模块、安全风险报告模块和行为分析模块共四个部件组成;其中:
[0011]行为追踪模块,用于实时检测设定苹果终端1S系统的设定关键行为:先接收由行为分析模块的通信单元发来的开始检测信号,并由该行为追踪模块中的hook单元实时捕获设定1S终端1S系统的设定关键行为API,获取这些API的参数和返回值,再按照设定格式封装这些信息后,通过网络套接字socket通信将已封装的信息返回给行为分析模块进行处理;
[0012]用户接口模块,负责与用户交互信息:一方面接受用户检测1S系统设定关键行为的请求,然后给行为分析模块发送开始信号和待检测的关键行为类型;另一方面接收安全风险报告模块返回的系统关键行为信息,并向用户展示;
[0013]行为分析模块,用于接收并解析来自苹果终端传送来的关键行为信息:该模块的通信单元接收到来自用户接口模块的检测类型后,就将开始检测信号发送给行为追踪模块,并将接收到的行为追踪模块的返回信息,转发给数据分析单元处理;数据分析单元先对接收到的返回信息进行“解封装”处理,得到处理结果后,将该处理结果传送给安全分析单元进行后续分析后,再转发给安全风险报告模块;
[0014]安全风险报告模块,负责根据行为分析模块的分析处理结果,将发现的1S系统关键行为信息整合成一张包括xml和html设定格式的结果报表,存储在本地,以供用户审核与分析;同时将发现的系统关键行为信息传送给用户接口模块,以供展示给用户。
[0015]为了达到上述目的,本发明还提供了一种基于hook的1S系统关键行为检测装置的检测方法,其特征在于:所述方法包括下列操作步骤:
[0016]步骤1,PC终端层设置检测参数和检测范围:用户在PC终端设置需要检测的苹果终端的ip地址与端口号及其关键行为后,该检测装置开始启动工作;
[0017]步骤2,1S终端层的行为追踪模块利用hook技术检测和提取各个敏感的应用程序编程接口 API (Applicat1n Programming Interface)的参数和返回值,发送给PC设备层的行为分析模块;
[0018]步骤3,PC设备层的行为分析模块接收到各个敏感API的参数和返回值后,进行分类处理分析;
[0019]步骤4,行为分析模块中的安全分析单元完成关键行为的安全分析后,将分析结果传送给安全风险报告模块,并存储于设定格式的本地文件中;同时将分析结果传送给用户接口模块,根据不同的关键行为,分别展示在不同的界面上。
[0020]本发明基于hook技术的1S系统关键行为检测装置,能够监控苹果终端上的设定1S系统关键行为,获取与该关键行为的相关信息,并在服务端实时地展示给用户,或者保存为报表,提交给用户进行审核与评估。其创新优点如下:
[0021](A)系统关键行为检测的实时性:由于该装置的检测机理是基于hook机制,与其他检测装置相比,该装置最大的优点是实时性好。例如:只要系统的短信行为一旦被触发,本发明检测装置就能立即检测到该行为,并获取到收件人、发件人和信息内容。比起直接监控短信数据库,该检测装置的效率更高,具有很强的实时性。
[0022](B)系统关键行为检测的全面性:无论第三方软件如何伪装,最终其要执行系统关键行为时,都得调用系统原生的API。本发明检测装置中的所有hook的API都是系统原生API,比起其他检测装置,本发明装置检测的范围更加深入,保证了系统关键行为检测的全面性。
[0023](C)多种系统关键行为的检测及扩充能力:目前,其他工具只能支持特定的行为,例如inst1spy只能检测文件操作、http联网等。本发明检测装置是基于hook对苹果操作系统1S关键行为实施监控。然而hook又是基于MobileSubstrate框架,只要确定了关键行为触发的API后,MobileHooker就能捕获该1S系统关键行为,就能够根据用户需求增加对应的API,从而增加更多的1S系统关键行为的检测支持。目前,本发明已经能够支持5类以上的系统关键行为的检测,尤其是对电话短信系统行为的检测,是目前其他工具都无法实现的。该装置还能够不断添加新的系统关键行为作为检测目标。
[0024](D)支持多操作系统:相对其他软件安全工具,本发明检测装置能够支持苹果终端i0S6以上的所有系统关键行为实施实时检测。
[0025](E)检测报告多样性:本发明检测装置可以在对1S系统关键行为检测后,分别自动生成html格式和xml格式的检测报告,易于分类记录管理;并且,可在需要的时候生成检测结果的综合报告,方便综合查阅、分析。
[0026]总之,本发明具有很好的推广应用前景。
【专利附图】
【附图说明】
[0027]图1是本发明基于hook的苹果操作系统1S关键行为检测装置的结构组成图。
[0028]图2是本发明基于hook的苹果操作系统1S关键行为检测装置的检测方法操作步骤流程图。
[0029]图3是本发明1S关键行为检测装置中的行为追踪模块操作步骤流程图。
[0030]图4是本发明1S关键行为检测装置中的行为分析模块操作步骤流程图。
[0031]图5是本发明1S关键行为检测装置实施例中的操作步骤流程图。
【具体实施方式】
[0032]为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细描述。
[0033]本发明基于hook的1S系统关键行为检测装置,是通过hook关键行为的应用程序编程接口 API实时捕获到1S系统的关键行为,用于监控苹果终端1S系统的设定关键行为,并提取出和该关键行为相关的信息,再发送给PC前台服务端,实时展示给用户,或者生成结果报表,以供用户进行审核与分析。
[0034]目前,本发明检测装置支持检测的1S系统的设定关键行为如下表所示:
[0035]
【权利要求】
1.一种基于hook的苹果操作系统1S关键行为检测装置,其特征在于:所述装置是通过hook关键行为的应用程序编程接口 API (Applicat1n Programming Interface)实时捕获1S系统的关键行为,用于监控苹果终端1S系统的设定关键行为,获取与该关键行为相关的信息,并在服务端实时展示给用户,或者保存为结果报表,以供用户进行审核与评估;该装置是由分别设置在1S终端层的行为追踪模块,以及位于PC设备层、顺序连接的用户接口模块、安全风险报告模块和行为分析模块共四个部件组成;其中: 行为追踪模块,用于实时检测设定苹果终端1S系统的设定关键行为:先接收由行为分析模块的通信单元发来的开始检测信号,并由该行为追踪模块中的hook单元实时捕获设定苹果终端1S系统的设定关键行为API,获取这些API的参数和返回值,再按照设定格式封装这些信息后,通过网络套接字socket通信将已封装的信息返回给行为分析模块进行处理; 用户接口模块,负责与用户交互信息:一方面接受用户检测1S系统设定关键行为的请求,然后给行为分析模块发送开始信号和待检测的关键行为类型;另一方面接收安全风险报告模块返回的系统关键行为信息,并向用户展示; 行为分析模块,用于接收并解析来自苹果终端传送来的关键行为信息:该模块的通信单元接收到来自用户接口模块的检测类型后,就将开始检测信号发送给行为追踪模块,并将接收到的行为追踪模块的返回信息,转发给数据分析单元处理;数据分析单元先对接收到的返回信息进行“解封装”处理,得到处理结果后,将该处理结果传送给安全分析单元进行后续分析后,再转发给安全风险报告模块; 安全风险报告模块,负责根据行为分析模块的分析处理结果,将发现的1S系统关键行为信息整合成一张包括xml和html设定格式的结果报表,存储在本地,以供用户审核与分析;同时将发现的系统关键行为信息传送给用户接口模块,以供展示给用户。
2.根据权利要求1所述的装置,其特征在于:所述装置支持检测的1S系统的设定关键行为包括:电话、短信、网络连接、通讯录访问,相册访问,地理位置访问,蓝牙状态。
3.根据权利要求2所述的装置,其特征在于:所述各个设定关键行为中的信息内容是:电话信息是通话双方号码、状态和通话时长,短信信息是短信收发双方号码及其短信内容,网络连接信息是网页地址URL(UniformResourceLocator)字段和连接时间,地理位置信息是访问地理位置的应用名称和访问时间,通讯录访问信息是访问通讯录的应用名称和访问时间,相册访问信息是访问相册的应用名称和访问时间,蓝牙状态信息是蓝牙是否改变状态或改变蓝牙状态的应用、以及其改变时间。
4.一种基于hook的1S系统关键行为检测装置的检测方法,其特征在于:所述方法包括下列操作步骤: 步骤1,PC终端层设置检测参数和检测范围:用户在PC终端设置需要检测的苹果终端的ip地址与端口号及其关键行为后,该检测装置开始启动工作; 步骤2,1S终端层的行为追踪模块利用hook技术检测和提取各个敏感的应用程序编程接口 API (Applicat1n Programming Interface)的参数和返回值,发送给PC设备层的行为分析模块; 步骤3,PC设备层的行为分析模块接收到各个敏感API的参数和返回值后,进行分类处理分析; 步骤4,行为分析模块中的安全分析单元完成关键行为的安全分析后,将分析结果传送给安全风险报告模块,并存储于设定格式的本地文件中;同时将分析结果传送给用户接口模块,根据不同的关键行为,分别展示在不同的界面上。
5.根据权利要求4所述的方法,其特征在于:所述步骤I中、设置需要检测的该苹果终端的1S系统关键行为包括:电话、短信、网络连接、通讯录访问,相册访问,地理位置访问和蓝牙状态;其中,电话信息是通话双方号码、状态和通话时长,短信信息是短信收发双方号码及其短信内容,网络连接信息是网页地址URL(UniformResourceLocator)字段和连接时间,地理位置信息是访问地理位置的应用名称和访问时间,通讯录访问信息是访问通讯录的应用名称和访问时间,相册访问信息是访问相册的应用名称和访问时间,蓝牙状态信息是蓝牙是否改变状态或改变蓝牙状态的应用、以及其改变时间。
6.根据权利要求4所述的方法,其特征在于:所述步骤2包括下列操作内容: (21)行为追踪模块根据步骤I设置的关键行为,将其写入到/Library/MobileSubstrate/DynamicLibraries/目录下的配置文件中,用于指定动态链接库的作用范围; (22)行为追踪模块利用MobileSubstrate框架里的MobileLoader,将自行编写的动态链接库注入到设定程序,以便在启动这些设定程序时,动态链接库也同时被载入内存; (23)当关键行为所对应的API触发后,MobiIeSubstrate框架中的MobileHooker使用自行编写的函数去替换原来的API ; (24)在这些用于替换的函数中,采用关键词匹配的方法提取每个关键行为的API参数和返回值,并将这些参数和返回值传送给数据处理单元; (25)数据处理单元根据不同的关键行为,采用相应的不同方法从这些参数和返回值中提取与关键行为相关的信息; (26)数据处理单元根据不同类型分别采用相应的不同数据封装方法,将封装好的数据发送给通信单元; (27)通信单元采用socket通信将行为追踪模块封装好的数据发送给行为分析模块。
7.根据权利要求4所述的方法,其特征在于:所述步骤3包括下列操作内容: (31)行为分析模块的通信单元接收到行为追踪模块检测到的各个敏感API的参数和返回值,传送给数据分析单元; (32)数据分析单元首先解封装,得到各个1S系统关键行为的详细信息后,再将其传送给安全分析单元; (33)安全分析单元根据设定规则中配置的1S系统关键行为对检测结果进行分析处理:所述的每种1S系统关键行为分别对应一个安全分析单元,再由该关键行为归属的安全分析单元进行相应处理。
【文档编号】G06F21/50GK104182681SQ201410429756
【公开日】2014年12月3日 申请日期:2014年8月28日 优先权日:2014年8月28日
【发明者】张淼, 徐国爱 申请人:北京软安科技有限公司