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