Zapobieganie zwisaniu wpisów DNS i unikanie przejęcia poddomeny
W tym artykule opisano typowe zagrożenie bezpieczeństwa przejęcia poddomeny i kroki, które można wykonać, aby temu zapobiec.
Co to jest przejęcie poddomeny?
Przejęcia poddomeny są typowym zagrożeniem o wysokiej ważności dla organizacji, które regularnie tworzą i usuwają wiele zasobów. Przejęcie poddomeny może wystąpić, gdy masz rekord DNS wskazujący anulowaną aprowizowaną zasób platformy Azure. Takie rekordy DNS są również znane jako „zwisające wpisy DNS”. Rekordy CNAME są szczególnie narażone na to zagrożenie. Przejęcia domen podrzędnych umożliwiają złośliwym podmiotom przekierowywanie ruchu przeznaczonego dla domeny organizacji do lokacji wykonującej złośliwe działania.
Typowy scenariusz przejęcia poddomeny:
KREACJA:
Zasób platformy Azure należy aprowizować przy użyciu w pełni kwalifikowanej nazwy domeny (FQDN) klasy
app-contogreat-dev-001.azurewebsites.net
.Rekord CNAME można przypisać w strefie DNS przy użyciu poddomeny
greatapp.contoso.com
, która kieruje ruch do zasobu platformy Azure.
ANULOWANIE APROWIZACJI:
Zasób platformy Azure zostanie anulowany lub usunięty po tym, jak nie jest już potrzebny.
W tym momencie rekord
greatapp.contoso.com
CNAME powinien zostać usunięty ze strefy DNS. Jeśli rekord CNAME nie zostanie usunięty, jest anonsowany jako aktywna domena, ale nie kieruje ruchu do aktywnego zasobu platformy Azure. Masz teraz "zwisające" rekord DNS.Poddomena zwisająca,
greatapp.contoso.com
, jest teraz podatna na zagrożenia i może zostać przejęta przez przypisanie do innego zasobu subskrypcji platformy Azure.
PRZEJĘCIA:
Korzystając z powszechnie dostępnych metod i narzędzi, aktor zagrożeń odnajduje zwisającą poddomenę.
Aktor zagrożeń aprowizuje zasób platformy Azure przy użyciu tej samej nazwy FQDN wcześniej kontrolowanego zasobu. W tym przykładzie .
app-contogreat-dev-001.azurewebsites.net
Ruch wysyłany do poddomeny
greatapp.contoso.com
jest teraz kierowany do zasobu złośliwego aktora, w którym kontrolują zawartość.
Ryzyko przejęcia poddomeny
Gdy rekord DNS wskazuje zasób, który nie jest dostępny, rekord powinien zostać usunięty ze strefy DNS. Jeśli nie zostanie usunięty, jest to "zwisające rekord DNS" i tworzy możliwość przejęcia poddomeny.
Zwisające wpisy DNS umożliwiają aktorom zagrożeń przejęcie kontroli nad skojarzą nazwą DNS w celu hostowania złośliwej witryny internetowej lub usługi. Złośliwe strony i usługi w poddomenie organizacji mogą spowodować:
Utrata kontroli nad zawartością poddomeny — negatywna prasa na temat niezdolności organizacji do zabezpieczenia zawartości, uszkodzenia marki i utraty zaufania.
Pliki cookie zbierane z nie podejrzewających odwiedzających — często aplikacje internetowe udostępniają pliki cookie sesji poddomenom (*.contoso.com). Każda poddomena może uzyskać do nich dostęp. Aktorzy zagrożeń mogą używać przejęcia poddomeny, aby utworzyć autentyczną stronę patrzącą, oszukać niczego nie podejrzewających użytkowników, aby go odwiedzić, i zebrać pliki cookie (nawet bezpieczne pliki cookie). Typowym błędem jest to, że użycie certyfikatów SSL chroni Twoją witrynę i pliki cookie użytkowników przed przejęciem. Jednak aktor zagrożenia może użyć porwanej poddomeny, aby ubiegać się o i otrzymać prawidłowy certyfikat SSL. Prawidłowe certyfikaty SSL zapewniają im dostęp do bezpiecznych plików cookie i mogą dodatkowo zwiększyć postrzeganą zasadność złośliwej witryny.
Kampanie wyłudzania informacji — złośliwe podmioty często wykorzystują domenę podrzędną w kampaniach wyłudzających informacje. Ryzyko dotyczy zarówno złośliwych witryn internetowych, jak i rekordów MX, co może umożliwić podmiotom zagrożeń otrzymywanie wiadomości e-mail kierowanych do wiarygodnych domen podrzędnych skojarzonych z zaufanymi markami.
Dalsze zagrożenia — złośliwe witryny mogą służyć do eskalacji do innych klasycznych ataków, takich jak XSS, CSRF, obejście MECHANIZMU CORS i nie tylko.
Identyfikowanie zwisających wpisów DNS
Aby zidentyfikować wpisy DNS w organizacji, które mogą być zwisające, użyj narzędzi programu PowerShell hostowanych w usłudze GitHub firmy Microsoft "Get-DanglingDnsRecords".
To narzędzie ułatwia klientom platformy Azure wyświetlanie listy wszystkich domen za pomocą rekordu CNAME skojarzonego z istniejącym zasobem platformy Azure utworzonym w ramach subskrypcji lub dzierżaw.
Jeśli nazwy CNAM znajdują się w innych usługach DNS i wskazują zasoby platformy Azure, podaj nazwy CNAM w pliku wejściowym do narzędzia.
Narzędzie obsługuje zasoby platformy Azure wymienione w poniższej tabeli. Narzędzie wyodrębnia lub przyjmuje jako dane wejściowe wszystkie rekordy CAM dzierżawy.
Usługa | Typ | FQDNproperty | Przykład |
---|---|---|---|
Azure Front Door | microsoft.network/frontdoors | properties.cName | abc.azurefd.net |
Azure Blob Storage | microsoft.storage/storageaccounts | properties.primaryEndpoints.blob | abc.blob.core.windows.net |
Azure CDN | microsoft.cdn/profiles/endpoints | properties.hostName | abc.azureedge.net |
Publiczne adresy IP | microsoft.network/publicipaddresses | properties.dnsSettings.fqdn | abc.EastUs.cloudapp.azure.com |
Azure Traffic Manager | microsoft.network/trafficmanagerprofiles | properties.dnsConfig.fqdn | abc.trafficmanager.net |
Azure Container Instance | microsoft.containerinstance/containergroups | properties.ipAddress.fqdn | abc.EastUs.azurecontainer.io |
Usługa Azure API Management | microsoft.apimanagement/service | properties.hostnameConfigurations.hostName | abc.azure-api.net |
Azure App Service | microsoft.web/sites | properties.defaultHostName | abc.azurewebsites.net |
usługa aplikacja systemu Azure — miejsca | microsoft.web/sites/slots | properties.defaultHostName | abc-def.azurewebsites.net |
Wymagania wstępne
Uruchom zapytanie jako użytkownik, który ma:
- co najmniej dostęp na poziomie czytelnika do subskrypcji platformy Azure
- dostęp do odczytu do grafu zasobów platformy Azure
Jeśli jesteś administratorem globalnym dzierżawy organizacji, postępuj zgodnie ze wskazówkami w temacie Podnoszenie poziomu dostępu do zarządzania wszystkimi subskrypcjami platformy Azure i grupami zarządzania, aby uzyskać dostęp do wszystkich subskrypcji organizacji
Napiwek
Usługa Azure Resource Graph ma limity ograniczania przepustowości i stronicowania, które należy wziąć pod uwagę, jeśli masz duże środowisko platformy Azure.
Dowiedz się więcej na temat pracy z dużymi zestawami danych zasobów platformy Azure.
Narzędzie używa przetwarzania wsadowego subskrypcji, aby uniknąć tych ograniczeń.
Uruchamianie skryptu
Dowiedz się więcej na temat skryptu programu PowerShell, Get-DanglingDnsRecords.ps1 i pobierz go z usługi GitHub: https://aka.ms/Get-DanglingDnsRecords.
Korygowanie zwisających wpisów DNS
Przejrzyj strefy DNS i zidentyfikuj rekordy CNAME, które są zwisające lub przejęte. Jeśli domeny podrzędne są uznane za zwisające lub zostały przejęte, usuń poddomeny podatne na zagrożenia i zniweluj ryzyko, wykonując następujące kroki:
W strefie DNS usuń wszystkie rekordy CNAME wskazujące nazwy FQDN zasobów, które nie są już aprowizowane.
Aby umożliwić kierowanie ruchu do zasobów w kontrolce, należy aprowizować więcej zasobów przy użyciu nazw FQDN określonych w rekordach CNAME poddomen zwisanych.
Przejrzyj kod aplikacji, aby uzyskać odwołania do określonych domen podrzędnych i zaktualizuj wszelkie nieprawidłowe lub nieaktualne odwołania do domen podrzędnych.
Sprawdź, czy wystąpiły jakiekolwiek naruszenia zabezpieczeń i podejmij działania zgodnie z procedurami reagowania na zdarzenia w organizacji. Porady i najlepsze rozwiązania dotyczące badania:
Jeśli logika aplikacji powoduje wysłanie wpisów tajnych, takich jak poświadczenia protokołu OAuth, do zwisających domen podrzędnych lub jeśli informacje poufne dotyczące prywatności są przesyłane do tych poddomen, istnieje możliwość ujawnienia tych danych osobom trzecim.
Dowiedz się, dlaczego rekord CNAME nie został usunięty ze strefy DNS, gdy zasób został anulowany i wykonaj kroki, aby upewnić się, że rekordy DNS są odpowiednio aktualizowane, gdy zasoby platformy Azure zostaną anulowane w przyszłości.
Zapobieganie zwisaniu wpisów DNS
Zapewnienie, że organizacja wdrożyła procesy, aby zapobiec zwisaniu wpisów DNS, a wynikowe przejęcie poddomeny jest kluczową częścią programu zabezpieczeń.
Niektóre usługi platformy Azure oferują funkcje ułatwiające tworzenie środków zapobiegawczych i zostały szczegółowo opisane poniżej. Inne metody zapobiegania temu problemowi należy ustanowić za pomocą najlepszych rozwiązań organizacji lub standardowych procedur operacyjnych.
Włączanie usługi Microsoft Defender dla usługi App Service
Zintegrowana platforma ochrony obciążeń w chmurze (CWPP) firmy Microsoft Defender dla Chmury oferuje szereg planów ochrony zasobów i obciążeń platformy Azure, rozwiązań hybrydowych i wielochmurowych.
Plan usługi Microsoft Defender for App Service obejmuje zwisające wykrywanie DNS. Po włączeniu tego planu będziesz otrzymywać alerty zabezpieczeń, jeśli zlikwidowasz witrynę internetową usługi App Service, ale nie usuniesz jej domeny niestandardowej z rejestratora DNS.
Microsoft Defender dla Chmury zwisająca ochrona DNS jest dostępna, czy domeny są zarządzane za pomocą usługi Azure DNS, czy zewnętrznego rejestratora domen i mają zastosowanie do usługi App Service w systemach Windows i Linux.
Dowiedz się więcej o tym i innych zaletach tego planu usługi Microsoft Defender w temacie Wprowadzenie do usługi Microsoft Defender dla usługi App Service.
Używanie rekordów aliasu usługi Azure DNS
Rekordy aliasów usługi Azure DNS mogą zapobiec zwisaniu odwołań przez sprzężenie cyklu życia rekordu DNS z zasobem platformy Azure. Rozważmy na przykład rekord DNS, który jest kwalifikowany jako rekord aliasu, aby wskazać publiczny adres IP lub profil usługi Traffic Manager. Jeśli usuniesz te zasoby bazowe, rekord aliasu DNS stanie się pustym zestawem rekordów. Nie odwołuje się już do usuniętego zasobu. Należy pamiętać, że istnieją ograniczenia dotyczące tego, co można chronić za pomocą rekordów aliasów. Obecnie lista jest ograniczona do następujących elementów:
- Azure Front Door
- Profile usługi Traffic Manager
- Punkty końcowe usługi Azure Content Delivery Network (CDN)
- Publiczne adresy IP
Pomimo obecnie ograniczonych ofert usług zalecamy używanie rekordów aliasów do obrony przed przejęciem poddomeny, jeśli to możliwe.
Dowiedz się więcej o możliwościach rekordów aliasów usługi Azure DNS.
Używanie weryfikacji domeny niestandardowej usługi aplikacja systemu Azure Service
Podczas tworzenia wpisów DNS dla usługi aplikacja systemu Azure utwórz identyfikator asuid.{ rekord TXT poddomeny} z identyfikatorem weryfikacji domeny. Jeśli taki rekord TXT nie istnieje, żadna inna subskrypcja platformy Azure nie może zweryfikować domeny niestandardowej, która jest, przejmie ją.
Te rekordy nie uniemożliwiają utworzeniu usługi aplikacja systemu Azure o takiej samej nazwie, która znajduje się we wpisie CNAME. Bez możliwości udowodnienia własności nazwy domeny aktorzy zagrożeń nie mogą odbierać ruchu ani kontrolować zawartości.
Kompilowanie i automatyzowanie procesów w celu ograniczenia zagrożenia
Często należy do deweloperów i zespołów operacyjnych, aby uruchamiać procesy oczyszczania, aby uniknąć zwisających zagrożeń DNS. Poniższe rozwiązania pomogą zapewnić, że Twoja organizacja nie cierpi na to zagrożenie.
Tworzenie procedur zapobiegania:
Poinformuj deweloperów aplikacji o przekierowywanie adresów za każdym razem, gdy usuwają zasoby.
Umieść pozycję "Usuń wpis DNS" na liście wymaganych testów podczas likwidowania usługi.
Umieść blokady usuwania na wszystkich zasobach , które mają niestandardowy wpis DNS. Blokada usuwania służy jako wskaźnik, że mapowanie musi zostać usunięte przed anulowaniem aprowizacji zasobu. Takie środki mogą działać tylko w połączeniu z wewnętrznymi programami edukacyjnymi.
Tworzenie procedur odnajdywania:
Regularnie przeglądaj rekordy DNS, aby upewnić się, że wszystkie poddomeny są mapowane na zasoby platformy Azure, które:
- Istnieje — odpytywanie stref DNS dla zasobów wskazujących na poddomeny platformy Azure, takie jak *.azurewebsites.net lub *.cloudapp.azure.com (zobacz listę odwołań domen platformy Azure).
- Jesteś właścicielem — upewnij się, że jesteś właścicielem wszystkich zasobów, dla których są kierowane poddomeny DNS.
Zachowaj katalog usług punktów końcowych w pełni kwalifikowanej nazwy domeny (FQDN) platformy Azure i właścicieli aplikacji. Aby skompilować katalog usług, uruchom następujący skrypt zapytania usługi Azure Resource Graph. Ten skrypt projektuje informacje o punkcie końcowym nazwy FQDN zasobów, do których masz dostęp, i wyświetla je w pliku CSV. Jeśli masz dostęp do wszystkich subskrypcji dzierżawy, skrypt uwzględnia wszystkie te subskrypcje, jak pokazano w poniższym przykładowym skrypcie. Aby ograniczyć wyniki do określonego zestawu subskrypcji, edytuj skrypt, jak pokazano.
Tworzenie procedur korygowania:
- Po znalezieniu zwisanych wpisów DNS zespół musi zbadać, czy wystąpiły jakiekolwiek naruszenia zabezpieczeń.
- Sprawdź, dlaczego adres nie został przekierowany, gdy zasób został zlikwidowany.
- Usuń rekord DNS, jeśli nie jest już używany lub wskaż go do poprawnego zasobu platformy Azure (FQDN) należącego do organizacji.
Czyszczenie wskaźników DNS lub ponowne oświadczenia DNS
Po usunięciu klasycznego zasobu usługi w chmurze odpowiedni system DNS jest zarezerwowany zgodnie z zasadami usługi Azure DNS. W okresie rezerwacji ponowne użycie systemu DNS będzie zabronione z wyjątkiem subskrypcji należących do dzierżawy firmy Microsoft Entra subskrypcji będącej pierwotnie właścicielem systemu DNS. Po wygaśnięciu rezerwacji usługa DNS będzie bezpłatnie przejmowana przez dowolną subskrypcję. Biorąc rezerwacje DNS, klient jest zapewniany jakiś czas do 1) oczyścić wszystkie skojarzenia/wskaźniki do powiedział DNS lub 2) ponowne oświadczenie DNS na platformie Azure. Zaleca się usunięcie niechcianych wpisów DNS najwcześniej. Nazwę DNS zarezerwowaną można uzyskać, dołączając nazwę usługi w chmurze do strefy DNS dla tej chmury.
- Publiczne — cloudapp.net
- Mooncake — chinacloudapp.cn
- Fairfax - usgovcloudapp.net
- BlackForest — azurecloudapp.de
Na przykład hostowana usługa w publicznej nazwie "test" będzie miała system DNS "test.cloudapp.net"
Przykład: Subskrypcja "A" i subskrypcja "B" to jedyne subskrypcje należące do dzierżawy "AB" firmy Microsoft. Subskrypcja "A" zawiera klasyczną usługę w chmurze "test" o nazwie DNS "test.cloudapp.net". Po usunięciu usługi w chmurze rezerwacja jest wykonywana w nazwie DNS "test.cloudapp.net". W okresie rezerwacji tylko subskrypcja "A" lub subskrypcja "B" będzie mogła podać nazwę DNS "test.cloudapp.net", tworząc klasyczną usługę w chmurze o nazwie "test". Żadne inne subskrypcje nie będą mogły jej ubiegać. Po okresie rezerwacji każda subskrypcja na platformie Azure może teraz ubiegać się o "test.cloudapp.net".
Następne kroki
Aby dowiedzieć się więcej o powiązanych usługach i funkcjach platformy Azure, których można użyć do obrony przed przejęciem poddomeny, zobacz następujące strony.
Włącz usługę Microsoft Defender for App Service — aby otrzymywać alerty podczas wykrywania wpisów DNS
Zapobieganie zwisaniu rekordów DNS za pomocą usługi Azure DNS