【Security Hub修復手順】[EC2.21]ネットワークACLは 0.0.0.0/0 からポート22または3389へのインバウンド許可ルールを追加してはいけない

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
2022.11.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!AWS事業本部のおつまみです。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介します。

本記事の対象コントロール

[EC2.21] ネットワークACLは 0.0.0.0/0 からポート22または3389へのインバウンド許可ルールを追加してはいけない

[EC2.21] Network ACLs should not allow ingress from 0.0.0.0/0 to port 22 or port 3389

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

対象コントロールの説明

このコントロールは、ネットワークアクセスコントロールリスト (NACL) が、 SSH/RDP 侵入トラフィックのデフォルト TCP ポートへのアクセスを無制限に許可しているかどうかをチェックします。
NACL インバウンドエントリが TCP ポート 22 または 3389 に対して「0.0.0.0/0」または「::/0」の送信元 CIDR ブロックを許可する場合、ルールは失敗します。

ポート 22 (SSH) やポート 3389 (RDP) などのリモートサーバー管理ポートへのアクセスは、VPC 内のリソースへの意図しないアクセスを許可する可能性があります。
意図しないハッキング、サービス拒否(DoS)攻撃、データ損失などのセキュリティリスクが発生してしまうため、可能な限り対応しましょう。

修正手順

1. ステークホルダーに確認

  1. まずはステークホルダー(リソースの作成者や管理している部署などの関係者)に以下を確認します。
  • ポート22または3389で接続するユーザーが存在するか。
    • 存在する場合、接続元のIPアドレスを絞っておく必要があります。そのため、接続元のIPアドレスを特定して下さい。
      • どうしてもIPアドレスを絞ることができず0.0.0.0/0で公開する必要があるとステークホルダーに判断された場合、そのEC2に侵入されても被害が少ないというリスクの判断ができる、かつそれを許容できている場合に0.0.0.0/0を許可して下さい。それ以外、許容すべきではないため抜本的に見直しましょう。
    • 存在しない場合、[3.設定削除]を実施して下さい。

    ※ 設定削除後にポート22または3389で接続できなくなります。万一、設定が必要だった場合に、業務影響が出てしまいます。そのため、社内で注意深く確認して下さい。

2. 設定追加

1.AWS マネージメントコンソールを開きます。 2.ヘッダーナビゲーションのサービス検索より「VPC」を検索し、選択します。
※リージョンは「東京」を選択します。東京リージョン以外の他リージョンも使用している際は確認して下さい。

3.左ペインより[ネットワークACL]を選択します。

4.保持しているネットワークACLのインバウンドルールを全て確認します。送信元0.0.0.0/0からのポート22または3389へのインバウンド許可ルールがある場合、[インバウンドルールを編集]をクリックします。

5.[インバウンドルールを編集]画面にて、特定した接続元IPからのポート22または3389へのインバウンド許可ルールを追加します。追加後、[変更をプレビュー]をクリックします。

6.接続元IPからのポート22または3389へのインバウンド許可ルールのみ追加されていることを確認します。確認後、[変更を保存]をクリックします。

7.ネットワークACLがアタッチされたサブネットにあるEC2への接続確認を実施します。接続元IPアドレスからポート22(SSH)または3389(RDP)で接続できることを確認します。

※ 全ステークホルダーが接続確認を行なって下さい。

3. 設定削除

1.[2. 設定追加]で変更したネットワークACLを選択します。
2.[インバウンドルールを編集]をクリックします。

3.[インバウンドルールを編集]画面にて、送信元0.0.0.0/0からのポート22または3389へのインバウンド許可ルールを削除します。削除後、[変更をプレビュー]をクリックします。

4.送信元0.0.0.0/0からのポート22または3389へのインバウンド許可ルールのみ削除されていることを確認します。確認後、[変更を保存]をクリックします。

5.ネットワークACLがアタッチされたサブネットにあるEC2への接続確認を実施します。接続元IPアドレスからポート22(SSH)または3389(RDP)で接続できることを確認します。

※接続不可だった場合、接続元IPアドレスの指定が誤っている可能性があります。そのため、下記の[4.切戻手順]を実施します。

4. 切戻手順

1.「[3.設定削除]で変更したネットワークACLを選択します。 2.[インバウンドルールを編集]をクリックします。

3.[インバウンドルールを編集]画面にて、送信元0.0.0.0/0からのポート22または3389へのインバウンド許可ルールを追加します。追加後、[変更をプレビュー]をクリックします。

4.送信元0.0.0.0/0からのポート22または3389へのインバウンド許可ルールのみ追加されていることを確認します。確認後、[変更を保存]をクリックします。

5.ネットワークACLがアタッチされたサブネットにあるEC2への接続確認を実施します。接続元IPアドレスからポート22(SSH)または3389(RDP)で接続できることを確認します。
6.再度、ステークホルダー間で接続元IPアドレスを確認し、[2. 設定追加][3.設定削除]を実施して下さい。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!
どなたかのお役に立てれば幸いです。

以上、おつまみ(@AWS11077)でした!