摘要:現(xiàn)在的服務(wù)器系統(tǒng)大都部署著防火墻、入侵檢測(cè)等各類安全措施,對(duì)流經(jīng)的網(wǎng)絡(luò)通信進(jìn)行監(jiān)控,檢測(cè)那些隱藏在數(shù)據(jù)中的危險(xiǎn)行為,保護(hù)各項(xiàng)服務(wù)的正常運(yùn)行。但這些措施在面對(duì)尚未公布的新型攻擊面前,例如0day攻擊,都是無效的,因?yàn)槟愫茈y預(yù)先為其制定一條相應(yīng)的規(guī)則來阻止它。所以,在服務(wù)器上,任何開放的端口、服務(wù)都存在著安全隱患,這正是端口碰撞技術(shù)顯得更為重要的原因之一。
關(guān)鍵詞:端口碰撞;網(wǎng)絡(luò)安全;防火墻
中圖分類號(hào):TP393.08 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 15-0000-01
1 基本概念
端口碰撞是一種通過對(duì)事先商議好的端口進(jìn)行碰撞以獲得特殊授權(quán)的防火墻技術(shù)。碰撞是由試圖訪問服務(wù)器上一系列關(guān)閉端口的順序組合而組成的,碰撞的過程將被數(shù)據(jù)包過濾器記錄在日志里面,若是預(yù)先進(jìn)行過設(shè)置,那么碰撞序列通過驗(yàn)證后服務(wù)器端的守護(hù)進(jìn)程就會(huì)授權(quán)給客戶端訪問相應(yīng)端口的權(quán)利。端口碰撞的關(guān)鍵在于其提供了一種完全關(guān)閉的防火墻技術(shù),對(duì)于任何到達(dá)的數(shù)據(jù)包都會(huì)被丟棄,而且不會(huì)有反饋信息(這和拒絕模式不同,拒絕模式會(huì)反饋一個(gè)ICMP PORT UNREACHABLE數(shù)據(jù)包給客戶端)。
端口碰撞主要擁有以下特點(diǎn):
(1)隱蔽性:傳統(tǒng)的數(shù)據(jù)包過濾器默認(rèn)策略都為Accept,允許網(wǎng)絡(luò)服務(wù),而將系統(tǒng)、應(yīng)用程序的安全交給防火墻等安全產(chǎn)品來實(shí)現(xiàn),但端口碰撞通過將默認(rèn)策略調(diào)整為Drop,只有當(dāng)重新設(shè)置過濾策略時(shí)才會(huì)允許指定的IP地址訪問。如果攻擊者無法通過嗅探、掃描等手段獲知服務(wù)器正在監(jiān)聽某個(gè)特定的端口,那么該端口受到攻擊的可能性就大大降低了。
(2)安全性:端口碰撞可以很好地阻止0day攻擊。一般而言,針對(duì)0day攻擊是極其難以抵御的,但是即使攻擊者能在受端口碰撞技術(shù)保護(hù)的服務(wù)器上尋找到一個(gè)有版本漏洞的服務(wù),他也無法組織并實(shí)施攻擊,因?yàn)閷?duì)攻擊者而言,對(duì)應(yīng)該服務(wù)的端口一直是處于關(guān)閉狀態(tài)的。
(3)用戶認(rèn)證:通過監(jiān)聽所有發(fā)往服務(wù)器的數(shù)據(jù)包,篩選出符合預(yù)設(shè)值的碰撞序列,這就像驗(yàn)證用戶密碼一樣,服務(wù)器端的守護(hù)進(jìn)程只會(huì)授予通過認(rèn)證的用戶訪問某些服務(wù)的權(quán)利。
2 端口碰撞的局限性
(1)NAT地址轉(zhuǎn)換:NAT是一種在IP封包通過路由器或防火墻時(shí)重寫源IP地址或目的IP地址的技術(shù),而數(shù)據(jù)包過濾器的作用是對(duì)所有進(jìn)出的數(shù)據(jù)包進(jìn)行檢查,并阻止那些不符合既定規(guī)則數(shù)據(jù)包的傳輸,但它對(duì)于應(yīng)用層的數(shù)據(jù)是無法做出很好的響應(yīng)。當(dāng)端口碰撞的守護(hù)進(jìn)程臨時(shí)添加允許訪問的過濾規(guī)則時(shí),只能包含接受進(jìn)入連接的IP地址、使用的協(xié)議類型、端口號(hào)、開放時(shí)間等信息。
倘若客戶端位于NAT設(shè)備之后,那么服務(wù)器端接收到的數(shù)據(jù)包的IP地址將顯示為NAT設(shè)備外網(wǎng)的公有地址,當(dāng)碰撞序列獲得通過后,服務(wù)器將授予該公有地址在允許的時(shí)間窗口內(nèi)合法的訪問權(quán),這就意味著與發(fā)送正確碰撞序列的客戶端同處一個(gè)局域網(wǎng)中的所有主機(jī)都會(huì)獲得服務(wù)器的合法授權(quán),因?yàn)樗麄兊墓械刂范际且粯拥摹?/p>
(2)應(yīng)用范圍:當(dāng)端口碰撞面對(duì)類似通過web傳輸?shù)腍TTP數(shù)據(jù)連接或在郵件服務(wù)器之間傳輸?shù)腟MTP數(shù)據(jù)連接這樣大規(guī)模請(qǐng)求時(shí),就會(huì)顯得力不從心,因?yàn)檎?qǐng)求這些服務(wù)的對(duì)象大都來自于網(wǎng)絡(luò)的各個(gè)方向,并且用戶數(shù)眾多,要是想從系統(tǒng)日志中分析出如此龐大的請(qǐng)求序列,將會(huì)占用服務(wù)器相當(dāng)多的資源,從成本方面考慮,這是極其不劃算的。所以端口碰撞技術(shù)一般都用在保護(hù)只需要對(duì)特定的、少數(shù)用戶開放、而又極易招致攻擊的服務(wù)上,例如SSH和FTP服務(wù)。
3 端口碰撞的安全性挑戰(zhàn)
(1)重放攻擊:對(duì)于端口碰撞模型而言,重放攻擊是最致命也是最容易實(shí)施的一種方案。重放攻擊是指攻擊者發(fā)送一個(gè)目的主機(jī)已接收過的包,來達(dá)到欺騙系統(tǒng)的目的。如今的網(wǎng)絡(luò)世界充滿著安全威脅,除了要考慮為服務(wù)器端各個(gè)端口、服務(wù)提供可靠的保障,我們還因考慮到所有流量在穿越網(wǎng)絡(luò)時(shí)同樣也存在被第三方攻擊或監(jiān)聽的可能性。對(duì)于端口碰撞而言,其只使用了數(shù)據(jù)包的頭部信息,沒有應(yīng)用層的數(shù)據(jù)與之相關(guān),即使遭受到第三方的攔截,也只能觀察到數(shù)據(jù)包目的地地址、端口號(hào)等信息,似乎提取不到任何有價(jià)值的信息。
可是,一旦攻擊者猜測(cè)到目的地主機(jī)可能正在使用端口碰撞技術(shù),那么情況將會(huì)發(fā)生改變。端口碰撞的意義是通過網(wǎng)絡(luò)傳輸來提供足夠多的信息,使得接收者能夠判斷出數(shù)據(jù)包過濾器是否應(yīng)當(dāng)臨時(shí)更新配置,授予那些通過碰撞序列、并證明其合法性的IP地址訪問權(quán)。若是攻擊者能在端口碰撞序列穿越網(wǎng)絡(luò)時(shí)攔截或監(jiān)聽到所有的數(shù)據(jù)包,那么攻擊者可以相當(dāng)容易的發(fā)送相同的碰撞序列給同一主機(jī)。因?yàn)樵诜?wù)器端的守護(hù)進(jìn)程看來,只要能提供正確的碰撞序列的IP地址,都是合法的。
(2)端口掃描:端口碰撞的實(shí)現(xiàn)涉及到在短時(shí)間內(nèi)對(duì)服務(wù)器上的多個(gè)端口進(jìn)行一系列的連接請(qǐng)求,雖然在目的上有著本質(zhì)的不同,但在IDS看來,這些行為是無法分辨的,都是危險(xiǎn)信號(hào)。絕大部分入侵檢測(cè)系統(tǒng)都會(huì)為應(yīng)對(duì)端口掃描而設(shè)定一個(gè)閥值,若某一IP地址在較短時(shí)間內(nèi)對(duì)服務(wù)器不同端口發(fā)起的連接請(qǐng)求數(shù)超出該閥值,IDS就會(huì)生成警告信息,通知管理員主機(jī)可能遭受到端口掃描的威脅,若連接請(qǐng)求數(shù)繼續(xù)增加,超過了極限值,則IDS會(huì)將該IP地址暫時(shí)或永久的列入黑名單。也許你會(huì)覺得這很容易解決,只要將端口碰撞的序列數(shù)控制在IDS的閥值以內(nèi),就不會(huì)被IDS所警告。但鑒于在其脆弱的中間流程和過低的數(shù)據(jù)傳輸速率,使得很難在安全性和序列數(shù)量上取得一個(gè)平衡。
(3)針對(duì)端口碰撞服務(wù)的DoS攻擊。乍看DoS和端口碰撞似乎沒有什么交集,其實(shí)并非如此。由于端口碰撞只利用到數(shù)據(jù)包首部中有效信息,即端口號(hào),所以只要攻擊者可以偽裝成客戶端的IP地址,并在端口碰撞序列通過網(wǎng)絡(luò)傳遞到服務(wù)器的過程中,插入偽造的數(shù)據(jù)包,使其看起來與正常碰撞序列的數(shù)據(jù)包一樣,那么碰撞服務(wù)器將無法判斷出正確的碰撞序列。這就是一種針對(duì)碰撞服務(wù)器的拒絕服務(wù)攻擊,因?yàn)楣粽呖梢云仁购戏ǖ目蛻舳藷o法取得服務(wù)器的正常授權(quán)。