IT程式設計師必知!TCP/IP為什麼會有這麼多的致命漏洞?
入侵一些網站,電腦,製作一些病毒,學會多項程式設計,這是一個普通駭客都會的技能,那麼真正駭客能厲害到什麼程度呢?
除了勒索病毒,熊貓燒香等自動感染的病毒被大家熟知外,還有更厲害的騷操作。
Barnaby Jack是美國一位白帽駭客,在美國的白帽大會上搬上了兩臺ATM機,透過簡單的操作讓ATM自動吐鈔票,他還發現醫院的醫療裝置的漏洞,可以入侵植入式心臟起搏器等無線醫療裝置,向其發出一系列 830V 高壓電擊,簡直殺人於無形!
據2020年上半年中國網際網路網路安全監測資料分析報告顯示,惡意程式控制伺服器、拒絕服務攻擊(DDoS)等網路攻擊行為有增無減。時至今日,網路攻擊已經成為影響網路資訊保安、業務資訊保安的主要因素之一。
網路攻擊是指利用網路存在的漏洞和安全缺陷對網路系統的軟硬體及其系統資料進行攻擊的行為。
TCP/IP協議作為網路的基礎協議,從設計之初並沒有考慮到網路將會面臨如此多的威脅,導致出現了許多攻擊方法。由於網路中的通訊都源於資料包,透過對資料包的自動採集與解碼分析,可以快速發現與追溯網路攻擊。
TCP/IP協議
業界通常將TCP/IP協議棧劃為四層:即鏈路層、網路層、傳輸層和應用層。
- 鏈路層主要用來處理資料在物理介質(如乙太網、令牌環等)的傳輸,實現網路卡介面的網路驅動程式;
- 網路層採用IP協議是整個協議棧的核心,其主要功能是進行資料包的選路和轉發,實現網際互聯與擁塞控制等;
- 傳輸層為主機間的應用程式提供端到端的通訊,該層定義了兩種協議即TCP與UDP;
- 應用層的主要功能是處理應用程式的邏輯,比如檔案傳輸、名稱查詢和網路管理等,位於該層的協議有基於TCP協議的FTP檔案傳輸協議、HTTP超文字傳輸協議和基於UDP協議的域名服務DNS等。
由於 TCP/IP 協議有四層且每一層功能、協議各不相同,因此針對不同協議層攻擊方法也各不相同:
針對鏈路層的攻擊,主要是對網路硬體和基礎設施進行物理破壞或強行改變路由器路由;
IP協議與ARP協議是網路層最重要的兩個協議,針對網路層的攻擊,主要有IP碎片攻擊、ARP 欺騙等;
由於TCP協議與UDP協議是傳輸層最主要的兩個協議,因此針對傳輸層的攻擊非常多,包括DOS攻擊等;
而應用層的協議是整個協議棧最多的,因此針對該層的攻擊數量極為龐大,常見的如 DNS 欺騙等。
ARP攻擊
ARP將網路主機的 IP 地址解析成 MAC 地址,每臺主機裝置上都擁有一個 ARP 快取(ARP Cache),透過檢查自己的 ARP 快取,然後進行判斷(如果有,可以直接對映;如果無,可以廣播 ARP 請求包);
之後檢查資料包中的目標 IP 地址是否與自己的IP地址一致,如果一致,可以傳送 ARP 響應,告知 MAC 地址;
當源節點在收到 ARP 響應資料包後,可以將得到的目標主機 IP 地址和 MAC 地址對對映表項新增至自己的 ARP 快取中。
ARP 攻擊就是透過偽造 IP 地址和 MAC 地址來實現 ARP 欺騙,透過在網路中製造大量的 ARP 通訊量使網路阻塞,攻擊者只要持續不斷的發出偽造的 ARP 響應包就能更改目標主機 ARP 快取中的 IP-MAC 條目,造成網路中斷或中間人攻擊,因此 ARP 攻擊通常也被稱作ARP欺騙。
儘管ARP攻擊僅能在乙太網進行且門檻很低,造成的影響卻很大,比如會出現斷網攻擊、流量被限、賬號被盜等情況。網路運維可以採取ARP防禦機制,比如透過在交換機部署網路映象,抓取可疑資料包分析,也可以結合DHCP偵聽、IP源防護等技術,維護網路安全。
DoS攻擊
TCP 協議是基於流的方式,面向連線的可靠通訊方式,可以在網路不佳的情況下降低系統由於重傳帶來的頻寬開銷。
具體來說,TCP連線的建立過程需要經歷三個步驟,每一步同時連線傳送端與接收端,俗稱“三次握手”:傳送端發出SYN包,進入SYN_SENT狀態,表明計劃連線的伺服器埠以及初始序號,等待接收端確認;
接收端收到SYN包,傳送SYN_ACK,對傳送端進行確認,進入SYN_RECV狀態;傳送端收到SYN_ACK包,向接收端傳送ACK,雙方連線建立完成。
由於TCP協議是面向連線的傳輸控制協議,因此DoS攻擊的主要目的就是使使用者主機或網路無法接收或處理外界請求。比如透過製造大流量的無用資料,造成網路擁塞,使被攻擊的主機無法和外界正常通訊;
利用重複連線缺陷,反覆傳送重複服務請求,使其無法正常處理其它請求;
又或利用協議缺陷,反覆傳送攻擊資料,佔用主機或系統資源,導致當機等。
簡單來說,DoS(Denial of Service)拒絕服務攻擊通常使用資料包淹沒本地系統,以打擾或嚴重阻礙本地的服務響應外來合法的請求,使本地系統奔潰。
SYN flood 攻擊是最常見的 DoS 攻擊型別。攻擊者將自身 IP 源地址進行偽裝,向本地系統傳送 TCP連線請求;
本地系統回覆SYN-ACK至偽裝地址,導致本地系統收不到RST訊息,無法接收ACK回應,將一直處於半連線狀態,直至資源耗盡。攻擊者傳送連線請求速度比 TCP超時釋放資源速度更快,利用反覆連線請求,導致本地服務無法接收其它連線。
解決SYN flood 的最好方法就是做好防範策略,透過網路效能管理工具,自動篩選可疑資料包,縮短 SYN Timeout 時間,設定 SYN Cookie,為每一個請求設定Cookie,如果短時間內收到某個IP的重複SYN報文,就認定為攻擊,拋棄該IP地址。
DNS攻擊
IP協議為了將資料資訊包從原裝置傳送到目的裝置,需要依賴IP地址與IP路由器。IP地址是機器語言,通常較長,所以儘管IP地址具有唯一性,但是不方便記憶與使用,人們便在此基礎上發明了DNS。DNS(Domain Name System)即域名系統,域名通常較短,兼具可讀性與實用性。由於域名與IP地址呈一一對應關係,因此,上網時只需在位址列輸入域名,系統會直接進行域名解析,將域名翻譯成IP地址。
在執行完域名搜尋後,域名伺服器會儲存域名記錄,每條記錄都會包含域名與IP地址。如果域名伺服器的某條地址被人為修改,那麼就可以人為操作使用者的訪問地址,這種行為被稱為“域名劫持”。“域名劫持”的始作俑者是域名伺服器提供商,因此目前解決該問題的有效方法是棄用或換用域名伺服器。
除“域名劫持”外,還有另外一種常見的DNS攻擊叫做“域名汙染”或“域名欺騙”。當電腦傳送“域名查詢”至域名伺服器後,域名伺服器會將回應傳送回電腦,傳送請求與接收資訊是一個過程,中間會出現時間差,網路攻擊會在接收資訊前,偽造錯誤應答至電腦,那麼該資訊即為錯誤IP。
面對網路攻擊,我們除了需要提高安全意識,積極盡責地維護系統,加強防火牆設定外,還可以透過對資料包進行分析進而追溯網路攻擊。
透過對網路資料進行採集與解碼分析,掌握網路中最細微的變化,針對網路攻擊的特徵值或者行為進行有效的告警資訊配置,可以快速定位網路中的攻擊。
也可以透過使用具有安全防護功能的網路效能管理工具,譬如天旦網路效能管理NPM,支援TCP埠掃描、ARP攻擊與DOS攻擊等可疑資料包自動分析,實現自動告警,保障資料資訊的正常傳輸與使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21472864/viewspace-2791438/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼女程式設計師會這麼少?程式設計師
- 為什麼會有這麼多的程式語言?
- 為什麼會有這麼多程式語言
- 程式設計師,你為什麼值這麼多錢?程式設計師
- 程式設計師你為什麼這麼累?程式設計師
- 為什麼程式設計師的工資那麼多!憑什麼?程式設計師
- 為什麼會有這麼多種的資料庫資料庫
- 為什麼有的程式設計師不會程式設計?程式設計師
- 為什麼這麼多程式設計師和IT公司討厭敏捷開發?程式設計師敏捷
- 為什麼程式設計師工資比其他行業高這麼多?程式設計師行業
- 為什麼成為一名程式設計師這麼難 —— 學Coding的必經之路程式設計師
- 程式設計師為什麼喜歡程式設計這項工作?程式設計師
- 程式設計師你為什麼這麼累? - 配置規範程式設計師
- 為什麼我們程式設計師工作得這麼累?程式設計師
- 為什麼有這麼多 Python?Python
- 程式設計師什麼都會程式設計師
- 什麼樣的任務程式設計師會認為沒有價值程式設計師
- 為什麼該和程式設計師約會?我有 20 個理由程式設計師
- 為什麼程式設計師做外包會被瞧不起?程式設計師
- 程式設計師必知面試技術,程式設計面試IO模型有幾種?分別是什麼?程式設計師面試模型
- 為什麼為什麼為什麼為什麼為什麼你要做一名程式設計師?程式設計師
- 程式設計師有什麼好當的?程式設計師
- 程式設計師為什麼會憂慮自己的未來?程式設計師
- 為什麼說程式設計師最花心,有圖為證程式設計師
- 為什麼我這麼低端:一個程式設計師的自我修養程式設計師
- 程式設計師為什麼討厭這些語言程式設計師
- 設計師為什麼要學程式設計,開發者為什麼要學設計?程式設計
- 為什麼在中國僅有20%的程式設計師買房?程式設計師
- 漫畫:為什麼程式設計師會死不瞑目程式設計師
- 作為一個程式設計師,CPU的這些硬核知識你必須會!程式設計師
- 為什麼說程式碼註釋是程式設計師必備的技能?程式設計師
- 程式設計師你為什麼這麼累? - Controller規範程式設計師Controller
- Python程式設計師必知必會的開發者工具Python程式設計師
- 為什麼新人不會程式設計程式設計
- 程式設計師,為什麼如此迷茫?程式設計師
- 我為什麼是程式設計師?程式設計師
- 為什麼說 Java 程式設計師必須掌握 Spring Boot ?Java程式設計師Spring Boot
- 你為什麼選擇程式設計師這個職業?程式設計師