OpenRASP Java应用自我保护使用
前言
筆者上一章寫(xiě)了編譯openrasp-v8的JNI編譯過(guò)程,實(shí)際上是百度開(kāi)源的OpenRASP的引擎依賴包,簡(jiǎn)單體驗(yàn)了,基礎(chǔ)功能非常不錯(cuò),只是很多管理功能需要2次開(kāi)發(fā),體驗(yàn)了以下,分享過(guò)程。
1. RASP與WAF
RASP(Runtime application self-protection)運(yùn)行時(shí)應(yīng)用自我保護(hù),將自身注入到應(yīng)用程序中,與應(yīng)用程序松耦合,進(jìn)行實(shí)時(shí)監(jiān)測(cè)、阻斷攻擊。對(duì)于JAVA而言,應(yīng)用本身通過(guò)javaagent技術(shù)注入agent來(lái)實(shí)現(xiàn),原有代碼無(wú)需修改。
實(shí)際上WAF的部分功能與RASP重疊,WAF是專門(mén)防御安全方面的,只是側(cè)重點(diǎn)不一樣,而且加密或者序列化流只能RASP防御。區(qū)別網(wǎng)上都很多了,可以直接網(wǎng)上查閱。本質(zhì)上RASP就是給應(yīng)用武裝,讓?xiě)?yīng)用自身去跟安全風(fēng)險(xiǎn)作戰(zhàn)。
2. 安裝體驗(yàn)
查閱百度OpenRASP文檔:安裝部署 - OpenRASP 官方文檔 - 開(kāi)源自適應(yīng)安全產(chǎn)品 (baidu.com)
目前client僅支持Java、PHP,目前主流開(kāi)發(fā)方式是Java,所以體驗(yàn)Java為例。?
2.1 準(zhǔn)備
實(shí)際上準(zhǔn)備的是server端的數(shù)據(jù)庫(kù),還有client端的數(shù)據(jù)庫(kù)示例,所以需要MongoDB、ElasticSearch、MySQL
安裝Server端,各個(gè)版本要求很明確了,MongoDB就選最新版本,elasticsearch就選5.6
?MySQL是客戶端示例需要的,筆者就選5.6,方便測(cè)試漏洞。
自己開(kāi)發(fā)直接docker安裝,方便:
docker run -itd --name mongod -p 27017:27017 mongo docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 elasticsearch:5.6docker run --name mysql_5.6 -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:5.6運(yùn)行后
2.2 server安裝
server端可以下載直接用,如果需要定制就要2次開(kāi)發(fā),源碼編譯,go開(kāi)發(fā)的后端
??????Index of /app/openrasp/release/latest/ (baidu.com)
筆者macOS下:wget?https://packages.baidu.com/app/openrasp/release/latest/rasp-cloud-mac.tar.gz
下載解壓后:tar -zxvf rasp-cloud-mac.tar.gz
?然后執(zhí)行
./rasp-cloud -d可以看到版本號(hào)1.3.7,client的agent也建議對(duì)應(yīng)。?
?日志路徑,后管編寫(xiě)系統(tǒng)go,CN地址go很活躍,基本上是世界上最活躍的區(qū)域了,一般用來(lái)編寫(xiě)后管系統(tǒng),類似后管前端使用VUE編寫(xiě)差不多。此時(shí)可以訪問(wèn):
http://localhost:8086
其中用戶名固定為?openrasp,初始密碼為?admin@123。?
僅僅是安裝好了server端,實(shí)際上是后管平臺(tái),不會(huì)有任何用途,需要agent注入才能生效
2.3 agent注入?
以Tomcat為例,實(shí)際上Springboot原理類似,都是執(zhí)行注入javaagent參數(shù):javaagent技術(shù)原理_fenglllle的博客-CSDN博客_javaagent原理
wget?https://packages.baidu.com/app/openrasp/release/latest/rasp-java.tar.gz
?用下面的指令初始化,集成在CI CD平臺(tái),實(shí)際上是對(duì)jvm參數(shù)加上--javaagent:
java -jar RaspInstall.jar -heartbeat 90 -appid 62d8c6e81ae21a6f67acc1ac0515011e36b69c75 -appsecret NAa3VwiqVe2u3bCulQex0AriesMn3GgONe931rPUmDO -backendurl http://localhost:8086/ -install?/path/to/tomcat注意:appid和appsecret是server端每次啟動(dòng)生成的,不能使用固定的
這時(shí)就獲取到一個(gè)已經(jīng)注入javaagent的Tomcat,而示例需要去百度去獲取
建議獲取vulns.war,示例非常完整,放在tomcat的webapps下,解壓
2.4 參數(shù)修改
實(shí)際上啟動(dòng)Tomcat就可以用了,但是數(shù)據(jù)庫(kù)漏洞會(huì)報(bào)錯(cuò),因?yàn)闆](méi)有連接數(shù)據(jù)庫(kù)。需要修改參數(shù),war包解壓后先刪除war,然后cd vulns
這2個(gè)配置,分別修改為docker的MySQL連接,直接查看OpenRASP可以看到,修改了catalina.sh腳本,注入agent參數(shù)
./startup.sh即可啟動(dòng) ,Tomcat盡量使用老版本,不超過(guò)Tomcat8,示例是jsp寫(xiě)的,新Tomcat可能不兼容。
2.5 體驗(yàn)???
訪問(wèn):OpenRASP 官方測(cè)試用例集合
其中SQL注入這些需要提前創(chuàng)建表,安裝示例寫(xiě)入即可?
?隨意執(zhí)行幾個(gè)漏洞,攔截方式是可以修改的,但是沒(méi)有發(fā)現(xiàn)規(guī)則修改的地方,管理功能基本上都有,但是不是很貼近實(shí)際生產(chǎn)。
插件可下載,但是不能單獨(dú)每條編輯,NodeJS語(yǔ)法: 官方開(kāi)發(fā)指南:單機(jī)版本 - OpenRASP 官方文檔 - 開(kāi)源自適應(yīng)安全產(chǎn)品 (baidu.com)
??
總結(jié)
實(shí)際上百度開(kāi)源的OpenRASP拿來(lái)就可以直接用,如果需要定制規(guī)則,需要后端定制,還有很多管理功能實(shí)際上可以更友好,但是核心功能非常完整,自己需要處理agent帶來(lái)的的性能影響,出現(xiàn)agent問(wèn)題怎么辦的情況。
總結(jié)
以上是生活随笔為你收集整理的OpenRASP Java应用自我保护使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三国杀online网页版服务器更新,[O
- 下一篇: java美元兑换,(Java实现) 美元