DNS 데이터 위, 변조 침해공격, 호스트와 애플리케이션에 전달 방지


▲ 최재윤 오픈베이스 과장



DNS의 표준은 침해공격의 가능성을 고려하지 않던, 인터넷이 처음 시작되던 25년 전에 정해진 표준 프로토콜이다. 인터넷이 우리 일상의 모든 것을 변화시키면서 침해공격으로부터 DNS 데이터를 보호해야 될 필요성이 점차 증가하고 있다.
DNSSEC은 DNS가 제공하는 다양한 DNS 데이터가 위변조 침해공격으로 위변조되어 호스트 PC의 애플리케이션으로 전달되는 것을 방지하기 위해 DNS 프로토콜을 확장하고 보완하는 표준 프로토콜이다. DNSSEC이란 무엇이며, 탄생 배경/목표/이슈 사항과 적용 시 고려사항 등에 대해 집중 살펴본다. 다음 호에는 국가/기관별 DNSSEC 도입 현황과 우리나라의 DNSSEC 적용 로드맵에 대해 상세히 살펴본다.

DNS 데이터의 주요 취약점

•DNS는 UDP 기반의 네트워크 서비스로 패킷 검증에 대한 메커니즘이 없어 피싱(phishing) 등의 스푸핑(Spoofing) 공격에 취약하다.
• 패킷 가로채기(Packet Interception): DNS가 질의/응답 메시지를 주고받을 때 전혀 암호화되지 않은 UDP 패킷을 사용하기 때문에 패킷 가로채기 유형의 위험에 노출되어 있다.
• ID 추측과 질의 예측: DNS 헤더의 ID 필드는 16비트로 구성되어 있으며, 2~16개의 숫자는 대입법을 통하여 충분히 값을 추측할 수 있다.
• 이름 기반 공격: 공격자는 피 공격자의 캐시에 특정 RRs를 위-변조하여 악의적인 데이터를 제공함으로써, 잠재적으로 DNS를 기반으로 하는 모든 환경에 잘못된 판단을 유발하여 영향을 미칠 수 있다.

DNSSEC의 동작 방식

DNS 프로토콜은 질의응답 과정에서 응답된 메시지에 포함된 데이터가 원본 authoritative(해당 도메인에 대한 권한을 가진) 네임서버가 제공한 데이터인지 아니면 위변조되어 응답된 데이터인지를 구분하는 수단을 가지고 있지 않다. 표준 DNS 데이터포맷에 따라 응답된 DNS 데이터를 수신한 경우, 리커시브(recursive) 네임서버의 리졸버(resolve)는 이 데이터가 위변조되어 있더라도 이를 구분하지 못하고 캐시에 저장하여 호스트의 질의에 대한 응답 데이터로 제공하게 된다.

DNSSEC은 이들 취약점을 보완하기 위해, DNS의 각 리소스 레코드에 대한"전자서명(Digital Signature)"메커니즘을 적용하는 보안 프로토콜을 추가 정의한다. DNSSEC은 공개키 암호화(Public Key Cryptography) 방식의 전자서명을 사용하여 각 리소스 레코드를 전자서명(digital signature)한 후 이를 별도의 리소스 레코드인 RRSIG(Resource Record Signature) 리소스 레코드에 저장한다. RRSIG RR은 질의응답 절차에서 응답 메시지에 함께 포함되어 응답한다. 리졸버는 응답 받은 리소스 레코드에서 함께 동봉된 이 리소스 레코드에 대한 RRSIG RR의 전자서명을 가지고 서명검증 절차를 수행함으로써, 이 데이터가 authoritative 존(zone)의 원본 데이터와 다르지 않음을 검증할 수 있다.

DNSSEC은 DNS 리소스 레코드 데이터를 암호화(encryption)하는 것은 아니다. 공개키 암호화(Public Key Cryptography) 방식은 암호화 메커니즘과 전자서명 매커니즘을 제공한다. 이 중에서 DNSSEC은 암호화 매커니즘이 아닌 전자서명 매커니즘만을 DNS에 적용한다. DNS의 리소스 레코드
데이터는 인터넷 전체에 대한"공개 데이터(public data)"이기 때문에, DNSSEC을 인식하지 못하는 기존 리졸버들도 이 데이터를 질의하여 조회하는데 문제가 없어야 한다.

공개키 암호화 방식의 전자서명은 데이터를 암호화하는 것이 아니라 데이터의 소유자가 이 데이터를 작성했음을 증명하는 방법을 제공한다. 이는 반대로 이 데이터가 중간에서 누군가에 의해 임의로 변조되었을 때, 이 데이터가 변조되었음을 검출할 수 있는 수단이기도 하다.

DNSSEC은 이와 같은 전자서명의 특성을 DNS 체계에 적용한 표준 프로토콜이다. Authoritative 네임서버의 authoritative 도메인 존은 존의 데이터에 대한 권한이 있는 소유자(owner)다. 따라서 공개키 암호화 방식의 개인키(private key)와 공개키(public key)의 소유자는 도메인 존으로 설정된다. 공개키의 소유자가 네임서버나 단위 리소스 레코드가 아니라 도메인의 존인 것은, DNS 체계에서 위임과 관리권한이 존 구역에 의해 구분된다는 것을 생각하면 쉽게 이해할 수 있을 것
이다.

DNSSEC 프로토콜은 권한 있는 도메인 존의 데이터가 중간에서 위-변조되지 않고 각 리졸버에게 명확히 전달되는 것을 보장하기 위한 표준이다. 이는 보안 측면에서'데이터 발신 인증(data origin authentication)'과'데이터 무결성(data integrity)'수단을 제공한다.

현재 추진되고 있는 차세대 인터넷은 높은 수준의 보안 안전성을 필요로 한다.

차세대 인터넷 환경은 DNS에 대해서도 그 근본적 보안 취약점을 극복하여 신뢰할 수 있는 데이터를 차세대 인터넷 응용 애플리케이션에 제공할 수 있는 안전한 기반 인프라 시스템으로의 진화가 요구되고 있다.

<이하 상세 내용 컴퓨터월드 5월 호 참조>

저작권자 © 아이티데일리 무단전재 및 재배포 금지