日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux环境OpenRASP使用教程,集成openRASP与攻击测试

發(fā)布時間:2025/3/11 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux环境OpenRASP使用教程,集成openRASP与攻击测试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.介紹

openRASP是一個百度的安全框架,將其集成到我們的web項目中,就像是給web項目安裝了一款“安全管家”的軟件,它可以檢測到攻擊,并進(jìn)行攔截。

2.集成openRASP到項目中

openRASP針對不同的服務(wù)器,提供了不同的安裝方法,但是基本上都大同小異,本文以SpringBoot為例,springboot又可以打成jar包或者war包,本項目使用jar包部署,演示如何將openRASP集成到SpringBoot項目中。

2.1 下載壓縮文件

2.2 解壓并復(fù)制文件

將上面下載的壓縮包,解壓,將其中的rasp文件復(fù)制到j(luò)ar包的同級目錄中

ps:復(fù)制文件夾命令:cp -R

image.png

修改rasp目錄的權(quán)限

命令:chmod 777 -R rasp

2.3 配置啟動參數(shù)

ps:添加配置參數(shù)時,指定了rasp-log4j.xml 文件,這是啟動時自動生成的,無需創(chuàng)建。

如果是直接java -jar啟動jar包

直接追加啟動參數(shù):

java -javaagent:"/weblogic/app/deploy/jcpt/rasp/rasp.jar" -Dlog4j.rasp.configuration="file:///weblogic/app/deploy/jcpt/rasp/conf/rasp-log4j.xml" -jar jcpt.jar

本項目是jenkins部署,利用shell腳本啟動jar包,所以需要修改shell腳本內(nèi)容,添加啟動參數(shù)

找到對應(yīng)的shell腳本位置(本項目shell位置:/weblogic/shell/),編輯腳本,添加配置參數(shù)

2.4 重啟springboot項目,并驗證是否安裝openRASP成功

本項目使用jenkins部署,重啟項目,需要重新build

image.png

驗證是否安裝成功有兩點:

一:查看rasp的log:/rasp/logs/rasp/下的log文件,如果出現(xiàn)OpenRASP Engine Initialized 字樣,就表示安裝成功

二:訪問web網(wǎng)站,檢查響應(yīng)的 Header 是否包含 X-Protected-By 字樣,有就表示安裝成功

到此為止,就已經(jīng)將openRASP集成到了項目中

3.安裝管理后臺

安裝管理后臺以后,可以在圖形化的界面查看openRASP信息,比如攔截情況等等。

管理后臺依賴ElasticSearch和MongoDB才可以正常運行。

并且還有版本要求:

MongoDB >= 3.6

ElasticSearch >= 5.6

3.2 下載管理后臺

解壓至任意服務(wù)器任意目錄(后臺管理的服務(wù)器和項目運行的服務(wù)器能聯(lián)通)

本例中解壓到:機(jī)器的/opt/rasp-cloud-2019-01-04/

image.png

3.3 配置并啟動管理后臺

image.png

啟動后臺管理:

./rasp-cloud -d

3.4 訪問后臺管理頁面

http://ip:8086

默認(rèn)的用戶名密碼是:openrasp/admin@123

默認(rèn)有一個php示例應(yīng)用

4 將管理后臺和項目連接起來

4.1 在管理后臺創(chuàng)建應(yīng)用

在此添加一個Java應(yīng)用

4.2 添加主機(jī)

獲取到這三個數(shù)據(jù)

4.3 將上述三個數(shù)據(jù)配置到rasp的配置中

/rasp/conf/下面(是springboot項目的rasp的conf,不是后臺管理的conf)

image.png

4.4 重啟springboot項目,檢測后臺管理頁面是否可以查看到對應(yīng)的主機(jī)

image.png

到此,后臺管理也搭建完成

5. 攻擊測試

openRASP是安全框架,在這里就使用sqlmap進(jìn)行sql注入攻擊,來查看openRASP是否有效果,關(guān)于sqlmap的使用,可以查看本人另一篇文章,地址是:https://www.jianshu.com/p/3d3656be3c60

但是由于項目中的代碼并沒有sql可以注入的地方,所以本人故意在項目中添加一個擁有sql漏洞的接口,用于檢測openRASP是否可以攔截到

5.1 包含sql漏洞的接口代碼

package com.base.web.aisino.web;

import com.alibaba.fastjson.JSONObject;

import com.base.web.common.base.ApiResponse;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.web.bind.annotation.*;

import java.sql.*;

/**

* @author ah.zhanglei3@aisino.com

* @ClassName

* @Description 測試OpenRasp

* @Date 18:42 2019/3/16

*/

@RestController

@RequestMapping("/test")

public class TestOpenRaspWebService {

private final Logger logger = LoggerFactory.getLogger(TestOpenRaspWebService.class);

private String resultSetString1;

private String resultSetString2;

private String resultSetString3;

private String resultSetString4;

@PostMapping("/openrasp")

public ApiResponse getRecidDateData(@RequestParam("userId") String userId) throws ClassNotFoundException, SQLException {

logger.info("請求->測試opensasp->輸入?yún)?shù)【userId:"+userId+"】");

//1.注冊驅(qū)動

Class.forName("com.mysql.jdbc.Driver");

//2.獲取鏈接

Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.202.162:3306/jcpt?useUnicode=true&characterEncoding=utf8", "root", "ybf5mysql");

//3.創(chuàng)建執(zhí)行sql語句的對象

Statement statement = connection.createStatement();

//4.sql語句

String sql = "select * from sys_user where user_id= "+userId+";";

//5.執(zhí)行sql語句

ResultSet resultSet = statement.executeQuery(sql);

//6.對結(jié)果集進(jìn)行處理

if(resultSet.next()){

logger.info("取值成功");

//獲取第一列和第二列的值,不是從0開始

resultSetString1 = resultSet.getString(1);

resultSetString2 = resultSet.getString(2);

resultSetString3 = resultSet.getString(3);

resultSetString4 = resultSet.getString(4);

logger.info(resultSetString1+"--"+resultSetString2+"--"+resultSetString3+"--"+resultSetString4);

}else {

logger.info("取值失敗");

}

//7.關(guān)閉

if (resultSet != null){

resultSet.close();

}

if (statement != null){

statement.close();

}

if (connection != null){

connection.close();

}

JSONObject jsonObject = new JSONObject(16);

jsonObject.put("data",resultSetString1+"--"+resultSetString2+"--"+resultSetString3+"--"+resultSetString4);

logger.info("數(shù)據(jù)庫返回結(jié)果->測試opensasp->返回結(jié)果參數(shù)【result:"+jsonObject+"】");

return ApiResponse.ofSuccess(jsonObject);

}

}

5.2 sqlmap攻擊本地沒有集成openRASP的代碼

執(zhí)行sqlmap:

python2 sqlmap.py -u "http://localhost:9099/test/openrasp?userId=1" --cookie="JSESSIONID=d8f4209e-848b-405c-8986-907c4de6d984" --method=POST

sqlmap順利的找到了漏洞:

現(xiàn)在嘗試?yán)眠@個漏洞獲取一些數(shù)據(jù)庫的信息

獲取數(shù)據(jù)庫名:

python2 sqlmap.py -u "http://localhost:9099/test/openrasp?userId=1" --cookie="JSESSIONID=d8f4209e-848b-405c-8986-907c4de6d984" --method=POST --dbs

獲取數(shù)據(jù)庫的表名:

python2 sqlmap.py -u "http://localhost:9099/test/openrasp?userId=1" --cookie="JSESSIONID=d8f4209e-848b-405c-8986-907c4de6d984" --method=POST -D jcpt --tables

image.png

獲取數(shù)據(jù)庫jcpt的sys_user表的列名:

python2 sqlmap.py -u "http://localhost:9099/test/openrasp?userId=1" --cookie="JSESSIONID=d8f4209e-848b-405c-8986-907c4de6d984" --method=POST -D jcpt -T sys_user --columns

可以看到,sqlmap可以通過注入拿到一些數(shù)據(jù)庫的信息

5.3 sqlmap攻擊集成了openRASP的代碼

執(zhí)行sqlmap:

python2 sqlmap.py -u "ip:9099/test/openrasp?userId=1" --cookie="JSESSIONID=95571903-b864-4ef7-8c22-d52fe3203e8a" --method=POST

這時sqlmap就找不到注入點了:

同時查看網(wǎng)站日志,可以看到,sqlmap的攻擊行為都被openRASP攔截了

最后查看openRASP后臺管理頁面

可以看到,openRASP的攔截記錄

image.png

6. 總結(jié)

openRASP的簡單使用就是這樣,它還有更多的功能,比如大規(guī)模部署,SIEM系統(tǒng)集成等。

同時我們還可以對openRASP進(jìn)行插件開發(fā),二次開發(fā)等,定制openRASP的功能。

總結(jié)

以上是生活随笔為你收集整理的linux环境OpenRASP使用教程,集成openRASP与攻击测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。