CN112906000B - 一种程序访问方法、装置、设备及可读存储介质 - Google Patents

一种程序访问方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN112906000B
CN112906000B CN202110234206.0A CN202110234206A CN112906000B CN 112906000 B CN112906000 B CN 112906000B CN 202110234206 A CN202110234206 A CN 202110234206A CN 112906000 B CN112906000 B CN 112906000B
Authority
CN
China
Prior art keywords
callback
search
feature
security service
configuration information
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.)
Active
Application number
CN202110234206.0A
Other languages
English (en)
Other versions
CN112906000A (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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202110234206.0A priority Critical patent/CN112906000B/zh
Publication of CN112906000A publication Critical patent/CN112906000A/zh
Application granted granted Critical
Publication of CN112906000B publication Critical patent/CN112906000B/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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/032Protect output to user by software means

Landscapes

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

Abstract

本申请公开了一种程序访问方法、装置、设备及可读存储介质,该方法包括:利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;配置文件包括用于检测回调函数是否存在的配置信息;当检测到回调函数不存在时,则通知上层服务进程,以便上层服务进程通知托盘程序,从而退出终端数据防泄密设备。相较于特征硬编码方式,本方法在安全服务的特征本身以及特征所在位置发生变化的情况下,仅对配置文件中的配置信息进行修改即可,无需修改驱动代码,可减少开发工作量、避免因修改驱动代码而影响系统稳定性。

Description

一种程序访问方法、装置、设备及可读存储介质
技术领域
本申请涉及信息安全技术领域,特别是涉及一种程序访问方法、装置、设备及可读存储介质。
背景技术
诸如进程创建回调,模块加载回调,注册表回调,文件过滤技术,网络过滤技术等常用的驱动级安全服务,大都是公开的技术。并且,常用的很多工具都能检测并移除这些安全服务,从而导致安全功能失效。例如,安全技术检测工具PCHunter,YDArk,可以枚举出系统中安全服务对应驱动程序注册的相关回调,并且可以进行移除,从而导致安全服务失效。对于防泄密的安全产品/系统而言,安全服务异常(如被异常或更改),可能会导致关键数据泄密。因此,检测安全服务是否异常,是保障安全产品/系统稳定性的重要保障。
在安全检测工具中,检测驱动通过特征硬编码的方式搜索安全服务,以检测安全服务是否异常。但是,在不同系统中用以检测安全服务是否异常的特征本身,以及特征所在的位置都可能发生变化,特别是新旧版本之间,该特征本身和特征所在位置一般都会有所变化。因此,每次新版本发布后,特别是安全服务的特征本身以及特征所在位置发生变化的情况下,需要改动检测驱动程序的代码。由于驱动程序的特殊性,即一旦出现异常就会导致系统崩溃,而频繁改动驱动程序会带来开发工作量,同时带来风险,降低系统的稳定性。
综上所述,如何有效地解决安全服务程序访问等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种程序访问方法、装置、设备及可读存储介质,将用于检测安全服务的回调函数是否存在的配置信息写入到配置文件中,在安全服务进行异常检测时,直接基于配置文件加载配置信息,而后便可基于配置信息完成安全服务的异常检测。相较于特征硬编码方式,在安全服务的特征本身以及特征所在位置发生变化的情况下,仅对配置文件进行修改即可,无需修改驱动代码,可减少开发工作量、避免因修改驱动代码而影响系统稳定性。
为解决上述技术问题,本申请提供如下技术方案:
一方面,本申请提供了一种程序访问方法,应用于终端数据防泄密设备中,包括:
利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;所述配置文件包括用于检测所述回调函数是否存在的配置信息;
当检测到所述回调函数不存在时,则通知上层服务进程,以便所述上层服务进程通知托盘程序,从而退出所述终端数据防泄密设备。
可选地,所述利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测,包括:
从所述配置文件中,获取所述配置信息;所述配置信息包括搜索入口点、搜索信息和特征信息;
从所述搜索入口点,利用所述搜索信息对所述目标安全服务进行搜索,得到特征数据;
在所述特征数据与所述特征信息不匹配的情况下,确定所述回调函数不存在。
可选地,所述搜索信息包括搜索模块、搜索导出函数、搜索特征和遍历层数;所述从所述搜索入口点,利用所述搜索信息对所述目标安全服务进行搜索,得到特征数据,包括:
从所述搜索入口点,按照所述搜索导出函数,对所述搜索模块进行搜索,直到达到所述遍历层数,得到与所述搜索特征对应的所述特征数据。
可选地,所述特征信息包括回调特征,在所述特征数据与所述特征信息不匹配的情况下,确定所述回调函数不存在,包括:
若所述特征数据与所述回调特征不匹配,则确定与所述回调特征对应的所述回调函数不存在;
若所述特征数据与所述回调特征匹配,则确定所述回调函数存在;
在所述回调函数不存在的情况下,确定所述目标安全服务被移除。
可选地,从所述配置文件中,获取所述配置信息,包括:
从待检测的驱动安全服务中确定出所述目标安全服务;
从所述配置文件中,读取所述目标安全服务的所述配置信息。
可选地,从所述配置文件中,获取所述配置信息,包括:
在检测到开始检测事件的情况下,从所述配置文件中获取所述配置信息。
可选地,还包括:
在所述目标安全服务的版本更新的情况下,获取新版本所对应的新配置信息;
利用所述新配置信息,更新所述配置文件中的所述配置信息。
另一方面,本申请还提供了一种程序访问装置,应用于终端数据防泄密设备中,包括:
检测模块,用于利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;所述配置文件包括用于检测所述回调函数是否存在的配置信息;
退出处理模块,用于当检测到所述回调函数不存在时,则通知上层服务进程,以便所述上层服务进程通知托盘程序,从而退出所述终端数据防泄密设备。
另一方面,本申请还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述程序访问方法的步骤。
另一方面,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述程序访问方法的步骤。
在终端数据防泄密设备中应用本申请实施例所提供的方法,包括:利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;配置文件包括用于检测回调函数是否存在的配置信息;当检测到回调函数不存在时,则通知上层服务进程,以便上层服务进程通知托盘程序,从而退出终端数据防泄密设备。
在本方法中,将用于检测安全服务的回调函数是否存在的配置信息写入配置文件中。在安全服务进行异常检测时,直接基于配置文件加载配置信息,而后便可基于配置信息完成安全服务的异常检测。由于在本方法中,将安全服务回调函数异常检测所需的配置信息直接写入配置文件中,而非驱动程序。因而,相较于特征硬编码方式,本方法在安全服务的特征本身以及特征所在位置发生变化的情况下,仅对配置文件中的配置信息进行修改即可,无需修改驱动代码,可减少开发工作量、避免因修改驱动代码而影响系统稳定性。
相应地,本申请实施例还提供了与上述程序访问方法相对应的程序访问装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种程序访问方法的实施流程图;
图2为本申请实施例中一种程序访问方法的具体实施流程图;
图3为本申请实施例中一种终端数据防泄密设备的场景应用图;
图4为本申请实施例中一种程序访问流程示意图;
图5为本申请实施例中一种程序访问装置的结构示意图;
图6为本申请实施例中一种电子设备的结构示意图;
图7为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例所提供的程序访问方法,可以应用在运载终端数据防泄密产品(UEM产品)/系统/应用的终端数据防泄密设备中。也就是说,该方法可以被任意一种需要进行数据防泄密保护的终端上,如客户终端、服务器端等中的检测驱动中。从配置文件中加载配置信息,基于配置信息对安全服务进行异常检测,当检测驱动检测到相关安全服务的异常时,则通知上层服务进程,上层服务进程通知托盘程序,从而退出UEM产品,从而保证用户的数据安全。
举例说明:请参考图3,图3为本申请实施例中一种终端数据防泄密设备的场景应用图。即,该程序访问方法可以被运行于客户端(如PC端)或服务器端,从而实现对指定数据进行防泄密保护。
请参考图1,图1为本申请实施例中一种程序访问方法的流程图,该方法包括以下步骤:
S100、利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测。
其中,配置文件包括用于检测回调函数是否存在的配置信息。
具体的,请参考图2,步骤S100可以具体包括:
S101、从配置文件中,获取配置信息。
其中,配置信息包括搜索入口点、搜索信息和特征信息。
其中,目标安全服务即为需要被检查其是否出现异常的安全服务。安全服务即为对保障用户安全的技术。该安全服务可以为场景的安全服务中的任意一种。具体的,该目标安全服务可以为以下安全服务中的任意一种:
进程创建回调即系统提供的一种进程管理机制,第三方驱动程序通过系统提供的注册接口,向系统注册进程创建回调,当系统中某个进程开始创建时,系统就会调用第三方驱动程序注册的回调函数,第三方驱动程序就会收到进程创建的通知,从而做出相应的处理。系统支持注册多个进程创建回调,系统通过数组的方式存储管理这些进程创建回调。
模块加载回调为系统提供的一种模块加载管理机制,第三方驱动程序通过系统提供的注册接口,向系统注册模块加载回调,当系统中某个进程开始加载某个模块时,系统就会调用第三方驱动程序注册的回调函数,第三方驱动程序就会收到模块加载的通知,从而做出相应的处理。系统支持注册多个模块加载回调,系统通过数组的方式存储管理这些模块加载回调。
注册表回调为系统提供的一种注册表操作管理机制,第三方驱动程序通过系统提供的注册接口,向系统注册注册表操作回调,当系统中某个进程开始操作某个注册表时,系统就会调用第三方驱动程序注册的回调函数,第三方驱动程序就会收到注册表操作的通知,从而做出相应的处理。系统支持注册多个注册表回调,系统通过链表的方式存储管理这些注册表回调。
文件过滤技术(如MiniFilter)为系统提供的一种文件操作管理机制,第三方驱动程序通过系统提供的注册接口,向系统注册文件操作管理回调,当系统中某个进程开始操作某个文件时,系统就会调用第三方驱动程序注册的回调函数,第三方驱动程序就会收到文件操作的通知,从而做出相应的处理。系统支持注册多个文件过滤MiniFilter回调,系统通过关键数据结构的数组方式存储管理这些文件过滤MiniFilter回调。
网络过滤技术(WFP)为系统提供的一种网络操作管理机制,第三方驱动程序通过系统提供的注册接口,向系统注册网络操作管理回调,当系统中某个进程开始进行某个网络操作时,系统就会调用第三方驱动程序注册的回调函数,第三方驱动程序就会收到网络操作的通知,从而做出相应的处理。系统支持注册多个网络过滤WFP回调,系统通过关键数据结构的数组方式存储管理这些网络过滤WFP回调。
为避免直接将检索安全服务的相关信息直接写入检测驱动,从而引发驱动异常,开发人员工作量以及诱发系统异常等问题,在本申请中,将检测目标安全服务的配置信息,即搜索入口点、搜索信息和特征信息均写入到配置文件,因此通过从配置文件中读取信息,便可完成目标安全服务的配置信息加载。
具体的,在从配置文件中,获取目标安全服务的配置信息,具体包括:
步骤一、从待检测的驱动安全服务中确定出目标安全服务;
步骤二、从配置文件中,读取目标安全服务的配置信息。
其中,驱动安全服务一旦异常,则可能会严重影响系统安全,因此,可具体将驱动安全服务确定为待检查的目标安全服务。
在本实施例中,可针对多个驱动安全服务进行异常检测,因而在从配置文件中加载配置信息之前,可从待检测的驱动安全服务中确定出该目标安全服务。具体的,可采用随机的方式中待检测的驱动安全服务中确定出目标安全服务,也可以按照特定顺序从待检测的驱动安全服务中确定出目标安全服务。确定出目标安全服务之后,便可从配置文件中读取该目标安全服务的配置信息。
其中,搜索入口点即确定从何处开始进行搜索,搜索信息即指明如何进行搜索,而特征信息即该目标安全服务的特征内容。
特别地,对于不同的安全服务,其所对应的配置信息不同。例如,不同的安全服务所对应的搜索入口点不同,不同的安全服务对应的搜索信息也不同。例如,进程创建回调的搜索入口点为PsSetCreateProcessNotifyRoutine,根据特征搜索_PspCreateProcessNotifyRoutine数组所在的位置;
模块加载回调的搜索入口点为PsSetLoadImageNotifyRoutineEx,根据特征搜索PspLoadImageNotifyRoutine数组所在的位置;
模块加载回调的搜索入口点为CmRegisterCallbackEx,根据特征搜索CallbackListHead数组所在的位置;
文件过滤MiniFilter回调的搜索入口点为FltEnumerateFilters,根据特征搜索FLT_OPERATION_REGISTRATION数组所在的位置。
S102、从搜索入口点,利用搜索信息对目标安全服务进行搜索,得到特征数据。
在对目标安全服务进行异常检测,即从加载得到的搜索入口点,利用该搜索信息对目标安全服务搜索,将搜索得到的数据确定为特征数据。具体的,该特征数据可以为搜索到的该目标安全服务的特征值等信息。
S103、在特征数据与特征信息不匹配的情况下,确定回调函数不存在。
在得到特征数据之后,便可将特征数据与特征信息进行匹配检测,从而基于检测结果确定回调函数是否存在。
具体的,特征数据具体为特征值,特征信息具体为特征值,比对两种特征值是否一致,若一致,则表明特征数据与特征信息匹配,确定目标安全服务的回调函数正常存在;反之,则确定目标安全服务的回调函数不存在。
S200、当检测到回调函数不存在时,则通知上层服务进程,以便上层服务进程通知托盘程序,从而退出终端数据防泄密设备。
为了确保被保护的终端数据安全,在确定目标安全服务异常之后,还可以注销/退出目标安全服务所属的产品系统。也就是说,在发现目标安全服务异常的情况下,直接将目标安全服务所保护的产品系统注销/退出。如此,便可从物理上隔断可能存在的数据泄露问题。当然,在实际应用中,还可提示用户环境异常,以便用户了解相关情况。
应用本申请实施例所提供的方法,在终端数据防泄密设备中应用本申请实施例所提供的方法,包括:利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;配置文件包括用于检测回调函数是否存在的配置信息;当检测到回调函数不存在时,则通知上层服务进程,以便上层服务进程通知托盘程序,从而退出终端数据防泄密设备。
在本方法中,将用于检测安全服务的回调函数是否存在的配置信息写入配置文件中。在安全服务进行异常检测时,直接基于配置文件加载配置信息,而后便可基于配置信息完成安全服务的异常检测。由于在本方法中,将安全服务回调函数异常检测所需的配置信息直接写入配置文件中,而非驱动程序。因而,相较于特征硬编码方式,本方法在安全服务的特征本身以及特征所在位置发生变化的情况下,仅对配置文件中的配置信息进行修改即可,无需修改驱动代码,可减少开发工作量、避免因修改驱动代码而影响系统稳定性。
需要说明的是,基于上述实施例,本申请实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
在本申请的一种具体实施方式中,搜索信息包括搜索模块、搜索导出函数、搜索特征和遍历层数;从搜索入口点,上述步骤S102利用搜索信息对目标安全服务进行搜索,得到特征数据,具体包括:从搜索入口点,按照搜索导出函数,对搜索模块进行搜索,直到达到遍历层数,得到与搜索特征对应的特征数据。
也就是说,在搜索信息中可直接注明对目标安全服务所需进行的搜索工作的具体实施细节,即搜索模块、搜索导出函数、搜索特征和遍历层数。如此,在对目标安全服务进行搜索时,则可直接从搜索入口点,利用搜索导出函数对搜索模块进行搜索,直到达到该遍历层数,从而获得与搜索特征对应的特征数据。需要注意的是,不同的安全服务对应不同的搜索信息,即需要对那个安全服务进行异常检测,则按照哪个安全服务对应的搜索信息进行搜索。即,通过在配置文件中注明目标安全服务的具体搜索信息,则在对目标安全服务进行异常检测时,直接按照该搜索信息进行即可完成搜索。
在本申请的一种具体实施方式中,特征信息包括回调特征,上述步骤S103在特征数据与特征信息不匹配的情况下,确定回调函数不存在,具体包括:
步骤一、若特征数据与回调特征不匹配,则确定与回调特征对应的回调函数不存在;
步骤二、若特征数据与回调特征匹配,则确定回调函数存在;
步骤三、在回调函数不存在的情况下,确定目标安全服务被移除。
也就是说,当特征信息中具体包括了回调特征的情况下,可通过判断特征数据与回调特征的匹配关系,进而确定出回调函数是否存在,如果回调函数存在,则确定目标安全服务未被移除,若回调函数不存在,则确定目标安全服务被移除。即,当特征信息中具体包括回调特征的情况下,可以确定出目标安全服务异常,以及异常原因为目标安全服务被移除,有利于后续为目标安全服务进行故障排除处理。
在本申请的一种具体实施方式中,为了使得安全服务异常检测可控,还可设置相关事件,从而控制安全服务异常检测流程。即上述步骤S101从配置文件中,获取目标安全服务的配置信息,可具体包括:在检测到开始检测事件的情况下,从配置文件中获取配置信息。也就是说,在检查到开始检测事件的情况下,加载配置信息,进而进行异常检测。即,使得异常检测可通过开始检测事件实现启动控制。当然,在实际应用中,还可设置检测结束事件,从而通过检测结束事件实现结束可控。
具体的,请参考图4,图4为本申请实施例中一种程序访问流程示意图。检测驱动进行初始化,配置管理初始化,创建出相关事件(如开始检测事件和线程停止事件、退出事件),创建检测线程并启动。检测线程对开始检测事件和检测结束事件进行检测,直到等到事件授信。若等到的事件类型为线程停止事件,则直接退出线程;若等到的事件类型为开始检测事件,则开始进行安全服务的异常检测。
其中,停止检测处理过程可具体包括:用户退出安全产品,Agent访问进程通知检测驱动通知检测驱动停止检测,检测驱动接收通知后,确定检测线程是否存在,如果存在,则设置通知检测事件,而后授信检测线程停止检测的事件。
开始检测处理过程可具体包括:用户登录安全产品,Agent服务进程通知检测驱动开始检测。检测驱动接收通知后,检测线程是否存在;如果不存在,则创建检测线程。在检测线程存在的情况下,判断该检测线程是否被结束;如果该检测线程被结束,则创建检测线程;如果该检测线程未被结束,则进一步检测线程是否被挂起;若检测线程被挂起,则通知Agent服务进程环境异常,退出登录;若检测线程未被挂起,则授信检测线程开始检测的事件。
即,在本实施例中从配置文件中加载配置信息,若加载失败,且超时则在检查到退出事件后,退出检测。在正常加载配置信息之后,便可对待检测的安全服务进行异常检测。该线程的检测方案本身可以采用硬编码方式进行,检测方式,即进行回调检测,具体的,即检测**.sys注册的进行回调,枚举向系统注册的回调函数地址中在**.sys驱动中的个数是否和配置文件中technology节点配置的一种,一种则认为正常,不一致认为回调被移除。在检测结果存在异常的情况下,可通知Agent服务进程环境存在异常,需退出登录;若检测未发现异常,则可等待停止检测事件,在等到退出事件后退出异常检测,或超时时间达到预设阈值(如超时五分钟),再次加载配置并进行重复检测。
在本申请的一种具体实施方式中,还可在不修改驱动代码的情况下,对目标安全服务的新版本进行异常检测。具体的实现过程,包括:
步骤一、在目标安全服务的版本更新的情况下,获取新版本所对应的新配置信息;
步骤二、利用新配置信息,更新配置文件中的配置信息。
步骤三、从更新后的配置文件中,获取目标安全服务的配置信息,进而基于该配置信息对新版目标安全服务进行异常检测。
在目标安全服务的版本更新后,考虑到新版本的目标安全服务与旧版本的目标安全服务可能会存在影响进行异常检测的内容保护,如特征值的数值变化,特征值的存储地址发生变化,因而对应的搜索入口点、搜索信息和特征信息也会随之改变。因此,在目标安全服务的版本更新的情况下,首先获取新版本所对应的新配置信息,然后利用新配置信息对配置文件中的配置信息进行更新。而后,便可通过加载新配置信息,从而实现对新版本的目标安全服务进行异常检测。
也就是说,考虑到系统或安全服务产品的每一个版本的升级,安全服务产品对应的数组所在内核的特征可能会发生变化,如果把每个系统版本的相应特征都硬编码写入到驱动检测代码中,系统变更之后都会修改代码,导致带来风险。而在本申请中把相应的搜索模块,搜索导出函数,搜索特征,遍历几层,都在配置文件中进行配置化。因此,后续版本更新之后只需更新配置,不需要修改代码,可降低驱动程序的开发工作量,同时提供系统稳定性。
为便于本领域技术人员更好地理解本申请实施例所提供的程序访问方法,下面结合具体的应用场景为例,对该程序访问方法的具体实施进行详细说明。
上述实施例所提供的程序访问方法,可以在安全产品中,创建出一个线程,定时扫描并检测相应的安全服务是否被移除,如果被移除,驱动层就通知应用层,而当关键技术的稳定性被破坏,可以注销/退出产品系统,进而起到保护产品关键数据的作用。
具体的,以对网络过滤技术WFP检测为例(即目标安全服务具体为网络过滤技术WTF)。其中,安全服务检测原理:通过在内核netio.sys模块中,通过导出函数KfdAddCalloutEntry,根据网络过滤技术WFP存储管理数组所在KfdAddCalloutEntry中的特征,从KfdAddCalloutEntry函数内存开始搜索特征,获取到KfdAddCalloutEntry存储管理数组地址,并从此数组中遍历每一个网络过滤技术WFP回调特征,匹配安全产品关心的回调是否存在,如果不存在,则说明环境异常,通知应用层退出安全产品系统。
WFP详细检测过程包括:
1、驱动中WFP注册的入口点FwpsCalloutRegister1注册的,因而分析就从该函数入手。该函数是FWPKCLN.sys驱动导出的。
2、真正的WFP实现是在FwppCalloutRegister1函数中,进一步查看FwppCalloutRegister1函数,在函数内部发现实际上最终是调用NETIO.sys导出的KfdAddCalloutEntry函数中去的。
分析KfdAddCalloutEntry函数和FeAddCalloutEntry函数,可发现注册的回调最终添加到了NETIO!gWfpGlobal全局变量当中。所以枚举WFP系统回调可以通过寻找NETIO!gWfpGlobal全局变量在内存上的地址,进行枚举。
6、整个回调注册的调用链:FWPKCLN!FwpsCalloutRegister1-->NETIO!KfdAddCalloutEntry-->NETIO!FeAddCalloutEntry。
7、枚举WFP回调过程必不可少的偏移。
7.1、WFP存储回调函数的结构体数组基地址&结构体大小。
7.2、WFP存储当前可存放的回调函数个数地址。
7.3、WFP回调地址相对于结构体的偏移量。
8、综上,WFP回调枚举需要的配置信息如下:
<WFP_callout_function_count value=”400”/>
<WFP_callout_function_base value=”408”/>
<WFP_callout_structer_size value=”80”/>
<WFP_classifyfn_in_structer value=”16”/>
<WFP_notifyfn_in_structer value=”24”/>
<WFP_flowdeletefn_in structer value=”32”/>
需要注意的是,本文中涉及的代码为微软代码,因而可参考微软代码的撰写与规定定义对上述代码进行理解和分析,在此不再对代码本身进行解释说明。
相应于上面的方法实施例,本申请实施例还提供了一种应用于终端数据防泄密设备中的程序访问装置,下文描述的程序访问装置与上文描述的程序访问方法可相互对应参照。
参见图5所示,该装置包括以下模块:
检测模块100,用于利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;配置文件包括用于检测回调函数是否存在的配置信息;
退出处理模块200,用于当检测到回调函数不存在时,则通知上层服务进程,以便上层服务进程通知托盘程序,从而退出终端数据防泄密设备。
应用本申请实施例所提供的装置,在终端数据防泄密设备中应用本申请实施例所提供的装置,包括:利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;配置文件包括用于检测回调函数是否存在的配置信息;当检测到回调函数不存在时,则通知上层服务进程,以便上层服务进程通知托盘程序,从而退出终端数据防泄密设备。
在本装置中,将用于检测安全服务的回调函数是否存在的配置信息写入配置文件中。在安全服务进行异常检测时,直接基于配置文件加载配置信息,而后便可基于配置信息完成安全服务的异常检测。由于在本装置中,将安全服务回调函数异常检测所需的配置信息直接写入配置文件中,而非驱动程序。因而,相较于特征硬编码方式,本装置在安全服务的特征本身以及特征所在位置发生变化的情况下,仅对配置文件中的配置信息进行修改即可,无需修改驱动代码,可减少开发工作量、避免因修改驱动代码而影响系统稳定性。
在本申请的一种具体实施方式中,检测模块100,具体包括:
配置信息读取单元,用于从配置文件中,获取配置信息;配置信息包括搜索入口点、搜索信息和特征信息;
特征数据搜索单元,用于从搜索入口点,利用搜索信息对目标安全服务进行搜索,得到特征数据;
回调确定模块,用于在特征数据与特征信息不匹配的情况下,确定回调函数不存在。
在本申请的一种具体实施方式中,搜索信息包括搜索模块、搜索导出函数、搜索特征和遍历层数;特征数据搜索单元,具体用于从搜索入口点,按照搜索导出函数,对搜索模块进行搜索,直到达到遍历层数,得到与搜索特征对应的特征数据。
在本申请的一种具体实施方式中,特征信息包括回调特征,回调确定模块,用于,具体用于若特征数据与回调特征不匹配,则确定与回调特征对应的回调函数不存在;若特征数据与回调特征匹配,则确定回调函数存在;在回调函数不存在的情况下,确定目标安全服务被移除。
在本申请的一种具体实施方式中,配置信息读取单元,用于,具体用于从待检测的驱动安全服务中确定出目标安全服务;从配置文件中,读取目标安全服务的配置信息。
在本申请的一种具体实施方式中,配置信息读取单元,用于,具体用于在检测到开始检测事件的情况下,从配置文件中获取配置信息。
在本申请的一种具体实施方式中,还包括:
更新处理模块,用于在目标安全服务的版本更新的情况下,获取新版本所对应的新配置信息;利用新配置信息,更新配置文件中的配置信息。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种程序访问方法可相互对应参照。
参见图6所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的程序访问方法的步骤。
具体的,请参考图7,图7为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的程序访问方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种程序访问方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的程序访问方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

Claims (10)

1.一种程序访问方法,其特征在于,应用于终端数据防泄密设备中,包括:
利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;所述配置文件包括用于检测所述回调函数是否存在的配置信息;其中,所述回调函数为第三方驱动程序通过系统提供的注册接口,向系统注册进程时创建的;
当检测到所述回调函数不存在时,则通知上层服务进程,以便所述上层服务进程通知托盘程序,从而退出所述终端数据防泄密设备。
2.根据权利要求1所述的程序访问方法,其特征在于,所述利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测,包括:
从所述配置文件中,获取所述配置信息;所述配置信息包括搜索入口点、搜索信息和特征信息;
从所述搜索入口点,利用所述搜索信息对所述目标安全服务进行搜索,得到特征数据;
在所述特征数据与所述特征信息不匹配的情况下,确定所述回调函数不存在。
3.根据权利要求2所述的程序访问方法,其特征在于,所述搜索信息包括搜索模块、搜索导出函数、搜索特征和遍历层数;所述从所述搜索入口点,利用所述搜索信息对所述目标安全服务进行搜索,得到特征数据,包括:
从所述搜索入口点,按照所述搜索导出函数,对所述搜索模块进行搜索,直到达到所述遍历层数,得到与所述搜索特征对应的所述特征数据。
4.根据权利要求2所述的程序访问方法,其特征在于,所述特征信息包括回调特征,在所述特征数据与所述特征信息不匹配的情况下,确定所述回调函数不存在,包括:
若所述特征数据与所述回调特征不匹配,则确定与所述回调特征对应的所述回调函数不存在;
若所述特征数据与所述回调特征匹配,则确定所述回调函数存在;
在所述回调函数不存在的情况下,确定所述目标安全服务被移除。
5.根据权利要求2所述的程序访问方法,其特征在于,从所述配置文件中,获取所述配置信息,包括:
从待检测的驱动安全服务中确定出所述目标安全服务;
从所述配置文件中,读取所述目标安全服务的所述配置信息。
6.根据权利要求2所述的程序访问方法,其特征在于,从所述配置文件中,获取所述配置信息,包括:
在检测到开始检测事件的情况下,从所述配置文件中获取所述配置信息。
7.根据权利要求1至6任一项所述的程序访问方法,其特征在于,还包括:
在所述目标安全服务的版本更新的情况下,获取新版本所对应的新配置信息;
利用所述新配置信息,更新所述配置文件中的所述配置信息。
8.一种程序访问装置,其特征在于,应用于终端数据防泄密设备中,包括:
检测模块,用于利用驱动检测,并结合配置文件对已注册目标安全服务对应的回调函数进行检测;所述配置文件包括用于检测所述回调函数是否存在的配置信息;其中,所述回调函数为第三方驱动程序通过系统提供的注册接口,向系统注册进程时创建的;
退出处理模块,用于当检测到所述回调函数不存在时,则通知上层服务进程,以便所述上层服务进程通知托盘程序,从而退出所述终端数据防泄密设备。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述程序访问方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述程序访问方法的步骤。
CN202110234206.0A 2021-03-03 2021-03-03 一种程序访问方法、装置、设备及可读存储介质 Active CN112906000B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110234206.0A CN112906000B (zh) 2021-03-03 2021-03-03 一种程序访问方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110234206.0A CN112906000B (zh) 2021-03-03 2021-03-03 一种程序访问方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN112906000A CN112906000A (zh) 2021-06-04
CN112906000B true CN112906000B (zh) 2024-02-23

Family

ID=76107497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110234206.0A Active CN112906000B (zh) 2021-03-03 2021-03-03 一种程序访问方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112906000B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246849A (zh) * 2013-05-30 2013-08-14 浪潮集团有限公司 一种Windows下基于增强型ROST的安全运行方法
CN103605930A (zh) * 2013-11-27 2014-02-26 湖北民族学院 一种基于hook和过滤驱动的双重文件防泄密方法及系统
CN106874764A (zh) * 2017-01-16 2017-06-20 南开大学 一种基于回调函数建模自动生成Android应用回调序列的方法
CN106940773A (zh) * 2017-01-10 2017-07-11 西安电子科技大学 基于静态污点数据分析的隐私泄漏漏洞检测确认方法
CN109710338A (zh) * 2018-12-24 2019-05-03 努比亚技术有限公司 一种移动终端的搜索方法、移动终端及存储介质
EP3514717A1 (en) * 2018-01-17 2019-07-24 Crowdstrike, Inc. Device driver non-volatile backing-store installation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2496939A1 (en) * 2005-02-08 2006-08-08 Cirond Networks, Inc. Network security method and apparatus
US8621628B2 (en) * 2010-02-25 2013-12-31 Microsoft Corporation Protecting user mode processes from improper tampering or termination
KR101174751B1 (ko) * 2010-09-27 2012-08-17 한국인터넷진흥원 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법
CN105874463A (zh) * 2013-12-30 2016-08-17 诺基亚技术有限公司 用于恶意软件检测的方法和装置
US10826919B2 (en) * 2018-10-29 2020-11-03 Acronis International Gmbh Methods and cloud-based systems for protecting devices from malwares

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246849A (zh) * 2013-05-30 2013-08-14 浪潮集团有限公司 一种Windows下基于增强型ROST的安全运行方法
CN103605930A (zh) * 2013-11-27 2014-02-26 湖北民族学院 一种基于hook和过滤驱动的双重文件防泄密方法及系统
CN106940773A (zh) * 2017-01-10 2017-07-11 西安电子科技大学 基于静态污点数据分析的隐私泄漏漏洞检测确认方法
CN106874764A (zh) * 2017-01-16 2017-06-20 南开大学 一种基于回调函数建模自动生成Android应用回调序列的方法
EP3514717A1 (en) * 2018-01-17 2019-07-24 Crowdstrike, Inc. Device driver non-volatile backing-store installation
CN109710338A (zh) * 2018-12-24 2019-05-03 努比亚技术有限公司 一种移动终端的搜索方法、移动终端及存储介质

Also Published As

Publication number Publication date
CN112906000A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US8621278B2 (en) System and method for automated solution of functionality problems in computer systems
US7426661B2 (en) Method and system for minimizing loss in a computer application
KR20150134679A (ko) 패치파일 분석시스템과 분석방법
CN103329093A (zh) 更新软件
CN109255235B (zh) 基于用户态沙箱的移动应用第三方库隔离方法
CN108292342B (zh) 向固件中的侵入的通知
US20190121985A1 (en) Detecting vulnerabilities in applications during execution
US11416614B2 (en) Statistical detection of firmware-level compromises
JP6282217B2 (ja) 不正プログラム対策システムおよび不正プログラム対策方法
US20130311425A1 (en) Database update notification method
US8799716B2 (en) Heap dump occurrence detection
CN112668008A (zh) 一种基于lsm来实现动态的系统调用劫持的方法
CN112738094A (zh) 可扩展的网络安全漏洞监测方法、系统、终端及存储介质
US9256488B2 (en) Verification of template integrity of monitoring templates used for customized monitoring of system activities
CN112906000B (zh) 一种程序访问方法、装置、设备及可读存储介质
US11113096B2 (en) Permissions for a cloud environment application programming interface
CN108959915B (zh) 一种rootkit检测方法、装置及服务器
US9804932B2 (en) Method and device for processing data and electronic apparatus
CN111897559B (zh) 热更新代码检测方法、装置、电子设备及存储介质
CN112199672A (zh) 账号权限提升行为的检测方法、装置及可读存储介质
CN117034261B (zh) 一种基于标识符的异常检测方法、装置、介质及电子设备
US11423148B2 (en) Preventing discovery of unique identifiers in firmware
CN111258805B (zh) 一种服务器的硬盘状态监控方法、设备和计算机设备
CN117688551A (zh) 启动路径白名单更新方法、装置、电子设备及存储介质
JP2016173746A (ja) 情報処理装置及びその制御方法、プログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant