PROTEIN - PROTEct your INformation
¿Qué es PROTEIN?
PROTEIN es un script en Powershell desarrollado por Amador Pérez Trujillo (aka @c0p3rnic0).
Amador Pérez actualmente es el CEO de New Vision SoftLan, empresa focalizada en proporcionar soluciones de seguridad protegiendo el activo más valioso y sensible de una empresa: su información.
PROTEIN utiliza las capacidades de monitorización que proporciona .NET para controlar el uso que se hace de la información almacenada en un repositorio (carpetas). A partir de la captura de los eventos producidos en el repositorio, evalúa si los ficheros creados son confiables. En el caso contrario actúa alertando al administrador de sistemas, bloqueando la cuenta de usuario del dominio y deshabilitando la tarjeta de red de la máquina infectada para detener su propagación.
¿Cómo funciona?
PROTEIN se basa en una función combinada de tres elementos para detectar posibles ataques de ransomware:
- Blacklist: Listado de extensiones conocidas de ransomware
- Whitelist: Listado de extensiones permitidas en nuestro repositorio
- Honeypot: carpeta utilizada para atrapar nuevos ransomware
Mediante la Blacklist, PROTEIN constantemente monitoriza la creación de nuevos ficheros y los compara a los almacenados en esa lista. Actualmente están registradas como extensiones de ransomware las siguientes:
.ecc,.ezz,.exx,.zzz,.xyz,.aaa,.abc,.ccc,.vvv,.xxx,ttt,.micro,.encrypted,.locked,.crypto,_crypt,.crinf,.r5a,.XRNT,.XTBL,.crypt,.R16M01D05,.pzdc,.good,.LOL!,.OMG!,.RDM,.RRK,.encryptedRSA,.crjoker,.EnCiPhErEd,.LeChiffre,.keybtc@inbox_com,.0x0,.bleep,.1999,.vault,.HA3,.toxcrypt,.magic,.SUPERCRYPT,.CTBL,.CTB2,.locky,.mp3,.hydracryp
El fichero que contiene la lista de extensiones en texto plano es ransomware_list.config, un fichero en texto plano que puede ser modificado como el usuario desee:
Tan pronto PROTEIN detecta la creación de un fichero con una extensión de este tipo, se realizan tres acciones :
- Alerta por correo electrónico al administrador de sistema.
- Bloquea el usuario del directorio activo que está siendo utilizado por el ransomware para cifrar la información.
- Deshabilita la tarjeta de red del ordenador del usuario infectado para evitar la propagación del ransomware incluso reiniciando el sistema así como cortando cualquier conexión con Internet bloqueando la descarga de claves para cada fichero infectado con la automática desactivación del ataque.
- Alerta al usuario de que ha sido infectado por un ransomware mediante un mensaje emergente.
Por otro lado PROTEIN se nutre de un listado de extensiones permitidas en el sistema como elemento predictivo de nuevos ransomware no detectados (nuevos y no registrados por nadie hasta la fecha) o no actualizados en la lista Blacklist de extensiones de ransomware. Este listado se encuentra almacenado en el archivo "white_list.config". Actualmente este fichero contiene 725 extensiones permitidas, estando cubierta un amplio rango de las extensiones reconocidas por el sistema operativo y programas comúnmente utilizados. En el caso de querer añadir una nueva extensión permitida, tan sólo hace falta agregarla a este fichero que está en texto plano.
Para esta detección PROTEIN trabaja de dos formas diferentes.
- Por un lado analizando una carpeta "Señuelo" (honeypot) y actuando en caso de modificación de su contenido. Esa carpeta señuelo es creada automáticamente cuando se instala (se ejecuta ./protein.ps1 --install) y se indica el repositorio a analizar. El nombre que se le da a la carpeta "señuelo" es "_AntiRansomware", conteniendo tres archivos tipo .docx que son los monitorizados comprobando que en todo momento existen. En el caso de no existir alguno de esos archivos (un ransomware está empezando ha actuar) automáticamente actua según el procedimiento anteriormente explicado, es decir:
- Alerta por correo electrónico al administrador de sistema
- Bloquea el usuario del directorio activo que está siendo utilizado por el ransomware para cifrar la información
- Deshabilita la tarjeta de red del ordenador del usuario infectado para evitar la propagación del ransomware incluso reiniciando el sistema así como cortando cualquier conexión con Internet bloqueando la descarga de claves mediante conexiones TOR con la automática desactivación del ataque
- Por el otro analizando la lista de extensiones conocidas. En este caso, PROTEIN por defecto está configurado para tan sólo registrar que se ha creado un nuevo fichero de extensión desconocida y no actuar ante él (lo registra en un fichero de log), pudiéndose cambiar la forma de actuar simplemente copiando el procedimiento de envío de alertas y bloqueo de usuario y tarjeta de red para esta acción, puesto que el código está publicado para su modificación.
Paralelmente PROTEIN almacena un registro alertando de la infección para su consulta posterior. Como ejemplo podemos ver como interceptó la infección de un ransomware en un repositorio denominado "REPOSITORIO FICTICIO", mostrando el registro creado en el log:
Podemos observar como detecta el fichero como un ransomware e informa que se ha bloqueado, deshabilitado el usuario que está utilizando el ransomware para cifrar la información y por último informa que ha deshabilitado su tarjeta de red.
PROTEIN utiliza la Clase io.filesystemwatcher de ,NET. Esta Clase escucha las notificaciones de cambio del sistema de archivos y genera eventos cuando cambia un directorio o un archivo de un directorio.
Aprovechando esta funcionalidad, capturamos estos eventos y cuando se cree un archivo lo analizamos para ver si es un ransomware o no.
Os dejo tres vídeos que muestran el funcionamiento de PROTEIN:
Ransomware creado para fines "no malvados" :
Actuación PROTEIN lado cliente bloqueando una infección:
Actuación PROTEIN lado servidor, deshabilitando usuario y alertando:
Desde este enlace podéis descargar la herramienta tanto compilado en .exe como en .ps1:
https://github.com/c0p3rnic0/PROTEIN
https://github.com/c0p3rnic0/PROTEIN
Quiero dar las gracias al gran @kinomakino uno de los pocos MVP (Most Valuable Professional) de Microsoft, por su publicación y sus palabras amén de invitaros a que consultéis su blog si os preocupa la seguridad de la información y los sistemas “informáticos”
http://kinomakino.blogspot.com.es/2016/04/protein-protect-your-information-otra.html