Azure App Service에서 하위 도메인 인수 방지

하위 도메인 인수는 정기적으로 많은 리소스를 만들고 삭제하는 조직에 일반적인 위협입니다. 프로비전 해제된 Azure 리소스를 가리키는 DNS 레코드가 있는 경우 하위 도메인 인수가 발생할 수 있습니다. 이러한 DNS 레코드를 "현수 DNS" 항목이라고도 합니다. 하위 도메인 인수를 사용하면 악의적인 행위자가 조직의 도메인에 대한 트래픽을 악의적인 활동을 수행하는 사이트로 리디렉션할 수 있습니다.

하위 도메인 인수의 위험은 다음과 같습니다.

  • 하위 도메인의 콘텐츠에 대한 제어 손실
  • 의심하지 않는 방문자로부터 쿠키 수확
  • 피싱 캠페인
  • XSS, CSRF 또는 CORS 바이패스와 같은 클래식 공격의 추가 위험

하위 도메인 인수에 대한 자세한 내용은 현수 DNS 항목 방지 및 하위 도메인 인수 방지를 참조하세요.

Azure App Service는 하위 도메인 인수를 방지하기 위해 이름 예약도메인 확인 토큰 을 제공합니다.

App Service에서 하위 도메인 인수를 방지하는 방법

App Service 앱 또는 ASE(App Service Environment)를 삭제하면 해당 DNS는 원래 DNS를 소유한 구독의 테넌트에 속한 구독을 제외하고 재사용할 수 없습니다. 따라서 고객은 해당 DNS에 대한 연결 또는 포인터를 정리하거나 동일한 이름의 리소스를 다시 만들어 Azure에서 DNS를 회수할 시간이 있습니다. 이 동작은 기본적으로 Azure App Service for *.azurewebsites.net*.appserviceenvironment.net 리소스에서 사용하도록 설정되므로 고객 구성이 필요하지 않습니다.

예제 시나리오

구독 A 및 구독 B 는 테넌트 AB에 속하는 유일한 구독입니다. 구독 A에는 DNS 이름이 있는 App Service 웹앱 test.azurewebsites.net가 포함되어 있습니다. 앱을 삭제하면 구독 A 또는 Btest.azurewebsites.net라는 웹앱을 만들어 DNS 이름을 즉시 다시 사용할 수 있습니다. 다른 구독은 리소스 삭제 직후에 이름을 청구할 수 없습니다.

하위 도메인 인수를 방지하는 방법

Azure App Service에 대한 DNS 항목을 만들 때, 도메인 확인 ID가 포함된 asuid.{subdomain} TXT 레코드를 만듭니다. 이러한 TXT 레코드가 있는 경우 다른 Azure 구독은 DNS 항목에 토큰 확인 ID를 추가하지 않는 한 사용자 지정 도메인의 유효성을 검사하거나 이를 인수할 수 없습니다.

이러한 레코드는 CNAME 항목에서 동일한 이름을 사용하여 다른 App Service 앱을 만들지 못하게 합니다. 도메인 이름의 소유권을 증명할 수 없는 위협 행위자는 트래픽을 받거나 콘텐츠를 제어할 수 없습니다.

사이트를 삭제하기 전에 DNS 레코드를 업데이트하여 잘못된 행위자가 삭제 및 다시 만드는 기간 사이에 도메인을 인수할 수 없도록 해야 합니다.

도메인 확인 ID를 가져오려면 Azure App Service에서 기존 사용자 지정 도메인 설정을 참조하세요.