IP 인텔리전스 개발에 rDNS 적용에 대한 간략한 논의

2024년 9월 12일
rDNS란 무엇인가

내용물

무료로 씨디네트웍스를 이용해보세요

지금 바로 신청하면, 씨디네트웍스의 다양한 솔루션을 한 달간 무료로 체험하실 수 있습니다.

이 게시물 공유하기

오늘날의 디지털 세계에서 인터넷은 사람들의 일상 생활과 사업 활동에 없어서는 안 될 부분이 되었습니다. 이 광대하고 복잡한 네트워크 생태계에서 IP 주소는 다양한 네트워크 장치와 서비스를 연결하고 식별하는 데 기본이 됩니다. 그러나 장치의 IP 주소를 아는 것만으로는 네트워크 내에서 해당 장치의 역할과 동작을 완전히 이해하기에 충분하지 않습니다. IP 주소를 더 깊이 이해하고 더 잘 활용하기 위해 역방향 DNS(rDNS) 기술은 귀중한 정보를 제공하여 IP 주소에 대한 더 많은 세부 정보를 발견하는 데 도움이 됩니다.

rDNS란 무엇인가요?

DNS와 달리 rDNS는 PTR 및 CNAME 레코드를 쿼리하여 IP 주소를 도메인 이름으로 변환하는 프로세스입니다. IP 주소는 여러 도메인 이름에 해당할 수 있으며, 일대다 관계를 나타냅니다. 반면 IP 주소의 역방향 조회는 일반적으로 0개 또는 1개의 호스트 이름을 반환하며, 일대일 관계를 나타냅니다. 역방향 DNS의 일반적인 용도는 다음과 같습니다.

  • 발신자의 신원을 확인하세요

rDNS는 스팸을 방지하기 위한 일환으로 이메일을 보내는 과정에서 널리 사용됩니다. 피싱 공격. 이메일이 서버에서 전송되면 수신 서버는 전송 서버의 IP 주소를 보고 rDNS 쿼리를 수행하여 해당 IP 주소와 연결된 도메인 이름을 확인할 수 있습니다. rDNS 레코드가 전송 서버의 클레임과 일치하면 전송 서버의 신원을 확인하는 역할을 할 수 있으므로 이메일이 합법적일 가능성이 높아집니다. 예를 들어 AOL(America Online)은 이메일을 AOL/AIM 사서함으로 보내려면 발신자의 메일 서버가 역방향 확인 가능해야 합니다. 일부 대규모 네트워크 공급자의 경우 올바른 역방향 DNS 레코드를 구성하는 것도 인터넷 서비스의 신뢰성과 안정성을 확립하는 데 포함됩니다.

  • 네트워크 문제 해결 및 추적

네트워크 관리 및 문제 해결에서 요청 장치의 도메인 이름 정보를 아는 것은 매우 유용합니다. rDNS는 네트워크 관리자가 네트워크 트래픽에서 특정 호스트를 식별하고 트래픽 소스를 이해하여 문제를 효과적으로 진단할 수 있도록 도와줍니다.

  • 보안 정책 및 액세스 제어 구현

일부 네트워크 서비스와 애플리케이션은 보안 정책이나 액세스 제어를 구현하기 위해 역방향 도메인 이름에 의존할 수 있습니다. rDNS를 통해 서비스는 액세스 요청의 IP 주소 뒤에 있는 도메인 이름을 확인하여 액세스를 허용할지 또는 특정 규칙을 적용할지 여부를 결정할 수 있습니다. 예를 들어, 요청 헤더 User-Agent와 IP의 역방향 해결 레코드를 확인하여 무해한 봇을 식별하여 요청이 정품 SEO 크롤러에서 온 것인지 확인합니다.

역방향 DNS에서 지리적 위치 정보 파생

실행 중 호스트 96.227.5.107 터미널 수율에서 pool-96-227-5-107.phlapa.east.verizon.net., 하위 도메인 부분을 나타냄 .플라파 IP가 미국 펜실베이니아주 필라델피아에 위치한다고 제안합니다. 마찬가지로 역방향 조회를 수행하면 63.153.137.40 결과는 다음과 같습니다 63-153-137-40.sxfl.qwest.net., 하위 도메인 부분 .sxfl 파일입니다. 는 미국 사우스다코타주 수폴스의 약자입니다. 호스트 이름을 조사하면 지리적 위치를 합리적으로 유추할 수 있으며, rDNS 레코드가 IP 지리적 위치에 대한 추가 가치를 제공할 수 있음을 보여줍니다. 그러나 고려 사항은 다음과 같습니다.

  • 전체 IPv4 주소 공간에서 역방향 확인이 가능한 IP 주소는 몇 개입니까?
  • 역방향 확인이 가능한 IP 주소 중에 지리적 위치 정보를 포함하는 rDNS 레코드가 몇 개나 있습니까?

논문에서 “역방향 DNS를 통한 IP 지리적 위치", 우리는 상당히 타당한 해결책을 찾았습니다. 이 논문은 rDNS에서 위치 정보를 추출하는 머신 러닝 접근 방식을 제안하며, 이 작업을 머신 러닝 문제로 취급합니다. 주어진 호스트 이름에 대해 후보 위치 목록을 생성한 다음, 이진 분류기를 사용하여 각 호스트 이름과 후보 위치 쌍을 분류하여 어떤 후보 위치가 합리적인지 확인합니다. 마지막으로, 나머지 후보 위치는 신뢰도에 따라 순위가 매겨지고 인구 수와 상관관계가 있습니다. 이 방법은 현재 주류 IP Geo 상용 데이터베이스의 정확성을 효과적으로 보완하고 향상시킵니다.

IPv4 주소 공간에서 rDNS의 분포

그림 1: IPv4 주소 공간에서 rDNS 분포

총 43억 개의 IPv4 주소 공간 중에서 약 25억 6,800만 개의 공용 IP 주소가 있습니다. 위의 그래프는 12억 5,000만 개의 IPv4 주소에 유효한 rDNS가 있음을 보여줍니다. 이 12억 5,000만 개의 IPv4 주소 중 약 1억 6,000만 개에는 정확한 도시 일치가 포함되어 있고 2억 7,000만 개에는 공항 코드가 포함되어 있습니다. 즉, 모든 유효한 역방향 DNS 레코드 중 약 12%만 유용한 지리적 위치 정보를 포함합니다. 이들의 범위는 완전한 IP Geo 데이터베이스를 독립적으로 형성하기에 충분하지 않지만 기존 IP 지리적 위치 정보를 풍부하게 하는 데 기여할 수 있습니다. 또한 이 논문은 2014년부터 2018년까지 rDNS의 변화를 분석하여 rDNS 확인 레코드의 64.8%가 변경되지 않은 채 유지되고 역방향 DNS 레코드의 수가 매년 천천히 증가하고 있음을 보여줍니다. 이 사실은 현재 약 12억 8,600만 개에 달하는 최신 rDNS 데이터와 일치합니다.

2014년부터 2018년까지 rDNS 호스트 이름의 변화

그림 2: 2014년부터 2018년까지 rDNS 호스트 이름의 변화

MaxMind, Neustar IP Intelligence, IP2Location과 같은 회사에서 제공하는 상업용 IP 지리적 위치 데이터베이스는 다양한 정보 소스와 알고리즘을 결합하여 높은 적용 범위를 달성합니다. 이러한 소스에는 WHOIS 정보, 네트워크 지연 데이터, 네트워크 토폴로지 정보, ISP와의 협업, 네트워크 소셜 그래프 분석이 포함됩니다. 그러나 여전히 특정 IP 범위에 대한 위치 정보가 부족할 수 있습니다. 네트워크 토폴로지 및 지연 정보를 활용하는 데는 몇 가지 제한이 있습니다.

(1) 글로벌하게 분산된 매핑 노드 리소스가 필요합니다.

(2) 모든 공용 IP가 ICMP ping을 허용하거나 네트워크 토폴로지를 노출하는 것은 아닙니다.

(3) Traceroute를 통해 얻은 경로 거리는 실제 지리적 거리와 완벽하게 매핑할 수 없습니다. 그러나 지리적 위치에 rDNS를 활용하면 이러한 제한을 극복할 수 있습니다.

역방향 DNS에서 IP 연결 유형 파생

일부 역방향 DNS 확인 레코드에는 연결 유형에 대한 정보가 포함될 수 있습니다.

이 경우 rDNS 정보는 IP 사용 시나리오(예: 주거, 기업, 데이터 센터 등)를 탐색하는 방법으로 사용할 수 있습니다. 보안 제품의 경우 일반적으로 다양한 IP 유형에 대해 서로 다른 수준의 보호 전략을 적용합니다. 예를 들어, 대부분의 실제 사용자 액세스가 여러 사용자가 공유하는 동적 IP에서 발생하기 때문에 동적 주거 IP에 대해 보다 신중하고 보수적인 보호 조치를 채택할 수 있으며, 이는 거짓 양성이 발생하기 쉽습니다. 그러나 기업 전용 회선 IP의 경우 의사 결정 비용이 그렇게 높지 않습니다.

동적 IP는 여러 네트워크 제공업체에서 IP 풀에 할당합니다. 따라서 WHOIS 정보 및 기타 소스만으로 IP가 동적인지 직접 확인하기 어렵습니다. 그러나 rDNS를 통해 특정 키워드 정보를 사용하여 일부 판단을 내릴 수 있습니다. 간단한 예로, PTR 레코드에 키워드 "동적"이 포함된 IP에 대한 rDNS 데이터베이스를 쿼리하면 5,800만 개 이상의 IP를 직접 일치시킬 수 있습니다.

일치하는 IP 수

그림 3: 일치하는 IP 수

다른 타사 위협 인텔리전스 데이터를 결합하면 이 가설을 예비적으로 검증할 수 있습니다.

제3자 위협 인텔리전스 데이터

그림 4: 타사 위협 인텔리전스 데이터

물론, 실제 동적 IP의 수는 훨씬 더 많습니다. 여기서는 표면만 긁은 것입니다. 마찬가지로, 두 번째 장에서 언급했듯이 모든 IP에 rDNS 레코드가 있는 것은 아니므로 역방향 DNS 레코드 IP의 연결 유형을 보완하고 풍부하게 할 수 있습니다. 그러나 rDNS에만 의존하는 것은 완전한 데이터베이스를 구성하기에 충분하지 않습니다.

ZDNS를 사용하여 IPv4 역방향 DNS 확인 수행

논문 "ZDNS: 인터넷 측정을 위한 빠른 DNS 툴킷”는 세 가지 주요 구성 요소로 구성된 고성능 확장 가능한 DNS 프로빙 프레임워크를 소개합니다. DNS 라이브러리, 핵심 프레임워크, 구성 가능한 모듈입니다. DNS 라이브러리는 자체 캐싱 재귀적 리졸버 라이브러리를 구현하여 재귀적 쿼리, 캐싱, 검증, 패킷 교환 레코드, 간소화된 DNS 확인을 제공합니다. 핵심 프레임워크는 명령줄 상호 작용을 간소화하는 데 사용되는 반면, 구성 가능한 모듈은 손쉬운 기능 확장에 사용됩니다. ZDNS 구현은 여러 가지 설계 원칙을 따릅니다.

  • 내부 재귀: ZDNS는 DNS 작업의 다양한 특성을 이해하기 위해 재귀적 해결을 지원합니다. 이는 공개 재귀적 리졸버가 종종 많은 DNS 해결 기능을 숨기고 자주 쿼리 속도 제한을 부과하기 때문입니다. 따라서 내부 자체 재귀에 대한 지원이 필요합니다.
  • 보안: DNS 프로토콜은 많은 RFC 표준을 정의하며, 2022년 현재 65개 이상의 DNS 레코드 유형이 있습니다. 서버는 종종 잘못된 구성이나 악의적인 작업으로 인해 잘못된 형식의 응답을 반환하기 때문에 ZDNS는 메모리 안전 프로그래밍 언어를 사용하고 모듈형 인터페이스를 지원합니다.
  • 고성능: 외부 재귀적 리졸버를 사용하는 경우 초당 90,000회의 해결을 수행하고, 10분 안에 5,000만 개의 도메인을 스캔하고, 12시간 안에 전체 IPv4 주소 공간의 PTR 레코드를 해결합니다.

다음 그림은 ZDNS의 해상도 성능 데이터를 보여줍니다.

ZDNS 해상도 성능 데이터

그림 5: ZDNS 해결 성능 데이터

PTR 레코드의 데이터 성능만 고려한다면, Google의 퍼블릭 DNS 확인을 사용하면 전체 IPv4 주소 공간의 확인을 완료하는 데 12.1시간만 걸려 성공률 93.0%를 달성했습니다. 반면, 내부 재귀적 확인을 사용하면 116.7시간이 걸렸지만 성공률은 88.5%를 유지했습니다. 내부 재귀적 확인을 사용할 때 성능이 크게 떨어지는 것은 부분적으로 퍼블릭 확인의 캐싱을 활용하여 쿼리를 가속화할 수 없기 때문이고, 부분적으로는 내부 재귀 메커니즘이 응답을 반환하기 전에 특정 수의 쿼리가 필요하기 때문입니다. A 레코드와 PTR 레코드를 비교하면 확인 횟수가 5,000만에서 수십억으로 증가함에 따라 ZDNS의 성공률은 5% 미만으로 감소합니다.

결론

역방향 DNS(rDNS) 기술은 네트워크 관리 및 보안에 필수적인 도구이며 IP 주소 정보를 강화하고 지리적 위치와 연결 유형을 식별하는 데 강력한 지원을 제공합니다.

rDNS에서 지리적 위치 정보를 유도할 때, rDNS 레코드의 도메인 이름을 지리적 위치 데이터베이스와 연관시켜 IP 주소의 지리적 위치 정보를 추론하고 지리적 위치 및 위치 인식 서비스에 대한 데이터 지원을 제공할 수 있습니다. 이는 네트워크 위치 지정 및 콘텐츠 전송 네트워크 최적화와 같은 서비스에 필수적입니다.

반면, rDNS에서 IP 연결 유형을 파생함으로써 rDNS 레코드에서 발견된 도메인 이름과 서비스 유형을 기반으로 IP 주소와 관련된 애플리케이션과 서비스를 분류하고 식별할 수 있습니다. 이는 다음에 도움이 됩니다. 네트워크 보안 그리고 트래픽 관리를 통해 네트워크 활동에 대한 시각화와 이해도를 향상시킵니다.

IPv4 역방향 DNS 확인을 위한 ZDNS와 같은 도구를 활용하면 빠르고 효율적인 대규모 rDNS 쿼리가 가능해져 네트워크 관리와 보안 분석이 용이해집니다. 이러한 도구를 적용하면 실질적인 네트워크 정보 수집 및 분석에 대한 기술 지원이 제공되어 네트워크 리소스의 합리적 활용과 네트워크 보안 강화에 기여합니다.

더 알아보기