本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于云安全的網(wǎng)絡(luò)數(shù)據(jù)流分析方法和裝置。
背景技術(shù):高級(jí)持續(xù)性威脅(APT,AdvancedPersistentThreat)是指特定組織使用先進(jìn)的攻擊手段對(duì)特定目標(biāo)進(jìn)行長期持續(xù)性網(wǎng)絡(luò)攻擊的攻擊形式。當(dāng)前,APT已成為各級(jí)各類網(wǎng)絡(luò)所面臨的主要安全威脅。它使網(wǎng)絡(luò)威脅從散兵游勇式的隨機(jī)攻擊變成有目的、有組織、有預(yù)謀的群體式攻擊。因此為了保護(hù)網(wǎng)絡(luò)安全,需要對(duì)網(wǎng)絡(luò)流量進(jìn)行分析,檢測網(wǎng)絡(luò)行為是是否包含APT攻擊。當(dāng)前業(yè)內(nèi)的PAT檢測方案是在PC機(jī)上實(shí)現(xiàn)的。為了便于理解,首先簡單介紹一下網(wǎng)絡(luò)行為。網(wǎng)絡(luò)行為可以理解為需要通過網(wǎng)絡(luò)進(jìn)行的各種行為,種類繁多,例如包括:HTTP(hypertexttransportprotocol,超文本傳送協(xié)議)訪問,常見的有下載文件或上傳信息;SMTP(SimpleMailTransferProtocol,簡單郵件傳輸協(xié)議)請求,收發(fā)電子郵件;DNS(DomainNameSystem,域名系統(tǒng))請求,解析域名對(duì)應(yīng)的IP地址等信息等等。通常一個(gè)應(yīng)用程序如果需要連接網(wǎng)絡(luò),需要通過操作系統(tǒng)(如Windows)提供的API(ApplicationProgramInterface,應(yīng)用程序接口)接口發(fā)送連接網(wǎng)絡(luò)的請求,操作系統(tǒng)接收到應(yīng)用程序的這種網(wǎng)絡(luò)請求后,會(huì)接收應(yīng)用程序要發(fā)送的數(shù)據(jù),并對(duì)接收到的數(shù)據(jù)進(jìn)行封裝,之后將封裝的數(shù)據(jù)發(fā)送給物理設(shè)備(如網(wǎng)卡等),最后由硬件設(shè)備將數(shù)據(jù)傳出。在應(yīng)用程序訪問網(wǎng)絡(luò)的過程中,操作系統(tǒng)在處理相關(guān)數(shù)據(jù)的時(shí)候,會(huì)使用一些協(xié)議驅(qū)動(dòng)和過濾驅(qū)動(dòng)來獲取網(wǎng)絡(luò)行為的數(shù)據(jù)。因此,在現(xiàn)有的APT檢測方案中,通過在客戶端注冊協(xié)議驅(qū)動(dòng)、創(chuàng)建與操作系統(tǒng)相似的過濾驅(qū)動(dòng)、利用操作系統(tǒng)提供的應(yīng)用程序編程接口函數(shù)(hook函數(shù))截獲當(dāng)前網(wǎng)絡(luò)行為的信息、接管程序調(diào)用網(wǎng)絡(luò)編程接口函數(shù)(Winsock)的請求或者是利用注冊防火墻回調(diào)等方式,截獲應(yīng)用程序的當(dāng)前網(wǎng)絡(luò)行為的數(shù)據(jù)包。然后僅對(duì)數(shù)據(jù)包的字節(jié)進(jìn)行特征匹配,不進(jìn)行內(nèi)容分析,來一個(gè)數(shù)據(jù)包就進(jìn)行掃描一次,匹配一下數(shù)據(jù)特征,如果匹配到有APT攻擊風(fēng)險(xiǎn)的數(shù)據(jù)特征,則認(rèn)為是APT攻擊包。但是,現(xiàn)有的這種APT檢測方案中,由于一個(gè)數(shù)據(jù)包往往只是一個(gè)消息中的一小部分,因此這種檢測沒有針對(duì)性,并且逐個(gè)數(shù)據(jù)包進(jìn)行匹配,效率比較低。
技術(shù)實(shí)現(xiàn)要素:鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種基于云安全的網(wǎng)絡(luò)數(shù)據(jù)流分析方法和裝置。依據(jù)本發(fā)明的一個(gè)方面,提供了一種基于云安全的網(wǎng)絡(luò)數(shù)據(jù)流分析方法,該方法包括:抓取網(wǎng)絡(luò)數(shù)據(jù)流中的數(shù)據(jù)包;對(duì)抓取的數(shù)據(jù)包進(jìn)行組包處理,還原成消息;確定還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議;根據(jù)還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,對(duì)該還原成的消息進(jìn)行分析處理??蛇x地,所述對(duì)抓取的數(shù)據(jù)包進(jìn)行組包處理,還原成消息包括:根據(jù)抓取的各數(shù)據(jù)包的TCP頭中的TCP序列號(hào),按照TCP序列號(hào)數(shù)值小的在前,大的在后的順序?qū)Ω鲾?shù)據(jù)包進(jìn)行排序;其中,TCP序列號(hào)標(biāo)志數(shù)據(jù)包在數(shù)據(jù)流中的位置;對(duì)于排序后的數(shù)據(jù)包,將TCP頭中的確認(rèn)號(hào)碼相同的數(shù)據(jù)包進(jìn)行組包處理,還原出至少一條帶網(wǎng)絡(luò)協(xié)議格式的消息??蛇x地,所述對(duì)該還原成的消息進(jìn)行分析處理還包括:從還原成的消息中提取文件,對(duì)所提取文件進(jìn)行分析??蛇x地,所述對(duì)所提取的文件進(jìn)行分析包括以下幾種方式中的至少一種:將提取出的文件發(fā)送到云安全服務(wù)器進(jìn)行查詢;對(duì)提取出的文件進(jìn)行靜態(tài)安全掃描;將提取出的文件導(dǎo)入云安全服務(wù)器的蜜罐中進(jìn)行分析。可選地,所述抓取網(wǎng)絡(luò)數(shù)據(jù)流中的數(shù)據(jù)包包括:從內(nèi)網(wǎng)和外網(wǎng)之間的網(wǎng)關(guān)處的網(wǎng)絡(luò)數(shù)據(jù)流的旁路數(shù)據(jù)流中抓取數(shù)據(jù)包。根據(jù)本發(fā)明的另一方面,提供了一種基于云安全的網(wǎng)絡(luò)數(shù)據(jù)流分析裝置,該裝置包括:抓取單元、組包單元、網(wǎng)絡(luò)協(xié)議分析單元和與不同網(wǎng)絡(luò)協(xié)議一一對(duì)應(yīng)的多個(gè)網(wǎng)絡(luò)協(xié)議掃描單元;抓取單元,適于抓取網(wǎng)絡(luò)數(shù)據(jù)流中的數(shù)據(jù)包;組包單元,適于對(duì)抓取單元所抓取的數(shù)據(jù)包進(jìn)行組包處理,還原成消息;網(wǎng)絡(luò)協(xié)議確定單元,適于確定還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,并將該消息發(fā)送給對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議掃描單元;每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元,適于對(duì)所接收的消息進(jìn)行分析處理??蛇x地,所述組包單元,適于根據(jù)抓取單元所抓取的各數(shù)據(jù)包的TCP頭中的TCP序列號(hào),按照TCP序列號(hào)數(shù)值小的在前,大的在后的順序?qū)Ω鲾?shù)據(jù)包進(jìn)行排序;其中,TCP序列號(hào)標(biāo)志數(shù)據(jù)包在數(shù)據(jù)流中的位置;對(duì)于排序后的數(shù)據(jù)包,將TCP頭中的確認(rèn)號(hào)碼相同的數(shù)據(jù)包進(jìn)行組包處理,還原出至少一條帶網(wǎng)絡(luò)協(xié)議格式的消息??蛇x地,所述每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元,進(jìn)一步適于從消息中提取文件,對(duì)所提取文件進(jìn)行分析??蛇x地,所述每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元適于根據(jù)以下幾種方式中的至少一種,對(duì)所對(duì)所提取的文件進(jìn)行分析:將提取出的文件發(fā)送到云安全服務(wù)器進(jìn)行查詢;對(duì)提取出的文件進(jìn)行靜態(tài)安全掃描;將提取出的文件導(dǎo)入云安全服務(wù)器的蜜罐中進(jìn)行分析??蛇x地,所述抓取單元,適于從內(nèi)網(wǎng)和外網(wǎng)之間的網(wǎng)關(guān)處的網(wǎng)絡(luò)數(shù)據(jù)流的旁路數(shù)據(jù)流中抓取數(shù)據(jù)包。根據(jù)本發(fā)明的這種抓取網(wǎng)絡(luò)數(shù)據(jù)流中的數(shù)據(jù)包,對(duì)抓取的數(shù)據(jù)包進(jìn)行組包處理,還原成消息,確定還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,根據(jù)還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,對(duì)該還原成的消息進(jìn)行分析處理的技術(shù)方案,由于進(jìn)行組包處理,將散碎的數(shù)據(jù)包重組成有意義的消息,在此基礎(chǔ)上進(jìn)行協(xié)議分析,可以有針對(duì)性地進(jìn)行分析,且相對(duì)于現(xiàn)有的逐個(gè)數(shù)據(jù)包進(jìn)行掃描的方案,提高了分析效率和準(zhǔn)確度。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。附圖說明通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種基于云安全的網(wǎng)絡(luò)數(shù)據(jù)流分析方法的流程圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種基于云安全的網(wǎng)絡(luò)數(shù)據(jù)流分析裝置的結(jié)構(gòu)圖。具體實(shí)施方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種基于云安全的網(wǎng)絡(luò)數(shù)據(jù)流分析方法的流程圖。如圖1所示,該方法包括:步驟S110,抓取網(wǎng)絡(luò)數(shù)據(jù)流中的數(shù)據(jù)包。在本發(fā)明的實(shí)施例中,基于應(yīng)用程序訪問網(wǎng)絡(luò)的流程,可以在該流程的任何一個(gè)環(huán)節(jié)對(duì)網(wǎng)絡(luò)行為的信息進(jìn)行截獲,即可以在網(wǎng)絡(luò)數(shù)據(jù)流經(jīng)過的任何一個(gè)節(jié)點(diǎn)處抓取網(wǎng)絡(luò)數(shù)據(jù)流中的數(shù)據(jù)包進(jìn)行緩存。步驟S120,對(duì)抓取的數(shù)據(jù)包進(jìn)行組包處理,還原成消息。在本步驟中對(duì)緩存的順序零散的數(shù)據(jù)包進(jìn)行重組,重組成帶網(wǎng)絡(luò)協(xié)議格式的消息。數(shù)據(jù)包在傳輸?shù)倪^程中,經(jīng)過很多路由器,其次序會(huì)亂。例如,一段文本包括數(shù)據(jù)包0、1、2、3、和4,同時(shí)到達(dá)目的端口時(shí),可能會(huì)出現(xiàn)亂序,有可能順序會(huì)變成數(shù)據(jù)包2、1、3、4、0。因此需要先調(diào)整好數(shù)據(jù)包的順序。在本發(fā)明的一個(gè)實(shí)施例中,根據(jù)抓取的各數(shù)據(jù)包的TCP頭中的TCP序列號(hào),對(duì)各數(shù)據(jù)包進(jìn)行排序;具體按照TCP序列號(hào)數(shù)值小的在前,大的在后的順序?qū)Ω鲾?shù)據(jù)包進(jìn)行排序;其中,TCP序列號(hào)標(biāo)志數(shù)據(jù)包在數(shù)據(jù)流中的位置。對(duì)于排序后的數(shù)據(jù)包,將TCP頭中的確認(rèn)號(hào)碼(acknumber)相同的數(shù)據(jù)包進(jìn)行組包處理,還原出至少一條帶網(wǎng)絡(luò)協(xié)議格式的消息。這是因?yàn)橥辽僖粭l消息的acknumber是相同的。TCP序列號(hào)和acknumber都是TCP頭中的部分,對(duì)以按照TCP序列號(hào)排序好的各數(shù)據(jù)包,如果acknumber變化了,則表明一個(gè)消息結(jié)束,另一個(gè)消息開始了。例如acknumber之前是1000000,變成1000049時(shí)表明對(duì)端發(fā)了另一段數(shù)據(jù)過來。在本發(fā)明的其他實(shí)施例中還可以采用系統(tǒng)TCP協(xié)議的標(biāo)準(zhǔn)組包方法。但該方法不適合高速流量分析。步驟S130,確定還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議。在本步驟中,根據(jù)組成至少一條消息的各數(shù)據(jù)包中的特征、端口等進(jìn)行識(shí)別,判斷其屬于哪種網(wǎng)絡(luò)協(xié)議。主要的網(wǎng)絡(luò)協(xié)議類型包括:POP3協(xié)議(郵局協(xié)議的第3個(gè)版本協(xié)議)、FTP訪問、HTTP訪問、SMTP(SimpleMailTransferProtocol,簡單郵件傳輸協(xié)議)請求、DNS(DomainNameSystem,域名系統(tǒng))請求等等。步驟S140,根據(jù)還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,對(duì)該還原成的消息進(jìn)行分析處理。在本步驟中,將還原成的消息提交到對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議掃描模塊進(jìn)行分析。其中,需要預(yù)先建立起不同的網(wǎng)絡(luò)協(xié)議掃描模塊和網(wǎng)絡(luò)協(xié)議類型之間的對(duì)應(yīng)關(guān)系,每個(gè)網(wǎng)絡(luò)協(xié)議掃描模塊對(duì)應(yīng)一種網(wǎng)絡(luò)協(xié)議類型,每個(gè)網(wǎng)絡(luò)協(xié)議掃描模塊能夠完成對(duì)對(duì)應(yīng)網(wǎng)絡(luò)協(xié)議消息的分析處理,判斷其中是否包含APT攻擊包。具體分析方法可以采用后續(xù)介紹的靜態(tài)掃描,云安全服務(wù)器查詢、蜜罐分析等方法。在圖1所示的技術(shù)方案中,由于先進(jìn)行了組包處理,將散碎的數(shù)據(jù)包重組成有意義的消息,在此基礎(chǔ)上進(jìn)行協(xié)議分析,因此可以有針對(duì)性地進(jìn)行分析,且相對(duì)于現(xiàn)有的逐個(gè)數(shù)據(jù)包進(jìn)行掃描的方案,提高了效率和準(zhǔn)確度。在本發(fā)明的一個(gè)實(shí)施例中,在圖1所示的方法的步驟S140中,還進(jìn)一步從還原成的消息中提取文件,對(duì)所提取文件進(jìn)行分析。即不僅僅對(duì)消息進(jìn)行分析,如果該消息還在傳輸文件,則從該消息中提取出文件,進(jìn)一步對(duì)所傳輸?shù)奈募M(jìn)行分析。這樣如果其傳輸?shù)奈募邪粜畔?,也可以檢測出來,進(jìn)一步保證網(wǎng)絡(luò)安全。對(duì)所提取的文件進(jìn)行分析包括以下幾種方式中的至少一種:將提取出的文件發(fā)送到云安全服務(wù)器進(jìn)行查詢;對(duì)提取出的文件進(jìn)行靜態(tài)安全掃描;將提取出的文件導(dǎo)入云安全服務(wù)器的蜜罐中進(jìn)行分析。例如,對(duì)于提取到的文件,將其輸入到蜜罐系統(tǒng),根據(jù)蜜罐系統(tǒng)中預(yù)設(shè)的規(guī)則判斷該文件是否為木馬文件等??梢圆捎矛F(xiàn)有的方案從消息中提取文件,例如,可以同下載文件時(shí)瀏覽器會(huì)從HTTP消息中提取文件的方式相同。又例如按照如下順序進(jìn)行分析:(1)將文件提取出來后,進(jìn)行文件類型過濾,分析文件類型(如留下PE文件、office等關(guān)心文件);(2)然后進(jìn)行云查詢:發(fā)送到云安全服務(wù)器,通過云安全服務(wù)器里面保存的黑白名單和或病毒特征行為對(duì)應(yīng)的特征碼(MD5)值等檢測文件的好壞,或者是用文件信息去查詢云安全服務(wù)器,判斷其安全級(jí)別等;其中,與現(xiàn)有黑/白名單中的已知程序行為做比對(duì)即可判定未知程序的性質(zhì)。(3)如果云查詢不報(bào)毒則進(jìn)行靜態(tài)安全掃描,靜態(tài)掃描就是用的360的殺毒掃描引擎進(jìn)行掃描。例如,可以調(diào)用多個(gè)病毒掃描引擎:用于查殺PE類型文件的云查殺引擎,和/或QVM引擎。其中,PE類型文件通常指Windows操作系統(tǒng)上的程序文件,常見的PE類型文件包括EXE、DLL、OCX、SYS、COM等類型文件。針對(duì)非PE文件的殺毒引擎,主要指對(duì)除PE類型文件外的其它文件進(jìn)行掃描的殺毒引擎,需要說明的是,該殺毒引擎可以具有對(duì)所有非PE類型文件進(jìn)行查殺的能力,這種殺毒引擎可以包括至少一個(gè)殺毒引擎,例如,殺毒引擎可以為BitDefender殺毒引擎,和/或小紅傘殺毒引擎,和/或其它現(xiàn)有已存在的殺毒引擎等。還可以采用云查殺引擎、QVM引擎以及針對(duì)非PE文件的殺毒引擎之間采用并行查殺的方式,即從云查殺引擎開始,其順序?qū)Υ闅⑽募蓄A(yù)設(shè)數(shù)量的文件進(jìn)行查殺,查殺結(jié)果中不確定的文件輸入QVM引擎進(jìn)行查殺,QVM引擎難以確定的文件輸入到針對(duì)非PE文件的殺毒引擎中進(jìn)行查殺;云查殺引擎在將查殺結(jié)果中不確定的文件輸入QVM引擎后,再次對(duì)下一批預(yù)設(shè)數(shù)量的文件進(jìn)行查殺,也即各個(gè)殺毒引擎同時(shí)進(jìn)行查殺。(4)如果靜態(tài)安全掃描不報(bào)毒則進(jìn)行蜜罐動(dòng)態(tài)自動(dòng)分析(即文件導(dǎo)入后臺(tái)蜜罐系統(tǒng)中進(jìn)行分析)。在本實(shí)施例中引入了云安全架構(gòu),將作為客戶端的執(zhí)行圖1所示方法的服務(wù)器和云安全服務(wù)器實(shí)時(shí)連接,作為客戶端的執(zhí)行圖1所示方法的服務(wù)器不斷采集數(shù)據(jù)向云安全服務(wù)器上報(bào),而在云安全服務(wù)器端組成一個(gè)龐大的惡意程序數(shù)據(jù)庫用于進(jìn)行數(shù)據(jù)流的具體分析,并將主動(dòng)防御和病毒掃描的分析比對(duì)操作放在服務(wù)器端完成;針對(duì)具有威脅的程序行為進(jìn)行收集并保存在云安全服務(wù)器的數(shù)據(jù)庫中,在云安全服務(wù)器端進(jìn)行惡意軟件分析時(shí)支持直接使用程序行為進(jìn)行惡意程序判定。在本發(fā)明的一個(gè)實(shí)施例中,圖1所示的方法可以從內(nèi)網(wǎng)和外網(wǎng)之間的網(wǎng)關(guān)處的網(wǎng)絡(luò)數(shù)據(jù)流的旁路數(shù)據(jù)流中抓取數(shù)據(jù)包。即在內(nèi)網(wǎng)和外網(wǎng)之間的網(wǎng)關(guān)處做一個(gè)旁路,將網(wǎng)路數(shù)據(jù)流旁路到執(zhí)行圖1所示方法的服務(wù)器上,完成圖1所示方法的程序部署到該服務(wù)器上,由服務(wù)器運(yùn)行該程序進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)流分析。旁路可以采用目前路由器自帶的功能,原理是路由器收到數(shù)據(jù)包后,硬件電路會(huì)拷貝一份給旁路的網(wǎng)卡端口,該旁路的網(wǎng)卡端口將數(shù)據(jù)包發(fā)送到執(zhí)行圖1所示方法的服務(wù)器上,該服務(wù)器具有網(wǎng)卡,能夠接收所發(fā)送的數(shù)據(jù)。該服務(wù)器可以是基于linux的服務(wù)器,也可以是基于windows的服務(wù)器。這里方案相對(duì)于現(xiàn)有的在PC機(jī)上實(shí)現(xiàn)的方案,減少了部署的繁瑣操作(現(xiàn)有技術(shù)中需要在內(nèi)網(wǎng)的每個(gè)PC上進(jìn)行流量分析程序的部署),并且流量分析程序不需要部署在PC上,而是部署在執(zhí)行圖所述方法的服務(wù)器上,或者還可以進(jìn)一步將具體進(jìn)行分析的部分功能部署在云安全服務(wù)器端,因此也避免了對(duì)用戶的打擾。這里內(nèi)網(wǎng)是指本申請的技術(shù)方案所保護(hù)的局域網(wǎng),外網(wǎng)指該局域網(wǎng)之外的網(wǎng)絡(luò),如因特網(wǎng)等。具體實(shí)現(xiàn)時(shí),可將內(nèi)網(wǎng)和外網(wǎng)之間的網(wǎng)關(guān)處的網(wǎng)絡(luò)數(shù)據(jù)流的旁路到執(zhí)行圖1所示方法的服務(wù)器,該服務(wù)器接收到旁路的數(shù)據(jù)流后可以在本地進(jìn)行分析,也可以發(fā)送到云安全服務(wù)器進(jìn)行查詢和分析,都在本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的技術(shù)方案應(yīng)用于高速網(wǎng)絡(luò)流量的情況,運(yùn)行圖1所示方法的服務(wù)器如果采用單核CPU能支持帶寬上限達(dá)10Gbps,如果采用多核則能支持帶寬上限達(dá)到CPU核數(shù)×10Gbps。圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種基于云安全的網(wǎng)絡(luò)數(shù)據(jù)流分析裝置的結(jié)構(gòu)圖。如圖2所示,該網(wǎng)絡(luò)數(shù)據(jù)流分析裝置200包括:抓取單元201、組包單元202、網(wǎng)絡(luò)協(xié)議分析單元203和與不同網(wǎng)絡(luò)協(xié)議一一對(duì)應(yīng)的多個(gè)網(wǎng)絡(luò)協(xié)議掃描單元204;抓取單元201,適于抓取網(wǎng)絡(luò)數(shù)據(jù)流中的數(shù)據(jù)包;組包單元202,適于對(duì)抓取單元所抓取的數(shù)據(jù)包進(jìn)行組包處理,還原成消息;網(wǎng)絡(luò)協(xié)議確定單元203,適于確定還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,并將該消息發(fā)送給對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議掃描單元;每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元204,適于對(duì)所接收的消息進(jìn)行分析處理。其中,每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元204對(duì)應(yīng)一種網(wǎng)絡(luò)協(xié)議類型,每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元204能夠完成對(duì)對(duì)應(yīng)網(wǎng)絡(luò)協(xié)議消息的分析處理,判斷其中是否包含APT攻擊包。在圖2所示的裝置,由于先進(jìn)行了組包處理,將散碎的數(shù)據(jù)包重組成有意義的消息,在此基礎(chǔ)上進(jìn)行協(xié)議分析,因此可以有針對(duì)性地進(jìn)行分析,且相對(duì)于現(xiàn)有的逐個(gè)數(shù)據(jù)包進(jìn)行掃描的方案,提高了效率和準(zhǔn)確度。數(shù)據(jù)包在傳輸?shù)倪^程中,經(jīng)過很多路由器,其次序會(huì)亂。例如,一段文本包括數(shù)據(jù)包0、1、2、3、和4,同時(shí)到達(dá)目的端口時(shí),可能會(huì)出現(xiàn)亂序,有可能順序會(huì)變成數(shù)據(jù)包2、1、3、4、0。因此需要先調(diào)整好數(shù)據(jù)包的順序??梢愿鶕?jù)抓取的各數(shù)據(jù)包的TCP頭中的TCP序列號(hào),對(duì)各數(shù)據(jù)包進(jìn)行排序;具體按照TCP序列號(hào)數(shù)值小的在前,大的在后的順序?qū)Ω鲾?shù)據(jù)包進(jìn)行排序;其中,TCP序列號(hào)標(biāo)志數(shù)據(jù)包在數(shù)據(jù)流中的位置。對(duì)于排序后的數(shù)據(jù)包,將TCP頭中的確認(rèn)號(hào)碼(acknumber)相同的數(shù)據(jù)包進(jìn)行組包處理,還原出至少一條帶網(wǎng)絡(luò)協(xié)議格式的消息。這是因?yàn)橥辽僖粭l消息的acknumber是相同的。TCP序列號(hào)和acknumber都是TCP頭中的部分,對(duì)以按照TCP序列號(hào)排序好的各數(shù)據(jù)包,如果acknumber變化了,則表明一個(gè)消息結(jié)束,另一個(gè)消息開始了。例如acknumber之前是1000000,變成1000049時(shí)表明對(duì)端發(fā)了另一段數(shù)據(jù)過來。因此,在本發(fā)明的一個(gè)實(shí)施例中,組包單元202適于根據(jù)抓取單元201所抓取的各數(shù)據(jù)包的TCP頭中的TCP序列號(hào),對(duì)各數(shù)據(jù)包進(jìn)行排序;對(duì)于排序后的數(shù)據(jù)包,將TCP頭中的確認(rèn)號(hào)碼相同的數(shù)據(jù)包進(jìn)行組包處理,還原出至少一條帶網(wǎng)絡(luò)協(xié)議格式的消息。具體地,組包單元202適于按照TCP序列號(hào)數(shù)值小的在前,大的在后的順序?qū)Ω鲾?shù)據(jù)包進(jìn)行排序;其中,TCP序列號(hào)標(biāo)志數(shù)據(jù)包在數(shù)據(jù)流中的位置。在本發(fā)明的一個(gè)實(shí)施例中,每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元204,進(jìn)一步適于從消息中提取文件,對(duì)所提取文件進(jìn)行分析。即每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元204,不僅僅對(duì)消息進(jìn)行分析,如果該消息還在傳輸文件,則從該消息中提取出文件,進(jìn)一步對(duì)所傳輸?shù)奈募M(jìn)行分析。這樣如果其傳輸?shù)奈募邪粜畔ⅲ部梢詸z測出來,進(jìn)一步保證網(wǎng)絡(luò)安全。例如,對(duì)于提取到的文件,將其輸入到蜜罐系統(tǒng),根據(jù)蜜罐系統(tǒng)中預(yù)設(shè)的規(guī)則判斷該文件是否為木馬文件等。蜜罐中的預(yù)設(shè)規(guī)則是已知木馬文件的一個(gè)特征或特征的組合。符合這些規(guī)則的文件即被認(rèn)定為是木馬文件。蜜罐分析根據(jù)程序的進(jìn)程行為、文件操作行為、注冊表操作行為、網(wǎng)絡(luò)操作行為來確定病毒是否惡意。網(wǎng)絡(luò)行為可以理解為需要通過網(wǎng)絡(luò)進(jìn)行的各種行為,種類繁多,例如包括HTTP訪問(常見的有下載文件或上傳信息),SMT請求(收發(fā)電子郵件),DNS請求(解析域名對(duì)應(yīng)的IP地址等信息)等等。例如灰鴿子后門:注冊表注冊自啟動(dòng)服務(wù),在系統(tǒng)目錄下生成exe文件,并且啟動(dòng)一個(gè)iexplore.exe進(jìn)程。還可以包括:托盤操作,堆棧溢出,注入線程,攔截系統(tǒng)API掉用,修改和創(chuàng)建用戶賬號(hào)。還可以包括:調(diào)用SHELL程序,修改程序文件或?qū)懗绦蛭募{(diào)用FTP或TFTP,創(chuàng)建FTP或TFTP,發(fā)送郵件,瀏覽器或郵件系統(tǒng)自動(dòng)運(yùn)行其他程序,創(chuàng)建大量相同線程,修改和創(chuàng)建用戶賬號(hào),危險(xiǎn)網(wǎng)絡(luò)操作,向系統(tǒng)注冊表添加啟動(dòng)項(xiàng),修改系統(tǒng)啟動(dòng)文件,向其他進(jìn)程注入線程,堆棧溢出,應(yīng)用級(jí)進(jìn)程時(shí)自動(dòng)提升為系統(tǒng)級(jí)進(jìn)程操作,攔截系統(tǒng)API調(diào)用。每個(gè)網(wǎng)絡(luò)協(xié)議掃描單元204適于根據(jù)以下幾種方式中的至少一種,對(duì)所對(duì)所提取的文件進(jìn)行分析:將提取出的文件發(fā)送到云安全服務(wù)器進(jìn)行查詢;對(duì)提取出的文件進(jìn)行靜態(tài)安全掃描;將提取出的文件導(dǎo)入云安全服務(wù)器的蜜罐中進(jìn)行分析。在本發(fā)明的一個(gè)實(shí)施例中,抓取單元201適于從內(nèi)網(wǎng)和外網(wǎng)之間的網(wǎng)關(guān)處的網(wǎng)絡(luò)數(shù)據(jù)流的旁路數(shù)據(jù)流中抓取數(shù)據(jù)包。即將該裝置200部署在內(nèi)網(wǎng)和外網(wǎng)之間的網(wǎng)關(guān)處,在該網(wǎng)關(guān)處做一個(gè)旁路,將網(wǎng)路數(shù)據(jù)流旁路到該裝置200上。這相對(duì)于現(xiàn)有的在PC機(jī)上實(shí)現(xiàn)的方案,減少了部署的繁瑣操作(現(xiàn)有技術(shù)中需要在內(nèi)網(wǎng)的每個(gè)PC上進(jìn)行流量分析程序的部署),并且流量分析程序不需要部署在PC上,因此也避免了對(duì)用戶的打擾。綜上所述,本發(fā)明的這種抓取網(wǎng)絡(luò)數(shù)據(jù)流中的數(shù)據(jù)包,對(duì)抓取的數(shù)據(jù)包進(jìn)行組包處理,還原成消息,確定還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,根據(jù)還原成的消息所對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議,對(duì)該還原成的消息進(jìn)行分析處理的技術(shù)方案,由于進(jìn)行組包處理,將散碎的數(shù)據(jù)包重組成有意義的消息,在此基礎(chǔ)上進(jìn)行協(xié)議分析,可以有針對(duì)性地進(jìn)行分析,且相對(duì)于現(xiàn)有的逐個(gè)數(shù)據(jù)包進(jìn)行二進(jìn)制匹配,線性搜索匹配到要求的特征即認(rèn)為是惡意數(shù)據(jù)包的方案,提高了效率和準(zhǔn)確度。需要說明的是:在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)數(shù)據(jù)流分析裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。