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