AWS

다운로드 365
업데이트 2025. 4. 30.

AWS 보안 그룹 인터넷 인바운드 허용

AWS 보안 그룹의 Ingress 규칙 목록에 인터넷 인바운드를 허용하는 규칙 추가 시 탐지합니다.

쿼리

AWS CloudTrail은 보안그룹 Ingress 규칙 추가 시 AuthorizeSecurityGroupIngress 이벤트를 기록합니다. 요청 매개변수(req_params)는 아래와 같은 형식으로 구성되어 있습니다.

{
    "groupId": "sg-00112233445566778",
    "ipPermissions": {
        "items": [
            {
                "ipRanges": {
                    "items": [
                        {
                            "description": "",
                            "cidrIp": "0.0.0.0/0"
                        }
                    ]
                },
                "prefixListIds": {},
                "fromPort": 22,
                "toPort": 22,
                "groups": {},
                "ipProtocol": "tcp",
                "ipv6Ranges": {}
            }
        ]
    }
}

따라서 ipPermissions.items.ipRanges.items.cidrIp 항목을 valueof()와 explode 명령어를 이용하여 cidrIp 항목을 추출하고, 이 값이 0.0.0.0/0 이거나 ::/0 인 경우에 탐지하도록 쿼리를 구성합니다.

| search event_name == "AuthorizeSecurityGroupIngress"
| eval group_id = valueof(req_params, "groupId"), items = valueof(valueof(req_params, "ipPermissions"), "items")
| explode items
| eval ip_ranges = valueof(valueof(items, "ipRanges"), "items"), from_port = valueof(items, "fromPort"), to_port = valueof(items, "toPort"), protocol = upper(valueof(items, "ipProtocol")) 
| explode ip_ranges 
| parsemap field=ip_ranges overlay=t 
| fields - items, ip_ranges  
| rename cidrIp as cidr 
| search in(cidr, "0.0.0.0/0", "::/0")

메시지

  • AWS 보안 그룹 인터넷 인바운드 허용 탐지: 사용자 $user, 보안그룹 $group_id, 포트 $from_port-$to_port

출력 필드 순서

  • _log_time, event_id, src_ip, account_id, aws_region, user_type, user, event_name, group_id, cidr, mask, protocol, from_port, to_port, description, user_agent

위협 분석

  • 0.0.0.0/0 허용은 전 세계 모든 호스트에서 접근이 가능함을 의미합니다. 이는 공격자에게 SSH(22), RDP(3389), 데이터베이스 포트(3306, 5432 등) 와 같은 서비스가 직접 노출되는 결과를 초래합니다.
  • 인터넷 스캐닝 도구(Criminal IP, Shodan, Censys 등)에 의해 즉시 식별될 수 있으며, 무차별 대입(brute force), 취약점 스캐닝, 원격 코드 실행(RCE) 공격 등의 표적이 됩니다.
  • 공격자가 보안 그룹 규칙을 고의로 변경해 백도어 통신 채널이나 C2(Command & Control) 연결을 확보하려고 시도하는 상황일 수도 있습니다.

오탐 유형

  • 웹 서버(80, 443)처럼 본래 인터넷 전체에 노출되는 것이 정상인 서비스
  • 보안 장비(VPN 등)와 연계되어 실제 접근 제어는 다른 계층에서 이뤄지고, 보안 그룹만 느슨하게 설정된 경우

대응 방안

  • 즉각적인 조치
    • 보안 그룹에서 불필요한 0.0.0.0/0 규칙을 즉시 제거합니다.
    • 꼭 필요하다면 지정된 IP 대역(예: 사내망, VPN IP)으로 제한합니다.
    • 긴급 상황에서는 임시 NACL(Network ACL) 또는 WAF를 통해 위험 포트를 차단합니다.
  • 원인 분석
    • 변경 주체가 인가된 관리자였는지, 혹은 침해 계정으로 인한 의도치 않은 변경인지 확인합니다.
    • IaC 파이프라인(Terraform, CloudFormation 등)에서 자동으로 배포된 규칙인지 점검합니다.
  • 사후 대응
    • IAM 최소 권한 원칙 적용: 불필요하게 보안 그룹 수정 권한을 가진 계정/역할을 제거합니다.
    • Config 규칙/GuardDuty 연계: “0.0.0.0/0 허용 금지” 정책을 AWS Config 규칙으로 적용하여 실시간 탐지 및 자동 수정하도록 합니다.
    • 변경 승인 프로세스 강화: 운영 환경 보안 그룹 변경은 반드시 보안팀/운영팀의 승인 절차를 거치도록 합니다.
    • 지속적 모니터링: 변경된 기간 동안 외부 접근 시도가 있었는지, 서버 침투 흔적이 없는지 네트워크/엔드포인트 로그를 점검합니다.

MITRE ATT&CK