Co się stanie, gdy TTL zostanie zepsute w rekordzie DNS?

13

Co się stanie, gdy ktoś uzyska dostęp do Twojej kontroli DNS i ustawi TTL na 100 lat w Twojej domenie, wskazując jej adres IP na nieznaną stronę?

(i odkrywasz to oczywiście za późno)

Dirk Boer
źródło
10
Facet za kierownicą zostaje zwolniony.
Xavier Lucas,
5
Krótka uwaga: maksymalna wartość TTL wynosi 2 ^ 31-1, czyli nieco ponad 68 lat :) Patrz RFC 2181 .
Sven

Odpowiedzi:

21

Ryan zapewnił doskonałą odpowiedź na jedną interpretację twojego pytania. Biorąc jednak pod uwagę naszą grupę docelową i sytuację osób, które najprawdopodobniej natkną się na pytanie, odpowiem na inną.

Co robi firma, gdy zły TTL wydostaje się na wolność?

Masz tutaj kilka opcji. Przede wszystkim jednak musisz zidentyfikować wektor problemu i go wyeliminować. Próba powstrzymania szkód jest bezcelowa, gdy nie masz kontroli nad powtarzającym się problemem.

  1. Czekać. Jeśli nie jest to kluczowy rekord, prawdopodobnie możesz go poczekać. Jak ujął Ryan, „maksymalne szkody” nie wynoszą 68 lat, ale w praktyce najprawdopodobniej wynoszą 7 dni. Jest to najczęstsza wartość domyślna maksymalnego czasu życia dodatniej pozycji pamięci podręcznej (BIND, JunOS itp.). Nawet w przypadkach, gdy nie jest to dokładne, można mieć nadzieję, że serwer otrzymuje rutynowe aktualizacje zabezpieczeń, które wymuszają ponowne uruchomienie procesu. Mówiąc jako operator kilku dużych klastrów, nie wydaje mi się prawdopodobne, aby MSO celowo ustawiłoby to na większą wartość: służy jedynie do generowania większej liczby zapytań zewnętrznych (których nienawidzimy). Być może będziesz musiał przejść do kolejnych kroków dla firm używających mniej popularnego oprogramowania lub operatorów, którzy siebie nienawidzą.
  2. Drażnią operatorów pamięci podręcznej DNS. Jeśli musisz jak najszybciej wyczyścić zapis z pamięci podręcznej, jedynym prawdziwym wyborem jest nawiązanie kontaktu z największymi dostawcami rekurencyjnych DNS, o których możesz pomyśleć i pójść dalej. Niektóre z tych firm prawdopodobnie Cię zignorują: albo uważają, że Twoja firma jest zbyt mała, aby klienci mogli się nią przejmować, albo wprowadzają własne zasady czyszczenia pamięci podręcznej, aby zminimalizować liczbę wezwań wsparcia, z którymi muszą sobie poradzić. W tym drugim przypadku prawdopodobnie wzruszą ramionami i pozwolą, by problem sam się zajął w wyznaczonym czasie. W końcu twoja firma sama stworzyła ten problem.
  3. Zachęć klientów ISP do denerwowania ich za Ciebie. Jeśli minęło kilka dni, a duży dostawca usług internetowych ignoruje zapisany w pamięci podręcznej rekord, postaraj się, aby jeden z jego klientów złożył skargę i wygenerował bilet wewnętrzny dla tej firmy. Jest to dla nich trudniejsze do zignorowania, ale nie przyniesie ci żadnych korzyści dla ich zespołu operacyjnego, ponieważ z ich perspektywy zrobiłeś to sobie. Jeśli jest to powtarzające się zdarzenie, prawdopodobnie zaczną anulować te bilety tylko po to, by Cię na złość.
  4. Poradzić swoim partnerom, aby pominęli rekord DNS. Jeśli jest to rekord DNS o znaczeniu krytycznym, z którego korzystają Twoi partnerzy i żadna z powyższych opcji nie jest akceptowalna (tj. Z minuty na minutę zmniejszasz przychody), Twoja firma nie ma innego wyjścia, jak współpracować ze swoimi partnerami w celu obejścia problemu. Jeśli nie kontrolują swojej lokalnej pamięci podręcznej, zwykle dzieje się tak poprzez wstawienie wpisów do tabeli hostów w systemach, których to dotyczy, ponieważ pozwala to uniknąć konieczności modyfikacji programów korzystających z rekordu DNS. Jest to opłacalne tylko wtedy, gdy utrata dochodów jest powiązana z kilkoma wybranymi firmami korzystającymi z danych. We wszystkich innych przypadkach utkniesz z pierwszymi trzema opcjami.
Andrew B.
źródło
3
Jako przykład dla opcji 2 Google Publiczny DNS ma tę stronę, aby wyczyścić pamięć podręczną.
Bardi Harborow
16

Cóż, przede wszystkim instrukcja konfiguracji Bind Patrzę na stany, że TTL jest 32-bitową liczbą całkowitą ze znakiem, wyrażoną w sekundach, co daje teoretyczne maksimum 2 ^ 31. To mówi

Prawidłowe wartości TTL mieszczą się w zakresie 0–2147483647 sekund.

Lub około 68 lat. Prawdopodobnie więc nie możesz ustawić go na 100 lat.

Powiedzmy, że ustawiłeś na 68 lat. Jest całkiem jasne, co by się stało. Rozwiązania DNS, które przestrzegały wyjątkowo długiego czasu TTL w twoich rekordach DNS, buforowałyby je tak długo, jak mogłyby. Niektóre programy tłumaczące DNS w ogóle nie respektują TTL i po prostu wdrażają własne zasady buforowania, jak chcą.

Powodem, dla którego nie możemy podać pojedynczej liczby maksymalnej, jest to, że istnieje wiele różnych implementacji DNS tworzonych przez wielu różnych dostawców i wszyscy używają nieco innych zmiennych. Na przykład serwer DNS działający w systemie Juniper JunOS będzie trwał do 604800 sekund lub 7 dni w TTL.

Ryan Ries
źródło
To znaczy, że kiedy ktoś włamie się na kontrolę DNS firmy X, ustawia ją na 68 lat i przesyła adres IP do pornhub, tak naprawdę zniszczył nazwę domeny „na zawsze”? : X
Dirk Boer
11
Zakładając, że problem został rozwiązany, jest mało prawdopodobne, aby serwery DNS typu downstream działały 68 lat bez wyczyszczenia pamięci podręcznej, na przykład poprzez ponowne uruchomienie. Prawdopodobne jest również, że przeliczniki DNS na niższych szczeblach wdrożą swój własny pomysł na „MAXTTL”, który nakłada bardziej rozsądne ograniczenie na otrzymane TTL, takie jak 3 dni zamiast 68 lat. Przeczytaj RFC 2308 jako przykład tego, o czym mówię.
Ryan Ries,
4
W odniesieniu do BIND ma domyślny limit 7 dni. max-cache-ttl: „Ustawia maksymalny czas, przez który serwer będzie buforował zwykłe (pozytywne) odpowiedzi. Domyślnie jest to tydzień (7 dni).”
Håkan Lindqvist