この記事について
本記事は、2023年9月に社内で実施した勉強会の内容を基に、社外向けに再編集したものです。
記載の内容は執筆当時の情報であり、現在の仕様やベストプラクティスと異なる可能性があります。
実装にあたっては、必ず最新の公式ドキュメントをご確認いただくようお願いいたします。
概要
Webサービスのセキュリティ対策と、AWSでの実現方法について解説します。
セキュリティ対策
- Firewall
- IDS(不正侵入検知システム)/IPS(不正侵入防御システム)
- WAF(Web Application Firewall)
Firewall
ネットワークを利用した攻撃への防止システム。
- ネットワーク通信の発信元や通信情報の不正を遮断
- サイバー攻撃の遮断
IDS(不正侵入検知システム)/IPS(不正侵入防御システム)
OSやサーバーの脆弱性をついてサーバー内のファイル等へアクセスされることへの対策。
IDS(不正侵入検知システム)は、不正アクセスを検知した際に通知を行います。
IPS(不正侵入防御システム)は、不正アクセスを検知した際に通知と自動ブロックを行います。
システムの運用方針によって、ブロックして問題がない場合はIPSを、まずは検知のみで対応したい場合はIDSを導入するなど、運用設計に応じた選択が必要です。
また、IDSとIPSを組み合わせて運用するケースもあります。
- IDSは通知があった際に、管理者が手動で対応を行う必要がある
- IPSは自動的に遮断を行うため、リアルタイムで防御が可能
- 誤検知が発生した場合、IDSでは特に影響はないが、IPSでは正常な通信が遮断されるリスクがある
悪意のないファイルのサーバー内での作業、システム上のファイル書き込みなどが検知対象となることもあります。
参考:
NTTコミュニケーションズ, 「不正アクセスを検知する『IDS』と検出と遮断をする『IPS』」(2023年9月閲覧)
https://www.ntt.com/business/services/network/internet-connect/ocn-business/bocn/knowledge/archive_14.html
Okta, 「IDSとIPSとは:定義と比較、そして両方が必要な理由」(2023年9月閲覧)
https://www.okta.com/jp/identity-101/ids-vs-ips/
WAF(Web Application Firewall)
Wabアプリケーションの保護に特化した対策。
防御可能な攻撃は多岐にわたります。
WAFで防ぐことのできる攻撃(一例)
| SQLインジェクション | WEBサイト上で不適切なSQLを入力し、想定外の動作を引き起こす |
| XSS(クロスサイトスクリプティング) | WEBサイト上で悪質なスクリプトが実行され、情報漏洩を引き起こす |
| DDos | 大量アクセス等で処理負荷を与え、サーバーダウンなどを狙う |
| バッファオーバーフロー | 許容量以上のデータを送り、サーバーダウンなどを狙う |
| IP制限 | 特定のIPからのアクセスのみ許可する |
| IPブロック | アクセス数が一定数を超えたIPアドレスを遮断する |
| 地理的一致 | 特定の国からのアクセスのみ許可する |
AWSでできる対策
これまでAWSでのセキュリティ対策は外部サービスに依存するケースが一般的でしたが、近年ではAWS自身が提供するセキュリティ機能が大幅に拡充され、多くの対策をAWS環境内で完結できるようになっています。
- AWS Network Firewall:2021年3月より東京リージョンで利用可能
- AWS WAF(Web Application Firewall):2018年12月より東京リージョンで利用可能
AWS Network Firewall
名前は「Firewall」ですが、実際にはIDS/IPS(不正侵入検知・防御)レベルの対策まで実施可能なサービスです。
ルールを柔軟に設定でき、その中にはIDS/IPSの検知ルールも含まれています。
さらに、AWS SNS(Simple Notification Service)と連携することで、検知時に自動で通知を送信することもできます。
参考:
DevelopersIO , のんピ, [アップデート] AWS Network Firewall でAWSが提供するマネージドのSuricata互換のIPSルール「AWS Managed Threat Signatures」が使えるようになりました(2023年9月閲覧)https://dev.classmethod.jp/articles/aws-network-firewall-threat-signatures/
DevelopersIO , 枡川 健太郎, 公開されている最新のIPS/IDSルールをAWS Network Firewallに自動取り込みできるようにするハンズオンやってみた(2023年9月閲覧)
https://dev.classmethod.jp/articles/aws-network-firewall-handson_autodownload/
DevelopersIO , のんピ, Network Firewallで Suricata互換のIPSルールを試してみた(2023年9月閲覧)
https://dev.classmethod.jp/articles/networkfirewall-suricata/
AWS WAF
AWSでは、Webアプリケーションファイアウォール(WAF)を設定することができます。
ルールの自由度が高く、柔軟なカスタマイズが可能です。
また、AWS公式が提供するルール群も別料金にて購入が可能です。
参考:
DevelopersIO , hiroyuki kaji, [アップデート] AWS WAF向けAWS製のManaged Rulesが出ました(2023年9月閲覧)
https://dev.classmethod.jp/articles/aws-waf-v2/
AWSのマーケットプレイスで有志によるルール販売もあります。
参考:
AWS Marketplace
https://aws.amazon.com/marketplace
Network FirewallとWAFを入れた構成図(イメージ)
| Network Firewall | WAF | |
|---|---|---|
| 紐づけ先 | VPC | CloudFront Application Load Balancer API Gateway |
構成図イメージ

参考:
Zenn, ShigeruOda, 【AWS Network Firewall】AWSの基礎を学ぼう おさらい(2023年9月閲覧)https://zenn.dev/shigeru_oda/articles/72a645793fd9fe607814
Amazon Inspector
Amazon Inspectorは、EC2・ECR・Lambdaの脆弱性診断を行うサービスです。
ソフトウェアの既知の脆弱性や外部からの攻撃リスクにさらされていないかを検出します。
参考:
AWS公式, Amazon Inspector
https://aws.amazon.com/jp/inspector/?nc=sn&loc=0
AWS マネジメントコンソール画面へのIP制限
少し趣が変わりますが、AWSマネジメントコンソールへのアクセスにも、IP制限を設けることが可能です。
IAMユーザーごとにアクセス可能なIPアドレスを制限する設定ができるようです。
参考:
DevelopersIO , 千葉淳, [AWS]マネージメントコンソールにIP制限をしつつ、一部利用できない機能も利用できるようにする(2023年9月閲覧)
https://dev.classmethod.jp/articles/20170215_amc-sourceip-restriction/
まとめ
セキュリティ対策として実施できることは非常に多岐にわたりますが、どこまで導入するかは運用コスト(インフラコストや人件費)とのバランス次第という印象です。
実際、WAFのみで十分とする意見も多く見られます。
最適な構成はシステムの規模や特性にも左右されると思いますが、もし一般的なベストプラクティスがあるならぜひ知りたいところです。
