快速補(bǔ)丁掃描引擎的實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息技術(shù)領(lǐng)域,具體地,涉及一種快速補(bǔ)丁掃描引擎的實現(xiàn)方法。
【背景技術(shù)】
[0002]伴隨著計算機(jī)網(wǎng)絡(luò)技術(shù)在各方面越來越多的應(yīng)用,蠕蟲、病毒等網(wǎng)絡(luò)攻擊事件頻繁爆發(fā),網(wǎng)絡(luò)安全問題日益突出,大部分的網(wǎng)絡(luò)攻擊都是基于操作系統(tǒng)或應(yīng)用程序的漏洞進(jìn)行的。這些蠕蟲可以在幾分鐘,甚至更短的時間內(nèi),感染網(wǎng)絡(luò)中大量的漏洞主機(jī)。目前,各種軟件的漏洞已經(jīng)成為大規(guī)模網(wǎng)絡(luò)與信息安全事件和重大信息泄露事件的主要原因之一。針對計算機(jī)漏洞帶來的危害,安裝相應(yīng)的補(bǔ)丁是最有效、也是最經(jīng)濟(jì)的防范措施。對于互聯(lián)網(wǎng)上數(shù)目眾多的主機(jī)節(jié)點和日益復(fù)雜的各種應(yīng)用,很難確保補(bǔ)丁被及時的安裝,而且補(bǔ)丁實施基本是需求方到發(fā)布方去下載補(bǔ)丁程序并安裝的過程,而不是發(fā)布方主動為需求方提供補(bǔ)丁程序并進(jìn)行針對性的部署,因此補(bǔ)丁實施更依賴于非專業(yè)的需求方。對于主機(jī)數(shù)目眾多、應(yīng)用種類繁雜的大型網(wǎng)絡(luò),不能及時跟蹤補(bǔ)丁的更新,不能實施有效的部署,將極大地威脅到網(wǎng)絡(luò)與信息安全,造成不可挽回的損失。
[0003]研宄表明,操作系統(tǒng)和應(yīng)用軟件的漏洞,經(jīng)常成為安全攻擊的入口。系統(tǒng)漏洞,也叫系統(tǒng)脆弱性(Vulnerability),是計算機(jī)系統(tǒng)在硬件、軟件、協(xié)議的設(shè)計與實現(xiàn)過程中或系統(tǒng)安全策略上存在的缺陷和不足。非法用戶可利用系統(tǒng)安全漏洞獲得計算機(jī)系統(tǒng)的額外權(quán)限,在未經(jīng)授權(quán)的情況下訪問或提高其訪問權(quán),破壞系統(tǒng),危害計算機(jī)系統(tǒng)安全。系統(tǒng)安全漏洞是針對計算機(jī)安全而言的,廣義的系統(tǒng)安全漏洞是一切導(dǎo)致威脅、損壞計算機(jī)系統(tǒng)安全的因素。每個平臺無論是硬件還是軟件都存在漏洞,沒有絕對安全的系統(tǒng)。
[0004]對于每個存在漏洞的系統(tǒng),及時安裝補(bǔ)丁都是非常必要的防范機(jī)制,可以有效防止系統(tǒng)被攻擊或破壞。目前多數(shù)補(bǔ)丁管理軟件采取的是客戶端與服務(wù)器(C/S)的方式,用戶要進(jìn)行漏洞修復(fù),必須登錄補(bǔ)丁服務(wù)器進(jìn)行更新。然而,在補(bǔ)丁發(fā)布后,由于用戶安全意識薄弱和軟件更新的復(fù)雜性等原因,往往導(dǎo)致用戶不能及時安裝補(bǔ)丁,而大部分的網(wǎng)絡(luò)攻擊正是利用這段時間進(jìn)行的。例如,Gkantsidis等人的實驗顯示在補(bǔ)丁公布后的24小時內(nèi),只有80%不同的用戶會進(jìn)行補(bǔ)丁的下載和安裝??蛻舳伺c服務(wù)器的補(bǔ)丁發(fā)布模式,嚴(yán)重影響了補(bǔ)丁的發(fā)布效率,無法與快速傳播的蠕蟲相抗衡。
[0005]目前,補(bǔ)丁發(fā)布廣泛采用的都是Client / Server體系。例如,微軟的Windows更新,使用的是WSUS (Windows Server Update Services)進(jìn)行補(bǔ)丁的管理。首先用戶向服務(wù)器發(fā)出補(bǔ)丁下載請求,決定哪些補(bǔ)丁需要進(jìn)行下載,接著從分發(fā)服務(wù)器進(jìn)行補(bǔ)丁的下載,最后是補(bǔ)丁的安裝。它的基本原理是客戶端必須登錄到服務(wù)器上,才可以進(jìn)行軟件的更新,是一種客戶端與服務(wù)器直接相連的補(bǔ)丁發(fā)布方式。
[0006]按照這種補(bǔ)丁發(fā)布模式,當(dāng)用戶量很少時,是可以在很短時間內(nèi)完成軟件的更新。但如果需要下載的補(bǔ)丁較大,客戶端數(shù)目眾多,在同一時間段內(nèi)有數(shù)百萬的計算機(jī)登錄到服務(wù)器上進(jìn)行軟件的更新,將會給服務(wù)器帶來難以承受的負(fù)荷,不僅會減緩傳播速度,也會堵塞網(wǎng)絡(luò)的流通。
[0007]根據(jù)目前補(bǔ)丁的發(fā)布策略,研宄發(fā)現(xiàn)從補(bǔ)丁發(fā)布到用戶完成更新,中間可能會延誤很長一段時間。然而在這段時間內(nèi),攻擊者就有可能利用補(bǔ)丁來生成新的漏洞。APEG(Automatic patch-based exploit generat1n),是一種基于補(bǔ)丁的漏洞利用自動生成技術(shù),通過研宄發(fā)現(xiàn),它很容易在目前的補(bǔ)丁發(fā)布方案中實現(xiàn),用于攻擊未打補(bǔ)丁,帶有漏洞的系統(tǒng)。簡單的說,APEG就是對于程序P與打了補(bǔ)丁的程序P'進(jìn)行逆向工程分析,定位它們之間的區(qū)別所在,自動生成漏洞,威脅用戶安全的一種技術(shù)。惡意用戶在接收到補(bǔ)丁后的幾分鐘之內(nèi),可以利用APEG找出漏洞,編寫蠕蟲代碼,對還未安裝補(bǔ)丁的用戶發(fā)動攻擊。然而,根據(jù)目前的補(bǔ)丁發(fā)布方式,在幾分鐘之內(nèi)使所有用戶都安裝上補(bǔ)丁是根本辦不到的。
[0008]根據(jù)目前蠕蟲的傳播速度,知道要想真正有效的發(fā)揮補(bǔ)丁的修復(fù)作用,保障系統(tǒng)的安全,就必須趕在蠕蟲大范圍傳播之前,給系統(tǒng)安裝上補(bǔ)丁,這是一個蠕蟲與補(bǔ)丁賽跑的過程,誰的速度快,誰就可以最終阻止對方的入侵。
[0009]分析目前軟件補(bǔ)丁分發(fā)的情況,可以發(fā)現(xiàn)如下問題:(1)目前的補(bǔ)丁的發(fā)布速度過于緩慢,無法有效的進(jìn)行補(bǔ)丁的傳播;(2)基于C/S的補(bǔ)丁發(fā)布模式,使得在同一段時間訪問服務(wù)器的用戶量過多,會造成服務(wù)器繁忙,導(dǎo)致更新不能及時有效的完成;(3)用戶的安全防范意識差,很多用戶不愿意,或不能夠及時的更新系統(tǒng),使得網(wǎng)絡(luò)中的很多主機(jī)長期處于無人管理狀態(tài);(4)惡意蠕蟲具有傳播迅速的特點,使得軟件補(bǔ)丁無法及時地應(yīng)用在主機(jī)上,導(dǎo)致蠕蟲不斷的威脅網(wǎng)絡(luò)的安全。因此,傳統(tǒng)的防病毒技術(shù)、入侵檢測技術(shù)和防火墻技術(shù)在與這種高速傳播的網(wǎng)絡(luò)蠕蟲對抗中始終處于劣勢。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的在于,針對上述問題,提出一種快速補(bǔ)丁掃描引擎的實現(xiàn)方法,以實現(xiàn)提高補(bǔ)丁獲取速度并保證終端及時打補(bǔ)丁的優(yōu)點。
[0011]為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
一種快速補(bǔ)丁掃描引擎的實現(xiàn)方法,包括以下步驟:
步驟一、補(bǔ)丁掃描引擎實時監(jiān)控補(bǔ)丁發(fā)布網(wǎng)站,并在監(jiān)控到補(bǔ)丁發(fā)布網(wǎng)站發(fā)布補(bǔ)丁后第一時間將軟件補(bǔ)丁索引包下載;
步驟二、分析上述下載的軟件補(bǔ)丁索引包,通過MD5散列算法對比軟件補(bǔ)丁與官網(wǎng)數(shù)據(jù)的一致性;
步驟三、將上述步驟二分析對比無誤的軟件補(bǔ)丁安裝包通過基于P2P的智能流量負(fù)載系統(tǒng),分發(fā)到終端上;
步驟四、終端的補(bǔ)丁掃描引擎利用多核CPU的纖程并發(fā)機(jī)制,同時對上述步驟三分發(fā)的多個補(bǔ)丁進(jìn)行掃描,并快速的使用HASH算法進(jìn)行補(bǔ)丁分析和匹配,并對終端進(jìn)行補(bǔ)丁掃描,確保終端安裝最新的補(bǔ)丁。
[0012]優(yōu)選的,上述步驟四中終端的補(bǔ)丁掃描引擎,采用多線程和CPU親和力技術(shù)針對多核CPU做應(yīng)用層面的優(yōu)化,采用Cache在微架構(gòu)層面進(jìn)行優(yōu)化。
[0013]優(yōu)選的上述步驟一中的補(bǔ)丁掃描引擎內(nèi)置性能監(jiān)控平衡探測器,從而根據(jù)硬件的性能智能的提高和放慢補(bǔ)丁掃描速度。
[0014]本發(fā)明的技術(shù)方案具有以下有益效果:
本發(fā)明的技術(shù)方案的補(bǔ)丁掃描引擎在獲取到軟件的補(bǔ)丁信息之后,會對補(bǔ)丁進(jìn)行一次預(yù)先的優(yōu)化分析,得出補(bǔ)丁里面的