基于windows的进程拦截方法及系统技术方案

技术编号:38627687 阅读:15 留言:0更新日期:2023-08-31 18:28
本发明专利技术公开了一种基于windows的进程拦截方法及系统,所述方法包括:创建并初始化进程信息表;注册内核进程通知回调和线程通知回调;基于所述进程通知回调判断是否需要拦截当前进程;其中,当需要拦截当前进程时,将所述当前进程记录到所述进程信息表中;基于所述线程通知回调判断当前启动线程的进程是否为需要拦截的进程;其中,当所述当前启动线程的进程为需要拦截当前进程时,对所述当前启动线程的进程进行拦截,并结束当前启动线程的进程。通过本公开的处理方案,确保了系统运行稳定,且兼容所有版本系统,保护系统不受恶意病毒进程的攻击威胁。的攻击威胁。的攻击威胁。

【技术实现步骤摘要】
基于windows的进程拦截方法及系统


[0001]本专利技术涉及计算机安全防御
,特别是涉及一种基于windows的进程拦截方法及系统。

技术介绍

[0002]随着计算机的不断发展,信息安全被大家越来越重视,在操作系统中,所有的数据交换操作都是由进程发起的,所以在信息安全领域中,监视进程启动和运行是信息安全的重中之重,所以各大安全公司都在想方设法地在进程启动前或启动之初时对进程进行拦截,筛查进程带有的各类信息和程序文件,保证启动的程序是安全的。
[0003]然而,由于windows系统版本众多,由早期至今(2022年)的系统版本都在对内核不断做优化和保护,内核中提供的接口一直在不断变化,而用户使用的系统各版本都有,为了兼容老的系统版本和支持新版本系统及保证未来的系统版本能够支持,所以各大安全公司不断尝试,对进程拦截的技术方案实现特点也就各不相同。
[0004]当前市面上已有很多相似的进程启动拦截方案,各家安全厂商在杀毒软件或其他系统防护解决方案中都有相关的进程启动监视拦截技术,且各家实现的效果相同类似,但在具体实现的技术上各家都有自己的特点。
[0005]为了保证系统内核运行稳定和不影响用户,大部分的安全公司使用了应用层的进程拦截手段,避开使用驱动对用户造成的影响,但这种方式并不能保证百分百监视所有进程,和解决用户的安全问题。因为各系统版本都需要支持,并且要保证系统稳定,在应用层对启动的程序进行注入、挂钩,来实现进程启动拦截,这种方式缺点很明显,一旦进程不能被注入拉钩,就将放过对此进程的监视。
[0006]在早期系统版本中,如XP、WIN7安全厂商通常使用内核挂钩的方式,使用如HOOKSSDT等的内核HOOK方式在内核中对系统启动的所有进程进行监视拦截,这种方式可以做到拦截所有启动的进程,但系统兼容性差,在高版本系统上,因为系统内核进了重大更新,不再允许对内核做挂钩操作,导致这种技术方案不支持高版本系统,有些厂商解决了内核保护的问题,依然使用内核挂钩技术,但并不能保证系统的稳定运行,经常会出现蓝屏等严重问题,这种技术也无法做到与其他也使用内核挂钩的产品兼容,很容易产生冲突,从而出现蓝屏问题。
[0007]有些厂商因为系统内核版本的问题,无法做到兼容支持,采取了应用层的进程监视拦截方案,此技术是在应用层对所有进程做注入,HOOK创建进程的API,当进程启动一个新进程时,触发此API从而达到监视拦截的目的。此技术因为是应用层的监视方式,所以可以利用大量的方式方法进行绕过,从而解除对进程的监视拦截,这样就达不到防护效果了。
[0008]为了解决各版本的兼容和差异问题,部分安全厂商使用了多种技术手段来实现进程启动拦截,比如在低版本系统中依然使用挂钩方式,在高版本系统中使用系统内核新提供的监视通知接口来拦截进程启动。
[0009]部分安全厂商为了保证实现技术的通用性,直接使用了低版本系统内核提供的一
种进程启动通知回调,系统提供的这个接口不能直接结束进程,如果正在启动的进程被停止,则会给用户弹一个错误窗口,告知用户一个进程启动失败,显然这不是安全厂商希望的,所以部分安全厂商使用了这种早期回调接口的同时,还是挂钩桌面的弹出窗口,当结束了一个进程系统弹出错误窗口时,会把这个弹出的错误窗口直接关闭,对用户来说是无感知的,但实际只是在窗口弹出的瞬间又被关闭了而已,错误窗口依然还是存在的。
[0010]上述的进程拦截方法,虽可以在一定程度上保证计算机安全,但是在实际使用时却发现其方法中还存在有若干缺点,因未能达到最佳的使用效果,而其缺点可归纳如下:
[0011]1)容易被绕过,造成安全隐患;
[0012]2)系统兼容性差,很容易产生冲突,从而出现蓝屏问题。
[0013]由此可见,上述现有的进程拦截方法在使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。如何能创设一种新的进程拦截方法,成为当前业界急需改进的目标。

技术实现思路

[0014]有鉴于此,本公开实施例提供一种基于windows的进程拦截方法,至少部分解决现有技术中存在的问题。
[0015]第一方面,本公开实施例提供了一种基于windows的进程拦截方法,所述方法包括以下步骤:
[0016]创建并初始化进程信息表;
[0017]注册内核进程通知回调和线程通知回调;
[0018]基于所述进程通知回调判断是否需要拦截当前进程;其中,当需要拦截当前进程时,将所述当前进程记录到所述进程信息表中;
[0019]基于所述线程通知回调判断当前启动线程的进程是否为需要拦截的进程;其中,当所述当前启动线程的进程为需要拦截当前进程时,对所述当前启动线程的进程进行拦截,并结束当前启动线程的进程。
[0020]根据本公开实施例的一种具体实现方式,所述方法还包括:
[0021]创建进程,并开启所述进程对象的进程空间;
[0022]初始化所述进程的进程内核对象和线程内核对象;
[0023]将所述进程的执行文件加载到内存中,并加载所述进程的所有依赖动态库;
[0024]在内核中创建所述进程的线程对象,并初始化线程对象;其中,所述线程对象为所述进程的主线程;
[0025]通过所述执行文件在所述主线程中找到程序的入口点;
[0026]调用所述入口点的位置,将执行权交给所述进程,所述进程开始执行,并开始正常运行。
[0027]根据本公开实施例的一种具体实现方式,所述方法还包括:
[0028]调用内核进程、线程创建通知回调;
[0029]基于所述通知回调获取所述进程、线程的创建动作;
[0030]当所述进程、线程发生创建动作时,判断所述进程是否为进程信息表中记录的需要拦截的进程。
[0031]根据本公开实施例的一种具体实现方式,所述方法还包括:
[0032]当所述进程为进程信息表中记录的需要拦截的进程,在内核中调用内核结束进程API结束所述进程。
[0033]根据本公开实施例的一种具体实现方式,所述基于所述进程通知回调判断是否需要拦截当前进程,包括以下步骤:
[0034]基于所述进程通知回调获取所述进程信息,匹配所述进程信息在预设的拦截策略中是否命中,当命中时判断所述进程为需要拦截的进程;以及
[0035]将所述进程信息加入到所述进程信息表。
[0036]根据本公开实施例的一种具体实现方式,所述基于所述线程通知回调判断当前启动线程的进程是否为需要拦截的进程,包括以下步骤:
[0037]基于所述线程通知回调获取所述进程信息,判断所述进程信息表中是否包含所述进程信息;其中,当所述进程信息表中包含所述进程信息时,判断需要拦截所述进程。
[0038]第二方面,本公开实施例提供了一种基于windows的进程拦截系统,所述系统包括:
[0039]初始化模块,被配置用于创建并初始化进程信息表;以及注册内核进程通知回调和线程通知回调;
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于windows的进程拦截方法,其特征在于,所述方法包括以下步骤:创建并初始化进程信息表;注册内核进程通知回调和线程通知回调;基于所述进程通知回调判断是否需要拦截当前进程;其中,当需要拦截当前进程时,将所述当前进程记录到所述进程信息表中;基于所述线程通知回调判断当前启动线程的进程是否为需要拦截的进程;其中,当所述当前启动线程的进程为需要拦截当前进程时,对所述当前启动线程的进程进行拦截,并结束当前启动线程的进程。2.根据权利要求1所述的基于windows的进程拦截方法,其特征在于,所述方法还包括:创建进程,并开启所述进程对象的进程空间;初始化所述进程的进程内核对象和线程内核对象;将所述进程的执行文件加载到内存中,并加载所述进程的所有依赖动态库;在内核中创建所述进程的线程对象,并初始化线程对象;其中,所述线程对象为所述进程的主线程;通过所述执行文件在所述主线程中找到程序的入口点;调用所述入口点的位置,将执行权交给所述进程,所述进程开始执行,并开始正常运行。3.根据权利要求2所述的基于windows的进程拦截方法,其特征在于,所述方法还包括:调用内核进程、线程创建通知回调;基于所述通知回调获取所述进程、线程的创建动作;当所述进程、线程发生创建动作时,判断所述进程是否为进程信息表中记录的需要拦截的进程。4.根据权利要求3所述的基于windows的进程拦截方法,其特征在于,所述方法还包括:当所述进程为进程信息表中记录的需要拦截的进程,在内核中调用内核结束进程API结束所述进程。5.根据权利要求1所述的基于windows的进程拦截方法,其特征在于,所述基于所述进程通知回调判断是否需要拦截当前进程,包括以下步骤:基于所述进程通知回调获取所述进程信息,匹配所述进程信息在预设的拦截策略中是否命中,当命中时判断所述进程为需要拦截的进程;以及将所述进程信息加入到所述进程信息表。6.根据权利要求1所述的...

【专利技术属性】
技术研发人员:郭昌盛邱斌王磊姜昱西
申请(专利权)人:北京江民新科技术有限公司
类型:发明
国别省市:

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

1