PuppetによるBarracuda Web Application Firewallの自動化

セキュリティとストレージのリーディングカンパニー > ブログ > バラクーダネットワークス > PuppetによるBarracuda Web Application Firewallの自動化

PuppetによるBarracuda Web Application Firewallの自動化
Aravindan Anandan

2017年08月14日

アプリケーションセキュリティの自動化

内容:

はじめに

ビジネス要件に迅速に対応できるアプリケーション開発を可能にするインフラの導入が進んでいます。この領域で威力を発揮しているのがPuppetをはじめとする構成自動化ソリューションであり、従来のアプリケーション開発プラクティスから新たなプラクティスへの移行で成果をあげています。
ところが一方で、セキュリティ脅威の急増を背景に新たな課題も浮上しています。課題の解決には、実証されたセキュリティのベストプラクティスを採用し、アプリケーション開発ライフサイクルのアジリティを向上する必要があります。

Barracuda Web Application Firewall(WAF)は、アプリケーションセキュリティのニーズに応えるクラウド対応セキュリティソリューションとして、長年の実績を誇っています。今日は、アプリケーションセキュリティのアジリティ向上を目指したプラクティス採用に向けて、Barracuda Web Application Firewallがどのような役割を果たすのかを説明します。具体的には、Microsoft Azureをはじめとするパブリッククラウドプラットフォームにおいて、Puppetのような構成自動化ソリューションとBarracuda Web Application Firewallを組み合わせて活用する方法をご紹介します。では最初に、このような環境を実現するためのビルディングブロックを概要しましょう。

Microsoft AzureでのBarracuda WAFのプロビジョニング

Microsoft Azureインフラで仮想マシンを導入する作業には、Azureソリューションテンプレートを使用すれば簡単に実行できます。Azure Resource Manager(ARM)テンプレートは、Barracuda WAFのシームレスなインストールを可能にするAzureリソースの作成にも使用できます。リソースの例として、既存のAzureストレージアカウントの使用、新規作成、ネットワークトラフィックのフィルタ処理に使用するネットワークセキュリティグループ、Barracuda WAF仮想マシンに接続するネットワークインタフェースカード、NICに割り当てるパブリックIPなどがあります。また、作成したリソースをリソースグループに追加すれば、他のテンプレートによる参照も可能です。Barracuda WAF向けのAzureテンプレートでは、以下のリソースが生成されます。

Barracuda WAF向けREST API

Barracuda WAFの自動構成には、REST APIフレームワークを使用します。WAFの構成作業は、ほとんどすべてをAPI呼び出しで実行できます。以下は、API呼び出しでサービスを生成する例です。

curl http://<systemip>:<mgmt-port>/restapi/v1/virtual_services -u  'token:'-X POST -H Content-Type:application/json -d '{"name":"demo_service", "ip_address":"<ipaddr>",  "port":"80", "type":"http",  "address_version":"ipv4",  "vsite":"demo_vsite", "group":"demo_vsite_group"}'

上記の例では、virtual_service APIへの呼び出しが、POSTリクエストに送信されています。リクエストでは、JSONボディやサービス生成に必要なパラメータと値が指定されています。この例は、REST APIv1向けに記述されています。
Barracuda Web Application Firewallのバージョン9.1ファームウェアで新しくなったREST APIは、Barracuda WAFで可能なほぼすべての構成で使用できます。

アプリケーションセキュリティのベストプラクティスガイドライン

新しいアプリケーションや既存のアプリケーションの新バージョンをネットワークにインストールする場合、社内で規定されたセキュリティガイドラインにアプリケーションを準拠させる必要があります。予期しないインシデントを回避し、迅速なインシデント対策を講じる上で非常に重要なのが、運用開始前のガイドラインチェックです。

一般的なガイドラインは、次のポイントを踏まえて作成されています。


次に、アプリケーションセキュリティガイドラインを図で示します。

ブルーグリーンデプロイメント

ブルーグリーンデプロイメントとは、全く同じ環境を2つ(ブルーとグリーン)運用することで、ダウンタイムとリスクを回避する手法です。

ブルー環境とはデフォルトの本番環境です。一方、グリーン環境とはアイドル状態の環境であり、Puppet AgentがPuppetカタログを実行してワークフローを生成します。

WAF構成のチューニングが完了したら、アプリケーションURLを本番環境のURLに変更し、サイトをライブ稼働します。

Puppet

Puppetは、自動構成のパイオニア的ツールであり、エンタープライズワークフローの構成や管理の自動化において高く評価されています。Puppet ForgeはPuppetモジュールのハブであり、ここから公開モジュールをダウンロードできます。

アプリケーションセキュリティの自動化手法

ここでは、以上のベストプラクティスガイドラインを、Puppet、Barracuda Web Application Firewall、Barracuda Vulnerability Remediation Serviceで自動化する方法を説明します。このPuppet環境では複数のPuppetモジュールが稼働し、アプリケーションセキュリティ自動化ライフサイクルで行うタスクがマニフェストファイルで指定されています。この例では、自動化機能を説明するために、Puppet Forgeモジュールのモジュールをいくつか使用しています。Puppet環境は、次に示す構造を持っています。

自動化のワークフロー

ポイント:

  • ・azureprofilesモジュールを使用して、ストレージアカウントなどのAzureリソースを作成します。また、Azureリソースを追加作成する際のプレースホルダとしても使用できます。

  • ・azurerolesモジュールは、他のモジュールのインクルードに使用します。

このコード例は、次のワークフローに沿って作成されています。

Puppetマニフェストの例

以下は、ARMテンプレートを使用してBarracuda WAFを作成するPuppetマニフェストです。

Barracuda WAFの設定

AzureでのBarracuda WAFのプロビジョニングが完了したら、「azurecudawafconfig」モジュールを使用してWAFの構成を行います。このRubyスクリプトでは、REST API呼び出しを使用してWAFに接続し、サービスとルールグループを設定しています。
モジュール内のサンプルスクリプトは、次の処理を行います。

  1. EULAを取得
  2. WAF管理者のユーザ名とパスワードを認証し、RESTAPIアクセストークンを取得
  3. RESTAPIに接続し、サービスグループを2つ作成
  4. HTTPSサービスで使用する証明書を生成
  5. 1つのサービスグループでHTTP、もう1つでHTTPSを生成
  6. Barracuda WAFをBarracuda Cloud Controlに接続

Barracuda Vulnerability Remediation Service(VRS)

Barracuda VRSは、Barracuda WAFのアドオンサービスであり、無償で提供されています。WAFと連携してアプリケーションセキュリティ対策を実装し、スキャン、修復、メンテナンスを自動実行します。
REST API呼び出しにより、WAFでのサービスリスト、スキャンの構成や実行など、重要な機能をサポートします。モジュール内の同じスクリプトを使って、管理者が指定したサービスのスキャンを作成できます。
また、WAFにサービスが追加された時点でスキャンを自動実行することも可能です。

次のステップ

Puppet Agentが完了すると、WAFのスキャンサービスの準備が整います。アプリケーションインフラのすべてのリソースは、使いやすいインタフェースを備えたBarracuda Cloud Controlで一元管理できます。

リポジトリとバージョン管理

環境全体のバージョン管理により、将来的なモジュールの再利用が可能になります。ソフトウェアコードの保守やバージョン管理には、GitHubのような一般的なハブを使用できます。

まとめ

今日のビジネスでは、情報テクノロジのあらゆる側面でアジリティが要求されています。そのためには、アジャイルなセキュリティプラクティスを実践することはもちろん、インフラに最適なセキュリティを見極める必要があります。アプリケーションセキュリティはビジネスの生命線であり、ビジネス要件を満たすことができるセキュリティソリューションを採用しなければなりません。

Barracuda Web Application Firewallは、アプリケーションで要求されるセキュリティだけでなく、人的ミスをなくして生産性を向上する自動化フレームワークを実現する幅広い機能を備えています。


アラヴィンダン・アナンダン(Aravindan Anandan)は、アプリケーションセキュリティ担当のBarracuda Networksのテクニカルマーケティングエンジニアです。

アラヴィンダンとつながりたい方は、LinkedInからどうぞ。


*本内容はBarracuda Product Blog 2017年 7月18日 Automation of Barracuda Web Application Firewall with Puppet を翻訳したものです。


コラム(バラクーダブログ)一覧へ

お役立ち情報満載の資料ダウンロード|機能詳細、導入構成、モデル一覧などお役立ち情報が満載です。

お問い合わせはこちら

03-5436-6235 受付時間 平日9:00〜17:00

Webからのお問い合わせはこちら