이번 시간에는 응용 계층 프로토콜 중 DNS 에 대해 공부할 시간이다.

 

 

 

 

 

DNS


인터넷에 연결된 컴퓨터의 이름과 IP 주소를 매핑하는 분산 시스템이다. 이름하고 IP 주소를 매핑한다.

www.cnu.ac.kr  <-> 168.188.253.130

 

DB(데이터베이스) 와 유사하다. 다만 이 DB가 한개만 있는 게 아닌 것이 DNS 이다. 

전세계 기관은 다 도메인 네임 관련된 테이블을 갖고 있다. 전 세계에 수백만개의 DB(데이터베이스)가 있고 이 녀석들이 따로 놀면 안되니깐 연결시켜 준 것이 DNS 이다.

DNS 는 굉장히 복잡하다. 그러나 DNS는  우리 인터넷이 돌아가는데 중요한 자원 중 하나이다. 

 

 

IP 주소를 얻기 위해서는 터미널에

dig {웹사이트}

 

을 입력하면 아이피주소를 반환해준다.

 

 

 

도메인 체계

가장 위에는 .(루트)가 존재한다. 예를 들어 우리가 www.google.co.kr 에 접속하였다면 뒤에 루트 서버인 . 이 생략된 것이라 할 수 있다. 원래는 www.google.co.kr. 이다.

 

 

 

 

DNS 흐름도

 

만약 

dig {웹사이트} +trace

치면 트레이스까지 알 수 있다.

 

DNS 계층도

https://en.wikipedia.org/wiki/Domain_Name_System

 

Domain Name System - Wikipedia

From Wikipedia, the free encyclopedia System to identify resources on a network The Domain Name System (DNS) is a hierarchical and distributed naming system for computers, services, and other resources in the Internet or other Internet Protocol (IP) networ

en.wikipedia.org

 

Root Name Server( 13개 지역) 

https://en.wikipedia.org/wiki/Root_name_server

 

Root name server - Wikipedia

From Wikipedia, the free encyclopedia Name server for the DNS root zone A Cisco 7301 router and a Juniper M7i, part of the K root-server instance at AMS-IX A root name server is a name server for the root zone of the Domain Name System (DNS) of the Interne

en.wikipedia.org

 

Root Name Server 공격

무식하게 udp 로 데이터(트래픽)를 막 보냄(무한루프 돌려서) 보내면 대부분 뻗는다. 이것이 예전엔 통했다. 

2002 : Botnet 이용 13개 root name server 대한 ICMP ping 공격 -> 실패

2007: 2개 root server 공격 : heavy traffic

2015: 초당 5백만 쿼리 공격 : timeout 발생

 

 

DNS 관련 인터넷 사고

1.25 인터넷 대란

: 2023년 1월 25일에 대한민국의 인터넷망이 분산 서비스 거부 공격, 소위 말하는 디도스로 마비되어 혼란에 빠진 사건이다. 원인은 마이크로소프트의 SQL 서버의 보안 취약점을 악용하여 공격하는 동시에 자신을 감염시키는 악성코드인 슬래머 웜이었으며 이 사건으로 인해 취임한지 얼마 안 된 정보통신부 장관이 책임을 지고 사임했다.

 

MS SQL 서버 취약점 -> Slammer Worm 바이러스로 인한 트래픽 과부하 -> KT DNS 서버 공격 -> DNS 서버 다운 -> 인터넷 마비

 

https://namu.wiki/w/1.25%20%EC%9D%B8%ED%84%B0%EB%84%B7%20%EB%8C%80%EB%9E%80

 

1.25 인터넷 대란 - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

 

Slammer Worm 막으려면 망원경을 쓴다.

Network telescope

IPv4 주소 공간은 32억개의 주소 공간이 있다. 그 중 안쓰는 IP 주소를 망원경으로 이용하여 다른 패킷들을 감시한다. Sample IP 주소(부분집합)의 패킷을 모니터링함.

 

 

한국의 NameServer

15개의 name server 가 있다.

.kr 과 .한국 도메인이 있다.

 

 

 

 

DNS 패킷 구조


 

전통적으로는 UDP 였는데 최근은 UDP , TCP 같이 쓰고 있다.

 

UDP : 작은 패킷 (<= 512 바이트)

TCP: 큰 패킷 (> 512 바이트)

 


DNS Query Type 

 

A: 레코드 A는 주어진 호스트에 대한 IP 주소 (IPv4)를 알려준다. A 레코드는 도메인 이름을 해당하는 IP 주소로 변환하는 데 사용된다.

 

AAAA: 레코드 AAAA (quad-A 레코드이기도 함)는 주어진 호스트에 대해 IPv6 주소를 알려준다. A 레코드와 같은 방식으로 작동하며 차이점은 IP 주소 유형이다.(IP 버전6)

 

CNAME : CNAME 레코드는 도메인 이름의 별칭을 만드는 데 사용된다. CNAME 레코드는 도메인을 외부 도메인으로 별칭을 지정하려는 경우 유용하다. 경우에 따라 CNAME 레코드를 제거하고 A 레코드로 대체하면 성능 오버 헤드를 줄일 수도 있다.

 

 


 

TLD

 

DNS 는 아무나 관리하면 안된다. 따라서 TLD ( Authritative DNS Servers) DNS 관리하는 서버를 둔다.

 

 

DNS Caching

 

DNS 가 자주가면 캐싱을 하면 빠를 것이다. 최신 브라우저들은 Browser DNS caching 을 탑재하고 있다.

 

 

DDOS

 

DDNS 는 Dynamic DNS 로 IP 주소가 변경될때 DNS 정보를 갱신한다. ip 주소는 변하기 때문에 필요하다. 가정의 공유기에서 자주 쓰이는 기술이다.

 

 


DNS는 암호화되지 않음

DNS 는 암호화 되지 않아서 DNS 패킷을 보면 개인의 방문 웹 사이트를 알 수 있다. 공격의 대상이 되기 쉽다는 말이다. 

그래서 여러 DNS 공격이 있을 수 있다.

 

 

1. DNS Spoofing : 중간자 공격, DNS 서버로 전송되는 쿼리 가로채서 변조된 결과 전송

2. 피싱(phishing) : 가짜 사이트, 실제 도메인 네임과 유사한 이름 사용

3. DNS cache poisoning : 캐시 정보 조작, 파밍

 

 

여러 보안 이슈가 있어서 최근에는 암호화된 DNS 기술을 사용하고 있다.

DNSSEC(암호화는 아님), TLS를 통한 DNS(DoT), HTTPS 를 통한 DNS(DoH)

 

1. DNSSec

: DNS Security Extenstion

데이터의 위조-변조 공격을 방지하기 위한 표준 기술, 공개키 암호화방식의 전자 서명 도입

 

2. DNS over HTTPS(DoH)

: DNS 내용을 json 형식 데이터로 만들어 HTTPS 전송 : TCP 443

 

3. DNS over TLS

: TLS 직접 쓰는 것 첫번째 협상할 때보면 server name indication extension 보면 naver.com 볼 수 있다. -> 차단 가능 

 

 

 

 

웹 사이트의 TLS SNI 필드 캡처하기


 

시크릿모드 창 띄우고 와이어샤크 실행 -> 방문 웹 사이트 -> Wireshark 의 filter tls 이용 ( TLS 의 Client Hello 메시지의 Extension: server_name field ! )

728x90

+ Recent posts