Nou atac SAD DNS per inserir dades falses a la memòria cau DNS

Un equip d'investigadors de la Universitat de Califòrnia, Riverside, ha publicat una nova variant de l'atac SAD DNS (CVE-2021-20322) que funciona malgrat les proteccions agregades l'any passat per bloquejar la vulnerabilitat CVE-2020-25705. El nou mètode és generalment similar a la vulnerabilitat de l'any passat i només difereix en l'ús d'un tipus diferent de paquets ICMP per comprovar els ports UDP actius. L'atac proposat permet substituir dades fictícies a la memòria cau del servidor DNS, que es pot utilitzar per substituir l'adreça IP d'un domini arbitrari a la memòria cau i redirigir les sol·licituds al domini al servidor de l'atacant.

El mètode proposat només funciona a la pila de xarxa de Linux a causa de la seva connexió amb les peculiaritats del mecanisme de processament de paquets ICMP a Linux, que actua com a font de fuga de dades que simplifica la determinació del número de port UDP utilitzat pel servidor per enviar un petició externa. Els canvis que bloquegen la filtració d'informació es van adoptar al nucli de Linux a finals d'agost (la correcció es va incloure al nucli 5.15 i les actualitzacions de setembre a les branques LTS del nucli). La solució es redueix a canviar a l'ús de l'algoritme hash SipHash a les memòria cau de xarxa en lloc de Jenkins Hash. L'estat de correcció de la vulnerabilitat a les distribucions es pot avaluar a aquestes pàgines: Debian, RHEL, Fedora, SUSE, Ubuntu.

Segons els investigadors que van identificar el problema, al voltant del 38% dels solucionadors oberts a la xarxa són vulnerables, inclosos els serveis DNS populars com OpenDNS i Quad9 (9.9.9.9). Pel que fa al programari de servidor, es pot dur a terme un atac utilitzant paquets com BIND, Unbound i dnsmasq en un servidor Linux. El problema no apareix als servidors DNS que s'executen en sistemes Windows i BSD. Per dur a terme un atac amb èxit, cal utilitzar la suplantació d'IP, és a dir. cal que l'ISP de l'atacant no bloquegi paquets amb una adreça IP d'origen falsa.

Com a recordatori, l'atac SAD DNS passa per alt les proteccions afegides als servidors DNS per bloquejar el mètode clàssic d'enverinament de la memòria cau DNS proposat el 2008 per Dan Kaminsky. El mètode de Kaminsky manipula la petita mida del camp d'ID de consulta DNS, que només és de 16 bits. Per seleccionar l'identificador de transacció DNS correcte necessari per a la falsificació del nom d'amfitrió, n'hi ha prou amb enviar aproximadament 7000 sol·licituds i simular unes 140 mil respostes fictícias. L'atac es redueix a l'enviament d'un gran nombre de paquets amb un enllaç IP fictici i amb diferents identificadors de transacció DNS al resolutor DNS. Per evitar la memòria cau de la primera resposta, cada resposta ficticia conté un nom de domini lleugerament modificat (1.example.com, 2.example.com, 3.example.com, etc.).

Per protegir-se d'aquest tipus d'atac, els fabricants de servidors DNS van implementar una distribució aleatòria del nombre de ports de xarxa d'origen des dels quals s'envien les sol·licituds de resolució, que compensava la mida insuficient de l'identificador. Després d'implementar la protecció per enviar una resposta fictícia, a més de seleccionar un identificador de 16 bits, va ser necessari seleccionar un dels 64 mil ports, fet que va augmentar el nombre d'opcions de selecció a 2^32.

El mètode SAD DNS us permet simplificar radicalment la determinació del número de port de xarxa i reduir l'atac al mètode Kaminsky clàssic. Un atacant pot detectar l'accés a ports UDP actius i no utilitzats aprofitant la informació filtrada sobre l'activitat dels ports de xarxa quan processa paquets de resposta ICMP. El mètode ens permet reduir el nombre d'opcions de cerca en 4 ordres de magnitud: 2^16+2^16 en lloc de 2^32 (131_072 en lloc de 4_294_967_296). La filtració d'informació que us permet determinar ràpidament els ports UDP actius és causada per una fallada en el codi per processar paquets ICMP amb sol·licituds de fragmentació (marcador ICMP Fragmentation Needed) o redirecció (marcador de redirecció ICMP). L'enviament d'aquests paquets canvia l'estat de la memòria cau a la pila de xarxa, cosa que permet determinar, en funció de la resposta del servidor, quin port UDP està actiu i quin no.

Escenari d'atac: quan un resolutor DNS intenta resoldre un nom de domini, envia una consulta UDP al servidor DNS que serveix el domini. Mentre el resolutor està esperant una resposta, un atacant pot determinar ràpidament el número de port d'origen que s'ha utilitzat per enviar la sol·licitud i enviar-hi una resposta falsa, suplantant la identitat del servidor DNS que serveix el domini mitjançant la falsificació d'adreces IP. El solucionador de DNS emmagatzemarà a la memòria cau les dades enviades a la resposta falsa i durant un temps retornarà l'adreça IP substituïda per l'atacant per a totes les altres sol·licituds de DNS del nom de domini.

Font: opennet.ru

Afegeix comentari