IPv6入侵防御技術(shù)研究
隨著計算機及通訊技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)更以超乎想象的速度膨脹,IP業(yè)務(wù)的爆炸性增長,IP網(wǎng)絡(luò)上應(yīng)用的不斷增加,使得原有的IPv4網(wǎng)越來越顯得力不從心。IP網(wǎng)絡(luò)正在向下一代網(wǎng)絡(luò)演進。而IPv6無疑將是下一代網(wǎng)絡(luò)(NGN)的核心,除了帶來地址空間的增大,還有許多優(yōu)良的特性,比如在安全性、服務(wù)質(zhì)量、移動性等方面,其優(yōu)勢更加明顯。
與此同時,由于IPv4的廣泛應(yīng)用,決定了從IPv4向IPv6的過渡將是長期的,漸進的。在這期間,將采用不同的過渡策略解決IPv4和IPv6的互連互通問題,具有代表性的過渡策略解決方案主要包括雙協(xié)議棧方式,隧道方式和協(xié)議翻譯。在過渡期間網(wǎng)絡(luò)上的數(shù)據(jù)流量將呈現(xiàn)出復(fù)雜化的趨勢,其中不僅包括IPv4的流量還包括IPv6的流量,以及IPv6 over IPv4或者IPv4 over IPv6的隧道包流量。
在這種新的網(wǎng)絡(luò)環(huán)境中網(wǎng)絡(luò)攻擊必然呈現(xiàn)新的特征,也對我們的安全技術(shù)和產(chǎn)品提出了新的挑戰(zhàn)。特別是對于近兩年新興的入侵防御技術(shù),該技術(shù)使入侵檢測系統(tǒng)聯(lián)動防火墻,與傳統(tǒng)單一的防火墻相比,入侵防御系統(tǒng)IPS(Intrusion Prevention System)對數(shù)據(jù)包的控制能力檢測也得到大大加強,對應(yīng)用層和高層協(xié)議的檢測能力有了質(zhì)的飛躍。同時入侵檢測技術(shù)能實時、有效的和防火墻的阻斷功能結(jié)合,在發(fā)現(xiàn)網(wǎng)絡(luò)入侵的同時,聯(lián)動防火墻采取行動阻止攻擊,大大簡化了系統(tǒng)管理員的工作,提高了系統(tǒng)的安全性。但由于入侵防御技術(shù)本身提出不久,在IPv6尚未真正大規(guī)模應(yīng)用的情況下,鮮有對該技術(shù)在IPv6環(huán)境下如何實現(xiàn)的研究,因此研究新的IPv6環(huán)境下的入侵防御技術(shù),對于保障IPv4向IPv6過渡的階段和未來IPv6環(huán)境下的網(wǎng)絡(luò)安全有著重要的意義。
1 IPv6網(wǎng)絡(luò)安全問題
從IPv4到IPv6網(wǎng)絡(luò)地址空間由32位增加到128位,使得IPv6的地址數(shù)量遠遠超過IPv4的地址數(shù)量,因此將很難通對網(wǎng)段內(nèi)地址空間內(nèi)IP地址逐一發(fā)送試探數(shù)據(jù)包的方式進行。但是可以預(yù)見,掃描攻擊在IPv6環(huán)境下肯定依然存在,只是在新的網(wǎng)絡(luò)環(huán)境下,IPS對掃描行為的檢測會重點集中到,針對某些主機或某個主機的掃描行為上。
傳統(tǒng)的IPv4協(xié)議對網(wǎng)絡(luò)的安全性考慮不足,IPv6協(xié)議將IPSec協(xié)議作為IPv6的組成部分,極大的增加了安全性。這是通過AH和ESP標記以及相應(yīng)的密鑰管理協(xié)議PKL來實現(xiàn)的。由于IPSec協(xié)議可以提供數(shù)據(jù)源認證和通信數(shù)據(jù)的加密保護,攻擊者將無法使用IP地址欺騙,TCP序列號欺騙等手段對系統(tǒng)實施攻擊。因此IPv6環(huán)境下的IPS可以認為受到IPSec保護的數(shù)據(jù)流是可信的,省略對該類型數(shù)據(jù)包的檢測,從而提高IPS的檢測效率。
IPv6下數(shù)據(jù)包分片也和IPV4不同,數(shù)據(jù)包只由信源節(jié)點進行分片,中間路由器不進行分段,因此在報文傳輸過程中分段長度不會發(fā)生變化。這可以為IPv6下檢測利用分片來逃避規(guī)則匹配的攻擊提供新的方法,如果發(fā)現(xiàn)同屬一個原始分組的分段數(shù)據(jù)包中分片(除最后一個分片)的大小不一致時,即可認為該數(shù)據(jù)包存在異常,這樣就不必等到將所有分片重組成為一個包含完整信息的包以后,再傳給檢測引擎進行規(guī)則匹配。
IPv6 要求網(wǎng)絡(luò)傳輸路徑上的每條鏈路具有 1280 或更多個八位組的 MTU。除了某些特殊的IPv6報文,如ICMPv6報文、分組報文的最后一個分段外,IPv6數(shù)據(jù)包的大小不應(yīng)小于1280個八位組。所以可通過對IPv6數(shù)據(jù)包的大小的檢測,發(fā)現(xiàn)異常的數(shù)據(jù)流量,例如對IPv6數(shù)據(jù)包的大小進行統(tǒng)計,根據(jù)統(tǒng)計數(shù)據(jù)設(shè)立一個IPv6包大小的閾值,如果IPS檢測到數(shù)據(jù)包小于該值,就可以將該數(shù)據(jù)包列為可疑對象。
IPv6下攻擊者可以利用IPv6基本報頭的跳數(shù)限制字段(類似于IPv4報頭中的TTL),試探從本地到達攻擊目標的路徑,方法是發(fā)出跳數(shù)字段值逐次遞增的數(shù)據(jù)包(TCP/UDP),然后根據(jù)目的不可到達報文的信源地址,依次重構(gòu)出路徑。因此IPS需要能夠檢測出可能的路徑試探數(shù)據(jù)包。如果到達受保護網(wǎng)絡(luò)的數(shù)據(jù)包的跳數(shù)限制字段值是1時,可能的是潛在的路徑試探。所以可以通過設(shè)立針對跳數(shù)限制字段的檢測規(guī)則,發(fā)現(xiàn)IPv6下的路徑試探。
在IPv4到IPv6的過渡環(huán)境里,將會存在大量的隧道包,包括IPv6 over IPv4和IPv4 over IPv6,攻擊者可以構(gòu)造隧道攻擊,向受攻擊主機發(fā)送攻擊數(shù)據(jù)包。因此IPv6下的入侵檢測必須具備分析檢測隧道數(shù)據(jù)包的能力。
另外,IPv6對傳統(tǒng)防火墻也有不小的沖擊。對于包過濾型防火墻,由于IPv4的IP層和TCP層是緊挨在一起的,長度也基本固定,因此防火墻可以很快找到報頭并使用相應(yīng)過濾規(guī)則,而IPv6在IP層將會大量用到擴展報頭,致使防火墻只有逐個找到下一個報頭直到TCP或UDP為止,才能進行過濾。這樣在高帶寬下,將對性能造成很大影響;對于地址轉(zhuǎn)換型防火墻,由于地址轉(zhuǎn)換技術(shù)(NAT)和IPSec在功能上不匹配,很難穿越地址轉(zhuǎn)換型防火墻利用IPSec通信。比如當用AH地址進行認證時,因為IP層也是認證的對象,因此不能轉(zhuǎn)換;至于應(yīng)用代理型防火墻,因為其主要工作在應(yīng)用層上,所以受IPv6沖擊較小。
由于絕大部分的網(wǎng)絡(luò)安全問題并不是由網(wǎng)絡(luò)層引起的,例如某些網(wǎng)絡(luò)應(yīng)用程序中的缺陷,不當?shù)南到y(tǒng)配置等,在IPv6環(huán)境下這些安全隱患依然存在。這也要求我們的IPS要易于配置,有著友好的用戶配置和管理界面。
2 系統(tǒng)設(shè)計
本系統(tǒng)是在相關(guān)課題下進行IPv6環(huán)境下新型的入侵檢測及防御技術(shù),特別重視能檢測IPv4/IPv6共存網(wǎng)絡(luò)環(huán)境下的各種網(wǎng)絡(luò)入侵、高速網(wǎng)絡(luò)數(shù)據(jù)采集技術(shù),設(shè)計和開發(fā)在發(fā)現(xiàn)入侵后的主動響應(yīng)和入侵防御功能。在設(shè)計上充分考慮到上述所提到的IPv6網(wǎng)絡(luò)安全問題。
本系統(tǒng)在功能上可分為主控模塊、高速網(wǎng)絡(luò)數(shù)據(jù)采集、雙協(xié)議解析引擎、檢測引擎預(yù)處理模塊、漏洞攻擊特征規(guī)則處理、檢測引擎處理模塊、報警日志記錄、主動阻斷反應(yīng)、流量特征分析、圖形化管理。以下對各模塊的功能和技術(shù)要點進行描述:
主控模塊:系統(tǒng)初始化、以及各功能模塊的相關(guān)調(diào)用。
高速網(wǎng)絡(luò)數(shù)據(jù)采集:本系統(tǒng)的設(shè)計目標之一就是要能適應(yīng)百兆帶寬下的入侵防御,該模塊作為入侵檢測的重要的第一步,也是決定了該系統(tǒng)能否適應(yīng)高速網(wǎng)絡(luò)的關(guān)鍵一環(huán)。這里,我們采用“零拷貝”技術(shù),實現(xiàn)百兆帶寬下線速抓包。
雙協(xié)議解析引擎:本模塊必須同時具有IPv4協(xié)議解析引擎和IPv6協(xié)議解析引擎,可同時解析這兩種網(wǎng)絡(luò)協(xié)議,特別重要的是,我們通過兩種協(xié)議解析引擎的交互機制,可以準確方便地解析所有IPv6 over IPv4隧道數(shù)據(jù)包和IPv4 over IPv6隧道數(shù)據(jù)包。同時,本模塊實現(xiàn)深度協(xié)議解析的功能,特征模式匹配雖然是主要技術(shù),但存在速度慢,效率低等缺點,協(xié)議分析是新一代IDS探測攻擊手法的主要技術(shù),它利用網(wǎng)絡(luò)協(xié)議的高度規(guī)則性快速探測攻擊的存在。
檢測引擎預(yù)處理模塊:本模塊在協(xié)議解析之后,規(guī)則匹配之前進行,主要對數(shù)據(jù)包進行預(yù)處理,以方便后續(xù)處理模塊對數(shù)據(jù)包的匹配。對于IPv6來說,必須實現(xiàn)的預(yù)處理功能有IPv6的分片重組、IPv6端口掃描等。
漏洞攻擊特征規(guī)則處理:本系統(tǒng)的入侵檢測功能是基于模式匹配的,為了高效快速地對已知攻擊特征進行匹配,根據(jù)對各種IPv4 和IPv6攻擊特征的分析,設(shè)計一種可以描述該攻擊特征的語言規(guī)則。需要將已知的攻擊規(guī)則在內(nèi)存中有效的組織建立起來。因此我們設(shè)計了同時支持IPv6和IPv4的入侵規(guī)則樹。
檢測引擎處理模塊:本模塊是系統(tǒng)的核心,根據(jù)漏洞攻擊特征規(guī)則處理模塊建立的規(guī)則樹結(jié)構(gòu)進行規(guī)則匹配。當數(shù)據(jù)包到來后,首先根據(jù)規(guī)則頭進行匹配,然后對規(guī)則頭已匹配的數(shù)據(jù)包進行規(guī)則選項的匹配,其中規(guī)則頭和規(guī)則選項的匹配內(nèi)容見圖3。 最后,規(guī)則選項匹配里數(shù)據(jù)包負載內(nèi)容的匹配是關(guān)鍵,一個好的匹配算法至關(guān)重要,本系統(tǒng)采用了著名的Boyer-Moore算法。
報警日志記錄:報警實時寫入文件并顯示,并將日志寫入MySQL數(shù)據(jù)庫,可供后續(xù)分析及流量特征分析模塊使用。
主動阻斷反應(yīng):本模塊是本系統(tǒng)的重要部分,要能同時支持IPv4/IPv6的主動阻斷,具體描述見第四節(jié)。
流量特征分析:根據(jù)數(shù)據(jù)庫中日志和報警信息,進行基于異常的檢測,這種方法的優(yōu)點是能發(fā)現(xiàn)未知的攻擊,缺點是相比模式匹配有時會不太準確,因此可以二者結(jié)合,作為模式匹配有益的補充。
圖形化管理:入侵報警信息分析采用基于B/S模式設(shè)計,通過后臺MySQL數(shù)據(jù)庫存儲IPv6/IPv4網(wǎng)絡(luò)上各個時間段的網(wǎng)絡(luò)流量數(shù)據(jù),包括日報表、月報表和年報表。并同時存儲報警信息。前臺使用PHP語言加上Apache HTTP服務(wù)器系統(tǒng),給用戶提供友好的WEB操作界面。因為報警信息是敏感數(shù)據(jù),因此是使用時用Apache的SSL模塊來加密傳輸數(shù)據(jù)。
3 實現(xiàn)主動防御的關(guān)鍵技術(shù)
Ip6tables是Linux環(huán)境下基于IPv6的開放源代碼的網(wǎng)絡(luò)防火墻軟件。我們IPv6的入侵檢測系統(tǒng)擬采用與Ip6tables相結(jié)合,實現(xiàn)對入侵的主動阻斷反應(yīng),實現(xiàn)主動防御。當處于此種主動阻斷模式的時候,該系統(tǒng)兼有防火墻和入侵檢測系統(tǒng)兩項功能,實現(xiàn)入侵防御。這時候,不同于一般的入侵檢測旁路Sniffer模式,該系統(tǒng)將象防火墻一樣,配置在網(wǎng)絡(luò)的入口處,處于路由模式,轉(zhuǎn)發(fā)內(nèi)外網(wǎng)的數(shù)據(jù)包。
主動阻斷反應(yīng)要能同時對IPv4和IPv6下的數(shù)據(jù)包實時阻斷,IPv6下我們用防火墻ip6tables來實現(xiàn),ip6tables的擴展功能模塊ip6_queue.o通過接口netlink socket可以將核心態(tài)的數(shù)據(jù)包發(fā)向用戶空間的程序(對IPv4是在iptables 中的模塊ip_queue.o)。同時,本系統(tǒng)在數(shù)據(jù)采集子系統(tǒng)的功能發(fā)生改變,不直接從鏈路層抓包,而是作為用戶空間的程序從ip6tables/iptables的ip6_queue/ip_queue模塊產(chǎn)生的數(shù)據(jù)包隊列中獲取數(shù)據(jù)包,再進行模式匹配,利用內(nèi)置的規(guī)則查詢是否存在攻擊行為,若有,則根據(jù)規(guī)則配置,決定該數(shù)據(jù)包的命運:我們設(shè)計有三種動作:DROP、ACCEPT和REJECT(復(fù)位)。執(zhí)行動作后,最后將結(jié)果返回到Ip6tables中,由Ip6tables執(zhí)行過濾結(jié)果,若需要還要重新將修改后的數(shù)據(jù)包重新注入到內(nèi)核中交Ip6tables轉(zhuǎn)發(fā)。
功能實現(xiàn)要點
實現(xiàn)對IPv4和IPv6兩種數(shù)據(jù)包的同時抓取是本模塊實現(xiàn)的時候的一個重點。通過實驗發(fā)現(xiàn),兩個隊列(ip6_queue和ip_queue)的包在抓取的時候會相互阻塞對方的取包函數(shù)。為了解決這個問題,采用多線程技術(shù),即派生出兩個線程分別控制ip_queue和ip6_queue數(shù)據(jù)包隊列,從中讀取數(shù)據(jù)包,這樣將不會造成阻塞。經(jīng)試驗發(fā)現(xiàn),派生雙線程對系統(tǒng)性能的影響非常小,兩個抓包線程互不沖突,抓包正常、及時。
多線程取包算法用的是生產(chǎn)者/消費者問題的原理:兩個生產(chǎn)者不斷地從兩個隊列中取得數(shù)據(jù)包交給消費者(主線程)進行處理。但是由于需要對包進行操作(如DROP),所以生產(chǎn)者一次只能生產(chǎn)一個數(shù)據(jù)包,等這個包被消費后它才能繼續(xù)生產(chǎn)。因為同時有兩個生產(chǎn)者在工作,為了讓消費者知道當前要處理的包是IPv4的還是IPv6的,需要準備一個隊列存放兩個包產(chǎn)生的先后順序,以避免處理數(shù)據(jù)包產(chǎn)生的混亂,消費者會根據(jù)從隊列中取得的版本值自動取用相應(yīng)生產(chǎn)者生產(chǎn)的數(shù)據(jù)。
另外對于某些攻擊將構(gòu)造復(fù)位包,使連接復(fù)位,即執(zhí)行動作REJECT。我們通過Libnet函數(shù)庫來構(gòu)造復(fù)位包,該庫提供的接口函數(shù)主要實現(xiàn)和封裝了數(shù)據(jù)包的構(gòu)造和發(fā)送過程,基于TCP/IP協(xié)議,對TCP連接采用發(fā)RST包的形式使連接復(fù)位;對UDP發(fā)ICMP/ICMPv6端口不可達數(shù)據(jù)包,復(fù)位UDP連接。
4 結(jié)束語
在本文中,我們描述了在IPv6新環(huán)境下實現(xiàn)入侵防御系統(tǒng)(IPS)的技術(shù)路線和框架,并對其中的關(guān)鍵技術(shù)進行了探討,系統(tǒng)的入侵檢測部分(IDS)參考了開放源代碼軟件snort,同時根據(jù)IPv6協(xié)議的不同對其進行了重大改進。在大型網(wǎng)絡(luò)規(guī)劃中,單純依靠防火墻的被動靜態(tài)防御難以抵擋復(fù)雜化、融合化的各類混合式攻擊,無法監(jiān)視內(nèi)部用戶的未授權(quán)訪問。同時,單純的入侵檢測功能也無法實時而有效的遏制攻擊。IPS已經(jīng)成為IPv6網(wǎng)絡(luò)安全立體縱深、多層次防御體系的重要組成部分。該系統(tǒng)的實現(xiàn)為IPv4向IPv6過渡階段提供了一種有效的保障。
在最后的實現(xiàn)和測試過程中,本系統(tǒng)能提供給用戶簡潔的配置管理界面,并能有效地檢測和阻止多種攻擊,達到了設(shè)計研究的目的。同時,實驗中也發(fā)現(xiàn)一些不足,采用ip_queue和ip6_queue模塊和netlink接口方式將數(shù)據(jù)包發(fā)回用戶空間,將延緩數(shù)據(jù)的處理速度,影響系統(tǒng)性能。在這一點上可以進行以下改進:將一部分規(guī)則匹配的功能以內(nèi)核模塊的方式運行在內(nèi)核空間,以此來提高性能,具體就是把規(guī)則頭匹配的工作放在內(nèi)核空間進行,如果規(guī)則頭不匹配,則在內(nèi)核空間就立刻被拋棄;只有在規(guī)則頭匹配的情況下,再將數(shù)據(jù)包拷貝到用戶空間,進行規(guī)則選項的匹配。這樣做可以大大提高數(shù)據(jù)的處理速度,該方案具有一定的挑戰(zhàn)性,將是我們下一步的工作。