개방형 DNS 확인 자란 무엇이며 해커가 서버를 오용하지 않도록 어떻게 보호 할 수 있습니까?


15

컴퓨터 보안에 대한 배경 지식이 없지만 어제 회사 서버 중 하나가 호스트에 의해 종료되었습니다.

웹 사이트 및 API를 포함한 여러 웹 서비스 응용 프로그램을 호스팅하는 공용 IP가 할당 된 서버입니다. 내 서버에서 "서비스 거부 공격을 외부 엔터티에 릴레이하는 데 사용되는 개방형 dns 리졸버를 실행 중"이라고 들었습니다.

이것은 무엇을 의미 하는가? 이 공격은 어떻게 작동합니까? 시스템이 이와 같이 악용되지 않도록 어떻게 보호 할 수 있습니까?

필자의 경우, 해당 서버는 Windows Server 2012에 있으며 Active Directory 도메인의 DNS를 제공하고 있습니다.


어떤 DNS 서버를 사용하는지 알려면 어떤 구성을 어떤 방식으로 설정해야하는지 누군가에게 알려줄 수 있습니다. 이 정보가 없으면 BIND가 가장 일반적인 DNS 서버이고 개인 주소 공간이 안전하기 때문에 BIND와 모든 개인 IP 주소 공간을 추측했습니다. 해당되는 경우 외부 주소 블록의 재귀 요청도 허용 할 수 있습니다.
HopelessN00b

@ HopelessN00b 감사합니다. 귀하의 답변이 매우 유용했습니다. 나는 BIND를 사용하지 않고있다. (나의 호스트는 또한 내가 생각하고 실행할 명령을 제공했다); IIS에서 DNS 서버를 역할로 설정했습니다. 흥미 롭습니다. DNS 서버를 수동으로 구성하지 않았으며 이것이 왜 필요한지 잘 모르겠습니다. 비활성화되면 어떻게됩니까?
JSideris

어, Windows 환경에서 DNS를 비활성화하지 마십시오. Active Directory가 손상 될 수 있습니다. Windows Server 버전을 알려 주시면 Windows DNS 상자를 보호하는 방법을 보여주기 위해 일부 스크린 샷에서 편집 할 수 있습니다.
HopelessN00b

좋구나. 실제로 이번 주말에 실제로 활성 디렉토리를 설정했습니다. Windows Server 2012 표준입니다.
JSideris

답변:


28

"개방형 DNS 확인자"는 인터넷상의 모든 사람에 대한 재귀 적 DNS 조회를 해결하고자하는 DNS 서버입니다. 단순한 인증 부족으로 악의적 인 타사가 보안되지 않은 장비를 사용하여 페이로드를 전파 할 수 있다는 점에서 개방형 SMTP 릴레이와 매우 유사합니다. 열린 SMTP 릴레이를 사용하면 문제는 스팸을 전달한다는 것입니다. 공개 DNS 리졸버를 사용하면 문제는 DNS 증폭 공격이라는 서비스 거부 공격을 허용한다는 것입니다.

이 공격의 작동 방식은 매우 간단합니다. 서버는 누구나 재귀 적 DNS 쿼리를 해결하므로 공격자는 서버에 재귀 적 DNS 쿼리를 전송하여 DDoS에 참여하게 할 수 있습니다. 원래 DNS 요청 패킷 IP 주소를 스푸핑 (가짜)함으로써이 추가 트래픽을 피해자의 컴퓨터 대신 자신의 컴퓨터로 보내 게됩니다. 물론 서버와 다른 공개 DNS에 최대한 많은 요청을 보냅니다. 그들이 찾을 수있는 결심 자. 이러한 방식으로 비교적 작은 파이프를 가진 사람은 파이프의 모든 대역폭을 사용하여 피해자에게 훨씬 더 많은 트래픽을 유도함으로써 서비스 거부 공격을 "증폭"할 수 있습니다.

ArsTechnica는 Spamhaus에 대한 최근의 DNS 증폭 DDoS 공격에 대해 적절한 기사를 작성 했으며 기본 사항 (및 증폭의 좋은 시각)을 빨리 읽을 가치가 있습니다.

이와 같이 시스템이 악용되지 않도록 보호하는 가장 간단한 방법은 서버가 로컬 서브넷에 대한 재귀 적 조회를 수행 할 주소를 제한하는 것입니다. (자세한 내용은 사용중인 DNS 서버에 따라 다릅니다).


예를 들어, BIND 9를 사용 중이고 외부 주소에서 DNS 재귀를 방지하려면 구성에서 다음 코드를 사용합니다.

options {
    directory "/var/named/master";
    allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };

이 코드 줄은 내 BIND 서버에게 로컬 루프백 주소 (로컬 루프백 블록, 전체 / 8로 설정할 수 있어야 함) 및 3 개의 개인 IPv4 주소 공간에 대한 재귀 적 DNS 요청 만 처리하도록 지시합니다.


사용중인 Windows Server 2012의 경우 아래 옵션이 있습니다.

1. DNS 서버와 IIS 서버를 분리하십시오.

  • 최소한 완벽한 세상에서는 IIS와 같은 상자에서 DNS를 실행해야 할 이유가 없습니다.
    • NAT되지 않은 내부 상자에 DNS를 배치하여 외부 세계가 접근 할 수 없도록하고 IIS가 외부 세계가 도달 할 수있는 외부 상자에 상주하게하십시오. 이중 호밍 또는 방화벽 규칙을 사용하여 IIS 서버에서 DNS 서버에 대한 액세스를 선택적으로 허용 할 수 있습니다.

2. 내장 된 Windows 방화벽과 같은 방화벽으로 외부 DNS 요청을 차단합니다.

  • 놀랍게도 Windows DNS에서는 재귀 DNS 요청이 적용되는 주소를 제한 할 수 없으므로 실제로 Microsoft에서 권장하는 방법입니다.
  • 여기에 이미지 설명을 입력하십시오
    • DNS 규칙 (TCP 및 UDP)을 선택하고 Remote IP address섹션으로 이동 하여 LAN에서 사용중인 서브넷과 Active Directory에 액세스해야하는 서버의 공개 IP 주소를 추가하십시오. BIND 예제와 마찬가지로 IPv4 개인 주소 공간은 127.0.0.0/8 10.0.0.0/8 192.168.0.0/16172.16.0.0/12입니다.

3. 재귀를 비활성화합니다 .

  • 실제로 환경에 DNS 및 AD가 어떻게 구성되어 있는지 설명하지 않았으므로 이것이 마지막 옵션이므로, 이것이 환경에 어떤 영향을 미칠지 잘 모르겠습니다.
  • 여기에 이미지 설명을 입력하십시오
    1. DNS 관리자를 엽니 다.
    2. 콘솔 트리에서 해당 DNS 서버를 마우스 오른쪽 단추로 클릭 한 다음 속성을 클릭하십시오.
    3. 어디?
    4. DNS / 적용 가능한 DNS 서버
    5. 고급 탭을 클릭하십시오.
    6. 서버 옵션에서 재귀 사용 안 함 확인란을 선택한 다음 확인을 클릭합니다.
      • 다중 포리스트 환경이 있고 조건 전달자를 사용하여 작동하므로 해당 확인란을 선택하지 않겠습니다. 고려해야 할 사항이있을 수 있습니다.

훌륭한 답변!
Fred the Magic Wonder Dog

완벽하고 잘 문서화 된 솔루션 :).
JSideris

2
그렇다면 8.8.8.8 또는 1.1.1.1은 어떻게 자신이 공개 리졸버가되는 것을 방지합니까?
LinuxBabe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.