快速补丁扫描引擎的实现方法
【技术领域】
[0001]本发明涉及信息技术领域,具体地,涉及一种快速补丁扫描引擎的实现方法。
【背景技术】
[0002]伴随着计算机网络技术在各方面越来越多的应用,蠕虫、病毒等网络攻击事件频繁爆发,网络安全问题日益突出,大部分的网络攻击都是基于操作系统或应用程序的漏洞进行的。这些蠕虫可以在几分钟,甚至更短的时间内,感染网络中大量的漏洞主机。目前,各种软件的漏洞已经成为大规模网络与信息安全事件和重大信息泄露事件的主要原因之一。针对计算机漏洞带来的危害,安装相应的补丁是最有效、也是最经济的防范措施。对于互联网上数目众多的主机节点和日益复杂的各种应用,很难确保补丁被及时的安装,而且补丁实施基本是需求方到发布方去下载补丁程序并安装的过程,而不是发布方主动为需求方提供补丁程序并进行针对性的部署,因此补丁实施更依赖于非专业的需求方。对于主机数目众多、应用种类繁杂的大型网络,不能及时跟踪补丁的更新,不能实施有效的部署,将极大地威胁到网络与信息安全,造成不可挽回的损失。
[0003]研宄表明,操作系统和应用软件的漏洞,经常成为安全攻击的入口。系统漏洞,也叫系统脆弱性(Vulnerability),是计算机系统在硬件、软件、协议的设计与实现过程中或系统安全策略上存在的缺陷和不足。非法用户可利用系统安全漏洞获得计算机系统的额外权限,在未经授权的情况下访问或提高其访问权,破坏系统,危害计算机系统安全。系统安全漏洞是针对计算机安全而言的,广义的系统安全漏洞是一切导致威胁、损坏计算机系统安全的因素。每个平台无论是硬件还是软件都存在漏洞,没有绝对安全的系统。
[0004]对于每个存在漏洞的系统,及时安装补丁都是非常必要的防范机制,可以有效防止系统被攻击或破坏。目前多数补丁管理软件采取的是客户端与服务器(C/S)的方式,用户要进行漏洞修复,必须登录补丁服务器进行更新。然而,在补丁发布后,由于用户安全意识薄弱和软件更新的复杂性等原因,往往导致用户不能及时安装补丁,而大部分的网络攻击正是利用这段时间进行的。例如,Gkantsidis等人的实验显示在补丁公布后的24小时内,只有80%不同的用户会进行补丁的下载和安装。客户端与服务器的补丁发布模式,严重影响了补丁的发布效率,无法与快速传播的蠕虫相抗衡。
[0005]目前,补丁发布广泛采用的都是Client / Server体系。例如,微软的Windows更新,使用的是WSUS (Windows Server Update Services)进行补丁的管理。首先用户向服务器发出补丁下载请求,决定哪些补丁需要进行下载,接着从分发服务器进行补丁的下载,最后是补丁的安装。它的基本原理是客户端必须登录到服务器上,才可以进行软件的更新,是一种客户端与服务器直接相连的补丁发布方式。
[0006]按照这种补丁发布模式,当用户量很少时,是可以在很短时间内完成软件的更新。但如果需要下载的补丁较大,客户端数目众多,在同一时间段内有数百万的计算机登录到服务器上进行软件的更新,将会给服务器带来难以承受的负荷,不仅会减缓传播速度,也会堵塞网络的流通。
[0007]根据目前补丁的发布策略,研宄发现从补丁发布到用户完成更新,中间可能会延误很长一段时间。然而在这段时间内,攻击者就有可能利用补丁来生成新的漏洞。APEG(Automatic patch-based exploit generat1n),是一种基于补丁的漏洞利用自动生成技术,通过研宄发现,它很容易在目前的补丁发布方案中实现,用于攻击未打补丁,带有漏洞的系统。简单的说,APEG就是对于程序P与打了补丁的程序P'进行逆向工程分析,定位它们之间的区别所在,自动生成漏洞,威胁用户安全的一种技术。恶意用户在接收到补丁后的几分钟之内,可以利用APEG找出漏洞,编写蠕虫代码,对还未安装补丁的用户发动攻击。然而,根据目前的补丁发布方式,在几分钟之内使所有用户都安装上补丁是根本办不到的。
[0008]根据目前蠕虫的传播速度,知道要想真正有效的发挥补丁的修复作用,保障系统的安全,就必须赶在蠕虫大范围传播之前,给系统安装上补丁,这是一个蠕虫与补丁赛跑的过程,谁的速度快,谁就可以最终阻止对方的入侵。
[0009]分析目前软件补丁分发的情况,可以发现如下问题:(1)目前的补丁的发布速度过于缓慢,无法有效的进行补丁的传播;(2)基于C/S的补丁发布模式,使得在同一段时间访问服务器的用户量过多,会造成服务器繁忙,导致更新不能及时有效的完成;(3)用户的安全防范意识差,很多用户不愿意,或不能够及时的更新系统,使得网络中的很多主机长期处于无人管理状态;(4)恶意蠕虫具有传播迅速的特点,使得软件补丁无法及时地应用在主机上,导致蠕虫不断的威胁网络的安全。因此,传统的防病毒技术、入侵检测技术和防火墙技术在与这种高速传播的网络蠕虫对抗中始终处于劣势。
【发明内容】
[0010]本发明的目的在于,针对上述问题,提出一种快速补丁扫描引擎的实现方法,以实现提高补丁获取速度并保证终端及时打补丁的优点。
[0011]为实现上述目的,本发明采用的技术方案是:
一种快速补丁扫描引擎的实现方法,包括以下步骤:
步骤一、补丁扫描引擎实时监控补丁发布网站,并在监控到补丁发布网站发布补丁后第一时间将软件补丁索引包下载;
步骤二、分析上述下载的软件补丁索引包,通过MD5散列算法对比软件补丁与官网数据的一致性;
步骤三、将上述步骤二分析对比无误的软件补丁安装包通过基于P2P的智能流量负载系统,分发到终端上;
步骤四、终端的补丁扫描引擎利用多核CPU的纤程并发机制,同时对上述步骤三分发的多个补丁进行扫描,并快速的使用HASH算法进行补丁分析和匹配,并对终端进行补丁扫描,确保终端安装最新的补丁。
[0012]优选的,上述步骤四中终端的补丁扫描引擎,采用多线程和CPU亲和力技术针对多核CPU做应用层面的优化,采用Cache在微架构层面进行优化。
[0013]优选的上述步骤一中的补丁扫描引擎内置性能监控平衡探测器,从而根据硬件的性能智能的提高和放慢补丁扫描速度。
[0014]本发明的技术方案具有以下有益效果:
本发明的技术方案的补丁扫描引擎在获取到软件的补丁信息之后,会对补丁进行一次预先的优化分析,得出补丁里面的