網絡安全工程師必知的CDN知識
引言
互聯(lián)網行業(yè)里有一個著名的“4秒法則”,就是當用戶點擊網站發(fā)起訪問時,如果超過4秒,網頁內容沒有呈現(xiàn)出來,30%的用戶會不斷刷新或選擇不再等待直接關閉頁面,這樣嚴重影響了用戶體驗。隨著現(xiàn)在應用場景越來越多樣、系統(tǒng)功能越來越復雜、需要呈現(xiàn)的內容多元化(不單是以前文本、圖片、音視頻、流媒體,還有實時的微博、增強現(xiàn)實等更新的動態(tài)內容),網絡越來越復雜,用戶體驗要求越來越高等,也在推動技術的發(fā)展,由早期的鏡像技術演進到CDN技術進行網絡加速,提升用戶訪問體驗。
1.CDN是什么?
CDN全稱內容分發(fā)網絡(Content Delivery Network),是在現(xiàn)有網絡中增加一層新的網絡架構,主要解決由于長距離數(shù)據(jù)傳輸導致的網絡訪問速度慢的問題,通過將用戶需要的內容放置在靠近用戶最近的位置,使用用戶可以就近訪問需要的內容,提高用戶訪問的響應速度。
CDN的基本原理是在各個區(qū)域放置緩存服務器,通過全局調度及內容分發(fā)功能,將用戶需要的內容分發(fā)到緩存服務器,用戶的內容請求解析權交給CDN的調度系統(tǒng),然后將用戶請求調度到性能最佳最靠近用戶的CDN節(jié)點上,由CDN節(jié)點緩存服務器為用戶請求提供服務。
2.CDN解決什么問題?
CDN誕生之初,主要是為了解決網站內容訪問速度、時延和抖動問題,結合CDN實際的效果,總結如下:緩解源站服務器訪問壓力,解決服務器端的“第一千米”問題。提升用戶的訪問質量和體驗,降低時延,提高網站訪問速度。解決不同電信運營商之間互聯(lián)互通問題造成的影響。提升網站服務的可靠性,解決流量激增、網絡故障、網站故障等問題。
提高源站服務端的安全性,有效防止黑客找出源站進行攻擊。
3.CDN的工作過程
CDN的基本工作過程包括內容注入、用戶請求調度、內容分發(fā)及內容服務這4個步驟,具體如下:
內容接入
內容接入是CDN能為用戶提供服務的第一步,就是把內容從源站接入CDN的過程,包括存儲接入方式、內容預注入方式、實時回源方式。前兩種方式都是將源站內容提前接入CDN緩存服務器中,區(qū)別是前者默認是永久刪除,需要手動刪除,后者是設定規(guī)則進行智能刪除。第三種方式是內容發(fā)布前不接入內容,當用戶訪問時,CDN實時從源站拉取內容。
用戶請求調度
CDN用戶請求調度主要包括全局調度和本地調度,全局調度主要目的是根據(jù)用戶所在地理位置不同,通過分析各個CDN節(jié)點,將用戶請求轉移到整個網絡中離用戶最近的節(jié)點。全局調度方式主要有基于DNS調度方式和基于應用層重定向調度兩種方式。本地調度主要根據(jù)負載均衡算法,比如最小連接數(shù),服務器健康度、輪詢等算法,選擇最合適的CDN節(jié)點服務器給用戶提供服務。
內容分發(fā)
內容分發(fā)有Push、Pull及混合分發(fā)這3種方式,Push就是將內容從源站主動分發(fā)到各邊緣的CDN節(jié)點,分發(fā)的協(xié)議可以采用HTTP、HTTPS、FTP、SFTP等,可以加入一些智能的分發(fā)策略。Pull是一種被動的方式,主要是CDN節(jié)點沒有內容時,用戶請求時,就需要CDN節(jié)點從源站實時拉取內容?;旌戏职l(fā)就是根據(jù)實際情況,使用兩種結合的方式。
內容服務
內容服務根據(jù)用戶訪問的內容可分為靜態(tài)內容服務、動態(tài)內容服務等,靜態(tài)內容主要是指HTML文件、文本、動畫、圖片、視頻等,這些文件更新頻率低,熱點內容集中,可以提前從源站分發(fā)到CDN節(jié)點。動態(tài)內容主要是微博、微信等社交網絡的個性化實時內容,這些內容都是實時產生的,就需要用戶請求CDN時間,CDN實時從源站拉取內容,CDN就通過降低傳輸時延和避免數(shù)據(jù)傳輸失敗來實現(xiàn)動態(tài)內容加速。
4.CDN和網絡安全的關系
內容分發(fā)網絡(CDN)和網絡安全之間有密切的關系,因為CDN可以在提高性能的同時,提供一些網絡安全方面的好處。以下是CDN和網絡安全之間的關系:
分布式防御:CDN分布在全球各地的服務器上,可以通過在不同地理位置部署內容來提供分布式防御。這使得在網絡攻擊時能夠分散流量,減輕服務器的負擔,提高對抗分布式拒絕服務(DDoS)攻擊的能力。
緩存和減輕源服務器負擔:CDN通過將內容緩存在其全球服務器上,可以減輕源服務器的負擔。這有助于防止源服務器因大量請求而崩潰,也能夠防范一些惡意攻擊,因為攻擊者直接攻擊CDN可能會更為困難。
SSL/TLS終端:CDN通常提供SSL/TLS終端,通過將網站的加密流量直接終結在CDN上,可以幫助防范一些網絡攻擊,包括中間人攻擊和SSL剝離攻擊。
安全過濾和阻斷:CDN提供了一些安全過濾和阻斷功能,可以檢測和防范一些常見的網絡攻擊,如SQL注入、跨站腳本攻擊等。這些安全功能有助于提高網站的整體安全性。
訪問控制和身份驗證:通過CDN,可以實現(xiàn)對用戶的訪問控制和身份驗證,以確保只有授權用戶能夠訪問特定的內容。這有助于防范未經授權的訪問和惡意活動。
快速更新和修補:CDN允許快速部署更新和修補,這在發(fā)現(xiàn)新的安全漏洞時尤為重要。通過在CDN上進行更新,可以迅速推送修復,提高網站的安全性。
5.如何識別源站IP
通過站長之家Ping檢測及其它檢測工具進行檢測是否存在CDN節(jié)點。
通過子域名挖掘、DNS歷史解析記錄、SSL證書、國外不同地區(qū)DNS解析、網絡資產搜索引擎、威脅情報、網站郵件頭信息、CDN配置不當?shù)确矫孢M行源站真實IP挖掘。
總結
網絡安全工程師必須深入了解內容分發(fā)網絡(CDN)的原理,以更有效地掌握黑客攻擊的路徑和方法。CDN通過將網站內容分發(fā)到全球多個節(jié)點,實現(xiàn)全球范圍的負載均衡和內容緩存。這使得黑客難以通過直接攻擊源服務器獲取敏感信息,因為攻擊流量被分散在多個節(jié)點上。由于CDN在全球范圍內分布,它提供了分布式防御,有效抵御分布式拒絕服務(DDoS)攻擊。此外,CDN的安全過濾和阻斷功能能夠檢測和防范常見的網絡攻擊,如SQL注入、XSS和跨站腳本攻擊。通過對CDN原理的深刻理解,有助于網絡安全工程師更全面地評估和強化系統(tǒng)安全,提高對抗?jié)撛谕{的能力。