·系統防禦戰:黑客網路攻擊的預防措施(2)
三、拒絕服務攻擊及預防措施
在拒絕服務攻擊中,攻擊者載入過多的服務將對方資源全部使用,使得沒有多餘資源供其他用戶無法使用。SYN Flood攻擊是典型的拒絕服務攻擊。
SYN Flood常常是源IP位址欺騙攻擊的前奏,又稱半開式連接攻擊,每當我們進行一次標準的TCP連接就會有一個三次握手的程序,而SYN Flood在它的實現程序中只有三次握手的前兩個步驟,當服務方收到請求方的SYN並回送SYN-ACK驗證報文後,請求方由於採用源位址欺騙等手段,致使服務方得不到ACK回應,這樣,服務方會在一定時間內處於等待接收請求方ACK報文的狀態,一台伺服器可用的TCP連接是有限的,如果惡意攻擊方快速連續的傳送此類連接請求,則伺服器的系統可用資源、網路可用帶寬急劇下降,將無法向其它用戶提供正常的網路服務。
為了防止拒絕服務攻擊,我們可以採取以下的預防措施:
(1) 建議在該網段的路由器上做些組態的調整,這些調整包括限制Syn半開資料包的流量和個數。
(2)要防止SYN資料段攻擊,我們應對系統設定相應的內核參數,使得系統強制對超時的Syn請求連接資料包復位,同時通過縮短超時常數和加長等候佇列使得系統能迅速處理無效的Syn請求資料包。
(3)建議在路由器的前端做必要的TCP攔截,使得只有完成TCP三次握手程序的資料包才可進入該網段,這樣可以有效地保護本網段內的伺服器不受此類攻擊。
(4)對於訊息淹沒攻擊,我們應關掉可能產生無限序列的服務來防止這種攻擊。比如我們可以在伺服器端拒絕所有的ICMP包,或者在該網段路由器上對ICMP包進行帶寬方面的限制,控制其在一定的範圍內。
總之,要徹底杜絕拒絕服務攻擊,最好的辦法是惟有追根溯源去找到正在進行攻擊的機器和攻擊者。 要追蹤攻擊者可不是一件容易的事情,一旦其停止了攻擊行為,很難將其發現。惟一可行的方法是在其進行攻擊的時候,根據路由器的訊息和攻擊資料包的特徵,採用逐級回溯的方法來搜尋其攻擊源頭。這時需要各級部門的協同配合方可有效果。
四、其他網路攻擊行為的防範措施
傳輸協定攻擊和拒絕服務攻擊是黑客慣於使用的攻擊方法,但隨著網路技術的飛速發展,攻擊行為千變萬化,新技術層出不窮。下面將闡述一下網路嗅探及緩衝區溢位的攻擊原理及防範措施。
1、針對網路嗅探的防範措施
網路嗅探就是使網路接頭接收不屬於本主機的資料。電腦網路通常建立在共享信道上,乙太網就是這樣一個共享信道的網路,其資料報頭包含目的主機的硬體位址,只有硬體位址匹配的機器才會接收該資料包。一個能接收所有資料包的機器被稱為雜錯節點。通常賬戶和密碼等訊息都以明文的形式在乙太網上傳輸,一旦被黑客在雜錯節點上嗅探到,用戶就可能會遭到損害。
對於網路嗅探攻擊,我們可以採取以下措施進行防範:
(1)網路分段 一個網路段包括一組共享低層設備和線路的機器,如交換機,動態集線器和網路橋接等設備,可以對資料流進行限制,從而達到防止嗅探的目的。
(2)加密 一方面可以對資料流中的部分重要訊息進行加密,另一方面也可只對套用層加密,然而後者將使大部分與網路和作業系統有關的敏感訊息失去保護。選項何種加密方式這就取決於訊息的安全等級及網路的安全程度。
(3)一次性密碼技術 密碼並不在網路上傳輸而是在兩端進行字串串匹配,客戶端利用從伺服器上得到的Challenge和自身的密碼計算出一個新字串串並將之返回給伺服器。在伺服器上利用比較算法進行匹配,如果匹配,連接就允許建立,所有的Challenge和字串串都只使用一次。
(4)禁用雜錯節點 安裝不支持雜錯的網路卡,通常可以防止IBM相容機進行嗅探。
2、緩衝區溢位攻擊及其防範措施
緩衝區溢位攻擊是屬於系統攻擊的手段,通過往程序的緩衝區寫超出其長度的內容,造成緩衝區的溢位,從而破壞程序的堆疊,使程序轉而執行其它指令,以達到攻擊的目的。當然,隨便往緩衝區中填東西並不能達到攻擊的目的。最一般的手段是通過製造緩衝區溢位使程序執行一個用戶shell,再通過shell執行其它指令。如果該程序具有root權限的話,攻擊者就可以對系統進行任意操作了。
緩衝區溢位對網路系統帶來了巨大的危害,要有效地防止這種攻擊,應該做到以下幾點:
(1)程序游標完整性檢查 在程序游標被引用之前檢測它是否改變。即便一個攻擊者成功地改變了程序的游標,由於系統事先檢測到了游標的改變,因此這個游標將不會被使用。
(2)堆疊的保護 這是一種提供程序游標完整性檢查的編譯器技術,通過檢查函數活動記錄中的返回位址來實現。在堆疊中函數返回位址後面加了一些附加的字元,而在函數返回時,首先檢查這個附加的字元是否被改動過。如果發生過緩衝區溢位的攻擊,那麼這種攻擊很容易在函數返回前被檢測到。但是,如果攻擊者預見到這些附加字元的存在,並且能在溢位程序中同樣地製造他們,那麼他就能成功地跳過堆疊保護的檢測。
(3)陣列邊界檢查 所有的對陣列的讀寫操作都應當被檢查以確保對陣列的操作在正確的範圍內進行。最直接的方法是檢查所有的陣列操作,通常可以採用一些最佳化技術來減少檢查次數。目前主要有這幾種檢查方法:Compaq C編譯器、Jones & Kelly C陣列邊界檢查、Purify儲存於器存取檢查等。
未來的競爭是訊息競爭,而網路訊息是競爭的重要組成部分。其實質是人與人的對抗,它具體體現在安全原則與攻擊原則的交鋒上。為了不斷增強訊息系統的安全防禦能力,必須充分理解系統內核及網路傳輸協定的實現,真正做到洞察對方網路系統的「細枝末節」,同時應該熟知針對各種攻擊手段的預防措施,只有這樣才能盡最大可能保證網路的安全。
|