다음을 통해 공유


네트워킹 보안 권장 사항

이 문서에서는 클라우드용 Microsoft Defender 볼 수 있는 모든 네트워킹 보안 권장 사항을 나열합니다.

사용자 환경에 표시되는 권장 사항은 보호 중인 리소스와 사용자 지정된 구성을 기반으로 합니다.

이러한 권장 사항에 대한 응답으로 수행할 수 있는 작업에 대해 알아보려면 클라우드용 Defender 권장 사항 수정을 참조하세요.

권장 사항 설명에 관련 정책이 없다고 표시되는 경우 일반적으로 권장 사항은 다른 권장 사항에 따라 달라지기 때문입니다.

예를 들어 Endpoint Protection 상태 오류를 수정해야 하는 권장 사항은 엔드포인트 보호 솔루션이 설치되어 있는지 여부를 확인하는 권장 사항에 의존합니다(Endpoint Protection 솔루션을 설치해야 함). 기본 권장 사항에는 정책이 있습니다. 정책을 기본 권장 사항으로만 제한하면 정책 관리가 간소화됩니다.

Azure 네트워킹 권장 사항

방화벽 및 가상 네트워크 구성을 사용하여 스토리지 계정에 대한 액세스를 제한해야 합니다.

설명: 스토리지 계정 방화벽 설정에서 네트워크 액세스 설정을 검토합니다. 허용되는 네트워크의 애플리케이션만 스토리지 계정에 액세스할 수 있도록 네트워크 규칙을 구성하는 것이 좋습니다. 특정 인터넷 또는 온-프레미스 클라이언트의 연결을 허용하기 위해 특정 Azure 가상 네트워크에서의 트래픽 또는 공용 인터넷 IP 주소 범위에 액세스 권한을 부여할 수 있습니다. (관련 정책: 스토리지 계정은 네트워크 액세스를 제한해야 합니다).

심각도: 낮음

인터넷 연결 가상 머신에 적응형 네트워크 강화 권장 사항을 적용해야 함

설명: 클라우드용 Defender 아래에 나열된 가상 머신의 인터넷 트래픽 통신 패턴을 분석한 결과, 연결된 NSG의 기존 규칙이 지나치게 허용되어 잠재적인 공격 노출 영역이 증가하는 것으로 확인되었습니다. 일반적으로 이 IP 주소가 이 리소스와 정기적으로 통신하지 않는 경우에 발생합니다. 또는 클라우드용 Defender의 위협 인텔리전스 소스에 의해 IP 주소가 악의적인 것으로 플래그 지정되었습니다. (관련 정책: 적응형 네트워크 강화 권장 사항은 인터넷 연결 가상 머신에 적용해야 함).

심각도: 높음

가상 머신과 연결된 네트워크 보안 그룹에서 모든 네트워크 포트를 제한해야 함

설명: 클라우드용 Defender 네트워크 보안 그룹의 인바운드 규칙 중 일부가 너무 관대하지 않은 것으로 확인되었습니다. 인바운드 규칙에서 '모두' 또는 '인터넷' 범위에서 들어오는 액세스를 허용해서는 안 됩니다. 그러면 리소스가 공격자의 표적이 될 수 있습니다. (관련 정책: 모든 네트워크 포트는 가상 머신에 연결된 네트워크 보안 그룹에서 제한해야 합니다).

심각도: 높음

Azure DDoS Protection 표준을 사용하도록 설정해야 함

설명: 클라우드용 Defender DDoS 보호 서비스에서 보호되지 않는 Application Gateway 리소스가 있는 가상 네트워크를 발견했습니다. 이러한 리소스는 공용 IP를 포함합니다. 네트워크 볼륨 및 프로토콜 공격을 완화할 수 있습니다. (관련 정책: Azure DDoS Protection 표준을 사용하도록 설정해야 함).

심각도: 보통

네트워크 보안 그룹을 사용하여 인터넷 연결 가상 머신을 보호해야 함

설명: NSG(네트워크 보안 그룹)를 사용하여 VM에 대한 액세스를 제한하여 잠재적 위협으로부터 VM을 보호합니다. NSG는 동일한 서브넷 안팎에 있는 다른 인스턴스에서 VM 인스턴스로 들어오는 네트워크 트래픽을 허용 또는 거부하는 ACL(액세스 제어 목록) 규칙 목록을 포함합니다. 컴퓨터를 최대한 안전하게 유지하려면 인터넷에 대한 VM 액세스를 제한하고 서브넷에서 NSG를 사용하도록 설정해야 합니다. 심각도가 '높은' VM은 인터넷 연결 VM입니다. (관련 정책: 인터넷 연결 가상 머신은 네트워크 보안 그룹으로 보호해야 함).

심각도: 높음

가상 머신에서 IP 전달을 사용하지 않도록 설정해야 합니다.

설명: 클라우드용 Defender 일부 가상 머신에서 IP 전달이 사용하도록 설정되어 있음을 발견했습니다. 가상 머신의 NIC에서 IP 전달을 사용하도록 설정하면 머신이 다른 대상으로 주소가 지정된 트래픽을 수신할 수 있습니다. IP 전달은 거의 필요하지 않으므로(예: VM을 네트워크 가상 어플라이언스로 사용하는 경우), 네트워크 보안 팀에서 검토해야 합니다. (관련 정책: 가상 머신에서 IP 전달을 사용하지 않도록 설정해야 함).

심각도: 보통

머신에는 공격 경로를 노출 시킬 수 있는 포트를 닫아야 함

설명: Azure의 사용 약관은 Microsoft 서버 또는 네트워크를 손상, 비활성화, 과부하 또는 손상시킬 수 있는 방식으로 Azure 서비스를 사용하는 것을 금지합니다. 이 권장 사항은 지속적인 보안을 위해 닫아야 하는 노출된 포트를 나열합니다. 또한 각 포트에 대한 잠재적 위협을 보여 줍니다. (관련 정책 없음)

심각도: 높음

가상 머신의 관리 포트는 Just-In-Time 네트워크 액세스 제어로 보호해야 함

설명: 클라우드용 Defender 네트워크 보안 그룹의 관리 포트에 대해 지나치게 허용되는 일부 인바운드 규칙을 식별했습니다. Just-In-Time 액세스 제어를 사용하도록 설정하여 인터넷 기반 무차별 암호 대입 공격으로부터 VM을 보호합니다. JIT(Just-In-Time) VM 액세스 이해에 대해 자세히 알아보세요. (관련 정책: 가상 머신의 관리 포트는 Just-In-Time 네트워크 액세스 제어를 사용하여 보호해야 합니다).

심각도: 높음

가상 머신에서 관리 포트를 닫아야 합니다.

설명: 개방형 원격 관리 포트는 인터넷 기반 공격으로 인한 높은 수준의 위험에 VM을 노출합니다. 이러한 공격은 자격 증명을 무차별적으로 대입하여 머신에 대한 관리자 액세스 권한을 획득하려고 시도합니다. (관련 정책: 관리 포트는 가상 머신에서 닫아야 함).

심각도: 보통

네트워크 보안 그룹을 사용하여 비인터넷 연결 가상 머신을 보호해야 함

설명: NSG(네트워크 보안 그룹)를 사용하여 액세스를 제한하여 인터넷이 아닌 가상 머신을 잠재적 위협으로부터 보호합니다. NSG에는 동일한 서브넷에 있는지 여부에 관계없이 다른 인스턴스에서 VM으로의 네트워크 트래픽을 허용하거나 거부하는 ACL(액세스 제어 목록) 규칙 목록이 포함되어 있습니다. 컴퓨터를 최대한 안전하게 유지하려면 VM의 인터넷 액세스를 제한하고 서브넷에서 NSG를 사용하도록 설정해야 합니다. (관련 정책: 인터넷이 아닌 가상 머신은 네트워크 보안 그룹으로 보호해야 함).

심각도: 낮음

스토리지 계정에 보안 전송을 사용하도록 설정해야 함

설명: 보안 전송은 스토리지 계정이 HTTPS(보안 연결)의 요청만 수락하도록 강제하는 옵션입니다. HTTPS를 사용하면 서버와 서비스 간의 인증이 보장되고 전송 중인 데이터가 중간에서 맨인 더 미들, 도청 및 세션 하이재킹과 같은 네트워크 계층 공격으로부터 보호됩니다. (관련 정책: 스토리지 계정으로의 보안 전송을 사용하도록 설정해야 함).

심각도: 높음

서브넷은 네트워크 보안 그룹과 연결되어야 합니다.

설명: NSG(네트워크 보안 그룹)를 사용하여 서브넷에 대한 액세스를 제한하여 잠재적 위협으로부터 서브넷을 보호합니다. NSG는 서브넷에 대한 네트워크 트래픽을 허용 또는 거부하는 ACL(액세스 제어 목록) 규칙의 목록을 포함합니다. NSG가 서브넷과 연결된 경우 ACL 규칙은 해당 서브넷의 모든 VM 인스턴스 및 통합 서비스에 적용되지만 서브넷 내의 내부 트래픽에는 적용되지 않습니다. 동일한 서브넷에 있는 리소스를 보호하려면 리소스에 대한 NSG도 직접 사용하도록 설정합니다. GatewaySubnet, AzureFirewallSubnet, AzureBastionSubnet 서브넷 유형은 해당 없음으로 나열됩니다. (관련 정책: 서브넷은 네트워크 보안 그룹과 연결되어야 합니다).

심각도: 낮음

가상 네트워크는 Azure Firewall로 보호되어야 합니다.

설명: 일부 가상 네트워크는 방화벽으로 보호되지 않습니다. Azure Firewall을 사용하여 가상 네트워크에 대한 액세스를 제한하고 잠재적인 위협을 방지합니다. (관련 정책: 모든 인터넷 트래픽은 배포된 Azure Firewall을 통해 라우팅되어야 합니다).

AWS 네트워킹 권장 사항

Amazon EC2는 VPC 엔드포인트를 사용하도록 구성해야 합니다.

설명: 이 컨트롤은 Amazon EC2에 대한 서비스 엔드포인트가 각 VPC에 대해 생성되는지 여부를 확인합니다. VPC에 Amazon EC2 서비스에 대해 만든 VPC 엔드포인트가 없으면 컨트롤이 실패합니다. VPC의 보안 태세를 개선하려면 인터페이스 VPC 엔드포인트를 사용하도록 Amazon EC2를 구성하면 됩니다. 인터페이스 엔드포인트는 Amazon EC2 API 작업에 비공개로 액세스할 수 있는 기술인 AWS PrivateLink를 기반으로 합니다. 이 기술은 VPC와 Amazon EC2 간 모든 네트워크 트래픽을 Amazon 네트워크로 제한합니다. 엔드포인트는 동일한 지역 내에서만 지원되므로 VPC와 다른 지역의 서비스 간에 엔드포인트를 만들 수 없습니다. 따라서 다른 지역에 대한 의도하지 않은 Amazon EC2 API 호출이 방지됩니다. Amazon EC2용 VPC 엔드포인트를 만드는 방법에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용자 가이드의 Amazon EC2 and interface VPC endpoints(영문)를 참조하세요.

심각도: 보통

Amazon ECS 서비스에는 자동으로 할당된 공용 IP 주소가 없어야 합니다.

설명: 공용 IP 주소는 인터넷에서 연결할 수 있는 IP 주소입니다. 공용 IP 주소로 Amazon ECS 인스턴스를 시작하면 인터넷에서 Amazon ECS 인스턴스에 연결할 수 있습니다. Amazon ECS 서비스는 컨테이너 애플리케이션 서버에 의도하지 않은 액세스를 허용할 수 있으므로 공개적으로 액세스할 수 없어야 합니다.

심각도: 높음

Amazon EMR 클러스터 마스터 노드에는 공용 IP 주소가 없어야 합니다.

설명: 이 컨트롤은 Amazon EMR 클러스터의 마스터 노드에 공용 IP 주소가 있는지 여부를 확인합니다. 마스터 노드가 인스턴스와 연결된 공용 IP 주소를 사용하는 경우 이 컨트롤은 검사에 불합격합니다. 공용 IP 주소는 인스턴스에 대한 NetworkInterfaces 구성의 PublicIp 필드에 지정됩니다. 이 컨트롤은 RUNNING 또는 WAITING 상태인 Amazon EMR 클러스터만 확인합니다.

심각도: 높음

Amazon Redshift 클러스터는 향상된 VPC 라우팅을 사용해야 합니다.

설명: 이 컨트롤은 Amazon Redshift 클러스터에서 EnhancedVpcRouting을 사용하도록 설정했는지 여부를 확인합니다. 향상된 VPC 라우팅은 클러스터와 데이터 리포지토리 간의 모든 COPY 및 UNLOAD 트래픽이 VPC를 통과하도록 합니다. 그런 다음, 보안 그룹 및 네트워크 액세스 제어 목록과 같은 VPC 기능을 사용하여 네트워크 트래픽을 보호할 수 있습니다. VPC 흐름 로그를 사용하여 네트워크 트래픽을 모니터링할 수도 있습니다.

심각도: 높음

모든 HTTP 요청을 HTTPS로 리디렉션하도록 Application Load Balancer를 구성해야 합니다.

설명: 전송 중에 암호화를 적용하려면 애플리케이션 부하 분산 장치와 함께 리디렉션 작업을 사용하여 클라이언트 HTTP 요청을 포트 443의 HTTPS 요청으로 리디렉션해야 합니다.

심각도: 보통

Application Load Balancer는 HTTP 헤더를 삭제하도록 구성해야 합니다.

설명: 이 컨트롤은 AWS ALB(애플리케이션 부하 분산 장치)를 평가하여 잘못된 HTTP 헤더를 삭제하도록 구성되었는지 확인합니다. routing.http.drop_invalid_header_fields.enabled 값이 false로 설정된 경우 이 컨트롤은 검사에 실패합니다. 기본적으로 ALB는 잘못된 HTTP 헤더 값을 삭제하도록 구성되지 않습니다. 이러한 헤더 값을 제거하면 HTTP 동기화 해제 공격이 방지됩니다.

심각도: 보통

VPC에 람다 함수를 구성합니다.

설명: 이 컨트롤은 람다 함수가 VPC에 있는지 여부를 확인합니다. 공용 연결 가능성을 확인하기 위해 VPC 서브넷 라우팅 구성을 평가하지 않습니다. 계정에서 Lambda@Edge가 발견되면 이 컨트롤은 검사에 불합격합니다. 이러한 결과를 방지하려면 이 컨트롤을 사용하지 않도록 설정합니다.

심각도: 낮음

EC2 인스턴스에는 공용 IP 주소를 사용하면 안 됩니다.

설명: 이 컨트롤은 EC2 인스턴스에 공용 IP 주소가 있는지 여부를 확인합니다. EC2 인스턴스 구성 항목에 "publicIp" 필드가 있으면 이 컨트롤은 검사에 불합격합니다. 이 컨트롤은 IPv4 주소에만 적용됩니다. 공용 IPv4 주소는 인터넷에서 연결할 수 있는 IP 주소입니다. 공용 IP 주소로 인스턴스를 시작하면 인터넷에서 EC2 인스턴스에 연결할 수 있습니다. 개인 IPv4 주소는 인터넷에서 연결할 수 없는 IP 주소입니다. 동일한 VPC 또는 연결된 프라이빗 네트워크에 있는 EC2 인스턴스 간 통신에 개인 IPv4 주소를 사용할 수 있습니다. IPv6 주소는 전체적으로 고유하므로 인터넷에서 연결할 수 있습니다. 그러나 기본적으로 모든 서브넷은 IPv6 주소 지정 특성이 false로 설정됩니다. IPv6에 대한 자세한 내용은 Amazon VPC 사용자 가이드의 IP addressing in your VPC(영문)를 참조하세요. 공용 IP 주소로 EC2 인스턴스를 유지 관리하는 합법적인 사용 사례가 있는 경우 이 컨트롤의 결과를 표시하지 않아도 됩니다. 프런트 엔드 아키텍처 옵션에 대한 자세한 내용은 AWS 아키텍처 블로그 또는 This Is My Architecture 시리즈(영문)를 참조하세요.

심각도: 높음

EC2 인스턴스는 ENI를 여러 개 사용하면 안 됩니다.

설명: 이 컨트롤은 EC2 인스턴스가 여러 ENIS(Elastic Network Interfaces) 또는 Elastic Fabric Adapters(EBA)를 사용하는지 여부를 확인합니다. 이 컨트롤은 단일 네트워크 어댑터를 사용하는 경우 전달됩니다. 이 컨트롤에는 허용된 ENI를 식별하는 선택적 매개 변수 목록이 포함됩니다. ENI가 여러 개 있는 경우 듀얼 호밍 인스턴스, 즉, 서브넷이 여러 개인 인스턴스가 발생할 수 있습니다. 이로 인해 네트워크 보안 복잡성이 가중되고 의도하지 않은 네트워크 경로 및 액세스가 발생할 수 있습니다.

심각도: 낮음

EC2 인스턴스는 IMDSv2를 사용해야 합니다.

설명: 이 컨트롤은 EC2 인스턴스 메타데이터 버전이 IMDSv2(인스턴스 메타데이터 서비스 버전 2)로 구성되었는지 여부를 확인합니다. "HttpTokens"가 IMDSv2에 대해 "required"로 설정된 경우 이 컨트롤은 검사에 합격합니다. "HttpTokens"가 "optional"로 설정된 경우 이 컨트롤은 검사에 불합격합니다. 인스턴스 메타데이터를 사용하여 실행 중인 인스턴스를 구성하거나 관리합니다. IMDS는 자주 교체되는 임시 자격 증명에 대한 액세스를 제공합니다. 이러한 자격 증명을 사용하면 인스턴스에 중요한 자격 증명을 수동으로 또는 프로그래밍 방식으로 하드 코딩하거나 배포할 필요가 없습니다. IMDS는 모든 EC2 인스턴스에 로컬로 연결됩니다. IMDS는 169.254.169.254라는 특수한 '링크 로컬' IP 주소에서 실행됩니다. 이 IP 주소는 인스턴스에서 실행되는 소프트웨어에서만 액세스할 수 있습니다. IMDS 버전 2는 다음과 같은 종류의 취약성에 대한 새로운 보호 기능을 추가합니다. 이러한 취약성은 IMDS에 액세스를 시도하는 데 사용될 수 있습니다.

  • 웹 사이트 애플리케이션 방화벽 열기
  • 역방향 프록시 열기
  • SSRF(서버 쪽 요청 위조) 취약성
  • Open Layer 3 방화벽 및 NAT(네트워크 주소 변환) Security Hub는 IMDSv2를 사용하여 EC2 인스턴스를 구성하는 것이 좋습니다.

심각도: 높음

EC2 서브넷은 공용 IP 주소를 자동으로 할당하지 않아야 합니다.

설명: 이 컨트롤은 Amazon VPC(Amazon Virtual Private Cloud) 서브넷의 공용 IP 할당에 "MapPublicIpOnLaunch"가 "FALSE"로 설정되어 있는지 확인합니다. 플래그가 "FALSE"로 설정된 경우 이 컨트롤은 검사에 합격합니다. 모든 서브넷에는 서브넷에서 생성된 네트워크 인터페이스가 공용 IPv4 주소를 자동으로 수신할지 여부를 결정하는 특성이 있습니다. 이 특성을 사용하도록 설정된 서브넷으로 시작하는 인스턴스에는 기본 네트워크 인터페이스에 할당된 공용 IP 주소가 있습니다.

심각도: 보통

AWS Config 구성 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. CloudTrail 구성의 변경 내용을 감지하기 위해 메트릭 필터 및 경보를 설정하는 것이 좋습니다. AWS 구성 구성에 대한 변경 내용을 모니터링하면 AWS 계정 내에서 구성 항목의 지속적인 가시성을 보장하는 데 도움이 됩니다.

심각도: 낮음

AWS 관리 콘솔 인증 실패에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. 실패한 콘솔 인증 시도에 대해 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 실패한 콘솔 로그인을 모니터링하면 다른 이벤트 상관 관계에서 사용할 수 있는 원본 IP와 같은 표시기를 제공할 수 있는 자격 증명을 무차별 암호 대입하려는 시도를 감지하기 위해 리드 타임이 감소할 수 있습니다.

심각도: 낮음

NACL(네트워크 액세스 제어 목록) 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. NACL은 VPC 내의 서브넷에 대한 수신 및 송신 트래픽을 제어하는 상태 비저장 패킷 필터로 사용됩니다. NACL 변경에 대한 메트릭 필터 및 경고를 설정하는 것이 좋습니다. NACL에 대한 변경 내용을 모니터링하면 AWS 리소스 및 서비스가 의도치 않게 노출되지 않도록 할 수 있습니다.

심각도: 낮음

네트워크 게이트웨이 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. 네트워크 게이트웨이는 VPC 외부의 대상으로 트래픽을 보내고 받는 데 필요합니다. 네트워크 게이트웨이 변경에 대한 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 네트워크 게이트웨이에 대한 변경 내용을 모니터링하면 모든 수신/송신 트래픽이 제어된 경로를 통해 VPC 테두리를 트래버스하도록 할 수 있습니다.

심각도: 낮음

CloudTrail 구성 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. CloudTrail 구성의 변경 내용을 감지하기 위해 메트릭 필터 및 경보를 설정하는 것이 좋습니다.

CloudTrail의 구성 변경 내용을 모니터링하면 AWS 계정에서 수행된 활동에 대한 지속적인 가시성을 보장할 수 있습니다.

심각도: 낮음

고객 생성 CMK 사용 안 함 또는 삭제 예약됨에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. 상태를 비활성화 또는 예약된 삭제로 변경한 고객이 만든 CMK에 대해 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 사용하지 않도록 설정되었거나 삭제된 키로 암호화된 데이터는 더 이상 액세스할 수 없습니다.

심각도: 낮음

IAM 정책 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. IAM(ID 및 액세스 관리) 정책에 대한 메트릭 필터 및 경보를 설정하는 것이 좋습니다. IAM 정책의 변경 내용을 모니터링하면 인증 및 권한 부여 제어가 그대로 유지되도록 할 수 있습니다.

심각도: 낮음

MFA를 사용하지 않은 관리 콘솔 로그인에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. MFA(다단계 인증)로 보호되지 않는 콘솔 로그인에 대해 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 단일 단계 콘솔 로그인에 대한 모니터링은 MFA로 보호되지 않는 계정에 대한 가시성을 높입니다.

심각도: 낮음

경로 테이블 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. 라우팅 테이블은 서브넷과 네트워크 게이트웨이 간에 네트워크 트래픽을 라우팅하는 데 사용됩니다. 경로 테이블 변경에 대한 메트릭 필터 및 알람을 설정하는 것이 좋습니다. 경로 테이블의 변경 내용을 모니터링하면 모든 VPC 트래픽이 예상 경로를 통해 흐르도록 할 수 있습니다.

심각도: 낮음

S3 버킷 정책 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. S3 버킷 정책 변경에 대한 메트릭 필터 및 경고를 설정하는 것이 좋습니다. S3 버킷 정책의 변경 내용을 모니터링하면 중요한 S3 버킷에서 허용 정책을 감지하고 수정하는 데 걸리는 시간이 단축될 수 있습니다.

심각도: 낮음

보안 그룹 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. 보안 그룹은 VPC 내에서 수신 및 송신 트래픽을 제어하는 상태 저장 패킷 필터입니다. 보안 그룹에 대한 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 보안 그룹에 대한 변경 내용을 모니터링하면 리소스 및 서비스가 의도치 않게 노출되지 않도록 할 수 있습니다.

심각도: 낮음

권한 없는 API 호출에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. 권한 없는 API 호출에 대해 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 권한 없는 API 호출을 모니터링하면 애플리케이션 오류를 표시하고 악의적인 활동을 검색하는 시간을 줄일 수 있습니다.

심각도: 낮음

'루트' 계정 사용에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. 루트 로그인 시도에 대해 메트릭 필터 및 경보를 설정하는 것이 좋습니다.

루트 계정 로그인에 대한 모니터링은 완전히 권한 있는 계정의 사용에 대한 가시성과 사용량을 줄일 수 있는 기회를 제공합니다.

심각도: 낮음

VPC 변경에 대한 로그 메트릭 필터 및 경고가 있어야 합니다.

설명: CloudTrail 로그를 CloudWatch 로그로 전달하고 해당 메트릭 필터 및 경보를 설정하여 API 호출을 실시간으로 모니터링할 수 있습니다. 계정 내에 둘 이상의 VPC가 있을 수 있으며, 2개의 VPC 간에 피어 연결을 만들어 네트워크 트래픽이 VPC 간에 라우팅되도록 할 수도 있습니다. VPC 변경에 대한 메트릭 필터 및 알람을 설정하는 것이 좋습니다. IAM 정책의 변경 내용을 모니터링하면 인증 및 권한 부여 제어가 그대로 유지되도록 할 수 있습니다.

심각도: 낮음

어떤 보안 그룹에서도 0.0.0.0/0에서 포트 3389로의 수신을 허용하면 안 됩니다.

설명: 보안 그룹은 AWS 리소스에 대한 수신/송신 네트워크 트래픽의 상태 저장 필터링을 제공합니다. 포트 3389에 대한 무제한 수신 액세스를 허용하는 보안 그룹은 없는 것이 좋습니다. RDP와 같은 원격 콘솔 서비스에 대한 자유로운 연결을 제거하면 서버의 위험 노출이 줄어듭니다.

심각도: 높음

RDS 데이터베이스 및 클러스터는 데이터베이스 엔진 기본 포트를 사용하지 않아야 합니다.

설명: 이 컨트롤은 RDS 클러스터 또는 인스턴스가 데이터베이스 엔진의 기본 포트 이외의 포트를 사용하는지 여부를 확인합니다. 알려진 포트를 사용하여 RDS 클러스터 또는 인스턴스를 배포하는 경우 공격자가 클러스터 또는 인스턴스에 대한 정보를 추측할 수 있습니다. 공격자는 이 정보를 다른 정보와 함께 사용하여 RDS 클러스터 또는 인스턴스에 연결하거나 애플리케이션에 대한 추가 정보를 얻을 수 있습니다. 포트를 변경하면 이전 포트에 연결하는 데 사용된 기존 연결 문자열도 업데이트해야 합니다. 또한 DB 인스턴스의 보안 그룹을 검사하여 새 포트에서 연결하도록 허용하는 수신 규칙이 포함되어 있는지 확인해야 합니다.

심각도: 낮음

RDS 인스턴스는 VPC에 배포해야 합니다.

설명: VPC는 RDS 리소스에 대한 액세스를 보호하기 위해 다양한 네트워크 제어를 제공합니다. 이러한 컨트롤에는 VPC 엔드포인트, 네트워크 ACL 및 보안 그룹이 포함됩니다. 이러한 컨트롤을 활용하려면 EC2-Classic RDS 인스턴스를 EC2-VPC로 이동하는 것이 좋습니다.

심각도: 낮음

S3 버킷이 요청에 Secure Socket Layer를 사용하도록 요구해야 합니다.

설명: 모든 Amazon S3 버킷에서 SSL(Secure Socket Layer)을 사용하도록 요청해야 합니다. S3 버킷에는 S3 리소스 정책에 따라 조건 키 'aws:SecureTransport'로 표시된 모든 요청('Action: S3:*')이 HTTPS를 통한 데이터 전송만 허용하도록 하는 정책이 있어야 합니다.

심각도: 보통

보안 그룹은 0.0.0.0/0에서 포트 22로의 수신을 허용하면 안 됩니다.

설명: 서버 노출을 줄이려면 포트 '22'에 대한 무제한 수신 액세스를 허용하지 않는 것이 좋습니다.

심각도: 높음

보안 그룹은 위험 수준이 높은 포트에 대한 무제한 액세스를 허용하지 않아야 합니다.

설명: 이 컨트롤은 보안 그룹에 대한 무제한 들어오는 트래픽이 위험이 가장 높은 지정된 포트에 액세스할 수 있는지 여부를 확인합니다. 보안 그룹의 모든 규칙이 해당 포트에 대한 0.0.0.0/0의 수신 트래픽을 허용하지 않을 때 이 컨트롤은 검사에 합격합니다. 무제한 액세스(0.0.0.0/0)는 해킹, 서비스 거부 공격 및 데이터 소실과 같은 악의적인 활동의 가능성을 높입니다. 보안 그룹은 AWS 리소스에 대한 수신 및 송신 네트워크 트래픽의 상태 저장 필터링을 제공합니다. 보안 그룹은 다음 포트에 대한 무제한 수신 액세스를 허용하면 안 됩니다.

  • 3389(RDP)
  • 20, 21(FTP)
  • 22(SSH)
  • 23(텔넷)
  • 110(POP3)
  • 143(IMAP)
  • 3306(MySQL)
  • 8080(프록시)
  • 1433, 1434(MSSQL)
  • 9200 또는 9300(Elasticsearch)
  • 5601 (키바나)
  • 25(SMTP)
  • 445(CIFS)
  • 135(RPC)
  • 4333(ahsp)
  • 5432(postgresql)
  • 5500(fcp-addr-srvr1)

심각도: 보통

보안 그룹은 권한 있는 포트에 대해 제한되지 않은 수신 트래픽만 허용해야 합니다.

설명: 이 컨트롤은 사용 중인 보안 그룹이 무제한으로 들어오는 트래픽을 허용하는지 여부를 확인합니다. 필요에 따라 규칙은 포트 번호가 "authorizedTcpPorts" 매개 변수에 나열되는지 확인합니다.

  • 보안 그룹 규칙 포트 번호가 무제한으로 들어오는 트래픽을 허용하지만 포트 번호가 "authorizedTcpPorts"에 지정된 경우 컨트롤이 전달됩니다. "authorizedTcpPorts"의 기본값은 80, 443입니다.
  • 보안 그룹 규칙 포트 번호에서 무제한 들어오는 트래픽을 허용하지만 포트 번호가 authorizedTcpPorts 입력 매개 변수에 지정되지 않은 경우 컨트롤이 실패합니다.
  • 매개 변수를 사용하지 않으면 무제한 인바운드 규칙이 있는 보안 그룹에 대해 컨트롤이 실패합니다. 보안 그룹은 AWS에 대한 수신 및 송신 네트워크 트래픽의 상태 기반 필터링을 제공합니다. 보안 그룹 규칙은 최소 권한 액세스 원칙을 따라야 합니다. 무제한 액세스(/0 접미사가 있는 IP 주소)는 해킹, 서비스 거부 공격, 데이터 손실과 같은 악의적인 활동의 가능성을 높입니다. 포트가 특별히 허용되지 않는 한 포트는 무제한 액세스를 거부해야 합니다.

심각도: 높음

사용되지 않는 EC2 EIP를 제거해야 합니다.

설명: VPC에 할당된 탄력적 IP 주소는 Amazon EC2 인스턴스 또는 사용 중인 ENIS(탄력적 네트워크 인터페이스)에 연결되어야 합니다.

심각도: 낮음

사용하지 않는 네트워크 액세스 제어 목록을 제거해야 합니다.

설명: 이 컨트롤은 사용되지 않는 ACL(네트워크 액세스 제어 목록)이 있는지 여부를 확인합니다. 이 컨트롤은 리소스 "AWS::EC2::NetworkAcl"의 항목 구성을 확인하고 네트워크 ACL의 관계를 결정합니다. 유일한 관계가 네트워크 ACL의 VPC인 경우 이 컨트롤은 검사에 불합격합니다. 다른 관계가 나열되면 이 컨트롤은 검사에 합격합니다.

심각도: 낮음

VPC의 기본 보안 그룹이 모든 트래픽을 제한해야 합니다.

설명: 보안 그룹은 리소스 노출을 줄이기 위해 모든 트래픽을 제한해야 합니다.

심각도: 낮음

GCP 네트워킹 권장 사항

클러스터 호스트는 비공개 내부 IP 주소만 사용하여 Google API에 액세스하도록 구성해야 함

설명: 이 권장 사항은 서브네트워크의 privateIpGoogleAccess 속성이 false로 설정되어 있는지 여부를 평가합니다.

심각도: 높음

컴퓨팅 인스턴스는 대상 HTTPS 프록시를 사용하도록 구성된 부하 분산 장치를 사용해야 함

설명: 이 권장 사항은 targetHttpProxy 리소스의 selfLink 속성이 전달 규칙의 대상 특성과 일치하는지, 전달 규칙에 External로 설정된 loadBalancingScheme 필드가 포함되어 있는지 평가합니다.

심각도: 보통

GKE 클러스터에서 컨트롤 플레인 승인 네트워크를 사용하도록 설정해야 함

설명: 이 권장 사항은 'enabled': false 키-값 쌍에 대한 클러스터의 masterAuthorizedNetworksConfig 속성을 평가합니다.

심각도: 높음

원치 않는 아웃바운드 트래픽을 차단하려면 방화벽에 송신 거부 규칙을 설정해야 함

설명: 이 권장 사항은 방화벽의 destinationRanges 속성이 0.0.0.0/0으로 설정되어 있고 거부된 속성에 키-값 쌍이 포함되어 있는지 여부를 평가합니다. 'IPProtocol': 'all.'

심각도: 낮음

IAP(ID 인식 프록시) 뒤에 있는 인스턴스에 대한 방화벽 규칙이 GCLB(Google Cloud Loadbalancer) 상태 검사 및 프록시 주소의 트래픽만 허용해야 함

설명: VM에 대한 액세스는 IAP에서 프록시된 연결만 허용하여 IAP 트래픽만 허용하는 방화벽 규칙에 의해 제한되어야 합니다. 부하 분산이 올바르게 작동하도록 하려면 상태 확인도 허용되어야 합니다. IAP는 들어오는 요청을 인증하여 VM에 대한 액세스를 제어합니다. 그러나 VM이 IAP 이외의 IP 주소에서 계속 액세스할 수 있는 경우에도 인증되지 않은 요청을 인스턴스로 보낼 수 있습니다. 부하 분산 장치가 VM의 상태를 올바르게 파악하고 부하 분산을 올바르게 알 수 없도록 부하 분산 장치가 차단되지 않도록 주의해야 합니다.

심각도: 보통

프로젝트에 대한 레거시 네트워크가 없어야 함

설명: 레거시 네트워크 사용을 방지하기 위해 프로젝트에 레거시 네트워크가 구성되지 않아야 합니다. 레거시 네트워크에는 단일 네트워크 IPv4 접두사 범위와 전체 네트워크에 대한 단일 게이트웨이 IP 주소가 있습니다. 네트워크는 범위가 전역적이며 모든 클라우드 지역에 걸쳐 있습니다. 서브네트워크는 레거시 네트워크에서 만들 수 없으며 레거시에서 자동 또는 사용자 지정 서브넷 네트워크로 전환할 수 없습니다. 레거시 네트워크는 네트워크 트래픽이 많은 프로젝트에 영향을 미칠 수 있으며 단일 경합 또는 실패 지점이 있습니다.

심각도: 보통

Cloud SQL PostgreSQL 인스턴스에 대한 'log_hostname' 데이터베이스 플래그를 적절하게 설정해야 함

설명: PostgreSQL은 연결 호스트의 IP 주소만 기록합니다. "log_hostname" 플래그는 로그된 IP 주소 외에 "hostnames"의 기록을 제어합니다. 성능 적중은 환경 구성 및 호스트 이름 확인 설정에 따라 다릅니다. 이 매개 변수는 "postgresql.conf" 파일 또는 서버 명령줄에서만 설정할 수 있습니다. 호스트 이름을 로깅하면 로깅되는 각 문에 대해 서버 성능에 오버헤드가 발생할 수 있으며 IP 주소를 호스트 이름으로 변환하려면 DNS 확인이 필요합니다. 설정에 따라 무시할 수 없습니다. 또한 로그된 IP 주소는 동적 호스트 이름이 사용되는 경우를 제외하고 나중에 로그를 검토할 때 해당 DNS 이름으로 확인될 수 있습니다. 이 권장 사항은 PostgreSQL 데이터베이스 인스턴스에 적용됩니다.

심각도: 낮음

모든 HTTPS 또는 SSL 프록시 부하 분산 장치에서 약한 암호 도구 모음을 사용하는 SSL 정책을 허용하지 않아야 함

설명: SSL(Secure Sockets Layer) 정책은 부하 분산 장치에 연결할 때 클라이언트가 사용할 수 있는 TLS(포트 전송 계층 보안) 기능을 결정합니다. 안전하지 않은 기능의 사용을 방지하기 위해 SSL 정책은 (a) MODERN 프로필에 TLS 1.2 이상을 사용해야 합니다. 또는 (b) 선택한 최소 TLS 버전에 관계없이 클라이언트가 TLS 1.2를 효과적으로 사용해야 하므로 RESTRICTED 프로필입니다. 또는 (3) 다음 기능 중 어느 것을 지원하지 않는 사용자 지정 프로필: TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA

부하 분산 장치는 여러 서버에 트래픽을 효율적으로 분산하는 데 사용됩니다. SSL 프록시와 HTTPS 부하 분산 장치는 모두 외부 부하 분산 장치이므로 인터넷에서 GCP 네트워크로 트래픽을 분산합니다. GCP 고객은 클라이언트가 연결을 설정하는 데 사용할 수 있는 최소 TLS 버전(1.0, 1.1 또는 1.2)과 함께 허용되는 암호화 그룹을 지정하는 프로필(호환, 최신, 제한 또는 사용자 지정)로 부하 분산 장치 SSL 정책을 구성할 수 있습니다. 오래된 프로토콜을 사용하는 사용자를 준수하기 위해 안전하지 않은 암호화 그룹을 허용하도록 GCP 부하 분산 장치를 구성할 수 있습니다. 실제로 GCP 기본 SSL 정책은 최소 TLS 버전 1.0과 가장 광범위한 안전하지 않은 암호화 그룹을 허용하는 호환 프로필을 사용합니다. 따라서 고객이 오래된 암호 그룹을 허용하고 있다는 사실을 모르고도 부하 분산 장치를 쉽게 구성할 수 있습니다.

심각도: 보통

모든 VPC 네트워크에 대해 Cloud DNS 로깅을 사용하도록 설정해야 함

설명: 클라우드 DNS 로깅은 VPC 내의 이름 서버에서 Stackdriver로 쿼리를 기록합니다. 로깅된 쿼리는 컴퓨팅 엔진 VM, GKE 컨테이너 또는 VPC 내에서 프로비전된 기타 GCP 리소스에서 가져올 수 있습니다. 보안 모니터링 및 포렌식은 VPC 흐름 로그의 IP 주소에만 의존할 수 없으며, 특히 클라우드 리소스, HTTP 가상 호스트 라우팅 및 IP 주소에서 클라이언트가 사용하는 DNS 이름을 모호하게 할 수 있는 기타 기술의 동적 IP 사용을 고려할 때 특히 그렇습니다. Cloud DNS 로그를 모니터링하면 VPC 내에서 클라이언트가 요청한 DNS 이름을 볼 수 있습니다. 이러한 로그는 비정상적인 도메인 이름을 모니터링하고 위협 인텔리전스에 대해 평가할 수 있으며

DNS의 전체 캡처를 위해 방화벽은 클라이언트가 확인을 위해 외부 DNS 이름 서버를 사용하지 못하도록 송신 UDP/53(DNS) 및 TCP/443(HTTPS를 통한 DNS)을 차단해야 합니다.

심각도: 높음

클라우드 DNS에 대해 DNSSEC를 사용하도록 설정해야 함

설명: DNS(클라우드 도메인 이름 시스템)는 인터넷에서 수백만 개의 도메인을 지원하는 빠르고 안정적이며 비용 효율적인 도메인 이름 시스템입니다. Cloud DNS의 DNSSEC(Domain Name System Security Extensions)를 사용하면 도메인 소유자가 DNS 하이재킹, 중간자 및 기타 공격으로부터 도메인을 보호하기 위한 간단한 조치를 취할 수 있습니다. DNSSEC(Domain Name System Security Extensions)는 DNS 응답의 유효성을 검사하여 DNS 프로토콜에 보안을 추가합니다. 도메인 이름을 www.example.com 연결된 IP 주소로 변환하는 신뢰할 수 있는 DNS를 갖는 것은 오늘날 웹 기반 애플리케이션의 점점 더 중요한 구성 요소입니다. 공격자는 이 도메인/IP 조회 프로세스를 하이재킹하고 DNS 하이재킹 및 중간자 공격을 통해 사용자를 악의적인 사이트로 리디렉션할 수 있습니다. DNSSEC는 DNS 레코드에 암호로 서명하여 이러한 공격의 위험을 완화하는 데 도움이 됩니다. 결과적으로 공격자가 브라우저를 사악한 웹 사이트로 잘못 연결할 수 있는 가짜 DNS 응답을 발급하지 못하게 합니다.

심각도: 보통

인터넷의 RDP 액세스가 제한되는지 확인

설명: GCP 방화벽 규칙은 VPC 네트워크와 관련이 있습니다. 각 규칙은 조건이 충족되면 트래픽을 허용하거나 거부합니다. 해당 조건을 통해 사용자는 포트 및 프로토콜과 같은 트래픽 형식과 IP 주소, 서브넷 및 인스턴스를 포함한 트래픽의 원본 또는 대상을 지정할 수 있습니다. 방화벽 규칙은 VPC 네트워크 수준에서 정의되며 정의된 네트워크와 관련이 있습니다. 규칙 자체는 네트워크 간에 공유할 수 없습니다. 방화벽 규칙은 IPv4 트래픽만 지원합니다. 수신 규칙의 원본 또는 주소별로 송신 규칙의 대상을 지정하는 경우 CIDR 표기법의 IPv4 주소 또는 IPv4 블록을 사용할 수 있습니다. 포트 3389에서 RDP를 사용하여 인터넷에서 VPC 또는 VM 인스턴스로 들어오는 제네릭(0.0.0.0/0)을 방지할 수 있습니다. VPC 네트워크 내의 GCP 방화벽 규칙 이러한 규칙은 인스턴스에서 나가는(송신) 트래픽과 네트워크의 인스턴스로 들어오는(수신) 트래픽에 적용됩니다. 송신 및 수신 트래픽 흐름은 트래픽이 네트워크 내에 있는 경우에도 제어됩니다(예: 인스턴스 간 통신). 인스턴스가 나가는 인터넷 액세스 권한을 가지려면 네트워크에 대상 IP가 지정된 유효한 인터넷 게이트웨이 경로 또는 사용자 지정 경로가 있어야 합니다. 이 경로는 기본 포트 3389를 사용하여 RDP를 통해 인터넷에서 지정된 가장 일반적인(0.0.0.0/0) 대상 IP 범위를 피하기 위해 단순히 인터넷 경로를 정의합니다. 인터넷에서 특정 IP 범위로의 일반 액세스는 제한되어야 합니다.

심각도: 높음

클라우드 DNS DNSSEC의 키 서명 키에 RSASHA1을 사용하지 않도록 해야 함

설명: 이 레지스트리의 DNSSEC 알고리즘 번호는 CERT RR에서 사용될 수 있습니다. 영역 서명(DNSSEC) 및 트랜잭션 보안 메커니즘(SIG(0) 및 TSIG)은 이러한 알고리즘의 특정 하위 집합을 사용합니다. 키 서명에 사용되는 알고리즘은 권장되는 것이어야 하며 강력해야 합니다. 이 레지스트리의 DNSSEC(Domain Name System Security Extensions) 알고리즘 번호는 CERT RR에서 사용될 수 있습니다. 영역 서명(DNSSEC) 및 트랜잭션 보안 메커니즘(SIG(0) 및 TSIG)은 이러한 알고리즘의 특정 하위 집합을 사용합니다. 키 서명에 사용되는 알고리즘은 권장되는 것이어야 하며 강력해야 합니다. 관리되는 영역에 대해 DNSSEC를 사용하도록 설정하거나 DNSSEC를 사용하여 관리되는 영역을 만드는 경우 사용자는 DNSSEC 서명 알고리즘 및 존재 거부 유형을 선택할 수 있습니다. DNSSEC 설정을 변경하는 것은 DNSSEC를 아직 사용하도록 설정하지 않은 경우에만 관리되는 영역에 적용됩니다. 사용하도록 설정된 관리되는 영역에 대한 설정을 변경해야 하는 경우 DNSSEC를 해제한 다음 다른 설정으로 다시 사용하도록 설정합니다.

심각도: 보통

클라우드 DNS DNSSEC의 영역 서명 키에 RSASHA1을 사용하지 않도록 해야 함

설명: 이 레지스트리의 DNSSEC 알고리즘 번호는 CERT RR에서 사용될 수 있습니다. 영역 서명(DNSSEC) 및 트랜잭션 보안 메커니즘(SIG(0) 및 TSIG)은 이러한 알고리즘의 특정 하위 집합을 사용합니다. 키 서명에 사용되는 알고리즘은 권장되는 것이어야 하며 강력해야 합니다. 이 레지스트리의 DNSSEC 알고리즘 번호는 CERT RR에서 사용될 수 있습니다. 영역 서명(DNSSEC) 및 트랜잭션 보안 메커니즘(SIG(0) 및 TSIG)은 이러한 알고리즘의 특정 하위 집합을 사용합니다. 키 서명에 사용되는 알고리즘은 권장되는 것이어야 하며 강력해야 합니다. 관리되는 영역에 대해 DNSSEC를 사용하도록 설정하거나 DNSSEC를 사용하여 관리되는 영역을 만들 때 DNSSEC 서명 알고리즘 및 존재 거부 유형을 선택할 수 있습니다. DNSSEC 설정을 변경하는 것은 DNSSEC를 아직 사용하도록 설정하지 않은 경우에만 관리되는 영역에 적용됩니다. 사용하도록 설정된 관리되는 영역에 대한 설정을 변경해야 하는 경우 DNSSEC를 해제한 다음 다른 설정으로 다시 사용하도록 설정합니다.

심각도: 보통

인터넷의 SSH 액세스가 제한되는지 확인

설명: GCP 방화벽 규칙은 VPC 네트워크와 관련이 있습니다. 각 규칙은 조건이 충족되면 트래픽을 허용하거나 거부합니다. 해당 조건을 통해 사용자는 포트 및 프로토콜과 같은 트래픽 형식과 IP 주소, 서브넷 및 인스턴스를 포함한 트래픽의 원본 또는 대상을 지정할 수 있습니다. 방화벽 규칙은 VPC 네트워크 수준에서 정의되며 정의된 네트워크와 관련이 있습니다. 규칙 자체는 네트워크 간에 공유할 수 없습니다. 방화벽 규칙은 IPv4 트래픽만 지원합니다. 수신 규칙의 원본 또는 주소별로 송신 규칙의 대상을 지정하는 경우 CIDR 표기법의 IPv4 주소 또는 IPv4 블록만 사용할 수 있습니다. 포트 22에서 SSH를 사용하여 인터넷에서 VPC 또는 VM 인스턴스로 들어오는 일반(0.0.0.0/0) 트래픽을 피할 수 있습니다. VPC 네트워크 내의 GCP 방화벽 규칙은 인스턴스에서 나가는(송신) 트래픽과 네트워크의 인스턴스로 들어오는(수신) 트래픽에 적용됩니다. 송신 및 수신 트래픽 흐름은 트래픽이 네트워크 내에 있는 경우에도 제어됩니다(예: 인스턴스 간 통신). 인스턴스가 나가는 인터넷 액세스 권한을 가지려면 네트워크에 대상 IP가 지정된 유효한 인터넷 게이트웨이 경로 또는 사용자 지정 경로가 있어야 합니다. 이 경로는 인터넷에서 SSH를 통해 기본 포트 '22'로 지정된 가장 일반적인(0.0.0.0/0) 대상 IP 범위를 방지하기 위해 인터넷 경로를 정의하기만 하면 됩니다. 인터넷에서 특정 IP 범위로의 일반 액세스를 제한해야 합니다.

심각도: 높음

프로젝트에 기본 네트워크가 없어야 함

설명: "기본" 네트워크 사용을 방지하려면 프로젝트에 "기본" 네트워크가 없어야 합니다. 기본 네트워크에는 미리 구성된 네트워크 구성이 있으며 다음과 같은 안전하지 않은 방화벽 규칙을 자동으로 생성합니다.

  • default-allow-internal: 네트워크의 인스턴스 간에 모든 프로토콜 및 포트에 대한 수신 연결을 허용합니다.
  • default-allow-ssh: 모든 원본에서 네트워크의 모든 인스턴스로 TCP 포트 22(SSH)에서 수신 연결을 허용합니다.
  • default-allow-rdp: 모든 원본에서 네트워크의 모든 인스턴스로 TCP 포트 3389(RDP)에서 수신 연결을 허용합니다.
  • default-allow-icmp: 모든 원본에서 네트워크의 모든 인스턴스로 들어오는 ICMP 트래픽을 허용합니다.

자동으로 생성된 이러한 방화벽 규칙은 감사가 기록되지 않으며 방화벽 규칙 로깅을 사용하도록 구성할 수 없습니다. 또한 기본 네트워크는 자동 모드 네트워크입니다. 즉, 서브넷이 동일한 미리 정의된 IP 주소 범위를 사용하므로 기본 네트워크에서 Cloud VPN 또는 VPC 네트워크 피어링을 사용할 수 없습니다. 조직 보안 및 네트워킹 요구 사항에 따라 조직은 새 네트워크를 만들고 기본 네트워크를 삭제해야 합니다.

심각도: 보통

VPC 네트워크 변경에 대한 로그 메트릭 필터 및 경고가 있어야 함

설명: VPC(가상 사설 클라우드) 네트워크 변경에 대한 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 프로젝트 내에 둘 이상의 VPC가 있을 수 있습니다. 또한 VPC 간에 네트워크 트래픽을 라우팅할 수 있도록 두 VPC 간에 피어 연결을 만들 수도 있습니다. VPC에 대한 변경 내용을 모니터링하면 VPC 트래픽 흐름이 영향을 받지 않도록 하는 데 도움이 됩니다.

심각도: 낮음

VPC 네트워크 방화벽 규칙 변경에 대한 로그 메트릭 필터 및 경고가 있어야 함

설명: VPC(가상 사설 클라우드) 네트워크 방화벽 규칙 변경에 대해 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 방화벽 규칙 만들기 또는 업데이트 이벤트에 대한 모니터링은 네트워크 액세스 변경에 대한 인사이트를 제공하고 의심스러운 활동을 감지하는 데 걸리는 시간을 줄일 수 있습니다.

심각도: 낮음

VPC 네트워크 경로 변경에 대한 로그 메트릭 필터 및 경고가 있어야 함

설명: VPC(가상 사설 클라우드) 네트워크 경로 변경에 대한 메트릭 필터 및 경보를 설정하는 것이 좋습니다. GCP(Google Cloud Platform) 경로는 네트워크 트래픽이 VM 인스턴스에서 다른 대상으로 이동하는 경로를 정의합니다. 다른 대상은 조직 VPC 네트워크 내부(예: 다른 VM) 또는 외부에 있을 수 있습니다. 모든 경로는 대상과 다음 홉으로 구성됩니다. 대상 IP가 대상 범위 내에 있는 트래픽은 배달을 위해 다음 홉으로 전송됩니다. 경로 테이블 변경을 모니터링하면 모든 VPC 트래픽이 예상 경로를 통과하도록 하는 데 도움이 됩니다.

심각도: 낮음

Cloud SQL PostgreSQL 인스턴스에 대한 'log_connections' 데이터베이스 플래그를 '켬'으로 설정해야 함

설명: log_connections 설정을 사용하도록 설정하면 클라이언트 인증을 성공적으로 완료하면서 서버에 대한 각 시도된 연결이 기록됩니다. 세션이 시작된 후에는 이 매개 변수를 변경할 수 없습니다. PostgreSQL은 기본적으로 시도된 연결을 기록하지 않습니다. log_connections 설정을 사용하면 시도된 각 연결에 대한 로그 항목과 클라이언트 인증의 성공적인 완료가 생성되며, 이는 문제를 해결하고 서버에 대한 비정상적인 연결 시도를 확인하는 데 유용할 수 있습니다. 이 권장 사항은 PostgreSQL 데이터베이스 인스턴스에 적용됩니다.

심각도: 보통

Cloud SQL PostgreSQL 인스턴스에 대한 'log_disconnections' 데이터베이스 플래그를 '켬'으로 설정해야 함

설명: log_disconnections 설정을 사용하도록 설정하면 세션 기간을 포함하여 각 세션의 끝을 기록합니다. PostgreSQL은 기본적으로 기간 및 세션 종료와 같은 세션 세부 정보를 기록하지 않습니다. log_disconnections 설정을 사용하도록 설정하면 각 세션이 끝날 때 로그 항목이 생성되며, 이는 문제 해결에 유용하고 일정 기간 동안 비정상적인 활동을 결정하는 데 유용할 수 있습니다. log_disconnections 및 log_connections는 함께 작동하며 일반적으로 쌍이 함께 사용하도록 설정되거나 사용하지 않도록 설정됩니다. 이 권장 사항은 PostgreSQL 데이터베이스 인스턴스에 적용됩니다.

심각도: 보통

VPC 네트워크의 모든 서브넷에 대해 VPC 흐름 로그를 사용하도록 설정해야 함

설명: 흐름 로그는 사용자가 조직의 VPC 서브넷에서 네트워크 인터페이스를 오가는 IP 트래픽에 대한 정보를 캡처할 수 있는 기능입니다. 흐름 로그가 만들어지면 사용자는 Stackdriver 로깅에서 해당 데이터를 보고 검색할 수 있습니다. 중요 비즈니스용 VPC 서브넷마다 흐름 로그를 사용하도록 설정하는 것이 좋습니다. VPC 네트워크와 하위 네트워크는 GCP 리소스를 실행할 수 있는 논리적으로 격리되고 보안된 네트워크 파티션을 제공합니다. 서브넷에 대해 흐름 로그를 사용하도록 설정하면 해당 서브넷 내의 VM이 모든 TCP(Transmission Control Protocol) 및 UDP(User Datagram Protocol) 흐름에 대해 보고하기 시작합니다. 각 VM은 흐름이 다른 VM, 온-프레미스 데이터 센터의 호스트, Google 서비스 또는 인터넷의 호스트에 대한 것인지 여부에 관계없이 인바운드 및 아웃바운드로 표시되는 TCP 및 UDP 흐름을 샘플링합니다. 두 GCP VM이 통신 중이고 둘 다 VPC 흐름 로그가 사용 설정된 서브넷에 있는 경우 두 VM 모두에 대해서 흐름을 보고합니다. Flow Logs는 다음 사용 사례를 지원합니다. 1. 네트워크 모니터링. 2. 네트워크 사용량을 이해하고 네트워크 트래픽 비용을 최적화합니다. 3. 네트워크 포렌식 4. 실시간 보안 분석 흐름 로그는 서브넷 내의 각 VM에 대한 네트워크 트래픽에 대한 가시성을 제공하며 보안 워크플로 중에 비정상적인 트래픽 또는 인사이트를 검색하는 데 사용할 수 있습니다.

심각도: 낮음

방화벽 규칙 로깅을 사용하도록 설정해야 함

설명: 이 권장 사항은 방화벽 메타데이터의 logConfig 속성을 평가하여 비어 있는지 또는 키-값 쌍 'enable'을 포함하는지 확인합니다. false.

심각도: 보통

공용 액세스에 열려 있도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 두 구성 중 하나에 대해 sourceRanges 및 허용되는 속성을 평가합니다.

sourceRanges 속성에는 0.0.0.0/0이 포함되고 allowed 속성에는 다음을 제외한 모든 프로토콜 또는 protocol:port를 포함하는 규칙 조합이 포함됩니다.

  • icmp
  • tcp: 22
  • tcp: 443
  • tcp: 3389
  • udp: 3389
  • sctp: 22

sourceRanges 속성은 모든 권한 없는 IP 주소를 포함하는 IP 범위의 조합을 포함하고 허용된 속성은 모든 tcp 포트 또는 모든 udp 포트를 허용하는 규칙의 조합을 포함합니다.

심각도: 높음

일반 액세스를 허용하는 개방형 CASSANDRA 포트를 포함하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 7000-7001, 7199, 8888, 9042, 9160, 61620-61621 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 열린 CISCOSECURE_WEBSM 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 9090 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 열린 DIRECTORY_SERVICES 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 445 및 UDP: 445 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 열린 DNS 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 53 및 UDP: 53 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 ELASTICSEARCH 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 9200, 9300 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 FTP 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 21 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 HTTP 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 80 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 LDAP 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 389, 636 및 UDP: 389 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 열린 MEMCACHED 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 11211, 11214-11215 및 UDP: 11211, 11214-11215 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 열린 MONGODB 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 27017-27019 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 MYSQL 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 3306 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 NETBIOS 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 137-139 및 UDP: 137-139 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 ORACLEDB 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 1521, 2483-2484 및 UDP: 2483-2484 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 POP3 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 110 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 PostgreSQL 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 TCP: 5432 및 UDP: 5432 프로토콜 및 포트에 대해 방화벽 메타데이터에서 허용되는 속성을 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 REDIS 포트를 포함하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 방화벽 메타데이터에서 허용되는 속성에 TCP: 6379 프로토콜 및 포트가 포함되어 있는지 여부를 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 SMTP 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 방화벽 메타데이터에서 허용되는 속성에 TCP: 25 프로토콜 및 포트가 포함되어 있는지 여부를 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 개방형 SSH 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 방화벽 메타데이터에서 허용되는 속성에 TCP: 22 및 SCTP: 22 프로토콜 및 포트가 포함되어 있는지 여부를 평가합니다.

심각도: 낮음

일반 액세스를 허용하는 열린 TELNET 포트를 사용하도록 방화벽을 구성해서는 안 됨

설명: 이 권장 사항은 방화벽 메타데이터에서 허용되는 속성에 TCP: 23 프로토콜 및 포트가 포함되어 있는지 여부를 평가합니다.

심각도: 낮음

GKE 클러스터에는 별칭 IP 범위를 사용하도록 설정해야 함

설명: 이 권장 사항은 클러스터에서 ipAllocationPolicy의 useIPAliases 필드가 false로 설정되어 있는지 여부를 평가합니다.

심각도: 낮음

GKE 클러스터에는 프라이빗 클러스터를 사용하도록 설정해야 함

설명: 이 권장 사항은 privateClusterConfig 속성의 enablePrivateNodes 필드가 false로 설정되어 있는지 여부를 평가합니다.

심각도: 높음

GKE 클러스터에서 네트워크 정책을 사용하도록 설정해야 함

설명: 이 권장 사항은 키-값 쌍 'disabled'에 대한 addonsConfig 속성의 networkPolicy 필드를 평가합니다. true입니다.

심각도: 보통