基于操作系统驱动的进程防护方法技术方案

技术编号:33389926 阅读:15 留言:0更新日期:2022-05-11 23:06
本发明专利技术公开了一种基于操作系统驱动的进程防护方法,涉及安全防护技术领域。所述的基于操作系统驱动的跨平台软件的进程防护方法,包括以下步骤:检测跨平台软件的进程是否正在运行,并将所述的跨平台软件的进程的ID号发送给操作系统的驱动;若监控到所述的跨平台软件的进程被关闭,所述的操作系统的驱动创建线程函数体,并将所述的线程函数体的线程参数拷贝至操作系统的进程地址空间内;操作系统的驱动调用内核模块来重启新的进程。该方法保护进程内存的安全,并实现对代理内存的安全防护,保护目标进程不被破坏,提高跨平台软件的进程安全,提升用户体验。提升用户体验。提升用户体验。

【技术实现步骤摘要】
基于操作系统驱动的进程防护方法


[0001]本专利技术涉及安全防护
,尤其涉及一种基于操作系统驱动的进程防护方法。

技术介绍

[0002]随着科技的飞速发展,众多电子产品跨入智能化触摸屏时代,如智能手机,ipad等。智能化电子产品具有独立的操作系统,可由用户根据自己的需要自行安装各种第三方服务商提供的应用软件,通过此类应用软件,可以扩展智能化电子产品的功能。智能化电子产品的开放性及可操作性强等特性决定了其应用范围广泛。
[0003]近年来,随着安全日显重要,尤其是大量恶意程序的出现,使得计算机系统及软件程序的“劫持”问题现象比较严重。虽然许多安全公司也一直与恶意程序做斗争,但威胁扔在不断演化。总的来说,当前软件程序面临的威胁,按接受威胁方式和程度,可分为如下几种:(1)恶意阻塞,这是最直接的恶意威胁方式,如恶意程序对目标程序直接挂起或者结束进程,从而阻塞其正常执行。(2)恶意破坏:恶意破坏的方式算是恶意阻塞的程度升级,通过恶意程序或人为操作对目标程序进行破坏操作。具体的方法有很多,比如实施DoS攻击、破坏软件程序模块关联、直接反卸载删除等等。(3)息窃取:信息的泄露是当前日常生活面临最大的安全问题,具体到软件本身而言亦不例外,尤其是对于那些交互性或连接数据库的软件程序,一旦被恶意劫持或者暗中信息截获,则造成私密信息的泄露。(4)恶意篡改:程序恶意篡改亦可看作是信息窃取的威胁升级,这时被编制的恶意程序已不满足于简单的信息截获,而是试图通过对目标软件的间接控制(比如传递自己的参数),来使程序按照自己的意图去继续执行,从而达到控制的目的。这种方式尤其适用于有交互性界面操作的软件,恶意程序试图直接或间接控制软件窗口来取代用户操作,从而对目标软件予以篡改攻击。对于上面提到的威胁手段,当前众多软件程序在这些方面的防护是很不到位的,国内外也普遍缺乏对这方面的重视与研究。电子产品在运行过程中,需要依赖自身安装的操作系统,操作系统可以分为多种类型,如安卓操作系统,windows操作系统,ios操作系统等,由于安卓操作系统是一种基于Linux的自由开放的源代码操作系统,其允许多个应用软件(即应用程序)同时运行;当一个应用程序从前台运行切换至后台运行时,由于内存资源紧张或者由于系统管理软件设置问题,会将运行于后台的应用程序关闭,从而导致用户希望运行的应用程序无法运行的问题。例如,用户通过在电子产品中运行即时通讯应用程序,完成实时通讯;当用户不希望关闭该即时通讯应用程序,且需要运行其他应用程序或者进入待机界面时,将通过电子产品控制即时通讯应用程序切换至后台运行,当系统内存资源紧张时,操作系统将优先结束所有后台运行的各个应用程序,以释放更多的内存资源;此时,即时通讯应用程序将被关闭,电子产品将无法接收到其他用户通过即时通讯应用程序发送的信息。
[0004]现有技术情况如下:
[0005]现有技术1

申请号:CN201210528528.7,公开了一种在软件系统中实现软件看门狗的方法,其内容如下:本专利技术公开了一种监视软件系统稳定性的方法,尤其涉及一种在软
件系统中实现软件看门狗的方法,该方法包括:创建TCP连接,收被监控进程的TCP连接请求,被监控进程通过TCP连接向监控进程发送本进程信息,监控进程监听与所有被监控进程之间TCP连接状态,当被监控进程异常退出后,断开相应的TCP连接,判断对应的被监控进程已经异常退出,重启被监控进程,使软件系统恢复正常。本专利技术的作用是:采用了该专利技术的软件系统中利用TCP连接来监控系统状态的方法,能够在软件系统的进程真正异常退出时自动恢复,极大提高了软件系统的稳定性,且由于使用标准的TCP连接,实现非常简单可靠。
[0006]现有技术2

申请号:CN202010912676.3,公开了一种进程的保护方法及装置,其内容如下:本申请公开了一种进程的保护方法及装置。所述方法包括:一种进程的保护方法,包括:接收目标进程启动的事件;通过所述目标进程对应的互斥锁得到所述目标进程对互斥锁的占有情况;当判断所述目标进程退出时,对所述目标进程执行启动操作。采用本申请所提供的方案,能够在目标进程退出时,再次启动该目标进程,实现了对特定的进程进行保护的目的,避免由于用户误关闭特定进程、第三方程序恶意关闭特定进程等原因而导致系统服务或特定程序无法正常使用,提升了用户的使用体验。
[0007]但上述现有技术存在以下问题:现有对于程序防护的相关方法基本都是从第三方角度出发的,比如用A来防护B,以防止被C攻击。这样其功能还是等同于第三方主动防御软件,使其仍然还需考虑对A自身的防护,从而陷入一种思路上的“死循环”;而且很多也只是关注于如何对单一目标B进行防护,没有起到一种通用防护作用。而如果直接对程序自身做了一定的安全处理,就会更有效地起到防护作用,降低这种程序控制权被强制剥夺或干扰的可能。

技术实现思路

[0008]1、要解决的问题
[0009]针对上述现有技术存在的问题,本专利技术提出一种基于操作系统驱动的跨平台软件的进程防护方法,主要解决跨平台软件的进程的安全防护较难的问题。
[0010]2、技术方案
[0011]为解决上述问题,本专利技术采用如下的技术方案。
[0012]一种基于操作系统驱动的进程防护方法,具体包括以下几个步骤:
[0013]第一步,检测跨平台软件的进程是否正在运行,并将所述的跨平台软件的进程的ID号发送给操作系统的驱动,所述的操作系统的驱动使用OpenProcess函数进行所述的跨平台软件的进程的监控;
[0014]其中所述的OpenProcess函数存储在操作系统的API库中;所述的跨平台软件的进程的监控利用影子内核方式来实现,影子内核通过加电启动来加载所述的跨平台软件的进程对应的内存数据镜像至操作系统的物理内存中。
[0015]其中,所述的影子内核数据镜像的校验步骤如下:
[0016](1)将内核镜像以PE文件格式进行内存映射,加载内核镜像文件中的代码及数据,形成影子内核代码初始态;
[0017](2)影子内核数据未经历系统开机启动时刻的内核初始化,需重定位到原内核数据,影子内核才能正常执行;依据影子内核代码及数据与原内核代码及数据相对位置不变这一原理,有:
[0018]D
actual

D
actual_imageBase
=D
default

D
default_imageBase
ꢀꢀꢀ
(I)
[0019]式中,D
actual_imageBase
是原内核加载基地址;D
actual
是原内核中数据的正确值地址,也是影子内核重定向数据指向的数据位置;D
default_imageBase
是影子内核加载基地址;D
default
是重定向表给出的需要修复的重定向数据地址,如内核中的全局数据;
...

【技术保护点】

【技术特征摘要】
1.一种基于操作系统驱动的进程防护方法,其特征在于,包括以下步骤:(1)检测跨平台软件的进程是否正在运行,并将所述的跨平台软件的进程的ID号发送给操作系统的驱动,所述的操作系统的驱动使用OpenProcess函数进行所述的跨平台软件的进程的监控;(2)若监控到所述的跨平台软件的进程被关闭,所述的操作系统的驱动创建线程函数体,并将所述的线程函数体的线程参数拷贝至操作系统的进程地址空间内;(3)所述的操作系统的驱动调用内核模块来重启新的进程。2.根据权利要求1所述的基于操作系统驱动的进程防护方法,其特征在于:步骤(1)中OpenProcess函数存储在操作系统的API库中;步骤(1)中所述的跨平台软件的进程的监控利用影子内核方式来实现,影子内核通过加电启动来加载所述的跨平台软件的进程对应的内存数据镜像至操作系统的物理内存中。3.根据权利要求2所述的基于操作系统驱动的进程防护方法,其特征在于:所述的影子内核数据镜像的校验步骤如下:(1)将内核镜像以PE文件格式进行内存映射,加载内核镜像文件中的代码及数据,形成影子内核代码初始态;(2)影子内核数据未经历系统开机启动时刻的内核初始化,需重定位到原内核数据,影子内核进行正常执行;依据影子内核代码及数据与原内核代码及数据相对位置不变这一原理,有:D
actual

D
actual_imageBase
=D
default

D
default_imageBase
(Ⅰ)式中,D
actual_imageBase
是原内核加载基地址;D
actual
是原内核中数据的正确值地址,也是影子内核重定向数据指向的数据位置;D
default_imageBase
是影子内核加载基地址;D
default
是重定向表给出的需要修复的重定向数据地址;(3)修复影子内核系统调用表中系统调用的地址,使其指向影子内核纯净的可执行代码;根据影子内核加载基地址与原内核加载基地址之间的偏移,可依据式(2)确定每一个系统调用函数地址:NewSSDTFuncAddr=OrigSSDTFuncAddr+Δ
ꢀꢀꢀꢀ
(Ⅱ)式中,NewSSDTFuncAddr是影子内核SSDT表中的某个系统调用函数地址;OrigSSDTF uncAddr是原内核SSDT表中对应的系统调用函数地址;Δ是影子内核加载基地址与原内核加载基地址之间的偏移量。4.根据权利要求3所述的基于操作系统驱动的进程防护方法,其特征在于:步骤(2)中所述的线程函数体为影子内核自动产生的BLAS库函数体,其中自动产生方法为影子内核利用系统钩子将LoadLibarary函数加载至空白的dll模块上。5.根据权利要求4所述的基于操作系统驱动的进程防护方法,其特征在于:步骤(2)中系统钩子的使用方法如下:(1)创建钩子函数,其中,所述钩子函数中包含第一参数和第二参数,所述第一参数用于保存所述的跨平台软件的进程的句柄,所述第二参数用于保存所述的跨平台软件的进程的属性信息;(2)将所述的钩子函数的函数地址替换所述的操作系统的服务描述符表SSDT表中用于
设置所述的跨平台软件的内核函数的原始函数地址;(3)根据所述第一参数和所述第二参数判断当前所述的操作系统是否满足进程保护条件;(4)如果当前所述的操作系统满足所述进程保护条件,则通过所述的钩子函数拦截对所述的跨平台软件的进程的属性设置。6.根据权利要求4所述的基于操作系统驱动的进程防护方法,其特征在于:所述的系统钩子拦截对所述...

【专利技术属性】
技术研发人员:夏春宇苗维杰
申请(专利权)人:杭州立思辰安科科技有限公司
类型:发明
国别省市:

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

1