李 杰, 熊育文
(中國聯(lián)通茂名市分公司,廣東 茂名 525000)
數(shù)據(jù)采集,又稱數(shù)據(jù)獲取,通常使用一種裝置或一種接口,從外部環(huán)境或外部系統(tǒng)收集數(shù)據(jù),輸入到內(nèi)部供系統(tǒng)使用[1]。在通常情況下,需要數(shù)據(jù)采集裝置,或者需要數(shù)據(jù)采集接口,而且采集到的數(shù)據(jù)格式必須是已知,這樣才能夠?qū)Σ杉降臄?shù)據(jù)進(jìn)行分析處理和進(jìn)一步的加工應(yīng)用。但是,在很多情況下,出于成本、性能等各種原因,外部系統(tǒng)不提供數(shù)據(jù)采集接口,或沒有數(shù)據(jù)格式資料,在這種情況下進(jìn)行數(shù)據(jù)采集非常困難。本單位的GSM基站包括MOTOROLA和華為兩種類型,分別負(fù)責(zé)不同區(qū)域基站的告警工作,但是告警終端沒有統(tǒng)一的聲音告警,值班人員必須時刻盯著這些告警終端,才能及時了解基站告警情況。長期這樣工作,給值班人員的身心造成了較大的壓力,不利于告警信息及時、準(zhǔn)確地發(fā)布和處理,所以需要采集這兩種不同告警的數(shù)據(jù),加工處理后進(jìn)行統(tǒng)一的展示和聲音告警。
MOTOROLA告警終端使用的是SUN工作站和SOLARIS操作系統(tǒng),華為告警終端使用的是PC機(jī)和WINDOWS操作系統(tǒng),告警終端分別連接在兩個完全隔離的網(wǎng)絡(luò)中,而且兩種告警系統(tǒng)都沒有數(shù)據(jù)格式資料和數(shù)據(jù)采集接口,無法使用常規(guī)的方法進(jìn)行數(shù)據(jù)采集,必須使用一種新的方法,才可能獲取到數(shù)據(jù)。
為了解決這個難題,必須對傳統(tǒng)的數(shù)據(jù)采集方法進(jìn)行創(chuàng)新,考慮到原系統(tǒng)沒有數(shù)據(jù)采集接口,要獲取數(shù)據(jù)還可以利用網(wǎng)絡(luò)監(jiān)聽技術(shù)捕獲告警終端與服務(wù)器之間的網(wǎng)絡(luò)通訊包,篩選過濾并分析通訊包數(shù)據(jù)內(nèi)容,獲取分離出有用的告警數(shù)據(jù),達(dá)到數(shù)據(jù)采集的目的。
網(wǎng)絡(luò)管理離不開網(wǎng)絡(luò)嗅探Sniffer,它能用來檢測、分析網(wǎng)絡(luò)性能和流量,查找網(wǎng)絡(luò)漏洞,提高網(wǎng)絡(luò)的運行性能[2],也可以用于網(wǎng)絡(luò)通訊包捕獲。這里使用一臺安裝了Sniffer軟件的電腦,使用集線器(不能使用交換機(jī))連接到告警網(wǎng)絡(luò)(如圖1所示),也可以使用交換機(jī)端口鏡像的方法連接,這里不再詳細(xì)介紹。
1.1.1 捕獲MOTOROLA告警數(shù)據(jù)
將監(jiān)聽電腦和集線器按圖1的方法連入MOTOROLA告警網(wǎng)絡(luò),開始用Sniffer捕獲通訊包,同時記錄告警終端上的告警信息,包括告警流水號、基站編號、基站名稱、告警時間、告警編號、告警名稱等,終端上顯示幾條告警后停止捕獲通訊包,然后將通訊包保存下來,供下一步篩選和分析使用。下面是記錄的一條告警信息。
1.1.2 捕獲華為告警數(shù)據(jù)
將監(jiān)聽電腦和集線器按圖1的方法連入華為告警網(wǎng)絡(luò),開始用Sniffer捕獲通訊包,同時記錄告警終端上的告警信息,包括告警流水號、基站編號、基站名稱、告警時間、告警類別、告警名稱等,終端上顯示幾條告警后停止捕獲通訊包,然后將通訊包保存下來,供下一步篩選和分析使用。一條典型的告警信息例子:對象號“24”、對象名稱“信宜三中M1800”、告警名稱“缺相告警”、告警類別“故障告警”、告警日期“2007/5/15”、告警時間“16:16:26”、告警流水號“1066840”,由于告警信息有告警名稱但沒有告警編號,所以需從華為告警系統(tǒng)查找編號,這里查詢到缺相告警的編號是2246。
采用由簡到繁的方法篩選分析包數(shù)據(jù),第一步是觀察法,在Sniffer中直接瀏覽,左邊列顯示的是十六進(jìn)制數(shù)據(jù),右邊列顯示的是對應(yīng)的ASCII字符,檢查右邊列是否有直觀的有用數(shù)據(jù)。第二步是十進(jìn)制搜索法,在數(shù)據(jù)包中搜索十進(jìn)制信息,考慮到雙字節(jié)或多字節(jié)信息不容易重復(fù),具有較好的唯一確定性,一般先搜索流水號、年份、月份等,由于各個外部系統(tǒng)的數(shù)據(jù)存儲方式未知,有些可能是按照從低位到高位的方式,有些可能是按照從高位到低位的方式,所以可能需要將待搜索的信息數(shù)據(jù)位置互換后再搜索,例如搜索流水號“2444”,如果未發(fā)現(xiàn)則再搜索“4424”。第三步是十六進(jìn)制搜索法,將十進(jìn)制數(shù)據(jù)轉(zhuǎn)換為十六進(jìn)制后按照第二步的方法進(jìn)行搜索,一般情況下計算機(jī)系統(tǒng)很少直接存儲十進(jìn)制數(shù)據(jù),所以第二步搜索成功的幾率較小。
1.2.1 篩選分析MOTOROLA告警數(shù)據(jù)
首先使用觀察法,經(jīng)過瀏覽發(fā)現(xiàn)其中有一個數(shù)據(jù)包含有告警名稱“High Temperature (3)”,由此可初步判斷此數(shù)據(jù)包是告警數(shù)據(jù)包,記錄包的端口和包長度,然后檢查“High Temperature (3)”前一字節(jié)為十六進(jìn)制的15,轉(zhuǎn)換為十進(jìn)制是21,正好為“High Temperature (3)”的長度加上一個字符串終止字節(jié)“00”的數(shù)量,所以初步判斷這個字節(jié)的含義為字符串長度。如果沒有其他有用的字符串信息則進(jìn)行下一步分析。
接下來是十進(jìn)制搜索法,告警流水號大于256,是雙字節(jié)信息,所以先在數(shù)據(jù)包中搜索告警流水號2444,先檢查是否按十進(jìn)制存儲,搜索“2444”或“4424”,沒有發(fā)現(xiàn)則轉(zhuǎn)換為十六進(jìn)制為“098c”,使用十六進(jìn)制搜索法搜索“098c”或“8c 09”的位置,發(fā)現(xiàn)數(shù)據(jù)包中存在“098c”,記錄其位置。在數(shù)據(jù)包搜索日期時間信息,先搜索年份,看是否包含“2007”或“0720”,如果沒有則將2007轉(zhuǎn)換為十六進(jìn)制即“07 d7”,再次搜索,發(fā)現(xiàn)數(shù)據(jù)包中有“07 d7”,而且其附近的信息很像日期時間信息,“370000001e 000000090000000f 00000004000007 d7”,進(jìn)一步驗證可知其排列為秒分時日月年,轉(zhuǎn)換為十進(jìn)制即與告警信息的“15/05/2007 09:30:55”相一致。接著搜索告警編號18(十六進(jìn)制12)的位置,由于告警編號僅有一個字節(jié),所以可能有其他數(shù)據(jù)包含“12”造成多個位置搜索到“12”,將這幾個位置記錄下來用其他的告警數(shù)據(jù)包進(jìn)行驗證。用此法可確定基站號45(十六進(jìn)制2d)的位置。至此,已經(jīng)可以確定告警流水號、基站編號、告警日期時間、告警編號、告警名稱等關(guān)鍵信息的在數(shù)據(jù)包中位置,基站名稱雖然不包含在數(shù)據(jù)包中,但可以根據(jù)基站編號確定。
圖1 監(jiān)聽電腦連接方式
1.2.2 篩選分析華為告警數(shù)據(jù)
首先使用觀察法,經(jīng)過瀏覽沒有發(fā)現(xiàn)有用的字符串信息,需進(jìn)行下一步分析。
接下來使用十進(jìn)制搜索法,先搜索告警流水號1066840的位置,先搜索“01066840”,沒有則搜索“40680601”,如果沒有發(fā)現(xiàn)則轉(zhuǎn)換為十六進(jìn)制104758,繼續(xù)搜索“104758”或“584710”,發(fā)現(xiàn)有數(shù)據(jù)包含有“584710”,初步判斷此包是告警數(shù)據(jù)包,而且數(shù)據(jù)存儲格式為十六進(jìn)制,由低位到高位排列,記錄包的端口和包長度。在數(shù)據(jù)包搜索日期時間信息,考慮到先搜索年份,將2007轉(zhuǎn)換為十六進(jìn)制即“07 d7”,搜索“07 d7”或“d707”,沒有發(fā)現(xiàn),說明年份不是保存2007,使用上述十六進(jìn)制搜索法搜索日期時間信息,發(fā)現(xiàn)“07050f 10101f”,進(jìn)一步驗證可知其排列為年月日時分秒,轉(zhuǎn)換為十進(jìn)制即與告警信息的“2007/5/1516:16:26”相一致。接著搜索告警編號2246(十六進(jìn)制8c6)的位置和基站編號24(十六進(jìn)制18)的位置,至此,已經(jīng)可以確定告警流水號、基站編號、告警日期時間、告警編號等關(guān)鍵信息的在數(shù)據(jù)包中位置,告警名稱雖然不包含在數(shù)據(jù)包中,但可以根據(jù)告警編號確定。
確定網(wǎng)絡(luò)通訊包的端口、長度,以及告警流水號、基站編號、告警日期時間、告警編號等關(guān)鍵數(shù)據(jù)在通訊包中的位置后,即可進(jìn)行系統(tǒng)設(shè)計將這些關(guān)鍵數(shù)據(jù)從捕獲的所有通訊包中篩選、過濾并分離出來,由于要同時監(jiān)聽兩個不同的網(wǎng)絡(luò),所以需要采用多線程編程,設(shè)立不同的數(shù)據(jù)緩沖區(qū)接收捕獲的通訊包數(shù)據(jù),如果通訊包的端口和長度不符合要求,則直接丟棄,然后根據(jù)關(guān)鍵數(shù)據(jù)在包中的位置提取并轉(zhuǎn)換出來,即完成告警數(shù)據(jù)的采集,后期的數(shù)據(jù)加工處理、統(tǒng)一展示和聲音告警等工作不在此處詳細(xì)介紹。
2.1.1 無需數(shù)據(jù)采集接口
有些系統(tǒng)廠商需另外收取費用,才提供數(shù)據(jù)采集接口,或者有些系統(tǒng)使用時間較長,廠商已不再提供新的接口開發(fā)服務(wù),而使用網(wǎng)絡(luò)監(jiān)聽技術(shù)采集數(shù)據(jù)無需原系統(tǒng)提供接口,不受這些情況制約,可節(jié)約成本費用。
2.1.2 無需數(shù)據(jù)格式資料
對于使用時間較長,資料已丟失,或者廠商本來就沒有提供資料的情況,使用網(wǎng)絡(luò)監(jiān)聽技術(shù)采集數(shù)據(jù)可以較好地解決這些難題,具有較明顯的優(yōu)勢。
2.1.3 實時性高
由于網(wǎng)絡(luò)監(jiān)聽技術(shù)采集的是網(wǎng)絡(luò)實時通訊數(shù)據(jù),與原系統(tǒng)幾乎是同時獲取數(shù)據(jù),所以具有很高的實時性。
2.1.4 對原有系統(tǒng)沒有任何影響
利用網(wǎng)絡(luò)監(jiān)聽技術(shù)采集數(shù)據(jù),無需在原系統(tǒng)上安裝任何硬件或軟件,所以對原系統(tǒng)的數(shù)據(jù)、性能、安全等不會造成任何影響。
利用網(wǎng)絡(luò)監(jiān)聽技術(shù)采集數(shù)據(jù)也存在著一些缺點,例如:①在數(shù)據(jù)加密或壓縮的情況下,使用網(wǎng)絡(luò)監(jiān)聽技術(shù)捕獲的數(shù)據(jù)包很難分析出有用的信息;②某些情況下無法接入監(jiān)聽電腦,也就無法使用網(wǎng)絡(luò)監(jiān)聽技術(shù)[3-5]。
基于網(wǎng)絡(luò)監(jiān)聽技術(shù)的無接口數(shù)據(jù)采集方法創(chuàng)新地將網(wǎng)絡(luò)監(jiān)聽技術(shù)應(yīng)用于網(wǎng)絡(luò)管理和網(wǎng)絡(luò)安全之外的領(lǐng)域,擴(kuò)展了網(wǎng)絡(luò)監(jiān)聽技術(shù)的應(yīng)用范圍,成功地解決了不同硬件和操作系統(tǒng)的數(shù)據(jù)采集問題,具有無需接口和數(shù)據(jù)格式資料、實時性高、對原系統(tǒng)沒有任何影響等優(yōu)點。根據(jù)這種方法成功開發(fā)了基站綜合告警系統(tǒng),目前已平穩(wěn)運行了4年多,該系統(tǒng)克服了原有告警系統(tǒng)沒有聲音的缺點,使值班人員能更加及時準(zhǔn)確地處理基站告警,降低了勞動強(qiáng)度,為提高網(wǎng)絡(luò)質(zhì)量和基站防盜提供了強(qiáng)有力的支撐,取得了良好的效果。
[1]百度百科.數(shù)據(jù)采集[EB/OL].(2011-12-9)[2011-12-28].http://baike.baidu.com/view/709701.htm.
[2]李丹,趙剛,劉玲.交換式網(wǎng)絡(luò)中監(jiān)聽技術(shù)的原理及實現(xiàn)[J].信息安全與通信保密,2007(06):150-152.
[3]鳴澗.網(wǎng)絡(luò)黑客常用攻擊手段[J].信息安全與通信保密,2001(10):68.
[4]網(wǎng)絡(luò)入侵取證調(diào)查研究[J].通信技術(shù),2008,41(07):219-221.
[5]廖祥波,鄧銀波,陳前斌,等.基于移動 IPv6環(huán)境中的安全威脅類型研究[J].通信技術(shù),2008,41(11):153-155.