TCP/IP協(xié)議竟然有這么多漏洞?
據2020年上半年中國互聯(lián)網(wǎng)網(wǎng)絡(luò )安全監測數據分析報告顯示,惡意程序控制服務(wù)器、拒絕服務(wù)攻擊(DDoS)等網(wǎng)絡(luò )攻擊行為有增無(wú)減。時(shí)至今日,網(wǎng)絡(luò )攻擊已經(jīng)成為影響網(wǎng)絡(luò )信息安全、業(yè)務(wù)信息安全的主要因素之一。
網(wǎng)絡(luò )攻擊是指利用網(wǎng)絡(luò )存在的漏洞和安全缺陷對網(wǎng)絡(luò )系統的軟硬件及其系統數據進(jìn)行攻擊的行為。TCP/IP協(xié)議作為網(wǎng)絡(luò )的基礎協(xié)議,從設計之初并沒(méi)有考慮到網(wǎng)絡(luò )將會(huì )面臨如此多的威脅,導致出現了許多攻擊方法。由于網(wǎng)絡(luò )中的通訊都源于數據包,通過(guò)對數據包的自動(dòng)采集與解碼分析,可以快速發(fā)現與追溯網(wǎng)絡(luò )攻擊。
TCP/IP協(xié)議
業(yè)界通常將TCP/IP協(xié)議棧劃為四層:即鏈路層、網(wǎng)絡(luò )層、傳輸層和應用層。鏈路層主要用來(lái)處理數據在物理介質(zhì)(如以太網(wǎng)、令牌環(huán)等)的傳輸,實(shí)現網(wǎng)卡接口的網(wǎng)絡(luò )驅動(dòng)程序;網(wǎng)絡(luò )層采用IP協(xié)議是整個(gè)協(xié)議棧的核心,其主要功能是進(jìn)行數據包的選路和轉發(fā),實(shí)現網(wǎng)際互聯(lián)與擁塞控制等;傳輸層為主機間的應用程序提供端到端的通信,該層定義了兩種協(xié)議即TCP與UDP;應用層的主要功能是處理應用程序的邏輯,比如文件傳輸、名稱(chēng)查詢(xún)和網(wǎng)絡(luò )管理等,位于該層的協(xié)議有基于TCP協(xié)議的FTP文件傳輸協(xié)議、HTTP超文本傳輸協(xié)議和基于UDP協(xié)議的域名服務(wù)DNS等。
(TCP/IP協(xié)議模型層次結構圖)
由于TCP/IP協(xié)議有四層且每一層功能、協(xié)議各不相同,因此針對不同協(xié)議層攻擊方法也各不相同:
針對鏈路層的攻擊,主要是對網(wǎng)絡(luò )硬件和基礎設施進(jìn)行物理破壞或強行改變路由器路由;IP協(xié)議與ARP協(xié)議是網(wǎng)絡(luò )層最重要的兩個(gè)協(xié)議,針對網(wǎng)絡(luò )層的攻擊,主要有IP碎片攻擊、ARP欺騙等;由于TCP協(xié)議與UDP協(xié)議是傳輸層最主要的兩個(gè)協(xié)議,因此針對傳輸層的攻擊非常多,包括DOS攻擊等;而應用層的協(xié)議是整個(gè)協(xié)議棧最多的,因此針對該層的攻擊數量極為龐大,常見(jiàn)的如DNS欺騙等。
ARP攻擊
ARP(Address Resolution Protocol,地址解析協(xié)議),將網(wǎng)絡(luò )主機的IP地址解析成MAC地址,每臺主機設備上都擁有一個(gè)ARP緩存(ARP Cache),通過(guò)檢查自己的ARP緩存,然后進(jìn)行判斷(如果有,可以直接映射;如果無(wú),可以廣播ARP請求包);之后檢查數據包中的目標IP地址是否與自己的IP地址一致,如果一致,可以發(fā)送ARP響應,告知MAC地址;當源節點(diǎn)在收到ARP響應數據包后,可以將得到的目標主機IP地址和MAC地址對映射表項添加至自己的ARP緩存中。
(ARP協(xié)議工作原理)
ARP攻擊就是通過(guò)偽造IP地址和MAC地址來(lái)實(shí)現ARP欺騙,通過(guò)在網(wǎng)絡(luò )中制造大量的ARP通信量使網(wǎng)絡(luò )阻塞,攻擊者只要持續不斷的發(fā)出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網(wǎng)絡(luò )中斷或中間人攻擊,因此ARP攻擊通常也被稱(chēng)作ARP欺騙。
盡管ARP攻擊僅能在以太網(wǎng)進(jìn)行且門(mén)檻很低,造成的影響卻很大,比如會(huì )出現斷網(wǎng)攻擊、流量被限、賬號被盜等情況。網(wǎng)絡(luò )運維可以采取ARP防御機制,比如通過(guò)在交換機部署網(wǎng)絡(luò )鏡像,抓取可疑數據包分析,也可以結合DHCP偵聽(tīng)、IP源防護等技術(shù),維護網(wǎng)絡(luò )安全。
DoS攻擊
TCP協(xié)議是基于流的方式,面向連接的可靠通信方式,可以在網(wǎng)絡(luò )不佳的情況下降低系統由于重傳帶來(lái)的帶寬開(kāi)銷(xiāo)。具體來(lái)說(shuō),TCP連接的建立過(guò)程需要經(jīng)歷三個(gè)步驟,每一步同時(shí)連接發(fā)送端與接收端,俗稱(chēng)“三次握手”:發(fā)送端發(fā)出SYN包,進(jìn)入SYN_SENT狀態(tài),表明計劃連接的服務(wù)器端口以及初始序號,等待接收端確認;接收端收到SYN包,發(fā)送SYN_ACK,對發(fā)送端進(jìn)行確認,進(jìn)入SYN_RECV狀態(tài);發(fā)送端收到SYN_ACK包,向接收端發(fā)送ACK,雙方連接建立完成。
(TCP的三次握手)
由于TCP協(xié)議是面向連接的傳輸控制協(xié)議,因此DoS攻擊的主要目的就是使用戶(hù)主機或網(wǎng)絡(luò )無(wú)法接收或處理外界請求。比如通過(guò)制造大流量的無(wú)用數據,造成網(wǎng)絡(luò )擁塞,使被攻擊的主機無(wú)法和外界正常通信;利用重復連接缺陷,反復發(fā)送重復服務(wù)請求,使其無(wú)法正常處理其它請求;又或利用協(xié)議缺陷,反復發(fā)送攻擊數據,占用主機或系統資源,導致死機等。
簡(jiǎn)單來(lái)說(shuō),DoS(Denial of Service)拒絕服務(wù)攻擊通常使用數據包淹沒(méi)本地系統,以打擾或嚴重阻礙肯幫本地的服務(wù)響應外來(lái)合法的請求,使本地系統奔潰。SYN flood攻擊是最常見(jiàn)的DoS攻擊類(lèi)型。攻擊者將自身IP源地址進(jìn)行偽裝,向本地系統發(fā)送TCP連接請求;本地系統回復SYN-ACK至偽裝地址,導致本地系統收不到RST消息,無(wú)法接收ACK回應,將一直處于半連接狀態(tài),直至資源耗盡。攻擊者發(fā)送連接請求速度比TCP超時(shí)釋放資源速度更快,利用反復連接請求,導致本地服務(wù)無(wú)法接收其它連接。解決SYN flood的最好方法就是做好防范策略,通過(guò)網(wǎng)絡(luò )性能管理工具,自動(dòng)篩選可疑數據包,縮短SYN Timeout時(shí)間,設置SYN Cookie,為每一個(gè)請求設置Cookie,如果短時(shí)間內收到某個(gè)IP的重復SYN報文,就認定為攻擊,拋棄該IP地址。
DNS攻擊
IP協(xié)議為了將數據信息包從原設備傳送到目的設備,需要依賴(lài)IP地址與IP路由器。IP地址是機器語(yǔ)言,通常較長(cháng),所以盡管IP地址具有唯一性,但是不方便記憶與使用,人們便在此基礎上發(fā)明了DNS。DNS(Domain Name System)即域名系統,域名通常較短,兼具可讀性與實(shí)用性。由于域名與IP地址呈一一對應關(guān)系,因此,上網(wǎng)時(shí)只需在地址欄輸入域名,系統會(huì )直接進(jìn)行域名解析,將域名翻譯成IP地址。
在執行完域名搜索后,域名服務(wù)器會(huì )保存域名記錄,每條記錄都會(huì )包含域名與IP地址。如果域名服務(wù)器的某條地址被人為修改,那么就可以人為操作用戶(hù)的訪(fǎng)問(wèn)地址,這種行為被稱(chēng)為“域名劫持”?!坝蛎俪帧钡氖甲髻刚呤怯蛎?wù)器提供商,因此目前解決該問(wèn)題的有效方法是棄用或換用域名服務(wù)器。
除“域名劫持”外,還有另外一種常見(jiàn)的DNS攻擊叫做“域名污染”或“域名欺騙”。當電腦發(fā)送“域名查詢(xún)”至域名服務(wù)器后,域名服務(wù)器會(huì )將回應發(fā)送回電腦,發(fā)送請求與接收信息是一個(gè)過(guò)程,中間會(huì )出現時(shí)間差,網(wǎng)絡(luò )攻擊會(huì )在接收信息前,偽造錯誤應答至電腦,那么該信息即為錯誤IP。
面對網(wǎng)絡(luò )攻擊,我們除了需要提高安全意識,積極盡責地維護系統,加強防火墻設置外,還可以通過(guò)對數據包進(jìn)行分析進(jìn)而追溯網(wǎng)絡(luò )攻擊。通過(guò)對網(wǎng)絡(luò )數據進(jìn)行采集與解碼分析,掌握網(wǎng)絡(luò )中最細微的變化,針對網(wǎng)絡(luò )攻擊的特征值或者行為進(jìn)行有效的告警信息配置,可以快速定位網(wǎng)絡(luò )中的攻擊。也可以通過(guò)使用具有安全防護功能的網(wǎng)絡(luò )性能管理工具,譬如天旦網(wǎng)絡(luò )性能管理NPM,支持TCP端口掃描、ARP攻擊與DOS攻擊等可疑數據包自動(dòng)分析,實(shí)現自動(dòng)告警,保障數據信息的正常傳輸與使用。