DNS (Domain Name System)

I. 도메인 관리, DNS(Domain Name System)의 개요

가. DNS의 개념

  • 사람이 인식하기 쉬운 문자 도메인 이름에 대해 서버가 인식하는 IP주소를 제공해주는 시스템

나. DNS의 필요성

  • 네트워크 호스트가 인식 가능한 IP 주소를 사람이 기억할 수 있는 문자로 표현하도록 정보 제공 필요
  • 기하급수적으로 증가되는 인터넷 서비스의 가용성 및 효율성 제공 위해 호스트 이름 분산 관리 필요
  • 전세계 호스트에 대해 호스트 이름이 중복되지 않도록 중앙 기관(현재 ICANN)에서 체계적 관리 필요
  • 호스트 IP주소 변경, 신규 등록이 빈번해짐에 따른 호스트 이름 저장소 갱신 지연 최소화 필요 

II. DNS의 유형 별 제공 서비스

유형제공 서비스서비스 기능
구성요소 별
제공 서비스
측면
Name Server
서비스
– 도메인 이름에 대한 질의 발생 시 보유 중인
  도메인의 데이터를 조회하여 응답
Resource Record
서비스
– 도메인에 대한 정보를 제공하고 도메인을 지원하는
  다양한 데이터 유형들로 각 필드를 주소 공간 구분
Zone File
서비스
– SOA(Start of Authority) 및 응답 레코드 영역 구성
– 도메인을 IP 주소나 URL 등으로 변환해주는 역할
Resolver
서비스
– Name Server에 원하는 Host에 대한 정보 질의, 추출
– Domain / Search / nameserver  지시자 등으로 구성
역할 별
제공 서비스
측면
Cache DNS
서비스
– Client 근처 DNS 서버에 DNS 질의 결과 메모리 저장
– 동일 DNS 질의 발생 시 메모리를 참조하여 신속 처리
Root DNS
서비스
– 최상위도메인(TLD)에 권한있는 네임 서버 목록 제공
– 전세계 루트서버는 13개, 애니캐스트 기반 서버 확장
단계 별 도메인 관리
서비스
– 도메인 이름을 트리 구성, 하위 네임 서버 정보 제공
– 최하위 네임 서버는 질의에 대한 IP주소 정보 제공
보안성
제공 서비스
측면
DNSSEC
서비스
– DNS 데이터 대상의 “데이터 위조-변조 공격” 방지
– 전자서명/검증 리소스 레코드(DNSKEY, RRSIG, DS)
DoT (DNS Over TLS)
서비스
– SSL/TLS 암호화 기반 전송 계층 도청 및 조작 방지
– TCP(853 Port), 4계층 암호화, 모니터링/필터링
DoH (DNS Over
HTTPS) 서비스
– DNS 질의 및 응답을 HTTPS 기반 End-to-End 암호화
– HTTPS(443port), 7계층암호화, 모니터/필터링 불가

 

III. DNS의 기본 동작 내용

① Client에서 Local DNS 서버로 www.kisa.or.kr에 대한 IP 주소를 질의
② Local DNS 서버는 cache에 도메인 정보 검색하여 존재 시 응답, 없으면 root 네임 서버에 질의
③ root 네임 서버는 Glue Record를 참조하여 .kr 네임 서버 IP 주소를 Local DNS 서버에 제공
④ Local DNS 서버는 .kr 네임 서버에 www.kisa.or.kr 주소 질의
⑤ .kr 네임 서버는 Glue Record를 참조하여 .or.kr 네임 서버 IP주소를 Local DNS 서버에 제공
⑥ Local DNS 서버는 .or.kr 네임 서버에 www.kisa.or.kr 주소를 질의
⑦ .or.kr 네임 서버는 Glue Record를 참조하여 kisa.or.kr 네임 서버 IP 주소를 Local DNS 서버에 제공
⑧ Local DNS 서버는 kisa.or.kr 네임 서버에 www.kisa.or.kr 대한 정보 질의
⑨ kisa.or.kr 네임 서버는 Zone File 참조, www.kisa.or.kr 에 대한 IP 주소를 Local DNS 서버에 제공
⑩ Local DNS 서버는 질의 요청 Client에 www.kisa.or.kr 주소 질의에 대한 IP 주소 정보 제공

 

IV. DNS의 구성요소

구성요소설명
도메인네임
스페이스
– 데이터 이름 관련 규칙 정의
– 자원 레코드라는 정보 집합체로 표현
네임서버– 도메인 트리 정보 관리 프로그램
– 도메인 네임 질의에 응답 서비스
해석기– 네임서버로부터 도메인 네임 정보수집
– 네임 서버의 정보로 질의에 응답

 

V. 네트워크 통신 위한 DNS 관리 정보

가. 자원 레코드 및 질의 레코드 구조도

  • 질의 레코드는 클라이언트가 DNS 서버에 정보를 요청하는 용도로 사용

나. DNS 관리정보 구성요소

구분구성요소설명
자원
레코드
존재
Name– 검색할 가변길이의 도메인이름
– 질의 레코드에 기록, 서버에 요청
Type– 16bit 크기의 자원 종류 나타냄
Class– 프로토콜 패밀리를 의미,
– 인터넷에서는 IN 값을 사용
질의
레코드
존재
TTL (Time To Live)– 레코드 만기까지의 유효 시간(초)
– 서버에 저장되는 기간
RD Length– 자원 데이터의 길이 (byte 단위)
RD (Resource Data)– 자원 레코드의 데이터로 유형에 따라 구성, 크기가 별화

다. 자원 레코드의 Type

Type설명
A(Address)– 호스트 IP 주소, IP주소 변환 시 사용
NS(Name Server)– 도메인을 관장하는 인증된 네임 서버
CNAME(Canonical Name)– 자원에 대한 접근 단순화
– 호스트 이름의 별명(alias)을 지원
SOA(Start of Authority)– 존의 시작을 표시
WKS (Well-Known Services)– 호스트가 제공하는 네트워크 서비스
PTR(Pointer)– IP 주소를 도메인이름으로 변환

 

 

V. DNS 주요 공격과 대응방안

가. DNS 주요 공격

  • IoT 환경에서 미라이봇 공격대상 등 다양한 공격에 노출

나. DNS 공격기법/대응방안

공격기법설명대응방안
캐시
포이즈닝
– Recursive DNS 서버에 악성 DNS 데이터 삽입하여 해커 Site로 유도– DNSSEC 레코드 추가
– SIEM, FDS 적용
DNS
권한 탈취
– DNS의 OS 보안취약점 기반 시스템 권한 탈취– Secure OS
– IP기반 ACL 적용
DDoS
공격 거점
– 공격 대상 시스템 소스IP로 설정 후 DNS 쿼리– 신뢰 Host 설정
– Blackhole 옵션

 

VI. DNSSEC기반 취약점 해결방안

가. DNSSEC 절차

나. DNSSEC 구성요소

구성요소역할기능
DNSKEY공개키– 도메인존 공개키 배포
RRSIG서명 데이터– 개인키로 전자서명값 표현
DS원본 데이터– 인증 위임체계 구성 데이터
NSEC/NSEC3원본 데이터– DNS 데이터 부재인증 정의
  • 이외 IPsecKEY, SSHFP, CERT 등 리소스 레코드 Type 존재

 

VII. DNS 제공 서비스 동향과 변화 방향

  • 과학기술정보통신부에서 발표한 제5차 인터넷주소자원의 개발·이용촉진 및 관리에 관한 기본계획에 따라 초연결 네트워크 사회 실현, 인터넷 거버넌스 논의 주도권 확대 등을 위해 국가도메인 운영체계 고도화, 주소자원관리 역량 강화 등 추진 필요

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^