なぜセキュリティグループで0.0.0.0/0からのインバウンドトラフィックを許可することが危険なのか?
はじめに
こんにちは!AWS事業本部コンサルティング部の和田響です。
この記事では「なぜセキュリティグループで0.0.0.0/0からのインバウンドトラフィックを許可することが危険なのか?」について説明し、具体的な対策と検知の方法について記載します。
0.0.0.0/0からのトラフィックとは?
0.0.0.0/0は、IPアドレスの範囲を指定するCIDR(Classless Inter-Domain Routing)表記の一つで、IPv4アドレス空間におけるすべてのIPアドレスを意味します。
つまり「0.0.0.0/0からのトラフィック」とはすべてのIPからの通信であり、インターネットのあらゆる場所からの通信と言い換えることもできます。(IPv6の場合は::/0と表記します。)
なぜ危険なのか?
前述の通り「0.0.0.0/0からのインバウンドトラフィックを許可する」とはインターネット上のあらゆる場所からのアクセスを許可することを意味します。
それによって悪意のある攻撃者からの攻撃が成功しやすくなるリスクがあります。
ブルートフォース攻撃や辞書攻撃、DDoS攻撃、などがその例です。
ブルートフォース攻撃
ブルートフォース攻撃は、システムのセキュリティを破るために、可能なすべての組み合わせを試す手法です。
例えば、パスワード保護されたアカウントにアクセスするために、攻撃者はすべての可能性のあるパスワードを順番に試みます。4桁の数値のパスワードを使用していると、可能な組み合わせは0000から9999までの10,000通りで、攻撃者が1秒間に1つのパスワードを試せるとすると、最悪の場合でも約10,000秒(約2.8時間)で全ての組み合わせを試すことができます。
辞書攻撃
辞書攻撃は、ブルートフォース攻撃の一種で、より効率的な方法です。攻撃者は、一般的に使用される単語やフレーズ、または以前のデータ漏洩から得られたパスワードのリスト(辞書)を使用して、パスワードを推測しようとします。
DDoS攻撃
DDoS攻撃は、ターゲットとなるウェブサイトやサービスに対して、多数のコンピューターやデバイスから同時に大量のトラフィックを送り込むことで、正常なサービスを提供できなくする攻撃です。攻撃者は通常、ボットネット(乗っ取られたコンピューターのネットワーク)を使用して、ターゲットに対して同時にアクセスを行います。これにより、サーバーがオーバーロードし、正当なユーザーがサービスを利用できなくなります。DDoS攻撃は、サービスの中断を引き起こすだけでなく、攻撃の隠れ蓑として他の悪意のある活動を行うために使用されることもあります。
具体的な対策
AWSでは「セキュリティグループで、0.0.0.0/0または::/0からポート22や3389へのイングレスを許可すべきではない」としてます。
ではどのようにしてサーバに接続すべきでしょうか?
いくつか対策はありますが、この記事ではSystems Managerを紹介します。
Systems Managerを用いることでセキュリティグループでインバウンドルールを設定しなくても、SSHやRDPによる接続が可能です。
詳細についてはこちらのドキュメントを参照ください!
WKLD.06 — SSH または RDP の代わりに Systems Manager を使用する
検知の方法
Security Hubを使用することで、セキュリティグループに0.0.0.0/0 や ::/0のインバウンドルールが許可されていることを検知することができます。
Security Hubは「AWSリソースのセキュリティ設定がベストプラクティスから逸脱していないか」を自動でチェックしてくれるサービスで、数分で設定ができるサービスです。
詳しい設定方法については以下の記事を参照ください!
やってみた
実際にSecurity Hubで検知させてみます。
テスト用に以下の0.0.0.0/0からのRDP(3389)を許可したセキュリティグループを作成しました。
すると「EC2.19 Security groups should not allow unrestricted access to ports with high risk」のチェックが失敗していました。
最後に
一般的に最小限のアクセスのみを制限するべきということは言われていますが、この記事ではなぜそうすべきかを言語化してみました。どなたかのお役に立てれば幸いです。