이번 시간에는 응용 계층 프로토콜 중 DNS 에 대해 공부할 시간이다.
DNS
인터넷에 연결된 컴퓨터의 이름과 IP 주소를 매핑하는 분산 시스템이다. 이름하고 IP 주소를 매핑한다.
www.cnu.ac.kr <-> 168.188.253.130
DB(데이터베이스) 와 유사하다. 다만 이 DB가 한개만 있는 게 아닌 것이 DNS 이다.
전세계 기관은 다 도메인 네임 관련된 테이블을 갖고 있다. 전 세계에 수백만개의 DB(데이터베이스)가 있고 이 녀석들이 따로 놀면 안되니깐 연결시켜 준 것이 DNS 이다.
DNS 는 굉장히 복잡하다. 그러나 DNS는 우리 인터넷이 돌아가는데 중요한 자원 중 하나이다.
IP 주소를 얻기 위해서는 터미널에
dig {웹사이트}
을 입력하면 아이피주소를 반환해준다.
도메인 체계
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 ! )
'Network' 카테고리의 다른 글
[컴퓨터네트워크] FTP, SMTP 프로토콜 (0) | 2023.10.02 |
---|---|
[컴퓨터네트워크] P2P 프로토콜 (1) | 2023.10.02 |
[컴퓨터네트워크] 인터넷 속도 측정 (0) | 2023.09.25 |
[컴퓨터네트워크 실습2] Docker 활용하여 웹 서버 띄우기 (0) | 2023.09.16 |
[컴퓨터네트워크 실습] HTTP Practice (0) | 2023.09.15 |