OCIのWAFサービスを使ってみた

こんにちは。Oracle Cloud Infrastructure(OCI)特集 編集部です。
今回の記事では、検証用に作成したWebサーバに対して脆弱性攻撃を行い、WAFで攻撃を防ぐ方法をご紹介します。

【前提】
・OCIコンピュートサービス内にWebサーバを構築しておりインターネット公開している事。
※OSバージョンはOracle Linux7.7となります。
※インターネット公開用パブリックIPは「129.146.175.40」になります。
・事前にドメイン取得サービスから、独自のドメイン名を取得している事。
※今回の手順の作成にあたっては、freenomという無料ドメイン取得サービスを利用して予め取得した
 waf.edgeservicesverifitecv.ml という無料のドメインを利用しています。

【作業のながれ】
1.WAFポリシーの作成
2.インターネット公開用DNSへのレコード登録
3.WAFポリシー(ブロック無し)を通した接続テスト
4.WAFポリシーの適用
5.WAFポリシー(ブロック有り)を通した接続テスト

1.WAFポリシーの作成

OCIのコンソールにログインします。
画面左上のメニューのアイコンをクリックし、
メニューから「セキュリティ>WAFポリシー」を選択します。

 

WAFポリシーの作成を選択します。

 

WAFポリシーの作成画面に移動し、「プライマリードメイン」に
前提条件にて取得したwaf.edgeservicesverifitecv.ml を記述し、
URIにWebサーバに紐つくパブリックIP「129.146.175.40」を
記述します。
※今回はポリシー名をWaf verif policy 1としています。

 

スクロールダウンし、「WAFポリシーの作成」をクリックします。

 

Waf verif policy 1が表示されますので、「CNAMEターゲット」をメモしておきます。

 

スクロールダウンし、保護ルールの「表示」をクリックします。

 

保護ルールの一覧に移動しますので、
オフになっている「Shell Shock」ポリシーにチェックを入れて下さい。
※2020年03月31日現在のCVE番号:958024

※Shell Shockとは:アップル社のMacOSや各種LinuxOSで採用され、
デフォルトログインシェルであるBashのセキュリティホール群を
指す言葉になります。
 

スクロールアップして、「アクション>ブロック」をクリックします。
※この時点では、まだポリシーは適用されていません。

 

更にスクロールアップして「ルール設定」タブをクリックし
WAFがブロックした時のメッセージとコードをメモします。

2.インターネット公開用DNSへのレコード登録

登録内容は
レコード名(Name)WAF
※レコード名については、大文字・小文字の区別無く使えます。
タイプ:CNAME
(Target) waf-edgeservicesverifitecv-ml.b.waas.oci.oraclecloud.net
として登録します。


3.WAFを通した接続テスト

インターネット経由でアクセス出来るPCからwaf.edgeservicesverifitecv.ml へcurlコマンドでアクセスしコード200で応答が返ってくる事を確認します。

4.WAFポリシーの適用

前工程で「ルール設定」タブを開いたままのブラウザーに戻り、スクロールアップします。「すべて公開」ボタンが表示されますので、クリックします。

5.ポリシーの動作確認

インターネット経由でアクセス出来るPCからwaf.edgeservicesverifitecv.ml へcurlコマンドでShellShockを突くアクセスを実施し
「ルール設定」タブでメモした応答が返ってくる事を確認します。

 

WAFサービスの紹介は以上となります。