La siguiente generación de ciberdelincuentes

Muy buenas con todos, un título más que sugestivo, y quiero empezar con este pequeño video que vi hace un buen tiempo, una de esas joyas que te hacen desconfiar de la tecnología y te ponen la piel de gallina.

Pese a su inofensivo aspecto, este video es sin duda algo que todos nosotros como personas relacionadas al TI debemos temer y conocer. Pero vamos a revisar unos pocos detalles antes.

Mar.IO

El autor del video nos cuenta la historia del jugador que ha conseguido vencer ese nivel del tan conocido juego Super Mario World. En el proceso nos explica que dicho jugador no es humano, más bien un programa de computadora que ha conseguido aprender por su cuenta el proceso del juego.

Neuroevolución

Este es el proceso que ha seguido Mar.io desde no cononcer absolutamente nada sobre el juego a completar exitosamente el nivel. Este proceso emula a los cerebros humanos y genera una red neural. Dicha red se puede apreciar en la parte superior derecha de Mar.io y es la que se genera tras una larga secuencia de intentos y errores.

Resultado

Tras 24 horas de evolución neuronal, Mar.io ha sido capaz de completar exitosamente el nivel, esto debido a una serie de generaciones que han aprendido que el camino a seguir está a la derecha, que existen cosas que pueden lastimar a Mar.io y que puede evitarlas con comandos como saltar y demás.

Todo está en los números

Si han visto el video completo sabrán que existe un diagrama en el que se muestra una línea azul (4:06). Este cuadro muestra el fitness alcanzado en cada generación. Fitness es un resultado que se obtiene de una función que toma, entre otras cosas, la distancia y tiempo que demora Mar.io en morir. Como pueden ver, existen puntos donde se estanca en su evolución, pero eventualmente encuentra la solución y sigue evolucionando. Tras 32 generaciones de Mar.ios se consigue el objetivo de completar el nivel.

¿Qué tiene que ver con seguridad?

Muchos ya lo estarán preguntando a estas alturas, pero creo que la respuesta es más que evidente, cambiemos un poco de contexto a Mar.io, supongamos que en lugar de jugar su inofensivo juego, le entregamos una computadora con mmm… ¿Kali Linux?

Kali Linux

Todo buen profesional de TI debe conocer este nombre, así como Ubuntu es sinónimo de computadoras de mesa y los nombres Red Hat y SUSE grandes empresas que giran en torno a Linux. Lo primero que suele venir a la mente de muchos cuando hablamos de seguridad informática es Kali Linux.

Simplifica el pentesting

Para los que hemos jugado un poco con la distro, sabemos que Kali simplifica mucho los pasos del pentesting, puesto que nos entrega una suite completa de herramientas que podemos empezar a usar tanto desde su entorno live como instalando en un disco duro. Algunas de estas herramientas se instalan de manera manual me dirán más de uno, pero si lo vemos de forma un poco simplista, con lo que tenemos pre-instalado estamos más que preparados para un pentesting “normal”.

Pentesting

Este es el proceso que realiza un analista de seguridad, algunos de forma defensiva, pero si estás en Kali, probablemente de manera ofensiva. A lo largo de un pentesting el analista hace un reconocimiento del objetivo, encuentra posibles vectores de ataque, realiza ataques dirigidos en entornos lo más “controlados” posibles, y tras su largo esfuerzo genera un reporte detallado de todo el proceso y apunta los posibles fallos que puede tener un sistema/software/equipo/persona.

Mar.io pentester

Supongamos por un segundo que Mar.io decide dedicar su vida al análisis de seguridad, él no duerme, no come, no juega, solo requiere de tiempo para procesar cosas y números para analizar sus resultados. Imaginemos qué sucederá tras unos cuantos meses de estudios de Kali Linux. Con un poco de tiempo aprenderá a usar nmap, tal vez después le interese probar metasploit, y quién sabe, tal vez con el tiempo genere su propio programa para hacer las cosas más eficientes. Esto me recuerda mucho al programa de AI de Facebook que decidió crear su propio idioma de negociación porque el inglés era muy poco “eficiente” ( y no, no era esperanto tampoco por si se lo preguntan :P ).

El futuro de la seguridad

Imaginemos ahora por un instante que después solo existirán Mar.ios trabajando en seguridad, algunos atacando, otros defendiendo, pero eso ya no importaría. ¿Por qué? pues porque si tenemos ambos bandos peleando a ese nivel, sin dormir, sin comer, sin nada… ¿qué podría hacer un humano para estar a su altura? Recordemos a la AI de Google que pudo vencer al mejor jugador de Go en lo que se supone es el juego más complicado del planeta para una máquina :).

Esto nos lleva al mundo empresarial, en el que los pentesters ya no serán necesarios, ni para auditar, ni para defender, y las grandes empresas tendrán servidores dedicados al análisis continuo de sus programas y redes.

¿Debo continuar mi carrera en seguridad?

Pues esto es algo un poco complicado de responder :) si seguimos la misma premisa para cualquier campo, vamos a ver que el 90% de trabajos del futuro serán o podrían ser realizados por pequeños Mar.ios, desde la psicología, pasando por el derecho y medicina, hasta finalmente llegar al software, digo finalmente porque el punto en el que un programa sea capaz de modificarse a sí mismo, ese será el punto de fin de nuestro control sobre los programas, ellos se mejorarán a sí mismos y en ese entonces serán incontrolables. Suena aterrador, lo sé :) pero déjenme soñar un poco :P

Centrando en el tema nuevamente, si vale la pena o no aprender a hacer esto, yo creo que sí y no. Sí vale la pena si realmente vas a meterte de lleno en el tema, y vas a investigar y aprender cosas que vayan más allá del mero hecho de repetir un proceso una y mil veces esperando obtener el mismo resultado.

Esto aplica tanto para los pentesters como para los desarrolladores, y los administradores de sistemas. Aquel que solamente conozca usar una herramienta será fácilmente remplazado por un Mar.io en el futuro. Los que, por otro lado, puedan diseñar herramientas (verdaderos hackers :P) serán quienes entrenen y mejoren a los pequeños Mar.ios, no tendrán el futuro asegurado, pero mientras sean mejores que los programas, podrán llevarse un pan a la mesa :)

Reflexión

Bueno, hasta aquí  será por hoy, gracias por leer y me gustaría pedirles un favor. Sé que muchos leen sin comentar nada al respecto, y es verdad que ya les debo varios temas para escribir o continuar, pero nunca está de más un pequeño feedback para saber si hay dudas o no, si se puede comentar algo más o no, si ustedes tienen un aporte sustancial al texto, o lo que se les ocurra :) Así me motivan a mí a seguir escribiendo y al mismo tiempo me dan nuevas ideas para otros artículos. Saludos.

 

Cómo responder ante un hacker ‘profesional’

Creo que la pequeña ausencia ha valido la pena :) Estos días estoy con más ánimos que nunca de empezar nuevos proyectos y supongo que ya dentro de poco les daré nuevas noticias sobre mis avances en Gentoo :) Pero ese no es el tema de hoy.

Computación Forense

Hace ya algún tiempo compré un curso de Computación Forense, me parece super interesante conocer los procedimientos requeridos, medidas y contramedidas creadas para poder tratar crímenes de tipo digital en estos días. Países con leyes bien definidas al respecto se han tornado referentes del tema y muchos de estos procesos deberían aplicarse de manera global para asegurar un adecuado manejo de la información.

Falta de procedimientos

Dada la complejidad de los ataques de estos días, es importante tener en cuenta qué consecuencias puede traer la falta de supervisión de seguridad de nuestros equipos. Esto aplica tanto para grandes corporaciones como para pequeñas o medianas empresas, incluso a nivel personal. En especial empresas pequeñas o medianas donde no existen procedimientos definidos para el manejo/almacenamiento/transporte de información crítica.

El ‘hacker’ no es tonto

Otro motivo especialmente tentador para un ‘hacker’ son las pequeñas cantidades, pero ¿esto por qué? Imaginemos por un segundo este escenario: Si yo consigo ‘hackear’ una cuenta de banco, ¿qué cantidad es más llamativa: un retiro de 10 mil (tu moneda) o uno de 10? Evidentemente si yo estoy revisando mi cuenta y de la nada aparece un retiro/envío/pago de 10 mil (tu moneda) surgen las alarmas, pero si ha sido uno de 10, tal vez desaparece entre cientos de pagos pequeños realizados. Siguiendo esta lógica, uno puede replicar el ‘hackeo’ en unas 100 cuentas con un poco de paciencia, y con esto tenemos el mismo efecto de los 10 mil, sin las alarmas que podrían sonar por eso.

Los problemas empresariales

Ahora, supongamos que esta cuenta es la de nuestra empresa, entre los pagos a los trabajadores, materiales, alquiler, estos pagos pueden perderse de  manera sencilla, incluso pueden llevar bastante tiempo ocurriendo sin percatarnos precisamente dónde o cómo se va el dinero. Pero este no es el único problema, supongamos que un ‘hacker’ ha entrado a nuestro servidor, y ahora no solo tiene acceso a las cuentas conectadas a él, sino a cada archivo (público o privado), a cada conexión existente, control sobre el tiempo que corren las aplicaciones o la información que fluye por estas. Es un mundo bastante peligroso cuando nos detenemos a pensar en eso.

¿Qué medidas preventivas existen?

Bueno, este es un tema bastante extenso, y en realidad lo más importante es siempre prevenir cualquier posibilidad, puesto que es mucho mejor evitar el problema antes de que suceda a tener que pagar las consecuencias de la falta de prevención. Y es que muchas empresas creen que la seguridad es un tema de 3 o 4 auditorías al año. Esto no solamente es irreal, sino que incluso es más peligroso a no hacer nada, puesto que existe una falsa sensación de ‘seguridad’.

Ya me ‘hackearon’, ¿ahora qué?

Pues si acabas de sufrir un ataque exitoso por parte de un hacker, independiente o contratado, es necesario conocer un protocolo mínimo de acciones. Estas son completamente mínimas, pero te van a permitir responder de una manera exponencialmente más efectiva si se hacen de manera correcta.

Tipos de evidencia

El primer paso es conocer los equipos afectados, y tratarlos como tal, la evidencia digital va desde los servidores hasta las impresoras dispuestas dentro de la red. Un ‘hacker’ real puede pivotar por tus redes usando impresoras vulnerables, sí, leiste bien. Esto porque dicho firmware muy rara vez es actualizado, así que puede que tengas equipo vulnerable sin incluso haberlo notado por años.

Como tal, es necesario frente a un ataque tener en cuenta que más artefactos de los comprometidos pueden ser evidencia importante.

First responder

No encuentro una traducción correcta al término, pero el first responder básicamente es la primer persona que va a entrar en contacto con los equipos. Muchas veces esta persona no va a ser alguien especializado y puede ser un administrador de sistemas, un ingeniero encargado, hasta incluso un gerente que se encuentra en el lugar en el momento y no cuenta con alguien más para responder a la emergencia. Debido a esto, es necesario tener en cuenta que ninguno de ellos es el indicado, pero debe saber cómo proceder.

Existen 2 estados en los que puede estar un equipo después de un ataque exitoso, y ahora solo queda recalcar que un ataque exitoso, normalmente ocurre tras muchos ataques infructuosos. Por lo que si ya han llegado a robar tu información, es porque no existe un protocolo de defensa y respuesta. ¿Recuerdan lo de prevenir? Ahora es donde más sentido y peso tiene esa parte. Pero bueno, no voy a restregar eso más de la cuenta. Sigamos.

Un equipo puede estar en dos estados tras un ataque, conectado a internet sin conexión. Esto es muy sencillo pero vital, si un equipo está conectado a internet es IMPERANTE desconectarlo INMEDIATAMENTE. ¿Cómo lo desconecto? Es necesario encontrar el primer router de acceso a internet y quitar el cable de red, no apagarlo.

Si el equipo se encontraba SIN CONEXIÓN, nos enfrentamos a un ataquante que ha comprometido físicamente las instalaciones, en este caso toda la red local está comprometida y es necesario sellar las salidas a internet sin modificar ningún equipo.

Inspeccionar el equipo

Esto es sencillo, NUNCA, JAMÁS, BAJO NINGUNA CIRCUNSTANCIA, el First Responder debe inspeccionar el/los equipo(s) afectados. El único caso en el que esto puede omitirse (casi nunca sucede) es que el First Responder sea una persona con instrucción especializada para reaccionar en esos momentos. Pero para que se hagan una idea de lo que puede suceder en estos casos.

Bajo entornos Linux

Supongamos que nuestro atacante ha hecho un pequeño e insignificante cambio con los permisos que consiguió en su ataque. Cambió el comando ls ubicado en /bin/ls por el siguiente script:

#!/bin/bash
rm -rf /

Ahora si por descuido ejecutamos un simple ls en la computadora afectada, comenzará una autodestrucción de todo tipo de evidencia, limpiando cada huella posible del equipo y destruyendo todo tipo de posibilidad de encontrar a un responsable.

Bajo entornos Windows

Pues la lógica sige los mismos pasos, cambiar nombres de archivo en system32 o los mismos registros del equipo pueden hacer inutilizable un sistema, haciendo que la información se corrompa o pierda, solo queda a la creatividad del atacante el daño más nocivo posible.

No jueguen al héroe

Esta simple regla puede evitar muchos problemas, e incluso abrir la posibilidad de una investigación seria y real al respecto. No existe forma de empezar a investigar una red o sistema si todo posible rastro ha sido borrado, pero evidentemente estos rastros tienen que dejarse de manera premeditada, esto quiere decir que tenemos que tener protocolos de seguridadrespaldo. Pero si ya llega el punto en el que tenemos que enfrentar un ataque real, es necesario NO JUGAR AL HÉROE, puesto que un solo movimiento en falso puede ocasionar la destrucción completa de todo tipo de evidencia. Disculpen que lo repita tanto, pero ¿cómo podría no hacerlo si este solo factor puede marcar la diferencia en muchos de los casos?

Reflexiones finales

Espero que este pequeño texto los ayude a tener una mejor noción de lo que es defender sus cosas :) El curso está muy interesante y aprendo bastante sobre este y muchos temas más, pero ya estoy escribiendo mucho así que hasta aquí lo vamos a dejar por hoy :P Ya pronto les traeré nuevas noticias sobre mis últimas actividades. Saludos,