DoTTak’s Blog
/
Tags
/
Network
Search
Network
Search
Introduction
DNS Rebinding(DNS 리바인딩)은 보안 공격 기술 중 하나로, 공격자가 악의적인 DNS 서버를 통해 피해자의 웹 브라우저를 속여 내부 네트워크나 비공개 IP 주소로의 접근을 유도하는 방법입니다. 이를 통해 브라우저의 동일 출처 정책(SOP, Same Origin Policy)을 우회하고 내부 네트워크의 리소스에 무단으로 접근하여 데이터를 탈취하거나 조작할 수 있습니다.
How It Works
공격자는 자신이 소유하고 있는 도메인(e.g.
attacker.com
)의 DNS 레코드를 제어할 수 있습니다. 여기서는 도메인 주소에 대한 IP 주소(=호스트 주소) 즉, A 레코드에
1.1.1.1
이 설정되어 있습니다.
이후 피해자가 브라우저를 통해 URL
attacker.com
에 접속하면, 해당 도메인의 IP 주소가 DNS 캐시에 없기 때문에 DNS 질의(A 레코드)가 발생합니다. 그러면
DNS Resolver
로부터 도메인
attacker.com
의 호스트 주소인
1.1.1.1
을 응답받게 됩니다.
참고로 IP 주소를 반환할 때
TTL(Time To Live) 값을 짧게 설정하여 DNS 캐시가 빨리 만료
되도록 합니다. 그 이유는
DNS 캐시가 빨리 만료되어야 공격자가 원하는 시점에 DNS 응답을 다른 IP 주소(예: 내부 네트워크 주소)로 변경
할 수 있기 때문입니다.
그 다음 피해자의 브라우저는 공격자 웹 서버(
1.1.1.1
)로 부터 악성 JavaScript 코드가 포함된 웹 페이지를 받게 됩니다. 이 JavaScript 코드는 피해자의 브라우저에서 실행 되며, 주기적으로 도메인을 재요청(Rebinding)하여
DNS Rebinding
공격을 수행하게 됩니다.
이후 피해자의 DNS 캐시가 만료되면 피해자의 시스템은 다시 공격자의
DNS Resolver
로 DNS 질의(A 레코드)를 수행하게 됩니다. 이때 공격자는 자신의 도메인(
attacker.com
)의 A 레코드에 대해 내부 네트워크 주소
192.0.0.1
을 반환합니다.
그 결과, 피해자의 브라우저는 공격자가 변경한 DNS 응답에 따라 동일한 도메인(
attacker.com
)을 통해 내부 네트워크 주소(
192.0.0.1
)에 연결되어 내부 시스템에 접근하게 됩니다. 브라우저의 동일 출처 정책(SOP)은 도메인 이름만을 검사하므로, IP 주소가 변경되더라도 같은 도메인(
attacker.com
)으로 인식되어 접근이 허용됩니다.
How to Prevent
DNS Pinning
DNS Rebinding: 공격 원리 이해 및 실습
Web Security
2025/01/11