AWS再入門 – AWS WAF編
はじめに
当エントリはDevelopers.IOで弊社AWSチームによる『AWS サービス別 再入門アドベントカレンダー 2015』の6日目のエントリです。昨日5日目のエントリは吉田の『AWS Key Management Service(KMS)』でした。 このアドベントカレンダーの企画は、普段AWSサービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。 本日6日目のテーマは『AWS WAF』です。
目次
- AWS WAFとは?
- メリット
- 特徴
- セットアップに時間がかからず、APIとConsoleで操作可能
- 冗長化、スケールリングはAmazonにおまかせ
- 安価
- サービス利用のユースケース
- 今後注目すべき点
- AWS WAFを導入するためには?
- 設定について必要な要素
- 設定方法
- あわせて読みたい
- 公式情報
- Developers.IO関連エントリ
- さいごに
AWS WAFとは?
Webアプリケーションファイアウォール(WAF)とは、ウェブアプリケーションの脆弱性を悪用した攻撃からウェブアプリケーションを保護するセキュリティ対策の一つです。(IPA 独立行政法人 情報処理推進機構:Web Application Firewall 読本より)
Firewallや、IPS/IDSとは違い、以下のような攻撃に対して効果があるものです。Webアプリケーションファイアウォールなので、その他のホストへの直接の攻撃は防御できませんのでご注意ください。
攻撃名 | 攻撃内容 |
---|---|
アプリケーションDDoS | "Distributed Denial Of Service"の略で、サービスの妨害や停止を行う攻撃を行うホストがネットワーク上に分散しているもの |
SQLインジェクション | ウェブアプリケーションの通信内容に、外部からデータベースを不正に操作 |
クロスサイトスクリプティング | ユーザのアクセス時に表示内容が生成される「動的Webページ」の脆弱性、もしくはその脆弱性を利用した攻撃 |
特にAWS WAFは『Cloudfrontに統合されAPIによる自動化機能を持った、Webアプリケーションファイアウォール(WAF)』です。
2015年10月にセキュリティを加速させるため発表された新サービスの1つで、AWS InspectorやConfig Ruleと並ぶセキュリティ機能です。これからも機能拡張が進むと思われますので、今の持っている機能を知りつつ、新機能をしっかりと抑えていきたいと思っています。 そのため、再入門というはちょっと違うかもしれませんね。
メリット
AWS WAFを採用することで得られるメリットは、以下のようなものもあげられます。
- Web攻撃からの防御
- デプロイとメンテナンスの簡易化
- 開発プロセスにセキュリティを埋め込むことが可能
特徴
セットアップに時間がかからず、APIとConsoleで操作可能
今まで従来のWAFは、AWS MarketplaceからLaunchして複雑なルールなどをGUIやCLIで操作しているものが多く、APIで操作できるものはほとんどありません。 AWS WAFはCloudfrontに追加する形で導入できるため、既存でCloudfrontを利用している場合はすぐに使うことができます。 また、APIで制御できるため特定の通信をモニタリングや、遮断したいなどの要望に応じてAPIで設定でき、開発者がサービスと組み合わせた動作も可能となります。
冗長化、スケールリングはAmazonにおまかせ
Cloudfrontと統合されて動作し、冗長化やスケーリングを気にすることはありません。
安価
AWS WAFは、前払いの必要はありません。使った分だけ料金となります。以下の数で課金されます。
- 定義したWeb ACL
- ルール
- Webリクエスト数
ポイントしては、CloudFrontのディストリビューションにアタッチして使うことになるのですが、ひとつのACLで複数のCloudFrontに設定できます。ACLの使い回しができ流ため、価格メリットもあります。
目安としては、以下となります。
- テスト環境(1ルール):月額$6
- 小規模サイト(6ルール、58Mビュー):月額$46
- 中規模サイト(6ルール、260Mビュー):月額$167
これからの部分も・・・
AWS WAFを導入すれば、攻撃から全てが防御されるのでは? と思われるかと思いますが、そうではありません。
AWS WAFは特定の攻撃に対する調査や防御に利用できます。 しかし
- 攻撃パターンを理解し
- モニタリング設定し
- 取るべきアクションを設定する
必要があります。そのためには、専門的な知識が必要となります。 毎日更新されるシグネチャーとマッチングし既知の脆弱性などから予防する対応が必要な場合は、セキュリティベンダーの製品を用いる必要があります。 さまざまなセキュリティベンダーは、日々更新される様々な攻撃に対して対策を打っています。この部分については今後注目すべき点で紹介します。
サービス利用のユースケース
上述のような特徴を持つAWS WAFですが、主なユースケースとしては以下が挙げれます。
CloudFrontへのアクセス制限
IPアドレスでCloudfrontへのアクセス制限をできるため、非公開でテストしたい場合になどに有効です。
特定の攻撃に対する調査や防御
以下の例では、Layer7の通信をカウントできるため、AWSを使ってAPIサービスを提供しているシステムにてURIにAPIをバージョン情報を含み、古いバージョンのAPIアクセスをモニタリングしたり、遮断していました。 (re:Invent 2015 (SEC323) New: Securing Web Applications with AWS WAFで紹介されていた、connectwise社の例です。)
今後注目すべき点
AWS WAFは、単体で利用することもできますが、パートナー製品との連携によってより効果を発揮します。Alert Logic、Imperva、Trend Microなどです。動的にルールセットを更新することを考えるとパートナー製品は必須になるかと思います。
AWS WAFとImperva ThreatRadarによるIPレピュテーション #reinvent
AWS WAFとTrend Micro Deep Securityによるフルスタック防御について #reinvent
AWS WAFを導入するためには?
AWS WAFを導入するにはCloudfrontが必要です。アドベントカレンダー3日目のAWS再入門 Amazon CloudFront編を見ておきましょう。
また、 AWS WAFを使うためシステムにCloudFrontを導入した時の注意点まとめ
AWS WAF を CloudFront の機能と組み合わせて使うときのポイント #reinvent
を読んでおくと効果的です。
設定に必要な構成要素
項目 | 意味 |
---|---|
Web ACL | Ruleを束ねたもの、Cloudfrontに適応する |
Rule | Conditionを束ねたもの |
Condition | IP addresses/SQL injection/String matchingの指定 |
Filter | String matchingで「リクエストヘッダー/HTTP Method/クエリーストリング/URL の文字列」の中から複数設定 |
設定方法
設定については、次の記事を参考に設定ください。
AWS WAFで特定のUser-Agentだけ通信できるサイトを構築 #reinvent
AWS CLIからAWS WAFのWeb ACLを定義してみた #reinvent
あわせて読みたい
公式情報
re:Invent 2015 (SEC323) New: Securing Web Applications with AWS WAF
Developers.IO関連エントリ
[新機能]AWS WAFがリリースされました!#reinvent
(レポート)SEC323: AWS WAFを使ってウェブアプリケーションをセキュアに #reinvent
さいごに
読んで頂いた方に朗報です。2015/12/9のAWS Black Belt Tech Webinarで、AWS WAFが説明されます。 さらに、理解しやすい解説があると思いますし、その後に公開される資料にも注目しています。
以上、AWS サービス別 再入門アドベントカレンダー 6日目のエントリ『Amazon WAF』編でした。
今回の記事をきっかけに AWS WAF について少しでも興味を持っていただけると幸いです。またセキュリティベンダーとAWS WAFの組み合わせで、セキュアなサービス構築ができるようになることを期待しています。
明日(12/07)は大栗の「RDS編」です。お楽しみに!