다음을 통해 공유


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에서 "*.azurewebsites.net" 및 "*.appserviceenvironment.net" 리소스에 대해 사용하도록 설정되므로 고객 구성이 필요하지 않습니다.

예제 시나리오

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

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

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

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

잘못된 작업자가 삭제 기간과 다시 생성 기간 사이에 도메인을 인수할 수 없도록 사이트 삭제 전에 DNS 레코드를 업데이트해야 합니다.

도메인 확인 ID를 가져오려면 사용자 지정 도메인 매핑 자습서를 참조하세요.