著录项信息
专利名称 | WINDOWS NT进程自动保护系统 |
申请号 | CN01139035.2 | 申请日期 | 2001-12-04 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2002-05-22 | 公开/公告号 | CN1350228 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 上海复旦光华信息科技股份有限公司 | 申请人地址 | 上海市邯郸路191号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 上海复旦光华信息科技股份有限公司 | 当前权利人 | 上海复旦光华信息科技股份有限公司 |
发明人 | 张世永;李松年;杨明 |
代理机构 | 上海交达专利事务所 | 代理人 | 毛翠莹 |
摘要
一种WINDOWS NT进程自动保护系统,主要由性能监测模块、规则匹配模块和执行模块组成,并设置了守护进程构成自保护机制。由性能监测模块监测搜集系统中进程的运行指标并上报给规则匹配模块,由规则匹配模块通过设定自动响应规则对指标进行判断处理,并将进程操作命令传递到执行模块,由执行模块实施保证系统正常运行的启停操作,守护进程则对这些模块进行进程监测保护。本发明具有双层自动保护作用,能够对特定的服务进程进行监控和管理,对于发生异常或被攻击死亡的进程能够自动重新启动,同时通过自保护机制保护了自身的安全,避免被逐个击破的危险,有效地解决了系统的安全问题。
1、一种WINDOWS NT进程自动保护系统,其特征在于主要由性能监测模 块、规则匹配模块和执行模块组成,并设置了守护进程构成双层自保护机制, 性能监测模块、规则匹配模块和执行模块都作为WINDOWS NT代理服务进程 的子进程随着服务进程的启动而启动,同时又受到服务进程的保护,相互协调 工作,NT代理被植入到每个被监测主机/服务器中,在WINDOWS NT系统启动 后就开始在后台运行;规则匹配模块与上层管理中心相连,并分别与性能监测 模块和执行模块相连,性能监测模块和执行模块与操作系统相连;性能监测模 块监测系统中与实际运行进程的运行情况相关的各种性能指标,包括CPU占有 率,内存使用率,硬盘空间剩余情况,网络连接的性能指标,并将监测到的进 程的运行指标上报给规则匹配模块;规则匹配模块通过设定自动响应规则对性 能监测模块搜集到的性能指标进行判断处理,对于触犯规则的情况,则将根据 规则设定,指示执行模块进行相应的处理;执行模块根据规则匹配模块发送过 来的命令,对出现问题的进程实施启停的操作,以保证其能够在正常状态下运 行;守护进程分别与性能监测模块、规则匹配模块及执行模块相连,进行进程 监测保护,一旦其中一个模块因故退出,守护进程就将该模块重新启动,同时 系统也将守护进程作为监测的对象,一旦发生意外退出情况,由执行模块将守 护进程重新启动。
技术领域\n本发明涉及一种Windows NT平台服务进程的自动保护系统,属于计算机技 术领域。\n背景技术\n随着信息技术的普及与发展,愈来愈多的业务通过计算机系统来实现。通过 计算机系统上运行的各种应用或服务程序,人们可以完成很多工作。\n在所有的计算机系统中,Microsoft Windows NT系统因其卓越的稳定性成为 计算机系统中服务器的首选方案,Windows NT系统所提供的各种增值服务主要 由各种基于Windows NT体系架构的进程来实现,例如Internet Information Service提供了WWW、FTP、TELNET等服务,Microsoft Exchange则提供了局 域网内部的邮件和信息交流服务,还有各种的数据库服务,邮件服务等也都是 由相关的服务进程来实现的。这些进程,特别是后台运行的各种服务进程的正 常运行,是保证Windows网络中可用服务的关键,一旦这些程序因为某种原因 停止运行,势必造成系统服务的瘫痪,影响到整个信息业务流程,甚至能使整 个系统崩溃。\n造成这些服务进程无法正常运行的原因主要有以下几点:\n1.服务进程本身的逻辑错误或者设置错误;\n2.相关进程发生错误或者相互协调出现问题;\n3.进程需要的资源得不到满足;\n4.受到其他进程的攻击,被强制退出。\n其中前面两个原因是进程的内部因素,只能通过升级程序、给程序打补丁、 或者进行正确配置来解决。对于后面两个原因,则是进程的外部因素,可以通 过一些监测和控制方法使进程的资源得到保证,防止进程的不正常退出等等, 这些方法被称为计算机进程控制和保护方法。\n中国专利申请97197581号中公开了一种调节数字计算机中应用程序性能的 方法,实时地监视和控制一个应用程序在计算机上执行时所达到的性能水平。 应用这个性能调节程序,可以防止任何连在计算机上的外部单元由于应用程序 中的过度性能而过载。\n上述方法,解决了单一应用程序的性能控制问题,通过对某一个资源消耗大 的应用程序的性能控制达到保护其他应用程序资源的目的。但是现在,由于软 件开发水平的大大提高,在一台服务器上运行多个大型服务进程,如IIS、数据 库、EXCHANGE等等,都是可能的,单单对一个服务进程进行性能控制和保护 并不能完全的保护其他的进程不受影响,从而也无法保证整个系统能够提供稳 定优质的服务。\n为了更好的了解计算机系统中的全部服务进程的运行状态、对系统资源的影 响,从而有效地对服务进程控制管理,Windows NT系统本身提供了一个非常有 用的小工具——“Windows NT任务管理器”(taskmgr.exe),这个工具能够查看 计算机系统中当前运行的所有应用程序,能够查看计算机系统中执行的所有进 程,以及每个进程的进程号、即时的CPU使用率、CPU占用时间和内存使用情 况,能够查看整个计算机系统即时的CPU、内存和进程线程情况。除此之外, 该工具还能够将异常和占用资源过大的进程杀死保证整个系统的运行正常。\n任务管理器已经能够实现进程的控制和保护功能,但是还是存在以下的不 足:\n1.任务管理器只能进行进程监测,对于控制功能需要系统管理员手动操作, 因而实时响应能力不强。\n2.任务管理器只能对性能的两个主要部分(CPU和内存)进行监测,对其 他的性能指标则无能为力,例如单位时间内HTTP请求超过一定范围, IIS就可能遭到攻击,这时就要采取相应的措施,但是通过任务管理器就 无法查到这种情况。\n发明内容\n本发明的目的在于针对已有技术的上述不足,给出一个WINDOWS NT服 务器进程自动保护系统,通过对服务器进程相关性能的监测,及时发现进程自 身或者外部的隐患,并自动的通过启停等手段,使得服务器进程在服务器运行 过程中,始终保持正常的状态运行。\n为实现这样的目的,在本发明的技术方案中,保护系统主要由性能监测模块、 规则匹配模块和执行模块组成,并设置了守护进程构成双层自保护机制,性能 监测模块、规则匹配模块和执行模块都作为WINDOWS NT代理服务进程的子 进程随着服务进程的启动而启动,同时又受到服务进程的保护,相互协调工作, NT代理被植入到每个被监测主机/服务器中,在WINDOWS NT系统启动后就开 始在后台运行;规则匹配模块与上层管理中心相连,并分别与性能监测模块和 执行模块相连,性能监测模块和执行模块与操作系统相连;性能监测模块监测 系统中与实际运行进程的运行情况相关的各种性能指标,包括CPU占有率,内 存使用率,硬盘空间剩余情况,网络连接的性能指标,并将监测到的进程的运 行指标上报给规则匹配模块;规则匹配模块通过设定自动响应规则对性能监测 模块搜集到的性能指标进行判断处理,对于触犯规则的情况,则将根据规则设 定,指示执行模块进行相应的处理;执行模块根据规则匹配模块发送过来的命 令,对出现问题的进程实施启停的操作,以保证其能够在正常状态下运行;守 护进程分别与性能监测模块、规则匹配模块及执行模块相连,进行进程监测保 护,一旦其中一个模块因故退出,守护进程就将该模块重新启动,同时系统也 将守护进程作为监测的对象,一旦发生意外退出情况,由执行模块将守护进程 重新启动。\n通过这样的设计,除非守护进程和执行模块同时异常退出,否则本发明的保 护系统可以保证一直都在系统中起作用。\n本发明系统的运行使用了以下的核心技术:\n1、Windows NT环境下获取进程的运行状态方法\n本发明的性能监测模块通过调用PSAPI函数获取系统进程信息。\nMicrosoft的Windows NT开发小组开发了自己Process Status函数,包含 在PSAPI.DLL文件中,这些函数能在NT4.0中使用。PSAPI一共有14个函数 [实际PSAPI.DLL输出函数有19个,但其中有5个函数有两个版本,分别 是ANSI和Unicode版本],通过调用这些函数,可以取得系统进程的所有信 息,例如进程名、进程ID、父进程ID、进程优先级、映射到进程空间的模 块列表等等。其具体步骤如下:\n首先调用EnumProcesses函数取得系统中运行的所有进程的进程号 (process identifier)\n对于每一个进程执行以下操作:\n调用GetCurrentProcess函数取得该进程的句柄。\n调用EnumProcessModules函数得到该进程的所有模块。\n根据上面得到的信息,调用GetDeviceDriverBaseName、 GetDeviceDriverFileName、GetMappedFileName、GetModuleBaseName、 GetModuleFileNameEx、GetModuleInformation、GetProcessMemoryInfo、 GetWsChanges等函数分别得到进程的相关信息。\n2、Windows NT环境下获取系统性能的方法\n本发明的性能监测模块使用WINDOWS的PDH库,根据指定的性能计 数器,获得相应的性能参数。\nPDH是英文Performance Data Helper的缩写,Windows NT一直在更新 这个称为Performance Data的数据库,这个数据库包含了大量的信息,例如 CPU使用率,内存使用率,系统进程信息等等一大堆有用的信息。由于这个 数据库中的信息布局很复杂,为了使该数据库的使用变得容易,MS开发了 一组Performance Data Helper函数,包含在PDH.DLL文件中。其具体步骤 如下:\n首先,调用PdhOpenQuery函数创建一个查询,该函数会返回一个相应 的查询句柄。\n然后,调用PdhAddCounter函数在查询中加入一个计数器。例如要获取 cpu使用率,可使用名为″\\Processor(_Total)\\%Processor Time″的计数器。\n在设置好需要的计数器后,调用PdhCollectQueryData函数搜集性能数 据。\n搜集性能数据完成以后,数据还需要通过调用PdhGetFormattedCounter Value函数一个个读出\n最后通过函数PdhCloseQuery关闭打开的查询。\n3、Windows NT环境下停止一个进程运行的方法\n通过执行模块杀掉本地进程相对很简单,取得进程ID后,调用 OpenProcess函数打开进程句柄,然后调用TerminateProcess函数就可以杀掉 进程了。\n但是有些情况下并不能直接打开进程句柄,例如WINLOGON等系统进 程,因为权限不够。这个时候就得先提升本身的进程权限。\n提升权限过程如下:\n1.调用GetCurrentProcess函数取得当前进程的句柄;\n2.调用OpenProcessToken打开当前进程的访问令牌;\n3.调用LookupPrivilegeValue函数取得想提升的权限的值;\n4.最后调用AdjustTokenPriyileges函数给当前进程的访问令牌增加权 限。\n一般有了SeDebugPrivilege特权后,就可以杀掉除Idle外的所有进程了。\n4、Windows NT环境下程序运行一个进程的方法\n通过执行模块重新启动一个进程的方法也比较简单,在知道了进程文件 所在路径,系统进程的运行模式之后,就可以调用CreateProcess函数, 使该进程运行起来。\n本发明的优点是显而易见的,在进行进程保护的时候,不需要改变服务器原 先的配置,也不需要对原先的服务进程进行重新设定和修改,只要设定需保护 的进程的名称和相应的配置。本发明具有双层自动保护作用,能够对特定的服 务进程进行监控和管理,对于发生异常或被攻击死亡的进程能够自动重新启动, 同时通过自保护机制保护了自身的安全,避免被逐个击破的危险,有效地解决 了系统的安全问题。\n附图说明\n图1为本发明系统结构及模块间连接关系示意图。\n如图1所示,本发明系统主要由性能监测模块、规则匹配模块和执行模块 组成。规则匹配模块与上层管理中心相连,并分别与性能监测模块和执行模块 相连,性能监测模块和执行模块则与操作系统相连。规则匹配模块将系统警报 上报到上层管理中心,接收上层管理中心的系统规则并将其下传到性能监测模 块。性能监测模块监测搜集操作系统运行中的各种性能指标,将其上报给规则 匹配模块,由规则匹配模块将进程操作命令传递到执行模块,控制操作系统进 行进程启停操作。\n图2为自保护机制的示意图。\n如图2所示,本发明的自保护机制中引入了一个特殊的服务进程——守护 进程,守护进程分别与性能监测模块、规则匹配模块及执行模块相连,进行进 程监测保护。一旦其中一个模块因故退出,守护进程就将该模块重新启动。同 时系统也将守护进程作为监测的对象,一旦发生意外退出情况,由执行模块将 守护进程重新启动。图中的虚线表示了进程模块间的监测和保护关系。\n具体实施方式\n在本发明的一个实施例中,网络环境:百兆以太网,硬件设备:web服务 器、百兆以太网卡,运行平台:Windows NT Server。\n在外部网的WEB服务器中植入应急反应子系统的NT代理。该代理是一个 运行在Windows环境下的服务进程,设置成开机自动启动,保证在Windows NT 系统启动时就开始在后台运行。该代理的性能监测模块、规则匹配模块和执行 模块等主要子模块相互协调工作,实现保护外部网WEB服务器安全和性能的作 用。它们都作为NT代理服务进程的子进程随着服务进程的启动而启动,同时又 受到服务进程的保护。其中NT代理的执行模块是整个系统的“进程保护程序”, 通过设置能够保护系统中特定的进程。而代理本身的服务进程则是这个系统的 “守护进程”,通过它来保护执行模块的正常运行。\n由NT代理的性能监测模块对WEB服务器的性能(包括CPU占有率,内 存使用率,磁盘空间使用率,网络连接繁忙情况,进程工作情况等性能指标) 进行监控,实现按时上报的功能。\n在中心设定代理的安全规则,指导代理在怎样的情况下触犯规则,同时指 出触犯规则后除了向中心发送报警之外,还要进行如何的操作。NT代理的规则 匹配模块根据中心设定并同步过来的规则工作,实现对于触犯规则的情况进行 报警和指导执行模块工作的功能。\nNT代理的执行模块根据应急反应中心发送过来的指令或本代理规则匹配模 块发送过来的指令进行相应的操作,这些操作包括启停特定的进程(本系统启 停了IIS服务进程),重新启动计算机系统等。\n代理的服务进程监视每个功能子进程的运行情况,对于发生异常的功能子 进程能够做出及时的处理,启停该模块,以保证整个NT代理的正常运行。
法律信息
- 2015-01-14
未缴年费专利权终止
IPC(主分类): G06F 11/30
专利号: ZL 01139035.2
申请日: 2001.12.04
授权公告日: 2004.11.10
- 2004-11-10
- 2002-05-22
- 2002-03-20
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |