くろイヌ(サイバー犬)のあしあと

サイバーセキュリティとかIT技術関連とか

【OCI】oracle cloud infrastructure-WAFポリシー編

こんにちは、こんばんは。くろイヌ(サイバー犬)です。


OCIで気になっていたWAF(Web Application Firewall)について構築体感してみました。
WAFを試すのにちょうどいい題材がありましたので、実践体感してみました。

 Pythonで学ぶ Webアプリのセキュアコーディング
 脆弱性の見つけ方・直し方が身につく実践入門

https://www.amazon.co.jp/dp/4295023000?ref=ppx_yo2ov_dt_b_fed_asin_title
※本に記載のある環境は、Pythonのバージョンを指定のバージョンと一致させないと
 手順通りには構築できませんでした。

もくじ

◆全体像

 全体構成概要は以下です。PoC要素のため、バランサーのBackendSetを1台で構築しています。
実環境では、バランサーとして機能しません。PoCなのでご了承ください。

[犬小屋]からインターネット経由でOCI上のお試し環境にアクセスする構成です。


◆お試し環境

手順に沿って、OCI上のインスタンスにお試し環境を構築しました。

Top画面

SQLインジェクションページ

パスワード入力欄に [ ' OR '1' = '1 ]を入力。

◆OCIのWAFポリシーについて

 ロードバランサーに適用するWAFタイプがWAFポリシー。今回試すタイプ。

 共有責任モデル

◆OCIのWAFポリシーをロードバランサーに紐付け構築する

①Identity & Security >Policies
 ポリシーをとりあえず作成。とりあえず、ポリシー名「wafDSCLabWAF」。

②ロードバランサーと紐付け

紐付いた状態

③保護ルールを作成

推奨をとりあえず選択

④アクション指定
アクションのPre-configured Check Actionをわかりやすくするため、403で返す。

●アクションの種類
Pre-configured Check Action -
アクセスはブロックしないが、ルールが検知されたことをログに記録
Pre-configured Allow Action
ルールに一致した場合に、残りのルールをスキップし、アクセスを許可する
Pre-configured 401 Response Code Action
ルールに一致した場合に、401コードを返却する

◆SQLインジェクションを試してみる

 ①正常動作確認
 
 

 ②ルール検証
 
パスワード入力欄に [ ' OR '1' = '1 ]を入力。
 
 403のメッセージページが表示される。
 
 ログでも確認。
 

WAFポリシーでSQLインジェクションを検知、アクションでブロックされたことが
確認できました。


以上、お疲れ様でした。(`・ω・´)ゞ