본문 바로가기
NETWORK

DNS에 대하여: Domain name resolver, DNS 공격 종류, AS

by pharmerci 2022. 5. 9.
728x90

Domain name hierarchy

 

모든 도메인 이름은 top-level domain을 갖는다. 그 이름을 소유하고 있는 조직의 위치나, 목적을 반영하여 정해지며 generic TLD는 특정 나라와 연관되어 있지는 않다. 대표적인 generic TLD로는 .com, .edu, .org 등이 있다. Country code TLD는 ISO 표준 3166에서 정한 버전에 의거하여 두글자 약자에 기반하여 나라와 연관된 이름을 짓는다. 예를 들어 .kr, .jp, .uk 등이 있다.

 

도메인 이름은 계층이 존재한다. 항상 순서는 local subdomain(optional).subdomain.TLD 순으로 이루어지며 subdomain은 도메인 레지스터에 의해 할당된다. local subdomain이란 제공된 서비스를 확인하고 서브도메인 오너에 의해 제어된다.

 

ICANN에서는 도메인 이름과 IP주소 배포를 관리하고 있다. 도메인 등록 담당자를 인증하여 도메인 이름을 발급하고 기록을 관리한다. IANA에서 DNS 루트를 관리하고 값을 할당해준다. whois라는 데이터베이스에 정보(도메인 이름, IP주소 범위, AS 식별자)를 게시해두어야 한다.

 

 

 

 

DNS

 

도메인 이름을 IP주소로 바꿔주는 시스템

Domain name resolver

- 웹브라우저는 이메일 클라이언트가 로컬 OS에서 resolver에게 요청을 보냄

- DNS의 클라이언트 측이며 최종 답에 대한 일련의 쿼리를 여러번 시작함

- 일련의 쿼리에 의해 도메인 네임의 권한 있는 대답을 할 책임이 있는 DNS 결정(DNS root로 시작해서 권한있는 도메인 네임 서버까지 반복적으로 확인)

- 수많은 resolver가 root에게 요청하니까 부하가 심하기 때문에 아래로 내려가면서 권한 있는 DNS를 찾아감

- DNS answer은 캐시되기도 함(매번 가져오기 버겁기 때문)

 

DNS resolver 단계

1. 도메인 이름 검색

2. 호스트 캐시에서 도메인 이름 조회(각 호스트는 이전 도메인 이름 쿼리의 캐시 유지)

3. 이름이 캐시에 없으면 호스트는 네트워크를 통해 할당된 DNS 서버로 쿼리를 보냄(recursive하게 final server를 갖고온다)

4. 동일한 쿼리가 반복되면 캐시에 저장하고 요청자에게 응답 반환

 

DNS 서버

- 호스트의 DNS 서버는 호스트가 다른 인터넷 정보를 수신할때 할당됨

- 호스트가 UDP(TCP랑 다르게 답이 안오면 끝)를 사용하여 서버 IP주소에 있는 53번 포트에 DNS쿼리를 보냄

- 서로 다른 서버는 'zone'이라는 이름 계층의 다른 섹션에 할당됨(root dns -> .edu dns -> xx.edu dns server)

- 할당된 서버는 해당 영역 도메인 이름에 대한 질문에 답변하는 권한 가짐

- 재전송을 통해 도메인 이름을 해결함(root -> top level server(여러 서버, 각 서버가 도메인 이름 공간의 일부를 책임지고 있는데 이게 다 같지는 않음 -> distributed database)

- DNS는 도메인 이름을 탈중앙화 시킴

 

DNS redundancy

- 모든 zone은 항상 여러 권한있는 서버를 가짐

- redirection이 서버 IP주소를 나열함(모든 사용자에게 쿼리를 보낼 수 있고, 한 서버가 부하되어 응답을 못하면 다른 서버에 연결할 수 있음)

- 조직 자체에서 중복 서버를 제공할 책임이 있음

- root zone service는 전 세계에 분산된 수십개의 루트 서버에 의해 제공됨

 

 

 

 

 

DNS 공격

 

1. 캐시 포이즈닝 : DNS 쿼리에 가짜 응답을 제공함, 모든 결과 쿼리는 잘못된 IP주소에 연결을 하게 됨, resolver들이 캐시를 가진다는 사실을 악용하여 한번 캐시에 잘못된 응답이 저장되면 여러 클라이언트가 잘못된 IP주소에 연결하게 됨

2. 주요 DNS 서버에 대한 도스공격 : 루트서버에 대한 공격으로는 서비스 문제가 없음(대부분의 DNS 쿼리는 캐시된 응답으로 응답하기 때문에), 루트 아래의 서버들에 대한 공격으로 기본적인 위험이 존재

3. DNS resolver를 사용한 도스공격 : DNS resolver가 속아서 도스공격에 참여할 수 있음, DNS 기반 증폭 공격(공격자가 공격 대상자의 IP주소와 함께 수천개의 DNS 쿼리를 resolver에 보냄, DNS 확인자가 대량의 데이터를 대상자에게 보냄(이게 희생자에게는 엄청 많은 데이터가 됨)

 

 

 

 

 

AS(Autonomous Systems)

 

라우팅 테이블이 크면 뒤져야 할 데이터 량이 많아서 패킷 딜레이가 발생하게 된다. AS를 둠으로써 이를 막을 수 있는데 AS를 둘러싸고 계층적인 조직이 만들어지게 된다. 각 AS는 필수적으로 네트워크 고객 간의 라우팅을 조절하기 위해 ISP가 존재한다. 각각의 AS는 두가지 종류의 라우팅을 조절하는데, 첫번째는 AS 내에서의 라우팅이다. AS내의 네트워크 사이의 패킷을 라우팅한다. 두번째로는 AS 간의 라우팅인데 AS내부의 네트워크에서 다른 AS에 있는 네트워크로 패킷을 라우팅한다. 

728x90

'NETWORK' 카테고리의 다른 글

IP에 대해서 : subnet mask, NAT  (0) 2022.05.03