• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • Inicio
  • Auditoría
  • Eventos
  • Formación
  • General
  • Malware
  • Vulnerabilidades
  • Un blog de

Una al Día

Boletín de noticias de Seguridad Informática ofrecido por Hispasec

You are here: Home / Vulnerabilidades / Deficiencia en el algoritmo SRTT acelera el envenenamiento de caché DNS en BIND 9

Deficiencia en el algoritmo SRTT acelera el envenenamiento de caché DNS en BIND 9

19 agosto, 2013 Por Hispasec 1 Comment

Los investigadores Jonathan Kalechstein, Gabi Nakibly y Roee Hay han presentado en la conferencia USENIX WOOT 13 de Washington un nuevo método para forzar en BIND la elección de servidor de nombres manipulando remotamente los valores de la caché SRTT. Esto podría acelerar los ataques de envenenamiento de caché DNS, dirigiendo las consultas a un servidor o red controlado por el atacante. ISC anuncia que el algoritmo será reimplementado para subsanar el fallo.
El servidor de nombres BIND es uno de los más usados en Internet. Creado en 1988, en la universidad de Berkeley, actualmente es desarrollado por el ISC (Internet System Consortium). BIND tiene licencia BSD y se encuentra disponible para una amplia gama de sistemas tanto Unix como Microsoft Windows. 

Envenamiento de caché DNS
Los ataques de envenenamiento de caché DNS tratan de engañar al resolvedor de nombres de dominio para que guarde un registro de recursos incorrectos o inválidos. De esta forma, cuando al resolvedor se le pide la IPde cierto dominio que se ha «envenenado«, consultará al registro malicioso, que lo redirigirá a una IP controlada por el atacante. Este tipo de ataques pueden ser usados para pharming, o la instalación de malware si el atacante está simulando ser, por ejemplo, un servidor de actualizaciones de software.
¿Cómo llega el registro falso a la cache del DNS? Normalmente, cuando un resolvedor recursivo (típico, por ejemplo, en los ISP) recibe una consulta de un usuario, este la busca en su caché. Si no la encuentra, consulta a un servidor de nombres autoritativo del dominio. Un atacante podría, antes de que el servidor legítimo respondiera, suplantarlo y enviar un registro malicioso, aprovechando que la primera respuesta en llegar es la que se considera válida. El registro se almacenaría en la cache y es servido a los usuarios.
Una de las soluciones a este problema es acompañar la consulta con ciertos valores, pseudo-aleatorios conocidos por el resolvedor. Si la respuesta no contiene esos mismos valores, es descartada. Se utilizan el identificador de la transacción (TXID), el puerto UDP de origen y la IPdel servidor de nombres al que se va a hacer dicha petición.
El problema de dar con estos valores pseudo-aleatorios para construir la respuesta falsa da lugar a enfoques llamados «blind» o ciegos, por el hecho de que el atacante no los conoce de antemano. Sin embargo, en el pasado han aparecido varias vulnerabilidades en este sistema.
Aprovechando el diseño del algoritmo SRTT
Uno de los valores necesarios para que una respuesta DNS sea aceptada es, como hemos dicho, las IP del servidor de nombres que la envía. Esta debe ser la misma a la que se ha enviado la petición. De no ser así será rechazada.
Es fácil para un atacante falsificar la IPde origen en una respuesta. Por ello, se utilizan soluciones como el SRTT para no hacerla previsible. El algoritmo Smoothed Round Trip Time (SRTT) elige un servidor de nombres a consultar entre un conjunto que el resolvedor almacena en la caché SRTT, compartida por todos los dominios. A cada una de estas IPs se le asocia un valor (basado en el RTT o Round Trip Time), que cambiará con el tiempo y el éxito de las consultas. El servidor que tenga un valor SRTT más bajo será el elegido para hacer la petición.
El ataque aprovecha una debilidad en el algoritmo SRTT que permite influir en la elección del servidor que será usado para resolver la consulta. Si el atacante tiene éxito conocerá de antemano uno de los valores usados para contrastar las respuestas.
Para forzar la elección de un servidor de nombres víctima, se decrementa artificialmente su puntuación SRTT hasta un valor arbitrario. De esta forma el resolvedor DNS lo elige para realizar la próxima petición del dominio del que es autoritativo, lo que permite al atacante conocer que servidor suplantar. Además, el servidor de nombres víctima (el que vamos a forzar) no recibe ninguna consulta durante el ataque, por lo que no puede detectarlo.
Para esto, el método utiliza las funciones Decay y Update del algoritmo. En la primera, al hacer una consulta a un servidor de nombres concreto, el valor SRTT del resto de servidores se reduce en un factor del 2%. Esto se hace para evitar que un servidor acabe acaparando todas las conexiones. La segunda actualiza el valor conforme a su historial (valor anterior) y la velocidad de respuesta.
Proceso de ataque
Dado un atacante tras un equipo, un conjunto de n de servidores de nombres no abiertos (servidores DNS que no permiten consultas sobre dominios de terceros) cualesquiera, y dos servidores de nombres autoritativos controlados por el (NS1 y NS2, aunque el segundo es opcional según el timeout del resolvedor). El primer paso es añadir estos últimos a la caché.
Para esto, se hace una consulta al servidor objetivo sobre cualquier dominio del que NS2 sea servidor autoritativo. Hay que tener en cuenta que NS2 debe tener menor latencia con el resolvedor que el servidor víctima, ya que queremos que tras la primera petición tenga menor puntuación que este (parte de la puntuación al actualizar es dada por el tiempo de espera). Esto nos servirá más adelante para parar la resolución recursiva antes de que el servidor víctima sea consultado.
Después, se consulta un dominio sobre el que nuestro servidor de apoyo, NS1, sea autoritativo. Este responderá delegando (desviando la consulta) sobre los n servidores no abiertos, NS2 y el propio servidor víctima.
Los n servidores no abiertos entrarán en la tabla SRTT con la puntuación más baja y se producirán n iteraciones. En cada iteración, se selecciona uno del conjunto, el de puntuación más baja, y se le envía la consulta. Al no conocer el dominio, recibirán una penalización en su valor SRTT.
A su vez, por cada iteración la función ‘Decay‘ reducirá la puntuación del resto de servidores en los que hemos delegado, entre ellos nuestro infiltrado, NS2, y el servidor víctima. Finalmente, se le envía la consulta a NS2, que responde satisfactoriamente.
El servidor víctima ha bajado su puntuación en cada iteración, pero no ha recibido penalización ni su valor SRTT se actualiza, ya que no ha llegado a ser consultado. Por tanto, habremos logrado reducir el valor SRTT de la victima en un ratio de 0.98^n+1. Con un conjunto de servidores no abiertos lo suficientemente grande, habremos logrado que su valor se sitúe por debajo del resto de servidores autoritativos para su zona Como la tabla SRTT es compartida entre dominios, la siguiente petición elegirá la victima para la consulta. Ya conocemos la IP y podríamos (en caso de no existir otras medidas) usarla para construir respuestas falsas.
Impacto
Hay que tener en cuenta que este enfoque no representa un ataque por si mismo, pero asiste a otros. Como consecuencia principal, acelera un posible ataque de envenenamiento de la caché del DNS. Ya que el atacante elimina uno de los valores que se deben averiguar para que la respuesta falsificada del atacante sea tomada por válida.
Por otro lado, si fuerza el tráfico por una ruta donde lo esté capturando mediante un ataque hombre en el medio puede ver las peticiones DNS, y por tanto los valores aleatorios de estas. Con estos valores, puede construir una respuesta y suplantar al servidor legítimo. Otra opción es forzar el tráfico DNS no hacia un servidor que controlemos, si no hacia uno sobre el que queramos realizar una denegación de servicio.
El fallo, que afecta a las versión 9 de BIND sea en configuración autoritativa, recursiva o híbrida, ya ha sido reconocido por ISC. El algoritmo será reimplementado en futuras versiones de BIND.
Como curiosidad, Roee Hay formó parte del equipo de IBM que hace un año descubrió que Android era vulnerable al envenenamiento de DNS.
(http://unaaldia.hispasec.com/2012/07/envenenamiento-dns-en-android-puede-ser.html)
Más información:
Subverting BIND’s SRTT Algorithm . Derandomizing NS Selection
https://www.usenix.org/system/files/conference/woot13/woot13-hay.pdf
Subverting BIND’s SRTT Algorithm: Derandomizing NS Selection [blog]
http://securityintelligence.com/subverting-binds-srtt-algorithm-derandomizing-ns-selection/
Francisco López

flopez@hispasec.com

Compártelo:

  • Twitter
  • Facebook
  • LinkedIn
  • Reddit
  • Telegram
  • WhatsApp

Publicaciones relacionadas

Filed Under: Vulnerabilidades

Reader Interactions

Comments

  1. Hiroki Protagonist says

    22 agosto, 2013 at 1:35 pm

    Tras leer esto me parece que SRTT debería ser simplemente un balanceador pero me preocupa que su verdadera función sea subsanar las deficiencias de DNS.

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Primary Sidebar

Buscador

Email Newsletter

Suscríbase y reciba Una al Día en su correo.

UADCAST

Populares de UAD

  • Nuevo 0-day en Google Chrome
  • Hackeado el foro ruso de cibercrimen Maza
  • FedexBanker: El nuevo troyano bancario para Android que utiliza tus paquetes para robarte las credenciales
  • Un bug permite "romper" el WhatsApp de todos los miembros de un grupo
  • Ruffle, emulador para Flash Player

Entradas recientes

  • Hackeado el foro ruso de cibercrimen Maza
  • Nuevo 0-day en Google Chrome
  • FedexBanker: El nuevo troyano bancario para Android que utiliza tus paquetes para robarte las credenciales
  • Descubiertos varios exploits «in-the-wild» basados en Spectre
  • Gootkit RAT utiliza SEO para distribuir malware
  • Descubiertas nuevas versiones del troyano bancario EventBot
  • Liberados parches de seguridad de Cisco que corrigen vulnerabilidades críticas y altas en varios de sus productos
  • Correo electrónico
  • Facebook
  • LinkedIn
  • RSS
  • Twitter

Footer

Una al Día

Una-al-día nació a raíz de un inocente comentario en un canal IRC hace casi 19 años. A través de los archivos, un lector curioso puede ver cómo ha cambiado (o no) la seguridad de la información desde entonces.

Entradas recientes

  • Hackeado el foro ruso de cibercrimen Maza
  • Nuevo 0-day en Google Chrome
  • FedexBanker: El nuevo troyano bancario para Android que utiliza tus paquetes para robarte las credenciales
  • Descubiertos varios exploits «in-the-wild» basados en Spectre
  • Gootkit RAT utiliza SEO para distribuir malware

Etiquetas

#bugbounty #ddos #sphinx 0-day 0-zay 0day 0v1ru$ 2FA 4g 5g 10kblaze 888 RAT accellion account hijack ace acrobat acrobat reader actualizacion Actualización actualizar adb address bar AdMaxim Adobe Adobe Bridge Adware Afeter Effects Agencia Tributaria agoda Agora Alemania Alexa Alien Aliznet alphabet Amadeus Amazingco Amazon amd among us Anatova Andr/Xgen2-CY Android Android lowcost androMut AngryPolarBearBug2 anonymous antivirus anubis any.run apache api apk app Apple Apple CVE Apple exploit apps APT apt-c-23 apt39 APT41 apt framework Aptoide apuestas archive_tar arp asp asus ata ataque Atlantis ATP attack Audio Australia autenticación Authentication bypass autodesk avaddon avira azure backdoor Baltimore ban bancario bancos bandook bank banker barcode scanner barra navegacion base de datos BBC BGP BIG-IP bill gates binary defense binaryedge bing biometrica biometría bios bird bitbucket bitcoin bitdefender blackhat bladabindi BLE bleedingtooth BLESA blink blockchain bluekeep blueleaks Bluetooth Bluetooth Low Energy bluez boca bof boletín booking bootstrap-sass borrado bot botnet bots Bot Tegram Brave breach brecha Brikerbot british airways bruteforce BSD bsides buffer overflow Bug Bug bounty bugbounty Bulgaria bypass C&C c2 C2C camaras seguridad cambridge camera Campaign canada cannabis canon capcom car carbanak carding ccleaner cctv CDN cd projekt CDRThief cem censura centurylink cerberus Certifados certificacion Certificates challenge Checkers checkpoint Check Point China chingari Chrome chromium CI Ciberataque Cibercrimen cibercriminal ciber delincuentes ciberdelincuentes ciberespionaje ciberguerra ciberseguridad cifrado cinnamon CISA Cisco Citrix clave privada cloud CloudCMS cloudfare cmd cms cng.sys code execution CoderWare coinhive ColdFusion comrat conferencia confidencial congreso congresos conti contraseñas Cookies copy-on-write Corea del Norte coronavirus covid Covid19 cow cpu Crack Credential-Stuffing CriptoCert criptografía criptomoneda Criptomonedas criptored critical Cross-Site Request Forgery CrowdStrike crypt32 cryptojacking Cryptolocker cryptominado cryptomonedas críticas CSP CSRF ctf customer support cve CVE-202-6109 CVE-2015-4670 CVE-2017-0199 CVE-2019-1619 CVE-2019-1620 CVE-2019-2633 CVE-2019-2638 CVE-2019-2725 CVE-2019-3719 CVE-2019-5096 CVE-2019-5544 CVE-2019-7838 CVE-2019-7839 CVE-2019-7840 CVE-2019-7845 CVE-2019-7850 CVE-2019-11043 CVE-2019-11510 CVE-2019-11707 CVE-2019-11932 CVE-2019-12268 CVE-2019-12592 cve-2019-12815 CVE-2019-12922 CVE-2019-14287 CVE-2019-14899 CVE-2019-15126 CVE-2019-15295 CVE-2019-15316 CVE-2019-16928 cve-2019-19519 cve-2019-19520 cve-2019-19521 CVE-2019-19522 CVE-2019-19639 CVE-2019-19743 CVE-2019-19781 CVE-2019–11396 CVE-2020-0601 CVE-2020-0796 CVE-2020-0915 CVE-2020-0916 CVE-2020-0986 cve-2020-13-50 CVE-2020-724 CVE-2020-1206 cve-2020-1530 cve-2020-1537 CVE-2020-2765 CVE-2020-3142 CVE-2020-3566 CVE-2020-3764 CVE-2020-3952 CVE-2020-3953 CVE-2020-3954 CVE-2020-3956 CVE-2020-6008 CVE-2020-6009 CVE-2020-6010 CVE-2020-6110 CVE-2020-7473 CVE-2020-7961 CVE-2020-8419 CVE-2020-8420\ CVE-2020-8421 cve-2020-8982 CVE-2020-8983 CVE-2020-10148 CVE-2020-11511 CVE-2020-11651 CVE-2020-12351 CVE-2020-12352 CVE-2020-14750 CVE-2020-15466 CVE-2020-25212 CVE-2020-25645 CVE-2020-28188 cve-2020-29491 cve-2020-29492 CVE-2021-1051 CVE-2021-3007 CVE-2021-3156 cvss CyberArk cyberataque cyberattack cyberpunk cyberpunk 2077 cylance CyrusOne código arbitrario D-Link Dark Halo DarkHotel darkirc dark markets darknet darkside darkweb dark web darpa DART Database data breach Data Center Network Manager data leak dataspii DB DCNM ddos ddosecrets Debian decrypter deepfake deep web defacement defcon defender defiant Dell Dell System Detect dell wyse demanda denegacion de servicio Denegación de servicio Denial of Service dependencias dereferencing devfest DHS digilocker digitalocean DigitalRevolution directory traversal disclosure discord Dispositivos IoT django Django Rest Framework DJI DNS DNS over HTTPS docker dockerhub dogecoin DoH doki dolphin dolphinattack donald trump Doogee BL7000 doorbell dos DoubleGun downgrade DrayTek drivers droga dropper drupal duplicado SIM duplicator DVMRP E-Business e-learning EA echobot ecommerce ecsc EDA Edge EEUU egregor ejecución de código ejecución de código arbitrario ekans ElasticSearch elecciones electronica elevacion de privilegios Elevación de privilegios elon musk emotet empire enisa ergegor eris loris error escalada escalada de privilegios ESET ESNI españa estados unidos Estafa esteganografia eternalblue Europa europol eventbot evento eventos Evernote Evernote Web Clipper evilcorp evilgnome Evilnum EvilQuest excel exim Experience Manager exploit extension extorsión exxpedia F5 faceapp Facebook Facebook leaks Facebook Messenger FakeSpy fallos fallout fancy bear Fast Flux fbi fedex fifa20 Filtración filtración de datos fingerprint finspy Firebase FireEye firefox Firefox Private Network Firefox Test Pilot Firewall firma digital flash Flash Player FlawedAmmy flipboard foreshadow formacion Forminator foros FOSSA fotos foxit pdf fpga Framemaker framework fraud Fraude FreakOut FSB fta ftc FTP fuerza bruta Fuga de información Fusion gadget GandCrab garmin gdg gdpr gehealtcare gem GHIDRA gif git github gmail GnuPG go GoAhead godaddy golang goldbrute goldenspy goo Google Google Analytics google app engine google chrome Google Docs Google Hangouts google nest google play googleplay Google Titan gootkit gosms gosmspro goznym gpu Grandoreiro grandstream graph great firewall gsm guacamole guildma hack hackeo hacker hacking hacktivist hardware hash Heap Overflow Heartbleed HEVC hiberus Hijacking hisilicon hispasec historia honda hospital hostinger hotelbeds hoteles hotels http httpd HTTPS huawei Hyper-V hyperv iBaby iBaby Monitor M6S IBM ICAR iCloud ico ie IGMP ilegal iLnkP2P iMessage impresoras india infection infinite loop Infiniti NCAR infosec injection innerSloth insider instagram intel intelligence Internet Explorer intezer labs in the wild Investigación Inyeción SQL IOC iomega iOS IOS XR iot iPad ipados iPhone iPod ipp iran isp Italia iterm2 ITG18 jabber jailbreak java javascript Jenkis JMT Trader joker joomla joomla! jquery js kaiji Karkoff karpersky kaspersky kde kde plasma Keecoo P11 keepass kernel Kernel Linux keyless keylogger kill-switch kindle Koodous Kr00k krebsonsecurity kubeflow kubernete kubernetes la 9 las vegas latinoamerica Lazarus leak Leaks LearnDash LearnPress lenovo Let'sEncrypt ley lfi LG libgcrypt libreoffice libssh licencias LifterLMS Line LinkedIn Linknat linux linux kernel linux mint liquid LMS loader lockbit logitech longwatch lookout lte luisiana Lukas Stefanko lxc M-Horse Pure 1 m1 Maas mac machete MacOS mac os macros magecart magento Mail malaga malspam malvertising malware malware macos apple Manipulación de ficheros market martes martes de parches marzo masmovil masslogger MATA matrix maze mdm mds Media Encoder Media File Jacking MediaTek medicina meldown meltdown MEMS menor mensajería instantánea meow MessageTap messenger metasploit Mi Browser Microsoft Microsoft Edge microsoft excel Microsoft Teams Microsoft Word mijia mikrotik minero mining Mint Browser mirai mit mitre mitron mobileiron modsecurity mod_copy monero MongoDB monitor Moodle MosaicRegressos Motorola mousejack Mozart Mozilla MQTT MSTIC ms word mukashi mySQL móvil NAC Nagios NanocoreRAT nas Navegador Tor nbip nca Nessus netcat Netgear Netlab360 netwalker NetWeaver NeverQuest nginx Nintendo nissan Nissan ASIST NjRAT Nnissan connect things node nordvpn NOTROBIN npm nsa NSACrypt NVIDIA ObjectInjection Obsolescencia programada oceanlotus OFAC Office office 365 oilrig okcupid omnibees omnirat OneDrive onion ONO ONTSI OpenBSD OpenOffice opensouthcode OpenSSH OpenSSL openSuSE openwrt Opera opsec Oracle origin orion oscomerce oscorp osi OS X OTRS outlok Outlook overflow owasp p30 package manager pakistan Paloalto parche parches password password checkup Passwords paswords Patch Tuesday path transversal Path Traversal patrón Payday paypal pdf pear pegasus pewdiepie PhantomNet Pharming Phishing phising Photoshop PHP php-fpm phpmyadmin Picreel piercer pila bluetooth PirateMatryoshka Pixel Play Store plugin Plugins plutotv Poc pod policia policykit policía polkit porn portabilidad PoS PostgreSQL powershell ppp Predator the Thief prensa Privacidad privacy privadas privesc privilege escalation privilegios ProCC ProffPoint proftpd Project Zero Promethium prosegur proxy prueba de concepto psg PsiXBot ptp puerto rico pulsesecure Pulse Secure putty pwn Pwn2Own PyRAT python python3 python 3.8.0 PyVil Qakbot Qbot QNAP QSnatch qualcomm QuickTime quora raas ragnar ragnar locker Ramsay Healt Care RAM scraping ramsonware rana rankmatch ransom ransomware rapid7 RAT RATs ratsnif razer rce rconfig rdp RDS realtek recaptcha reconocimiento facial red.es redes Red Hat red team relay Release relleno de contraseñas remote remote code execution Reporte retpoline retrohuinting revelación de información sensible RevengeHotels RevengeRAT reversing reversinglabs REvil Revocation ReVoLTE Rich Mirch rick-rolling rick astley ridl ring riot robo datos robo de cuenta robo de información root Rooted router routeros RTL8195A ruby RubyGems ruffle rumania Rusia rust rutas ryuk sack panic safari safe mode safety detective salto de restricciones saltstack SAML samsung sandbox SandboxEscaper Sangfor sap scam screensaver Secuestro SIM security security bypass Security Discovery Security Patch security update segmentation fault seguridad seguridad física selinux seo server servidor web sextorción sextorsion sha-1 ShadowPad SHAREit SHAttered Shell ShinyHunters shodan side-channel sigred Silence Silex Silkkitie sim simswapping SIM Swapping siri sistema interno Site Isolation skills skimming skype slack Smanager Smartbuilding Smartphone smartwa Smartwatch smb SMBGhost SMBleed smbv3 smishing sms SMTPD snake snapd Snatch SNI sodin Sodinokibi software libre solar Solarwinds Solorigate sonicwall sop sophos source code SourceFourge spam Spearphone spectre speculative spoofing spotify Spy spyware SQL SQL injection Squid ssh ssid ssl ssltrip ssrf stack overflow Stanislav steal stealer steam stop ransomware strandhogg strongpity studio code sudo Sudo apple suecia Sumbrust supercomputador SupportAssist surfingattack symantec symbotic SymCrypt sysinternals SysTech ta505 takeover talleres tarjetas Tarjetas de crédito tchap TCP/IP tcp sack teclado tecnología Telecom Telegram teletrabajo tenyearchallenge tesla tesoro The Community the great suspender ThemeGrill The North Face the witcher 3 thin client ThinOS Thoth thunderbird Thunderbolt ThunderSpy Tianfu Cup ticketmaster tiktok tik tok timbre timing attack Titan M Titan Security Key tls TMUI tmux Tokopedia tomcat tonedeaf tool TOR torbrowser Tor Browser Torisma torpedo TP-Link TraceTogether Trassion Treck Triada trickbot trojan TroubleGrabber troyano TrueBot trusteer rapport turlaapt tvOS twiiter Twitter typosquatting uad uad360 uad360 congreso malaga uam uber ubuntu UEFI ultrasonido uma unaalmes unauthorized access UNC Under the Breach unifying universidad unix Update updates url ursniff use-after-free user-after-free v8 valorant valuevault valve vault 7 vbulletin vcenter server VictoryGate videocamaras videoportero videos vietnam vim virus virustotal visa vishing Visual Studio VKworld Mix Plus vlc vmware VMware Cloud Foundation VMware ESXi vnc voice assistants voip VOS2009 VOS3000 voto vpn vt vulnera vulnerabilidad vulnerabilidades vulnerability Wacom waf wallet Wall Street Market wastedlocker watchOS wav web WebArx WebEx Weblogic Webmin webrtc web share api wechat welcart WhatsApp Wifi Win32k Windows Windows 10 windows defender windows phone Winnti winrar Wireshark wordfence WordPress WordpressTerror Workstation wpa2 wpa3 wroba wyze X.509 XCode xenmobile Xhelper xiaomi XML xmpp xmr XMRig xnu xor ddos XORpass xploit XSS xssi Yellow Pencil Yves Rocher zaeroday zdnet zendesk Zero-Day zero click zero day zerodium zeus zombieload ZoneAlarm zoom zyxel

Copyright © 2021 · Hispasec