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