Section 3. 애플리케이션 보안 - DNS(2)

Luuuuucy·2025년 2월 24일

정보보안기사

목록 보기
2/2
post-thumbnail

DNS 종류

1️⃣ Recursive(cache) DNS 서버

  • 사용자의 질의를 대신 처리하고 응답 반환
  • 캐싱을 통해 동일한 요청 시 빠르게 응답
  • ISP나 기업 네트워크에서 운영됨
  • Full Resolver라고도 불림

동작 과정

  1. 사용자가 example.com 요청 → 캐시 확인
  2. 캐시에 없으면 다른 DNS 서버에 질의
  3. 응답을 받은 후 사용자에게 전달 및 캐싱

특징

  • 빠른 응답 (캐싱 활용)
  • 네트워크 부하 감소
  • 캐시 만료 시 오래된 정보 제공 가능

관련 공격 기법

DNS 캐시 포이즈닝 (DNS Cache Poisoning)

  • 설명: 공격자가 Recursive DNS 서버의 캐시에 잘못된 DNS 레코드를 삽입하여 사용자들이 악성 사이트로 접속하도록 유도하는 공격
  • 공격 과정:
    1. 공격자가 특정 도메인(example.com)에 대한 위조된 응답을 Recursive DNS 서버로 보냄
    2. Recursive DNS 서버가 이를 신뢰하고 캐시에 저장
    3. 이후 해당 도메인에 접속하는 사용자들은 공격자가 설정한 IP로 연결됨
  • 대응 방법:
    • DNSSEC(DNS Security Extensions) 적용 (DNS 응답의 무결성 검증)
    • TTL(Time To Live) 제한을 통해 캐시 유효기간 단축
    • 신뢰할 수 없는 DNS 응답을 필터링

DNS 앰플리피케이션 공격 (DNS Amplification Attack)

  • 설명: 공격자가 작은 DNS 요청을 보내고, 서버가 큰 응답을 반환하게 하여 대량의 트래픽을 증폭시키는 DDoS 공격 기법
  • 공격 과정:
    1. 공격자가 출발지 IP를 희생자의 IP로 위조하여 작은 크기의 DNS 요청을 전송
    2. Recursive DNS 서버가 응답을 처리하고 대량의 데이터를 희생자에게 전송
    3. 희생자는 다량의 DNS 응답을 받으며 서비스 장애 발생 (트래픽 과부하)
  • 대응 방법:
    • Recursive DNS 서버의 오픈 리졸버(Open Resolver) 비활성화
    • 특정 IP 범위만 질의 가능하도록 ACL(Access Control List) 설정
    • DNS 요청 속도를 제한하는 Rate Limiting 적용

DNS 리플렉션 공격 (DNS Reflection Attack)

  • 설명: 공격자가 출발지 IP를 위조하여 DNS 서버로부터 응답을 받아 제3자를 공격하는 DDoS 공격 기법
  • 공격 과정:
    1. 공격자가 희생자의 IP로 위조된 DNS 요청을 Recursive DNS 서버에 보냄
    2. DNS 서버가 공격자가 요청한 도메인의 응답을 희생자 IP로 전송
    3. 희생자는 자신이 요청하지 않은 대량의 DNS 응답을 받으며 네트워크가 마비됨
  • 대응 방법:
    • DNS 서버에서 출발지 검증(Source Address Validation) 설정
    • ACL 적용하여 신뢰할 수 있는 네트워크만 질의 가능하도록 제한
    • Rate Limiting으로 대량 요청 방어

Random Subdomain Attack (랜덤 서브도메인 공격)

  • 설명: 공격자가 존재하지 않는 랜덤 서브도메인(예: abcd.example.com)에 대한 대량의 질의를 보내 Recursive DNS 서버를 과부하 상태로 만드는 공격
  • 공격 과정:
    1. 공격자가 random1.example.com, random2.example.com 등 계속해서 새로운 서브도메인에 대한 요청을 Recursive DNS 서버로 보냄
    2. Recursive DNS 서버는 해당 도메인의 Authoritative DNS 서버로 반복적인 질의를 수행
    3. Authoritative DNS 서버와 Recursive DNS 서버 모두 부하 증가로 장애 발생
  • 대응 방법:
    • Rate Limiting 설정하여 특정 IP의 반복 요청 차단
    • NXDOMAIN Rate Limiting을 적용하여 존재하지 않는 도메인 요청을 제한
    • DNS 서버에 Botnet 탐지 및 차단 솔루션 적용

DNS Tunneling (DNS 터널링)

  • 설명: DNS 프로토콜을 이용해 방화벽을 우회하고 데이터를 은밀히 전송하는 공격
  • 공격 과정:
    1. 공격자가 DNS 요청 패킷에 암호화된 데이터를 포함시켜 Recursive DNS 서버로 전송
    2. Recursive DNS 서버가 이를 Authoritative DNS 서버로 전달
    3. 공격자는 Authoritative 서버에서 요청을 복호화하여 데이터를 탈취 또는 명령 실행
  • 대응 방법:
    • 비정상적으로 긴 DNS 질의 차단
    • DNS 트래픽 모니터링을 통한 이상 패턴 감지
    • DNS Firewall 적용하여 허용된 도메인만 질의 가능하도록 설정

📌 정리

공격 기법설명대응 방법
DNS 캐시 포이즈닝DNS 캐시에 위조된 정보를 삽입DNSSEC 적용, TTL 제한, 신뢰할 수 없는 응답 필터링
DNS 앰플리피케이션 공격작은 요청을 보내고 큰 응답을 반환하여 DDoS 유발오픈 리졸버 비활성화, ACL 설정, Rate Limiting
DNS 리플렉션 공격출발지 IP를 위조하여 공격 대상에게 DNS 응답 폭탄출발지 검증 설정, ACL 적용, Rate Limiting
Random Subdomain Attack존재하지 않는 서브도메인 질의로 서버 과부하NXDOMAIN Rate Limiting, 반복 요청 차단
DNS TunnelingDNS를 이용한 데이터 유출 및 방화벽 우회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


2️⃣ Authoritative DNS 서버

  • 특정 도메인의 공식 IP 주소 정보를 제공
  • Recursive DNS 서버가 질의하면 실제 IP 주소를 반환
  • 도메인 소유자가 직접 운영하거나 DNS 제공 업체에서 관리

종류

  • Primary DNS: 원본 데이터(Zone File) 관리
  • Secondary DNS: Primary 데이터를 복제하여 보조 역할

동작 과정

  1. Recursive DNS 서버가 example.com 요청
  2. TLD 서버에서 해당 도메인의 Authoritative DNS 서버 안내
  3. Authoritative DNS 서버가 실제 IP 주소 반환

특징

  • 도메인 정보의 공식 출처
  • Primary/Secondary 구성 가능 (백업 역할)
  • ❌ 캐싱 기능 없음 (모든 요청에 직접 응답)

📝 named.conf

1. DNS 서버의 동작 방식 설정

캐싱 서버(Recursive)인지, 권한 서버(Authoritative)인지 지정 가능

2. Zone(도메인) 정보 관리

특정 도메인의 DNS 레코드 파일 지정

3. ACL(Access Control List) 설정

특정 IP만 질의 가능하도록 제한 가능

4. 로그 및 보안 정책 설정

DNS 쿼리 로그 기록, DoS 공격 방지 설정 가능

named.conf 기본 구조

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 서버 정보
};

📌 주요 설정 디렉티브 정리

디렉티브설명예제
optionsDNS 서버의 전역 설정을 담당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; };
loggingDNS 로그 설정conf logging { channel default_log { file "/var/log/named.log"; severity info; }; };
include외부 설정 파일 포함conf include "/etc/named/named.acl";

📌 zone 디렉티브 옵션 정리

옵션설명예제
typeZone의 역할 지정 (master, slave, hint, forward)conf type master;
fileDNS 레코드 파일 지정conf file "example.com.zone";
allow-transferSecondary DNS로 Zone 전송 허용conf allow-transfer { 192.168.1.2; };
allow-query특정 IP/네트워크의 질의 허용conf allow-query { 192.168.1.0/24; };
allow-updateDynamic DNS(DDNS) 업데이트 허용conf allow-update { key ddns-key; };
forward특정 DNS 서버로 질의 포워딩conf forwarders { 8.8.8.8; };
notifySecondary 서버에 Zone 변경 사항 알림conf notify yes;

Recursive DNS - named.conf 예제

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(구글, 클라우드플레어)로 포워딩하는 설정

Authoritative DNS - named.conf 예제

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

profile
Hi, I am Lucy. Welcome to Moon in the Room. 🌝

0개의 댓글