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