반응형
📌 목차
- DNS Rebinding이란?
- 공격 원리와 작동 방식
- 주요 공격 기법
- 보안 위협과 실제 사례
- 방어 방법 및 대응 방안
🔍 DNS Rebinding이란?
DNS Rebinding(도메인 네임 시스템 리바인딩)은 공격자가 도메인의 DNS 응답을 조작하여, 피해자의 브라우저가 내부 네트워크 IP로 접속하도록 유도하는 공격 기법이다.
✅ 일반적인 DNS 요청 흐름
- 사용자가 attacker.com에 접속
- DNS 서버는 attacker.com → 192.168.1.100(공격 서버)로 응답
- 사용자의 브라우저는 공격 서버와 통신
✅ DNS Rebinding 공격 흐름
- 사용자가 attacker.com에 접속
- 초기 DNS 응답: attacker.com → 123.123.123.123(공격 서버)
- 이후 DNS 응답 변경: attacker.com → 192.168.1.1(내부 라우터)
- 피해자의 브라우저가 내부 네트워크에 접근 가능
🚨 결과:
- 내부 시스템 접근 (http://192.168.1.1/admin)
- 기업 내부 서버 공격 가능 (http://10.0.0.5/api)
⚙️ DNS Rebinding 공격의 원리
웹 브라우저는 Same-Origin Policy(SOP)로 인해,
attacker.com에서 192.168.1.1에 직접 요청을 보내지 못함.
그러나 DNS Rebinding을 사용하면:
- 공격 도메인의 DNS 응답을 주기적으로 변경
- 동일한 도메인(attacker.com)으로 내부 네트워크에 접근 가능
📌 공격자가 사용하는 악성 DNS 응답
attacker.com → 123.123.123.123 (초기 공격 서버)
attacker.com → 192.168.1.1 (내부 네트워크 라우터)
📌 브라우저에서 실행되는 악성 JavaScript
fetch("http://attacker.com/api"); // 초기 요청
setTimeout(() => {
fetch("http://attacker.com/private"); // 이후 내부 네트워크로 변경된 IP 접근
}, 5000);
🚨 결과:
- 사용자의 내부 IP, 라우터 설정, 사설 서버 정보가 공격자에게 노출됨
- 내부 API에 요청을 보내 데이터 유출 가능
🚨 주요 DNS Rebinding 공격 기법
1️⃣ 라우터 및 IoT 기기 해킹
📌 공격 방식
- http://192.168.1.1/admin에 접근하여 로그인 우회 시도
- 기본 계정(admin:admin)을 이용하여 설정 변경
✅ 공격 예제
fetch("http://192.168.1.1/change_password?new_password=hacked");
🚨 결과:
- 피해자의 라우터 비밀번호 변경
- DNS 서버 설정 조작 가능 (피싱 사이트로 리디렉션)
2️⃣ 기업 내부 네트워크 침투
📌 공격 방식
- 내부망에서만 접근 가능한 API 서버(10.0.0.5:8080) 공격
✅ 공격 예제
fetch("http://10.0.0.5/api/secret_data");
🚨 결과:
- 내부 API 서버에서 민감한 정보 유출 가능
3️⃣ 웹 애플리케이션 공격 (CSRF 연계)
📌 공격 방식
- CSRF와 결합하여 피해자의 내부 네트워크 데이터를 수정
✅ 공격 예제
fetch("http://192.168.1.100/update_settings?dns=attacker.com");
🚨 결과:
- 피해자의 네트워크 설정을 조작하여 트래픽을 공격자가 제어
⚠️ 보안 위협과 실제 사례
✅ 보안 위협
- 🛡️ 라우터 및 IoT 기기 해킹: 공격자가 내부 네트워크 장비를 장악
- 🎭 기업 내부 시스템 침투: 방화벽 뒤의 서버에 직접 접근 가능
- 🚀 데이터 탈취: 내부망에서만 접근 가능한 API를 통해 정보 유출
- 💣 DNS 변조: 피해자의 네트워크 트래픽을 공격자가 제어
✅ 실제 발생 사례
- 2018년 Google Home 및 Chromecast DNS Rebinding 취약점 발견
- 공격자가 피해자의 스마트 기기를 원격 제어 가능
- 2021년 여러 라우터 제조사에서 DNS Rebinding 취약점 보고됨
- 기본 비밀번호를 변경하지 않은 라우터에서 설정 변경 및 DNS 하이재킹 가능
🔐 방어 방법 및 대응 방안
✅ 1. 웹 브라우저의 DNS Rebinding 방어 기능 활성화
- Chrome, Firefox는 의심스러운 DNS 변경을 차단
- 브라우저에서 network.dns.disablePrefetch 설정 변경
✅ 2. 사설 IP 주소로의 요청 차단
- 서버에서 192.168.*.*, 10.*.*.* 등 내부 네트워크 IP 요청을 차단
- 예제 (Nginx 설정)
location / {
if ($remote_addr ~* "^192\.168\.|^10\." ) {
return 403;
}
}
✅ 3. DNS TTL(Time-To-Live) 증가
- DNS 서버가 너무 빠르게 IP를 변경하지 못하도록 TTL 값을 높임
- 예제 (BIND DNS 설정)
example.com. IN A 123.123.123.123
example.com. IN TTL 86400 ; 1일 동안 변경 불가
✅ 4. 내부망 접근 제한 (Firewall 설정)
- 외부 DNS에서 사설 IP(192.168.0.0/16, 10.0.0.0/8)로의 요청을 차단
- 예제 (iptables 설정)
iptables -A OUTPUT -d 192.168.0.0/16 -j DROP
✅ 5. DNS 보안 강화 (DNSSEC 적용)
- DNSSEC을 사용하면 DNS 응답 위변조 방지
- 예제 (BIND DNSSEC 설정)
dnssec-enable yes;
dnssec-validation auto;
✅ 6. 웹 애플리케이션 방화벽(WAF) 적용
- WAF에서 의심스러운 DNS Rebinding 요청 감지 및 차단
✅ 7. 정기적인 보안 테스트 수행
- Burp Suite, OWASP ZAP 등을 사용하여 DNS Rebinding 취약점 점검
🔎 더 알아보기
📌 해시태그
#DNSRebinding #웹보안 #네트워크보안 #정보유출 #보안취약점 #IoT보안 #라우터해킹 #서버보안 #기업보안
반응형
'보안' 카테고리의 다른 글
⚡ Fast Flux DNS 공격: 지속적으로 변경되는 IP를 이용한 보안 탐지 우회 🚨 (0) | 2025.02.21 |
---|---|
🛑 Subdomain Takeover: 삭제된 서브도메인을 점유하여 피싱 공격 🚨 (0) | 2025.02.21 |
🚨 JWT 공격(JSON Web Token Exploitation): 취약한 서명 알고리즘을 악용한 토큰 변조 🔓 (0) | 2025.02.20 |
🚨 WebSockets 공격: 인증되지 않은 연결을 악용한 보안 취약점 🔓 (0) | 2025.02.20 |
🚨 Mass Assignment 공격: 숨겨진 필드를 조작하여 관리자 권한 탈취 🔓 (0) | 2025.02.20 |