近年來,由于網(wǎng)絡(luò)邊界愈發(fā)模糊、新型攻擊手段層出不窮,應(yīng)用安全的重要性也愈加突顯,越來越不容忽視。
在今年的RSAC上,應(yīng)用安全無疑是最熱門的方向之一:《RSAC 2020趨勢報告》中指出的十大趨勢中,有兩項和應(yīng)用安全直接相關(guān):“實現(xiàn)產(chǎn)品的設(shè)計、開發(fā)和運營安全”、“聚焦軟件工程安全”;而今年創(chuàng)新沙盒比賽的十強(qiáng)名單中,竟然有五家都在做應(yīng)用安全的相關(guān)方向。
但是,當(dāng)我們翻開這些報告和公司簡介,映入眼簾的都是“Product Security”、“DevSecOps”、“Code Security”、“WAF”、“Fuzzing”這些老生常談的詞匯。那么,有關(guān)應(yīng)用安全的真正趨勢、真正熱點是什么呢?
筆者在仔細(xì)拜讀了趨勢報告、創(chuàng)新沙盒產(chǎn)品的簡介和部分會議報告之后,結(jié)合自己在應(yīng)用安全領(lǐng)域的認(rèn)知,為大家總結(jié)了如下幾個主要的應(yīng)用安全技術(shù)新風(fēng)向:
一、開源安全
在《RSAC 2020趨勢報告》的第二個趨勢“實現(xiàn)產(chǎn)品的設(shè)計、開發(fā)和運營安全”中提到:因為在今年收到的申請中,關(guān)于安全產(chǎn)品開發(fā)的議題遠(yuǎn)超以往,因此RSAC針對產(chǎn)品安全、開源安全進(jìn)行了特別的關(guān)注。有許多議題在開源代碼的使用、維護(hù)、測試、認(rèn)證等方面,描述機(jī)構(gòu)面臨的挑戰(zhàn),并提出了最佳安全實踐。
要知道,“實現(xiàn)產(chǎn)品的設(shè)計、開發(fā)和運營安全”是除了會議主題“Human Element”之外的最主要趨勢,也就是真正的“民心所向”。開源安全,又作為其中尤為重要的一個細(xì)分領(lǐng)域,在該趨勢報告中被多次提及。
早在2017年,F(xiàn)orrester Research的一份研究就表明,為了加速應(yīng)用的開發(fā),開發(fā)人員常使用開源組件作為應(yīng)用基礎(chǔ),這導(dǎo)致80%-90%的代碼來自于開源組件。奇安信代碼安全實驗室的研究發(fā)現(xiàn),88%的軟件開發(fā)項目因使用開源軟件引入了安全漏洞,平均每個軟件開發(fā)項目中存在44個已知開源軟件安全漏洞。由此可見,隨著開源組件在現(xiàn)代軟件中使用比率的持續(xù)增長,以及日益嚴(yán)峻的組件安全問題,開源(或第三方)組件的發(fā)現(xiàn)和管理已經(jīng)成為AST解決方案中關(guān)鍵性甚至強(qiáng)制性的功能之一。
關(guān)于如何應(yīng)對,Gartner則在其應(yīng)用安全測試領(lǐng)域的報告中一再指出,雖然SCA技術(shù)跟傳統(tǒng)的應(yīng)用安全測試技術(shù)不太一樣,但應(yīng)當(dāng)是應(yīng)用安全計劃中應(yīng)對開源安全的、必不可少的一環(huán)。
什么是SCA技術(shù)呢?
軟件成分分析(SCA)技術(shù)是指通過對軟件的組成進(jìn)行分析,識別出軟件中使用的開源和第三方組件(如底層庫、框架等等),從而進(jìn)一步發(fā)現(xiàn)開源安全風(fēng)險和第三方組件的漏洞。通常,SCA的檢測目標(biāo)可以是源代碼、字節(jié)碼、二進(jìn)制文件、可執(zhí)行文件等的一種或幾種。除了在安全測試階段采用SCA技術(shù)對軟件進(jìn)行分析以外,SCA技術(shù)還可以集成到MSVC、Eclipse等IDE或SVN、Git等版本控制系統(tǒng),從而實現(xiàn)對開發(fā)者使用開源組件的控制。
二、應(yīng)用安全編排與關(guān)聯(lián)
在《RSAC 2020趨勢報告》的第五個趨勢“聚焦軟件工程安全”中指出:以DevSecOps為中心的議題在持續(xù)增長和成熟,議題圍繞著風(fēng)險管理、治理、合規(guī)性、流程、框架等各個方面展開了討論。
一方面,由于敏捷開發(fā)和DevOps的開發(fā)技術(shù)趨勢,對于應(yīng)用安全產(chǎn)品的自動化、工具化、時間控制的要求越來越高;另一方面,在 DevSecOps 的流程中,如何有效地使用各種應(yīng)用安全產(chǎn)品,并將其結(jié)果進(jìn)行關(guān)聯(lián)。
今年創(chuàng)新沙盒十強(qiáng)中的BluBracket、ForAllSecure,以及去年創(chuàng)新沙盒十強(qiáng)中的ShiftLeft,都宣稱能夠更好地幫助企業(yè)落地DevSecOps。
我們看一下這些產(chǎn)品的共性:
1. 和研發(fā)工具鏈進(jìn)行集成:
與研發(fā)工具鏈的集成是DevSecOps趨勢下,應(yīng)用安全產(chǎn)品必須具備的基本屬性之一。譬如ForAllSecure的主打產(chǎn)品Mayhem,做為一款Fuzzing工具竟然可以和Travis、Jenkins以及Gitlab、Github等進(jìn)行集成。
2. 追求低誤報率:
誤報意味著需要人工介入進(jìn)行審核,這樣必然會打破整個自動化的構(gòu)建流程。因此,為了順應(yīng)DevSecOps的需求,應(yīng)用安全產(chǎn)品必須不斷降低其誤報率。以BluBracket為例,宣稱其檢測無誤報。
3. 關(guān)注檢測速度:
更快的檢測,意味著更快的產(chǎn)品發(fā)布節(jié)奏。在ShiftLeft的宣傳中,50萬行的代碼檢測僅需10分鐘。
對于此,Gartner將這種技術(shù)從各種產(chǎn)品中抽取出來,稱之為應(yīng)用安全編排與關(guān)聯(lián)(Application Security Orchestration and Correlation,簡稱ASOC):ASOC工具通過自動化工作流來簡化軟件漏洞的測試和修復(fù)。首先是安全測試自動化,其次將來自多個源(SAST、DAST、IAST、SCA、漏洞評估等)的數(shù)據(jù)提取到數(shù)據(jù)庫中,再通過關(guān)聯(lián)和分析檢測結(jié)果,以實現(xiàn)修補(bǔ)措施的統(tǒng)一和優(yōu)先級排序。
隨著DevSecOps越來越被廣大企業(yè)所接受,ASOC在兩個關(guān)鍵領(lǐng)域所提供的便利將越來越明顯:一是對應(yīng)用程序安全測試計劃的簡化,以帶來在管理工作流方面的效率提升;二是為最關(guān)鍵的安全風(fēng)險進(jìn)行優(yōu)先級排序,進(jìn)而解決資源稀缺的問題。
三、應(yīng)用內(nèi)保護(hù)
在今年的創(chuàng)新沙盒十強(qiáng)中,同時有兩家從事WAF產(chǎn)品研發(fā)的公司入選,一家是美國的Tala Security,另一家是源自法國的初創(chuàng)公司Sqreen。
如果只是傳統(tǒng)的WAF,肯定無法能夠進(jìn)入創(chuàng)新沙盒十強(qiáng)。那我們來看下,這兩家產(chǎn)品,都有什么新穎的技術(shù)特色?
Tala Security的主打產(chǎn)品是“Client-side Web Application Firewall”,通過自動化部署和動態(tài)調(diào)整瀏覽器的本地控件(例如CSP、SRI、HSTS等安全策略)來防御跨站腳本、點擊劫持等攻擊。使用Tala WAF,并不需要更改應(yīng)用程序代碼,從而將對性能的影響降到最低。
Sqreen產(chǎn)品平臺主要包括RASP以及In-App WAF兩個核心模塊。Sqreen宣稱其可以防御OWASP Top10攻擊(例如注入攻擊,XSS攻擊等),0-day攻擊,數(shù)據(jù)泄漏等攻擊。可以創(chuàng)建應(yīng)對高級業(yè)務(wù)邏輯威脅的安全自動化處置策略。
不難看出,這兩款產(chǎn)品實際上都使用應(yīng)用內(nèi)保護(hù)(In-APP Protection)這一種與傳統(tǒng)WAF不同的技術(shù)。那什么是應(yīng)用內(nèi)保護(hù)呢?
In-APP Protection是指在應(yīng)用程序內(nèi)(不同于網(wǎng)絡(luò)側(cè)或操作系統(tǒng)側(cè))實施的解決方案,以使應(yīng)用程序更能抵抗惡意數(shù)據(jù)泄露,入侵,篡改等攻擊。企業(yè)使用In-APP Protection可以保護(hù)其基于軟件的資產(chǎn),并保護(hù)自己和客戶免受欺詐性攻擊。
In-APP Protection目前主要用于保護(hù)面向消費者的移動應(yīng)用,尤其是對于那些運行于不受信任環(huán)境的應(yīng)用程序。
當(dāng)然,由于具體技術(shù)路線的不同,In-APP Protection技術(shù)可能還是需要開發(fā)人員的介入。因此,In-APP Protection技術(shù)的真正推廣,也需要開發(fā)者對于這類防護(hù)技術(shù)的認(rèn)知不斷提升。
四、泛代碼安全
代碼作為構(gòu)建各種應(yīng)用、系統(tǒng)的基礎(chǔ)組件,其安全問題是軟件安全的根源性問題。因此,AST領(lǐng)域中有多類技術(shù)都可以應(yīng)用在代碼安全保障中,例如靜態(tài)應(yīng)用安全測試技術(shù)(SAST)技術(shù)、動態(tài)應(yīng)用安全測試技術(shù)(DAST)技術(shù)、軟件成分分析(SCA)技術(shù)等。
而在今年的RSAC中,代碼安全的概念得到了進(jìn)一步的延伸。正如RSAC創(chuàng)新沙盒公司BluBracket的網(wǎng)站上所述:一方面,代碼是公司最重要的資產(chǎn)和核心競爭力,必須給予保護(hù);另一方面,鮮為人知的是,代碼也已成為企業(yè)的一個大攻擊面,尤其是考慮到現(xiàn)在軟件開發(fā)方式的開放性和協(xié)作性。
源代碼的安全管理往往是企業(yè)容易忽略的點,譬如近兩年頻發(fā)的、由于GitHub代碼泄露而導(dǎo)致的一系列安全事件。跟傳統(tǒng)的SAST相比,BluBracket的創(chuàng)新之處就在于將代碼泄露和管控不當(dāng)納入其產(chǎn)品的解決方案之中。其產(chǎn)品CodeInsight,主要對代碼進(jìn)行發(fā)現(xiàn)、分類、持續(xù)跟蹤以及開源庫的檢測。
而在傳統(tǒng)的SAST領(lǐng)域,BluBracket的CodeSecure則采取相對較為輕量級的解決方案,重點只是尋找一些敏感信息如令牌、密碼、用戶隱私信息的泄露。因此其檢測速度較快、誤報率較低,也順應(yīng)了DevSecOps的要求。
相對于前兩年在SAST領(lǐng)域火爆的基于人工智能的誤報、噪音篩除,我們可以看到,代碼安全并沒有繼續(xù)沿著技術(shù)深度去發(fā)展,而是往廣義的“泛代碼安全”去發(fā)展。
來源:互聯(lián)網(wǎng)安全內(nèi)參