example.com 요청 → 캐시 확인➀ DNS 캐시 포이즈닝 (DNS Cache Poisoning)
example.com)에 대한 위조된 응답을 Recursive DNS 서버로 보냄➁ DNS 앰플리피케이션 공격 (DNS Amplification Attack)
➂ DNS 리플렉션 공격 (DNS Reflection Attack)
➃ Random Subdomain Attack (랜덤 서브도메인 공격)
abcd.example.com)에 대한 대량의 질의를 보내 Recursive DNS 서버를 과부하 상태로 만드는 공격random1.example.com, random2.example.com 등 계속해서 새로운 서브도메인에 대한 요청을 Recursive DNS 서버로 보냄➄ DNS Tunneling (DNS 터널링)
📌 정리
| 공격 기법 | 설명 | 대응 방법 |
|---|---|---|
| DNS 캐시 포이즈닝 | DNS 캐시에 위조된 정보를 삽입 | DNSSEC 적용, TTL 제한, 신뢰할 수 없는 응답 필터링 |
| DNS 앰플리피케이션 공격 | 작은 요청을 보내고 큰 응답을 반환하여 DDoS 유발 | 오픈 리졸버 비활성화, ACL 설정, Rate Limiting |
| DNS 리플렉션 공격 | 출발지 IP를 위조하여 공격 대상에게 DNS 응답 폭탄 | 출발지 검증 설정, ACL 적용, Rate Limiting |
| Random Subdomain Attack | 존재하지 않는 서브도메인 질의로 서버 과부하 | NXDOMAIN Rate Limiting, 반복 요청 차단 |
| DNS Tunneling | DNS를 이용한 데이터 유출 및 방화벽 우회 | DNS 트래픽 모니터링, 긴 DNS 질의 차단 |
📍 [기출] 정보보안산업기사 2회
취약한 DNS 서버에 조작된 쿼리를 전송하여 DNS 서버가 저장하고 있는 주소 정보를 임의로 변조하는 공격
DNS Cache Poisoning 공격
📍 [기출] 정보보안기사 17회
다음은 공격 절차를 설명한 보기이다. 공격 명칭을 쓰시오.
1) 사용자 호스트는 www.example.com 사이트 접속을 위해 https://www.example.com 주소를 입력한다.
2) 공격자는 정상적인 DNS 응답이 캐시 DNS 서버에 도달하기 전에 조작한 가짜 DNS 응답 메시지를 캐시 DNS 서버에 대량으로 저장한다.
3) 캐시 DNS 서버에 조작된 www.example.com 도메인의 주소 정보가 저장된다.
4) 사용자 호스트는 조작된 주소의 www.example.com 사이트로 접속하게 된다.
DNS Cache Poisoning 공격
📍 [기출] 정보보안산업기사 16회
DNS(Domain Name System)의 리소스 레코드와 프로토콜을 개선하여 공개키를 기반으로 원천 인증(source authentication)과 DNS 데이터 무결성(Integrity) 등의 보안 서비스를 제공함으로써 DNS 스푸핑(spoofing) 등의 공격에 대응할 수 있는 IETF 표준 기술을 무엇이라 하는가?
DNSSEC
📍 [기출] 정보보안산업기사 18회
파밍(Pharming) 공격은 ISP(Internet Service Provider) 캐시 DNS 서버나 사용자 PC에 특정 도메인 네임에 대한 위,변조된 IP 주소가 저장되도록 하는 공격이다. 이와 같은 DNS 데이터의 위,변조를 방지하기 위한 인터넷 표준 기술은 무엇인가?
DNSSEC
example.com 요청 캐싱 서버(Recursive)인지, 권한 서버(Authoritative)인지 지정 가능
특정 도메인의 DNS 레코드 파일 지정
특정 IP만 질의 가능하도록 제한 가능
DNS 쿼리 로그 기록, DoS 공격 방지 설정 가능
options {
directory "/var/named"; # DNS 데이터 파일 저장 위치
allow-query { any; }; # 모든 클라이언트의 질의 허용
recursion no; # 재귀적 질의 비활성화 (Authoritative 서버일 경우)
};
zone "example.com" {
type master; # Primary(Authoritative) 서버 설정
file "example.com.zone"; # 해당 도메인의 DNS 레코드 파일
};
zone "." {
type hint;
file "named.ca"; # 루트 DNS 서버 정보
};
| 디렉티브 | 설명 | 예제 |
|---|---|---|
options | DNS 서버의 전역 설정을 담당 | conf options { directory "/var/named"; recursion no; }; |
zone | 특정 도메인(zone)의 설정을 정의 | conf zone "example.com" { type master; file "example.com.zone"; }; |
acl | 접근 제어 리스트(ACL) 정의 | conf acl trusted_networks { 192.168.1.0/24; }; |
logging | DNS 로그 설정 | conf logging { channel default_log { file "/var/log/named.log"; severity info; }; }; |
include | 외부 설정 파일 포함 | conf include "/etc/named/named.acl"; |
zone 디렉티브 옵션 정리| 옵션 | 설명 | 예제 |
|---|---|---|
type | Zone의 역할 지정 (master, slave, hint, forward) | conf type master; |
file | DNS 레코드 파일 지정 | conf file "example.com.zone"; |
allow-transfer | Secondary DNS로 Zone 전송 허용 | conf allow-transfer { 192.168.1.2; }; |
allow-query | 특정 IP/네트워크의 질의 허용 | conf allow-query { 192.168.1.0/24; }; |
allow-update | Dynamic DNS(DDNS) 업데이트 허용 | conf allow-update { key ddns-key; }; |
forward | 특정 DNS 서버로 질의 포워딩 | conf forwarders { 8.8.8.8; }; |
notify | Secondary 서버에 Zone 변경 사항 알림 | conf notify yes; |
options {
directory "/var/named";
allow-recursion { trusted_networks; };
listen-on port 53 { any; };
forwarders {
8.8.8.8; # Google Public DNS
1.1.1.1; # Cloudflare DNS
};
};
➡️ 클라이언트 요청을 처리하고, 외부 DNS(구글, 클라우드플레어)로 포워딩하는 설정
options {
directory "/var/named";
recursion no; # 재귀적 질의 비활성화
};
zone "example.com" {
type master;
file "example.com.zone";
};
➡️ example.com 도메인에 대한 Primary(Authoritative) DNS 서버 운영 예제
| DNS 종류 | 역할 | 데이터 보유 여부 | 캐싱 여부 |
|---|---|---|---|
| Recursive (Cache) DNS | 사용자 요청 처리 및 캐싱 | ❌ 자체 데이터 없음 | ✅ 일정 기간 저장 |
| Authoritative DNS | 도메인의 공식 정보 제공 | ✅ 정확한 정보 보유 | ❌ 캐싱 없음 |
📍 [기출] 정보보안기사 17회
다음은 네임서버의 설정파일에 관한 내용이다. 괄호에 들어갈 알맞은 답을 쓰시오.
슬레이브 네임서버(IP: 192.168.42.12)만 존 전송(zone transfer)을 허용하고 다른 접근은 모두 차단하고자 하려고 한다.
[named.conf]
zone "example.com" IN{
type master;
file "example.com.zone";
( ) {192.168.42.12};
...
allow-transfer