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