이상하네요. 일부 인스턴스가 프라이빗 서브넷에서 실행되고 있습니다. 이러한 서브넷은 인터넷에 직접 노출되지 않으며, 공용 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(Network LoadBalancer)를 사용하도록 하는 주석을 통해 노출됩니다.
NLB는 원본 IP 주소를 유지하므로 해당 IP는 AWS GuardDuty 로그에도 표시됩니다.