Ho trascorso un po 'di tempo a cercare questo argomento e non riesco a trovare una risposta esatta, quindi sono abbastanza sicuro che non sia un duplicato e, sebbene la mia domanda sia basata su un'esigenza di sicurezza, penso che sia ancora sicuro chiedi qui, ma fammi sapere se devo spostarlo nella comunità della sicurezza.
In sostanza, le query DNS usano mai TCP (in tal caso, quale scenario potrebbe verificarsi)? Ancora una volta, sto solo parlando di domande. È possibile che viaggino su TCP? Se i domini possono avere una lunghezza massima di 253 byte e i pacchetti UDP possono arrivare a 512 byte, le query non verranno sempre inviate come UDP? Non pensavo che una query risolvibile potesse essere abbastanza grande da richiedere l'uso del TCP. Se un server DNS avesse mai ricevuto una richiesta per un dominio di dimensioni superiori a 253 byte, il server lo avrebbe eliminato / non avrebbe provato a risolverlo? Sono certo di aver fatto alcune ipotesi false qui.
Per alcuni contesti, sto lavorando con il gruppo di sicurezza per integrare le query DNS nel loro strumento di monitoraggio della sicurezza e per vari motivi abbiamo deciso di acquisire questo traffico tramite l'acquisizione di pacchetti standard su server DNS e controller di dominio. Il requisito fondamentale è acquisire tutte le query DNS in modo che possano identificare quale client ha tentato di risolvere un determinato dominio. Sulla base di questo requisito, non ci occupiamo di acquisire risposte DNS o altri tipi di traffico come i trasferimenti di zona, il che dipende anche dal fatto che dobbiamo limitare il volume dei log il più possibile. Pertanto, stiamo pianificando di acquisire solo query DNS destinate al server DNS e inviate tramite UDP. Per più contesto (tipo di ambito di domande che si insinua qui), ora è stato sollevato il fatto che potremmo aver bisogno di espandere la sicurezza visibilità in modo che possano monitorare attività come i canali nascosti in esecuzione su DNS (il che presenterebbe la necessità di acquisire anche le risposte DNS, e successivamente il traffico TCP). Ma anche in quel tipo di scenario, ho pensato che qualsiasi traffico DNS in uscita sarebbe stato sotto forma di ricerche / query e che questi sarebbero sempre stati su UDP, anche se da una fonte malevola (a causa del mio ragionamento nel primo paragrafo). Quindi questo porta ad alcune domande aggiuntive:
Non avremmo almeno catturato metà della conversazione con l'approccio che ho delineato? O un client invierebbe mai traffico DNS che non ha la forma di una query? (forse come una sorta di risposta alla risposta di un server DNS, e forse finisce per uscire su TCP)
Le query DNS possono essere modificate per utilizzare TCP? Un server DNS accetterebbe e risponderebbe a una query DNS proveniente da TCP?
Non sono sicuro che sia pertinente, ma limitiamo le richieste DNS ai server DNS autorizzati e blocchiamo tutto il traffico in uscita sulla porta 53. Sono sicuramente un novellino, quindi mi dispiace se la mia domanda non è conforme e fammi sapere come dovrei modificare.