Solución a #EquinoxRoom111: ¿Te atreves a descifrar estos archivos secuestrados?ElevenPaths 8 abril, 2019 Por fin nos han ayudado a recuperar nuestros ficheros. Vamos a explicar qué hemos hecho y cómo ha sido solucionado (desde diferentes perspectivas). La seguridad en la criptografía asimétrica ,usando claves RSA, se basa en la premisa de que es muy difícil computacionalmente factorizar los dos factores primos de un número. Multiplicar dos números primos p y q para obtener n es una operación sencilla y su complejidad no aumenta drásticamente cuando los números crecen: 1736640013 x 1230300287 = 2136588706409583731 En cambio, la operación inversa, dado un número n obtener sus dos factores primos es una operación que se vuelve computacionalmente inviable cuando los números involucrados son lo suficientemente grandes. ? x ? = 2136588706409583731 Para generar la pareja de claves, el algoritmo RSA crea una clave pública y privada usando este concepto. Simplificando la generación de las claves, los números primos elegidos aleatoriamente p y q se multiplican para crear el módulo n que se usará tanto en la clave privada como en la pública. Este módulo n es público pero los factores primos p y q no. Del certificado incluido en los ficheros, podemos leer la clave pública y obtener el módulo y exponente: openssl x509 -in Certificate1 -text > Certificate1.info openssl x509 -in Certificate2 -text > Certificate2.info Se obtiene fácil el exponente (e) 65537 y el módulo (n) en hexadecimal. También así: Intentar obtener la clave privada a partir de estos datos requeriría factorizar el módulo obtenido y así obtener los primos p y q usados para generar ambas claves. Esta operación, con un número tan grande, no es viable computacionalmente en un periodo de tiempo razonable. En este caso, tenemos una pista que nos puede ayudar a intentar encontrar esos dos números. Sabemos que el ransomware se ha ejecutado en máquinas cuyo generador de números aleatorios estaba configurado al mínimo lo que puede haber dado a repeticiones de números primos durante distintas generaciones. Por lo tanto se podría haber dado el caso en el que dos módulos compartan el mismo número p o q. n1 = p1 x q1n2 = p1 x q2 Si este caso se produce, ambos módulos n1 y n2 compartirían un divisor común p1. Para probar esta hipótesis se puede realizar una operación matemática muy sencilla, el cálculo del máximo común divisor usando el algoritmo de Euclides. El resultado de calcular el MCD sobre los dos módulos obtenidos de las claves públicas revela que ambos números comparten un divisor distinto de 1. Con este cálculo sencillo se consigue uno de los dos primos usados para la generación de ambas claves, conseguir los otros dos primos desconocidos es trivial (mucho ojo a la necesidad de utilizar doble barra para división de números grandes). En Python es sencillo así: Para el cálculo del MCD se pueden usar herramientas como RSACtfTool, o Sanity Cheker, basado en SageMath, y en general, para cálculos rápidos con números enormes, existen diferentes páginas que se pueden consultar, como este ejemplo. Siguiendo cualquier manual de RSA, sacamos todos los datos se debe construir la clave privada a partir de dos primos y el exponente. Tenemos la opción de hacerlo a través de openssl. Primero creamos un archivo con la información: asn1=SEQUENCE:rsa_key[rsa_key]version=INTEGER:0modulus=INTEGER:0xD1F50CC7FpubExp=INTEGER:0x10001privExp=INTEGER:0x2396DB3CC6CB…. p=INTEGER:0x00e95df998acf149cae5d…. q=INTEGER:0x00e651db2d769829da0… e1=INTEGER:0x6E2FD10A259E481965…. e2=INTEGER:0x782436DA8E446D80669… coeff=INTEGER:0xA70D92326A2813D9F…. Y luego se ejecuta el comando para construir la clave, por ejemplo: openssl asn1parse -genconf asn_002.txt -out private_key_002.der Aunque también se puede hacer con Python de varias formas. Aquí la usada por el ganador. Innovación y Laboratorio en ElevenPathswww.elevenpaths.com Nueva investigación: descubrimos cómo eludir SmartScreen a través de un COM Hijacking y sin privilegiosCómo predecir el futuro y reducir la incertidumbre gracias a la inferencia bayesiana (I)
Telefónica Tech Boletín semanal de Ciberseguridad, 18 – 24 de marzo HinataBot: nueva botnet dedicada a ataques de DDoS El equipo de investigadores de Akamai ha publicado un informe en el que señala que han identificado una nueva botnet denominada HinataBot que dispondría...
Telefónica Tech Qué es el Esquema Nacional de Seguridad (ENS 2.0) La Ciberseguridad, la privacidad y la protección de los datos y de la información sensible son aspectos cada vez más importantes en la sociedad actual. Tanto para empresas y...
Nacho Palou 5G: cuatro casos de uso reales y prácticos El último informe “La Sociedad Digital en España 2022” [1] de Fundación Telefónica confirma la consolidación de los procesos de digitalización en la sociedad española. En este sentido, cabe...
Susana Alwasity Ciberseguridad: eventos “cisne negro” en un mundo conectado En la sociedad actual, la tecnología ha transformado la forma en que vivimos, trabajamos y nos relacionamos. Con el aumento del uso de dispositivos y redes conectados a internet,...
Telefónica Tech Boletín semanal de Ciberseguridad, 11 – 17 de marzo Nueva versión del troyano bancario Xenomorph Investigadores de ThreatFabric han detectado una nueva variante del troyano bancario para Android Xenomorph. Esta familia de malware fue detectada por primera vez en febrero...
Gonzalo Álvarez Marañón Matemáticas contra el cibercrimen: cómo detectar fraude, manipulaciones y ataques aplicando la Ley de Benford Cómo aplicar la ley de Benford para luchar contra el cibercrimen. La respuesta, en este post que utiliza las matemáticas para ayudar a la ciberseguridad.