sábado, 29 de agosto de 2015

Detección de Malware usando los contadores hardware


Os dejo una parte de mi proyecto de fin de master (muchas gracias a Jordi Serra por ser mi director de proyecto). Se llama Anomaly Detection For Malware Identification Using Hardware Performance Counters.
La idea principal es que es posible, usando aprendizaje automático (machine learning), en concreto las técnicas de detección de anomalías, detectar comportamientos extraños en la ejecución de un software (normalmente el malware trata de desbordar la pila o algún buffer del programa). El algoritmo usa los contadores hardware de los micros modernos para analizar el comportamiento del ejecutable. Os dejo con el artículo.


miércoles, 17 de septiembre de 2014

Criptografía con curvas elípticas

Hace tiempo que le doy vueltas a la idea de hacer un post sobre criptografía basada en curvas elípticas, pero hasta ahora me he resistido porque no es un tema fácil de tratar de forma divulgativa sin meterse en berenjenales matemáticos de mucho cuidado.
Aun así, me voy a atrever por dos motivos. Porque me apetece, que para eso es mi blog, y porque personalmente creo que es un campo muy prometedor para la investigación en criptografía.
Voy a tratar de simplificar al máximo y voy a ahorrarte demostraciones matemáticas y formulitas todo lo que pueda, pero avisado quedas de que este es un artículo donde se presupone que el lector tiene cierta competencia matemática.
Sin más preámbulos, vamos al lío.

jueves, 28 de agosto de 2014

Ingeniería inversa de un parche de Microsoft Windows

A estas alturas ya hemos asumido que la seguridad total en Internet es, cuanto menos, un mito. Ningún software está libre de vulnerabilidades, y por mucha auditoría, test de intrusión o pruebas de fuzzing que nos empeñemos en hacer, ninguna metodología puede demostrar sin lugar a dudas que un software es 100% seguro. Ante este panorama, hay dos tendencias mayoritarias a la hora de hacer públicas las vulnerabilidades.
Por un lado, están los que piensan que cuando se descubre un fallo ha de hacerse público de forma inmediata. En este escenario, la publicación de una vulnerabilidad es el pistoletazo de salida para una carrera entre el desarrollador para sacar el parche y los "malos" para lograr explotarla. Esta política es conocida como full disclosure.
Por otro lado, tenemos a los siguen una política responsible disclosure, que abogan por mantener la vulnerabilidad en secreto hasta la salida del parche por parte del desarrollador. Sin entrar en cuestiones filosóficas que no vienen al caso sobre qué política es más adecuada, la segunda, seguida por empresas como Microsoft, han dado lugar a una práctica muy habitual últimamente. Cuando Microsoft publica un parche para un software, inmediatamente hay un montón de analistas que se dedican a hacer ingeniería inversa del parche, ya sea por pura curiosidad o para explotar la vulnerabilidad en aquellos equipos que aún no se hayan actualizado. En cualquier caso, puede ser muy ilustrativo ver cómo es el proceso de reversing de un parche de Windows, así que veamos un ejemplo sencillo.

lunes, 25 de agosto de 2014

Creando firmas de virus para ClamAV

ClamAv es un antivirus opensource y multiplataforma creado por Tomasz Kojm muy utilizado en los servidores de correo Linux. Este antivirus es desarrollado por la comunidad, y su utilidad práctica depende de que su base de datos de firmas sea lo suficientemente grande y actualizado. Para ello es necesario que voluntarios contribuyan activamente aportando firmas.
El presente artículo pretende describir de manera sencilla cómo crear firmas de virus para ClamAV y contribuir con ellas a la comunidad.


lunes, 11 de agosto de 2014

Historias de hackers: "A la caza del ciberdelincuente"

No hace mucho os contaba en este blog la historia de un "Hacker" que, por encargo, entraba en el servidor de una empresa y robaba los datos de los clientes. Al final de la historia, el ciberdelincuente acaba entre rejas, y ésta es la historia de cómo fue cazado.

viernes, 8 de agosto de 2014

Identificando malware en procesos svchost.exe maliciosos

Si examinas los procesos que están corriendo en tu Windows con el administrador de tareas verás que hay varios procesos llamados svchost.exe. La función de estos es alojar a otros procesos que realizan diferentes funciones, es decir, actúan como contenedores de otros servicios. Además de esto, también es uno de los lugares favoritos que tiene el malware para alojarse sin tu permiso.
Hay dos formas en las que un malware puede usar estos procesos para esconderse. La primera forma es agregándose a un svchost.exe que ya esté ejecutándose. La otra manera es creando un proceso svchost.exe falso que en realidad está ejecutando el malware. Vamos ver cómo podemos identificar estos svchost.exe falsos (y dejamos para otro día el primer caso en el que los programas maliciosos que se alojan en svchost.exe auténticos).

martes, 22 de julio de 2014

Historias de hackers: "Un servidor desactualizado"

Día 1.

Suena el teléfono a las 3 de la tarde, justo a la hora de comer. Descuelgo y una voz al otro lado me dice que le ha pasado mi contacto un amigo común y que quiere proponerme un “trabajito”.
Como hacker de sombrero negro (hacker malicioso) me gano la vida atacando sistemas para empresas que me contratan por suculentas cantidades, así que rápidamente acepto el trabajo.