這很奇怪,我有一些實例在私有子網中運行。這些子網路不會直接暴露於 Internet,它們沒有公用 IP,且所有傳出流量都透過 NAT 執行個體路由。
但是,GuardDuty 會針對此私有子網路中的所有實例向我發出如下警告:
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
因此,這裡出現了多個問題:
- 當我的實例沒有公用 IP 位址時,它怎麼可能被掃描?
- 為什麼執行者 IP 位址與遠端 IP 位址不同?
答案1
我想我自己可能已經找到了原因,我會將其作為答案發布,以防其他人也遇到這個問題:
這些實例是 Kubernetes 叢集的一部分,我使用 nginx 作為入口控制器。此入口控制器透過type:Loadbalancer
註解公開,使 AWS 使用網路負載平衡器 (NLB)。
由於 NLB 保留原始 IP 位址,因此這些 IP 也會顯示在 AWS GuardDuty 日誌中。