您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關RASP相關的技術實現和產品介紹是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
自從2014年Gartner將RASP列為應用領域的關鍵趨勢后,互聯網企業愈來認識到其是在邊界模糊后的一種穩健的解決方案。列位讀者首先需要認識到RASP和WAF并不是同一緯度的產品,“安全技術可以“內建”于應用自身或者運行環境”的特點可以提供:
1. 應用的實時熱補丁:無需在出現漏洞時修改源代碼,修改代理程序添加防護代碼即可。
2. 從根本上阻斷漏洞:不再考慮規則的被繞過等,直接在執行層面分析敏感函數是否被調用,在應用程序內部基于調用棧調用檢測模型阻斷0DAY。
3. 實現應用的全生命周期監控,在可用性、不可抵賴性實現審計和日志收集功能。
4. 靈活集成SIEM工具,發揮代理的靈活優勢。
缺點為會造成性能的消耗增加、應用穩定性下降,上層業務不可知,模式以監控記錄居多,阻斷模式很少。
國內有百度開源的OpenRASP產品,實現對JAVA容器(未來會推出php版本)的支持。可以實現攻擊檢測、CVE漏洞覆蓋、服務器安全基線檢查、支持SIEM插件。另外一款較早,為javaopenrasp,曾在kcon上發布過,似乎最近并未更新。商業產品為藍海訊通發布的oneasp,官網已經打不開。國外有:HP: HP Application Defender、WARATEK: ApplicationSecurity for Java、OWASP: AppSensor 、Shandowd: Shadowd 、Prevoty: Prevoty Runtime Application Security
PHP RASP方案是通過擴展模塊實現對規則對應的惡意函數行為、上下文內容的判斷和阻斷。而JAVA的技術方案相對已經成熟,包括直接修改jvm(Waratek產品)和使用jvm編程接口(Jvm tool interface)。JDK1.5即提供JVM TI技術,在程序main方法運行前,jvm啟動時添加-javaagent:參數調用使用lang.Instrument包編寫agent程序后,以premain方式從而實現對java類的動態操作。而 jdk1.6agentmain的方式提供對虛擬機啟動后的動態instrument和nativecode 的instrument。
技術實現方面,一般是使用premain方式接入程序,通過實現transform接口的ClassTransformer方法
測試用例如下:
可以看到rasp的鮮明技術特點有:
1. 可以通過inst獲取 VM 的各項信息;
2. agent和main 程序使用同一個 classloader,如果程序自定義加載器則需要進行適配;
3. 類的ProtectionDomain相同,并不能增減實現權限提升。
4. 通過操 作類的字節碼返回JVM 執行,具體可以使用 asm或者 Javassist技術實現。
接下來就是實現具體的adapter和filter,實現業務層面操作和功能,不再贅述。已知防護層面較為簡單的實現是有:
SQL注入、CSRF、XSS、SSRF、任意文件讀取下載、任意文件刪除、可執行文件上傳、命令執行(OS 注入、Struts2命令執行,反序列化)。
代碼編制完成后,在mf文件配置premain-class為agent類名,通過設置-javaagent即可實施代理監控。
總的來說從工程化、系統化能力方面。目前針對中間件rasp實現還是言過其實,技術并不復雜,規則還是開發的核心,當前階段并不能做到“自適應”的預測、預防、監測、響應,但這正是它后期將要蓬勃發展的著力點。
關于RASP相關的技術實現和產品介紹是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。