亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        瀏覽器緩存污染防御策略

        2018-05-21 00:50:07戴成瑞
        計算機(jī)應(yīng)用 2018年3期
        關(guān)鍵詞:中間人攻擊者瀏覽器

        戴成瑞,陳 偉

        (南京郵電大學(xué) 計算機(jī)學(xué)院,南京 210023)

        0 引言

        瀏覽器緩存可以節(jié)約網(wǎng)絡(luò)資源加速瀏覽,瀏覽器在用戶磁盤上對最近請求過的資源進(jìn)行緩存,當(dāng)訪問者再次請求這個頁面時,瀏覽器就可以從本地磁盤調(diào)用該緩存資源,這樣就可以加速頁面的閱覽。

        瀏覽器緩存[1]主要包括Web緩存和HTML5應(yīng)用程序緩存[2]。一般網(wǎng)絡(luò)上的資源都是默認(rèn)利用Web緩存方式進(jìn)行緩存,隨著網(wǎng)絡(luò)生活的高速發(fā)展,人們在使用瀏覽器上網(wǎng)時會瀏覽各種各樣的資源文件,而這些資源文件又分為靜態(tài)資源文件和動態(tài)資源文件:靜態(tài)資源文件是指圖片、CSS文件等,這些文件在較長的時間內(nèi)都不會發(fā)生變化;而動態(tài)資源文件通常是指經(jīng)常變化的JS文件,當(dāng)然有些JS文件屬于變化較少的,通常這類文件容易遭受緩存污染攻擊[3]。

        攻擊者可以通過中間人攻擊、被動抓包等方式污染用戶緩存,而傳統(tǒng)的緩存污染防御方案僅僅是針對某一具體的攻擊行為,本文希望設(shè)計一種可以不用關(guān)心攻擊者采用何種緩存污染攻擊方式的防御策略,對將要直接從緩存讀取的資源通過特征分析、用戶行為分析等多個步驟來判斷該資源是否具有被污染的可能性,最終保證用戶請求資源的安全性和體驗性。

        本文首先分析并研究了目前常用的緩存污染攻擊方式,然后對傳統(tǒng)的緩存污染防御方案進(jìn)行分析,在指出傳統(tǒng)防御方案存在不足的基礎(chǔ)上,提出一種無需關(guān)心攻擊者污染方式的防御方案,能夠自適應(yīng)防御瀏覽器緩存污染,最后分析了本文所提出的防御方案的局限性,對今后的工作進(jìn)行展望。

        1 相關(guān)工作

        緩存污染主要是一種污染用戶緩存的網(wǎng)絡(luò)攻擊手段[4]。這種緩存可以是域名系統(tǒng)(Domain Name System, DNS)緩存[5]、內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network, CDN)緩存或者說本文所討論的瀏覽器緩存,就瀏覽器緩存污染研究而言,主要包括對污染攻擊的方法、防御和危害分析[6]這幾個方面。

        Vallentin等[7]在介紹中間人攻擊的手段來實施緩存污染攻擊的同時,還提出了一種被動抓包偵聽的方式來實施緩存污染攻擊。Jia等[8]在介紹常規(guī)的HTTP瀏覽器緩存污染攻擊的同時,介紹了對HTTPS下實施緩存污染攻擊的方式,還提出了同源攻擊、跨源攻擊和瀏覽器插件攻擊三種攻擊手段。Vallentin等[6]等對一個真實的網(wǎng)絡(luò)環(huán)境進(jìn)行了緩存污染攻擊,并介紹了如何利用最小的污染成本來實現(xiàn)最大化的攻擊范圍并定量分析了緩存污染的危害性。因此從上述的研究成果來看,對污染攻擊的方法已經(jīng)有了較為全面的介紹,但是從防御的角度,大都是從用戶出發(fā),提出經(jīng)常清理緩存的建議。本文所介紹的防御策略是一種在用戶與服務(wù)器之間的一種可調(diào)控防御策略,這種策略的最大優(yōu)勢在于不關(guān)注用戶是否被污染,或者說攻擊者使用何種方法進(jìn)行瀏覽器緩存污染,簡化了緩存污染防御的流程,且能夠在安全性和用戶體驗性之間進(jìn)行合理的平衡以滿足不同用戶的使用需求。

        從之前研究結(jié)果來看,大部分用戶都沒有定期清理緩存的習(xí)慣,甚至處于一個中間人攻擊環(huán)境[9]也沒有一個良好的安全意識,使得各種各樣的緩存污染成為可能,而這又往往會成為其他網(wǎng)絡(luò)攻擊的跳板,危害極大[10]。本文所做的研究工作一方面希望能提高人們的安全意識,另一方面提出一種能夠抵抗絕大多數(shù)的緩存污染攻擊的防御策略,既不影響用戶正常瀏覽網(wǎng)頁的體驗性,又可以提高在復(fù)雜網(wǎng)絡(luò)環(huán)境下的安全性。

        2 緩存污染攻擊

        瀏覽器緩存污染[11]是指在攻擊者攻擊受害者瀏覽器期間,返回給瀏覽器具有潛在威脅的緩存資源,當(dāng)受害者脫離攻擊者攻擊環(huán)境并再次上網(wǎng)請求資源時,瀏覽器直接從緩存中讀取已被攻擊者污染的資源從而受到污染攻擊。

        就目前的研究工作而言,國內(nèi)外對緩存污染攻擊方式有了較為全面的研究,最常用的攻擊模式就是利用中間人攻擊[12],替換服務(wù)器返回給受害者的資源文件,不僅將返回數(shù)據(jù)包頭部中的緩存時間設(shè)置成很長的時間,還在返回數(shù)據(jù)包的內(nèi)容里加上攻擊者想要在受害者機(jī)器上執(zhí)行的代碼,常用的攻擊模式如圖1所示。

        Vallentin等[7]還提出了一種不使用中間人攻擊的方式進(jìn)行緩存污染攻擊,只需監(jiān)聽無線網(wǎng)絡(luò)并利用重定向技術(shù)即可,雖然同樣處于服務(wù)器和受害者中間,但是攻擊者通過監(jiān)聽網(wǎng)絡(luò)中的數(shù)據(jù)幀,并自行構(gòu)造響應(yīng)數(shù)據(jù)幀來干擾受害者,使受害者瀏覽器緩存了攻擊者想要污染的內(nèi)容。

        圖1 常用緩存污染攻擊圖 Fig. 1 Common cache pollution attack

        之前討論的攻擊都是針對HTTP下的緩存污染[8],因為在HTTP下通信雙方是沒有加密的,很容易搭建一個中間人攻擊環(huán)境,而Jia等[8]介紹了一種HTTPS下實施緩存污染攻擊的方法,其中在HTTPS下能實施緩存污染攻擊最主要的原因在于,對于大部分用戶,在面對瀏覽器提示某個網(wǎng)站證書有誤,確認(rèn)是否繼續(xù)訪問時,他們?nèi)匀粫c擊繼續(xù)訪問。他們提出了同源攻擊、跨源攻擊和瀏覽器插件攻擊三種手段來進(jìn)行HTTPS下的緩存污染攻擊。

        針對緩存污染防御方面,正如前面篇幅所述,HTTPS本身是可以抵御一定的瀏覽器緩存污染的,推薦站點盡可能使用HTTPS協(xié)議進(jìn)行通信,但用戶缺乏安全意識的話HTTPS也不是那么可靠,這種情況下推薦使用HTTP嚴(yán)格傳輸協(xié)議(HTTP Strict Transport Security, HSTS),只要用戶第一次訪問了合法的站點,瀏覽器在很長的時間里都只能用HTTPS訪問該站點,可以較好地防御流量劫持。然而面對這樣的防御手段,攻擊者仍然可以通過跨源攻擊的方式實施緩存污染攻擊:當(dāng)用戶訪問網(wǎng)站1時,攻擊者故意加載網(wǎng)站2的資源,這個攻擊手段的意義在于網(wǎng)站1若是某個新聞網(wǎng)站(不涉及用戶敏感信息),而網(wǎng)站2是某個在線銀行網(wǎng)站(具有敏感信息),即使瀏覽器彈出證書不可信的提示,但是用戶仍然會以較大概率點擊繼續(xù)訪問,然而背后加載的卻是網(wǎng)站2的資源。

        Jia等[8]還提出一種同源策略,因為對于某個JS資源A也許會被不同網(wǎng)站調(diào)用,瀏覽器可以記錄是向網(wǎng)站1請求的資源A還是向網(wǎng)站2請求的資源A,這樣可以防止跨源緩存污染攻擊。這種防御方式的弱點在于攻擊者可以采用瀏覽器插件攻擊,因為部分瀏覽器插件通常也含有一些腳本文件,污染瀏覽器插件的意義在于插件是屬于瀏覽器的,不管訪問哪個網(wǎng)站,都會觸發(fā)緩存污染攻擊。

        其實對于瀏覽器來說,如果發(fā)現(xiàn)某個服務(wù)器證書不可信,那么就不要緩存該服務(wù)器下的資源。對于用戶來說,最簡單直接的緩存污染攻擊防御策略就是不要訪問不受信任的網(wǎng)站,并且養(yǎng)成定期清理緩存的好習(xí)慣,增強(qiáng)安全意識。

        因此,在已有的一些緩存污染應(yīng)對方法出現(xiàn)的情況下,本文開展研究的目的是上述介紹的任何瀏覽器緩存污染防御方式都無法應(yīng)對多種多樣的網(wǎng)絡(luò)攻擊,防御中間人攻擊帶來的緩存污染,攻擊者仍可以使用被動抓包、流量注入等方式達(dá)到目的,很難找到一個應(yīng)對多種攻擊模式的防御策略,而這真正的問題在于大部分研究僅僅關(guān)注如何防止用戶緩存被污染,而忽視了緩存污染攻擊的觸發(fā)條件即用戶下次請求資源時直接讀取被污染的緩存。因此本文研究的核心是即使用戶緩存被污染,也能通過一些手段將其檢測并恢復(fù)出來,這樣防御策略可以直接跳過判斷用戶此時是否遭受同源攻擊、跨源攻擊、流量注入等緩存污染攻擊的步驟,從而用單一的防御策略應(yīng)對多種多樣的攻擊模式。

        無論是用何種方式污染了受害者瀏覽器下的緩存[13],當(dāng)受害者脫離了攻擊者搭建的攻擊環(huán)境,由于受害者計算機(jī)中的緩存資源已經(jīng)被污染,仍然會面臨著潛在的威脅;而這種威脅是未知的,如果用戶不及時清除自己的緩存,這樣的威脅也許會持續(xù)一個月,甚至更久,而且往往緩存污染攻擊可以當(dāng)作很多網(wǎng)絡(luò)攻擊的跳板來作出更具有侵害性的行為[14]。因此,提出一種流程簡單但能應(yīng)對多種緩存污染攻擊方式的防御方案具有重要的實際意義。

        3 瀏覽器緩存污染防御方案

        無論采取何種方式進(jìn)行緩存污染攻擊,攻擊者的目的都是一樣的:污染用戶的緩存[15]。因此本文所討論的防御方案并不關(guān)注防御攻擊本身,而是在于及時檢測出被污染的緩存并進(jìn)行恢復(fù)。即使用戶的緩存被污染,當(dāng)用戶在后續(xù)的訪問中,我們能及時檢測到被污染的資源使之重新加載成正確的資源,同時又能保證未被污染的緩存資源能夠順利從用戶瀏覽器緩存中讀取,總的來說,本文所討論的防御方案是在保證用戶正常瀏覽網(wǎng)頁的情況下,既不影響到用戶體驗性,又能實現(xiàn)安全的保障。

        本文所討論的防御端處于用戶與服務(wù)器之間,該防御策略理想化的實驗結(jié)果就是一方面將所有未被污染的緩存資源直接作讀取緩存處理;另一方面使所有被污染的緩存資源都能夠被防御腳本檢測出來,并且重新向服務(wù)器請求真實的資源返回給用戶。

        因此本文所設(shè)計的防御策略總體思路就是在用戶請求緩存資源時,逐步根據(jù)緩存資源特征判斷該資源是否是未被污染的:一旦在判斷過程中認(rèn)為該資源是未被污染的就作直接讀取緩存處理;當(dāng)經(jīng)過所有的判斷該資源仍無法決定,就認(rèn)為該資源是被污染的,需要重新向服務(wù)器請求該資源。這么做的目的在于盡快地判斷出該資源是否應(yīng)該直接讀取緩存,從而最大限度上減小防御策略判斷過程中帶來的時間消耗。

        整個判斷策略過程是一個從粗略到細(xì)致的過程,剛開始的判斷僅僅是分析該資源是否要從緩存中讀取,不讀緩存的資源就相當(dāng)于從服務(wù)器重新請求資源。真正具有潛在威脅的是準(zhǔn)備讀取緩存的資源,針對這部分資源,該防御策略通過用戶的行為特征和資源本身的通用度進(jìn)一步?jīng)Q策出是否被污染;對于仍無法判斷的資源需要進(jìn)行最后的哈希驗證,這是檢測資源是否被污染最為有效也是最耗時的方法,一旦驗證不成功就拒絕該資源并向服務(wù)器重新加載新的資源。3.1~3.7節(jié)將闡述具體的防御策略。

        3.1 隨機(jī)數(shù)判斷

        如果用戶請求的統(tǒng)一資源定位符(Uniform Resource Locator, URL)后面含有隨機(jī)數(shù),那么代表該資源是直接向服務(wù)器請求最新的資源,無需進(jìn)行后續(xù)的判斷,防御端不作處理,因為這樣請求的資源一定是服務(wù)器上真實的資源,不存在被污染的可能性。

        3.2 請求響應(yīng)延時判斷

        如果用戶請求的資源URL后面沒有包含隨機(jī)數(shù),那么該資源是有可能受到污染的,因此這里需要計算用戶請求該資源的時間和服務(wù)器返回的時間差:如果該時間差超過了某個閾值Te,則認(rèn)為該資源之前是沒有被緩存到用戶瀏覽器上,自然也不需要重新申請該資源;如果該時間插值小于該閾值,則此資源需要進(jìn)一步判斷是否被污染。

        這里的閾值Te可以在防御端啟動時進(jìn)行初始化檢測,因為對于不同的網(wǎng)絡(luò)環(huán)境,這個閾值Te是不一致的,同時,用戶在上網(wǎng)的過程中,也有可能面臨網(wǎng)速的變化,因此防御端對于閾值Te的檢測是周期性的。

        3.3 資源代表性判斷

        進(jìn)入此步驟的資源由于請求返回時間差小于閾值Te,因此都是將要直接讀取用戶瀏覽器緩存的。這里為了進(jìn)一步優(yōu)化用戶的體驗性,需要定義并計算資源代表性值C,因為對于大部分的緩存污染攻擊模式,攻擊者利用中間人攻擊的手段不滿足僅僅污染用戶請求的資源,而是使用預(yù)加載通用資源至用戶端的方式,導(dǎo)致用戶緩存資源雖然沒有被大面積污染,但是卻能以很高的概率被觸發(fā)。因此攻擊者使用的通用資源必然是具有代表性的,所以當(dāng)用戶請求的資源是處于不常訪問的或者說之前根本沒有訪問的,那么我們大概率推測該資源是沒有被污染的,可以直接返回給用戶。

        此時定義資源代表性值C,該值由用戶行為值U與Alexa[16]統(tǒng)計值A(chǔ)累加得出。其中:用戶行為值U是根據(jù)用戶上網(wǎng)的習(xí)慣所給出的評價值,范圍是[0,1];Alexa統(tǒng)計值A(chǔ)是根據(jù)Alexa網(wǎng)站統(tǒng)計排名所給出的值,范圍同樣是[0,1]。當(dāng)資源代表性值C小于閾值Tc時,那么認(rèn)為該資源是非通用資源,不容易成為攻擊者攻擊的目標(biāo),這些資源直接返回給用戶;當(dāng)C大于閾值Tc時,將交由下一步判斷。

        這里的閾值Tc同樣可調(diào)控:如果想要追求更大的安全性,閾值Tc應(yīng)該設(shè)置足夠地小,讓更多的資源進(jìn)行下一步的判斷;如果想要更好的用戶體驗,可以提高閾值Tc。

        3.4 哈希驗證

        不論攻擊者利用什么手段污染了用戶的某個資源,該資源與服務(wù)器上原始資源的哈希值是不同的?;诖?,考慮到防御端無需占用太大的空間,防御端事先以鍵值對的形式存儲好常用的資源名所對應(yīng)的該資源內(nèi)容的哈希值,同時可以搭建一個防御端服務(wù)器存儲更多這樣的鍵值對便于查詢。進(jìn)入到該步驟下的資源,如果所計算返回資源的哈希值和防御端中已存放對應(yīng)的哈希值一致,直接返回給用戶;如果不一致,說明該資源被污染,防御端重新向服務(wù)器請求最新的資源給用戶;如果沒有查詢到,訪問防御端服務(wù)器查詢并進(jìn)行同樣的操作。當(dāng)服務(wù)器端也查詢不到時,直接向服務(wù)器請求真正的資源返回給用戶,因為即使該資源是未被污染的,重新向服務(wù)器請求真正資源并計算哈希值比對也是沒有意義的,所以這里直接當(dāng)作被污染的資源處理。

        3.5 眾包策略

        這里值得注意的是,真正的資源文件也是會變化的,當(dāng)遠(yuǎn)程服務(wù)器的資源文件發(fā)生變化,而防御端還沒即時更新,此時檢測哈希值必然是不一致的,防御策略會將這樣的資源當(dāng)作污染資源處理,因此,當(dāng)防御端所監(jiān)測的用戶群在某個時間開始,針對某個資源的哈希值出現(xiàn)大量的不一致且這些計算的哈希值都為同一值時,將進(jìn)行自適應(yīng)的調(diào)整,以保證防御端能夠存放著不斷更新的鍵值對。

        當(dāng)然,眾包策略需要大量用戶參與才能保證眾包的可靠性,例如當(dāng)防御系統(tǒng)充當(dāng)校園網(wǎng)管角色時,大量校園用戶與遠(yuǎn)程服務(wù)器的交互會使系統(tǒng)不斷處于一個自動更新的狀態(tài),而當(dāng)只有少量用戶參與,該防御系統(tǒng)并不能做到有效的快速更新,更多依賴的是系統(tǒng)本身定期向各個服務(wù)器來獲取最新的數(shù)據(jù)。

        3.6 相關(guān)假設(shè)

        在用戶依賴這樣的防御策略情況下,需要保證當(dāng)防御腳本檢測出污染資源時向服務(wù)器請求的最新資源是未被污染的。如果用戶已經(jīng)脫離攻擊環(huán)境,顯然向服務(wù)器重新請求資源是安全的;而用戶仍若處于中間人攻擊這樣環(huán)境,此時很難利用該防御策略抵御緩存污染攻擊,因為就算服務(wù)器返回的資源是未被污染的,攻擊者仍可以采用中間人的方式替換資源。這里涉及到的關(guān)鍵問題在于中間人攻擊的防御,并不在本文討論的范疇。本文所介紹的防御策略就是讓資源可以被緩存污染,但是在下次觸發(fā)緩存污染時能夠有效檢測并恢復(fù)。

        3.7 防御策略算法

        本文所介紹的防御端是處于用戶與服務(wù)器之間,換句話說,它既可以充當(dāng)某個校園網(wǎng)管的角色進(jìn)行緩存污染保護(hù),也可以運行在用戶機(jī)上針對具體的用戶進(jìn)行防護(hù)。為了便于進(jìn)行實驗和結(jié)果分析,將中間人代理方式構(gòu)建在用戶機(jī)上,當(dāng)用戶在瀏覽器設(shè)置里添加Node.js所監(jiān)聽的端口以及代理服務(wù)器地址(這里就是127.0.0.1),那么之后這樣的一個簡單的代理首先能夠接收客戶端的轉(zhuǎn)發(fā)請求,并且根據(jù)客戶端請求向真正目標(biāo)服務(wù)器發(fā)起請求,最后再將真正的服務(wù)器響應(yīng)內(nèi)容轉(zhuǎn)發(fā)給客戶端。

        在搭建了這樣一個中間人代理之后,按照上一章節(jié)所介紹的防御策略設(shè)計相應(yīng)的算法實現(xiàn)。其中對于資源代表性判斷算法,由于涉及到兩種不同范圍的值的運算,所以需要對數(shù)據(jù)作歸一化處理,對于用戶行為值U,采集用戶的歷史瀏覽紀(jì)錄并按照訪問次數(shù)大小排序如下所示:

        [x1:u1],[x2:u2],…,[xn:un]

        xi(i=1,2,…,n)代表資源名,無論用戶使用HTTP協(xié)議還是HTTPS(SSL/TLS)協(xié)議,提取用戶在一段時間內(nèi)請求的資源名,作為用戶行為值判斷的樣本。ui(i=1,2,…,n)代表資源xi的訪問次數(shù),總共有n對這樣的數(shù)據(jù),其中u1≥u2≥…≥un,因此如果對于資源xj,那么歸一化的計算公式為:

        針對u1=un這種情況,無需使用歸一化對用戶行為值進(jìn)行處理,因為該條件代表用戶歷史瀏覽記錄中不同資源的請求次數(shù)都是一致的,此時用戶行為值U是無意義的參數(shù),無法判斷該資源在歷史記錄中的流行程度。因此只需考慮另一種判斷因素也就是Alexa統(tǒng)計值A(chǔ),本文參考的是Alexa網(wǎng)站流量全球綜合排名[16],這是一種更具有普適意義的系數(shù),與上述數(shù)據(jù)不同的是,這里按照如下方式采集數(shù)據(jù):

        [y1:m],[y2:m-1],…,[ym:1]

        最后根據(jù)系數(shù)W按如下公式計算c:

        隨著時間的推移,用戶行為值U與Alexa[16]統(tǒng)計值A(chǔ)都會發(fā)生變化,雖然一些變量在初始化的時候生成,但是在后續(xù)的防御過程中會周期性地檢查以確保防御端處于一個不斷更新的狀態(tài)??紤]到上一時刻的ci-1仍然對當(dāng)前時刻的ci具有一定的影響,一個合理的計算公式為:

        ci=t*ci-1+(1-t)*ci

        t是上一時刻的ci-1對當(dāng)前時刻的ci的影響因子,處于0~1,通過這樣不斷的迭代,c會不斷地根據(jù)上一時刻更新到這一時刻從而與閾值Tc相比較。這些變量和值如表1所示。

        4 實驗及結(jié)果

        4.1 緩存污染攻擊模擬實驗

        本文基于Node.js模擬中間人攻擊的方式,對用戶進(jìn)行緩存污染攻擊模擬實驗。

        4.1.1 搭建環(huán)境

        用戶處于一個中間人攻擊環(huán)境[17]或者連上攻擊者創(chuàng)建的無線網(wǎng)絡(luò)接入點。這一步主要是為了構(gòu)建一個網(wǎng)絡(luò)攻擊環(huán)境,本文具體采用Node.js中的express框架,監(jiān)聽本機(jī)的8080端口。實驗進(jìn)行時,用戶將瀏覽器的代理服務(wù)器設(shè)置成127.0.0.1,同時代理端口設(shè)置為8080,接下來用戶通過瀏覽器發(fā)出的請求都會被監(jiān)聽腳本捕獲。

        4.1.2 選取待污染的資源

        在這一部分的實驗中,盡可能地模擬攻擊者的行為,從攻擊者的角度出發(fā),如何選取合適的資源來污染是這一步的關(guān)鍵。首先創(chuàng)建一個URL的列表文件,上面列舉著一些常用的網(wǎng)站域名,再基于PhatomJS模擬請求這些網(wǎng)站,根據(jù)網(wǎng)站返回資源信息,去提取出帶污染的資源URL。具體的選取規(guī)則依賴于HTTP頭部特征,本文根據(jù)資源頭部信息里的緩存時間、緩存過期時間、上次修改時間和是否具有ETag標(biāo)志這四個特征判斷這個資源是不是容易被污染的。即使用戶進(jìn)行刷新操作,瀏覽器也不會向服務(wù)器請求完整的資源,而是詢問服務(wù)器該資源是否被修改過,若沒有修改過,那瀏覽器仍然從緩存中讀取該資源,因此選取這些待污染的資源能有效避免用戶刷新頁面導(dǎo)致緩存污染攻擊失敗的問題。

        4.1.3 實施緩存污染

        用戶正常瀏覽網(wǎng)頁,當(dāng)攻擊腳本監(jiān)聽到用戶在訪問HTTP的網(wǎng)站時,嘗試預(yù)加載上述待污染的資源,利用發(fā)送帶隨機(jī)數(shù)的URL請求真正的資源并加上模擬攻擊代碼,那么上述選取的待污染資源內(nèi)容其實都被篡改,即在保證顯示原有頁面的情況下彈出一個模擬攻擊窗口,同時設(shè)置資源的緩存時間為31 536 000 s以及其他的頭部信息。

        4.2 實驗結(jié)果分析

        此時用戶的瀏覽器緩存里會被強(qiáng)行緩存了攻擊者設(shè)置好的資源,這些資源往往具有很高的通用性,也許用戶這一時刻并不會打開,但是這些資源都被設(shè)置了很長的緩存時間,并且這些資源在服務(wù)器上距離上次修改也隔了很長的時間,大概率推測將來的一段時間也不會頻繁地變動,因此即使用戶脫離攻擊環(huán)境,只要之后沒有清空緩存,那么該資源很容易被觸發(fā),一旦請求了該資源,瀏覽器會從緩存中直接讀取,而緩存已經(jīng)被污染,所以用戶將會執(zhí)行攻擊者的代碼。

        在分析實驗結(jié)果之前需要定義污染樣本的命中率和正常樣本的誤判率。命中率是用來衡量該防御腳本的安全性,命中率越高說明有更多的污染樣本被防御腳本檢測出來,用戶通過直接加載緩存的方式請求資源而觸發(fā)緩存污染的概率也就越低,因此實驗的目標(biāo)就是要將防御腳本的命中率接近100%;誤判率指的是防御腳本將正常樣本檢測為污染樣本的概率,誤判率越高說明防御腳本會讓用戶重新加載本應(yīng)該直接讀取緩存的正常資源,因此必然會帶來時間上的多余消耗,從而影響到了用戶體驗性。對于個人用戶而言,也許重新加載資源所帶來的多余延時影響并不大,為了保證不漏判任何的污染樣本,必然要對用戶體驗性方面做出犧牲,換句話說就是在處理難以判斷的樣本時盡量當(dāng)作污染樣本處理,來換取足夠高的安全性,因為攻擊者往往利用緩存污染作為跳板實施網(wǎng)絡(luò)攻擊,觸發(fā)緩存污染的危害是難以預(yù)估的;而對于校園網(wǎng)管的角色來說,往往會處理許多用戶的大量請求,需要權(quán)衡安全性和用戶體驗性,而該防御策略在兩者之間可以通過參數(shù)調(diào)控的。

        采用預(yù)加載的形式使用戶瀏覽器緩存了攻擊者想要緩存的資源共1 000條,接著讓用戶脫離攻擊環(huán)境并運行本文所介紹的防御端腳本,當(dāng)用戶請求其中100條被污染的資源和100條正常的資源,統(tǒng)計該防御策略在松弛條件和嚴(yán)格條件下能實現(xiàn)多少的命中率和誤判率,同時與不開啟瀏覽器緩存污染防御腳本和將所有資源都重新加載進(jìn)行比較,最后統(tǒng)計上述四種方案的請求響應(yīng)延時,實驗結(jié)果如表2所示。

        表2 實驗結(jié)果Tab. 2 Experimental results

        由表2所示,很容易理解未使用防御策略和全部重新加載在污染樣本命中率和正常樣本誤判率的表現(xiàn),而另外的兩種是采用不同程度的緩存污染防御策略,相比而言,嚴(yán)格的防御策略下很多資源的URL交由哈希驗證處理,因此會存在部分查詢不到導(dǎo)致誤判率增加,同時耗時相對于松弛條件略有增加。

        不難看出利用緩存污染防御策略相對于未使用防御策略的,能保持一個較好的安全性,同時還可以在可調(diào)控的范圍內(nèi)以較低的請求響應(yīng)延時進(jìn)行工作。

        4.3 緩存污染防御策略的優(yōu)勢

        首先緩存污染防御是一個處于用戶和服務(wù)器之間的防御手段,不受Web開發(fā)者、服務(wù)器、瀏覽器限制。傳統(tǒng)的瀏覽器緩存污染防御措施主要防止用戶遭受污染攻擊,Jia等[8]在介紹同源緩存污染攻擊手段時提出了利用HTTPS來防止中間人緩存污染攻擊,然而攻擊者仍可以利用跨源的緩存污染攻擊來削弱HTTPS的安全性,隨后便提出一種同源策略來應(yīng)對跨源攻擊,即使這樣,攻擊者仍可以采用污染瀏覽器插件腳本的方式來實施污染攻擊,因為瀏覽器插件是屬于瀏覽器本身的而非某個網(wǎng)站,只要污染了插件訪問任何網(wǎng)站都會遭受攻擊。當(dāng)用戶設(shè)法采取各種各樣的措施來防止中間人這種方式的緩存污染攻擊時,攻擊者仍可以采用Vallentin等[7]所介紹的流量注入方式污染用戶的緩存。

        由此發(fā)現(xiàn),攻擊者的攻擊模式是多樣的,而傳統(tǒng)的防御措施僅僅是考慮了如何防御用戶被污染,一旦新攻擊方式出現(xiàn),那么傳統(tǒng)的防御方案就會失效,而本文提出的防御策略不關(guān)注緩存污染攻擊的方式,即使用戶遭受了污染攻擊,在后續(xù)的請求流量過程中該防御策略仍能檢測并恢復(fù)正確的資源文件。

        在用戶體驗、服務(wù)器帶寬和安全性之間提出了一種可調(diào)控的平衡方案。防御方案中使用了用戶歷史行為進(jìn)行輔助判斷以便提高響應(yīng)速率。防御方案中的響應(yīng)時間閾值、資源代表性值都可以通過當(dāng)前網(wǎng)絡(luò)環(huán)境進(jìn)行動態(tài)判斷,以增強(qiáng)實用性。本方案不關(guān)注資源是否被污染,或者說攻擊者使用何種方法進(jìn)行Web緩存污染[18],簡化了緩存污染防御的流程,將防御重心放在用戶的整個請求過程,既保證了安全性,又不影響用戶的體驗性,同時還不增加服務(wù)器端的壓力。

        5 今后的工作

        本文所介紹的防御端是處于用戶與服務(wù)器之間,并且假設(shè)此時用戶已經(jīng)脫離了攻擊環(huán)境,這是為了保證防御端向服務(wù)器端請求資源是未被污染的,如果攻擊者處于防御端和服務(wù)器之間,這樣的防御策略很有可能失效了,因此,接下來的工作是在這樣的環(huán)境下進(jìn)行一種實時的防護(hù),尤其是當(dāng)用戶從一個常規(guī)的IP地址突變到了一個非常規(guī)的IP地址,例如咖啡廳、快餐店等布置的公共網(wǎng)絡(luò),該防御系統(tǒng)需要進(jìn)入一個更高的安全檢測級別[20],對于敏感的URL可以考慮在請求頭部加上不緩存的模式,防止攻擊者乘虛而入。

        眾包策略依賴大量用戶的參與,如何判斷用戶量已經(jīng)達(dá)到了可以開啟眾包策略進(jìn)行實時更新的條件是接下來需要考慮的問題,但同時這樣的策略也容易遭受女巫攻擊,攻擊者可以偽造大量的節(jié)點共同請求污染的資源導(dǎo)致防御系統(tǒng)產(chǎn)生錯誤的更新而帶來安全隱患,因此接下來需要對訪問防御端服務(wù)器的用戶進(jìn)行驗證。以校園網(wǎng)管的角色來說,學(xué)生可以按照自己唯一的學(xué)號去生成相應(yīng)的數(shù)字證書,從而限制非法用戶偽造大量節(jié)點的請求。

        同時,接下來的工作還應(yīng)包括對用戶行為的詳細(xì)分析與預(yù)測,因為對于不同的用戶來說,他們的訪問習(xí)慣也是不同的,因此在他們的瀏覽器緩存中應(yīng)該存放著體現(xiàn)各自上網(wǎng)習(xí)慣的信息,所以,要想實現(xiàn)更高的污染樣本命中率和更低的正常樣本誤判率需要將本文已經(jīng)進(jìn)行的工作與用戶行為分析[21]工作相結(jié)合。

        6 結(jié)語

        本文提出一種在用戶與服務(wù)器之間的緩存污染防御策略,通過隨機(jī)數(shù)判斷、請求相應(yīng)延時判斷、資源代表性判斷、哈希驗證和眾包策略這五個步驟,即使用戶緩存已經(jīng)遭受污染,也能在后續(xù)的請求資源過程中檢測出污染資源并進(jìn)行恢復(fù)。與傳統(tǒng)的緩存污染防御方案相比,本文提出的防御策略并不關(guān)注攻擊者通過何種手段污染用戶緩存,并且在變化的網(wǎng)絡(luò)環(huán)境中能夠進(jìn)行自適應(yīng)更新,使防御方案時刻保持著實用性與穩(wěn)定性。

        面對用戶行為的多樣性和防御策略環(huán)境的限制,接下來的工作需要對不同網(wǎng)絡(luò)環(huán)境和不同用戶群采用不同的防御策略,因為單一的標(biāo)準(zhǔn)往往不能適用于多種變化的環(huán)境和人群,設(shè)計不同的防御策略以便在今后工作中保證用戶安全性的同時仍然保持著良好的用戶體驗性。

        參考文獻(xiàn)(References)

        [1] 湯紅波,鄭林浩,葛國棟,等.CCN中基于節(jié)點狀態(tài)模型的緩存污染攻擊檢測算法[J].通信學(xué)報,2016,37(9):1-9.(TANG H B, ZHENG L H, GE G D, et al. Detection algorithm for cache pollution attacks based on node state model in content centric networking [J]. Journal on Communications, 2016, 37(9): 1-9.)

        [2] 賈巖,王鶴,呂少卿,等.HTML5應(yīng)用程序緩存中毒攻擊研究[J].通信學(xué)報,2016,37(10):149-157.(JIA Y, WANG H, LYU S Q, et al. Research on HTML5 application cache poison attack [J]. Journal on Communications, 2016, 37(10): 149-157.)

        [3] LI M. Persistent JavaScript poisoning in Web browser’s cache [EB/OL]. (2015- 12- 12) [2017- 07- 14]. http://www.cs.tufts.edu/comp/116/archive/fall2015/mli.pdf.

        [4] KLEIN A. Web cache poisoning attacks [M]// Encyclopedia of Cryptography and Security. Boston, MA: Springer, 2011: 1373-1373.

        [5] HAY R, SHARABANI A. Protection against cache poisoning: U.S. Patent 8,806,133[P]. 2014- 08- 12.

        [6] VALLENTIN M, BEN-DAVID Y. Quantifying persistent browser cache poisoning [EB/OL]. (2010- 04- 21) [2017- 07- 04]. http://matthias.vallentin.net/course-work/cs294-50-s10.pdf.

        [7] VALLENTIN M, BEN-DAVID Y. Persistent browser cache poisoning [EB/OL]. [2017- 07- 20]. https://people.eecs.berkeley.edu/~yahel/papers/Browser-Cache-Poisoning.Song.Spring10.attack-project.pdf.

        [8] JIA Y, CHEN Y, DONG X, et al. Man-in-the-browser-cache: persisting HTTPS attacks via browser cache poisoning [J]. Computers & Security, 2015, 55: 62-80.

        [9] KUPPAN L. Attacking with HTML5 [EB/OL]. [2017- 04- 01]. https://www.techylib.com/en/view/victorious/attacking_with_html5.

        [10] 方慧鵬,應(yīng)凌云,蘇璞睿,等.移動智能終端的SSL實現(xiàn)安全性分析[J].計算機(jī)應(yīng)用與軟件,2015,32(7):272-276.(FANG H P, YING L Y, SU P R, et al. Securiy analysis on SSL implementation of smart mobile terminals [J]. Computer Applications and Software, 2015, 32(7): 272-276.)

        [11] JOHNS M, LEKIES S, STOCK B. Eradicating DNS rebinding with the extended same-origin policy [C]//SEC ’13: Proceedings of the 22nd USENIX Conference on Security. Berkeley, CA: USENIX Association, 2013: 621-636.

        [12] SALTZMAN R, SHARABANI A. Active man in the middle attacks [EB/OL]. [2017- 03- 03]. http://www.security-science.com/pdf/active-man-in-the-middle.pdf.

        [13] JIA Y, DONG X, LIANG Z, et al. I know where you’ve been: Geo-inference attacks via the browser cache [J]. IEEE Internet Computing, 2015, 19(1): 44-53.

        [14] LEKIES S, JOHNS M. Lightweight integrity protection for Web storage-driven content caching [EB/OL]. [2017- 04- 11]. http://www.w2spconf.com/2012/papers/w2sp12-final8.pdf.

        [15] KARAPANOS N, CAPKUN S. On the effective prevention of TLS man-in-the-middle attacks in Web applications [C]// Proceedings of the 23rd USENIX Conference on Security Symposium. Berkeley, CA: USENIX Association, 2014: 671-686.

        [16] ALEXA.CN. Alexa [DB/OL] (2017) [2017- 08- 01]. http://www.alexa.cn/siterank/.

        [17] 黎松,段海新,李星.域間路由中間人攻擊的實時檢測系統(tǒng)[J].清華大學(xué)學(xué)報(自然科學(xué)版),2015,55(11):1229-1234.(LI S, DUAN H X, LI X. Real-time system for detecting inter-domain routing man-in-the-middle attacks [J]. Journal of Tsinghua University (Science and Technology), 2015, 55(11): 1229-1234.)

        [18] CLARK J, van OORSCHOT P C. SoK: SSL and HTTPS: Revisiting past challenges and evaluating certificate trust model enhancements [C]// Proceedings of 2013 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2013: 511-525.

        [19] PRANDINI M, RAMILLI M, CERRONI W, et al. Splitting the HTTPS stream to attack secure Web connections [J]. IEEE Security and Privacy, 2010, 8(6): 80-84.

        [20] 汪定,馬春光,翁臣,等.強(qiáng)健安全網(wǎng)絡(luò)中的中間人攻擊研究[J].計算機(jī)應(yīng)用,2012,32(1):42-44.(WANG D, MA C G, WENG C, et al. Research of man-in-the-middle attack in robust security network [J]. Journal of Computer Applications, 2012, 32(1): 42-44.)

        [21] NAYAK G N, SAMADDAR S G. Different flavours of man-in-the-middle attack, consequences and feasible solutions [C]// Proceedings of the 2010 3rd IEEE International Conference on Computer Science and Information Technology. Piscataway, NJ: IEEE, 2010, 5: 491-495.

        This work is partially supported by the National Natural Science Foundation of China (61602258).

        DAIChengrui, born in 1993,M.S. candidate. His research interests include network security, operating system security.

        CHENWei, born in 1979, Ph. D., professor. His research interests include network security, privacy protection.

        猜你喜歡
        中間人攻擊者瀏覽器
        基于微分博弈的追逃問題最優(yōu)策略設(shè)計
        夾在妻子和弟弟中間,怎樣當(dāng)好中間人?
        中老年保健(2021年3期)2021-08-22 06:51:34
        反瀏覽器指紋追蹤
        電子制作(2019年10期)2019-06-17 11:45:14
        正面迎接批判
        愛你(2018年16期)2018-06-21 03:28:44
        無線網(wǎng)絡(luò)的中間人攻擊研究
        《天盛律令》對買賣借典“中間人”的規(guī)制
        西夏學(xué)(2016年2期)2016-10-26 02:21:34
        環(huán)球瀏覽器
        再見,那些年我們嘲笑過的IE瀏覽器
        有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
        調(diào)解中間人制度探微
        国产av人人夜夜澡人人爽| 午夜精品免费视频一区二区三区| 成人影院在线视频免费观看| 国产亚洲日韩在线一区二区三区| 国产精品白浆一区二小说| 国产自精品在线| 国产一区二区不卡av| 国精产品一区一区三区| 国产精品免费观看久久 | 日本精品熟妇一区二区三区| 少妇免费av一区二区三区久久| 精品久久久久久无码中文字幕| 亚洲av理论在线电影网| 国产裸体AV久无码无遮挡| 丰满老熟女性生活视频| 日韩av无码久久一区二区| 亚洲综合av在线在线播放| 亚洲 国产 韩国 欧美 在线| 国产色av一区二区三区| 欧美又粗又长又爽做受| 久久久久国产精品免费免费搜索| 久久精品美女久久| 丝袜美腿制服诱惑一区二区 | 2021国产最新在线视频一区| 男女视频网站免费精品播放| 91中文人妻熟女乱又乱| 三级特黄60分钟在线观看| 巨臀中文字幕一区二区| 亚洲天堂男人的av天堂| 亚洲国产一二三精品无码| av人摸人人人澡人人超碰小说| 欧美丝袜秘书在线一区| 久久精品一区二区三区蜜桃| 中文亚洲av片在线观看| āV第三区亚洲狠狠婷婷综合久久| 亚洲美女av二区在线观看| 欧美性色欧美a在线播放| 福利视频一二三在线观看| 亚洲AV日韩Av无码久久| 亚洲女同av在线观看| 亚欧色一区w666天堂|