내부 호스트명이 클라우드에 유출될 때

3 days ago 4

  • 가정용 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를 실행해 해당 도메인 전체를 모든 앱에 대해 차단 처리

Read Entire Article