ATAQUES EN RED, INTRUSIONES, MALWARE Y APTs

Te lo contamos como nos lo hemos encontrado. Duro, sin ayuda y con muchas ganas de solucionarlo.

CIBERGUERRA, CIBERATAQUES, CIBERDEFENSA...

Todas las anécdotas, medidas de contención y un montón de soluciones.

ACOSO, FRAUDE, ROBO, PORNOGRAFIA INFANTIL, FUGA DE DATOS

Casos prácticos de detección y prevención

Información

Todas las noticias del mundo de la Seguridad IT y Hacking

martes, 26 de abril de 2016

PROTEIN - Protegiendo nuestra información contra el RANSOMWARE... y GRATIS!



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 :

  1. Alerta por correo electrónico al administrador de sistema. 
  2. Bloquea el usuario del directorio activo que está siendo utilizado por el ransomware para cifrar la información. 
  3. 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. 
  4. 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


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

jueves, 25 de febrero de 2016

NUEVO RANSOMWARE LOCKY. Ataque por red de recursos no compartidos...

NUEVO RANSOMWARE LOCKY





Se ha descubierto un nuevo ransomware llamado Locky que cifra los datos utilizando cifrado AES exigiendo 5 bitcoins para descifrar los archivos. Hasta aquí nada novedoso...

La criticidad de Locky radica en la cantidad de extensiones de archivos que es capaz de cifrar, pero más importante aún es que es capaz de cifrar datos en unidades de red sin asignar (sin mapear). Si bien la enumeración de carpetas accesibles en la red aún no estando mapeadas es algo trivial, la novedad es que los randsomware no utilizaban esta característica (salvo el reciente DMA Locker aparecido hace un par de semanas). Parece que este nuevo método ha llegado para quedarse con nosotros... 

Al igual que CryptoWall, Locky también cambiar completamente los nombres de los archivos cifrados para que sea aún más difícil su restauración.

DESTRIPANDO EL RANSOMWARE: 

Locky a través de facturas falsas

Locky actualmente está siendo distribuido a través de correo electrónico que contiene un archivo adjunto de Word con macros maliciosos. El mensaje de correo electrónico contendrá un objeto similar a Atención: Factura J-98223146 y un mensaje del tipo "(Documento de Microsoft Word) Por favor, vea la factura adjunta y remitir el pago según los términos que figuran en la parte inferior de la factura". Mostramos un ejemplo de uno de estos mensajes de correo electrónico:






El fichero adjunto a este correo electrónico es un documento de Word malicioso que contiene un nombre similar a invoice_J-17105013.doc. Cuando se abre el documento, el texto mostrado es ilegible con un mensaje que dice que para visualizar correctamente el fichero debemos habilitar las macros... Ya esto debería hacer sospechar al usuario, pero ya sabemos la capacidad que tienen los usuarios de sorprendernos ;)



Una vez que una víctima permite que se habiliten las macros, se descarga un archivo ejecutable desde un servidor remoto.



El archivo descargado por la macro se almacena en la carpeta% Temp% y se autoejecuta empezando el cifrado de los achivos de su equipo.


Locky encripta sus datos y cambia por completo los nombres de archivo


Cuando Locky se ejecuta, crea y asigna un único número hexadecimal 16 de la víctima del tipo F67091F1D24A922B. Locky revisará entonces todas las unidades locales y recursos compartidos de red sin asignar para el cifrado. Este cifrado es AES y los archivos afectados tienen la extensiones siguientes:

.mid, .wma, .flv, .mkv, .mov, .avi, .asf, .mpeg, .vob, .mpg, .wmv, .fla, .swf, .wav, .qcow2, .vdi, .vmdk, .vmx, .gpg, .aes, .ARC, .PAQ, .tar.bz2, .tbk, .bak, .tar, .tgz, .rar, .zip, .djv, .djvu, .svg, .bmp, .png, .gif, .raw, .cgm, .jpeg, .jpg, .tif, .tiff, .NEF, .psd, .cmd, .bat, .class, .jar, .java, .asp, .brd, .sch, .dch, .dip, .vbs, .asm, .pas, .cpp, .php, .ldf, .mdf, .ibd, .MYI, .MYD, .frm, .odb, .dbf, .mdb, .sql, .SQLITEDB, .SQLITE3, .asc, .lay6, .lay, .ms11 (Security copy), .sldm, .sldx, .ppsm, .ppsx, .ppam, .docb, .mml, .sxm, .otg, .odg, .uop, .potx, .potm, .pptx, .pptm, .std, .sxd, .pot, .pps, .sti, .sxi, .otp, .odp, .wks, .xltx, .xltm, .xlsx, .xlsm, .xlsb, .slk, .xlw, .xlt, .xlm, .xlc, .dif, .stc, .sxc, .ots, .ods, .hwp, .dotm, .dotx, .docm, .docx, .DOT, .max, .xml, .txt, .CSV, .uot, .RTF, .pdf, .XLS, .PPT, .stw, .sxw, .ott, .odt, .DOC, .pem, .csr, .crt, .key, wallet.dat 



Por otra parte, Locky se saltará cualquier archivo de las siguiente rutas y/o cadenas de los nombres de carpetas:

tmp, winnt, Application Data, AppData, Program Files (x86), Program Files, temp, thumbs.db, $Recycle.Bin, System Volume Information, Boot, Windows 


Cuando Locky cifra un archivo, automáticamente cambia el nombre siguiendo la estructura [id_exclusivo].locky . Por ejemplo, supongamos que encripta un archivo llamado test.jpg; lo renombraría a algo así como F67091F1D24A922B1A7FC27E19A9D9BC.locky (vean el número único hexadecimal mostrado anteriormente...). 


Es importante hacer hincapié en que Locky cifrará archivos en recursos compartidos de red, incluso cuando no se asignan a una unidad local (mapeado). Como dijimos anteriormente, esto se va a convertir en algo común en los ataques de este tipo; es por ello que hago de nuevo hincapié el hecho de que todos los administradores de sistemas deberían aplicarse sí o sí la regla de mínimo privilegio como un "must" de sus políticas de seguridad.


Como parte del proceso de cifrado, Locky, también borrará todas las instantáneas de volumen en la máquina de manera que no se pueden utilizar para restaurar los archivos (las llamadas shadows copy). Locky hace mediante la ejecución del siguiente comando:

vssadmin.exe Delete Shadows /All /Quiet 


En el escritorio de Windows y en cada carpeta en la que se ha cifrado un archivo, Locky creará una nota de rescate llamado _Locky_recover_instructions.txt. Es un detalle su delicadeza al avisarnos del suceso así como enlaces para poder descifrarlo previo pago :(



Además Locky te cambia el fondo de pantalla de Windows estableciendo como predeterminado el fondo: 
UserpProfile%% \ Desktop \ _Locky_recover_instructions.bmp, donde se muestran las mismas instrucciones que las notas de texto de rescate (otro detalle del amigo Locky...)



Por último, pero no menos importante, Locky almacenará diversa información en el registro de la máquina afectada en las siguientes claves: 

HKCU \ Software \ Locky \ id - El identificador único asignado a la víctima. 
HKCU \ Software \ Locky \ pubkey - La clave pública RSA. 
HKCU \ Software \ Locky \ paytext - El texto que se almacena en las notas de rescate. 
HKCU \ Software \ Locky \ completada - Si el ransomware terminó cifrar el equipo 


El Locky Decrypter página

Dentro de las notas de rescate Locky se encuentran los enlaces a una página en Tor llamada Locky Decrypter. Esta página se encuentra en la dirección 6dtxgqam4crv6rr6.onion y contiene la cantidad de bitcoins que tenemos que enviar como pago, así como instrucciones claras de cómo comprar los bitcoins (por si no lo sabes, él te enseña...), y la dirección bitcoin que debemos utilizar para enviar el pago. Una vez que la víctima realiza el pago a la dirección de bitcoins asignada, la página (teóricamente) te proporcionará un descifrador para los archivos afectados.






Resumen de cara a una posible defensa:

Ficheros relacionados con Locky:

%UserpProfile%\Desktop\_Locky_recover_instructions.bmp %UserpProfile%\Desktop\_Locky_recover_instructions.txt %Temp%\[random].exe 

Registros afectados por Locky

HKCU\Software\Locky 
HKCU\Software\Locky\id 
HKCU\Software\Locky\pubkey 
HKCU\Software\Locky\paytext 
HKCU\Software\Locky\completed 1 
HKCU\Control Panel\Desktop\Wallpaper "%UserProfile%\Desktop\_Locky_recover_instructions.bmp" 

A fecha de hoy no se conoce ninguna forma de descifrar los archivos afectados por Locky...