2019년 3월 25일
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차 인터넷주소자원의 개발·이용촉진 및 관리에 관한 기본계획에 따라 초연결 네트워크 사회 실현, 인터넷 거버넌스 논의 주도권 확대 등을 위해 국가도메인 운영체계 고도화, 주소자원관리 역량 강화 등 추진 필요