張 兵,寧多彪,趙躍龍
(1.成都東軟學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,四川 成都611844;2.華南理工大學(xué) 信息與科學(xué)工程學(xué)院,廣東 廣州510640)
當(dāng)前網(wǎng)絡(luò)有防火墻和IDS的保護(hù),因此攻擊者很難達(dá)到直接攻擊某臺機(jī)器的目的。通常,有目標(biāo)的攻擊者利用其它機(jī)器上存在的漏洞發(fā)動多步攻擊,達(dá)到最終攻擊的目的,利用其它機(jī)器上存在的漏洞發(fā)動多步攻擊的過程,組成一條攻擊路徑。一條攻擊路徑就是關(guān)于受害機(jī)器上的一系列漏洞利用。因此,發(fā)現(xiàn)網(wǎng)絡(luò)中可能存在的攻擊路徑至關(guān)重要。
如果一臺機(jī)器上的某個(gè)漏洞被攻擊者利用并入侵,且這個(gè)漏洞是已經(jīng)公布的漏洞,那么它就不是0day漏洞。所謂的0day漏洞是指那些沒有公開過,因而也就沒有補(bǔ)丁的漏洞,即通常所說的-“未公開的漏洞”。如果一條攻擊路徑中包含一個(gè)或多個(gè)0day漏洞,那么這條攻擊路徑就稱為0day攻擊路徑。
研究表明,0day漏洞給網(wǎng)絡(luò)安全帶來了巨大的挑戰(zhàn)[1],而0day攻擊路徑問題正是建立在0day漏洞問題的基礎(chǔ)之上的[2]。當(dāng)前關(guān)于0day攻擊路徑問題的解決方法大致有3種:攻擊圖方法、滲透測試方法以及警報(bào)關(guān)聯(lián)方法,然而這些方法都未能有效且準(zhǔn)確地識別網(wǎng)絡(luò)中存在的0day攻擊路徑。出于這一動機(jī),本文對如何有效地檢測網(wǎng)絡(luò)中存在的0day攻擊路徑做了相對深入的研究。本文的貢獻(xiàn)主要在于首次利用系統(tǒng)調(diào)用的方法檢測0day攻擊路徑,并且設(shè)計(jì)實(shí)現(xiàn)了檢測0day攻擊路徑的系統(tǒng)。
當(dāng)前關(guān)于攻擊路徑問題的檢測方法大致有攻擊圖方法、滲透測試方法和警報(bào)關(guān)聯(lián)方法。攻擊圖[3-6]是一種用圖形的方式來描述攻擊者從攻擊起始點(diǎn)到達(dá)攻擊目標(biāo)的所有攻擊路徑的方法。它在分析網(wǎng)絡(luò)的所有配置信息和弱點(diǎn)信息的前提下,通過信息之間的全局依存關(guān)系找出所有可能的攻擊路徑。然而之前關(guān)于攻擊圖方法的研究只是把已知漏洞進(jìn)行關(guān)聯(lián),并未反映出未知漏洞之間的關(guān)系。滲透測試[7,8]是一種比較常用的網(wǎng)絡(luò)漏洞檢測方法,然而該方法操作實(shí)施過程復(fù)雜,對操作人員技術(shù)水平要求高,需要操作人員對組件、系統(tǒng)功能和行為深入理解。另外,由于在滲透測試過程中,很難利用未知漏洞,因此無法檢測出網(wǎng)絡(luò)中隱藏的0day攻擊路徑。相對與滲透測試而言,警報(bào)關(guān)聯(lián)[9-12]的優(yōu)勢是自動化程度較高,但是由于在關(guān)聯(lián)過程中使用了入侵檢測系統(tǒng)(IDS),因此誤報(bào)率和漏報(bào)率較高,對真實(shí)攻擊的檢測能力有限[13]。
綜上所述,當(dāng)前的研究方法中,并沒有對0day攻擊路徑的有效合理的檢測方法。為了有效的檢測0day漏洞,需要一種簡單高效的檢測方法。
本文從系統(tǒng)調(diào)用[14]的角度出發(fā),首次利用系統(tǒng)調(diào)用軌跡 (system call traces)識別0day攻擊路徑,取代前人通過收集漏洞或警報(bào)關(guān)聯(lián)成攻擊路徑的方法?;谙到y(tǒng)調(diào)用的0day攻擊路徑檢測犯法首先根據(jù)定義的語法規(guī)則,利用系統(tǒng)調(diào)用軌跡構(gòu)造網(wǎng)絡(luò)系統(tǒng)對象關(guān)系圖,然后從網(wǎng)絡(luò)系統(tǒng)對象關(guān)系圖中識別出可疑的入侵傳播路徑,最后識別出0day攻擊路徑,具體方法如下所述。
某個(gè)網(wǎng)絡(luò)中的機(jī)器是由各種類型的操作系統(tǒng)組成,系統(tǒng)對象可以劃分為進(jìn)程、文件和套接字。首先利用系統(tǒng)調(diào)用軌跡構(gòu)造單個(gè)主機(jī)的系統(tǒng)對象關(guān)系圖 (per-h(huán)ost system object relation graph,per-h(huán)ost SORG)。如定義1所示,單個(gè)主機(jī)的系統(tǒng)對象關(guān)系圖是利用系統(tǒng)對象作為結(jié)點(diǎn),系統(tǒng)對象之間的關(guān)系作為邊,構(gòu)成的有向圖。根據(jù)表1中的語法規(guī)則,系統(tǒng)對象之間的關(guān)系有多種。比如,系統(tǒng)調(diào)用read指進(jìn)程依賴文件,用file →process表示,而系統(tǒng)調(diào)用write指文件依賴進(jìn)程,用process→file 表示。
定義1 單個(gè)主機(jī)的系統(tǒng)對象關(guān)系圖per-h(huán)ost SORG。如果某臺主機(jī)的系統(tǒng)調(diào)用軌跡表示為∑i,那么這臺主機(jī)的SORG 是一個(gè)有向圖G(Vi,Ei),其中:
(1)Vi是結(jié)點(diǎn)的集合,初始為空集;
(2)Ei是有向邊的集合,初始為空集;
(3)如果某個(gè)系統(tǒng)調(diào)用syscall ∈∑i,而rel 是表1中的系統(tǒng)調(diào)用之間的關(guān)系規(guī)則,和sink 都是操作系統(tǒng)的對象,可以是進(jìn)程、文件或套接字,那么
表1 系統(tǒng)調(diào)用關(guān)系規(guī)則
有了單個(gè)主機(jī)的系統(tǒng)對象關(guān)系圖,就可以構(gòu)建網(wǎng)絡(luò)的系統(tǒng)對象關(guān)系圖 (network system object relation graph,NSORG)。如定義2 所示,通過遞歸連 接per-h(huán)ost SORG 得到N-SORG。當(dāng)且僅當(dāng)來自兩個(gè)不同的per-h(huán)ost SORG 的兩個(gè)結(jié)點(diǎn)之間至少有一條邊存在時(shí),這兩個(gè)per-h(huán)ost SORG才能夠被連接在一起。
定義2 網(wǎng)絡(luò)的系統(tǒng)對象關(guān)系圖N-SORG。如果網(wǎng)絡(luò)中某臺主 機(jī) 的SORG 表 示 為G(Vi,Ei),那 么 這 個(gè) 網(wǎng) 絡(luò) 的SORG 表示為∪G(Vi,Ei),其中:
網(wǎng)絡(luò)的系統(tǒng)對象關(guān)系圖從本質(zhì)上講就是系統(tǒng)調(diào)用軌跡路徑的集合,網(wǎng)絡(luò)中可能的0day攻擊路徑就存在于這些路徑當(dāng)中。因此定義3中提出的入侵傳播路徑就作為候選的0day攻擊路徑。
定義3 入侵傳播路徑 (intrusion propagation paths,IPPs)。假設(shè)∪G (Vi,Ei)表示網(wǎng)絡(luò)的SORG,其中G(Vi,Ei)表示per-h(huán)ost SORG,那么IPPs是∪G (Vi,Ei)的一個(gè)子圖,表示為G (V′ ,E′) ,其中:
(1)V′是結(jié)點(diǎn)的集合,E′是有向邊的集合,且V′∪Vi,E′∪Ei;
(2)V′初始化只包含觸發(fā)節(jié)點(diǎn);
在定義3中,start和end分別表示一個(gè)系統(tǒng)調(diào)用被觸發(fā)和返回的時(shí)間點(diǎn)。IPPs是SORG 的一個(gè)子圖,IPPs中的系統(tǒng)對象都是 “可疑的”。假設(shè)給定一個(gè)觸發(fā)結(jié)點(diǎn)tn,這些可疑的結(jié)點(diǎn)通過直接或間接的依賴關(guān)系,或者在lat(tn)之前已經(jīng)影響了tn,或者在eat(tn)之后被tn 影響。觸發(fā)結(jié)點(diǎn)是SORG 中的系統(tǒng)對象,與系統(tǒng)調(diào)用有關(guān),可以通過snort、Tripwire等工具的掃描結(jié)果得出。
本文提出的基于系統(tǒng)調(diào)用的0day攻擊路徑檢測系統(tǒng)的框架,由4個(gè)部分組成:系統(tǒng)調(diào)用審查和過濾、SORG 圖生成、IPPs識別以及漏洞特征集合和漏洞指示函數(shù)。下面對這幾個(gè)組件進(jìn)行詳細(xì)論述。
該部分的主要功能是根據(jù)表1中定義的規(guī)則在每臺主機(jī)上執(zhí)行系統(tǒng)調(diào)用審查和過濾,然后把過濾后的系統(tǒng)調(diào)用信息發(fā)送至系統(tǒng)調(diào)用分析主機(jī)。在設(shè)計(jì)該部分時(shí)需要考慮以下兩點(diǎn)內(nèi)容:首先,為了防止丟失任何可能的入侵信息,在進(jìn)行系統(tǒng)調(diào)用審查時(shí)要涵蓋所有的進(jìn)程,而不能只包含某些特定的進(jìn)程。其次,系統(tǒng)調(diào)用審查需要在整個(gè)網(wǎng)絡(luò)范圍內(nèi)執(zhí)行,即網(wǎng)絡(luò)中所有的主機(jī)都需要被審查,而且在審查過程中需要記錄主機(jī)之間的通信信息。系統(tǒng)調(diào)用審查和過濾是用來識別0day攻擊路徑的基礎(chǔ),因此該部分的工作決定著本系統(tǒng)檢測結(jié)果的準(zhǔn)確性和可靠性。
另外,考慮到過多的過濾規(guī)則也可能會刪除掉那些與漏洞有關(guān)的系統(tǒng)對象,因此需要慎重使用過濾規(guī)則。
單個(gè)主機(jī)的系統(tǒng)調(diào)用用于構(gòu)建per-h(huán)ost SORG。把系統(tǒng)調(diào)用語法分析成文件、進(jìn)程或者套接字以及它們之間的依賴關(guān)系,SORG 中的結(jié)點(diǎn)由系統(tǒng)對象構(gòu)成,邊由系統(tǒng)對象之間的依賴關(guān)系構(gòu)成。本文根據(jù)文獻(xiàn) [15-17]確定系統(tǒng)調(diào)用之間的關(guān)系規(guī)則。除了關(guān)系規(guī)則,系統(tǒng)調(diào)用參數(shù)被用來唯一地命名SORG 中的結(jié)點(diǎn),并指出邊的方向。比如,依據(jù)規(guī)則,系統(tǒng)調(diào)用: “sys_open,start:470880,end:494338,pid:6707,pname:scp,pathname:/mnt/trojan,inode:9453574”轉(zhuǎn)換成 (6707,scp)← (/mnt/trojan,9453574),pid和pname用來識別進(jìn)程,而pathname和inode用來識別文件。
利用主機(jī)之間相互通信的信息構(gòu)建N-SORG。當(dāng)且僅當(dāng)來自兩個(gè)不同的per-h(huán)ost SORG 的兩個(gè)結(jié)點(diǎn)之間至少有一條邊存在時(shí),這兩個(gè)per-h(huán)ost SORG 才能夠被連接在一起。通常,per-h(huán)ost SORG 之間的通信是由基于套接字的通信構(gòu)成的。比如,系統(tǒng)調(diào)用 “sys_accept,start:681154,end: 681162, pid: 4935, pname: sshd, srcaddr:172.18.34.10,srcport:36036,sinkaddr:192.168.101.5,sinkport:22”導(dǎo) 致 一 條 有 向 邊 (172.18.34.10,36036)→ (192.168.101.5,22)。在這里一個(gè)端口被表示成為一個(gè)二元組 (ip,port)。
該部分是用來從N-SORG 中挖掘出IPPs。N-SORG 的特點(diǎn)在于,其內(nèi)部主機(jī)的前向和后向的系統(tǒng)調(diào)用軌跡能夠關(guān)聯(lián)網(wǎng)絡(luò)中的其它主機(jī)。如定義3所示,利用觸發(fā)結(jié)點(diǎn)作為開始結(jié)點(diǎn),系統(tǒng)調(diào)用軌跡能夠確定與觸發(fā)結(jié)點(diǎn)之間有直接或間接依賴關(guān)系的系統(tǒng)對象。因此,要想確定IPPs首先要確定觸發(fā)結(jié)點(diǎn)。觸發(fā)結(jié)點(diǎn)可以是那些以非正常方式刪除、增加或修改的文件,或者以非正常方式運(yùn)行的進(jìn)程。
觸發(fā)結(jié)點(diǎn)并不一定就是某個(gè)入侵的開始。在這種情況下,首先利用觸發(fā)結(jié)點(diǎn)執(zhí)行后向系統(tǒng)調(diào)用軌跡跟蹤尋找入侵的起始點(diǎn),然后再執(zhí)行前向跟蹤。后向跟蹤用來識別那些直接或間接影響到觸發(fā)結(jié)點(diǎn)的SORG 對象,而前向跟蹤用來識別被觸發(fā)結(jié)點(diǎn)影響的SORG 對象。
對于IPPs中的每個(gè)對象obj′,最晚和最早的訪問時(shí)間分別保存在lat(obj′)和eat(obj′)里面。在后向跟蹤的過程中,如果obj′依賴于SORG 中的另外一個(gè)對象obj,而這個(gè)依賴關(guān)系的時(shí)間戳start 比lat(obj′)要早,這就意味著obj 已經(jīng)影響到了obj′,因此obj 和obj′的依賴關(guān)系要添加在IPPs里面。類似地,在前向跟蹤里面,如果SORG 中的另外一個(gè)對象obj 依賴于obj′,而這種依賴關(guān)系的時(shí)間戳end 比eat(obj′)要晚,這就意味著obj 被obj′影響。同樣地,這個(gè)依賴關(guān)系也要添加到IPPs里面。
為了在IPPs中進(jìn)一步識別出0day攻擊路徑,本文利用定義4中提出的 “漏洞特征集合”和 “漏洞指示函數(shù)”來進(jìn)一步識別0day攻擊路徑。
由于漏洞通常會呈現(xiàn)出某些相似的特征,因此漏洞利用 (exploitations)在N-SORG 中也會呈現(xiàn)相似的特征。取代之前的研究直接刻畫漏洞特點(diǎn)的思想,本文提出了在OS層面上刻畫漏洞利用的特點(diǎn),即,利用之前已知漏洞利用的特征檢測未知的漏洞利用。
定義4 漏洞特征集合和漏洞指示函數(shù)一個(gè)漏洞特征集合是一個(gè)Cantor集合,表示為其中:
(1)v是一個(gè)已知或未知的漏洞,它的漏洞利用表示為SORG(v)。
(2).p.是S 的漏洞指示函數(shù),是一個(gè)布爾函數(shù):SORG(v){tru e,false} 。p =p1&p2&...&pn,(n 為自然數(shù)),對于1≤i≤n,pi預(yù)測SORG(v)中的結(jié)點(diǎn)或邊的屬性。& 表示邏輯 “與”操作。
(3)v∈S,當(dāng)且僅當(dāng)p(SORG(v))=true。
圖1是漏洞特征集合的一個(gè)例子,集合為bypassing mmap_min_addr,它的漏洞指示函數(shù)為node.name =page_zero&node.indegree >0&node.outdegree >0。這個(gè)漏洞指示函 數(shù)存在于CVE-2009-1895和CVE-2009-1897中,可 以 用 來 識 別CVE-2009-2692,CVE-2009-2695 和CVE-2009-2698等漏洞利用。
圖1 漏洞特征集合bypassing mmap_min_addr
如圖2所示,搭建實(shí)驗(yàn)環(huán)境評估本文提出的0day攻擊路徑檢測系統(tǒng)。本實(shí)驗(yàn)環(huán)境中安裝有防火墻,Nessus,Oval,Snort,Wireshark,Ntop以及Tripwire。為了生成0day攻擊路徑,攻擊者必須要利用未知的漏洞。然而,一個(gè)典型的0day攻擊在公布之前平均需要312天。由于缺乏0day漏洞資源,本文的策略是把當(dāng)前時(shí)間調(diào)整到一個(gè)歷史點(diǎn),利用當(dāng)前已經(jīng)公布的漏洞當(dāng)作歷史點(diǎn)之后未知的漏洞資源。
圖2 實(shí)驗(yàn)環(huán)境
此攻擊 場 景 中 所 有 的 漏 洞,只 有CVE-2008-0166 被Snort檢測出來,因此無法識別出其中隱藏的兩條0day攻擊路徑p1 {CVE-2008-0166,NFS misconfiguration,CVE-2009-2692}和p2 {CVE-2008-0166,NFS misconfiguration,CVE-2011-4089}。然 而,利 用 從Snort 警 報(bào) 中 觀 察 出 的SSH 端口作為觸發(fā)結(jié)點(diǎn),所提0day攻擊路徑檢測系統(tǒng)成功在OS層面識別出了p1和p2。利用NVD 中的CVE記錄和相應(yīng)的漏洞庫文件,證實(shí)了p1和p2的正確性。
本文同時(shí)評估了漏洞指示函數(shù)的誤報(bào)率情況。針對實(shí)驗(yàn)中的各種應(yīng)用和服務(wù),維持檢測系統(tǒng)持續(xù)工作72個(gè)小時(shí)。結(jié)果表明漏洞指示函數(shù)的誤報(bào)率情況與特定的指 示 函 數(shù) 相 關(guān),比 如,bypassing mmap_min_addr 和symlinkinconsistency 指示函數(shù)檢查出是0 個(gè)誤報(bào),然而brute-force attack 指示函數(shù)檢查的誤報(bào)率與參數(shù)設(shè)置和主機(jī)的負(fù)載有關(guān)。這個(gè)誤報(bào)率在一定范圍內(nèi)是可以允許的。
表2總結(jié)了SODG 的生成時(shí)間受到系統(tǒng)調(diào)用過濾的提前處理的影響情況。結(jié)果顯示了未經(jīng)過濾的數(shù)據(jù)比已經(jīng)過濾的數(shù)據(jù)會消耗更多的時(shí)間。最壞情況下是SSH 服務(wù)器的未經(jīng)過濾的SODG 的生成時(shí)間,花費(fèi)了約半個(gè)小時(shí)。費(fèi)用主要是來自在添加新對象之前,算法需要檢查每個(gè)現(xiàn)有的對象從而避免重復(fù)。當(dāng)系統(tǒng)對象的數(shù)目達(dá)到非常高的時(shí)候,比如15799 個(gè)系統(tǒng)對象,時(shí)間費(fèi)用上升得非???。
表2 SODG 的性能代價(jià)對比
本文設(shè)計(jì)的基于系統(tǒng)調(diào)用的0day攻擊路徑檢測系統(tǒng),取代前人通過收集漏洞或警報(bào)關(guān)聯(lián)成攻擊路徑的方法,利用系統(tǒng)調(diào)用軌跡識別0day攻擊路徑,該方法首先根據(jù)定義的語法規(guī)則,利用系統(tǒng)調(diào)用軌跡構(gòu)造網(wǎng)絡(luò)系統(tǒng)對象關(guān)系圖,然后從網(wǎng)絡(luò)系統(tǒng)對象關(guān)系圖中識別出可疑的入侵傳播路徑,最后識別出0day攻擊路徑,解決了傳統(tǒng)方法無法反映未知漏洞之間的關(guān)系、誤報(bào)率和漏報(bào)率高等問題。實(shí)驗(yàn)結(jié)果表明,該0day攻擊路徑檢測系統(tǒng)能夠準(zhǔn)確地檢測出網(wǎng)絡(luò)中存在的0day攻擊路徑,有效地降低漏報(bào)和誤報(bào)率。
[1]Wang Lingyu,Sushil Jajodia,Anoop Singhal,et al.K-Zero day safety:A network security metric for measuring the risk of unknown vulnerabilities[J].IEEE Transactions on Dependable and Secure Computing,2013,11 (1):30-44
[2]Albanese M,Jajodia S,Singhal A,et al.An efficient approach to assessing the risk of zero-day vulnerabilities [C]//Proceedings of the 10th International Conference on Security and Cryptography,2013:29-41
[3]Chu M,Ingols K,Lippmann R,et al.Visualizing attack graphs,reachability,and trust relationships with NAVIGATOR [C]//Proceedings of the Seventh International Symposium on Visualization for Cyber Security.New York:ACM,2010:22-33.
[4]CUI Ying,ZHANG Lijuan,WU Hao,et al.Automatic generation method for penetration test programs based on attack graph [J].Journal of Computer Applications,2010,30 (8):2146-2150 (in Chinese).[崔穎,章麗娟,吳灝,等.基于攻擊圖的滲透測試方案自動生成方法 [J].計(jì)算機(jī)應(yīng)用,2010,30 (8):2146-2150.].
[5]Abramov E,Andreev AV,Mordvin DV,et al.Corporate networks security evaluation based on attack graphs [C]//Proceedings of the 4th International Conference on Security of Information and Networks.New York:ACM,2011:29-36.
[6]Lin H,Slagell A,Di Martino C,et al.Adapting Bro into SCADA:building a specification-based intrusion detection system for the DNP3protocol[C]//Proceedings of the Eighth Annual Cyber Security and Information Intelligence Research Workshop.New York:ACM,2013:345-352.
[7]Antunes N,Vieira M.Enhancing penetration testing with attack signatures and interface monitoring for the detection of injection vulnerabilities in web services[C]//Proceedings of the IEEE International Conference on Services Computing,2011:104-111.
[8]McClure S.Hacking exposed:Network security secrets and solutions[M].New York:Computing Mcgraw-Hill,2009:235-342.
[9]Khalid Alsubhi,Issam Aib,Raouf Boutaba.FuzMet:A fuzzylogic based alert prioritization engine for intrusion detection systems [J].International Journal of Network Management,2012,22 (4):263-284.
[10]Vikram Kumaran.Event stream database based architecture to detect network intrusion (industry article)[C]//Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems.New York:ACM,2013:241-248.
[11]Joseph R Erskine,Gilbert L Peterson,Barry E Mullins,et al.Developing cyberspace data understanding:Using CRISPDM for host-based IDS feature mining [C]//Proceedings of the Sixth Annual Workshop on Cyber Security and Information Intelligence Research.New York:ACM,2010:76-83.
[12]YU Xiaodi,Nurbol,HU Liang,et al.An intrusion alert correlation model based on data mining [J].Journal of Jilin University (Science Edition),2013,51 (5):881-886 (in Chinese).[于瀟菂,努爾布力,胡亮,等.一種基于數(shù)據(jù)挖掘的多步入侵警報(bào)關(guān)聯(lián)模型 [J].吉林大學(xué)學(xué)報(bào) (理學(xué)版),2013,51 (5):881-886.]
[13]Christopher T Symons,Justin M Beaver.Nonparametric semi-supervised learning for network intrusion detection:Combining performance improvements with realistic in-situ training [C]//Proceedings of the 5th ACM Workshop on Security and Artificial Intelligence.New York:ACM,2012:49-58.
[14]LI Zhihui,WANG Qing,SHAO Chunyan,et al.Research of system call based intrusion detection [J].Computer Engineering and Applications,2012,48 (6):86-89 (in Chinese).[李智慧,王晴,邵春艷,等.基于LZW 算法和貝葉斯MARS的入侵檢測研究 [J].計(jì)算機(jī)工程與應(yīng)用,2012,48 (6):86-89.]
[15]Jason S Alexander,Thomas Dean,Scott Knight.Spy vs.Spy:Counterintelligence methods for backtracking malicious intrusions[C]//Proceedings of the Conference of the Center for Advanced Studies on Collaborative Research.New York:IBM Corp,Riverton,2011:1-14.
[16]Xiong Xi,Jia Xiaoqi,Liu Peng.SHELF:Preserving business continuity and availability in an intrusion recovery system[C]//Peiking:Computer Security Applications Conference,2009:7-11.
[17]Taesoo Kim,Ramesh Chandra,Nickolai Zeldovich.Efficient patch-based auditing for web application vulnerabilities[C]//Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation,2012:193-206.