こんにちは、技術1課の小倉です。
2020/3/6にアップデートがあり、AWS WAFのAWSマネージドルールに匿名IPリストが追加になりました!
AWS マネージドルールの匿名 IP リストが AWS WAF に追加
匿名IPリストには、接続元情報を匿名化するサービスからのリクエストをブロックするルールが含まれています。そのルールのなかにはVPN、匿名プロキシサーバ、Torノード(接続元を匿名化する仕組みの一つ)、ホスティングプロバイダーのような匿名ネットワーク(接続元を匿名化)からのリクエストをブロックするルールも含まれています。以下はブロック可能な例です。
- CloudFrontやWAFで地域制限をかけているサービスに対して、接続が許可されていない地域から接続が許可された地域の匿名プロキシサーバを経由した通信をブロック
- 匿名ネットワークの背後にあるボットから発信される悪意のあるトラフィックをブロック
また、匿名IPリストは無料で利用できます。
AWS WAFとは
WAF(Web Application Firewall)は、Webアプリケーションへの攻撃を検知・防御するセキュリティ対策ができます。例えばSQLインジェクションなど既知の脆弱性を狙った通信からシステムを守ることができます。AWS WAFは防御したい内容をルールとして追加して管理することができます。本アップデートはこの追加できるルールにAWSが管理しているルールがあるのですが、そのルールの種類が増えたという内容です。
ただ、WAFを導入してもAWS内の環境を完璧に守ってくれるわけではありません。あくまで攻撃によるリスクを低減する対策です。ですから、AWS内でもセキュリティ対策は必要です。
設定手順
事前準備として、ALBとEC2(Webサーバ)は構築済みの状態です。
WAF & Shieldのコンソールを開いて、左の[Web ACLs]をクリックし、リージョンを使用するリージョンに変更(画像は東京リージョン)して、[Create web ACL]をクリックします。
Describe web ACL and associate it to AWS resourcesの画面で、[Name]、[]を入力し、[Resource type]は今回はALBを使うので、Regional resources (Application Load Balancer and API Gateway)を選択します。
下にスクロールして、[Add AWS resources]をクリックします。
[Application Load Balancer]を選択し、構築済みのALBにチェックを入れ、[Add]をクリックします。
画面が戻りますので、[Next]をクリックします。
Add rules and rule groupsの画面で、[Add rules] - [Add managed rule groups]をクリックします。
Add managed rule groups画面で、[Add managed rule groups]の横にある▼をクリックして広げます。
Ruleの一覧から[Anonymous IP list]のAdd to web ACLをクリックします。
※ブロックせずに通信を確認したい場合は、[Set rules action to count]をクリックします。誤検知がないかどうかを確認できます。
下にスクロールして、[Add rules]をクリックします。
Rulesに匿名IPリストのルールが追加されたことを確認して、[Next]をクリックします。
Set rule priorityの画面は今回はなにも変更せず、[Next]をクリックします。
Configure metricsの画面は今回はなにも変更せず、[Next]をクリックします。
Review and create web ACLの画面で内容を確認して、下にスクロールして[Create web ACL]をクリックします。
設定できました。
ここからは匿名IPリストの動作確認です。
この状態でなにもせずにブラウザからALBのDNS名にアクセスすると、Webサイトにアクセスできます。
会社のVPNサーバに接続した後に同じアクセスをするとWebサイトへのアクセスが拒否されます。
WAFのコンソールのログを確認するとBlockのログが出力されています。
WAF & Shieldのコンソールを開いて、左の[Web ACLs]をクリックし、作成したweb ACLsをクリックします。
Overviewタブを選択して、下にスクロールします。
SourceIPは公開できないのですが、ActionがBLOCKと表示されているところはVPN経由でWebサイトにアクセスしたログです。
余談ですが、この設定をしたまま数時間放置していたらいろんなところからアクセスがきていて、BLOCKのログが増えていました。おそらくボットだとは思うのですが、短時間で知らないところからのアクセスがあったので、この匿名IPリストの必要性を感じました。
まとめ
AWS WAFにて匿名IPリスト設定が可能になりました。設定して短時間で接続元が不明な通信がいくつかきていましたので、匿名IPリストの設定が有効に働くケースはあります。接続元が不明な通信を防ぎたいという要件がありましたら、設定をご検討してみてはいかがでしょうか。
また、本ブログの内容は2020/3/11(水) 12:00よりYouTube Liveで配信される「30分でわかる AWS UPDATE!」でも取り上げる予定ですので、ぜひご覧ください!
https://www.youtube.com/watch?v=5gMsg1r0Z9E&feature=emb_title
小倉 大(記事一覧)
アプリケーションサービス部ラーニングエクスペリエンス課 札幌在住
AWSトレーニングの講師をしています。
最近は5歳の息子と遊ぶのが楽しいです!
Twitter: @MasaruOgura