21 junio 2016

Anti Ransom V3

Ya ha pasado algún tiempo desde la última versión de Anti Ransom y, como es lógico, muchos correos, conversaciones y gente me ha dado sugerencias, ideas y reportado fallos.

Con todo eso en la mano, he rediseñado bastante Anti Ransom y lo he hecho evolucionar de arriba a abajo.

De entrada, primer y principal cambio: Ahora Anti Ransom es OpenSource y puedes descargar, visionar y si te apetece colaborar en el código fuente del proyecto desde GitHub.

Esto ha sido posible al cambiar del lenguaje original (Perl) a Python. Perl requería el uso de PDK, una herramienta comercial que permite convertir scripts en ejecutables libres de dependencias. En el caso de Python, lo he cambiado por Pyinstaller.

El siguiente cambio ha sido dejar de utilizar handle como herramienta para listar ficheros abiertos. Eso evita seguir teniendo que descargar en cada instalación dicho programa. Queda como dependencia Procdump, pero ya estoy valorando ideas para eliminar dicha dependencia.

El módulo psutil de Python tiene una interesante función llamada open_files() que lista los ficheros abiertos de cada proceso. Personalmente era bastante escéptico, pero una vez implementada una rutina basada en ella, tengo que decir que el resultado ha sido excelente. Todas las muestras que he usado han sido detectadas con bastante celeridad, superando con mucho la rutina anterior que usaba handle

Otro tema que inquieta mucho a la gente son los falsos positivos. A lo largo de estos años mucha gente me ha enviado correos al respecto. Para abordar este tema, de entrada, durante la instalación se deshabilita y detiene el servicio de indexación de Windows, causante de la mayoría de falsos positivos.

Además, ahora Anti Ransom ya no decide por si mismo eliminar un proceso, te permite decidir a ti lo que quieres hacer


Evidentemente, el gap de tiempo que hay entre que tú decides y el proceso muere, puede suponer que tu HD quede cifrado o no. Por eso, lo que hace AntiRansom es suspender el proceso potencialmente malicioso y lanzar el popup, de esa forma, mientras decides, tu HD sigue a salvo. Si le dices 'Go', el proceso se des-suspende y sigue con normalidad y si le dices stop, el proceso muere dejando tras de sí un dump de su memoria en la que puedes 'escarbar' y tratar de encontrar la(s) clave(s) que ha usado para cifrar los ficheros.

Además, ahora Anti Ransom es multi-hilo, de forma que, si encuentra un proceso sospechoso y lanza el popup, lanzará a la vez otro hilo que sigue monitorizando. Por tanto, si un malware ha lanzado 10 procesos, los 10 van a ser detenidos casi a la vez, independientemente de que estés frente al PC para pulsar 'Stop'. Cuando vuelvas, verás los 10 popups y todos los procesos maliciosos estarán suspendidos.

Otro cambio importante es la interfaz gráfica. Ha mejorado bastante al emplear QT como motor gráfico y sobre todo gracias al precioso logo que me han regalado :)


La versión ya compilada y lista para ser instalada se puede descargar desde aquí. En poco tiempo actualizaré la página principal del proyecto, con capturas y vídeos