CN100489730C - 实时检查进程完整性的方法与系统 - Google Patents

实时检查进程完整性的方法与系统 Download PDF

Info

Publication number
CN100489730C
CN100489730C CNB2005101340815A CN200510134081A CN100489730C CN 100489730 C CN100489730 C CN 100489730C CN B2005101340815 A CNB2005101340815 A CN B2005101340815A CN 200510134081 A CN200510134081 A CN 200510134081A CN 100489730 C CN100489730 C CN 100489730C
Authority
CN
China
Prior art keywords
described process
hashed value
whole procedure
corresponding whole
time
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.)
Expired - Fee Related
Application number
CNB2005101340815A
Other languages
English (en)
Other versions
CN1987717A (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CNB2005101340815A priority Critical patent/CN100489730C/zh
Publication of CN1987717A publication Critical patent/CN1987717A/zh
Application granted granted Critical
Publication of CN100489730C publication Critical patent/CN100489730C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

根据本发明,提出了一种实时检查进程完整性的方法,所述方法包括:监视即将在内存中运行的进程并判断所述进程是否为第一次执行的进程;如果所述进程为第一次执行的进程,则收集与所述进程的散列值和与所述进程相对应的整个程序的散列值并存储在进程参考表中;如果所述进程并非第一次执行的进程,则利用进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值,来验证所述进程和与所述进程相对应的整个程序的完整性;在所述进程和与所述进程相对应的整个程序的完整性验证结果为不完整的情况下,则恢复所述进程和与所述进程相对应的整个程序。

Description

实时检查进程完整性的方法与系统
技术领域
本发明提出了一种实时检查进程完整性的方法与系统。
背景技术
目前存在多种对进程完整性进行检测的方法。例如,存在一些基于签名的方法(诸如杀毒软件)。例如,卡巴斯基杀毒软件扫描内存通过列举所有的进程模块名然后找到他们在磁盘上的镜像文件,对相应的镜像文件进行基于特征码的扫描。另外,还存在基于文件名的检测的方法。例如,Norton(诺顿)通过ZwQuerySystemInformation函数取得系统加载的所有驱动列表来检查内核态驱动病毒,并结合特征码扫描和对文件的完整性检查。
但是所有这些方法均不能动态地检测被破坏或篡改的进程。
因此,需要一种实时检查进程完整性的方法与系统,从而能够动态地检测被破坏或篡改的进程。
发明内容
本发明的目的是提供一种实时检查进程完整性的方法与系统,能够安全可靠且实时地检测系统进程完整性,以便及时发现被修改的进程并进行修复以保证系统安全稳定地运行,由此,能够动态地检测被破坏或篡改的进程。
为了实现上述目的,根据发明,提出了一种实时检查进程完整性的方法,所述方法包括:监视即将在内存中运行的进程并判断所述进程是否为第一次执行的进程;如果所述进程为第一次执行的进程,则收集所述进程的散列值和与所述进程相对应的整个程序的散列值并存储在进程参考表中;如果所述进程并非第一次执行的进程,则利用进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值,来验证所述进程和与所述进程相对应的整个程序的完整性;在所述进程和与所述进程相对应的整个程序的完整性验证结果为不完整的情况下,则恢复所述进程和与所述进程相对应的整个程序,其中,所述进程的散列值是与所述进程相对应的整个程序的代码段的散列值。
优选地,所述判断所述进程是否为第一次执行的进程的步骤是通过查看进程参考表来实现的。
优选地,所述进程的散列值是与所述进程相对应的整个程序的代码段的散列值。
优选地,所述利用进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值、来验证所述进程和与所述进程相对应的整个程序的完整性的步骤包括:将进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值与所述即将在内存中运行的进程的当前散列值和与磁盘中所存储的与所述即将运行的进程相对应的程序的当前散列值进行比较,如果两个比较均一致,则表明所述进程和与所述进程相对应的整个程序的完整性验证结果为完整的。
优选地,所述恢复所述进程和与所述进程相对应的整个程序的步骤包括:利用预先存储的防止非法访问的整个程序的副本来恢复内存中的所述进程、和磁盘中的与所述进程相对应的整个程序。
根据本发明,还提出了一种实时检查进程完整性的系统,所述系统包括:进程实时监测模块,监视即将在内存中运行的进程并判断所述进程是否为第一次执行的进程;如果所述进程为第一次执行的进程,则指示完整性信息采集模块执行散列值收集操作;而如果所述进程并非第一次执行的进程,则验证所述进程和与所述进程相对应的整个程序的完整性;如果验证结果为不完整,则指示进程修复模块进行修复;完整性信息采集模块,用于收集所述进程的散列值和与所述进程相对应的整个程序的散列值并存储在进程参考表中;进程修复模块,用于恢复所述进程和与所述进程相对应的整个程序;进程参考表,用于存储来自完整性信息采集模块的所述进程的散列值和与所述进程相对应的整个程序的散列值,以便由进程实时监测模块利用其来验证完整性,其中,所述进程的散列值是与所述进程相对应的整个程序的代码段的散列值。
优选地,所述系统还包括:程序代码段存储区,用于存储即将运行的进程指令集;程序执行文件存储区,用于存储与所述即将运行的进程相对应的程序;程序文件副本存储区,用于存储与所述即将运行的进程相对应的程序的副本,以便由进程修复模块来恢复所述进程和与所述进程相对应的整个程序。
优选地,所述程序执行文件存储区和所述程序文件副本存储区由存储磁盘来实现。
优选地,所述程序代码段存储区由内存来实现。
优选地,所述进程实时监测模块包括线程调度监视模块,用于监视即将在内存中运行的进程并判断所述进程是否为第一次执行的进程;以及完整性校验模块,用于利用进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值,来验证所述进程和与所述进程相对应的整个程序的完整性。
优选地,所述进程的散列值是与所述进程相对应的整个程序的代码段的散列值。
附图说明
通过参考以下结合附图对所采用的优选实施例的详细描述,本发明的上述目的、优点和特征将变得显而易见,其中:
图1是根据本发明的实时检查进程完整性的系统的示意方框图;
图2是根据本发明的实时检查进程完整性的系统的详细方框图;
图3是根据本发明,收集进程完整性散列值摘要信息过程的流程图;以及
图4是根据本发明的实时检查进程完整性的方法的整体流程图。
具体实施方式
本发明的主要思想是检查进程对应的磁盘镜像文件的完整性,检查进程在内存空间代码段的完整性。完整性检查主要是通过消息摘要算法(例如MD5算法)来计算散列值(HASH值)。现代操作系统中程序代码段通常是只读的,程序自身不会修改其代码段的数据。只有一些恶意程序会修改其它程序代码段的只读属性,提升自身权限修改其他程序的代码或者注入一些恶意代码。如果一个程序在内存中的代码段的完整性被破坏则基本可以判定是被病毒或者恶意软件所破坏或篡改。
下面将参考附图来描述本发明的优选实施例。
图1是根据本发明的实时检查进程完整性的系统的示意方框图。
如图1所示,本发明的实时检查进程完整性的系统包括进程实时监测模块101、进程修复模块102、完整性信息采集模块103、磁盘104和内存105。
进程实时监测模块101负责对系统中所有已经被加载和正被加载的进程进行完整性检查,其中,对于已经加载的进程通过检查其内存空间中代码段的完整性,而对于正在加载的进程通过其磁盘镜像文件来检测完整性。当进程实时监测模块101发现被破坏的进程时,及时通知进程修复模块102作相应的进程修复工作。完整性信息采集模块103收集系统进程完整性信息样本(散列值)。内存105用于存储进程,作为示例,图1中示出了多个进程。磁盘104用于存储与所述进程相对应的各个程序,作为示例,图1中也示出了与所述多个进程对应的多个程序。
图2是根据本发明的实时检查进程完整性的系统的详细方框图。
如图2所示,根据本发明的系统除了包括上述的进程实时监测模块101、进程修复模块102、完整性信息采集模块103之外,还包括:进程参考表204,用于存储来自完整性信息采集模块103的进程的散列值和与所述进程相对应的整个程序的散列值,以便由进程实时监测模块101利用其来验证完整性;程序代码段存储区207,用于存储即将运行的进程指令集;程序执行文件存储区206,用于存储与所述即将运行的进程相对应的程序;以及程序文件副本存储区205,用于存储与所述即将运行的进程相对应的程序的副本,以便由进程修复模块102来恢复所述进程和与所述进程相对应的整个程序。所述程序执行文件存储区206和所述程序文件副本存储区205可以由存储磁盘来实现。而所述程序代码段存储区207可以由内存来实现。
另外,所述进程实时监测模块101包括线程调度监视模块202,用于监视即将在内存中运行的进程并判断所述进程是否为第一次执行的进程;以及完整性校验模块201,用于利用进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值,来验证所述进程和与所述进程相对应的整个程序的完整性。
根据本发明的本系统不仅检查存放在硬盘上进程对应的镜像文件完整性,还通过实时监控模块动态检测进程在内存中代码段的完整性。可以及时发现被破坏或篡改的恶意代码并进行及时修复。
图3是根据本发明,收集进程完整性散列值摘要信息过程的流程图。
如图3所示,当磁盘中的一个程序被用户首次安装后的第一次执行的时候,即当将要在内存中执行与该程序相对应的进程时,进程实时监测模块101会截获这个事件(步骤301)。然后,进程实时监测模块101暂停执行其正在运行的过程,来检查与该程序相对应的进程是否在进程参考表中有记录;如果没有记录则认为这个程序(进程)是首次安装执行并加载该程序来执行与该程序相对应的进程(步骤303);此时,由完整性信息采集模块103采集整个程序的散列值、以及与该程序相对应的进程的散列值,所述进程的散列值为该程序加载到内存中的对应代码段的散列值(步骤305),并且将整个程序的散列值和对应进程的散列值分别存入进程参考表中(步骤307)。附带地说,如果进程参考表中有这个程序的记录,则由进程实时监测模块101对与该程序相对应的进程进行校验。
图4是根据本发明的实时检查进程完整性的方法的整体流程图。
如图4所示,开始,由进程实时监测模块101监视下一个即将运行的线程所对应进程,以便随后检测其是否完整(步骤401)。此时,当进入所述进程时,检查所述进程是否为第一次运行(步骤403)。如果是第一次运行(步骤403的是),则通知完整性信息采集模块103收集所述进程的完整性信息(散列值)(步骤405),收集所述进程的完整性信息的过程在图3已经进行了详细描述。
如果并非第一次运行(步骤403中的否),则执行完整性校验(步骤407),此时,将内存中的该进程的当前散列值与进程参考表中的与该进程相对应的散列值进行比较,并且将磁盘中的与该进程相对应的整个程序的当前散列值与进程参考表中的所存储的与所述整个程序对应的散列值进行比较(步骤409)。如果两次比较的结果均为一致(步骤411中的是),即,表示完整性校验结果为完整,则继续后续操作的正常运行。而相反,则表示完整性校验结果为不完整,此时由进程修复模块102来执行恢复过程(413),即,由进程修复模块102利用所存储的受保护的与该进程相对应的程序备份来恢复磁盘中的该程序和内存中的该进程。
根据本发明,能够查杀未知病毒而不会破坏进程本身功能的执行。另外,可以查杀内存中的病毒或者恶意代码。此外,还能够防止线程注射式的攻击。
尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。

Claims (9)

1、一种实时检查进程完整性的方法,所述方法包括:
监视即将在内存中运行的进程并判断所述进程是否为第一次执行的进程;
如果所述进程为第一次执行的进程,则收集所述进程的散列值和与所述进程相对应的整个程序的散列值并存储在进程参考表中;
如果所述进程并非第一次执行的进程,则利用进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值,来验证所述进程和与所述进程相对应的整个程序的完整性;
在所述进程和与所述进程相对应的整个程序的完整性验证结果为不完整的情况下,则恢复所述进程和与所述进程相对应的整个程序;
其中,所述进程的散列值是与所述进程相对应的整个程序的代码段的散列值。
2、根据权利要求1所述的方法,其特征在于所述判断所述进程是否为第一次执行的进程的步骤是通过查看进程参考表来实现的。
3、根据权利要求1所述的方法,其特征在于所述利用进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值、来验证所述进程和与所述进程相对应的整个程序的完整性的步骤包括:将进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值与所述即将在内存中运行的进程的当前散列值和与磁盘中所存储的与所述即将运行的进程相对应的程序的当前散列值进行比较,如果两个比较均一致,则表明所述进程和与所述进程相对应的整个程序的完整性验证结果为完整的。
4、根据权利要求1所述的方法,其特征在于所述恢复所述进程和与所述进程相对应的整个程序的步骤包括:利用预先存储的防止非法访问的整个程序的副本来恢复内存中的所述进程、和磁盘中的与所述进程相对应的整个程序。
5、一种实时检查进程完整性的系统,所述系统包括:
进程实时监测模块,监视即将在内存中运行的进程并判断所述进程是否为第一次执行的进程;如果所述进程为第一次执行的进程,则指示完整性信息采集模块执行散列值收集操作;而如果所述进程并非第一次执行的进程,则验证所述进程和与所述进程相对应的整个程序的完整性;如果验证结果为不完整,则指示进程修复模块进行修复;
完整性信息采集模块,用于收集所述进程的散列值和与所述进程相对应的整个程序的散列值并存储在进程参考表中;
进程修复模块,用于恢复所述进程和与所述进程相对应的整个程序;
进程参考表,用于存储来自完整性信息采集模块的所述进程的散列值和与所述进程相对应的整个程序的散列值,以便由进程实时监测模块利用其来验证完整性,
其中,所述进程的散列值是与所述进程相对应的整个程序的代码段的散列值。
6、根据权利要求5所述的系统,其特征在于还包括:程序代码段存储区,用于存储即将运行的进程指令集;程序执行文件存储区,用于存储与所述即将运行的进程相对应的程序;程序文件副本存储区,用于存储与所述即将运行的进程相对应的程序的副本,以便由进程修复模块来恢复所述进程和与所述进程相对应的整个程序。
7、根据权利要求6所述的系统,其特征在于所述程序执行文件存储区和所述程序文件副本存储区由存储磁盘来实现。
8、根据权利要求6所述的系统,其特征在于所述程序代码段存储区由内存来实现。
9、根据权利要求5所述的系统,其特征在于所述进程实时监测模块包括线程调度监视模块,用于监视即将在内存中运行的进程并判断所述进程是否为第一次执行的进程;以及完整性校验模块,用于利用进程参考表中所存储的所述进程的散列值和与所述进程相对应的整个程序的散列值,来验证所述进程和与所述进程相对应的整个程序的完整性。
CNB2005101340815A 2005-12-23 2005-12-23 实时检查进程完整性的方法与系统 Expired - Fee Related CN100489730C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101340815A CN100489730C (zh) 2005-12-23 2005-12-23 实时检查进程完整性的方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101340815A CN100489730C (zh) 2005-12-23 2005-12-23 实时检查进程完整性的方法与系统

Publications (2)

Publication Number Publication Date
CN1987717A CN1987717A (zh) 2007-06-27
CN100489730C true CN100489730C (zh) 2009-05-20

Family

ID=38184541

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101340815A Expired - Fee Related CN100489730C (zh) 2005-12-23 2005-12-23 实时检查进程完整性的方法与系统

Country Status (1)

Country Link
CN (1) CN100489730C (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306261A (zh) * 2011-09-02 2012-01-04 福建四创软件有限公司 基于网络和u盘相结合的软件自动升级及防篡改方法
CN104077522A (zh) * 2014-06-30 2014-10-01 江苏华大天益电力科技有限公司 一种操作系统进程完整性检测方法
CN104268461B (zh) * 2014-09-16 2018-03-06 华为技术有限公司 一种可信度量方法及装置
CN106709337A (zh) * 2015-11-18 2017-05-24 中兴通讯股份有限公司 一种恶意捆绑软件的处理方法和装置
CN106095558B (zh) * 2016-06-16 2019-05-10 Oppo广东移动通信有限公司 一种音效处理的方法及终端
CN107194249A (zh) * 2017-05-22 2017-09-22 福州汇思博信息技术有限公司 系统攻击检测方法及其系统
CN108199827B (zh) * 2018-01-09 2021-09-07 武汉斗鱼网络科技有限公司 客户端代码完整性校验方法、存储介质、电子设备及系统
CN109918907B (zh) * 2019-01-30 2021-05-25 国家计算机网络与信息安全管理中心 Linux平台进程内存恶意代码取证方法、控制器及介质

Also Published As

Publication number Publication date
CN1987717A (zh) 2007-06-27

Similar Documents

Publication Publication Date Title
CN100489730C (zh) 实时检查进程完整性的方法与系统
CN102799500B (zh) 系统修复方法及装置
CN102736978B (zh) 一种检测应用程序的安装状态的方法及装置
US8132257B2 (en) Anti-virus method based on security chip
US20090313699A1 (en) Apparatus and method for preventing anomaly of application program
US10121004B2 (en) Apparatus and method for monitoring virtual machine based on hypervisor
CN109558726B (zh) 一种基于动态分析的控制流劫持攻击检测方法与系统
CN107688531A (zh) 数据库集成测试方法、装置、计算机设备及存储介质
US9734330B2 (en) Inspection and recovery method and apparatus for handling virtual machine vulnerability
US9860261B2 (en) System for analyzing and maintaining data security in backup data and method thereof
CN103428212A (zh) 一种恶意代码检测及防御的方法
CN101145983B (zh) 一种网管系统的自诊断和自恢复子系统及方法
JP2006330864A (ja) サーバ計算機システムの制御方法
KR101327740B1 (ko) 악성코드의 행동 패턴 수집장치 및 방법
CN105760264A (zh) 一种检测服务器故障硬件设备的方法及装置
CN102110204A (zh) 用以检验一计算装置的一可执行文件的可移除装置及方法
JP2010182020A (ja) 不正検知装置およびプログラム
CN108959915A (zh) 一种rookit检测方法、装置及服务器
US11256492B2 (en) Computer program trust assurance for internet of things (IoT) devices
CA3121054A1 (en) Computer program trust assurance for internet of things (iot) devices
CN107403097A (zh) 一种核心系统软件运行过程保护方法
KR101421630B1 (ko) 코드 인젝션된 악성코드 탐지 시스템 및 방법
CN101739519B (zh) 用于一硬件的监控装置及监控方法
KR101650445B1 (ko) 커널 기반의 파일이벤트감사 기능을 이용한 실시간 웹셀 탐지 장치 및 방법
US11574049B2 (en) Security system and method for software to be input to a closed internal network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090520

Termination date: 20201223

CF01 Termination of patent right due to non-payment of annual fee