CN115758341A - 一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质 - Google Patents

一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质 Download PDF

Info

Publication number
CN115758341A
CN115758341A CN202211470788.3A CN202211470788A CN115758341A CN 115758341 A CN115758341 A CN 115758341A CN 202211470788 A CN202211470788 A CN 202211470788A CN 115758341 A CN115758341 A CN 115758341A
Authority
CN
China
Prior art keywords
executable file
ring3
layer
query
release
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.)
Pending
Application number
CN202211470788.3A
Other languages
English (en)
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.)
Zhejiang Mulian Internet Of Things Technology Co ltd
Original Assignee
Zhejiang Mulian Internet Of Things Technology 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 Zhejiang Mulian Internet Of Things Technology Co ltd filed Critical Zhejiang Mulian Internet Of Things Technology Co ltd
Priority to CN202211470788.3A priority Critical patent/CN115758341A/zh
Publication of CN115758341A publication Critical patent/CN115758341A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种基于Ring3层查询的可执行文件拦截方法,通过创建进程监控回调函数建立应用层和驱动层的监控和通信;获取通信数据进行清洗、组装,通过MiniFilter将通信数据发送至应用层;获取通信信息中的可执行文件信息,根据可执行文件信息匹配数据集;根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令。本申请通过将根据查询结果来决定驱动对该可执行文件的拦截或放行,将拦截过程高效化和安全化,尽可能减少对本机产生稳定性影响,避免出现错误后导致系统崩溃的问题,可应用于细分的工控网络安全、消费者主机安全领域。

Description

一种基于Ring3层查询的可执行文件拦截方法、系统和存储 介质
技术领域
本申请属于网络安全技术领域,更具体的,涉及一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质。
背景技术
中国已发展成拥有全世界最全工业门类的国家,工业制造也逐渐向智能化、自动化发展,不过在产品质量、生产效率不断提高的同时,支撑工业制造的工控系统正面临着越来越严峻的安全问题,如SQL注入、蠕虫病毒、Web漏洞、黑客攻击、DDoS攻击、跨站脚本等。这些攻击一旦生效,轻则导致机械故障、生产线停摆,重则影响国家工业制造,瘫痪信息网络,威胁国防民生。恶意攻击往往伴随着恶意可执行文件的运行,所以及时发现并成功阻断恶意可执行行为,是保障系统稳定运行的重要手段。
传统的可执行文件拦截方法会使用Hook(钩子)技术,这种方式会修改系统关键位置的内存,即在驱动启动时将数据取出放入内存中,由用户态应用程序和内核态驱动共同读写。虽然内存读写能够带来一定程度性能提升,但是内存操作特别是应用层与驱动层能同时读写时,由于读写不一致极易引发安全问题。例如,在64位机器上,微软增加了PatchGuard(内核补丁保护)特性,该特性会检查Windows操作系统的核心组件和内核是否受到不受支持的修改,一旦非法篡改PatchGuard会触发一个缺陷检查并蓝屏死机关闭系统。虽然有方法可以绕过PatchGuard的检查,但是会导致系统不稳定进而影响对稳定性要求极为严格的工控系统。另外,传统驱动拦截会将数据集一块内存中并由应用层与驱动层共同读写,因此还要考虑读写的一致性问题,这极容易导致驱动程序崩溃进而引发蓝屏,且多数工控系统的硬件条件并不是最理想的,一旦数据量过大,则没有充足的内存可供使用。
发明内容
有鉴于此,本申请提供了一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质,解决了网络安全领域中出现的进程拦截不稳定、拦截效率底下、容易导致系统崩溃的问题。
本申请的具体技术方案如下:
本申请第一方面提供一种基于Ring3层查询的可执行文件拦截方法,包括如下步骤:
创建进程监控回调函数建立应用层和驱动层的监控和通信,其中,进程监控回调函数通过PsSetCreateProcessNotifyRoutineEx设置;
获取通信数据进行清洗、组装,通过MiniFilter将通信数据发送至应用层;
获取通信信息中的可执行文件信息,根据可执行文件信息匹配数据集;
根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令。
优选地,所述获取通信数据进行清洗、组装具体为:
通过入参Process获取当前启动进程的PEPROCESS信息;
通过入参ProcessId获取当前启动进程的PID参数;
通过入参PPS_CREATE_NOTIFY_INFO CreateInfo获取当前启动进程的额外信息;
其中,所述额外信息包括命令行指令、进程名、线程id以及父进程pid。
优选地,所述通过MiniFilter将通信数据发送至应用层具体为:
通过FltCreateCommunicationPort创建通信Port,使用FltSendMessage主动发送通信数据至应用层,使用FilterGetMessage接收来自MiniFilter的通信数据。
优选地,所述根据可执行文件信息匹配数据集具体为:
调取数据库中的黑名单数据集;
判断可执行文件信息是否存在于数据库中的黑名单数据集中,若存在则匹配失败,若不存在则匹配成功。
优选地,所述数据集通过sqlite数据库和redis数据库进行存储,其中,sqlite数据库采用AES-ECB模式进行加密。
优选地,所述根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令具体为:
当符合放行标准时,对可执行文件信息设置放行标记;
根据放行标记对入参CreateInfo->CreationStatus进行赋值;
根据赋值情况创建放行指令或拒绝指令。
优选地,对可执行文件信息设置放行标记具体为:
在MiniFilter中还设置接收返回数据ReplyBuffer;
将所述放行标记记入ReplyBuffer中,并将ReplyBuffer返回至驱动层。
优选地,将ReplyBuffer返回至驱动层具体为:
通过FilterConnectCommunicationPort连接通信Port,使用FilterReplyMessage主动发送ReplyBuffer至驱动层,使用MessageCallBack接收来自应用层的通信数据。
本申请第二方面提供一种基于Ring3层查询的可执行文件拦截系统,包括存储器和处理器,所述存储器中包括基于Ring3层查询的可执行文件拦截程序,所述基于Ring3层查询的可执行文件拦截程序被所述处理器执行时,实现如下步骤:
创建进程监控回调函数建立应用层和驱动层的监控和通信,其中,进程监控回调函数通过PsSetCreateProcessNotifyRoutineEx设置;
获取通信数据进行清洗、组装,通过MiniFilter将通信数据发送至应用层;
获取通信信息中的可执行文件信息,根据可执行文件信息匹配数据集;
根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令。
优选地,所述获取通信数据进行清洗、组装具体为:
通过入参Process获取当前启动进程的PEPROCESS信息;
通过入参ProcessId获取当前启动进程的PID参数;
通过入参PPS_CREATE_NOTIFY_INFO CreateInfo获取当前启动进程的额外信息;
其中,所述额外信息包括命令行指令、进程名、线程id以及父进程pid。
优选地,所述通过MiniFilter将通信数据发送至应用层具体为:
通过FltCreateCommunicationPort创建通信Port,使用FltSendMessage主动发送通信数据至应用层,使用FilterGetMessage接收来自MiniFilter的通信数据。
优选地,所述根据可执行文件信息匹配数据集具体为:
调取数据库中的黑名单数据集;
判断可执行文件信息是否存在于数据库中的黑名单数据集中,若存在则匹配失败,若不存在则匹配成功。
优选地,所述数据集通过sqlite数据库和redis数据库进行存储,其中,sqlite数据库采用AES-ECB模式进行加密。
优选地,所述根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令具体为:
当符合放行标准时,对可执行文件信息设置放行标记;
根据放行标记对入参CreateInfo->CreationStatus进行赋值;
根据赋值情况创建放行指令或拒绝指令。
优选地,对可执行文件信息设置放行标记具体为:
在MiniFilter中还设置接收返回数据ReplyBuffer;
将所述放行标记记入ReplyBuffer中,并将ReplyBuffer返回至驱动层。
优选地,将ReplyBuffer返回至驱动层具体为:
通过FilterConnectCommunicationPort连接通信Port,使用FilterReplyMessage主动发送ReplyBuffer至驱动层,使用MessageCallBack接收来自应用层的通信数据。
本申请第三方面提供一种计算机可读存储介质,所述计算机可读存储介质中包括基于Ring3层查询的可执行文件拦截程序,所述基于Ring3层查询的可执行文件拦截程序被处理器执行时,实现所述基于Ring3层查询的可执行文件拦截方法的步骤。
综上所述,本申请提供了一种基于Ring3层查询的可执行文件拦截方法,通过创建进程监控回调函数建立应用层和驱动层的监控和通信;获取通信数据进行清洗、组装,通过MiniFilter将通信数据发送至应用层;获取通信信息中的可执行文件信息,根据可执行文件信息匹配数据集;根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令,可应用于细分的工控网络安全、消费者主机安全领域。
与现有技术相比,本申请的有益效果是:
1、利用部署于Windows操作系统上的MiniFilter驱动程序,通过分析指定的IRP操作,采集到可执行文件关键行为并汇总,通过驱动通信技术发送给应用层进行软件分析。应用层软件在收到行为数据后进一步提炼并通过本地样本库查询,根据查询结果来决定驱动对该可执行文件的拦截或放行,将拦截过程高效化和安全化,尽可能减少对本机产生稳定性影响,避免出现错误后导致系统崩溃的问题;
2、通过Minifilter通信技术和数据库查询,可以很方便地获取查询结果,动态地快速扩展本地样本库,便于样本库的备份、迁移操作。基于应用层数据库的查找方式,不会带来严重的内核错误,同时由于使用硬盘空间,不要求高内存。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请一种基于Ring3层查询的可执行文件拦截方法的流程图;
图2为本申请一种基于Ring3层查询的可执行文件拦截系统的框图。
具体实施方式
为使得本申请的目的、特征、优点能够更加的明显和易懂,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而非全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
名词解释:MIniFilter:微软提供的一个文件过滤器框架,使用者能通过它实现对文件系统和IRP数据进行过滤。
IRP(I/O request packets):微软为驱动程序与操作系统通信而使用的一种内核模式结构,这是一种描述I/O请求的数据结构。
Ring3:CPU执行指令的权限等级,目前常见的X64架构中,一共有两级:Ring0权限最高,供内核态使用,Ring3次之,供用户态使用。
Sqlite:一种高性能的关系型数据库。
Redis:一种开源、支持网络、分布式、基于内存的关系型数据库。
请参照图1,图1为本申请一种基于Ring3层查询的可执行文件拦截方法的流程图。
本申请实施例第一方面提供一种基于Ring3层查询的可执行文件拦截方法,包括如下步骤:
S102:创建进程监控回调函数建立应用层和驱动层的监控和通信,其中,进程监控回调函数通过PsSetCreateProcessNotifyRoutineEx设置;
S104:获取通信数据进行清洗、组装,通过MiniFilter将通信数据发送至应用层;
S106:获取通信信息中的可执行文件信息,根据可执行文件信息匹配数据集;
S108:根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令。
需要说明的是,S102中应用层和驱动层的监控和通信是基于MiniFilter驱动程序进行,可以应用于Vista及Windows操作系统。由于其具有完善的应用层与驱动层通信接口,可以将两者结合,进而达到应用与驱动高效监控和通信的目的。
S104中通过获取通信数据并分析IRP操作,将采集的可执行文件关键行为信息进行整理后发送至应用层,能够排除一部分干扰的行为信息,改善运行效率。
S106中将获取的通信信息进一步提炼转化为可执行文件信息,并根据可执行文件信息在预设的数据集中查询并匹配,以此来决定对该可执行文件的拦截或放行。其中,可执行文件信息包括文件名、路径、扩展名、MD5值、时间等。
S108中若可执行文件信息与数据集能够成功匹配则符合放行标准,发出放行指令,即允许可执行文件的运行、修改、删除等操作。反之,若可执行文件信息与数据集匹配失败则不符合放行标准,发出拒绝指令,即限制对该可执行文件的执行行为以及其对系统造成的执行行为。
本申请实施例中基于Ring3层查询的可执行文件拦截方法利用MiniFilter驱动程序,基于Ring3层在数据集的查询结果来决定驱动对该可执行文件的拦截或放行,具有高效化、安全化的优点,减少对本机产生稳定性影响,避免出现错误后导致系统崩溃的问题。
根据本申请实施例,所述获取通信数据进行清洗、组装具体为:
通过入参Process获取当前启动进程的PEPROCESS信息;
通过入参ProcessId获取当前启动进程的PID参数;
通过入参PPS_CREATE_NOTIFY_INFO CreateInfo获取当前启动进程的额外信息;
其中,所述额外信息包括命令行指令、进程名、线程id以及父进程pid。
需要说明的是,通过获取PEPROCESS信息、PID参数等信息分析分析IRP操作关键行为信息,可以初步过滤干扰信息。
根据本申请实施例,所述通过MiniFilter将通信数据发送至应用层具体为:
通过FltCreateCommunicationPort创建通信Port,使用FltSendMessage主动发送通信数据至应用层,使用FilterGetMessage接收来自MiniFilter的通信数据。
根据本申请实施例,所述根据可执行文件信息匹配数据集具体为:
调取数据库中的黑名单数据集;
判断可执行文件信息是否存在于数据库中的黑名单数据集中,若存在则匹配失败,若不存在则匹配成功。
需要说明的是,应用程序事先已经拥有记录可执行文件的黑白名单的数据集,这些数据集可以以文本、数据库的形式保存。通过数据库的形式进行数据查询匹配,可以很方便地获取查询结果,动态地快速扩展本地样本库,便于样本库的备份、迁移操作,不会带来严重的内核错误,同时也无需高内存的苛刻条件。
根据本申请实施例,所述数据集通过sqlite数据库和redis数据库进行存储,其中,sqlite数据库采用AES-ECB模式进行加密。
需要说明的是,为了高效读写使用sqlite和redis进行数据的存储,其中sqlite提供断电之后的数据保存,redis提供运行时的数据读写。另外由于sqlite数据库的通用格式很容易被读取,对此还使用了AES-ECB模式进行高强度加密,防止第三方恶意程序读取、分析、篡改我方数据。
根据本申请实施例,所述根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令具体为:
当符合放行标准时,对可执行文件信息设置放行标记;
根据放行标记对入参CreateInfo->CreationStatus进行赋值;
根据赋值情况创建放行指令或拒绝指令。
需要说明的是,可执行文件信息与数据集匹配成功则符合放行标准。MiniFilter驱动在获取到存放在ReplyBuffer中的放行标记后,根据此标记对入参CreateInfo->CreationStatus赋值。其中,CreateInfo->CreationStatus=STATUS_ACCESS_DENIED表示创建拒绝指令,不赋值或者CreateInfo->CreationStatus=STATUS_SUCCESSFUL表示创建放行指令。
根据本申请实施例,对可执行文件信息设置放行标记具体为:
在MiniFilter中还设置接收返回数据ReplyBuffer;
将所述放行标记记入ReplyBuffer中,并将ReplyBuffer返回至驱动层。
需要说明的是,使用FltSendMessage主动发送通信数据至应用层的同时还设置接收返回数据ReplyBuffer,用于存放标记信息返回至驱动层,利于判定结果的准确、快速传递。另外,为了避免可能导致系统卡顿的问题,在驱动程序中使用FltSendMessage需要设置最后一位参数Timeout。若将此参数设置为NULL,则表示无限期等待应用层的返回结果,应用层因为特殊原因返回数据出现了延迟,将会导致系统卡顿。
根据本申请实施例,将ReplyBuffer返回至驱动层具体为:
通过FilterConnectCommunicationPort连接通信Port,使用FilterReplyMessage主动发送ReplyBuffer至驱动层,使用MessageCallBack接收来自应用层的通信数据。
在本申请另一实施例中,所述获取通信信息中的可执行文件信息之后,根据可执行文件信息匹配数据集之前,还包括:
获取可执行文件的安全信息,所述安全信息包括密级和权限;
根据密级和权限的强度将可执行文件信息进行分组,每个组别在与数据集进行匹配时采用不同的关联函数。
需要说明的是,针对可执行文件的密级和权限强度,设置不同的关联函数进行数据集的匹配。例如对密级和权限较高的文件来说,为了增强拦截作用提高安全性能,可利用关联函数对关联数据的范围进行扩增,可以避免数据篡改后造成匹配成功的假象,关联函数可以根据本领域内常规的数据变换类型决定。
在本申请另一实施例中,所述根据可执行文件信息匹配数据集还包括:
调取数据库中的白名单数据集;
判断可执行文件信息是否存在于数据库中的白名单数据集中,若存在则匹配成功;
若不存在则根据算法函数计算可执行文件信息与黑白名单数据集的相关性,若相关性超过阈值则判定为存在于相应数据集中。
需要说明的是,数据集中的黑白名单可以根据本领域测算数据确定。黑白名单数据集可以直接对可执行文件信息进行筛选,若出现无法直接判别的情况可以利用算法函数将信息与相应名单数据集进行关联性分析,从而对一些模糊、缺失或异常数据进行识别、归类,进一步提高文件拦截的准确性。其中,算法函数可以通过在文件信息数据类型的基础上引入常规的关联性分析算法而确定。
请参照图2,图2为本申请一种基于Ring3层查询的可执行文件拦截系统的框图。
本申请实施例第二方面提供一种基于Ring3层查询的可执行文件拦截系统2,包括存储器21和处理器22,所述存储器21中包括基于Ring3层查询的可执行文件拦截程序,所述基于Ring3层查询的可执行文件拦截程序被所述处理器22执行时,实现如下步骤:
创建进程监控回调函数建立应用层和驱动层的监控和通信,其中,进程监控回调函数通过PsSetCreateProcessNotifyRoutineEx设置;
获取通信数据进行清洗、组装,通过MiniFilter将通信数据发送至应用层;
获取通信信息中的可执行文件信息,根据可执行文件信息匹配数据集;
根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令。
需要说明的是,应用层和驱动层的监控和通信是基于MiniFilter驱动程序进行。通过获取通信数据并分析IRP操作,将采集的可执行文件关键行为信息进行整理后发送至应用层,能够排除一部分干扰的行为信息,改善运行效率。将获取的通信信息进一步提炼转化为可执行文件信息,并根据可执行文件信息在预设的数据集中查询并匹配,以此来决定对该可执行文件的拦截或放行。其中,可执行文件信息包括文件名、路径、扩展名、MD5值、时间等。若可执行文件信息与数据集能够成功匹配则符合放行标准,发出放行指令,即允许可执行文件的运行、修改、删除等操作。
本申请实施例中基于Ring3层查询的可执行文件拦截系统通过将根据查询结果来决定驱动对该可执行文件的拦截或放行,将拦截过程高效化和安全化,尽可能减少对本机产生稳定性影响,避免出现错误后导致系统崩溃的问题,可应用于细分的工控网络安全、消费者主机安全领域。
根据本申请实施例,所述获取通信数据进行清洗、组装具体为:
通过入参Process获取当前启动进程的PEPROCESS信息;
通过入参ProcessId获取当前启动进程的PID参数;
通过入参PPS_CREATE_NOTIFY_INFO CreateInfo获取当前启动进程的额外信息;
其中,所述额外信息包括命令行指令、进程名、线程id以及父进程pid。
根据本申请实施例,所述通过MiniFilter将通信数据发送至应用层具体为:
通过FltCreateCommunicationPort创建通信Port,使用FltSendMessage主动发送通信数据至应用层,使用FilterGetMessage接收来自MiniFilter的通信数据。
根据本申请实施例,所述根据可执行文件信息匹配数据集具体为:
调取数据库中的黑名单数据集;
判断可执行文件信息是否存在于数据库中的黑名单数据集中,若存在则匹配失败,若不存在则匹配成功。
根据本申请实施例,所述数据集通过sqlite数据库和redis数据库进行存储,其中,sqlite数据库采用AES-ECB模式进行加密。
根据本申请实施例,所述根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令具体为:
当符合放行标准时,对可执行文件信息设置放行标记;
根据放行标记对入参CreateInfo->CreationStatus进行赋值;
根据赋值情况创建放行指令或拒绝指令。
根据本申请实施例,对可执行文件信息设置放行标记具体为:
在MiniFilter中还设置接收返回数据ReplyBuffer;
将所述放行标记记入ReplyBuffer中,并将ReplyBuffer返回至驱动层。
根据本申请实施例,将ReplyBuffer返回至驱动层具体为:
通过FilterConnectCommunicationPort连接通信Port,使用FilterReplyMessage主动发送ReplyBuffer至驱动层,使用MessageCallBack接收来自应用层的通信数据。
在本申请另一实施例中,所述获取通信信息中的可执行文件信息之后,根据可执行文件信息匹配数据集之前,还包括:
获取可执行文件的安全信息,所述安全信息包括密级和权限;
根据密级和权限的强度将可执行文件信息进行分组,每个组别在与数据集进行匹配时采用不同的关联函数。
在本申请另一实施例中,所述根据可执行文件信息匹配数据集还包括:
调取数据库中的白名单数据集;
判断可执行文件信息是否存在于数据库中的白名单数据集中,若存在则匹配成功;
若不存在则根据算法函数计算可执行文件信息与黑白名单数据集的相关性,若相关性超过阈值则判定为存在于相应数据集中。
本申请实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质中包括基于Ring3层查询的可执行文件拦截程序,所述基于Ring3层查询的可执行文件拦截程序被处理器执行时,实现所述基于Ring3层查询的可执行文件拦截方法的步骤。
综上所述,本申请实施例提供了一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质,通过创建进程监控回调函数建立应用层和驱动层的监控和通信;获取通信数据进行清洗、组装,通过MiniFilter将通信数据发送至应用层;获取通信信息中的可执行文件信息,根据可执行文件信息匹配数据集;根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令。
本申请实施例利用部署于Windows操作系统上的MiniFilter驱动程序,通过分析指定的IRP操作,采集到可执行文件关键行为并汇总,通过驱动通信技术发送给应用层进行软件分析。应用层软件在收到行为数据后进一步提炼并通过本地样本库查询,根据查询结果来决定驱动对该可执行文件的拦截或放行,将拦截过程高效化和安全化,尽可能减少对本机产生稳定性影响,避免出现错误后导致系统崩溃的问题;通过Minifilter通信技术和数据库查询,可以很方便地获取查询结果,动态地快速扩展本地样本库,便于样本库的备份、迁移操作,不会带来严重的内核错误,同时由于使用硬盘空间,不要求高内存。可应用于细分的工控网络安全、消费者主机安全领域。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种基于Ring3层查询的可执行文件拦截方法,其特征在于,包括如下步骤:
创建进程监控回调函数建立应用层和驱动层的监控和通信,其中,进程监控回调函数通过PsSetCreateProcessNotifyRoutineEx设置;
获取通信数据进行清洗、组装,通过MiniFilter将通信数据发送至应用层;
获取通信信息中的可执行文件信息,根据可执行文件信息匹配数据集;
根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令。
2.根据权利要求1所述的基于Ring3层查询的可执行文件拦截方法,其特征在于,所述获取通信数据进行清洗、组装具体为:
通过入参Process获取当前启动进程的PEPROCESS信息;
通过入参ProcessId获取当前启动进程的PID参数;
通过入参PPS_CREATE_NOTIFY_INFO CreateInfo获取当前启动进程的额外信息;
其中,所述额外信息包括命令行指令、进程名、线程id以及父进程pid。
3.根据权利要求1所述的基于Ring3层查询的可执行文件拦截方法,其特征在于,所述通过MiniFilter将通信数据发送至应用层具体为:
通过FltCreateCommunicationPort创建通信Port,使用FltSendMessage主动发送通信数据至应用层,使用FilterGetMessage接收来自MiniFilter的通信数据。
4.根据权利要求1所述的基于Ring3层查询的可执行文件拦截方法,其特征在于,所述根据可执行文件信息匹配数据集具体为:
调取数据库中的黑名单数据集;
判断可执行文件信息是否存在于数据库中的黑名单数据集中,若存在则匹配失败,若不存在则匹配成功。
5.根据权利要求1所述的基于Ring3层查询的可执行文件拦截方法,其特征在于,所述数据集通过sqlite数据库和redis数据库进行存储,其中,sqlite数据库采用AES-ECB模式进行加密。
6.根据权利要求1所述的基于Ring3层查询的可执行文件拦截方法,其特征在于,所述根据可执行文件信息与数据集的匹配情况判断是否符合放行标准,并发出放行或拒绝指令具体为:
当符合放行标准时,对可执行文件信息设置放行标记;
根据放行标记对入参CreateInfo->CreationStatus进行赋值;
根据赋值情况创建放行指令或拒绝指令。
7.根据权利要求6所述的基于Ring3层查询的可执行文件拦截方法,其特征在于,对可执行文件信息设置放行标记具体为:
在MiniFilter中还设置接收返回数据ReplyBuffer;
将所述放行标记记入ReplyBuffer中,并将ReplyBuffer返回至驱动层。
8.根据权利要求7所述的基于Ring3层查询的可执行文件拦截方法,其特征在于,将ReplyBuffer返回至驱动层具体为:
通过FilterConnectCommunicationPort连接通信Port,使用FilterReplyMessage主动发送ReplyBuffer至驱动层,使用MessageCallBack接收来自应用层的通信数据。
9.一种基于Ring3层查询的可执行文件拦截系统,其特征在于,包括存储器和处理器,所述存储器中包括基于Ring3层查询的可执行文件拦截程序,所述基于Ring3层查询的可执行文件拦截程序被所述处理器执行时,实现如权利要求1~8任一项所述基于Ring3层查询的可执行文件拦截方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括基于Ring3层查询的可执行文件拦截程序,所述基于Ring3层查询的可执行文件拦截程序被处理器执行时,实现如权利要求1~8任一项所述基于Ring3层查询的可执行文件拦截方法的步骤。
CN202211470788.3A 2022-11-23 2022-11-23 一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质 Pending CN115758341A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211470788.3A CN115758341A (zh) 2022-11-23 2022-11-23 一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211470788.3A CN115758341A (zh) 2022-11-23 2022-11-23 一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质

Publications (1)

Publication Number Publication Date
CN115758341A true CN115758341A (zh) 2023-03-07

Family

ID=85335524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211470788.3A Pending CN115758341A (zh) 2022-11-23 2022-11-23 一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质

Country Status (1)

Country Link
CN (1) CN115758341A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561811A (zh) * 2023-07-11 2023-08-08 北京智芯微电子科技有限公司 文件可信防篡改方法、装置及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561811A (zh) * 2023-07-11 2023-08-08 北京智芯微电子科技有限公司 文件可信防篡改方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CA2445576C (en) Filter driver for identifying disk files by analysis of content
KR101443932B1 (ko) 시스템 분석 및 관리
CN109586282B (zh) 一种电网未知威胁检测系统及方法
CN110213207B (zh) 一种基于日志分析的网络安全防御方法及设备
US7565695B2 (en) System and method for directly accessing data from a data storage medium
US10652255B2 (en) Forensic analysis
CN113051034B (zh) 一种基于kprobes的容器访问控制方法与系统
CN111191243B (zh) 一种漏洞检测方法、装置和存储介质
CN112769775B (zh) 一种威胁情报关联分析方法、系统、设备及计算机介质
US7346611B2 (en) System and method for accessing data from a data storage medium
CN111241546B (zh) 一种恶意软件行为检测方法和装置
CN115758341A (zh) 一种基于Ring3层查询的可执行文件拦截方法、系统和存储介质
CN112765672A (zh) 一种恶意代码的检测方法、装置和计算机可读介质
US20220201016A1 (en) Detecting malicious threats via autostart execution point analysis
CN110737888B (zh) 虚拟化平台操作系统内核数据攻击行为检测方法
CN114707144A (zh) 虚拟机逃逸行为检测方法及装置
US20230315855A1 (en) Exact restoration of a computing system to the state prior to infection
US11983272B2 (en) Method and system for detecting and preventing application privilege escalation attacks
CN111125701B (zh) 文件检测方法、设备、存储介质及装置
CN110874474A (zh) 勒索者病毒防御方法、装置、电子设备及存储介质
CN113010885B (zh) 一种检测伪装起始地址的内核线程的方法及装置
CN114417349A (zh) 攻击结果判定方法、装置、电子设备及存储介质
CN103593614A (zh) 一种未知病毒检索方法
KR20030090568A (ko) 단말기 내의 자원 보호 시스템 및 방법
CN114070596A (zh) Web应用防护系统的性能优化方法、系统、终端及介质

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