- 가정용 NAS 장비의 웹 인터페이스가 내부 전용 호스트네임을 외부 서비스로 전송하는 사례 발견
- NAS 웹 UI에 포함된 sentry.io 오류 보고 스크립트가 스택 트레이스와 함께 내부 호스트네임을 외부로 전송
- sentry.io 측에서 해당 호스트네임으로 TLS 연결을 역으로 시도하지만 실제 요청은 보내지 않는 이상한 동작이 관찰됨
- 와일드카드 DNS를 미리 설정해 둔 덕분에 유출 사실을 탐지할 수 있었으며, 민감한 호스트네임 사용 시 심각한 정보 노출 위험 존재
- 이 메커니즘을 악용하면 임의의 호스트에 대한 DNS 스캔을 유도할 수 있는 잠재적 보안 문제
NAS 설치와 내부 호스트네임 구성
- NAS 장비를 구매해 드라이브를 장착하고 홈 네트워크에 연결, HTTPS 모드로 운영
- 공개 인터넷에서 의미 없는 도메인의 하위 서브존(예: *.nothing-special.whatever.example.com)에 대한 와일드카드 TLS 인증서를 설치
-
/etc/hosts 파일에 172.16.12.34 nas.nothing-special.whatever.example.com과 같은 로컬 전용 항목을 추가하여 브라우저에서 접근
외부로부터의 예상치 못한 접속 발견
- NAS 설치 며칠 후, 동일한 호스트네임으로 외부("outside world")에서 요청이 들어오기 시작
- 해당 호스트네임은 노트북의 /etc/hosts 파일에만 존재하는 완전히 내부 전용 이름
- 사전에 *.nothing-special.whatever.example.com 전체에 대해 자신이 관리하는 머신으로 향하는 와일드카드 DNS 항목을 설정해 두었기 때문에 유출을 탐지 가능
- NAS를 로드할 때마다 GCP 호스트가 해당 내부 호스트네임을 SNI로 제시하며 접속을 시도
유출 원인: sentry.io 오류 보고
- NAS 웹 인터페이스에 폰홈(phone home) 기능이 포함되어 있으며, 그 일부로 sentry.io에 스택 트레이스를 전송
- 브라우저가 sentry.io에 콜백하면서 내부 스토리지 장비에 사용하는 호스트네임을 함께 전달
- sentry.io 측에서 해당 호스트네임으로 TLS 연결을 역으로 생성하지만, 실제 HTTP 요청은 전혀 보내지 않는 동작 확인
보안 시사점과 대응
- 호스트네임에 민감한 정보(예: mycorp-and-othercorp-planned-merger-storage 같은 이름)를 포함할 경우 심각한 정보 유출 위험
- 이 sentry 보고 메커니즘을 이용해 임의의 외부 호스트에 대한 DNS 스캔을 유도하는 것이 가능(구체적 방법은 독자에게 맡김)
- 대응 조치로 Little Snitch를 실행해 해당 도메인 전체를 모든 앱에 대해 차단 처리