◆馮冰彬 王 娟
?
網站漏洞挖掘與安全評估技術綜述
◆馮冰彬 王 娟
(成都信息工程大學網絡空間安全學院 四川 610225)
網站本身的漏洞會導致商業機密、個人隱私的泄露,進而造成一系列嚴重影響。因此,針對網站的漏洞挖掘與安全評估技術受到越來越多的關注,具有很強的實用價值。本文首先綜述了常見的網站漏洞及其防護技術,進而綜述了漏洞挖掘的相關技術,包括掃描、二進制比對、數據挖掘等等。最后,綜述了網站安全評估技術,特別是基于漏洞挖掘的評估技術,通過對不同漏洞的威脅進行評價,給出網站整體的安全評估結果和防護建議。
漏洞挖掘;安全評估;數據挖掘;二進制比對
近年來,安全事件層出不窮。網站安全已成為全世界面臨的主要問題之一,而網站漏洞又是威脅網絡安全最重要的因素之一。據中國信息安全測評中心國內外信息安全漏洞態勢報告,漏洞數量增長趨勢依舊持續。
網站存在漏洞,易被攻擊者植入木馬、病毒等,對網站的安全性能、用戶的隱私、數據及財產安全造成威脅。因此,對漏洞挖掘技術的研究,有利于研究者挖掘出更多的漏洞,及時對漏洞進行打補丁,減少被攻擊率。網絡安全風險評估,使得管理人員了解網絡安全現狀,有針對地采取安全措施,提高網絡安全水平,將風險控制在可接受的范圍。為了保護網站安全,發現網站漏洞,提出解決方案,及時對網站進行加固,對網站安全進行總體評估具有現實價值和理論意義。
本文從漏洞的種類出發分別介紹了其各自的危害及防護技術。進而簡要介紹了目前的網站安全評估技術,為依據漏洞評估網站風險打下基礎。
常見的網絡威脅種類包括操作系統的漏洞,服務器的漏洞,Web應用的漏洞等。
操作系統漏洞是指計算機操作系統本身所存在的問題或技術缺陷。目前大眾普遍使用的操作系統為微軟的Windows操作系統。
Windows操作系統出現漏洞,某些是由于軟件設計失誤而產生,而另一些則由于用戶設置不當所引發。文獻[1]針對以上兩種不同的錯誤采用了以下兩種不同的方式加以解決:
(1)設計錯誤:及時下載微軟推出的相應補丁程序,并安裝;
(2)設置錯誤:用戶則應及時修改配置。
Web服務器在運行過程中,時刻受到各種安全威脅,包括利用IIS攻擊、SQL注入、拒絕服務等。
Web服務器上存在的漏洞包括以下幾種常見形式:
(1)Web服務器因各種原因無法完成用戶的訪問請求;
(2)公共網關接口安全方面存在的漏洞;
(3)遠程用戶向服務器發送信息時,如用戶賬號、密碼等重要信息,傳輸過程中遭受不法分子的攔截。
針對以上Web服務器存在的安全問題,文獻[2]詳細介紹了Web服務器的防護技術,包括:防篡改網頁技術、密碼安全、反向代理、蜜罐技術、設置IP訪問限制、加強客戶端管理。
OWASP(開放式Web應用程序安全項目)組織每年都會公布TOP10 Web應用程序安全風險漏洞。其中,注入和失效的身份認證和會話管理是Web應用程序中兩大高危漏洞。
(1)注入
幾乎任何數據源都能成為注入載體,包括用戶、參數、外部和內部Web服務。當攻擊者向解釋器發送惡意數據時,注入漏洞就產生。注入能導致數據丟失或數據破壞、缺乏可審計性或是拒絕服務。注入漏洞有時甚至能導致完全主機接管。
為了防止注入漏洞,需要將數據與命令語句、查詢語句分隔開來。最佳選擇是使用安全的API,完全避免使用解釋器,或提供參數化界面的接口,或遷移到ORM或實體框架。使用正面的或“白名單”的具有恰當的規范化的輸入驗證方法同樣會有助于防止注入攻擊。對于任何剩余的動態查詢,可以使用該解釋器的特定轉義語法轉義特殊字符。
(2)失效的身份認證和會話管理
大多數身份和訪問管理系統的設計和實現,普遍存在身份認證失效問題。攻擊者可以使用手動方式檢測失效的身份驗證,通常會關注密碼轉儲,或者在類似于釣魚攻擊之后,發現失效的身份認證。
為了防止失效的身份認證和會話管理攻擊,可以采取以下措施:
①使用非過時的哈希技術來存儲密碼;
②執行弱密碼檢查;
③在盡可能的地方,實現多因素身份驗證;
④當憑證填充、蠻力和其他攻擊被檢測到,日志記錄身份驗證失敗并警告管理員。
掃描通常是進行漏洞挖掘前的一個步驟。Web漏洞掃描技術包括端口掃描、主機掃描、操作系統指紋識別掃描等[3],是一種比較有效的主動防御技術[4]。通過掃描端口、主機及操作系統,可以得到很多有價值的信息,利用這些信息進一步推斷出可能存在的安全風險。網絡爬蟲是可以自動抓取互聯網信息的程序。其主要目的是將互聯網上的網頁下載到本地進行鏡像以備進一步分析處理[3]。掃描和網絡爬蟲都只是挖掘漏洞的一個步驟,獲取一些有價值的信息幫助研究者加以分析,但是它們都無法直接掃描到漏洞,需要配合使用其他的技術或者利用插件對網站的漏洞進行挖掘。
文獻[3]采用網絡爬蟲技術對爬取下來的數據進行分析,提取出內容與漏洞利用代碼片段或證明漏洞存在的代碼片段進行比對,判斷網站是否存在漏洞。文獻[5]使用端口掃描技術,實現了一個基于網絡的以端口掃描模塊和爬蟲模塊為核心的漏洞掃描系統。文獻[6]將傳統的網絡漏洞掃描技術與Web指紋技術結合在一起使用,采用Wapplyzer技術提取Web應用指紋特征,再使用歐氏距離KMN算法匹配指紋數據庫的指紋數據,實現了一個Web應用程序漏洞掃描系統。
以上文獻中所提系統在實驗中均被證明了其可行性,但是它們掃描漏洞的效率和精確度不高。還需要改進更加優化的算法以提高系統對漏洞的掃描效率和精確度,改善插件技術以掃描出更多的漏洞,尤其是新型漏洞。
二進制比對技術[7]可稱為補丁比對技術,它主要是被用以挖掘“已知”的漏洞,因此在一定意義上也可被認為是一種漏洞分析技術。由于不知道漏洞的確切位置和成因,因此需要通過比較補丁前后的二進制文件以確定漏洞的位置和成因。
補丁比對技術有很多,簡單的比較方法有二進制字節比較和二進制文件反匯編后的文本比較[7]。文獻[8]提出一種基于補丁比對和靜態污點分析的漏洞定位方法,該方法通過分析大量開源軟件的緩沖區溢出錯誤的實例,提取6種緩沖區錯誤的漏洞定位模型,通過將補丁比對和污點傳播的結合,生成污點傳播路徑圖,將補丁源碼的污點傳播路徑圖與定位模型匹配以定位某小塊代碼,采用污點查找精確定位漏洞所在行。
目前在二進制漏洞問題上,很多研究者只是簡單的對某些可執行文件進行二進制漏洞挖掘,而且還是主要停留在挖掘緩沖區溢出、整數溢出這些常見的漏洞挖掘技術上,對那些少見的或未知的漏洞并未進行研究,也未實現自動化及提出相關漏洞解決方案。
數據挖掘[9]是指從大量數據中提取知識。數據挖掘包括很多數據前期處理,用爬蟲爬取數據,然后做數據的清洗,數據的整合,數據有效性檢測,數據可視化等,最后用一些統計的或者機器學習的算法來抽取某些有用的“知識”。文獻[10]基于數據挖掘技術,運用Apriori算法進行漏洞與軟件之間的關聯分析,運用ARTrp和ARIMA時序算法對漏洞出現規律進行預測,采用BI Dev Studio建立挖掘結構和挖掘模型,針對Secuma安全漏洞庫中的漏洞數據,實驗得到了一組描述漏洞與軟件之間存在關系的關聯規則,以及漏洞數量的時序預測值。文獻[11]通過對網站利用特征選擇、數據挖掘、數據分析和統計技術的方法進行在線異常行為分析來檢測任何惡意代碼或已遭受Web注入攻擊的頁面,以克服網站的脆弱性。文獻[12]使用混合的方法來檢測更少誤報的漏洞,在使用污點分析來標記候選漏洞的初始步驟之后,再使用數據挖掘來預測誤報的存在。
因此,在網站漏洞挖掘過程中,可以使用數據挖掘的方法來分析,識別出某些威脅、欺詐、入侵、異常行為和無效的數據等。
網絡安全風險評估,使得管理人員了解網絡安全現狀,有針對地采取安全措施,可以將風險控制在可接受的范圍。網絡安全評估通常是綜合考慮資產、威脅、脆弱性三個方面的因素進行評估。
常用的網絡安全評估方法可以分為三大類:定性評估方法、定量評估方法和綜合評估方法。文獻[13]將定性和定量兩種評估方法結合了起來,采用了綜合評估方法,建立了一個基于CC標準和多層線性加權綜合評判的網絡安全評估模型,該算法通過確定權重集及指標綜合計算,計算出某單位內部綜合信息網的安全等級為3級,驗證了該評估模型的合理性。有的研究者利用神經網絡的適應性比較強的優點將神經網絡應用在網絡安全評估上,如文獻[14]在BP神經網絡算法[15]的基礎上利用遺傳算法對計算機網絡安全評價的仿真模型進行改進,對GABP神經網絡算法在計算機網絡安全評價方面的應用進行了深入的研究。文獻[16]先計算出每個漏洞占漏洞數據庫模塊內保存的若干漏洞總數中的分數,再根據漏洞數據庫模塊中的規則,調用相應的測試函數對需要評估的網站域名下的所有網頁進行模擬攻擊,最后根據漏洞的個數得出網站安全風險評估的分數,以實現對網站安全風險的評估。除此之外,網絡掃描技術也是最常用的技術手段,是一種主動出擊的網絡風險評估技術[17]。
有的研究者還提出基于漏洞挖掘的評估技術。如文獻[18]根據漏洞評估值的分布函數來計算未來可能發現的漏洞概率,提出了基于概率的漏發風險評估值誤差減少算法。文獻[19]對主機基本信息進行探測,通過規則匹配發現系統的脆弱性信息,從而進行綜合評估。文獻[20]在通用脆弱點評分系統基礎上進行改進,設計了一種更具多樣性且更能反映實際情況的脆弱點評分方法。該方法由分析后得出的一系列實際系統約束規則出發,使用最優脆弱點評分權值組合搜索算法和基于信息熵的權值組合選擇算法,聯合確定目標網絡的最優脆弱點評分權值組合,最終實現對脆弱點的最優評分。現階段,我國的網絡安全防護技術包括數據包的過濾技術分析、應用網關技術分析、狀態檢測技術分析。
綜上,可以通過對主機掃描,操作系統的識別,服務器漏洞的挖掘及網站漏洞的挖掘,再對挖掘出的主機端、操作系統端、服務器端及Web應用可能出現的漏洞的危險級別進行總體評價,進而使用各種綜合評估方法對網絡的安全性進行評估以了解網絡安全現狀,有針對地采取安全措施,將風險控制在可接受的范圍。
漏洞分析本身是一項較為復雜的課題,國際上的研究歷史并不長,國內的相關研究工作也才剛剛起步。目前針對網站漏洞挖掘已開發出各種工具,但是這些工具都只是單一地針對主機的漏洞、操作系統的漏洞或者服務器的漏洞,并未實現集成化。很多研究者設計的系統只實現了部分自動化,對掃描出的可能漏洞未進行網站安全等級評估,也未提出相應漏洞解決方案。在二進制領域的挖掘,還存在挖掘步驟復雜、準確率低,需要大量人工參與,自動化程度低。如何實現二進制漏洞的自動化挖掘,改進其算法是未來的研究方向。另外,研究漏洞特別是新型漏洞對網站的安全威脅,提出一個基于漏洞發現的網絡安全評估算法是未來需要解決的難題之一。最后,現有手段重掃描輕修補,漏洞修補建議未充分參考軟件系統自身的特性,因此,根據軟件系統自身的特性提出漏洞修補建議是未來研究方向之一。
[1]韓秀芹.操作系統漏洞分析與防范[J].中國石油和化工, 2011.
[2]孫也.Web服務器安全防護技術分析與探討[J].科技傳播, 2015.
[3]趙星.Web漏洞挖掘與安全防護研究[D].中北大學, 2016.
[4]尹彥濤.Web漏洞掃描系統設計與實現[D].中國海洋大學,2014.
[5]Xiao Y, Yang H, Lin N, et al. Research and Design of Network Version Vulnerability Scanning System Based on WEB[J],2017(aiea).
[6]He H, Chen L, Guo W. Research on Web Application Vulnerability Scanning System based on Fingerprint Feature[C]// International Conference on Mechanical, Electronic, Control and Automation Engineering,2017.
[7]遲強,羅紅,喬向東.漏洞挖掘分析技術綜述[J].計算機與信息技術,2009.
[8]達小文,毛俐旻,吳明杰等.一種基于補丁比對和靜態污點分析的漏洞定位技術研究[J].信息網絡安全,2017.
[9]Ghaffarian S M, Shahriari H R. Software Vulnerability Analysis and Discovery Using Machine-Learning and Data-Mining Techniques: A Survey[J]. Acm Computing Surveys,2017.
[10]張雪芹,徐金瑜,張建軍等.基于數據挖掘技術的信息安全漏洞預警[C].信息安全漏洞分析與風險評估大會,2012.
[11]Satam P, Kelly D, Hariri S. Anomaly behavior analysis of website vulnerability and security[C]// Computer Systems and Applications. IEEE,2017.
[12]Ibéria Medeiros, Neves N F, Correia M. Automatic detection and correction of web application vulnerabilities using data mining to predict false positives[C]// International Conference on World Wide Web,2014.
[13]關卿,楊鸞,陰東鋒.網絡安全評估研究[J].計算機與網絡,2012.
[14]溫斯琴,王彪.基于神經網絡的計算機網絡安全評價仿真模型[J].現代電子技術,2017.
[15]郭強.神經網絡在計算機網絡安全評價中的應用研究[J].佳木斯職業學院學報,2017.
[16]鄭美惠. 網站安全風險評估系統: CN106330954A[P],2017.
[17]李非.探討網絡安全風險評估關鍵技術的應用[J].網絡安全技術與應用,2017.
[18]王娜.基于漏洞掃描的脆弱性評估系統研究與設計[D].合肥工業大學,2013.
[19]于毅.基于漏洞掃描的系統脆弱性評估研究[D].西安電子科技大學,2008.
[20]周誠,李偉偉,莫璇等.一種網絡安全脆弱性評估方法[J].江蘇大學學報(自然科學版),2017.