인터넷을 사용하는 대부분의 사람들은 주소창에 도메인만 입력하면 자동으로 웹사이트에 접속된다.
하지만, 이 단순한 과정 뒤에는 복잡한 DNS 시스템이 작동하고 있으며, 이 시스템이 공격당할 경우 큰 피해로 이어질 수 있다.
그 대표적인 예시 중 하나가 DNS 캐시 포이즈닝(DNS Cache Poisoning)이다.
DNS 캐시 포이즈닝은 어떤 보안 공격일까?
DNS 캐시 포이즈닝은 공격자가 DNS 서버의 캐시에 잘못된(위조된) 도메인-IP 정보를 주입하여 사용자들이 원래 의도한 웹사이트가 아닌 가짜 사이트로 접속하게 만드는 공격 기법이다.
- 캐시(Cache): DNS 서버가 반복적인 질의를 줄이기 위해 도메인-IP 매핑 정보를 임시로 저장해 두는 저장소
- 포이즈닝(Poisoning): 말 그대로 '독을 타는 행위'로, 정상적인 캐시에 악의적인 정보를 몰래 끼워 넣는다는 의미
즉, DNS 캐시 포이즈닝은 서버의 기억(캐시)을 독살(poison)시켜 잘못된 정보를 퍼뜨리게 만드는 공격이다.
예를 들어, 사용자가 bank.com에 접속하려고 했는데, DNS 캐시가 조작되어 공격자의 피싱 사이트로 연결된다면 사용자는 자신도 모르게 로그인 정보를 탈취당할 수 있다.
DNS 캐시 포이즈닝은 DNS 서버에 요청하고 응답받는 과정을 노린 공격이다. 임시로 저장하는 데이터 공간인 캐시(cache) 공간이 있는데, 그 공간을 오염시키는 공격이라고 이해하면 쉽게 이해할 수 있다.
- 공격자는 DNS 서버(또는 재귀 DNS 리졸버)의 질의응답 과정을 노린다.
- 특정 도메인에 대해 서버가 외부 DNS로 질의하는 순간을 노려, 가짜 응답을 빠르게 보내 서버가 이를 수락하게 만든다.
- 이 잘못된 응답(IP 주소)은 DNS 서버의 캐시에 저장되어, 이후 해당 도메인을 질의하는 모든 사용자에게 가짜 주소가 전달된다.
- 사용자는 아무 의심 없이 피싱 사이트에 접속하게 되고, 정보가 탈취될 수 있다.
DNS 캐시 포이즈닝이 위험한 이유는 한 번의 공격으로, 큰 피해를 줄 수 있다는 특징이 있기 때문이다.
- 피해 확산이 빠름: 한 번의 성공적인 공격으로 다수의 사용자에게 영향을 줄 수 있음
- 탐지 어려움: 사용자는 정상적인 사이트로 보이는 피싱 사이트에 접속하게 되어 알아차리기 어려움
- 개인정보 탈취: 로그인 정보, 금융 정보 등이 유출될 수 있음
- 악성코드 유포: 가짜 사이트에서 바이러스, 랜섬웨어 등이 배포될 수 있음
DNS 캐시 포이즈닝의 대표적인 큰 사건이 있었어요.
- 2008년 Dan Kaminsky 취약점 공개: DNS 리졸버의 응답 예측을 통한 대규모 캐시 포이즈닝 가능성이 알려지면서 전 세계 DNS 보안이 주목받음
- 2020년이란 해커 조직 APT34: 중동지역 DNS 서버를 해킹해 정부 및 군 기관 트래픽을 감청
이 외에도 개인 피해 중에는, 피해를 어떻게 당했는지 인지도 못하고 당하는 사례도 DNS 캐시 포이즈닝의 사례가 될 수 있다.
DNS 캐시 포이즈닝을 예방하고, 대응하는 방법은 다양하다. 보이지 않는 곳에서 조용히 발생하기 때문에 잘 예방하는 것이 중요하다.
1. DNSSEC 적용
- DNS 응답에 디지털 서명을 추가해 위조 여부를 검증할 수 있어 캐시 포이즈닝 방지에 매우 효과적이다.
2. 랜덤 소스 포트와 트랜잭션 ID 사용
- 응답 위조를 어렵게 만들어 공격 성공률을 낮춘다.
3. 짧은 TTL 설정
- DNS 캐시의 유효 시간을 짧게 설정해 위조된 정보가 오래 남지 않도록 한다.
4. 보안 패치 적용
- 운영 중인 DNS 서버 소프트웨어(BIND, Unbound 등)는 최신 보안 패치를 반드시 적용한다.
5. 신뢰할 수 있는 DNS 서버 사용
- 공공 DNS 중에서도 보안 강화 기능이 있는 서버(Cloudflare 1.1.1.1, Google 8.8.8.8 등)를 사용하는 것이 좋다.
DNS 캐시 포이즈닝은 보이지 않는 곳에서 조용히 발생하지만, 그 피해는 치명적일 수 있다.
한 번의 공격으로 수많은 사용자가 피해를 입고, 기업과 기관의 신뢰도 또한 무너질 수 있다.
지금 당장은 보이지 않더라도, DNS 보안은 인터넷 환경에서 가장 기본적이고 중요한 부분 중 하나이다.
DNSSEC 적용과 주기적인 보안 점검을 통해 안전한 웹 사용 환경을 만들어 나가야 한다.
#DNS캐시포이즈닝 #DNS보안 #피싱공격 #DNSSEC #도메인스푸핑 #DNS위협 #인터넷보안 #웹보안 #DNS공격 #캐시위조
'IT 정보 > 용어' 카테고리의 다른 글
JIT란? 성능 향상의 핵심 기술 실행 시점 컴파일 (0) | 2025.04.28 |
---|---|
AOT란? 실행 속도를 높이는 핵심 기술 실행 전 컴파일 (0) | 2025.04.27 |
DNSSEC이란? DNS 보안을 지키는 핵심 기술 (0) | 2025.04.25 |
DNS란? 도메인 이름 서비스, 인터넷의 전화번호부를 이해하자 (2) | 2025.04.24 |
스푸핑이란? IT 보안의 위협을 파헤치다 (0) | 2025.04.23 |