본문 바로가기

[정보보안기사] 애플리케이션 보안 - 인터넷 응용 보안 (3) DNS 보안

액트 2019. 6. 27.
반응형

DNS 보안


- 목차 -

1. 인터넷 응용 보안 
    (3) DNS 보안 
        ① DNS 개념 
        ② DNS 구성

         DNS 서비스 운영 

        ④ DNS 도메인 질의 과정

        ⑤ 리눅스 DNS 설정 파일
         DNS 보안 취약성 
        ⑦ DNSSEC 기술 

 


1. 인터넷 응용 보안

    (3) DNS(Domain Name Service) 보안

        ① DNS 개념

            ▶ 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 혹은 그 반대로 변환하는 서비스

            ▶ 쉽게 말해, 도메인 이름(www.naver.com)과 IP 주소를 매핑시켜주는 거대한 분산 시스템

            ▶ DNS 계층구조를 가지는 분산 데이터베이스

            ▶ FQDN(Fully Qualified Domain Name) : DNS에서 사용되는 이름 표기 법

                ex) FQDN : www.nvaer.com

 

        ② DNS 구성

            ▶ 최상 루트 도메인 - top 도메인 - second 도메인 - Sun 도메인

         DNS 서비스 운영

           Ⅰ. DNS 요청 종류

               1) Recursive Query : 로컬 DNS 서버에 이름 분석 결과만 달라고 요청

               2) Iterative Query

                   - Query에서 요구하는 IP주소가 있으면, 질의한 호스트에게 결과를 반환

                   - 없으면, 해당 도메인을 관리하는 DNS Server에게 같은 Query를 보냄

 

           Ⅱ. 도메인(Domain)과 존(Zone)의 개념

                ▶ 도메인(Domain)

                    ▷ 하나의 노드가 관리하는 영역 (해당 노드의 하위 영역)

                ▶ 존(Zone)

                    ▷ 하나의 네임서버가 관리하는 영역

 

                    ▷ Zone의 종류

                        - 주 영역 : 해당 DNS가 직접 관리하며 모든 권한을 가지고 있는 영역

                        - 보조 영역 : 다른 DNS Server의 주 영역을 읽기 전용 데이터로 복사 해온 것

                                         ※ 복사해 오는 행위를 Zone Transfer라고 함

                        - 스텁 영역 : 다른 DNS Server의 정보가 있는 영역(해당 영역에 대한 권한은 없음)

 

           Ⅲ. Resource Record Type(RR)

                ▶ 각 Zone은 Resource Record Type으로 정의된 데이터를 가짐

                ▶ 무슨 뜻이냐면.. 존에 있는 도메인 네임은 그 자체로서는 인터넷 자원과 관련된 아무런 정보를 가지고 있지 않다. 인터넷 상에서 사용하는 각종 자원 정보와 매핑될 때 비로소 사용 가능하다.

                ▶ 각종 자원이란 다음과 같은 것들을 뜻한다

                    1) SOA(Start Of Authority) : 주 DNS Server와 Zone에 대한 정보

                    2) A(Host Address) : IPv4 주소

                    3) AAAA : IPv6 주소

                    4) CNAME : 별칭으로써 IP 하나에 여러 개의 별칭을 부여하기 위해 사용

                    5) MX(Mail eXchanger) : 메일 시스템에 대한 정보

                    6) PTR(Pointer) : 역방향 조회 영역에서 사용됨(A 레코드의 반대)

                    7) NS(An authoritative Name Server): DNS 구역을 위한 Authoritative DNS 서버의 네임을 뜻한다

                    8) TXT(Text Strings): 도메인과 관련해 저장해야 할 임의의 문자를 나타낸다

                    9) HINFO(Host Information): 호스트에 대한 일반 정보를 얻는 데 사용된다 CPU 및 OS 유형을 알려준다

 

           Ⅳ. DNS Server Caching

                 다른 DNS Server로부터 알아 온 정보는, 버리지 않고 DNS Server Cache에 임시로 저장

                 SOA Record의 TTL에서 지정한 기간만큼

 

        ④ DNS 도메인 질의 과정

             ※ 리눅스를 기반으로 설명

             ▶ 도메인 질의는 /etc/resolv.conf 에 지정된 네임서버로 접속하여 아래와 같은 질의 과정을 거치게 된다

             1) 클라이언트에서 /etc/resolv.conf 에 지정돼있는 네임서버로 www.yahoo.com에 대한 요청을 전달한다


             2) 일반 네임서버는 루트 네임서버의 IP 주소를 기록한 "hint 파일"을 가지고 있는데 이것을 참조하여 루트 네임서버에 www.yahoo.com에 대한 요청을 전달한다. 루트 네임서버는 최상위 네임서버들의 네임 서버명(NS 레코드)과 IP 주소(A 레코드)를 가지고 있는데 이를 글루 레코드(glue record)라고 한다. 이 글루 레코드를 참조하여. com 네임서버를 참조하라고 응답한다(루트 네임서버는 전 세계에 13개뿐이다)

                ※ vi /var/named/named.c 파일에 정의되어 있다

                   192.41.0.4, 192.228.79.201, 192.33.4.12, 199.7.91.13, 192.203.230.10, 192.5.5.241, 192.112.39.4

                   198.97.190.53, 192.36.148.17, 192.58.128.30, 193.0.14.129, 199.7.83.42, 202.12.27.33

                    

             3). com네임서버에는. com을 최상위 도메인으로 사용하는 도메인들의 글루 레코드를 가지고 있기에 이를 참조하여 www.yahoo.com의 네임서버를 참조하라고 응답한다.


             4) yahoo.com의 네임서버는 yahoo.com 도메인에 대한 존(zone) 파일을 참조하여 www.yahoo.com의 IP 주소(A 레코드)를 클라이언트가 최초 요청을 한 네임서버로 되돌려 준다.


             5) 최초 요청을 받은 네임서버는 클라이언트에게 www.yahoo.com의 IP 주소를 전송한다.

 

         리눅스 DNS 설정 파일

             Ⅰ. /etc/host.conf
                 ▶ 어떤 특정 도메인에 대해 IP 주소 값을 찾을 때, 주소 값을 어디에서 찾을 것인가를 결정하는 파일이다. 

                     - hosts : /etc/hosts 파일을 말한다.
                     - bind : DNS 를 말한다. /etc/resolv.conf 에 정의된 nameserver 를 의미한다. 

 

                 ▶ /etc/host.conf 파일에 데이터가 없어도 된다.


             Ⅱ. /etc/resolv.conf
                 ▶ 사용하고자 하는 네임서버를 지정하는 파일이다

보안상 사내 네임서버 주소는 가렸다..

             Ⅲ. /etc/named.conf

                 ▶ 네임서버 환경설정 파일이다

                 ▶ zone 파일의 위치, named.ca 파일, named.local 파일 등에 대한 정보가 있다.

                 ▶ directory "/var/named"; :이 부분은 DNS 서버에 있는 zone 파일들의 위치를 나타낸다. 

 

             Ⅳ. /var/named/도메인.rev

                 ▶ 대표 도메인에 대한 reverse mapping 정보를 기록

 

             Ⅴ. /var/named/도메인.zone

                 ▶ 도메인이 IP 주소로 변환되어 질 목록들

 

         DNS 보안 취약성 

             Ⅰ. DNS Spoofing

                 ▶ 공격자가 호스트의 Query를 스니핑 하고, DNS Server보다 먼저 조작된 IP주소가 담긴 응답을 보냄

                 ▶ DNS는 Query에 대한 인증을 수행하지 않기에, 피해자는 조작된 IP주소로 접속하게 됨(UDP를 사용함)

 

             Ⅱ. DNS Cache Poisoning

                 ▶ DNS 에 잘못된 주소 레코드를 삼입해 다른 사이트의 IP 주소로 응답하도록 하는 것이다

                 ▶ DNS Query시 부여되는 Transaction ID와 출발지/목적지 포트가 예상하기 쉬운 값을 사용하게 되면 공격이 가능

                 ▶ 강력한 난수 생성기 써도, 공격시간을 지연시킬 뿐

 

             Ⅲ. DNS 반사 공격

                 ▶ DNS resolv 서버에서 대량 메시지를 보내 피해자를 장악한다

                 ▶ 공격자가 찾을 수 있는 모든 개방된 DNS resolv 에 스푸핑된 피해자 IP 주소를 심으면 피해자는 요청하지 않은 막대한 양의 DNS 데이터를 받고 시스템은 마비된다

 

             Ⅳ. DNS 리소스 소진 공격

                 ▶ ISP(KT 등)의 DNS 인프라 작동을 방해해 ISP 고객의 인터넷 사이트 접속을 막는다

                 ▶ 피해자의 네임 서버를 도메인의 인증 서버로 등록하여 해석 요청이 폭주해 시스템을 마비시킨다

 

        ⑦ DNSSEC (DNS Security Extentions) 기술 

             ▶ 기존의 DNS를 대체하는 게 아니라, DNS에 공개키 암호화 방식의 전자서명을 추가 부여하는 역할

             ▶ DNS 프로토콜 자체가 데이터의 위조 변조에 취약함

             ▶ DNS Data 원본을 가지고 있는 DNS Server는, 각 DNS Data에 대한 서명 데이터가 추가됨

             ▶ DNSSEC으로 인해, DNS Query의 응답으로 A 레코드와 함께 RRSIG 레코드도 함께 응답됨

 

             ※ 피싱(Phishing), 파밍(Pharming), 스미싱(Smishing)

                ⓐ 피싱(Phishing) : 실제 도메인과 비슷한 가짜 도메인 명을 사용해 공격

                ⓑ 파밍(Pharming) : DNS Server나 사용자 컴퓨터의 DNS Cache를 변조해서 공격

                   - DNSSEC으로 예방 가능한 건 파밍

                ⓒ 스미싱(Smishing) : 문자메시지를 이용하는 공격

 

 


[ 출처 ]

https://m.blog.naver.com/PostView.nhn?blogId=wnrjsxo&logNo=221253031733&referrerCode=0&searchKeyword=dns

https://kit2013.tistory.com/211

https://itdexter.tistory.com/263

http://www.itworld.co.kr/t/62078/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/108921

을 참고하여 보완하고 수정한 글입니다.

반응형

댓글