李 翔 馬嘉川
(山東省交通通信信息中心 濟(jì)南 250000)
隨著國家信息化建設(shè)的快速發(fā)展,信息網(wǎng)絡(luò)安全問題日益突出,信息網(wǎng)絡(luò)安全面臨嚴(yán)峻考驗(yàn)。當(dāng)前互聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)無序、網(wǎng)絡(luò)行為不規(guī)范、通信路徑不確定、IP地址結(jié)構(gòu)無序、難以實(shí)現(xiàn)服務(wù)質(zhì)量保證、缺乏底層自愈能力、難以實(shí)現(xiàn)組播和多宿連接、骨干網(wǎng)核心設(shè)備易受攻擊、網(wǎng)絡(luò)安全難以保證、網(wǎng)絡(luò)可管理性差、設(shè)備越來越復(fù)雜昂貴等困擾。
基于以上問題,以往的補(bǔ)救措施已不能從根本上解決問題。與以往相比,信息安全保障呈現(xiàn)為主動(dòng)的、智能化的、動(dòng)態(tài)的信息安全態(tài)勢(shì)[1]。因此,解決網(wǎng)絡(luò)安全問題,必須未雨綢繆,爭(zhēng)取主動(dòng),堅(jiān)持技術(shù)與管理并舉發(fā)展。從技術(shù)上講,要在以往的分散封堵已發(fā)現(xiàn)得安全漏洞為目的得研究基礎(chǔ)上,把網(wǎng)絡(luò)與信息安全視為一個(gè)整體,從各方面開展大力度的研究,將整個(gè)網(wǎng)絡(luò)體系所需要的基本理論、協(xié)議和模塊等基礎(chǔ)構(gòu)件,與整體要求有機(jī)結(jié)合起來,形成完整的預(yù)警響應(yīng)解決方案。在新的安全形勢(shì)下,研究在網(wǎng)絡(luò)安全領(lǐng)域有前瞻性的專題及擁有相應(yīng)的核心預(yù)警與防御技術(shù)是很有必要的。
本文的研究構(gòu)建了一個(gè)信息網(wǎng)絡(luò)安全預(yù)警系統(tǒng),我們從數(shù)據(jù)獲得,數(shù)據(jù)分析,數(shù)據(jù)報(bào)警。這三方面具體闡述技術(shù)線路:
即采用交換設(shè)備監(jiān)聽口接入,對(duì)網(wǎng)絡(luò)流量影響很小。
分析數(shù)據(jù)分為內(nèi)核協(xié)議棧管理、數(shù)據(jù)分析線程、控制前端程序。
對(duì)網(wǎng)絡(luò)、系統(tǒng)、應(yīng)用和服務(wù)進(jìn)行多層次全方位的監(jiān)控和管理,賦予用戶從任何地方通過管理端口進(jìn)行安全、直接的管理和控制的支持能力,并對(duì)發(fā)現(xiàn)的故障進(jìn)行及時(shí)告警和響應(yīng)的處理能力,從而達(dá)到保障被管理網(wǎng)絡(luò)的可用性和可靠性。
本文從端口掃描的方法入手,研究其掃描技巧、掃描過程從而得到檢測(cè)的方法。以下為本文的詳細(xì)研究?jī)?nèi)容:
掃描器是一種自動(dòng)檢測(cè)遠(yuǎn)程或本地主機(jī)安全性弱點(diǎn)的程序,通過使用掃描器可一不留痕跡的發(fā)現(xiàn)遠(yuǎn)程服務(wù)器的各種TCP端口的分配及提供的服務(wù)和它們的軟件版本,這就能讓我們間接的或直觀的了解到遠(yuǎn)程主機(jī)所存在的安全問題。
掃描器通過選用遠(yuǎn)程TCP/IP不同的端口的服務(wù),并記錄目標(biāo)給予的回答,通過這種方法,可以搜集到很多關(guān)于目標(biāo)主機(jī)的各種有用的信息。
常用的端口掃描技術(shù)有:TCP connect()掃描、TCPSYN掃描、TCPFIN掃描、IP段掃描、TCP反向ident掃描、FTP返回攻擊、UDP端口掃描及NULL掃描。
為了檢測(cè)秘密掃描技術(shù)(Stealth Scan),本系統(tǒng)用一個(gè)枚舉變量表示新捕獲的數(shù)據(jù)包中透露出的掃描方式(當(dāng)然也可能是正常數(shù)據(jù),并非掃描數(shù)據(jù)包)。該枚舉類型定義如下:
typedefenum_scanType
{
sNONE=0。sUDP=1,sSYN=2,sSYNFIN=4,sFIN=8,sNULL=16,
sXMAS=32,sFULLXMAS=64,sRESERVEDBITS=128,sVECNA=256,sNOACK=512,sNMAPID=1024,
sSPAU=2048.sINVALIDACK=4096
}ScanType;
其中的每個(gè)常量值代表了相應(yīng)的掃描方式。
例如sUDP代表UDP端口掃描,sNULL代表半開掃描中的NULL掃描。系統(tǒng)中端口掃描功能中用三級(jí)雙向鏈表存儲(chǔ)一段時(shí)間內(nèi)(時(shí)間窗口)的端口的連接情況或數(shù)據(jù)包傳送情況。每一個(gè)源地址的一個(gè)特定端口到目標(biāo)地址的一個(gè)特定端口的連接用ConnectionInfo結(jié)構(gòu)表示,這些ConnectionInfo結(jié)構(gòu)組成雙向鏈表,表示連接隊(duì)列。這個(gè)連接隊(duì)列的頭指針放在DestinationInfo結(jié)構(gòu)中,而DestinationInfo結(jié)構(gòu)表示特定目標(biāo)系統(tǒng)。Destination-Info組成一個(gè)雙向鏈表,表頭指針放在SourceInfo結(jié)構(gòu)中,該結(jié)構(gòu)表示特定的可能發(fā)起掃描的系統(tǒng),該結(jié)構(gòu)同樣組成雙向鏈表,表頭則放在ScanList結(jié)構(gòu)中,該結(jié)構(gòu)定義如圖1:
圖1 結(jié)構(gòu)定義
算法介紹:
算法描述圖如圖2:
圖2 算法描述
算法過程說明:
(1)檢測(cè)可疑地址
currTime.tv_sec=P->pkth->ts.tv_sec;currTime.Tv_usec=P->
pkth->ts.tv_usec;
ExpireConnections(scanList,maxTime,currTime);
該段程序從最新捕獲的數(shù)據(jù)包(Wincap的捕獲函數(shù)為每個(gè)被捕獲的數(shù)據(jù)包增加一個(gè)捕獲時(shí)間)獲取當(dāng)前時(shí)間,并依次檢測(cè)三級(jí)存儲(chǔ)鏈表的每一個(gè)節(jié)點(diǎn)上存儲(chǔ)的連接信息,判斷是否該連接還在觀測(cè)時(shí)間窗口內(nèi),如果不在,則釋放該節(jié)點(diǎn)。
(2)插入新可疑地址
numPorts=NewScan(scanList,P,scanType);
把新捕獲的數(shù)據(jù)包結(jié)構(gòu)及其相應(yīng)的掃描類型插入三級(jí)鏈表的相應(yīng)位置,并返回發(fā)送該數(shù)據(jù)包的計(jì)算機(jī)系統(tǒng)過去一段時(shí)間內(nèi)新的連接數(shù)。
(3)檢查是否為秘密掃描
if(scanType&~(sSYN IsUDP))
{
scanList->lastSource->stealthScanUsed=1:
scanList->lastSource->reportStealth=1;
}
如果是秘密掃描方式的一種,則表示該數(shù)據(jù)包是掃描數(shù)據(jù)包,并報(bào)警該數(shù)據(jù)包的源系統(tǒng)正在進(jìn)行掃描。
(4) 計(jì)算訪問端口個(gè)數(shù)
if(numPorts>maxPorts)
{
scanList->lastSource->scanDetected=1;
}
如果不是秘密掃描方式,但是在過去的短暫時(shí)間內(nèi)的相應(yīng)源地址發(fā)出的連接數(shù)超過閥值,則認(rèn)為該源系統(tǒng)正在進(jìn)行掃描。
網(wǎng)絡(luò)異常行為預(yù)警目的是發(fā)現(xiàn)應(yīng)用中的特定行為,本文的系統(tǒng)模型設(shè)計(jì)結(jié)合使用協(xié)議分析的方法,采用了類似入侵檢測(cè)系統(tǒng)(IDS)的設(shè)計(jì)思想[2]。主要解析了HTTP協(xié)議、SMTP協(xié)議、FTP協(xié)議和TELNET協(xié)議。
HTTP在設(shè)計(jì)時(shí),主要強(qiáng)調(diào)協(xié)議的開銷與速度,將其設(shè)計(jì)為輕型的高速協(xié)議,基于Client/Server結(jié)構(gòu),由客戶發(fā)起聯(lián)接請(qǐng)求,與服務(wù)器建立聯(lián)接之后,客戶發(fā)送服務(wù)請(qǐng)求,服務(wù)器對(duì)請(qǐng)求進(jìn)行處理,并將結(jié)果傳給客戶,最后關(guān)閉聯(lián)接,一次基于HTTP的會(huì)話完成。所以可將一個(gè)HTTP會(huì)話分為4個(gè)步驟:聯(lián)接,請(qǐng)求,應(yīng)答,關(guān)閉。
SMTP的設(shè)計(jì)基于以下的通信模型:當(dāng)一個(gè)用戶提出發(fā)信請(qǐng)求后,SMTP發(fā)送方便與SMTP接收方建立一個(gè)雙向的傳輸通道。SMTP命令由發(fā)送方產(chǎn)生并送達(dá)接收方,接收方送回對(duì)這一命令的響應(yīng)。當(dāng)傳輸通道成功建立之后,SMTP發(fā)送方通過MAIL命令發(fā)送自己的用戶名和電子郵件地址。如果接收方同意接收,則返回OK應(yīng)答。SMTP發(fā)送方接著通過RCPT命令發(fā)送收信人的用戶名和電子郵件地址,如果SMTP接收方能識(shí)別收信人,則返回OK應(yīng)答,否則返回收信人無法識(shí)別的應(yīng)答,但SMTP會(huì)話過程仍將繼續(xù)。如果收信人不只一個(gè),這一步驟將重復(fù),直到SMTP發(fā)送方與接收方確認(rèn)完每一個(gè)收信人。
FTP是Internet上主要使用的文件傳輸協(xié)議。其主要目的是為了多個(gè)用戶更好地共享數(shù)據(jù)或程序,有效可靠地在不同的主機(jī)間傳輸數(shù)據(jù),使不同的文件系統(tǒng)對(duì)用戶透明。RFC959對(duì)其作了詳盡的描述。
telnet會(huì)話過濾是建立在進(jìn)行會(huì)話的用戶名基礎(chǔ)上的。在登錄階段,telnet服務(wù)器和telnet客戶端的信息交換除了telnet命令,沒有規(guī)定其他標(biāo)準(zhǔn)格式。這些信息是用于顯示給用戶的。這使檢查login和password的提示符有困難。
大多數(shù)情況下,通過telnet連接傳輸,一個(gè)包里表示的數(shù)據(jù)量是很少的。例如,當(dāng)用戶在打用戶名和輸入命令時(shí),每個(gè)字符正常是以分開包傳送的。這使檢查用戶名和監(jiān)視用戶命令變得比較困難。
如果用戶成功登錄,從服務(wù)器端傳送“l(fā)ast login”信息。若登錄不成功,傳送“l(fā)ogin incorrect”信息。這些信息有助于檢測(cè)是成功登錄還是不成功登錄。只有在成功登錄,telnet過濾器收集telnet連接的信息。
本文根據(jù)對(duì)以上各協(xié)議分析的分析結(jié)果,收集網(wǎng)絡(luò)系統(tǒng)的特征參數(shù),如網(wǎng)絡(luò)中的MTU、報(bào)文數(shù)、數(shù)據(jù)包發(fā)送時(shí)間間隔等協(xié)議特征[3],并將特征參數(shù)組織形成規(guī)則庫,為檢測(cè)和預(yù)警提供依據(jù)。
基于已有的研究成果,本文從端口掃描預(yù)警和網(wǎng)絡(luò)行為異常預(yù)警技術(shù)出發(fā),設(shè)計(jì)開發(fā)了信息網(wǎng)絡(luò)安全預(yù)警系統(tǒng),整個(gè)預(yù)警與應(yīng)急響應(yīng)體系是以入侵檢測(cè)為核心的,容納并聯(lián)合了其它安全防護(hù)設(shè)備,統(tǒng)一進(jìn)行入侵管理,支撐應(yīng)急響應(yīng)體系。
[1][美]Chridtopher M King,Curtis EDalton,TErtem Osmanoglu.常曉波,楊劍峰譯.安全體系結(jié)構(gòu)設(shè)計(jì)、部署與操作[M].北京:清華大學(xué)出版社,2003.
[2]周慧芳,張亞玲,王尚平等.協(xié)議分析與模式匹配相結(jié)合的 IDS的設(shè)計(jì)研究[J].信息技術(shù),2007,(08):14~17.
[3]Chauhan S.ProjectReport:Analysis and Detection of Network CovertChannels[R].CMSC 691 IA.2005:08.