RASP實踐分析

婷婷的橙子發表於2021-03-22

一、RSAP簡介

1. Waf

簡介: 它採用請求特徵檢測攻擊方式,waf和防火牆就好比如一座大廈門口的保安,你要進入大廈,waf和防火牆就會在你進入大廈時進行安檢,檢查到你攜帶刀槍炸藥、鴉片大麻,就會把你攔截下來,如果沒有那就放你進入,至於你進入大廈後所做的一些行為就不會再去檢測。

最近幾年,攻擊手段開始變得複雜,攻擊面也越來越廣。傳統的安全防護手段,WAF、IDS(入侵檢測系統),大多是基於規則,已經不能滿足企業對安全的基本需求。對所有的請求都匹配規則,拖慢伺服器效能。

產品形態: 硬體、軟體、雲。

2. RASP

簡介: 好比給每個進入大廈的人都配了一名私人保鏢,不僅僅是在入口處設定保安檢測,當你進入這座大廈後,你的一舉一動都會被它監測到,當你要揮起拳頭,下一步準備打人時,他就會在你揮拳時把你攔截下來。

只對關鍵的請求點檢測,不是所有請求都匹配所有規則,

產品形態: 軟體,執行在應用程式內部,應用程式融為一體,實時監測、阻斷攻擊,使程式自身擁有自保護的能力。

二、功能清單

1. RASP可以檢測那些漏洞

攻擊型別                  RASP支援               WAF支援 
跨站指令碼(XSS)              ✔                          ✔ 
命令注入                        ✔                         ✔ 
ShellShock                     ✔                         ✔ 
未經處理的異常                 ✔                        ❌ 
缺少內容型別                 ✔                         ✔ 
缺少Accept標頭                 ✔                        ✔ 
不受支援的方法               ✔                         ✔ 
漏洞掃描                        ✔                        ✔ 
方法呼叫失敗                   ✔                        ❌ 
敏感資料洩露                   ✔                         ❌ 

三、競品分析

調研了一些國內做RASP的廠商,詳情如下圖:

四、搭建流程

搭建OpenRASP做個小測試,先搭建一個用於測試的靶場,

1. 搭建測試環境

1、為了簡化安裝,使用docker方式進行

    curl -sSL https://get.daocloud.io/docker | sh

2、dockers安裝mysql資料庫

    docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=123 -d -i -p 3309:3306  mysql:5.6

3、此環境已經上傳docker,無需提前下載直接執行即可。

    docker run --name permeate_test --link mysqlserver:db  -d -i  -p 8888:80 –p 8086:8086 daxia/websafe:latest    

4、通過瀏覽器訪問http://localhost:8888,便可以開啟安裝協議頁面,點選我同意此協議,填寫安裝配置,設定資料庫地址為db,安裝MySQL資料庫時我們已經設定密碼為123,這裡也填寫123,參考頁面如下:

2. 安裝OpenRASP

1、安裝ES服務

    docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 elasticsearch:5.6

2、安裝mongodb

    docker run -itd --name mongo -p 27017:27017 mongo 

3、下載rasp-cloud

    wget https://packages.baidu.com/app/openrasp/release/latest/rasp-cloud.tar.gz

4、修改配置檔案,把127.0.0.1更換為本機IP

    vim rasp-cloud-2021-02-07/conf/app.conf

5、啟動後臺管理系統

    ./rasp-cloud-2021-02-07/rasp-cloud -d

6、訪問後臺

    http://172.26.81.233:8086/

7、點選新增主機,然後選擇你對應的語言去下載安裝包,我這裡是PHP,所以選擇PHP伺服器.

下載 PHP 安裝包

curl https://packages.baidu.com/app/openrasp/release/1.3.6/rasp-php-linux.tar.bz2 -o rasp-php-linux.tar.bz2  
tar -xvf rasp-php-linux.tar.bz2  
cd rasp-\*/

install.php 進行安裝

./install.php

預設安裝路徑為 /opt/rasp,可替換為其他路徑

php install.php -d /opt/rasp --heartbeat 90 --app-id c0c523ce311cef92c6f3e9eee306777c99010ce7 --app-secret 0njm1mPafaCGV3cyY15BnOauu4BeqqlC62auGpU8uJk --backend-url http://172.26.81.223:8086/

重啟 PHP-FPM 或者 Apache 伺服器

service php-fpm restart

apachectl -k restart

五、實踐案例

我們的靶場已經新增成功了,現在模擬黑客手段攻擊靶場,檢測一下OpenRASP的防護能力,這裡我用工具burp suite去掃描我的靶場,可以看到下圖掃到了XSS跨站指令碼,密碼明文傳輸,SQL隱碼攻擊

OpenRASP的攻擊事件中記錄了3334條記錄,

漏洞列表中可以看到它攔截到的漏洞,

預設是隻安裝防護外掛,還可以下載iast互動式掃描外掛,


作者: 陳婷

釋出時間:2021年3月21日

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章