Esto es extraño, tengo algunas instancias ejecutándose en una subred privada. Esas subredes no están expuestas directamente a Internet, no tienen una IP pública y todo el tráfico saliente se enruta a través de una instancia NAT.
Sin embargo, GuardDuty me brinda advertencias como esta para todas las instancias en esta subred privada:
Recon:EC2/PortProbeUnprotectedPort
Action
Action type
PORT_PROBE
Blocked
false
First seen
12-21-2019 22:22:10 (a month ago)
Last seen
01-19-2020 11:18:12 (38 minutes ago)
Actor
IP address
159.65.11.106
Location
country:
Singapore
lat:
1.314
lon:
103.6839
Organization
asn:
14061
asnOrg:
DigitalOcean, LLC
isp:
Digital Ocean
org:
Digital Ocean
Additional information
Threat name
Scanner
Threat list name
ProofPoint
Local port
30539
Archived
false
Remote IP details
ipAddress:
5.101.0.209
location:
Moscow, Russia
organization:
PinSPB
Entonces, aquí surgen múltiples preguntas:
- ¿Cómo es posible que mi instancia sea escaneada cuando no tiene una dirección IP pública?
- ¿Por qué la dirección IP del actor es diferente de la IP remota?
Respuesta1
Creo que podría haber encontrado el motivo yo mismo y lo publicaré como respuesta en caso de que otras personas también se encuentren con este problema:
Esas instancias eran parte de un clúster de Kubernetes y uso nginx como controlador de entrada. Este controlador de entrada está expuesto a través type:Loadbalancer
de una anotación que hace que AWS utilice un Network LoadBalancer (NLB).
Dado que los NLB conservan la dirección IP de origen, esas IP también se muestran en los registros de AWS GuardDuty.