He pasado un poco de tiempo investigando este tema y parece que no puedo encontrar una respuesta exacta, así que estoy bastante seguro de que no es un duplicado, y aunque mi pregunta se basa en una necesidad de seguridad, creo que todavía es seguro pregunte aquí pero avíseme si necesito moverlo a la comunidad de seguridad.
Esencialmente, ¿las consultas DNS alguna vez usan TCP (si es así, ¿qué escenario podría ocurrir esto?) De nuevo, solo estoy hablando de consultas. ¿Es posible que viajen a través de TCP? Si los dominios solo pueden tener un máximo de 253 bytes de longitud, y los paquetes UDP pueden ser tan grandes como 512 bytes, ¿las consultas no saldrán siempre como UDP? No pensé que una consulta resoluble pudiera ser lo suficientemente grande como para requerir el uso de TCP. Si un servidor DNS alguna vez recibió una solicitud de un dominio de más de 253 bytes, ¿el servidor lo descartaría / no intentaría resolverlo? Estoy seguro de que he hecho algunas suposiciones falsas aquí.
Por algún contexto, estoy trabajando con el grupo de seguridad para incorporar consultas DNS en su herramienta de monitoreo de seguridad, y por varias razones hemos decidido capturar este tráfico a través de la captura de paquetes estándar en servidores DNS y controladores de dominio. El requisito principal es capturar todas las consultas DNS para que puedan identificar qué cliente intentó resolver un dominio determinado. Según este requisito, no nos preocupa capturar respuestas DNS u otro tipo de tráfico, como transferencias de zona, lo que también se debe al hecho de que debemos limitar el volumen de registro tanto como sea posible. Como tal, estamos planeando capturar solo consultas DNS destinadas al servidor DNS y enviadas a través de UDP. Para más contexto (tipo de pregunta que se arrastra aquí), ahora se ha mencionado que podríamos necesitar expandir la seguridad ' s visibilidad para que puedan monitorear la actividad, como canales encubiertos que se ejecutan a través de DNS (lo que presentaría la necesidad de capturar también las respuestas de DNS y, posteriormente, el tráfico TCP). Pero incluso en ese tipo de escenario, pensé que cualquier tráfico DNS saliente sería en forma de búsquedas / consultas, y que siempre se realizarían a través de UDP, incluso desde una fuente maliciosa (debido a mi razonamiento en el primer párrafo). Entonces esto trae algunas preguntas adicionales:
¿No estaríamos al menos capturando la mitad de la conversación con el enfoque que describí? ¿O un cliente enviaría tráfico DNS que no sea en forma de consulta? (tal vez como algún tipo de respuesta a la respuesta de un servidor DNS, y tal vez termine saliendo por TCP)
¿Se pueden modificar las consultas DNS para usar TCP? ¿Un servidor DNS aceptaría y respondería a una consulta DNS que venga por TCP?
No estoy seguro de si es relevante, pero limitamos las solicitudes de DNS a servidores DNS autorizados y bloqueamos el resto del tráfico saliente a través del puerto 53. Definitivamente soy un novato, así que lamento si mi pregunta no cumple, y hágamelo saber Cómo debería modificar.