Spędziłem trochę czasu na badaniu tego tematu i wydaje się, że nie mogę znaleźć dokładnej odpowiedzi, więc jestem całkiem pewien, że nie jest to duplikat, i chociaż moje pytanie opiera się na potrzebie bezpieczeństwa, myślę, że nadal jest bezpiecznie zapytaj tutaj, ale daj mi znać, czy muszę przenieść to do społeczności bezpieczeństwa.
Zasadniczo, czy zapytania DNS używają kiedykolwiek protokołu TCP (jeśli tak, to w jakim scenariuszu może się to zdarzyć)? Znów mówię tylko o zapytaniach. Czy mogą podróżować przez TCP? Jeśli domeny mogą mieć maksymalnie 253 bajty, a pakiety UDP mogą mieć nawet 512 bajtów, czy zapytania nie będą zawsze wychodzić jako UDP? Nie sądziłem, że możliwe do rozwiązania zapytanie może być wystarczająco duże, aby wymagać użycia TCP. Jeśli serwer DNS dostanie kiedykolwiek żądanie domeny większej niż 253 bajty, czy serwer go upuści / nie spróbuje go rozwiązać? Jestem pewien, że podjąłem tu fałszywe założenia.
W pewnym kontekście współpracuję z grupą bezpieczeństwa, aby wbudować zapytania DNS w ich narzędzie do monitorowania bezpieczeństwa iz różnych powodów zdecydowaliśmy, że przechwycimy ten ruch poprzez standardowe przechwytywanie pakietów na serwerach DNS i kontrolerach domen. Podstawowym wymaganiem jest przechwycenie wszystkich zapytań DNS, aby mogli zidentyfikować, który klient próbował rozwiązać daną domenę. W oparciu o ten wymóg nie zajmujemy się przechwytywaniem odpowiedzi DNS lub innego ruchu, takiego jak transfery stref, co wynika również z faktu, że musimy maksymalnie ograniczyć objętość dziennika. W związku z tym planujemy przechwytywać tylko zapytania DNS przeznaczone dla serwera DNS i wysyłane przez UDP. Aby uzyskać więcej kontekstu (rodzaj zakradającego się tu zakresu pytań), teraz podniesiono, że możemy potrzebować rozszerzenia bezpieczeństwa ” widzialność, aby mogli monitorować aktywność, np. ukryte kanały działające w systemie DNS (co oznaczałoby konieczność przechwytywania również odpowiedzi DNS, a następnie ruchu TCP). Ale nawet w tego rodzaju scenariuszu myślałem, że wszelki wychodzący ruch DNS będzie miał postać zapytań / zapytań i że zawsze będą one przekraczały UDP, nawet jeśli pochodzą ze złośliwego źródła (z powodu mojego rozumowania w pierwszym akapicie). Pojawia się więc kilka dodatkowych pytań:
Czy nie uchwycilibyśmy co najmniej połowy rozmowy z podejściem, które przedstawiłem? A może klient kiedykolwiek wyśle ruch DNS, który nie jest w formie zapytania? (może jak odpowiedź na odpowiedź serwera DNS, a może kończy się to przez TCP)
Czy zapytania DNS można modyfikować, aby używały protokołu TCP? Czy serwer DNS zaakceptuje i odpowie na zapytanie DNS przychodzące przez TCP?
Nie jestem pewien, czy jest to istotne, ale ograniczamy żądania DNS do autoryzowanych serwerów DNS i blokujemy cały ruch wychodzący przez port 53. Jestem zdecydowanie debiutantem, więc przepraszam, jeśli moje pytanie jest niezgodne, i daj mi znać jak powinienem zmodyfikować.