Web應(yīng)用安全的5大威脅與7大防護措施
由于極其容易出現(xiàn)漏洞、并引發(fā)安全事故,因此數(shù)據(jù)隱私的保護是目前絕大多數(shù)企業(yè)不可繞過的運維環(huán)節(jié)。不過,許多中小型企業(yè)往往會錯誤地認為只有大型企業(yè)才會成為黑客的目標。而實際統(tǒng)計數(shù)字卻截然不同:有43%的網(wǎng)絡(luò)犯罪恰恰是針對小型企業(yè)的。而且,無論是系統(tǒng)陳舊且未給漏洞打上安全補丁,還是各種惡意軟件,甚至是一些人為的錯誤,都可以成為系統(tǒng)的受攻擊面。
如果仔細觀察當前的網(wǎng)絡(luò)威脅態(tài)勢,會驚訝地發(fā)現(xiàn),90%的Web應(yīng)用都可能成為攻擊者的潛在目標。因此,為了讓應(yīng)用程序和數(shù)據(jù)資產(chǎn)免受威脅,各大在線社區(qū)努力制定了各種安全標準和優(yōu)秀實踐,并以免費的文檔、方法、工具等形式,協(xié)助企業(yè)通過對照實施,來增強其IT環(huán)境的安全態(tài)勢。
僅在2020年上半年間,企業(yè)數(shù)據(jù)的泄露量已累計高達360億條記錄。86%的網(wǎng)絡(luò)安全泄漏是出于經(jīng)濟目的,而有10%是源于間諜活動。從分類來看,有45%的泄漏源于黑客攻擊,17%源于惡意軟件,22%與網(wǎng)絡(luò)釣魚有關(guān)。許多金融企業(yè)會讓員工不受限地訪問各類文檔資源,他們甚至可以訪問到本企業(yè)內(nèi)部大約17%的敏感文件(約1100萬個文件)。
平均而言,只有5%的公司文件夾受到了適當?shù)谋Wo。而且,有超過77%的企業(yè)并無事件響應(yīng)計劃??梢?,針對上述威脅,我們應(yīng)采取主動的Web安全策略,以及嚴格的措施,來確保敏感的數(shù)據(jù)信息、Web應(yīng)用、以及信息系統(tǒng)等資產(chǎn),免受攻擊與侵害。下面是五種最主要的Web應(yīng)用安全威脅,以及七種行之有效的防護措施與實踐。
五大威脅:
1.注入漏洞
注入漏洞會讓攻擊者方便將惡意代碼植入到目標應(yīng)用系統(tǒng)(如,解析器)中。簡而言之,如果您的Web應(yīng)用允許用戶將其輸入的信息插入后端數(shù)據(jù)庫,或使用shell命令對操作系統(tǒng)進行調(diào)用,那么您的應(yīng)用就可能會受到注入漏洞的影響。
當然,您可以通過檢查應(yīng)用的源代碼,或?qū)?yīng)用進行徹底的滲透測試,來發(fā)現(xiàn)此類漏洞。注入漏洞最常見的類型是SQL注入。攻擊者會在SQL查詢中,插入惡意代碼,并將其轉(zhuǎn)發(fā)到后端數(shù)據(jù)庫服務(wù)器上,實施遠程盜竊或攻擊。
除常見的SQL注入之外,目前還有LDAP注入、XML注入、XPATH注入、OS命令注入、以及HTML注入。我們通??梢酝ㄟ^適當、及時地檢查與清理用戶的輸入,來防范此類威脅。
2.身份驗證失敗
身份驗證失敗是由身份驗證和會話管理控件的實施不當而引起的。如果攻擊者能夠成功地識別和利用那些與身份驗證相關(guān)的漏洞,那么他們就能直接訪問到各種敏感數(shù)據(jù)和功能。
為了利用身份驗證漏洞,攻擊者需要通過采用諸如:憑證填充、會話劫持、密碼暴力破解、以及會話ID URL重寫等方法,來模擬應(yīng)用程序的合法用戶。
我們可以通過實施健全的會話管理控制、多因素身份驗證、限制和監(jiān)視失敗的登錄嘗試,來防范此類攻擊。
3.敏感數(shù)據(jù)泄漏
當Web應(yīng)用不能充分保護諸如:會話ID、密碼、財務(wù)信息、以及客戶數(shù)據(jù)等敏感信息時,數(shù)據(jù)泄露就會發(fā)生。
此類泄漏的內(nèi)部原因主要包括:未對敏感數(shù)據(jù)實施加密,僅采用了弱加密方式,軟件應(yīng)用的本身漏洞,以及操作員將數(shù)據(jù)上傳至錯誤的數(shù)據(jù)庫等方面。而外部攻擊因素則包括:SQL注入、身份驗證與訪問控制的破壞、網(wǎng)絡(luò)釣魚攻擊、以及針對明文協(xié)議HTTP、FTP和SMTP傳輸數(shù)據(jù)等網(wǎng)絡(luò)級別的攻擊。
為了應(yīng)對此類泄漏,我們可以采取的主要措施包括:徹底檢查應(yīng)用程序的源代碼與IT環(huán)境,尤其是正在使用安全密碼算法等方面。
4. XML外部實體
XML外部實體注入(通常被稱為XML External Entity,XXE)可以讓攻擊者通過Web應(yīng)用的漏洞,干擾應(yīng)用對于XML數(shù)據(jù)的處理。此類攻擊往往會導致諸如拒絕服務(wù)、數(shù)據(jù)泄露、服務(wù)器端請求偽造等問題。
我們可以通過實施服務(wù)器端的輸入驗證,修補和升級所有XML處理器,以及使用SAST工具來分析源代碼等方法,來有效地防止XML外部實體注入。
5.受損的訪問控制
從概念上說,訪問控制機制就是要確定用戶是否可以執(zhí)行,與之身份和權(quán)限相符的操作。而當用戶可以在其預(yù)期權(quán)限之外執(zhí)行某項操作時,那么就出現(xiàn)了訪問控制的破壞。
受損的訪問控制通常會導致:未經(jīng)授權(quán)的信息泄露、數(shù)據(jù)被直接修改或破壞、以及業(yè)務(wù)功能偏離預(yù)期用途等情況。我們可以通過在受信任的服務(wù)器端代碼中、或無服務(wù)器的API中,強制使用完備的訪問控制機制,來防止攻擊者修改元數(shù)據(jù)(metadata),或繞過正常的訪問控制檢查。
鑒于Web應(yīng)用在當下激烈競爭與快速發(fā)展的商業(yè)環(huán)境中尤為重要,我們可以通過如下七種針對Web應(yīng)用的安全性防護措施與實踐,來協(xié)助企業(yè)保護系統(tǒng)與數(shù)據(jù)。
七大防護措施:
1.定義并采用合適的網(wǎng)絡(luò)安全框架
網(wǎng)絡(luò)安全框架包括一系列文檔和指南,它定義了企業(yè)在管理網(wǎng)絡(luò)安全風險,以及減少漏洞的過程中,需要遵循的各種優(yōu)秀實踐。這里主要強調(diào)的是“合適才是最好的”。我們需要對企業(yè)所處的行業(yè),當前開展的業(yè)務(wù)進行調(diào)研。在此基礎(chǔ)上,通過利用專業(yè)知識和業(yè)界現(xiàn)有的安全標準,為本企業(yè)準備詳細的計劃與適合的安全策略。
2.跟蹤您的資產(chǎn)并進行威脅評估
如今,大多數(shù)企業(yè)都會通過在線運維的方式,對諸如:Web應(yīng)用、網(wǎng)站、Web服務(wù)、API、以及基于云的軟件即服務(wù)(SaaS)等IT資產(chǎn),進行管理。因此在此類IT環(huán)境中,他們需要與內(nèi)、外部的各種系統(tǒng)持續(xù)進行通信。同時,許多功能性的接口都會被暴露出來。
對此,企業(yè)需要實施關(guān)鍵性網(wǎng)絡(luò)安全計劃便是資產(chǎn)發(fā)現(xiàn)。該環(huán)節(jié)可幫助運維人員找到各種Web資產(chǎn),以便他們按需保護目標組件,并制定出相應(yīng)的安全策略??梢哉f,一旦創(chuàng)建了所有重要Web資產(chǎn)的列表,他們即可開始執(zhí)行威脅評估,以識別出針對當前應(yīng)用的潛在威脅,進而制定出有效的緩解計劃。
3.遵守安全編碼標準
據(jù)統(tǒng)計,大約有90%的軟件安全問題,都是由軟件設(shè)計或代碼中的缺陷引起的。誠然,開發(fā)人員的主要工作是讓應(yīng)用程序能夠正常運行,但是如果忽略了安全編碼,則會無形中留下各種安全漏洞和被攻擊的后門。
可見,我們需要實施安全的編碼標準,以確保軟件和應(yīng)用得到保護,并免受安全漏洞的影響。在實際項目中,我們可以在軟件開發(fā)生命周期(SDLC)的早期階段引入安全性,并通過遵循OWASP的安全編碼規(guī)范、以及SEI CERT編碼標準,這兩種時下流行的安全編碼標準,以避免在后期測試和部署階段,花費時間和精力去填補各種安全漏洞。
4.部署企業(yè)級安全解決方案
最常見的企業(yè)級智能安全解決方案當屬Web應(yīng)用防火墻(WAF)。它可以通過監(jiān)控和過濾各種惡意HTTP流量,協(xié)助保護Web應(yīng)用免受諸如SQL注入、跨站點腳本等攻擊的侵害。也就是說,我們通過在Web應(yīng)用程序和互聯(lián)網(wǎng)之間放置一道WAF屏障,可以僅允許合法用戶的訪問,并阻斷各種惡意的請求。
當然,我們也可以考慮使用諸如Burpsuite pro和Acunetix之類專業(yè)的Web安全掃描器,以實現(xiàn)對Web應(yīng)用的快速掃描,并識別出潛在的漏洞。
5.盡可能自動化
在日常運維中,我們往往需要執(zhí)行Web應(yīng)用掃描、簽名與行為分析、以及DDoS緩解等重復性的任務(wù)。為了節(jié)省大量的時間和精力,安全人員應(yīng)當與自動化技術(shù)人員合作,在確保各項任務(wù)得以自動化實施的前提下,增強Web應(yīng)用的安全性。
6.加密數(shù)據(jù)
過去,Web應(yīng)用往往使用明文的HTTP協(xié)議進行通信。這會導致攻擊者能夠以中間人(MIM)的方式,扮演通信中的某一方,竊取具體內(nèi)容。如今,使用基于傳輸層安全協(xié)議(TLS)的HTTP加密方式,已經(jīng)成為了許多企業(yè)應(yīng)用的必選項。同時,它也成為了大多數(shù)瀏覽器的默認配置項。
HTTPS加密可以維護用戶瀏覽器和服務(wù)器之間傳輸數(shù)據(jù)的完整性。也就是說,當用戶使用HTTPS協(xié)議連接到諸如某個互聯(lián)網(wǎng)銀行應(yīng)用的網(wǎng)站時,瀏覽器會基于證書建立起安全的TLS會話,以保證瀏覽器和服務(wù)器之間的請求和響應(yīng)都處于加密狀態(tài)。顯然,此類加密技術(shù)對于維護敏感用戶數(shù)據(jù)的機密性和完整性都是不錯的實踐。
7.滲透測試
最后一項有效的安全策略是,定期對Web應(yīng)用執(zhí)行全面的滲透測試,以及時發(fā)現(xiàn)目標系統(tǒng)的關(guān)鍵漏洞。滲透測試可以模擬攻擊者或黑客對系統(tǒng)的出入口、源代碼、數(shù)據(jù)庫、公共可用源、以及后端網(wǎng)絡(luò),進行掃描和嘗試性地攻擊。
在完成測試后,滲透人員會出具已發(fā)現(xiàn)漏洞的優(yōu)先級排序報告,并協(xié)助開發(fā)團隊參照最佳的行業(yè)標準,予以漏洞修補和安全整改。