應用程式已經成為網路黑客想要滲透到企業內部的絕佳目標。 因為他們知道如果能發現並利用應用程式的漏洞,他們就有超過三分之一的機會成功入侵。 更重要的是,發現應用程式漏洞的可能性也很大。 Contrast Security 調查顯示, 90%的應用程式在開發和質量保證階段沒有進行漏洞測試,甚至相當一部分應用程式在生產過程中沒有受到保護。
由於企業中執行著許多有漏洞的應用程式,安全團隊面臨的挑戰是如何保護這些應用程式免受攻擊。 其中一種方法是讓應用程式通過實時識別和阻止攻擊來保護自己,這就是被稱為執行時應用自我保護(Runtime Application Self-Protection)的技術。
什麼是 RASP?
執行時應用自我保護(RASP)這一概念由 Gartner 於2012年提出,這是一項新興的安全技術,讓企業得以阻止黑客入侵企業應用和資料。 RASP 技術通常內建在一個應用程式或應用程式執行時環境中,能夠控制應用程式的執行,並檢測漏洞以防止實時攻擊。
當應用程式開始執行時,RASP 可以通過分析應用程式的行為和該行為的上下文,保護其不受惡意輸入或行為的影響。 RASP 通過使應用程式持續檢測自身的行為,可以立即識別和緩解攻擊,且無需人工干預。
無論 RASP 駐留在 server 的什麼地方,它都將安全性整合到執行中的應用程式中。 它會攔截從應用程式到系統的所有呼叫,確保它們是安全的,並直接在應用程式內驗證資料請求。 Web 和非 Web 應用都可以受到 RASP 的保護。 該技術不影響應用程式的設計,因為 RASP 的檢測和保護功能可以在應用程式所執行的 server 上執行。
為什麼 RASP 如此重要?
入侵防護系統(IPS)和網路應用防火牆(WAF)等技術通常用於執行時的應用程式保護,但它們在檢查網路流量和內容時線上工作。 當它們分析進出應用程式的流量和使用者會話時,它們無法看到流量和資料在應用內部是如何處理的。 由於它們的保護措施往往缺乏會話終止所需的準確性,因此會消耗大量的安全團隊頻寬,通常只用於告警和日誌收集。 現在需要的是一種新型的應用保護技術——RASP,它可以駐留在要保護的應用的執行時環境中。
應用所面臨的安全挑戰
在保護 Web 應用和 API 時,通常會面臨以下4種常見的安全挑戰:
1、 真實的攻擊難以識別。 每個應用程式有其自己獨特的漏洞,並且只能被特殊的攻擊所利用。 對於某個應用來說完全無害的 HTTP 請求,對於另一個應用而言可能會造成毀滅性打擊。 同時,“線上(on the wire)”的資料可能與它在應用中所顯示的不同(被稱為“阻抗不匹配”問題)。
2、 現 代應用程式(特別是 API)使用複雜的格式,如 JSON、XML、序列化物件和自定義二進位制格式。 這些請求使用除了 HTTP 之外的各種協議,包括 WebSocket,它是由瀏覽器中的JavaScript、富客戶端、移動應用和許多其他源產生的。
3、 傳統的技術防禦沒有效果。 WAF 通過在 HTTP 流量到達應用伺服器之前對其進行分析,完全獨立於應用而運作。 儘管絕大部分的大型組織都有 WAF,但其中許多企業並沒有專業的團隊對其進行必要的調整和維護,使其只處於“日誌模式”。
4、 軟體正在快速發展,容器、IaaS、PaaS、虛擬機器和彈性環境都在經歷爆炸性增長。 這些技術使得應用程式和 API 可以快速部署,但同時會將程式碼暴露給新的漏洞。 DevOps 也迅速加快了整合、部署和交付的速度,因此確保在快速發展階段的軟體安全的過程變得更加複雜。
幸運的是,執行時應用自我保護(RASP)可以解決其中的許多問題。
RASP的工作原理
當 APP 中發生安全事件時,RASP 將會控制該應用並解決問題。 在診斷模式中,RASP 只是釋出有問題的告警。 在保護模式下,它會試圖阻止問題指令。 例如,它可以阻止對資料庫執行看起來似乎時 SQL 注入攻擊的指令。
RASP 可以採取的其他行動包括終止使用者的會話、停止應用程式的執行,或向使用者或安全人員發出告警。
開發人員可以通過幾種方式實現 RASP。 他們可以通過包含在應用程式原始碼中的函式呼叫來訪問該技術,或者他們可以將一個完整的應用程式放在一個 wrapper 中,從而只需要按下一個按鈕就可以保護應用程式。 第一種方法更為精確,因為開發人員可以決定他們想要保護 APP 的哪個部分,例如登入、資料庫查詢和管理功能。
無論使用哪種方法,最終的結果都是將 Web 應用防火牆與應用程式的執行時環境繫結在一起。 這種與應用程式的密切聯絡意味著 RASP 可以更精細地調整以滿足應用程式的安全需求。
RASP 的主要優勢
RASP 之所以獨一無二是因為它在軟體內部工作,而不是作為一個網路裝置執行。 這使得 RASP 可以利用所有從執行中的應用和 API 中獲取的上下文資訊,包括程式碼本身、框架配置、應用程式 server 配置、程式碼庫和框架、執行時資料流、執行時控制流、後端連線等。 更多的上下文資訊意味著更廣泛的保護範圍和更好的精確性。
RASP 成本更低
-
RASP 解決方案可以快速高效地阻止攻擊直到底層漏洞得到解決
-
與 WAF 相比,它們的部署成本和運維更低
-
它們部署在已有的 server 上,避免了額外的支出
-
RASP 技術會觀察應用程式實際執行的操作,因此不需要相同型別的調整、模型構建、驗證或人力資源
RASP 精確性意味著應用程式受到更好的保護
保護應用程式免受攻擊的影響通常意味著試圖在網路層面上阻止它們。 但當涉及到應用行為的理解時,傳統方法本質上是不準確的,因為它們處於應用之外。 同時,基於網路的應用安全產品會生成很多假陽性並且需要不斷地調整。 在過去的25年裡,網路保護已經越來越接近應用——從防火牆到入侵防禦系統,再到 WAF。 有了 RASP,安全可以直接進入應用內部。
-
RASP 插樁提供了傳統方法不可能達到的精確水平
-
它使應用安全能夠真正地處於應用中
-
更高的準確性使企業能夠自信地用更少的資源保護更多的資料和應用
RASP 可以在雲和 DevOps 中使用
-
RASP 能在敏捷開發、雲應用和 web 服務中良好執行
-
與需要不斷調整的 WAF 解決方案不同,它通過提供無需返工的保護加速敏捷開發
-
RASP 應用更快且更準確
-
無論是在雲端還是本地,RASP 都能隨著應用程式的擴大或縮小而無縫移動
-
支援RASP的應用程式不知道攻擊是通過API還是使用者介面到達的
RASP 提供前所未有的監控
-
RASP 通過插樁整個應用程式來簡化應用安全監控
-
當應用程式的相關部分被訪問或其他條件被滿足時(如登入、交易、許可權更改、資料操作等),可以建立 RASP 策略來生成日誌事件
-
策略也可以根據需要新增和刪除
-
有了RASP,所有這些應用記錄都可以在不修改應用原始碼或重新部署的情況下實現。
RASP 擅長提供應用層攻擊的可見性
-
RASP 持續提供關於誰攻擊你的資訊以及它們所使用的技術,並告訴你哪些應用程式或資料資產被盯上了。
-
除了完整的 HTTP 請求細節外,RASP 還提供應用細節,包括與漏洞相關的程式碼行具體位置、確切的後端連線細節(如 SQL 查詢)、交易資訊和當前登入的使用者。
-
使用 RASP 可以為軟體開發團隊提供即時的可見性,幫助確定工作的優先順序,並對安全防禦採取行動。
由於 RASP 不是一個硬體盒子,它可以很容易地部署在所有環境中,並迅速阻止黑客攻擊,最終應用程式可以實時防禦攻擊。
自我保護的應用程式將成為現實
當攻擊者突破外圍防禦之後,RASP 仍可以保護系統。 它能洞察應用邏輯、配置和資料事件流,這意味著 RASP 可以高度準確地挫敗攻擊。 它可以區分實際的攻擊和合法的資訊請求,這減少了誤報,使網路防禦者可以把更多的時間用於解決真正的問題,而不是往死衚衕裡鑽。
此外,其自我保護應用程式資料的能力意味著 資料從誕生的那一刻起到銷燬都受到保護。 這對需要滿足合規性要求的企業特別有用,因為自我保護的資料對網路黑客來說是無解的。 甚至在某些情況下,如果被盜資料使其在被盜時無法閱讀,監管機構就不要求企業報告該次資料洩露。
與 WAF 一樣,RASP 也不會修復應用程式的原始碼,但它確實與應用程式的底層程式碼庫整合,並在原始碼級別保護應用程式易受攻擊的區域。
由於 RASP 仍處於初期階段,其不足之處會在之後的發展中慢慢被克服,並有希望成為應用安全的未來。 正如 Veracode 的首席創新官 Joseph Feiman 在擔任 Gartner 的研究副總裁時指出的那樣: “現代安全無法測試和保護所有應用。 因此,應用必須能夠進行自我安全保護——自我測試、自我診斷和自我保護。 這應該是 CISO 的首要任務”。
參考連結:
Maverick Research: Stop Protecting Your Apps; It's Time for Apps to Protect Themselves:
https://www.gartner.com/en/documents/2856020