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