專利名稱:安全日志的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng)的日志生成,特別涉及通信系統(tǒng)中是用硬件生成安全日志的方法。
背景技術(shù):
隨著網(wǎng)絡(luò)的普及和發(fā)展,網(wǎng)絡(luò)的安全越來越重要,現(xiàn)在網(wǎng)絡(luò)的安全控制技術(shù)正飛速發(fā)展。一套網(wǎng)絡(luò)安全的整體解決方案涉及很多方面,包括設(shè)置好密碼策略、設(shè)置安全日志策略以及安全管理制度等等。其中設(shè)置安全日志策略是通過在安全日志中記錄一些重要信息以對網(wǎng)絡(luò)的使用情況進(jìn)行監(jiān)控,通過監(jiān)控的結(jié)果不斷調(diào)整安全設(shè)置,提高網(wǎng)絡(luò)安全性。
由于網(wǎng)絡(luò)安全的重要性,考慮到交換機在網(wǎng)絡(luò)中處于核心的地位,因此需要在交換機實現(xiàn)對用戶的監(jiān)控日志功能,從而可以查看各個用戶上網(wǎng)情況,了解網(wǎng)上流量信息,對網(wǎng)絡(luò)不法行為進(jìn)行追查等。目前的安全日志可以包括以下幾部分一、用戶的上網(wǎng)記錄,即用戶的上下線時間、互聯(lián)網(wǎng)協(xié)議(InternetProtocal,簡稱“IP”)地址、介質(zhì)訪問控制(Media Access Control,簡稱“MAC”)地址、永久虛電路(Permanent Virtual Circuit,簡稱“PVC”)等信息進(jìn)行保存;二、用戶的上網(wǎng)操作記錄,即對用戶所訪問過的IP地址、協(xié)議類型、端口號等也進(jìn)行保存;三、對于做網(wǎng)絡(luò)地址轉(zhuǎn)換(Net Address Translation,簡稱“NAT”)的用戶,還需要其報文的轉(zhuǎn)發(fā)地址轉(zhuǎn)換記錄,以便必要時進(jìn)行追蹤。
現(xiàn)有的技術(shù)方案在生成安全日志時,軟件在其中完成的功能較多,以下簡稱為安全日志的軟件實現(xiàn)方案。該方案的實現(xiàn)有以下特點第一、由軟件維護(hù)形成安全日志的規(guī)則,該規(guī)則一般以數(shù)據(jù)報文的五元組進(jìn)行精確匹配查找。所謂五元組,即報文的一個套接字,包括協(xié)議、本地地址、本地端口、遠(yuǎn)程地址、遠(yuǎn)程端口。五元組中的項需要精確匹配,比如某個五元組的組合。
第二、硬件在緩存中保存查找規(guī)則,軟件為硬件維護(hù)查找規(guī)則緩存。該查找規(guī)則的組織形式可以為多種,例如采用哈希(HASH)表組織,該查找規(guī)則緩存以五元組為索引作精確匹配查找。
第三、硬件在接收到一個報文時,以它的五元組索引查找規(guī)則緩存。如果有匹配,則按匹配表項的內(nèi)容對該報文做處理;否則,將這個報文上報給軟件。
第四、軟件收到硬件上報的報文后,同樣以它的五元組去索引查找規(guī)則,如果沒有找到匹配結(jié)果,則要在查找規(guī)則緩存中添加一個記錄,以使以后當(dāng)硬件接收到的五元組完全相同的報文時可以通過查查找規(guī)則緩存轉(zhuǎn)發(fā)。
第五、軟件定時按一定的策略,例如超時老化策略,刷新查找規(guī)則緩存。
這樣,通過這種首包上報的流轉(zhuǎn)發(fā)機制,軟件可以根據(jù)需要記錄報文的信息,主要是五元組、接收客戶端口,實現(xiàn)對網(wǎng)上流量的監(jiān)控,實現(xiàn)安全日志功能。
在實際應(yīng)用中,上述方案存在以下問題軟件處理速度慢,容易丟失報文;對中央處理器(Central Processing Unit,簡稱“CPU”)的資源消耗大,導(dǎo)致整個系統(tǒng)的整體效率較低。
造成這種情況的一個主要原因在于在現(xiàn)有的安全日志的軟件實現(xiàn)方案中,所有需要做日志的報文的首包都要上報給軟件,由于軟件的處理速度不高會形成處理瓶頸,對于數(shù)據(jù)流量瞬時突發(fā)度較大的情況,會導(dǎo)致報文丟失;該方案中,CPU需要花掉大量的時間執(zhí)行軟件去分析報文、計算索引、設(shè)置轉(zhuǎn)發(fā)表項等等,因而會大大地增加CPU的負(fù)荷,進(jìn)而導(dǎo)致整個系統(tǒng)的整體效率較低。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種安全日志的實現(xiàn)方法,使得能夠使用硬件來實現(xiàn)安全日志的處理,報文的處理速度和設(shè)備的處理能力得以提高,從而克服現(xiàn)有方案中的處理瓶頸現(xiàn)象,并使CPU的負(fù)荷得以減輕從而提高系統(tǒng)的工作效率。
為了解決上述技術(shù)問題,本發(fā)明提供了一種安全日志的實現(xiàn)方法,包含以下步驟A當(dāng)接收到一個報文時,以所述報文的信息作為索引查找用戶配置的規(guī)則緩存,并根據(jù)查找結(jié)果判斷是否需要對所述報文做日志,如果是則進(jìn)入步驟B,否則進(jìn)入步驟C;B根據(jù)用戶配置的策略提取所述報文的相關(guān)信息作為索引查找日志信息表,并判斷所述日志信息表中是否有匹配所述相關(guān)信息的表項,如果沒有則根據(jù)所述報文在所述日志信息表中新增一條表項;進(jìn)入步驟C;C轉(zhuǎn)發(fā)所述報文。
其中,所述方法還包含以下步驟當(dāng)在所述日志信息表中新增表項時將該表項的老化系數(shù)設(shè)置為預(yù)定的初始值;定時刷新所述日志信息表,并判斷所述日志信息表每一個表項的老化系數(shù)是否為0,如果是則刪除該表項,否則將該表項的老化系數(shù)減1。
所述步驟B中還包含以下步驟當(dāng)所述日志信息表中有匹配所述報文信息的表項時,判斷該表項的老化系數(shù)是否為達(dá)到最大閾值,如果否,則將該表項的老化系數(shù)加1。
所述步驟B還包含以下步驟在所述日志信息表中新增一條表項以前,判斷所述日志信息表是否已滿,如果是則在臨時日志信息表中新增一條表項。
所述臨時日志信息表的結(jié)構(gòu)、存儲組織、查找方法和維護(hù)方式都與日志信息表完全相同,并在系統(tǒng)初始化時由軟件清除所有信息。
在臨時日志信息表中新增一條表項的步驟包含以下子步驟判斷所述臨時日志信息表的存儲空間是否已滿,如果是則用新的表項覆蓋所述臨時日志信息表中的舊表項,否則在所述臨時日志信息表中新增一條表項。
所述步驟B還包含以下步驟在所述日志信息表中新增一條表項以前,判斷所述日志信息表是否已滿,如果是則直接轉(zhuǎn)發(fā)所述報文,不做日志。
所述步驟B還包含以下步驟在所述日志信息表中新增一條表項以前,判斷所述日志信息表是否已滿,如果是則將所述報文上報給上層軟件處理。
所述方法還包含以下步驟當(dāng)所述報文需要做安全日志時,把所述報文所對應(yīng)的所述日志信息表或者臨時日志信息表中的內(nèi)容寫入一個日志信息上報隊列。
所述日志信息上報隊列由硬件中斷通知系統(tǒng)讀取或者由系統(tǒng)定時讀取。
通過比較可以發(fā)現(xiàn),本發(fā)明的技術(shù)方案與現(xiàn)有技術(shù)的區(qū)別在于,不同于現(xiàn)有的大部分用軟件處理形成安全日志的方案,本發(fā)明提出的流程適合于用硬件完成安全日志的處理;并且不同于現(xiàn)有方案,本方案不必根據(jù)五元組進(jìn)行精確的匹配查找,查找時根據(jù)用戶策略配置的查找引擎中的查找規(guī)則進(jìn)行查找,查找的靈活性更大。
這種技術(shù)方案上的區(qū)別,帶來了較為明顯的有益效果,即首先通過該方案的實施,系統(tǒng)對于報文的處理速度顯著加快,解決了傳統(tǒng)的軟件實現(xiàn)的技術(shù)方案中報文丟失的問題。在本方案的實施例中,在數(shù)據(jù)流量突然增大的時候,不會發(fā)生報文丟失的問題。其次通過該方案的實施,顯著減輕了系統(tǒng)尤其是中央處理器的負(fù)擔(dān),系統(tǒng)的整體性能得到明顯提高。在該實施例中,即使在數(shù)據(jù)流量突然增大的情況下,也不會出現(xiàn)中央處理器被完全占用而使系統(tǒng)響應(yīng)其它的操作的時間太長的情況。
圖1為根據(jù)本發(fā)明的一個實施例的安全日志的實現(xiàn)方案的一個報文的硬件處理流程圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述。
下面結(jié)合本發(fā)明的一個具體實施例來說明,該實施例的一個報文的硬件處理流程如圖1。存在一個用于周期性觸發(fā)刷新動作的定時器,當(dāng)該定時器超時時,首先進(jìn)入步驟100,判斷是否需要刷新日志信息表,如果是進(jìn)入步驟110,否則進(jìn)入步驟120。刷新過程為定時進(jìn)行,本實施例中刷新過程為硬件定時,定時時間由上層軟件事先配置。
在步驟110中,刷新日志信息表。該步驟可以分為以下兩種情況對于一條記錄,如果老化系數(shù)為0,則刪除這個表項;如果老化系數(shù)不為0,則將其減1。該步驟是為了定時更新日志信息表,刪除不需要的表項并為后續(xù)的新添加的表項準(zhǔn)備存儲空間。
當(dāng)接收到一個報文時,進(jìn)入步驟120,按照規(guī)則進(jìn)行硬件查找。該規(guī)則為用戶配置的五元組匹配的規(guī)則。硬件接收的報文,以該報文的五元組匹配硬件搜索引擎中的查找規(guī)則。本實施例中,采用具可擴充性的內(nèi)容可尋址存儲器(Content Addressable Memory,簡稱“CAM”)進(jìn)行查表操作。
接著進(jìn)入步驟130,根據(jù)用戶配置的規(guī)則判斷是否需要做日志,如果是進(jìn)入步驟140,否則進(jìn)入步驟210。在實施例的具體實施中,根據(jù)查找引擎匹配到的結(jié)果判斷是否需要做日志。
在步驟140中,提取該報文的信息作為索引查找日志信息表。提取該報文的何種信息取決于查找引擎匹配到的用戶配置策略,例如,在本發(fā)明的一個實施例中,用戶配置發(fā)往2.2.2.2這個IP地址的所有報文提取源IP地址和源端口號作為日志的記錄,則該步驟提取目的IP地址、源IP地址和源端口號作為索引查找日志信息表。
接著進(jìn)入步驟150,判斷日志信息表中是否有匹配該報文的表項,如果有則進(jìn)入步驟160,否則進(jìn)入步驟170。該步驟即判斷在日志信息表中是否已經(jīng)有該報文表項的的記錄,如果有就不用重復(fù)記錄了。
在步驟160中,判斷該報文對應(yīng)的表項的老化系數(shù)是否已經(jīng)達(dá)到最大閾值,如果是則進(jìn)入步驟210,否則進(jìn)入步驟180。該老化系數(shù)的最大閾值由人為設(shè)定,它用來表征該表項的最大存活時間,例如在本發(fā)明的一個實施例中,最大閾值可以設(shè)置為10,表示在沒有后序相同報文的情況下,可以在日志信息表中駐留10次刷新的時間間隔。如果不設(shè)置老化系數(shù)的最大閾值,那么當(dāng)一個時間段內(nèi)某個表項相應(yīng)的報文密集到達(dá)時,該表項的老化系數(shù)會達(dá)到一個非常大的值,以至于即使此后與該表項相對應(yīng)的報文一個也沒有,該表項也會在日志信息表中保留相當(dāng)長的一段時間,這并不是我們希望看到的。我們希望在日志信息表中只保留最近活躍的表項,因此需要設(shè)置老化系數(shù)的最大閾值。
在步驟170中,判斷日志信息表是否已經(jīng)存儲滿,如果是則進(jìn)入步驟200,否則進(jìn)入步驟190。該步驟即判斷是否需要進(jìn)行溢出處理,如果日志信息表滿了就要進(jìn)行溢出處理。溢出處理的方法有多種,在本發(fā)明的一個實施例中采用增加一個臨時表即臨時日志信息表來處理溢出的方法,該方法的具體步驟在下文有詳細(xì)說明。除了這種方法以外,還可以采用以下方法可選方法一,上報給軟件,硬件不做進(jìn)一步的處理;可選方法二,對這個包不做日志,直接由硬件轉(zhuǎn)發(fā)。
在步驟180中,增加該報文對應(yīng)的表項的老化系數(shù)。在本實施例中,該步驟將該報文對應(yīng)的表項的老化系數(shù)增加1,以表示該報文對應(yīng)的表項應(yīng)該多保存一段時間,以避免該出現(xiàn)頻率較高的需要做日志的報文重復(fù)寫入擦除日志信息表,造成日志信息表的振蕩。接著進(jìn)入步驟210。
在步驟190中,在日志信息表中增加一條表項,并將該表項的老化系數(shù)設(shè)置為1。增加的表項對應(yīng)于在日志信息表中沒有匹配項的報文需要寫入日志的數(shù)據(jù),比如系統(tǒng)時間,源IP地址等信息。接著進(jìn)入步驟210。
在步驟200中,使用臨時表臨時日志信息表保存新增加的一條表項。該步驟為溢出處理,在日志信息表已滿需要進(jìn)行溢出處理的時候執(zhí)行。臨時日志信息表的結(jié)構(gòu)、存儲組織、查找方法和刷新維護(hù)方式都與日志信息表一致,區(qū)別在于在臨時日志信息中,當(dāng)表項溢出時,允許后來的記錄覆蓋原來的記錄。即當(dāng)需要新增加一條記錄時,首先檢查日志信息表,如果日志信息表滿了,則檢查臨時日志信息表,如果臨時日志信息表也滿了,則用新記錄覆蓋臨時日志信息表中的舊記錄。接著進(jìn)入步驟210。
在步驟210中,進(jìn)行該報文的轉(zhuǎn)發(fā)。
至此,一個報文的硬件處理流程完成。
在該實施例中,報文日志信息的硬件上報流程如下當(dāng)硬件根據(jù)用戶配置的策略檢測到某報文需要做安全日志后,例如有新的報文信息寫入日志信息表或者臨時日志信息表時需要保存用戶上線時間等信息,有報文信息要從日志信息表或者臨時日志信息表中刪除時需要保存用戶下線時間等信息,則要把該報文所對應(yīng)的日志信息表或者臨時日志信息表中的內(nèi)容寫入一個上報緩存中,該上報緩存采用先進(jìn)先出的隊列管理方式,稱之為日志信息上報隊列。上層軟件則會從日志信息上報隊列中讀取上報的日志信息。
在該實施例中,上層軟件的維護(hù)處理較少,概括起來主要包括下面幾方面上層軟件需要維護(hù)好硬件搜索引擎中的查找規(guī)則。關(guān)于硬件搜索引擎及其查找規(guī)則不屬于本文描述內(nèi)容,本文不多說明。
初始化時,上層軟件將日志信息表和臨時日志信息表的所有記錄清除。
上層軟件按照一定的機制,例如硬件上報中斷、定時讀取等規(guī)則,讀取硬件的日志信息上報隊列,并將其內(nèi)容存儲到其他介質(zhì),例如磁盤上,然后進(jìn)行安全日志的其它一些后續(xù)處理。在本發(fā)明的一個較佳實施例中,軟件使用硬件中斷上報規(guī)則讀取硬件的日志信息上報隊列,并將讀取的內(nèi)容存儲到磁盤上。
雖然通過參照本發(fā)明的某些優(yōu)選實施例,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對其作各種各樣的改變,而不偏離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種安全日志的實現(xiàn)方法,其特征在于,包含以下步驟A 當(dāng)接收到一個報文時,以所述報文的信息作為索引查找用戶配置的規(guī)則緩存,并根據(jù)查找結(jié)果判斷是否需要對所述報文做日志,如果是則進(jìn)入步驟B,否則進(jìn)入步驟C;B 根據(jù)用戶配置的策略提取所述報文的相關(guān)信息作為索引查找日志信息表,并判斷所述日志信息表中是否有匹配所述相關(guān)信息的表項,如果沒有則根據(jù)所述報文在所述日志信息表中新增一條表項;進(jìn)入步驟C;C 轉(zhuǎn)發(fā)所述報文。
2.根據(jù)權(quán)利要求1所述的安全日志的實現(xiàn)方法,其特征在于,還包含以下步驟當(dāng)在所述日志信息表中新增表項時將該表項的老化系數(shù)設(shè)置為預(yù)定的初始值;定時刷新所述日志信息表,并判斷所述日志信息表每一個表項的老化系數(shù)是否為0,如果是則刪除該表項,否則將該表項的老化系數(shù)減1。
3.根據(jù)權(quán)利要求2所述的安全日志的實現(xiàn)方法,其特征在于,所述步驟B中還包含以下步驟當(dāng)所述日志信息表中有匹配所述報文信息的表項時,判斷該表項的老化系數(shù)是否達(dá)到最大閾值,如果否,則將該表項的老化系數(shù)加1。
4.根據(jù)權(quán)利要求1所述的安全日志的實現(xiàn)方法,其特征在于,所述步驟B還包含以下步驟在所述日志信息表中新增一條表項以前,判斷所述日志信息表是否已滿,如果是則在臨時日志信息表中新增一條表項。
5.根據(jù)權(quán)利要求4所述的安全日志的實現(xiàn)方法,其特征在于,所述臨時日志信息表的結(jié)構(gòu)、存儲組織、查找方法和維護(hù)方式都與日志信息表完全相同,并在系統(tǒng)初始化時由軟件清除所有信息。
6.根據(jù)權(quán)利要求4所述的安全日志的實現(xiàn)方法,其特征在于,在臨時日志信息表中新增一條表項的步驟包含以下子步驟判斷所述臨時日志信息表的存儲空間是否已滿,如果是則用新的表項覆蓋所述臨時日志信息表中的舊表項,否則在所述臨時日志信息表中新增一條表項。
7.根據(jù)權(quán)利要求1所述的安全日志的實現(xiàn)方法,其特征在于,所述步驟B還包含以下步驟在所述日志信息表中新增一條表項以前,判斷所述日志信息表是否已滿,如果是則直接轉(zhuǎn)發(fā)所述報文,不做日志。
8.根據(jù)權(quán)利要求1所述的安全日志的實現(xiàn)方法,其特征在于,所述步驟B還包含以下步驟在所述日志信息表中新增一條表項以前,判斷所述日志信息表是否已滿,如果是則將所述報文上報給上層軟件處理。
9.根據(jù)權(quán)利要求1、4或5所述的安全日志的實現(xiàn)方法,其特征在于,還包含以下步驟當(dāng)所述報文需要做安全日志時,把所述報文所對應(yīng)的所述日志信息表或者臨時日志信息表中的內(nèi)容寫入一個日志信息上報隊列。
10.根據(jù)權(quán)利要求9所述的安全日志的實現(xiàn)方法,其特征在于,所述日志信息上報隊列由硬件中斷通知系統(tǒng)讀取或者由系統(tǒng)定時讀取。
全文摘要
本發(fā)明涉及通信系統(tǒng)的日志生成,公開了一種安全日志的實現(xiàn)方法,使得能夠使用硬件來實現(xiàn)安全日志的處理,報文的處理速度和設(shè)備的處理能力得以提高,從而克服現(xiàn)有方案中的處理瓶頸現(xiàn)象,并使CPU的負(fù)荷得以減輕從而提高系統(tǒng)的工作效率。這種安全日志的實現(xiàn)方法包含以下步驟A當(dāng)接收到一個報文時,以所述報文的信息作為索引查找用戶配置的規(guī)則緩存,并判斷是否需要對所述報文做日志,如果是則進(jìn)入步驟B,否則進(jìn)入步驟C;B根據(jù)用戶配置的策略提取所述報文相關(guān)信息作為索引查找日志信息表,并判斷所述日志信息表中是否有匹配所述報文信息的表項,如果沒有則在所述日志信息表中新增一條表項;進(jìn)入步驟C;C轉(zhuǎn)發(fā)所述報文。
文檔編號H04L29/02GK1592233SQ0315547
公開日2005年3月9日 申請日期2003年8月30日 優(yōu)先權(quán)日2003年8月30日
發(fā)明者陳武茂 申請人:華為技術(shù)有限公司