郭 強(qiáng) 孟占永 任江偉 韓躍龍
(鄭州大學(xué)西亞斯國際學(xué)院 網(wǎng)絡(luò)管理中心,河南 新鄭 451150)
隨著互聯(lián)網(wǎng)的發(fā)展,Web 應(yīng)用系統(tǒng)在功能和性能上日益完善,能夠給客戶提供更加快捷和方便的服務(wù)。 同時,由于網(wǎng)絡(luò)技術(shù)日趨成熟,Web 應(yīng)用系統(tǒng)也面臨著更多的安全威脅,黑客的攻擊方式逐步從對網(wǎng)絡(luò)服務(wù)器的攻擊轉(zhuǎn)變?yōu)閷eb 應(yīng)用的攻擊。然而,人們的注意力大多集中在網(wǎng)絡(luò)和服務(wù)器的安全上,對Web應(yīng)用本身的安全關(guān)注較少,導(dǎo)致大量的應(yīng)用遭到非法攻擊。
據(jù)CNCERT/CC 監(jiān)測[1],2013年被篡改的網(wǎng)站數(shù)量為24 034 個,較2012年大幅增長46.7%。 被植入網(wǎng)站后門的有76 160 個,較2012年大幅長增長46%。 2013年新增收錄信息系統(tǒng)安全漏洞7 854 個,較2012年收錄數(shù)量增長15%。 網(wǎng)站篡改、后門攻擊、信息系統(tǒng)漏洞呈逐年上升的趨勢。 網(wǎng)站安全尤其是網(wǎng)站中用戶個人信息和數(shù)據(jù)的安全問題,仍然面臨嚴(yán)重威脅。
造成應(yīng)用軟件安全問題的原因可以歸類為四種[2]:內(nèi)因、外因、外部環(huán)境、內(nèi)部環(huán)境。
這主要是軟件本身的安全問題, 引起安全問題的原因如下:(1)開發(fā)人員對安全問題不夠重視;(2)開發(fā)人員的能力有限;(3)安全漏洞增加的速度過快,工作人員應(yīng)接不暇;(4)對于某些已投入使用的應(yīng)用系統(tǒng),由于其更改難度大,或者更改的成本高,或版權(quán)等原因造成無法更改。
軟件的運(yùn)行環(huán)境,主要指網(wǎng)絡(luò)和其它基礎(chǔ)設(shè)施方面的安全問題。
黑客、惡意代碼等網(wǎng)絡(luò)攻擊行為增加了應(yīng)用軟件受到安全威脅的可能。
用戶的安全防范意識淡薄、 用戶本身的網(wǎng)絡(luò)技術(shù)水平較低、誤操作、報復(fù)、經(jīng)濟(jì)犯罪等使得運(yùn)行在企業(yè)內(nèi)網(wǎng)的應(yīng)用軟件也面臨嚴(yán)重的安全風(fēng)險。
由上述可知,Web 安全是各種因素的綜合體, 沒有絕對安全的安全防護(hù)措施。 我們在考慮Web 安全的時候,要綜合考慮上述的四個方面,任何一方面的漏洞,均有可能對Web 應(yīng)用造成安全威脅。
隨著軟硬件技術(shù)的發(fā)展,以及網(wǎng)絡(luò)攻擊者技術(shù)水平的不斷提高,安全問題的數(shù)量呈上升趨勢,但是大多數(shù)的問題主要集中在某幾個方面。OWASP(Open Web Application Security Project)發(fā)布了2013年十大Web 應(yīng)用安全漏洞,具體內(nèi)容如下[4]。
注入包括SQL、操作系統(tǒng)和LDAP 注入。該問題主要發(fā)生在不可信的數(shù)據(jù)作為命令或者查詢語句的一部分被發(fā)送給解釋器的情況下,攻擊者發(fā)送的惡意數(shù)據(jù)可以欺騙解釋器,以執(zhí)行破壞性的命令或者訪問未授權(quán)的數(shù)據(jù)。
與鑒別和會話管理有關(guān)的應(yīng)用功能通常不能被正確執(zhí)行,這就導(dǎo)致攻擊者破壞密碼、密鑰或會話令牌,或者利用應(yīng)用上的瑕疵來假裝成其他用戶。
應(yīng)用程序收到不可信的數(shù)據(jù),在沒有進(jìn)行適當(dāng)驗證和轉(zhuǎn)義的情況下就將它發(fā)送給瀏覽器。 攻擊者可以利用XSS 在受害者的瀏覽器上執(zhí)行腳本,從而劫持會話、危害站點或者將用戶轉(zhuǎn)向惡意網(wǎng)站,從而發(fā)動安全攻擊。
當(dāng)開發(fā)人員暴露一個對內(nèi)部實現(xiàn)對象(文件、目錄、數(shù)據(jù)庫密鑰等)的引用時,就會產(chǎn)生一個不安全的直接對象引用。 在沒有訪問控制檢測或其他保護(hù)的情況下, 攻擊者就會操控或利用這些對象去訪問未授權(quán)數(shù)據(jù)。
一般對應(yīng)用程序、框架、應(yīng)用服務(wù)器、Web 服務(wù)器、數(shù)據(jù)庫服務(wù)器定義和執(zhí)行安全配置,以提高安全性。 由于許多設(shè)置的默認(rèn)值并不是安全的,因此就必須定義、實施和維護(hù)所有這些設(shè)置以確保安全性。
許多網(wǎng)絡(luò)應(yīng)用沒有恰當(dāng)?shù)乇Wo(hù)好敏感數(shù)據(jù), 比如信用卡、稅收ID 以及認(rèn)證憑證。 攻擊者可能竊取或者修改這些保護(hù)力度較弱的數(shù)據(jù)進(jìn)行信用卡詐騙、身份盜用或者其他犯罪。 應(yīng)當(dāng)對敏感數(shù)據(jù)進(jìn)行額外的保護(hù), 比如加密或者與瀏覽器交互時進(jìn)行特殊的預(yù)防。
在UI 界面上獲取某種功能時, 大多數(shù)Web 應(yīng)用驗證函數(shù)級訪問權(quán)限。 然而,當(dāng)每個函數(shù)都是可訪問的時候,服務(wù)器上的多個應(yīng)用都要執(zhí)行同樣的訪問控制檢查, 如果沒有對請求進(jìn)行驗證,在沒有適當(dāng)授權(quán)的情況下,攻擊者就能偽造請求來進(jìn)行某種功能訪問。
迫使登錄用戶的瀏覽器將偽造的HTTP 請求, 包括該用戶的會話cookie 和其他認(rèn)證信息,發(fā)送到一個存在漏洞的Web 應(yīng)用程序。
組件,比如圖書館、框架或者其他軟件模塊,通常幾乎是以完整權(quán)限運(yùn)行的。 如果一個易受攻擊的組件被利用,這種攻擊將會造成敏感數(shù)據(jù)丟失和服務(wù)器被接管。 采用具有已知缺陷組件的應(yīng)用可能破壞應(yīng)用的防御功能并且造成一系列的可能攻擊和沖突。
Web 應(yīng)用程序經(jīng)常將用戶重定向和轉(zhuǎn)發(fā)到其它網(wǎng)站和頁面,并且利用不可信的數(shù)據(jù)去判定目的頁面。 如果沒有得到適當(dāng)驗證,攻擊者可以重定向受害用戶到釣魚軟件或惡意網(wǎng)站,或者使用轉(zhuǎn)發(fā)去訪問未授權(quán)的頁面。
目前有不少不錯的安全評估工具, 比如IBMRational AppScan、HP WebInspect、 明鑒Web 應(yīng)用弱點掃描器(MatriXay WebScan)、NSFOCUS WVSS、安域領(lǐng)創(chuàng)WebRavor、諾賽科技Jsky/Pangolin 等, 借助這些安全評估工具可以對Web 應(yīng)用進(jìn)行安全掃描,幫助用戶檢測出安全漏洞。 同時,這些評估工具還可以給出防范措施,便于用戶對安全漏洞進(jìn)行防護(hù)。下面對幾種安全監(jiān)測工具進(jìn)行介紹,對其功能進(jìn)行對比。
具有“取證式”的掃描功能和安全審計、滲透測試和網(wǎng)頁木馬檢測功能,提供漏洞分析、修復(fù)、報表,全面支持OWASP TOP 10 檢測。
NSFOCUS WVSS 可以對門戶網(wǎng)站、電子商務(wù)、網(wǎng)上營業(yè)廳等各種Web 應(yīng)用系統(tǒng)進(jìn)行安全檢測, 檢測的漏洞覆蓋了OWASPTop10 和WASC 分類。NSFOCUS WVSS 基于Web 的管理方式,采用模塊化設(shè)計和嵌入式系統(tǒng),通過內(nèi)核級修改實現(xiàn)了多任務(wù)、多線程、數(shù)據(jù)存儲、數(shù)據(jù)訪問等多方面的優(yōu)化,與第三方平臺產(chǎn)品相比,該系統(tǒng)擁有更好的穩(wěn)定性和安全性[5]。
采用.NET 架構(gòu),自動化爬取WEB 頁面,然后對這些頁面進(jìn)行滲透式攻擊,發(fā)現(xiàn)所有已知的安全漏洞,提供中英文的漏洞解釋說明、問題的詳細(xì)描述、各個角色的修改建議。
借助于安全監(jiān)測工具, 我們可以解決一些典型的安全問題,但這不是解決安全問題的根本方法。 工具檢測只能算是一種輔助手段,我們應(yīng)當(dāng)在思想上重視Web 應(yīng)用的安全問題,并在不同的開發(fā)階段采用行之有效的措施來避免安全問題的出現(xiàn)。
[1]http://www.isc.org.cn/download/2014fdf.pdf.
[2]王國青.淺析Web 應(yīng)用軟件開發(fā)安全[J].計算機(jī)系統(tǒng)應(yīng)用,2013,22(2):5-9.
[3]周亮.基于PDM 的協(xié)同設(shè)計系統(tǒng)的研究與開發(fā)[D].廊坊:河北工業(yè)大學(xué),2005.
[4]https://www.owasp.org/index.php/Top_10_2013-Top_10.