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