困っていること
WorkSpaces から作成されたセキュリティグループd-<ディレクトリID>_controllers
が、Security Hub のコントロール[EC2.19] セキュリティグループは、リスクの高いポートへの無制限アクセスを許可してはいけません
に検知されました。
Amazon Elastic Compute Cloud コントロール - AWS Security Hub
このコントロールは、指定した高リスクと見なされるポートに Amazon EC2 セキュリティグループの無制限の受信トラフィックがアクセス可能かどうかをチェックします。セキュリティグループ内のルールがこれらのポートへの「0.0.0.0/0」または「::/0」からの入力トラフィックを許可している場合、このコントロールは失敗します。
当該のセキュリティグループに問題があるように見えますが、修正をすることで WorkSpaces の動作に影響を及ぼす可能性があるため、どのように対策すべきかを教えてください。
どう解決すればいいの?
Security Hub の通知を抑止して問題ありません。
本当に抑制していいの?
表題のセキュリティグループは、厳密には WorkSpaces から作成されたセキュリティグループではなく、Directory Service にて作成されたセキュリティグループです。
当該のセキュリティグループd-<ディレクトリID>_controllers
は、WorkSpaces のユーザーを管理している Directory Service で使用されています。
Directory Service の環境作成時に同時に作成されるセキュリティグループは、インバウンドルールにて 445 番ポートについて任意の IP アドレスからのアクセスを許可されており、これが検知される原因となります。
しかしながら、Directory Service のインバウンドトラフィックは、ローカル VPC および VPC からルーティングされたトラフィックに限られるため、この通知が検知されていてもセキュリティ上の問題はありません。
そのため、Security Hub の通知を抑止しても問題はありません。
通知の抑制の仕方
Security Hub コンソールを開き、左ペインから検出結果をクリックします。
その後、抑制したい検出結果にチェックを入れ、「ワークフローのステータス」→「抑制済み」をクリックします。
任意のメモを入力し、「Set status」ボタンを押下します。
確認のため、ワークフローのステータス 次と同じ: SUPPRESSED(抑制済み)にして、フィルタリングすると、当該の検出結果がSUPPRESSEDになっていることを確認しました。(しばらく時間がかかる場合があります)
補足(Directory Service が作成するセキュリティグループ)
Simple AD が作成するセキュリティグループは、Simple AD が使用する範囲のポートに絞られます。
{
"SecurityGroups": [
{
"Description": "AWS created security group for d-<DirectoryID> directory controllers",
"GroupName": "d-<DirectoryID>_controllers",
"IpPermissions": [
{
"FromPort": 138,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 138,
"UserIdGroupPairs": []
},
{
"FromPort": 445,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 445,
"UserIdGroupPairs": []
},
{
"FromPort": 464,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 464,
"UserIdGroupPairs": []
},
{
"FromPort": 464,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 464,
"UserIdGroupPairs": []
},
{
"FromPort": 389,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 389,
"UserIdGroupPairs": []
},
{
"FromPort": 53,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 53,
"UserIdGroupPairs": []
},
{
"FromPort": 389,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 389,
"UserIdGroupPairs": []
},
{
"FromPort": -1,
"IpProtocol": "icmp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": -1,
"UserIdGroupPairs": []
},
{
"FromPort": 445,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 445,
"UserIdGroupPairs": []
},
{
"FromPort": 123,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 123,
"UserIdGroupPairs": []
},
{
"FromPort": 88,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 88,
"UserIdGroupPairs": []
},
{
"FromPort": 3268,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 3269,
"UserIdGroupPairs": []
},
{
"FromPort": 1024,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 65535,
"UserIdGroupPairs": []
},
{
"IpProtocol": "-1",
"IpRanges": [],
"Ipv6Ranges": [],
"PrefixListIds": [],
"UserIdGroupPairs": [
{
"GroupId": "sg-<SecurityGroupID>",
"UserId": "<AccountID>"
}
]
},
{
"FromPort": 135,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 135,
"UserIdGroupPairs": []
},
{
"FromPort": 636,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 636,
"UserIdGroupPairs": []
},
{
"FromPort": 53,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 53,
"UserIdGroupPairs": []
},
{
"FromPort": 88,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 88,
"UserIdGroupPairs": []
}
],
"OwnerId": "<AccountID>",
"GroupId": "sg-<SecurityGroupID>",
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"IpRanges": [],
"Ipv6Ranges": [],
"PrefixListIds": [],
"UserIdGroupPairs": [
{
"GroupId": "sg-<SecurityGroupID>",
"UserId": "<AccountID>"
}
]
}
],
"VpcId": "vpc-<VpcID>"
}
]
}
AWS Managed Microsoft AD が作成するセキュリティグループは、AWS Managed Microsoft AD が使用する範囲のポートに絞られます。
{
"SecurityGroups": [
{
"Description": "AWS created security group for d-<DirectoryID> directory controllers",
"GroupName": "d-<DirectoryID>_controllers",
"IpPermissions": [
{
"FromPort": 138,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 138,
"UserIdGroupPairs": []
},
{
"FromPort": 445,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 445,
"UserIdGroupPairs": []
},
{
"FromPort": 464,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 464,
"UserIdGroupPairs": []
},
{
"FromPort": 464,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 464,
"UserIdGroupPairs": []
},
{
"FromPort": 389,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 389,
"UserIdGroupPairs": []
},
{
"FromPort": 53,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 53,
"UserIdGroupPairs": []
},
{
"FromPort": 389,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 389,
"UserIdGroupPairs": []
},
{
"FromPort": -1,
"IpProtocol": "icmp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": -1,
"UserIdGroupPairs": []
},
{
"FromPort": 445,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 445,
"UserIdGroupPairs": []
},
{
"FromPort": 123,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 123,
"UserIdGroupPairs": []
},
{
"FromPort": 88,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 88,
"UserIdGroupPairs": []
},
{
"FromPort": 3268,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 3269,
"UserIdGroupPairs": []
},
{
"FromPort": 1024,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 65535,
"UserIdGroupPairs": []
},
{
"IpProtocol": "-1",
"IpRanges": [],
"Ipv6Ranges": [],
"PrefixListIds": [],
"UserIdGroupPairs": [
{
"GroupId": "sg-<SecurityGroupID>",
"UserId": "<AccountID>"
}
]
},
{
"FromPort": 135,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 135,
"UserIdGroupPairs": []
},
{
"FromPort": 636,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 636,
"UserIdGroupPairs": []
},
{
"FromPort": 53,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 53,
"UserIdGroupPairs": []
},
{
"FromPort": 88,
"IpProtocol": "udp",
"IpRanges": [
{
"CidrIp": "0.0.0.0/0"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 88,
"UserIdGroupPairs": []
}
],
"OwnerId": "<AccountID>",
"GroupId": "sg-<SecurityGroupID>",
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"IpRanges": [],
"Ipv6Ranges": [],
"PrefixListIds": [],
"UserIdGroupPairs": [
{
"GroupId": "sg-<SecurityGroupID>",
"UserId": "<AccountID>"
}
]
}
],
"VpcId": "vpc-<VpcID>"
}
]
}
参考資料
作成される対象 - AWS Directory Service
AWS Managed Microsoft AD を使用してディレクトリを作成すると、AWS Directory Service がユーザー代わって、次のタスクを実行します。
~~
ドメインコントローラーに出入りするトラフィックのネットワークルールを確立する AWS セキュリティグループを作成します。 デフォルトのアウトバウンドルールで、作成された AWS セキュリティグループにアタッチされたすべてのトラフィック ENI またはインスタンスが許可されます。 デフォルトのインバウンドルールでは、任意のソース (0.0.0.0/0) からの Active Directory の必須ポートを経由したトラフィックのみが許可されます。 0.0.0.0/0 ルールでは、セキュリティ上の脆弱性は生じません。
~~
AWS Managed Microsoft AD と通信できるインバウンドトラフィックは、ローカル VPC および VPC からルーティングされたトラフィックに限られます。 これらのルールを変更すると、ドメインコントローラーと通信できなくなる可能性があるため、変更する場合は細心の注意を払ってください。
[Security Hub] ワークフローステータス「抑制済み」を使ってセキュリティチェックのリソース例外を登録する | DevelopersIO