最終更新日:2025.03.10

運用を簡単に自動化!WafCharmの最新情報と構築手順

WAF⾃動運⽤サービスである「WafCharm 」は、管理画面のリニューアル、機能、料金の改定があり大幅に進化しました。 以前の記事からアップデートした内容含めてあらためて構築方法を解説します。

WafCharmとは

WafCharmの概要

WafCharmとは、株式会社サイバーセキュリティクラウド社様にて提供されるAWS WAFのルール運⽤を最適化させるWAF⾃動運⽤サービスです。主な機能を紹介します。

WAF ルールの運用:
OWASP Top 10に代表される主要な脆弱性から新たに発見された脅威まで、
幅広い攻撃に対応できるWAFのルールを自動適用します。
カスタムルールの作成(UPDATE):
特定のIPアドレスや国・地域からのアクセスを遮断するIPルール、GEOルール、
そして短時間での大量アクセスを制限するレートベースルールを、WafCharm 内で一元的に設定・管理できます。
Webサイトの改ざん検知(NEW)
登録されたWebサイト(FQDN)を日々継続的にチェックし、改ざんされているかどうか確認します。
Webサイトの改ざんが検知された場合、登録された管理者のメールアドレスにすぐ通知します。
ダッシュボード、レポート、攻撃通知:
攻撃されていることの通知やWAFのログを分析し攻撃検知したルールの割合や、アクセス元の国・地域やIPアドレス、アクセスのあったパスなど、不正アクセスやサイバー攻撃に関する情報を簡単に確認できます。
サポート:
24時間365日のサポート、万が一のトラブル発生時でも、原因特定やルール調整などはWafCharmサポートが対応します。
WafCharmイメージ図

引用:https://www.wafcharm.com/jp/新規ウィンドウで開く

WafCharmの料金

以下のとおりの料金です。

プラン 30日間フリートライアル ビジネス エンタープライズ
月額料金(①+②+③) 30日間無料 112,000円~ 192,000円~
①WAF 設定ユニット料金 30日間無料 12,000円~ 12,000円~
②プラン料金(Webリクエスト数) 30日間無料 100,000円~
(1,000万件まで)
180,000円~
(1億件まで)
③Webリクエスト超過料金 30日間無料 900円 / 100万件 400円 / 100万件

①WAF 設定ユニット料金
WafCharmにて管理するAWS WAF WebACLごと毎に発生します。

②プラン料金
プラン毎に固定の料金です。このプラン料金にはある程度までWebリクエストも含まれています。
プランに含まれている以上のWebリクエストが発生していた場合、③Webリクエスト超過料金が発生します。

③Webリクエスト超過料金
プランに含まれている以上のWebリクエスからの超過料金、WAF 設定ユニットが複数あった場合は、すべての合計のWebリクエストで計算されます。

基本的にはビジネス、規模が大きくなった場合は、エンタープライズを選択するパターンが一般的です。
簡単に検証したい、システム構築中のテスト段階の場合はトライアルを選択するのがお勧めです。

詳細は料金|WafCharm|WAF自動運用サービス新規ウィンドウで開くをご参照ください。

WafCharmを構築してみよう

前提条件として下図の構成が完成しているものとします。

WafCharm構成図

前提条件

  • ALB経由でWebサーバにアクセスできる環境
  • ALBにAWS WAF WebACLが関連付けされている
  • ログ保管用のS3バケットが構築済みである
  • Admin権限のあるIAMユーザーで作業している
  • CloudFormationにて使用できるIAM Role作成権限のあるRoleがある

WafCharmのCredentialの登録

注意:
WafCharmの管理コンソールとAWSのコンソールを行き来します。
WafCharmとAWSアカウントを連動させるためにIAM ロールを作成します。

(1)WafCharmコンソールにログイン

ログインページ(https://console.wafcharm.com/ja/sign_in)新規ウィンドウで開くからWafCharmにログインします。

WafCharmログイン画面

(2)Credential登録ページに移動

左側のペイン「Credential」をクリックします。
表示されたページから「IAM Roleを新規作成して登録する」の登録をクリックします。

Credential登録ページ①

「次のステップへ」をクリックします。

Credential登録ページ②

(3)AWS アカウントIDとロール名を入力しテンプレート生成

AWSアカウントのIDとロール名(今回はWafCharm-roleとします)を入力し、「テンプレート生成」を クリックします。

テンプレート生成

生成されたテンプレートURLをクリップボードにコピーします。

テンプレートURLをコピー

(4)ロールの作成

ブラウザの別タブを開き、コピーしたURLをブラウザのURLに張り付けにアクセスします。

ブラウザへ貼り付けしアクセス

AWSアカウントにログインが必要になった場合はログインを実施します。

必要な場合はAWSアカウントへログイン

表示されたCloudFormationのページで、事前に用意しているCloudFormation用のロールを作成して 「スタックの作成」をクリックします。

表示されたページでスタックの作成をクリック

スタックのステータスがCTEATE_COMPLETEになったら、WafCharmのコンソールに戻ります。

ステータスをCTEATE‗COMPLETEになれば、WafCharmのコンソールに戻る

(5)Credentialの登録

「検証」をクリックしてWafCharmからAWS環境のRoleにアクセスできるか確認します。
検証結果が問題なければ検証OKの文字が表示され「次のステップへ」をクリックしてください。

検証して次のステップへクリックする

WafCharm上で、AWS資格情報(Credential)の名前をCredential Store名として
記入後に「設定完了」をクリックします。

設定完了をクリックする

Credentialの登録完了です。

登録完了画面

WAF Configの作成

WafCharmのメイン機能であるAWS WAFのルール運用の設定をします。

(1)WAF Config登録ページに移動

左側のペインから「WAF」をクリックします。
表示されたページから「新規登録」をクリックします

Config登録ページに移動

(2)Web ACLの選択

Credentialは【Credentialの登録】で作成したCredentialを選択します。
Regionは、WafCharmと関連付けしたいAWS WAFのWebACLがあるリージョンを選択します。
「Web ACL取得」をクリックすると、Web ACL一覧が表示されるのでWafCharmと関連付けしたい
AWS WAFのWebACLを選択し「次のステップへ」をクリックします。

Web ACL選択

(3)基本設定

WAF Config名は、WAF Configを管理するために識別しやすい名前を記載します。
Ruleポリシーは、Advancedを選択します。
※RuleポリシーのLegacyは、WafCharmの旧管理画面にてご提供していたルール構成です。
選択するメリットはとくにありません。

Credential Storeは、【Credentialの登録】で作成したCredentialを選択します。
すべて選択後「次のステップへ」をクリックしてください。

基本設定

(4)ルール設定

ルール設定画面です。カスタムルールが必要場合は設定しますが、今回は設定しないので「次のステップへ」をクリックします。

ルール設定

IPアドレス 特定のIPアドレスからのアクセスをブロックする、特定のIPアドレスからの通信を常に許可(他のルールは評価されない)するなどの設定行えます。
GEO 特定の国・地域からのアクセスのみをブロックするなどの設定行えます。
Rate-base 同じアクセス元から大量のアクセスなど、不正なプログラムからの急激なアクセスをブロックするなどの設定を行えます。
Bot Botと判断される通信の制御を行えます。
悪意のあるBotのブロックなどの設定を行えます。
正規表現 WafCharmが提供する基本ルールについて特定のルールの無効化などの設定を行えます。
例外設定 WafCharmは、自動的に怪しい挙動をするIPアドレスからのアクセス拒否する設定を行います。この拒否するIPリストをDenylistと呼びます。
ここではDenylistに登録しない例外的なIPアドレスを設定できます。
WafCharm の挙動のテスト中、Denylistに入らないようにするなどの設定が行えます。

(5)ログ・通知設定

後述する手順で実施するので、ここでは何もせずに「次のステップへ」をクリックします。

なにもせずに次のステップへクリック

(6)登録内容の確認

「登録する」をクリックします。

登録するをクリック

(7)ローディングアイコンの確認

ローディングアイコンが緑色のチェックマークになったことを確認します。

ローディングアイコン確認

AWS WAF ログ出力設定

※ここからはAWSのマネジメントコンソールでの作業になります。
WafCharmのレポート作成などの機能を有効にするためにAWS WAFのログ出力を有効にします。

(1)ログ設定ページへの移動

AWS WAFのページよりログ出力したいWeb ACLの詳細設定画面を開きます。
「Logging and metrics」 のタブを選択します。Logging欄の「Enable」をクリックします。

ログ設定ページへの移動

(2)ログの有効化

Logging destinationにて「S3 bucket」を選択し、Amazon S3 Bucketにて事前作成しておいたS3バケットを選択します。

注意:
AWS WAFのログ出力バケット名は必ず「aws-waf-logs-」が頭につく名前でなければなりません。
Redacted fieldsは、個人情報が含まれているなどの理由でログ情報として含めない情報を指定します。
今回はとくにないので設定しません。
Filter logsは、ログとして記録しないログのフィルター設定をします。
今回は設定しません。

「Save」をクリックします。

ログの有効化

(3)ログが有効になったことの確認

Loggingが「Enable」であることを確認します。

ログの有効化の確認

WAF ログ・通知設定

WafCharmとAWS WAFのログの連携とWAFログアラートの設定を行います。
この設定を入れることで以下の機能が利用できるようになります。

  • WAFログ解析結果をもとにした、IP Denyリストの動的更新機能
  • マッチした結果を通知するWAFログアラート機能
  • レポート機能
  • WAFログの検索機能
  • WAFログ内容の集計結果を参照するダッシュボード機能
  • WAFログアラートメール

(1)ログ・通知設定画面へ移動

左側のペインから「WAF」をクリックします。
表示されたページで設定したいWAF Configをクリックします。

ログ通知設定画面へ移動

「ログ・通知設定タブ」をクリックし、「編集」をクリックします。

ログ通知設定タブで編集

(2)WAFログ連携

「WAFログをWafCharmに連携する」にチェックを入れます。
以下の2つにチェックを入れます

  • 対象のWebACLでWAFログ出力設定が有効化されており、S3への出力となっていること
  • WAFログに含まれる情報に個人情報や機密情報が含まれていないこと
WAFログ連携

(3)ログ・通知設定

「WAFログアラート」のタブをクリックします。
「WAFログアラートを使用する」にチェックを入れます。
通知先メールアドレスに送信したいメールアドレスを入力します。
「登録」をクリックします。

ログ通知設定

(4)登録内容の確認

「登録」をクリックします。

登録内容の確認

(5)ローディングアイコンの確認

ローディングアイコンが緑色のチェックマークになったことを確認します。

ローディングアイコンの確認

まとめ

新しいWafCharmの構築を実施しました。
このほかにカスタムルールの作成やWeb改ざん検知機能の有効化などWafCharm の機能有効活用するためのさまざまな設定がありますので、ぜひ有効活用してみてください。
もしご興味を持っていただけましたらぜひ当社にご相談 新規ウィンドウで開くください。

※本記事を執筆にあたり、参考にした資料
https://console.wafcharm.com/ja/help新規ウィンドウで開く

作者プロフィール

名前 鈴木(ヨッシー)
担当のAWS業務 営業支援、ソリューションアーキテクト
AWSの持っている資格 AWS認定資格全冠(12冠)
好きなAWSのサービス Amazon Recognition
趣味 ゲーム
ひとこと WAFはとりあえずWafCharmにしとけばよい
プロフィールアイコン

関連サービス

導入のお問い合わせはこちら

AWSやAmazon WorkSpacesの導入から接続回線、運用・保守まで何でもお任せください。

お問い合わせ

TOPへ戻る