martes, 3 de octubre de 2017

Hackear a la velocidad de la luz al dios del trueno Thor

Ayer os dije que sería ideal que os leyéseis la entrada que escribí en mi blog de Física sobre el martillo de Thor, pues sería la base de este artículo y a su vez, ambos serían la base de un artículo conjunto que voy a escribir con 2 investigadores más como mínimo, aunque hay uno que se puede caer. Hoy en esta entrada, os voy a resumir un poco de qué trata dicho artículo.


En esa entrada ya comenté cómo se podría explicar que los "no dignos" no pudiesen levantar el martillo de Thor. También expliqué cómo se podría elaborar el martillo de Thor con la Informática que exite hoy en día, y aunque no pueda emitir gravitones, sí que podríamos hacer que se cree un campo electromagnético, aunque podría ser fácil de romper con calor.


Una de las cosas que comenté, es que se podrían utilizar técnicas de Big Data para la verificación de la persona que agarra el martillo, consiguiendo, por ejemplo, utilizar no datos biométricos, sino conseguir de alguna forma, emitir una secuencia de ADN con los datos de verificación, porque ¿Qué mejores datos que acrediten tu identidad que tú mismo?

Sobre esta idea hemos estado trabajando un investigador en biotecnología, mi pareja que controla la parte de la Biología también y yo como Físico e investigador en seguridad. Le hemos dado varias vueltas a esta idea y hemos encontrado que podrían existir formas de hackear estos posibles futuros mecanismos de verificación en n-pasos.

¿En qué consiste el trabajo?

El trabajo de investigación consiste en una teoría que yo tenía, pero que necesitaba la ayuda de mi pareja y de ese investigador. Mi teoría es que, asumiendo que estos sistemas de verificación basados en el Big Data, ayudándonos de la síntesis de nuestro ADN, se podrían hackear sistemas que utilizasen esta verificación-como en el martillo de Thor- haciendo "un bypass" de este mecanismo de autenticación en futuras ocasiones. Para esto tenemos que conocer cómo funciona el ADN, al cuál vamos a utilizar como disco duro y guardar en el "ADN HDD" un archivo como una fotografía, una canción o vídeo al cual  lo juntemos con un backdoor que creemos con msfvenom. Una vez que el sistema abra el archivo, lo cuál hará de manera automática, se nos creará una sesión meterpreter que nos permitirá acceder al sistema y buscar dónde está el archivo o base de datos con los patrones de validación, descargarnos y usarlos en la próxima vez que tratemos de entrar en el sistema, haciendo "Un bypass" como podríamos hacer en entornos de hacking en los que hacemos bypass de la contraseña de una víctima utilizando el mismo procedimiento.

La base

Antes de nada, como vamos a utilizar el ADN para almacenar información dentro del mismo ADN con archivos infectados para arrancar una sesión meterpreter, deberíamos definir qué es el ADN y sentar un poco las bases. Esto no es algo que hayamos descubierto, ya se está haciendo y mucho, es más, os dejo aquí un paper muy interesante donde definen este procedimiento en profundidad. Aquí el paper.

Las siglas de ADN, son las de Ácido Desoxirribo Nucleico. Para hacernos todos una idea, el ADN no es más que un ordenador, químico, pero un ordenador que nosotros llebamos incorporado en nuestro organismo. Lo que hace es dar órdenes a diversas partes de nuestro organismo para el correcto funcionamiento del mismo. Sabiendo todo esto ¿Cómo es el ADN como estructura?

Por lo que vemos en la escuela, sabemos que el ADN es como un hilo muy fino, que si hacemos mucho zoom, vemos que dispone de dos hilos entrelazados conectadas por medio por unos filamentos.

Cada uno de los "dos hilos", están formados por la sucesión de moléculas como es el ácido fosfórico, y por otro lado, por la desoxirribosa y que están colocados de manera alternativa.


En primer lugar tenemos al Ácido Fosfórico, que dispone de la forma dada por la imagen anterior, y en segundo lugar, por la Desoxirribosa, dada por la fórmula siguiente



¿Todo esto cómo se junta? Pues de manera consecutiva el Ácido Fósfórico y la Desoxirribosa, formando una estructura en forma parecida a hélice. No sólo es eso, sino que además, la desoxirribosa dispone de una segunda conexión electromagnética que nos permite enganchar las bases nitrogenadas y estas bases pueden a su vez, unirse entre sí.


Aunque lo más importante puede ser que el ADN es capaz de guardar información, pero ¿Dónde? Pues en esas Bases Nitrogenadas que hemos comentado anteriormente. Ya sabemos qué es, dónde se guarda pero ¿Cómo? Para esto deberemos de decir que existen 4 tipos de moléculas para realizar esta función. Estas moléculas son:

  1. Adenina
  2. Guanina
  3. Timina
  4. Citosina
Estas moléculas, como he dicho, se pueden unir entre sí. La Adenina con la Timina y la Guanina con la Citosina. Ojo, no es lo mismo AT que TA [Las iniciales de Adenina y Timina], y para leer una cadena de ADN, partimos el ADN entre dos y veremos que en un lado, por ejemplo tenemos una C, por lo que en el otro lado, tiene que estar a la fuerza una G.

¿Dónde vienen los posibles problemas?

Pues el primer problema que nos encontramos es bastante grande, ya que cuando trabajamos con los transistores, con la Informática actual, tenemos el sistema binario[0 ó 1], pero si queremos guardar información en una cadena de ADN, la base no es 2, sino 4.

Parece una tontería y secuenziar una cadena de ADN es algo que ya "dominamos", pero el problema no está en fabricar la secuencia de ADN, sino en realizar el algoritmo de conversión de base 4 a base 2 para que la estructura no se rompa en el tiempo.


Tal y como se leen los datos es que al llegar un dato al sintetiizador de ADN, lo busca en una librería de ADN con pequeñas "piscinas". Esta librería lo devuelve al PCR para que se pase al secuenziador de ADN y salga el dato. Pero para esto hay que superar otro problema más.

Como sabréis, en código binario, tú puedes escribir perfectamente 110000110011, es decir puedes poner tantos 0s o 1s seguidos como quieras o sean necesarios. No obstante, con el ADN no ocurre igual, ya que si pones, por ejemplo TTT, la secuenzia se puede romper por un lado. Como mínimo se pueden poner 2 Ts juntas, por lo que este problema se soluciona escribiendo un "bit de ADN" aleatorio en medio, quedando tal que así TTAT a lo mejor, pero un "bit de ADN" que no afecte al mensaje que se quiera transmitir.


Otro pequeño problema es que el almacenamiento de ADN es el más lento de todos los tipos de almacenamiento, llegando a tardar horas a la hora de acceder a un dato. Las memorías Flash, por contraposición, son las más rápidas.

No obstante, una memoría Flash o HDD te puede durar 5 años, mientras que el almacenamiento de ADN, te puede durar siglos, es más, en varios experimentos se han guardado varias películas, vídeos, fotos y sistemas operativos en tan sólo un gramo de ADN. Es decir, se ha podido guardar a lo mejor 2 veces Google en un sólo gramo de ADN, por lo que este tipo de almacenamiento para cosas muy específicas sí que se puede utilizar. Su lentitud a la hora de leer los datos, se debe a que para leer un dato, hay que romper la estructura y volver a montarla.


Para ilustrar mejor el proceso, se mostrará a continuación un ejemplo de cómo se almacenarían un mismo datos con el sistema binario y cómo con el  nitrogenado.


Vemos como no existirá ninguna base nitrogenada repetida más de 3 veces, pues conllevaría fallos en la transmisión del mensaje.


Otra ventaja importante es que con menos del 5% de lecturas, ya se alcanza un 100 de exactitud en la lectura de los datos usando el Algoritmo Goldman y el XOR creado por unos investigadores. Sus larga duración y su eficacia a la hora de leer los datos sin errores, lo hace un sistema bastante posible de almacenamiento en el futuro, aunque a día de hoy sea extremadamente caro.


Pues ya sabemos que es posible guardar información en el ADN, información como vídeos o imágenes y como ya sabemos, es posible ocultar un backdoor en un videoclip, así que tomaremos un archivo cualquiera y lo infectaremos para posteriormente hacer que el martillo de Thor reciba la secuancia de ADN y de forma automática, abra todos los archivos para que nos permita el acceso al sistema y podamos robar los logs o la base de datos.


Sabiendo cómo funcionan sistemas como los que usan biometría, sabemos qu se consultará con la Base de Datos si se pasa el reconocimiento de patrones, es muy importante, pasar con dichos patrones, o adapatar la Base de Datos a los patrones de Thor y a los nuestros.


La Base de Datos contendrá N patrones y si el porcentaje es lo suficientemente alto, lo pasaremos, sino no y en este caso no pasaremos la validación, pero sí que conseguiremos entrar en el sistema del martillo.


Aquí se ha realizado un ejemplo con una máquina Windows al que se le ha pasado una foto del ADN infectada y conseguimos una sesión meterpreter. En el caso del martillo sería exactamente igual, recibiría la secuencia de ADN, y al abrirla podríamos entrar en el sistema del martillo pues tendríamos una sesión meterpreter creada.


Nos podríamos descargar la Base de Datos del martillo siendo SYSTEM y modificar la base de datos, añadiendo una entrada con nuestros patrones para que también podamos levantar el martillo de Thor.


En este caso son 2 patrones que podríamos falsificar uy fácilmente para hacernos pasar por la víctima, pero recuerdo que es posible realizar copias de fragmentos de ADN por lo cuál falsificar datos como fragmentos de ADN, nos resultaría "sencillo" pasar estos patrones.

A día de hoy, estamos tratando de demostrar esto con un sistema biométrico que nos hemos creado con una Rapsberry Pi. En este caso del dato biométrico por huella dactilar podría ser más sencillo, ya que sabemos que se pueden hackear estos dispositivos. Por ejemplo, esta técnica es usada para gente que quiere robar los OTP de Google Authenticator de una persona. Seguiremos investigando en ellos, espero que tengáis una respuesta en breve.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...