早期警報防範駭客攻擊 運用iplog偵測惡意掃描

駭客攻擊之前必定會利用掃描的方式來尋找目標的弱點,若能制敵先機,在對方開始掃描時即事先得知,就可以立即做好防範,讓對方無法得逞,這種防範未然機制,可透過即時偵測掃描動作的軟體來建構,例如本文所介紹的iplog,就能發揮極大的預警效果。

隨著網路的普及,相關的攻擊事件也有日漸增多的趨勢。而駭客在攻擊之前,通常會經過下列的步驟:先確定攻擊目標,再確認目標主機的作業系統,接著確認目標主機所開啟的服務,最後以相關的攻擊程式進行攻擊。

在攻擊之前,駭客必定利用多種掃描工具對目標主機進行掃描,來確認目標主機的相關資訊,例如作業系統、開啟的服務等等。

偵測主機作業系統掃描

如果能夠在駭客攻擊前的掃描階段就偵測出掃描動作,即可防患於未然,因此一套能即時偵測掃描動作的工具,對於防護駭客攻擊會有極大的幫助。

為此,本文將介紹一套可即時偵測掃描動作的軟體iplog,其官方網站為「http://ojnk.sourceforge.net/」。

在駭客選擇完攻擊目標之後,接下來的步驟往往是先行探測目標主機的作業系統,以便針對該作業系統的漏洞進行攻擊,而區別作業系統的原理即在於,利用每一家作業系統對於封包的處理方式均不同的特性,來辨識出不同的作業系統。

由於此種方式就像辨認人類的指紋一樣,所以又稱為「作業系統指紋(OS Fingerprint)」辨識,而作業系統探測方式可分為「被動式指紋辨識(Passive fingerprinting)」及「主動式指紋辨識(Active fingerprinting)」,以下將概要說明。

被動式指紋辨識

探測軟體並不主動傳送封包至目標主機上,而是利用監聽技術(Sniffer)被動地監看往來封包,並藉由往來封包的特徵來辨識出作業系統,此種探測軟體以P0f為代表,其官方網址為「http://lcamtuf.coredump.cx/p0f.shtml」。

主動式指紋辨識

探測軟體透過傳送特別打造的TCP、UPD或ICMP封包至目標主機端,再根據目標主機回傳的封包特徵,來辨識出該主機的作業系統。此種工具以Nmap為代表,其官方網址為「http://nmap.org/」。

由於大部分的探測軟體均是使用「主動式指紋辨識」的方式偵測,因此本文並不討論「被動式指紋辨識」的原理,請讀者自行參閱其他文件。接下來,繼續說明主動式作業系統的辨識原理。

主動式作業系統的辨識依偵測原理來區分,可區分為以下幾種偵測方式:

FIN封包偵測
掃描軟體利用送出一個FIN封包至目標主機上,在正常的TCP/IP規範(RFC793)中對於此類封包是不予理會,但在某些的作業系統上,如Windows系統、Cisco等等作業系統,則會回應一個Reset(RST)封包。掃描軟體即可利用此種特徵來辨識出作業系統的種類。

Bogus(偽造)封包探測
掃描軟體在SYN封包的表頭(Header)上設置一個未定義的TCP旗標(Flag)值,在正常的TCP/IP規範中,規定對於此類封包是不予理會,但某些作業系統在遇到此類封包(SYN+ Bogus)時,會回應Reset封包來重置連線。掃描軟體即可利用此種特徵來辨識作業系統的種類。

ICMP錯誤訊息抑制(Error Message Quenching)
ICMP(Internet Control Message Protocol)主要應用在TCP/IP網路中發送控制消息,並提供可能發生在通訊環境中的各種問題反饋,透過這些訊息,管理者可以對所發生的問題做出診斷,然後採取適當的措施解決。

而此種特性也可應用在識別作業系統上。掃描軟體針對目標主機發送一連串ICMP封包,並統計出一段時間內ICMP unreachable封包的個數,將其與作業系統的預設值進行比較,即可辨認出作業系統的類型與版本。

以上是常用的作業系統偵測原理。在確定目標主機的作業系統後,接著駭客即須進行通訊埠掃描,以確認目標主機有那些服務正在運作。接著,說明通訊埠的掃描原理。

通訊埠掃描原理

在確定主機的作業系統後,接下來的步驟是確認該主機上運作的服務資訊,以便擬定攻擊策略。通訊埠的偵測主要是利用目標主機對於探測封包的回應情況,來判別目標主機的通訊埠(Port)是否為開啟的情況。所使用的探測技術,如下所述:

全連接技術

全連接技術為正常連接的探測方式,利用與目標主機完成三向交握(Three Handshake)的方式來確認被探測主機的通訊埠是否處於開啟的狀態。三向交握原理如下頁圖1所示。


▲圖1 三向交握運作原理。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!