Create a Post
cancel
Showing results for 
Search instead for 
Did you mean: 
Scott_Liu
Employee
Employee

[CloudGuard open-appsec] PoCスタートアップガイド

PoCを実施する場合、理想的には、以下の3点をテストしたい:

- open-appsecの機能確認。攻撃を効果的にブロックする。

- open-appsec稼働中の必要なリソース。特にModSecurityなど他製品との比較。

- open-appsecは、ウェブアプリケーションのすべての正当なトラフィックを許可する。

検証環境構成の紹介

open-appsecは、NGINXまたはKong Gatewayコンテナと統合してDockerまたは同様のコンテナ化されたプラットフォーム上にデプロイすることができ、NGINXリバースプロキシ、Webサーバー、またはKong API Gatewayによって提供されるすべてのアプリケーションとAPIに保護を提供する。

NGINXKong Gatewayには、open-appsecアタッチメントを含む拡張コンテナイメージが提供されています。このアタッチメントは、検査のためのトラフィックを open-appsec エージェントコンテナに送信する。

Picture1.png
前提条件 - OWASP Juice Shopのデプロイ

テスト用のウェブアプリケーションJuice Shopを検証Linuxサーバーに構築。

 

sudo docker pull bkimminich/juice-shop
sudo docker run -d -p 3000:3000 bkimminich/juice-shop
sudo docker ps

 

Juice Shopは実行中のステータスを確認できたら下記URLでアクセスしてみる。

http://<server IP>:3000

前提条件 - SaaSテナントでのエージェントプロファイルを作成

  1. my.openappsec.io 上の SaaS テナントへのアクセス (SaaS 管理用 WebUI):https://my.openappsec.io
  2. プロフィールの作成
  3. ポリシーの実施(Enforce)
  4. トークンの取得

Dockerによるインストール(中央管理型)

下記コマンドでコンテナをデプロイして実行する。

 

sudo docker pull ghcr.io/openappsec/agent:latest
sudo docker run --name=open-appsec-agent-app \
  --ipc=host \
  -v=./agent-container/conf:/etc/cp/conf \
  -v=./agent-container/data:/etc/cp/data \
  -v=./agent-container/logs:/var/log/nano_agent \
  -it \
  -e registered_server='NGINX Server' \
  -e user_email=scottl@checkpoint.com \
  -d ghcr.io/openappsec/agent:latest /cp-nano-agent \
  --token cp-dexxxx42-xxxx-xxxx-xxxx-a458cbxxxx21b4e5a061-xxxx-xxxx-xxxx-xxxxxxxxxxx
sudo docker pull ghcr.io/openappsec/nginx-attachment:latest
sudo docker run --name open-appsec-nginx \
  --ipc=host \
  -v=./nginx/conf:/etc/nginx \
  -v=./nginx/logs:/var/log/nginx \
  -p 80:80 \
  -d ghcr.io/openappsec/nginx-attachment:latest
sudo docker ps

 

この時点で、GUIポータルでエージェントが接続されたことを確認できる。

Picture2.png

次にDockerfile and defaultを用意してビルドする

NGINXupstreamウェブアプリを設定するため、下記Dockerfiledefaultファイルサンプルを参考ください。

Dockerfile

 

FROM ghcr.io/openappsec/nginx-attachment:latest as open-appsec-nginx
ENV NGINX_SERVER_FQDN=<server ip>
COPY default /etc/nginx/conf.d/default.conf
RUN sed -i s/\${NGINX_SERVER_FQDN}/$NGINX_SERVER_FQDN/g /etc/nginx/conf.d/default.conf
ENTRYPOINT ["nginx", "-g", "daemon off;"]

 

上記<server ip>をサーバーをアクセス可能なIPを置き換えてください。

NGINXdefaultファイルは下記URLでサンプルを参考ください。

https://github.com/chkp-stuartgreen/appsec-demo/blob/main/nginx-reverse-proxy/default

下記コマンドでコンテナをビルドする。

 

sudo docker build -t nginx-att:test .
sudo docker run -it --name nginx-att-test \
  --ipc=host \
  -v=./nginx/logs:/var/log/nginx \
  -p 80:80 \
  -d nginx-att:test

 

次のリンクからNGINX経由でJuice Shopにアクセスできる:

http://<server ip>

アセットを作成

GUIポータルで下記アセットを作成する。

Picture3.png

THREAT PREVENTIONタブでPreventモードに変更する。

※通常は数日間の学習期間を経過してPreventモードに変更する。

Picture4.png

ウェブアプリの保護をテストする

waf-comparison-projectのようなツールを使って本番環境で簡単なセキュリティテストを実行したり、単純なSQLインジェクション文字列を発行してログをチェックしたりすることができる。SQLインジェクション攻撃を使って下記ログ画面でブロック履歴を確認する例である。

Picture5.png

まとめ

ベース機能を確認するため、自分の検証環境だけではなく、ここで入手できる無料の仮想プレーグラウンドでも簡単にできる。詳細については、open-appsecドキュメントチュートリアルを参照してください。

 

参考資料

 

 

0 Kudos
0 Replies
Upcoming Events

    CheckMates Events