DNS name Service
Domain : 도메인 네임 공간의 subtree
Zone : 도메인 네임 공간의 몇 몇 부분
Authoriative name servers : Zone에 대한 정보를 가지고 있음 )
* delegation을 통한 분산된 관리 체계
1. DNS 네임 서버
[1] 분산된 데이터베이스 : 서버가 모든 도메인-IP 매핑 테이블을 가지는 것은 불가능함.
[2] 로컬 네임 서버 : 각 ISP, 기업은 로컬 네임 서버를 가진다 ( host DNS 쿼리는 local name server에서 먼저 처리 )
[3] 인증 네임 서버 :
- 호스트 : 호스트의 IP 주소와 name을 저장함
- 호스트의 name을 통해 name-address 변환을 수행함
[4] Root name Server
- 로컬 네임 서버와 연결된다.
- 로컬 네임 서버에서 연결되었지만 이름을 확인할 수 없음
- 에서 이름 매핑을 알 수 없는 경우 권한 있는 이름 서버에 연락합니다.
- 매핑을 가져옵니다.
- 로컬 네임 서버에 매핑을 반환합니다.
- 전 세계 12개의 루트 네임 서버
2. DNS : 반복 쿼리
Resolver | - 네임 서버에 쿼리를 날림 - 응답을 해석하고, 사용자에게 결과를 반환함 |
recursive query [ 재귀 쿼리 ] | - 연결된 네임 서버에 이름을 확인하는 역할 |
iterated query [ 반복 쿼리 ] | - 연결된 서버에 연결될 서버의 이름을 응답함 |
3. DNS : cashing record
네임 서버가 매핑을 학습하면, 매핑에 대해 캐시함 ( 캐시 엔트리에 TO가 적용 )
4. DNS : Resource Records
- DNS: 리소스 레코드(RR)를 저장하는 분산 DB
Type = A | - name : 호스트 네임 - vlaue : IP 주소 |
Type = CHAME | - name : alias 이름 - value : 이 도메인에 대한 권한 있는 네임 서버의 IP 주소 |
Type = NS | - name : 도메인 - value : 이 도메인에 대한 인증 네임 서버의 IP 주소 |
Type = MX | - value : 네임과 연결된 메일 서버와 관련된 호스트 네임 |
5. DNS 프로토콜, 메시지
> DNS 프로토콜 : 쿼리 및 응답 메시지 ( 모두 동일한 메시지 포맷 사용 )
> 메시지 헤더
- identification : 조회 및 응답 일치 16비트 #
- FLAGs
- query or reply
- recursion desired
- recursion available
- reply is authortiative
6. DNS 쿼리
====
====
Zone transfer
Name servers for a zone
- primary name server : 호스트의 파일에서 영역 데이터를 읽습니다.
- Secondary(slave) name server : 영역에 대한 권한이 있는 다른 이름 서버에서 영역 데이터를 가져옵니다.
Zone transfer
- 슬레이브 네임 서버가 시작되면, 마스터 서버에 접속하고 Zone의 데이터를 가져온다.
DNS Package : BIND
- unix의 DNS 패키지 , 이는 많은 보안 문제의 역사를 가지고 있다.
- DNS daemin in unix
- a process called "named"
- Configuration : /etc/named.conf
DNS Operation - Normal
DNS Attacks
1. DNS Cashe Poisoning
- URL 스푸핑 공격 : 공격 중인 사람과 유사한 이름을 등록합니다.
예: www.ibn.com, ... - Cashe poisoning : 동일한 아이디어의 보다 정교한 버전입니다.
- 공격에 대한 두 가지 Key idea는 아래와 같음
▪ 쿼리 번호(and reply ID)는 이전 ID를 알아낼 수 있는 경우, 예측 가능한 경우가 많다.
▪ DNS 캐시의 이전 결과
2. 예전 공격 방식
> 이전 버전의 BIND에서는 수신된 응답에 추가 조회 정보(additional Info section)가 포함될 수 있름 > 이 추가 조회 정보는 나중에 사용할 수 있도록 저장됨 |
|
> victim.com의 사용자가 은행을 찾으면 해커의 사이트로 리디렉션 > 해커는 비밀번호 등을 얻기 위해 가상의 모방 사이트를 만듬. > 추가 정보를 무시하도록 BIND가 패치되되어서 더 이상 작동되지는 않음 ( 현재는 보안 문제로 패치 ) |
3. 공격 방식
> 공격의 첫 번째 단계는 victim.com의 현재 쿼리 ID 번호를 알아내는 것 > 가장 간단한 방법은 서버에 공격자의 DNS 시스템을 쿼리하도록 하는 것 > 쿼리 ID가 어떻게 변경되는지 알기 위해 이 쿼리를 여러 번 반복하면서 알아냄 |
|
> 초기 버전의 DNS 서버는 ID 필드를 결정적으로 증가시킴 ==> 임의 쿼리 ID로 패치 생일 공격 ▪ 16비트 쿼리 ID(옵션 65,536개만 해당) ▪ 해커는 동시에 다양한 ID로 많은 쿼리를 전송. ▪ 랜덤 트랜잭션 ID로 수백 개의 회신을 동시에 전송 ▪ 정확한 추측을 할 수 있는 확률 증가 |
DNS Defense
- BIND의 새 버전은 쿼리 ID를 예측하기가 더 어렵습니다.
- DNSSEC: RFC 2535 : RSA 서명된 DNS 레코드가 있는 안전한 DNS 버전
- DNS 응답 인증
- 각 DNS 응답에는 요청된 RR의 서명이 있습니다.
- Resolver는 권한 있는 서버의 공개 키를 사용하여 응답을 인증합니다.
Split-split defense ( 분할 방어 )
도메인 내에서 사용자의 이름을 확인하는 하나의 DNS 서버. 이 서버는 외부 쿼리에 응답하지 않습니다.
- 외부로부터의 쿼리에 응답하기 위해 별도의 DNS 서버가 설정되었습니다.
- 서로 정보 교환을 하지 않음
- 사용자가 중독된 정보에 노출되지 않음
/etc/named.conf 의 방어
DNSSEC ( DNS Security ) : DNS 서비스의 보안 확장
- Authoritative name servers는 영역 서명을 수행하여 영역(zones)을 보호한다.
- 응답 영역 관리자가 만들고 수신인의 해결사 소프트웨어에 의해 확인된 디지털 서명을 사용하여 엔드 투 엔드 인증을 제공합니다.
- 기존 DNS 프로토콜에 대한 수정사항 및 새 리소스 레코드 유형 집합을 정의합니다.
- RFC 4033, 4034, 4035
각 DNSSEC의 사용 가능한 인증된 NS에는 두 개의 공개 키가있음 - ZSK ( Zone Signing Key ) : Zone의 RRset에 서명하는데 사용됨 - KSK ( Key Signing Key ) : DNSKEY RR의 서명에 사용 ( trush anchor로 사용 가능 ) |
DNSSEC Resource Records:
<1> DNSKEY resource record : 공개 키를 정의함 |
Flags : DNSKEY-flag , KEY-Type; (ZSK, KSK) Proto. : DNS 프로토콜 타입 Alg. : 공개 키 알고리즘 종류 ( rsa/md5 , rsa/sha1 , .. ) |
<2> RRSIG resource Records : RRset의 인증 정의 |
Type cpvered : RRSig record에 의해 커버된 RR type Alg : DS를 만들기 위해 사용되는 암호화 알고리즘 Num of labels : 서명된 레코드 주인 식별자 Key tag : DNSKEY RR의 키 태그 값 RRset TTL : RRSIG에 의g해 커버된 RRset 레코드의 TTL 값 DS : base64로 인코딩된 디지털 서명 |
<3> DS resource record : – 하위 영역의 KSK 해시를 포함하며 신뢰되는 앵커로 사용할 수 있다. – 서명된 하위 영역에 대한 보안 위임 지점을 생성한다. |
Key tag : DNSKEY RR의 키 태그 값 ( DNSKEY RR 은 DS RR을 가리킴 ) Alg : DNSKEY RR의 알고리즘 Digest type : 암호분을 만드는 알고리즘 (SHA-1 , SHA-256 .. ) Digest : DNSKEY RR digest value |
<4> a chain of trust thru DS resource record |
Validation process
- DNS 서버는 RRset 및 DNSKEY, RRSIG RR을 수신한다.
- DNSKEY RR을 사용하여 디지털 서명을 해독하여 권한 있는 DNS 서버의 응답을 검증한다.
'Lab & Research > Information Security' 카테고리의 다른 글
TCP/IP 보안 (0) | 2022.06.02 |
---|---|
모니터링과 보안 위협 종류 (0) | 2022.06.02 |
IP 보안 (1) | 2022.05.29 |
무선 네트워크 보안 (0) | 2022.05.27 |
이메일 보안 ( PGP , S/MIME ) (0) | 2022.05.09 |