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