Contenidos
Charla «Los 1s y 0s detrás de la ciberguerra» de TEDxColumbus en español.
Chris Domas es investigador de seguridad informática, que opera en lo que se convertirá en un nuevo frente de guerra “ciber”. En esta charla interesante, muestra cómo los investigadores usan el reconocimiento de patrones y la ingeniería inversa (y unas cuantas noches en vela) para entender un fragmento de código binario cuya finalidad y contenido que no conocen.
- Autor/a de la charla: Chris Domas
- Fecha de grabación: 2013-10-10
- Fecha de publicación: 2014-06-30
- Duración de «Los 1s y 0s detrás de la ciberguerra»: 1005 segundos
Traducción de «Los 1s y 0s detrás de la ciberguerra» en español.
Aquí hay muchos unos y ceros.
Es lo que llamamos información binaria.
Así hablan las computadoras.
Así almacenan información.
Así piensan las computadoras.
Así las computadoras hacen todo lo que saben hacer.
Soy investigador de seguridad informática; o sea, mi trabajo consiste en analizar esta información y tratar de darle sentido, tratar de entender qué significan esos unos y ceros.
Por desgracia para mí, no solo estamos hablando de los unos y ceros que tengo aquí en la pantalla.
No estamos hablando de pocas páginas de unos y ceros.
Estamos hablando de miles y miles de millones de unos y ceros; más de los que alguien podría comprender.
Ahora, apasionante como suena, cuando empecé a trabajar en ciberseguridad…
(Risas)
cuando empecé con la ciberseguridad, no estaba seguro de que tamizar unos y ceros fuera lo que quería hacer el resto de mi vida, porque, para mí, la ciberseguridad era mantener la computadora de mi abuela libre de virus, era mantener las páginas de MySpace libres de ciberataques, y solo quizá, en un día de gloria, salvar a alguien del robo a la información de su tarjeta de crédito.
Son cosas importantes, pero no es la forma en que quería pasar mi vida.
Luego de 30 minutos de trabajo como contratista de defensa, pronto advertí que mi idea de ciberseguridad era un poco errónea.
De hecho, en materia de seguridad nacional, mantener la computadora de mi abuela libre de virus estaba sorprendentemente abajo en la lista de prioridades.
Y esto se debe a que la ciberseguridad es mucho más importante que cualquiera de esas cosas.
La ciberseguridad es parte integral de nuestras vidas, porque las computadoras son parte integral en nuestras vidas, incluso si uno no tiene una computadora.
Las computadoras controlan todo en nuestros autos, desde el GPS hasta los airbags.
Controlan el teléfono.
Son la razón por la cual podemos llamar al 911 y alguien nos atiende en la otra línea.
Controlan toda la infraestructura nacional.
Gracias a ellas tenemos electricidad, calefacción, agua potable, alimentos.
Las computadoras controlan nuestros equipos militares, todo, desde los silos de misiles y los satélites hasta las redes de defensa nuclear.
Todas estas cosas son posibles gracias a las computadoras y, por lo tanto, gracias a la ciberseguridad.
Y cuando algo sale mal, la ciberseguridad puede hacer imposible estas cosas.
Pero ahí es donde entro yo.
Gran parte de mi trabajo consiste en defender estas cosas, en mantenerlas en funcionamiento.
Pero, cada tanto, parte de mi trabajo consiste en romper alguna de estas cosas, porque la ciberseguridad no es solo defensiva, también es ofensiva.
Estamos entrando a una era en la que hablamos de ciberarmas.
De hecho, tan grande es el potencial de la ciberofensiva que la ciberseguridad se considera como un nuevo dominio de la guerra.
La guerra no necesariamente es algo malo.
Por un lado, implica que hay todo un nuevo frente en el que tenemos que defendernos, pero por otro lado, que hay toda una nueva forma de atacar, una nueva forma de impedir que los malos hagan cosas malas.
Consideremos un ejemplo de esto completamente teórico.
Supongamos que un terrorista quiere volar un edificio, y quiere hacerlo una y otra vez en el futuro.
No quiere estar en el edificio cuando explote.
Usará su móvil como detonador remoto.
La única forma que solíamos tener para detener a este terrorista era con una balacera y una persecución en auto, pero esto ya no necesariamente es así.
Estamos entrando en una era en la cual podemos detenerlo con solo presionar un botón a 1600 km de distancia porque, lo sepa o no, cuando decidió usar su móvil entró al dominio de la ciberseguridad.
Un ataque cibernético bien elaborado podría entrar en su teléfono, desactivar la protección de sobretensión en la batería, sobrecargar drásticamente el circuito, y hacer que la batería se sobrecaliente y explote.
No más teléfonos, no más detonador, quizá no más terrorista, todo con solo presionar un botón a más de mil kilómetros de distancia.
¿Cómo funciona esto?
Se reduce a esos unos y ceros.
La información binaria hace que funcione el móvil, y usado correctamente, puede hacer que el móvil explote.
Cuando empezamos a ver la ciberseguridad desde esta perspectiva, pasar la vida hurgando en información binaria se torna un poco apasionante.
Pero aquí está el truco: Esto es difícil, muy, muy difícil, y este es el porqué.
Piensen en todo lo que tienen en el móvil.
Tienen las fotos que tomaron.
Tienen la música que escuchan.
Tienen la lista de contactos, el correo, y probablemente 500 apps que nunca usaron en sus vidas, y debajo de todo esto está el software, el código, que controla el móvil, y, en algún lugar, enterrado en ese código, está un fragmento que controla la batería, y eso es lo que me interesa.
Pero todo esto, un montón de unos y ceros, está todo mezclado.
En ciberseguridad a esto lo llamamos encontrar una aguja en una pila, porque todo más o menos se parece.
Estoy buscando una pieza clave, pero está mezclada con todo lo demás.
Apartémonos de esta situación teórica de hacer explotar el móvil de un terrorista, y veamos algo que me ocurrió a mí.
Casi sin importar qué haga, mi trabajo siempre empieza analizando un montón de información binaria, y siempre busco una pieza clave para hacer algo específico.
En este caso, estaba buscando un fragmento de código muy avanzado, muy de vanguardia que sabía que podría hackear, pero estaba enterrado en algún lugar dentro de mil millones de unos y ceros.
Por desgracia para mí, yo no sabía bien lo que estaba buscando.
No sabía bien el aspecto de lo que buscaba, y eso dificultaba mucho la búsqueda.
Cuando tengo que hacer esto básicamente analizo varias piezas de esta información binaria, tratando de descifrar cada pieza, y de ver si puede ser lo que busco.
Después de un tiempo, pensé que había encontrado la información que estaba buscando.
Pensé que quizá era eso.
Parecía estar bastante bien, pero no podía confirmarlo.
No podía decir qué representaban esos unos y ceros.
Pasé un tiempo tratando de unir las piezas, pero no tenía mucha suerte, y finalmente decidí hacerle frente a la situación, quedarme el fin de semana, y no abandonar hasta averiguar qué representaban.
Y así hice.
Llegué el sábado por la mañana, y en unas 10 horas tenía todas las piezas del rompecabezas.
Solo que no sabía cómo unirlas.
No sabía qué significaban estos unos y ceros.
En la marca de 15 horas, empecé a hacerme una idea de lo que había, pero tenía una leve sospecha de que lo que estaba buscando no estaba para nada relacionado con lo que quería.
A las 20 horas, las piezas empezaron a encajar muy lentamente…
(Risas)
y estaba bastante seguro de que iba por el camino incorrecto, pero no me daría por vencido.
Luego de 30 horas en el laboratorio, me di cuenta exactamente de lo que estaba buscando, y tenía razón, no era lo que quería.
Pasé 30 horas atando cabos, y los unos y ceros formaban la imagen de un gatito.
(Risas)
Desperdicié 30 horas de mi vida buscando este gatito que no tenía nada que ver con lo que estaba tratando de lograr.
Estaba frustrado, estaba agotado.
Después de 30 horas en el laboratorio, quizá olía horrible.
Pero en vez de ir a casa y ponerle punto final a esto, di un paso atrás y me pregunté:
¿qué salió mal?
¿Cómo pude cometer un error tan tonto?
Soy realmente muy bueno en esto.
Me gano la vida con esto.
¿Qué pasó?
Bueno, pensé, cuando uno mira la información a este nivel, es fácil perder la noción de lo que está haciendo.
Es fácil que el árbol tape el bosque.
Es fácil irse por las ramas y perder una enorme cantidad de tiempo haciendo lo incorrecto.
Pero tuve esta revelación: Estuvimos viendo los datos de manera totalmente incorrecta desde el primer día.
Así piensan las computadoras, con unos y ceros.
Las personas no pensamos así, pero hemos tratado de adaptar nuestras mentes para pensar como computadoras y poder entender esta información.
En vez de tratar de hacer que nuestras mentes se adapten al problema, deberíamos hacer que el problema se adapte a nuestras mentes, porque nuestros cerebros tienen un potencial enorme para analizar grandes volúmenes de información, pero no de este modo.
¿Y si pudiésemos desatar ese potencial con solo traducir esto en el tipo correcto de información?
Con estas ideas en mente, pasé del sótano de mi trabajo al sótano de mi casa, que se parecían mucho.
La principal diferencia es que en el trabajo estoy rodeado de cibermateriales, y lo ciber parecía ser el problema en esta situación.
En casa, estoy rodeado por todo lo demás que he aprendido.
Me sumergí en todos los libros que pude encontrar, en cada idea que había encontrado, para ver cómo traducir un problema de un dominio a algo completamente diferente.
La gran pregunta era:
¿en qué queremos traducirlo?
Nuestros cerebros
¿qué hacen de forma perfectamente natural que podamos explotar?
Mi respuesta fue: la visión.
Tenemos una gran capacidad para analizar la información visual.
Podemos combinar gradientes de colores, señales de profundidad, todo tipo de señales diferentes en una imagen coherente del mundo circundante.
Eso es increíble.
Por eso, si pudiésemos encontrar una forma de traducir estos patrones binarios en señales visuales, realmente podríamos desatar el potencial de nuestros cerebros para procesar este material.
Empezamos a analizar la información binaria, y me pregunté qué haré cuando encuentre algo así por primera vez?
Y lo primero que quiero hacer, lo primero que quiero responder, es
¿qué es esto?
No me importa qué hace, cómo funciona.
Solo quiero saber qué es esto.
Y la manera de averiguarlo es analizando los fragmentos, fragmentos secuenciales de información binaria, y estudiar las relaciones entre esos fragmentos.
Cuando reuní suficientes secuencias, empecé a hacerme una idea de exactamente qué debía ser esta información.
Volvamos a la situación de volar el móvil del terrorista.
Un texto en inglés tiene este aspecto a nivel binario.
Así se vería una lista de contactos si la examinásemos.
Es muy difícil analizarlo a este nivel, pero si tomamos esos mismos fragmentos binarios que yo trataba de encontrar, y en cambio los traducimos a representaciones visuales, si traducimos esas relaciones, obtenemos esto.
Este es el aspecto de un texto en inglés desde una perspectiva de abstracción visual.
De repente, nos muestra la misma información que estaba en los unos y ceros, pero de manera totalmente diferente, que podemos entender de inmediato.
En un instante podemos ver todos los patrones.
Me lleva segundos detectar patrones aquí, pero horas o días hacerlo entre unos y ceros.
A cualquiera le lleva minutos aprender lo que representan estos patrones, pero años de experiencia en ciberseguridad aprendiendo lo que esos patrones representan en unos y ceros.
Este fragmento se forma con minúsculas seguidas por otras minúsculas dentro de esa lista de contactos.
Esto con mayúsculas y mayúsculas, mayúsculas y minúsculas, minúsculas y mayúsculas.
Esto con espacios.
Esto con retornos de carro.
Podemos analizar cada pequeño detalle de la información binaria, en segundos, en lugar de semanas, meses, a este nivel.
Así se ve una imagen desde un móvil.
Pero así se ve en una abstracción visual.
Así se ve la música, y aquí su abstracción visual.
Lo más importante, para mí, así se ve el código que hay en sus móviles.
Esto es lo que me interesa en definitiva, pero esta es su abstracción visual.
Si encuentro esto, no puedo hacer explotar el móvil.
Podría pasar semanas tratando de encontrar esto en los unos y ceros, pero me lleva segundos analizar una abstracción visual como esta.
Una de las partes más notables de todo esto es que nos da una forma totalmente nueva de entender la información nueva, cosas que no hemos visto antes.
Sé como se ve el texto en inglés a nivel binario, y sé cómo se ve su abstracción visual, pero nunca he visto binario en ruso en toda mi vida.
Me llevaría semanas solo averiguar qué estaba buscando a partir de unos y ceros, pero como nuestros cerebros pueden detectar al instante y reconocer estos patrones sutiles dentro de estas abstracciones visuales, inconscientemente podemos aplicarlos a nuevas situaciones.
Así se ve el ruso en una abstracción visual.
Dado que sé cómo se ve un idioma, puedo reconocer otros idiomas incluso si no me resultan familiares.
Así se ve una fotografía, y así un clip de arte.
Así se ve el código del teléfono, y así se ve el código de la computadora.
Nuestros cerebros pueden detectar estos patrones de formas que nunca podríamos hacer mirando unos y ceros en crudo.
Pero solo hemos rozado la superficie con lo que puede hacerse con este enfoque.
Recién empezamos a desatar las capacidades de nuestras mentes para procesar información visual.
Si en cambio tomamos esos mismos conceptos y los traducimos a tres dimensiones, encontramos formas totalmente nuevas de darle sentido a la información.
En segundos, podemos identificar cada patrón.
Podemos ver la cruz asociada al código.
Podemos ver cubos asociados con el texto.
Podemos incluso detectar los más diminutos artefactos visuales.
Las cosas que nos llevarían semanas, o meses encontrar entre unos y ceros, son evidentes de inmediato en algún tipo de abstracción visual, y a medida que avanzamos en esto y le arrojamos cada vez más información, encontramos que podemos procesar miles de millones de unos y ceros en cuestión de segundos con solo usar nuestra capacidad cerebral innata para analizar patrones.
Esto es muy bueno y ayuda, pero me dice lo que estoy viendo.
En este momento, con los patrones visuales, puedo encontrar el código en el teléfono.
Pero eso no es suficiente para hacer explotar una batería.
Luego necesito encontrar el código que controla la batería, pero volvemos al problema de la aguja en la pila.
Ese código se parece mucho a los otros tipos de código de ese sistema.
Podría no encontrar el código que controla la batería, hay muchas cosas similares a eso.
Hay código que controla la pantalla, otro que controla los botones, otro que controla los micrófonos, e incluso si no puedo encontrar el código de la batería, apuesto a que puedo encontrar una de esas cosas.
El paso siguiente en mi proceso de análisis del binario es analizar fragmentos de información que tengan similitudes.
Es muy, muy difícil de hacer a nivel binario, pero si en cambio traducimos esas similitudes en abstracciones visuales, ni siquiera tenemos que tamizar los datos en bruto.
Solo tenemos que esperar a que la imagen se ilumine para ver cuándo tenemos un fragmento similar.
Seguimos estas hebras de similitud como un rastro de migas de pan para encontrar exactamente qué buscamos.
En este punto del proceso, ubicamos el código responsable de controlar la batería, pero eso aún no es suficiente para volar un teléfono.
La última pieza del rompecabezas es entender cómo controla ese código la batería.
Para esto, tenemos que identificar relaciones muy sutiles, muy detalladas entre esa información binaria, otra cosa muy difícil de hacer mirando unos y ceros.
Pero si traducimos esa información en una representación física, podemos dejar que nuestra corteza visual haga el trabajo difícil.
Puede encontrar los patrones detallados, las piezas importantes por nosotros.
Puede descubrir exactamente cómo trabajan juntas las piezas de ese código para controlar la batería.
Todo esto puede hacerse en cuestión de horas, mientras que el mismo proceso antes demandaba meses.
Todo esto está muy bien para la voladura teórica del teléfono de un terrorista.
Yo quería descubrir si esto funcionaría en mi trabajo diario.
Así, estaba jugando con estos mismos conceptos con algunos datos que analicé en el pasado, y, otra vez, trataba de encontrar un fragmento muy detallado, muy específico dentro de un gran volumen de información binaria.
Así que lo miré a este nivel, pensando que buscaba lo correcto, solo para ver que esto no tiene la conectividad que cabría esperar para el código que estaba buscando.
De hecho, no estoy muy seguro de qué es, pero si me apartaba un nivel y analizaba las similitudes dentro del código veía que no tenía similitud con cualquier código que había allí.
Ni siquiera podía ver código.
De hecho, desde esta perspectiva, podría decir que esto no es código.
Es una imagen de algún tipo.
Y a partir de aquí, pude ver, no es solo una imagen, es una fotografía.
Ahora que sé que es una fotografía, tengo decenas de otras técnicas de traducción de binarios para visualizar y entender esa información, así que en cuestión de segundos, puedo tomar esta información, pasarla por una decena de otras técnicas de traducción visual para descubrir exactamente qué estábamos mirando.
Vi…
(Risas)
era ese gatito otra vez.
Todo esto fue posible gracias a que pudimos encontrar la forma de traducir un problema muy difícil en algo que nuestros cerebros hacen con mucha naturalidad.
¿Qué quiere decir esto?
Bueno, para los gatitos significa ya no esconderse entre los unos y ceros.
Para mí, significa ya no desperdiciar más fines de semana.
Para la ciberseguridad significa que tenemos una nueva forma radical de abordar los problemas imposibles.
Significa que tenemos una nueva arma en el teatro cambiante de la ciberguerra, pero para todos, significa que los ciberingenieros ahora pueden ser los primeros en responder en situaciones de emergencia.
Cuando los segundos cuentan, hemos desatado los medios para detener a los malos.
Gracias.
(Aplausos)
https://www.ted.com/talks/chris_domas_the_1s_and_0s_behind_cyber_warfare/