Webサイト向けのセキュリティ対策には「Web Application Firewall(WAF)」というサービスがあります。これは、クロスサイトスクリプティングやSQLインジェクションなど、Webのアクセス(HTTPまたはHTTPS通信)に特化したセキュリティの脅威からシステムを保護します。
他のセキュリティ系サービス、例えばセキュリティグループとの違いは、防御対象となるレイヤです。
- ネットワーク:セキュリティグループ
- OS/ミドルウェア:IDS/IPS
- Webアプリケーション:WAF
この記事では、Amazon Web Services(以下、AWS)が提供するWAFサービス、「AWS WAF」について詳しく説明します。
AWS WAFとは
AWS WAFとは、その名の通り、Amazon Web Services (AWS)が提供するウェブ アプリケーション ファイアウォール (WAF)のサービスです。
AWS WAFの設定箇所
AWS WAFの設定箇所
次に連携可能なAWSサービスについて紹介します。「AWS WAF」は、WEBアプリケーションに関連する、3つのサービスへデプロイが可能です。自社の構成に応じて設定していきましょう。
■Amazon CloudFront
CDNサービスである、CloudFrontへ設定します。ユーザーからアクセスされるすべてのリクエストが防御対象となります。
■Application Load Balancer(ALB)
CloudFrontを利用しない場合は、ALBにも適用が可能です。
CloudFrontと併用する場合は、ALBにAWS WAFを適用することで、WAFを経由するリクエスト数を減らすことができます。ただし、接続元のIPアドレスをもとに攻撃をブロックするため、利用時には注意が必要です。
また、CloudFrontのキャッシュヒットが原因で、レートベースのルールが意図しない動作になる可能性もあります。
■Amazon API Gateway
APIを作成する場合に活用可能な、API gateway上にも設定が可能です。
対応可能な攻撃内容
対策可能な攻撃
「AWS WAF」で防ぐことができる主要な攻撃をいくつか紹介します。
■SQLインジェクション
SQLインジェクションは、データベースを操作するSQL文をWEBリクエストに含めることで、意図しないSQL実行を行います。通常アプリケーションで対策が可能ですが、対策できていないとデータの削除や非公開データの閲覧、改ざんなどの被害を引き起こします。
■ブルートフォースアタック
ログイン機能があるサイトで、ユーザーとパスワードの組み合わせを総当たりで試し、不正ログインを試みる攻撃をブルートフォースアタックといいます。不正ログインが成立してしまうと、個人情報の漏洩や金銭的な被害、Webサイト改ざん、攻撃の踏み台などに悪用される可能性があります。
■クロスサイトスクリプティング(XSS)
クロスサイトスクリプティングは、攻撃者が不正なスクリプトを信頼性のあるウェブサイトに注入し、他のユーザーのブラウザでそのスクリプトを実行することで発生します。
AWS WAFの料金体系
AWS WAFの料金は、以下の要素によって決定されます:
- WebACLの数
- 利用するルールの数
- リクエストの数
AWS WAFの利用方法
AWS WAFを利用する際の推奨される手順は以下の通りです:
- 1.AWS WAFの構築
2.カウントモードでのテスト運用
3.ブロックモードでの本番運用
AWS WAFの運用に必要な要素
AWS WAFの運用フェーズに移行すると、次のような要素について継続的な管理が必要となります。いずれも専門的な知識をもったエンジニアの継続的な確保が必要になります。
WAF自動運用ツールの利用も一つの選択肢
Cloudbric WMSやWAFCharmなど、WAFの自動運用をサポートするツールも存在します。WAFの運用業務をクラウド化するこれらのツールを利用することで、最新の脅威情報に基づいた自動ルール更新や適用範囲の自動調整など、運用に必要なプロセスを大幅に簡素化することが可能です。自社で運用しようとすると、高度な専門知識を持った人材が必要になるため、リソース不足の企業は検討してみるとよいでしょう。
まとめ
「AWS WAF」を利用することで、ウェブアクセスの脆弱性対策を実施することが可能となります。
開発時のアプリケーションの設計と実装で防げる攻撃も多くありますが、その中でも対策の抜け漏れや新たに発生する脆弱性に対するリスクを軽減することができます。ただし、AWS WAFの導入だけで終わりではなく、導入後の運用フェーズでの対策と維持も重要となります。そのため、それらを考慮した利用が必要となるでしょう。