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
- 전술
- Defense Evasion
- 기법
- 이름: Impair Defenses: Disable or Modify Cloud Firewall
- ID: T1562.007
- 참조 URL: https://attack.mitre.org/techniques/T1562/007/