WAF(Web Application Firewall)をご存知でしょうか?WAFとは、ウェブアプリケーションの脆弱性を悪用した攻撃などからWebアプリケーションを保護するソフトウェア、またはハードウェアです(IPAの資料より)。何だか難しそうですね。
それより、何となくお金がかかりそう。でも、インターネットには悪い人がたくさんいますし、よく分からないけどセキュリティ的に必要だと思いますよね。
そこで本記事では、そんな疑問を払拭するために、WAFとは何かから始まりAWS WAFまでを解説します!これからインターネット上にサービスを展開しようとしている方、またはすでに公開している方、ぜひ参考にしてください。
WAF(ワフ)とは
冒頭でお伝えしたとおり、WAFとは悪意からWebシステムを守るためのものです。WAFを導入すると、インターネットとWebシステムはWAFを介して通信をします。WAFはいわゆる関所だと思ってください。ファイヤウォールとのちがいを説明すると、WAFの特徴がよく分かります。
ファイヤウォールは、送信元のIPアドレスやポート番号をもとに通信を制限するものです。一緒じゃないか、と思われるかもしれませんが、ファイヤウォールは通信の中身にタッチしないという特徴があります。
また、Webシステムはインターネット上に公開するのが普通です。どこからアクセスされるか分かりません。つまりファイヤウォールで通信元を特定して制限するのが難しいのです。
一方WAFは、ファイヤウォールの役割を含みますが、さらに通信内容まで関与します。例えば、インターネットの外からWebシステムに対する通信(インバウンド)におけるSQLインジェクション、逆方向(アウトバウンド)におけるカード情報や電話番号を検知する機能、つまり情報漏洩を防ぐ機能を備えています。
AWS WAFとは
WAFが何なのか分かったし、その必要性も分かったけど、お金がかかりそう、技術的に難易度が高い、専任の要員を割り当てるほど人はいない、などなど導入にハードルが高そうですよね。そこで、AWS WAFの出番です。
AWS WAFとは
AWS WAFとは、文字どおりAWSの提供するWAFサービスです。前述のWAFの機能プラスアルファが、マネジメントコンソールから必要事項を入力するだけで手に入ります。
AWS WAFの特徴・機能
前置きが長くなりましたが、AWS WAFそのものについて、特徴や魅力をお伝えします。AWS WAFは以下3機能から構成されています。
- AWS WAF
- AWS Shield
- AWS FMS
順に解説していきましょう。
AWS WAF
AWS WAFの中核をなす機能です。インターネットからのアクセスに対して、どのようにフィルタリングするのかをあげてみましょう。
- 指定したリクエスト以外のすべてのリクエストを許可する
- 指定したリクエスト以外のすべてのリクエストをブロックする
早い話、定義した条件に合致するリクエストを「許可する」のか「ブロック」するのか、もっといえば許可する条件を登録するのか拒否する条件を登録するのか、です。
この条件をリストアップしたものを、Access Control List(ACL)といいます。
ACLを設定後、実際にリクエストを拒否するか許可するかを実行せず、カウントだけをする機能もあります。カウントだけを取得して、問題なく検出できていたら実行、ということもできます。
AWS Shield
DDoS攻撃という名前を聞いたことがあるでしょうか?DDoS攻撃は、攻撃したい対象に対し、すでに乗っ取った複数のサーバーから標的に対し一気に攻撃を仕掛ける手法です。
AWS ShieldはこのDDoS攻撃に特化したサービスです。Standard版とAdvanced版があります。
AWS FMS(Firewall Management System)
AWS FMSは、複数のアカウント間、または複数のリソース(サーバーやロードバランサなど)でのACLの管理を行うサービスです。サーバーやシステムごとにルールが異なる場合、このAWS FMSが有効です。
AWS WAFのメリット
今までWAFとは何か、AWS WAFとは何かを見てきましたが、AWS WAFを導入するメリットをご紹介します。
マネジメントコンソールで管理可能
AWS WAFも他のAWSサービスと同様に、AWSマネジメントコンソールで管理や操作が可能です。一般的なWAFを導入すると、それだけ別管理になってしまうのでどうしても煩雑になります。AWS WAFだと一元管理できるので便利ですね。
他のAWSサービスとの連携
AWS WAFは、AWS CloudFrontやAWS ロードバランシングとの相性が良く、連動可能です。ここはやはりAWS内のサービスであることが大きなメリットとなりますね。
コストメリットと導入の容易さ
何といってもコレ!というくらいの特徴です。AWS WAFは、事前契約などは一切不要で、しかも前払金なしの完全従量制です。ちょっと試したいだけ、という場合でも低価格で試すことが可能です。また別途ハードウェアやソフトウェアの導入も不要で、製品固有のノウハウなども必要ありません。
料金
1ACLごと、1ルールごと、それらに加えてアクセス数に応じて料金が決まります。1ACLあたり5USD/月、1ルールあたり1USD/月、100万リクエストあたり0.60USDとなっています。
始め方
AWSマネジメントコンソールから導入できます。ルールは、以下の順に決めます。
ルール → コンディション → Web ACL
フィルタリングの条件をルール、複数のルールの組み合わせをコンディション、複数のコンディションの組み合わせがWeb ACLとなります。
ルール
以下は、ルールの設定例です。
<IPアドレス>
<HTTPヘッダ>
<SQLインジェクション>
コンディション
次は、上記ルールの組み合わせであるコンディションの設定です。以下は例です。
<コンディション例1>
<コンディション例2>
Web ACL
そして最後はコンディションを組み合わせて、Web ACLの出来上がりです。例えば、コンディション例1に該当しない、そしてコンディション例2に該当しない、ならば通過、といった具合です。
まとめ
本記事では、AWS WAFについて解説しました。AWSにてWebシステムを公開する方、または予定している方は、セキュリティ対策としてぜひAWS WAFの導入を検討してみてくださいね!