jueves, marzo 31, 2016

CROZONO: Uso de drones y robots en tests de intrusión

No es de extrañar que cuando escuchemos hablar de una intrusión a un sistema informático imaginemos a una persona sentada frente a su computadora llevando a cabo tales acciones. Siendo realistas, es muy poco probable que en lugar de eso, imaginemos a un hacker realizando la intrusión desde un drone o robot. Sin embargo, esto ya es una realidad que debemos empezar a imagina. CROZONO es un framework Open Source desarrollado con la finalidad de utilizarse en dispositivos móviles no convencionales (drones y/o robots) para realizar los ataques típicos de un test de intrusión, donde se busca lograr acceder a la red interna del objetivo y obtener información confidencial.

Figura 1: CROZONO. Crack is in the air: Uso de drones y robots en tests de inrusión

El framework está desarrollado en Python 3 y ya se encuentra disponible para ser empleado en plataformas de hardware libre tales como Raspberry PI, Cubieboard y equivalentes, que pueden ser implementadas fácilmente en cualquier tipo de drone o robot. CROZONO posee la capacidad de realizar ataques automatizados a una red o a un grupo de redes y tomar decisiones sobre qué ataques llevar a cabo en base a parámetros preestablecidos y a la información que recopila sobre su objetivo, sin requerir la interacción directa del atacante. La meta de este software es introducirse en una red y comprometer uno o varios de los equipos de la misma. Para lograrlo, incorpora en distintos módulos diversos ataques para WLAN y LAN.

Figura 2: Un robot tipo "R2D2" con un sistema informático para su programación y control remoto

CROZONO es inteligente, ajusta la configuración de su hardware automáticamente, busca el objetivo y sabe elegirlo; lleva a cabo el ataque adecuado para crackear la red y una vez que lo ha logrado, realiza un mapeo de la misma obteniendo información de cada equipo activo y llevando adelante el ataque que haya sido previamente definido.

Entre los ataques disponibles se encuentran sniffing y Man in the middle, Mitm con Evilgrade o ataques relacionados con la ejecución de exploits mediante Metasploit. Estos ataques, una vez lanzados, desencadenan una comunicación reversa con el atacante enviándole en tiempo real -a través del acceso ganado sobre la red de la víctima- toda la información capturada y/o necesaria según el ataque que se ha llevado a cabo.

Figura 3: CROZONO ejecutándose en una Raspberry PI adaptada a un drone

Para lograr todo esto, el framework realiza en resumen, los siguientes pasos: Al iniciar prepara su hardware, lo cual implica detectar el adaptador USB Wi.Fi conectado, cambiar su modo a monitor, cambiar la dirección MAC (Spoofing de MAC Address), entre otras configuraciones. Luego obtiene información acerca de todas las redes Wi-Fi mediante inspección de las señales de los Access Point que están dentro de su alcance, tarea que lleva entre 30 y 60 segundos. En base a la información recopilada, CROZONO decidirá cuál será su objetivo, a menos que se lo haya especificado antes. Para ello tendrá en cuenta por ejemplo, la cercanía con la red y la cantidad de vectores de inicialización (IVs) que ha capturado de la misma. A partir de esto, seleccionará la red más conveniente para atacar.

Al momento de lanzar el ataque hacia la red Wi-Fi, el framework analiza la información previamente capturada sobre su objetivo y detecta su nivel de privacidad (WEP, WPA/WPA2, WPA/WPA2 con WPS) para rápidamente realizar el crackeo del AP ejecutando el ataque adecuado de acuerdo con el protocolo de seguridad empleado. CROZONO intentará crackear la red de la forma más ágil y rápida posible; incorporando diversos módulos de ataque y analizando cuál utilizar. Si eventualmente el ataque seleccionado por el framework no fuera exitoso, éste cambiará de forma automática a otro tipo de ataque, de acuerdo con el nivel de seguridad configurado en la red víctima.

En caso de que no pudiese obtener la contraseña del punto de acceso Wi-Fi, guardará la información capturada - por ejemplo el handshake en WPA/WPA2 - y el drone o robot tendrá la opción de regresar al punto de origen, para que el atacante realice el intento de crackeo de la contraseña desde otro equipo con mayor poder de cómputo. Una vez logrado esto, será posible suministrarle a CROZONO la contraseña de la red para que el robot regrese al punto en donde se encontraba y continúe con la segunda fase del ataque, esta vez dirigido a la red LAN.

Figura 4: CROZONO implementado en un robot diseñado para moverse en espacios públicos

Una vez obtenida la contraseña del punto de acceso Wi-Fi, el framework modifica la configuración de su hardware y se conecta a la red. He aquí el mayor peligro para la víctima, dado que CROZONO realiza un mapeo de la red obteniendo los equipos activos con sus respectivos puertos abiertos y servicios, y envía esta información en tiempo real al atacante, ejecutando a la vez el ataque que se le haya definido previamente, que como ya se ha dicho puede ser un ataque de sniffing, de MITM - con envío de datos en tiempo real - o acceso a un equipo de la red mediante Evilgrade, enviando al atacante una sesión de Meterpreter o de otro agente sobre dicho equipo, haciendo una conexión reversa a través de la conexión local de internet de la víctima.

Tal como ya se ha mencionado, a diferencia de otros desarrollos similares, CROZONO no necesita interacción con el atacante, por lo que no es necesario que sea controlado por GPRS/3G/4G, logrando que su alcance llegue hasta lugares donde tal tecnología no esté disponible. El hecho de que sea un framework modular, permite que los ataques, además de ejecutarse automáticamente, se lleven a cabo de una forma más rápida que si el atacante tuviera que hacerlos a mano mediante una terminal de comandos. Esto implica una gran ventaja cuando se implementa en drones o robots que tienen una baja autonomía de batería. En la presentación que se impartió en la Ekoparty de 2015 puedes ver en detalle el proyecto CROZONO.


Figura 5: Conferencia sobre CROZONO en la Ekoparty 2015

CROZONO pretende convertirse en la primera elección de los especialistas en seguridad, a la hora de utilizar dispositivos móviles no convencionales para realizar tests de intrusión, que pueden ser de especial interés en sistemas industriales, fábricas, o lugares de difícil acceso al que solo se puede llegar con un drone de gran autonomía, y que podrían permitir al atacante llegar a sistemas SCADA por lugares de difícil acceso físico.

Figura 6: Framework CROZONO funcionando

Desde la web del proyecto www.crozono.com es posible acceder al repositorio de GitHub donde se encuentra el código fuente del framework. Los creadores del proyecto: Sheila A. Berta (@UnaPibaGeek) y Pablo Romanos (@PabloRomanos) están disponibles en Twitter para cualquier consulta adicional.

Autores: Sheila A. Berta y Pablo Romanos

miércoles, marzo 30, 2016

Fortificación de comunicación entre Wordpress y MySQL: Evitar los ataques de NPM (Network Packet Manipulation)

En varios artículos hemos hablado de cómo hacer ataques de Network Packet Manipulation a entornos de bases de datos. Hablamos de cómo ownear MySQL colocándonos en medio de la comunicación del cliente y el servidor. En otro artículo comentamos cómo hackear Wordpress con la misma técnica. Al final todo se basa en que el tráfico entre las aplicaciones web y el motor de base de datos puede ir sin cifrar, así es por defecto en la instalación de los motores de base de datos y es labor de los administradores configurar las protecciones y el cifrado.

Figura 1: Fortificación de comunicación entre WordPress y MySQL

En el artículo de hoy nos pondremos del lado del Blue Team y hablaremos de cómo fortificar tu Wordpress cifrando las comunicaciones entre éste y el  motor de MySQL.

Punto 0. Mi Wordpress por defecto

Partimos del siguiente esquema:
- Máquina A con dirección IP 192.168.56.103 tiene instalada un Wordpress.
- Máquina B con dirección IP 192.168.56.106 tiene instalado y configurado MySQL por defecto.
Si analizamos las peticiones se puede ver como accediendo al WordPress, entre la máquina 192.168.56.103 y 192.168.56.106 se realizan una serie de consultas a la base de datos. Estos paquetes son susceptibles de ser manipulados.

Figura 2: Trafico de WordPress a MySQL sin cifrar

Punto 1. Fortificando la conexión a MySQL con SSL

En este punto lo que vamos a hacer es preparar los tres componentes necesarios para que MySQL acepte conexiones bajo SSL. En primer lugar hay que consultar si la compilación de MySQL que se está utilizando permite utilizar SSL, si no fuera así habría que instalar una versión más nueva o compilarla con soporte a SSL.

Para verificar esto accedemos a MySQL con un cliente y ejecutamos la siguiente consulta “show variables like ‘%ssl%’;”. Si las variables have_openssl y have_ssl tienen como valor DISABLED significa que está soportado pero no activo. Si por el contrario encontramos el valor NO, significa que la compilación de MySQL no soporta SSL. Si aparece el valor YES, significa que está correctamente configurado y el servidor permite conexión bajo este mecanismo. Además, hay que ver las rutas de las variables ssl_ca, ssl_cert y ssl_key que indican la ruta de la CA, del certificado del servidor y de la clave de éste.

Figura 3: variables de MySQL para configurar SSL

En este punto vamos a utilizar OpenSSL para generar la CA, el certificado y la clave. Para ello ejecutamos las siguientes instrucciones:
- openssl genrsa 2048 > ca-key.pem
- openssl req –sha1 –new –x509 –nodes –days 3600 –key ca-key.pem > ca-cert.pem
Con esto tenemos creado el certificado y la clave privada de la CA. Nos pedirán que rellenemos varios datos como país, ciudad, dominio, e-mail, etcétera.
- openssl req –sha1 –newkey rsa:2048 -days 730 -nodes -keyout server-key.pem > server-req.pem
Con esto generamos la clave privada para el servidor. A continuación, exportamos la clave privada del servidor a tipo RSA con la ejecución del siguiente comando:
- openssl rsa -in server-key.pem -out server-key.pem
Por último, generamos un certificado de servidor utilizado el certificado de la CA.
- openssl x509 -sha1 -req -in server-req.pem -days 730 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
Los ficheros cacert.pem, server-cert.pem y server-key.pem deben estar en la ruta /etc/mysql. Aunque esto puede ser configurado en el fichero de configuración de MySQL /etc/mysql/my.cnf. Editando dicho fichero y buscando a partir del campo “[mysqld]” debemos descomentar la parte de SSL y asegurarnos de que las variables tienen la configuración adecuada, tal y como puede verse en la siguiente imagen.

Figura 4: Configuración del fichero my.cnf

Ahora, reiniciamos el servicio de MySQL. Una vez el motor arranque y lea la configuración del fichero sabrá de dónde leer la información del certificado, la CA y la clave privada. Ahora, podremos conectarnos con un cliente MySQL a través de SSL. Como ejemplo rápido utilizamos el propio MySQL. La instrucción es la siguiente:
-  mysql –u [user] –p –ssl-ca=[ruta cacert]. 
Para comprobar que la conexión se ha realizado a través de SSL podemos consultar la variable Ssl_Cipher.

Figura 5: Configuración de la conexión

Si abrimos ahora WireShark y aplicamos el filtro de MySQL para ver el tráfico observaremos que ya no vemos nada. Sin embargo, si utilizamos un filtro “tcp.dstport == 3306” veremos que hay conexión con dicho puerto de la máquina 192.168.56.106.

Figura 6: Tráfico cifrado entre WordPress y MySQL

Las consultas están siendo cifradas, y por eso WireShark no reconoce contenido de los datos que se envían al motor de MySQL.

Punto 2. Configurar Wordpress para que cifre con SSL la conexión con MySQL

Ahora, hay que indicar en el fichero wp-config.php de WordPress que éste debe entender los flags de MySQL para SSL. Para ello, añadimos al fichero la instrucción “define(‘MYSQL_CLIENT_FLAGS’, MYSQL_CLIENT_SSL);”, tal y como se puede ver en la imagen siguiente.

Figura 7: Configuración de WordPress

Ahora accedemos al sitio web de nuestro WordPress y las consultas a MySQL irán por un canal cifrado, tal y como puede verse en la imagen. En este momento los ataques de NPM (Network Packet Manipulation) ya no es válido, ya que no podemos detectar y manipular las cadenas de MySQL. Si probamos con WireShark veremos que solo accedemos a la conexión al MySQL, pero nada de las consultas, si que veríamos la conexión al puerto 3306, pero todo cifrado.

Figura 8:Conexión a MySQL desde WordPress

De esta forma estamos fortificando el intercambio de información entre el WordPress y la base de datos MySQL. También se puede forzar a que usuarios concretos sólo puedan hacer conexiones bajo SSL, lo cual es interesante para fortificar.

Más artículos sobre seguridad y fortificación en WordPress:
- Hackear WordPress con ataques de Network Packet Manipulation
- Fortificar WordPress frente ataques de fuerza bruta
- WordPress: Ten cuidado con el cacheo de borradores
- WPHardening: Automatizar la fortifación de WordPress
- Listar los plugins de WordPress
- Configurar Latch en WordPress
Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking" y “Pentesting con Powershell

martes, marzo 29, 2016

SIDU: Un Database Web GUI para escanear servidores

Este domingo por la noche no conseguía dormirme con la vuelta al trabajo por lo que aproveché para revisar algunas cosas en Internet. Esta vez le tocó el turno a los ataques a cadenas de conexión de bases de datos, así que, como ya hiciera tiempo atrás con Chive, con SQL Web Data Administrator, MyLittleAdmin, MyLittleBackup, ASP.NET Enterprise Manager o las aplicaciones Citrix, busqué algún nuevo panel de control de bases de datos por medio de un interfaz web, y di con SIDU, una herramienta que permite gestionar motores de bases de datos MySQL, Postgres, SQLite y CUBRID.

Figura 1: SIDU - Un DB Web GUIO con bugs de XSPA

Encontrar la herramienta publicada en Internet no es difícil. Hay muchas organizaciones que tienen este tipo de aplicaciones en sus sitios web, para poder administrar sus bases de datos, y ésta, en concreto, viene con muchas posibilidades.

Figura 2: Lista de bases de datos a las que se puede conectar para lanzar comandos SQL

Como se puede ver, permite hasta Microsoft SQL Server, por lo que podría ser una víctima propicia para los ataques de Connection String Parameter Polution, pero lo cierto es que necesita un driver especial en los entornos en los que mirado. Pero sí que se pueden hacer otras cosas, como vamos a ver.

Remote XSPA (Cross-Site Port Attacks)

Estas herramientas son propensas a la vulnerabilidad de XSPA (Cross-Site Port Attacks). Al final, una cadena de conexión a una base de datos permite introducir una dirección IP o nombre de dominio de un servidor de bases de datos y un puerto, por lo que si los mensajes de error no han sido controlados, alguien podría manipular estos servicios para valores para escanear servidores. Por supuesto, esta escaneo se puede hacer a tres niveles distintos:
1.- Escanear puertos del propio servidor de bases de datos: Bastaría con manipular el valor del puerto con respecto a localhost. 
2.- Escanear puertos de cualquier servidor de Internet: Esto se podría realizar si el firewall de la infraestructura de red donde está montado el servidor web que hospeda a SIDU no controlar las conexiones de salida. 
3.- Escanear la DMZ: Esto se podría hacer si se averigua la dirección IP local del servidor en el que está hospedado SIDU.
En la última versión, en la 5.3 de SIDU, la vulnerabilidad de XSPA está presente, y basta con hacer unas sencillas pruebas para comprobarlo. En este caso vamos a ver como un puerto está abierto o cerrado según los mensajes de error. Para ello he elegido la web de un diario.

Figura 3: El puerto está cerrado

Cuando el puerto está abierto, tal y como se puede ver arriba, el mensaje de error que se obtiene es un Connection Time-Out, esto es así porque la conexión TCP nunca se abre.

Figura 4: El puerto está abierto

Por el contrario, cuando el puerto está cerrado, el mensaje que se obtiene es completamente distinto. En este caso un "MySQL Gonne Away", porque el puerto TCP se abre pero está esperando el desafío de login de MySQL que nunca llega.

Figura 5: El puerto está abierto y es un MySQL

Si el puerto estuviera abierto, y además hubiera un servidor MySQL en él, se obtendría aún un tercer mensaje de error, informando de que el usuario y la contraseña son incorrectos, con lo que tendríamos el bug de XSPA completo.

SIDU PHP Info: Local IP disclosure

Para poder hacer lo mismo en el servidor local, bastaría con cambiar el puerto con localhost, pero si lo que deseamos es hacerlo con la DMZ, entonces hay que averiguar cuál es la dirección IP de la red local con que se ha configurado el servidor web que hospeda a SIDU. Esto, gracias al propio SIDU es una tarea bastante sencilla.

Figura 6: Conexión a una base de datos SQLlite que no existe

Una de las cosas que trae SIDU, es una conexión para lanzar consultas a bases de datos SQLite que no necesita usuario ni contraseñas. Cuando seleccionas esa opción, no se valida si la base de datos existe o no, así que puedes poner lo que quieras en ella y llegar al panel interno creado para lanzar consultas SQL.

Figura 7: En el menú interno hay acceso a un PHP Info

Lo mejor de todo es que, entre las opciones que han puesto en el menú se encuentra la de lanzar un PHP Info, tal y como se ve en la pantalla.

Figura 8: Acceso a la dirección IP local del servidor que hospeda SIDU

Y por supuesto, con esto llegaríamos a la dirección IP local del servidor web en el que se encuentra hospedado SIDU. Algo bastante sencillo de hacer para cualquier visitante. 

DMZ XSPA (Cross-Site Port Attacks)

Una vez que se tiene la dirección IP local del servidor web, se puede comenzar a escanear el segmento completo, haciendo un barrido a toda la red - en este caso de tipo C - para localizar todos los servidores que allí se encuentran.

Figura 9: Escaneo por puertos de MySQL del segmento de red

Como habría que escanear todos los puertos de todos los servidores, lo suyo sería buscar los well-known más comunes, como el 80 de los servidores web, o el propio puerto de los servidores MySQL de la red.


Figura 10: Connection String Attacks @ DefCON 18

Este tipo de herramientas de administración de bases de datos, donde delegan toda la seguridad en el establecimiento de conexiones, tienen habitualmente los mismos problemas. Os dejo arriba la charla de Connection String Attacks que dimos en DefCON por si te apetece repasar los fallos más habituales, así como los ataques que se pueden hacer.

Saludos Malignos!

lunes, marzo 28, 2016

SubResource Integrity (SRI): Fortifica tu web contra ataques al contenido que cargas remotamente

Durante el mes de Agosto de 2014 le dediqué una entrada a los riesgos de cargar contenido de terceros en tu web. Desde problemas como el Hotlinking o el RSS Injection, hasta poder sufrir ataques como el de la RSA o de malvertesing. Los problemas pueden ser muchos y por eso, en las auditorías de seguridad que realizamos usando nuestra plataforma Faast alertamos cuando una web carga contenido de un sitio de terceros que no está registrado a la misma compañía que estamos analizando.

Figura 1: Fortifica tu web contra ataques al contenido que cargas remotamente

Sin embargo, cargar contenido de terceros puede ser bueno y a veces necesario, sobre todo cuando hablamos del uso de CDNs (Content Delivery Networks) o aplicaciones JavaScript que se utilizan por muchos sitios y se actualizan en un único punto. ¿Cómo mitigar los riesgos de seguridad al cargar contenido externo y seguir disfrutando de las ventajas de hacerlo? Pues la propuesta del W3C es que utilices SRI: SubResource Integrity.

SRI: SubResouce Integrity

La propuesta es bastante sencilla y se basa en añadir a las etiquetas de link o de script dos nuevos campos, que son el campo integrity y el campo crossorigin para verificar que el archivo que se está cargando no ha sido manipulado y que es el mismo que se utilizó en la fase de creación de la web y que se cumple la política de seguridad CORS (Cross-Origin Resource Sharing) que llevan los navegadores - y a la que dedicaré un artículo próximamente -.
Supongamos que tenemos una web a la que llamaremos WEB_A y queremos cargar un Script_JS en ella que está publicado en la WEB_B. Es decir, que en algún lugar en la WEB_A tenemos una entrada SCRIPT SRC=WEB_B/Script_JS. Si un atacante vulnera la seguridad de la WEB_B y cambia el Script_JS, entonces todos los navegantes de la WEB_A verán en riesgo su seguridad. Esto es lo que sucedió, por ejemplo, en el ataque a la web de la RSA Conference hace un par de años.

Figura 3: Ataque a la web de la RSA Conference vía JavaScript de terceros

Pero esto se puede proteger con SRI. Veamos un ejemplo con los blogs MSDN de Microsoft. En este caso, los Blogs MSDN de Microsoft cargan un script d la web de una CDN, en este caso de BootStrapCDN.com

Figura 4: Carga de un script sin protección SRI

Si alguien, como sucedió en el pasado con esta misma CDN, es capaz de manipular el contenido del script que va en el código, entonces todos los visitantes de los blogs de MSDN de Microsoft podrán ser atacados por malvertesing o por exploits que afecten a la seguridad de los equipos de los clientes y a la reputación del sitio.

Configuración de SRI en etiqueta Script

Sin embargo, según indica SRI, la inclusión de ese recurso podría hacerse de manera segura si en la etiqueta script que utiliza la web de los blogs MSDN de Microsoft se añaden las etiquetas integrity y crossorigin. Para ello, el desarrollador de la web primeramente genera el hash del archivo que quiere cargar con un algoritmo SHA-2 y lo codifica en Base64. Ese valor, precedido por el algoritmo que se ha utilizado para hacer el hash se añade a la etiqueta integrity. La opción de crossorigin debe seguir la política CORs de la web que se haya configurado.

Figura 5: Ejemplo de uso de SRI con etiquetas integrity y crossorigin en SCRIPT

Esto se puede calcular de muchas formas y en la misma especificación de SRI se muestra un ejemplo de cómo hacerlo con OpenSSL

Figura 6: Cálculo con OpenSSL del hash un string a cargarse remotamente

En el caso concreto de BootStrapCDN, en la web donde se publica el fichero JavaScript que debe ser cargado para sacar provecho de sus servicios se da directamente el hash que se debe utilizar para hacer la carga segura, algo que no se está utilizando en los blogs MSDN de Microsoft.

Figura 7: Recomendación de uso de SRI en web de BootStrapCDN

Una vez que se ha integrado en la web el recurso protegido con la opción integrity de SRI, el navegador comprobará el hash del fichero recibido antes de ser ejecutado o incluido en la web, por lo que si hubiera sido manipulado o cambiado el archivo a cargar, el navegador generaría una excepción y no lo cargaría.

Figura 8: Si el hash no es correcto, no se ejecuta el Script

De esta forma la carga de contenido de terceros en tu web estaría hecha de una forma más robusta, protegiendo la seguridad de los clientes que visiten tu web aún cuando los proveedores de contenido hayan sido vulnerados. Por ahora, no todos los navegadores implementan esta protección, pero es conveniente que vayas "hasheando" los archivos que cargas remotamente.

Saludos Malignos!

domingo, marzo 27, 2016

Eventos, conferencias y cursos del 1 al 15 de Abril

Esta semana que tenemos por delante aún tiene actividades del mes de Marzo, como el Curso online de Análisis Forense, la conferencia sobre Gobernanza en Internet que impartirá nuestro compañero en Whashington D.C. o la siguiente cita con las Eleven Paths Talks que impartirá Claudio Caracciolo sobre seguridad en entornos industriales, pero aprovechando que es domingo de esta semana de vacaciones, voy a recapitular todo lo que está planificado hasta el próximo 15 de Abril.

Figura 1: Eventos, conferencias y cursos del 1 al 15 de Abril

Durante este periodo vamos a tener nuevas charlas de la serie de Eleven Paths Talks, en concreto están planificadas una dedicada al Testing de Seguridad que dará nuestro CSA en Chile Gabriel Bergel, y otra dedicada a la integración de Latch en el mundo de IoT que dará Jorge Rivera, cabeza pensante detrás de la Hucha protegida por Latch o el Timbre de casa integrado con Latch. La lista completa de charlas ya sabéis que la tenéis en la web: Eleven Paths Talks.

Figura 2: Eleven Paths Talks

También en este periodo yo viajaré a Ecuador para estar toda una semana allí. En principio se han anunciado un par de charlas en TIC Forum Quito y TIC Forum Guayaquil, pero también iré a dar alguna charla en alguna universidad, estad atentos que os daré los enlaces en cuanto estén disponibles.

Comenzarán dos cursos online de The Security Sentinel en los que 0xWord pone los libros. Los cursos serán el día 4 de Abril dedicado a Python para Pentesters y con una duración de 10 semanas, y otro curso que dará comienzo el 11 de Abril dedicado a Auditorías Móviles, de 7 semanas de duración.


Figura 3: Descripción del Curso Online de Python para Pentesters

Como Eleven Paths y acompañados por partners como BlueLiv o Palo Alto también estaremos en París con una jornada dedicada a ciberseguridad, innovación y soluciones tecnológicas a la que puedes apuntarte si te pilla cerca.

Por último, durante este periodo da comienzo en Latinoamérica el OWASP Latam Tour 2016, que parará en estos quince días en Honduras, República Dominicana, Bolivia (La Paz), Ecuador (Quito), Perú (Lima) y Argentina (Patagonia), por lo que si vives por allí, puedes disfrutar de las charlas.
El calendario resumido es el siguiente, con la leyenda [G] si es gratuito y [*] si voy a estar yo dando alguna sesión. Así serán los días y lugares:
Eventos Abril 2016
04: Curso Online Python Pentesters [Online]
04: OWASP Latam Tour 2016 [Honduras] [G]
05: TIC Forum 2016 [Ecuador - Quito] [*] [G]
05: CyberSecurity [Francia - París] [G]
06: CSO Network [Brasil - Sao Paulo]
07: Eleven Paths Talks: Testing de Seguridad [Online] [G]
07: OWASP Latam Tour 2016 [República Dominicana] [G]
08: TIC Forum 2016 [Ecuador - Guayaquil] [*] [G]
08: OWASP Latam Tour 2016 [Bolivia - La Paz] [G]
11: Curso Online de Auditorías Móviles [Online]
14: OWASP Latam Tour 2016 [Ecuador - Quito] [G]
14: Eleven Paths Talks: Latch en el mundo IoT [Online] [G]
15: OWASP Latam Tour 2016 [Argentina - Patagonia] [G]
15: OWASP Latam Tour 2016 [Perú - Lima] [G]
Saludos Malignos!

sábado, marzo 26, 2016

Eleven Paths Talks: Una serie de webcasts tecnológicos

Una de las acciones que hemos comenzado a realizar en Eleven Paths ha sido la planificación de un calendario de seminarios online sobre seguridad informática y tecnología a la que hemos llamado Eleven Paths Talks. Son impartidas vía online y de forma gratuita para que pueda apuntarse cualquier persona a la que le interese la temática. Cada una de estas charlas está impartida por un compañero de Eleven Paths y los asistentes pueden interactuar y participar con preguntas.

Figura 1: Eleven Paths Talks. Una serie de webcasts tecnológicos

Ya se han impartido algunas sesiones, que han quedado grabadas, así que las voy a recopilar en este artículo para que las tengáis a mano y podáis verlas si así lo deseáis. Además, como veréis, tenemos un calendario abierto con las nuevas sesiones que puedes consultar en la web: Eleven Paths Talks.


Figura 2: Eleven Paths Talks 1 - Firma biométrica en entornos sanitarios


Figura 3: Eleven Paths Talks 2 - Equipo de respuesta ante incidentes


Figura 4: Eleven Paths Talks 3 - Conociendo la seguridad en sistemas industriales


Figura 5: Eleven Paths Talks 4 - Metodologías de Testing de Aplicaciones


Figura 6: Eleven Paths Talks 5 - Latch en el mundo IoT


Figura 7: Eleven Paths Talks 6 - Gestión de la seguridad


Figura 8: Eleven Paths Talks 7 - Big Data & InfoSec [Portugués] 


Figura 9: Eleven Paths Talks 8 - Big Data & InfoSec [Español]


Figura 10: Eleven Paths Talks 9 - Defensa en Profundidad 


Figura 11: Eleven Paths Talks 10 - The ISF Standard of Good Practices for Information Security [ENG]


Figura 12: Eleven Paths Talks 11 - Deep Web


Figura 13: Eleven Paths Talks 12 - Técnicas OSINT


Figura 14: Eleven Paths Talks 13 - SealSign en IoT


Figura 15: Eleven Paths Talks 14 - ¿Desaparecerán las contraseñas?

 
Figura 16: Eleven Paths Talks 15 - WordPress in Paranoid Mode

Figura 17: Eleven Paths Talks 16 - Análisis de Riesgos

En el calendario detallado puedes ver las próximas charlas. Como podéis ver, hay sesiones dedicadas a Latch e IoT en la que Jorge Rivera contará como hacer esos proyectos en los que mezcla el mundo físico y la seguridad digital, sesiones en inglés impartida por nuestro CSA en Alemania Sebastian Piecha, charlas en portugués que serán dadas por nuestro CSA en Brasil Leandro Bennaton, o en Español, como las que impartirán nuestro último fichaje como CSA en Chile, Gabriel Bergel. De momento están planificadas hasta Junio.

Saludos Malignos!

viernes, marzo 25, 2016

El derecho a la privacidad en mi lista de derechos

Ya he hablado en muchas ocasiones de este tema, pero como me parece que aún quedan detalles que discutir y repasar, he decidido dedicarle este artículo de reflexión personal, largo, detallado y dejando claro mi punto de vista personal sobre el Caso del iPhone del terrorista de San Bernardino, los comentarios de muchas personas y la actitud de Apple. Vaya por delante que, todo lo referente a este caso me parece una anécdota puntual utilizado con mucho arte el mundo de los medios de comunicación, y que lo realmente importante de este artículo es mi visión personal sobre el asunto del derecho de la privacidad en los terminales móviles, en las comunicaciones y en los datos generados en el mundo digital.

Figura 1: El derecho a la privacidad en mi lista de derechos

La existencia de documentos que recogen los derechos que como Ser Humano poseo, es algo que me agrada. Pero también poseo derechos por el hecho de ser Europeo y por el hecho de ser Español. Hay una buena lista de derechos que, por suerte, nuestros ancestros nos han legado para disponer de un mundo muy cambiado al que teníamos hace quinientos años.

Sobre mis derechos como ciudadano

Los primeros derechos, los que me parecen más importantes, son los que recoge la Declaración Universal de los Derechos Humanos, donde aparecen artículos como el número tres que cita:
“Todo individuo tiene derecho a la vida, a la libertad y a la seguridad de su persona.”
Son los primeros derechos que cita esta carta por ser los que, por todos los firmantes de aquella declaración, fueron elegidos como los más importantes. Derechos que en muchas situaciones han sido vulnerados por enemigos, criminales e incluso familiares. No hay nada más penoso que ver a un padre como llora porque su hijo o su hija ha sido asesinado o asesinada en la calle. O porque un ataque terrorista ha terminado de golpe con la vida de cientos de personas. Hay malos que atacan esos derechos fundamentales, recogidos como digo, en el Artículo 3. Algunos tan malos como el caso de José Bretón que mató y quemó a sus dos hijos, acabando con la vida de dos niños y marcando el alma de su madre y el resto de sus familiares.

El Artículo 5 dice cosas también muy duras, como que ningún ser humano será sometido a torturas, ni a penas o tratos crueles, inhumanos o degradantes. Algo que por desgracia vemos que pasa sistemáticamente en guerras, en misiones de paz, o en el mismo entorno familiar. Pero también en entornos más cercanos como familiares, trata de blancas en las ciudades nada lejanas de nosotros, como puede ser mi Madrid, Barcelona o Zaragoza. Cada cierto tiempo vemos a una mafia nueva forzando a mujeres a prostituirse o un loco que ha encerrado en la gran Alemania a su hija durante años en un sótano para violarla y abusar de ella cuando quiere.

La lista de derechos que una persona tiene por el mero hecho de existir según la Declaración Universal de los Derechos Humanos es larga. Derecho a la Justicia, a la presunción de inocencia, a defensa, a no ser desterrado,… derecho al Honor, tal y como cita el Artículo 12. Derecho a tener una nacionalidad, a pedir asilo político, a formar una familia, a la propiedad privada, a ser libre de pensamiento y religión, etcétera. Una buena lista de derechos fundamentales que, por desgracia, muchas veces son vulnerados por gobiernos que deben ser sancionados.

También dice el Artículo 21 que todo ciudadano tiene derecho a participar en el gobierno de su país, directamente o por medio de sus representantes. Hay una parte además que dice cómo debe ser el sistema de elección de sus representantes. El punto 3 del artículo 21 dice: “La voluntad del pueblo es la base de la autoridad del poder público; esta voluntad se expresará mediante elecciones auténticas que habrán de celebrarse periódicamente, por sufragio universal e igual y por voto secreto u otro procedimiento equivalente que garantice la libertad del voto”. Es la base sin duda de la democracia, algo que a mí me gusta tener como derecho universal.

Derechos fundamentales también para la Maternidad y la Infancia, que dicen cosas como “La maternidad y la infancia tienen derecho a cuidados y asistencia especiales. Todos los niños, nacidos de matrimonio o fuera de matrimonio, tienen derecho a igual protección social.” Y entre ellos el derecho a la Educación, la Cultura y a participar en la educación de tus hijos.

Son una buena cantidad de derechos que, por desgracia, no se garantizan y cumplen en todos los países de igual forma. Y lo que es peor, que muchas veces son vulnerados por malos que en un determinado momento ejercen un poder ancestral basado en la fuerza y el poder, para arruinar esos derechos a determinadas personas que sufren y que se convierten en víctimas. Víctimas que hay que defender.

Para garantizar estos Derechos Universales, entre los que no está citado el de la privacidad de las comunicaciones, se dice en el Artículo 28: “Toda persona tiene derecho a que se establezca un orden social e internacional en el que los derechos y libertades proclamados en esta Declaración se hagan plenamente efectivos.” Es decir, que la sociedad en la que vive cada individuo, sea una comunidad, un país o cualquier otro orden social, debe proteger estos derechos. Ese orden social es el que debe garantizar los derechos universales, no una empresa como decía en mi artículo de "A los CEOs de las multinacionales no los elige el pueblo". Las empresas tienen otros objetivos, como el lucro y maximizar los beneficios para los accionistas.

Y por último, el Artículo 30 de la Declaración Universal de Derechos Humanos dice:
“Nada en esta Declaración podrá interpretarse en el sentido de que confiere derecho alguno al Estado, a un grupo o a una persona, para emprender y desarrollar actividades o realizar actos tendientes a la supresión de cualquiera de los derechos y libertades proclamados en esta Declaración.”
Es curioso como una declaración marca en el artículo 3 que todo ser humano tiene derecho a la vida y en el artículo 30 dice que nada en esta declaración puede ser interpretado para acabar con un derecho universal. Alguno puede preguntarse… ¿por qué pone esto en el 30? ¿Por qué esta descarga de responsabilidades? Pues porque alguien podría llegar a pensar que, por ejemplo, proteger el derecho a la educación, o a la libertad de culto, podría ser más importante que el derecho a la vida. Es decir, que un estado, por proteger el Derecho a la Libertad de Culto, decidiera aplicar la Pena de Muerte a alguien y acabar con el Derecho a la Vida citado en el artículo 3. Pero… así es. Hay países en los que hay Pena de Muerte por algunos delitos que atentan contra algunos de los Derechos Humanos . Algunos países tan grandes e importantes en el mundo como Estados Unidos. Por ejemplo, en España no existe la Pena de Muerte. Pero en algunos lugares de Estados Unidos sí.

Como habéis visto, la privacidad en las comunicaciones o en los dispositivos móviles no está en la Declaración Universal de Derechos Humanos. Por suerte, los que vivimos en sociedades del primer mundo contamos con más derechos. Derechos como los que nos otorga la Unión Europea por ser España un país que está dentro ella.

En la Carta de los Derechos Fundamentales de Unión Europea se recoge la interpretación que de los Derechos Universales se tiene en la Unión, y hay cosas matizadas como que no solo tenemos derecho a la vida, sino a que tenemos derecho a dignidad en la vida. Algo que tiene que ver también con la forma en la que morimos. Por supuesto, por ser Europeo, tengo derecho a que nunca se me aplique la Pena de Muerte, algo que ningún país de la Unión Europea aplica, a diferencia de Estados Unidos - país creador del iPhone - donde como ya he dicho sí hay Pena de Muerte.

Esto es porque la sociedad de Estados Unidos no es la misma que la sociedad de Europa. Sus derechos los han elegido ellos. Ellos tienen derecho a llevar armas, en Europa ese derecho no existe. Y a mí me gusta que no exista. En Europa también existe protección contra el despido, prohibición del trabajo infantil o solidaridad social por parte de nuestros países. Son derechos que se escribieron y que me gustaría que se cumplan en todos los países de la Unión.

Pero es que además, también quiero que se cumplan mis derechos como ciudadano de España y, por ende, la legislación que debe protegerlos. Derecho a una vivienda, derecho al trabajo, derecho a que las penas de cárcel se orienten a la reinserción y no al castigo. Derecho a Huelga, derecho a libre asociación, derecho a que el domicilio sea inviolable “Ninguna entrada o registro podrá hacerse en él sin consentimiento del titular o resolución judicial.” Derechos como español que deben protegerse. Que los quiero. Y que si el gobierno que esté en un determinado momento no los respeta y protege como mi opinión de ciudadano me de a entender, voy a defender. Usando el derecho a huelga, votando a otro o usando mi derecho a expresarme libremente sin coacción. Y si me quitan esos derechos, lucharé por recuperarlos.

Y para que se cumplan los derechos a nivel nacional, europeo e internacional, debemos contar con leyes y justicia que hagan que se cumplan. Una ley que sirva para poder hacer cumplir, de la mejor forma posible, la protección de los derechos de los seres humanos, desarrollando un articulado detallado y aplicando una serie de sanciones contra aquellos que la incumplan. Así, si alguien viola un domicilio en España para robar, puede ser sancionado con la retirada del derecho de libertad y acabar en la cárcel. Por ejemplo, en ciertos estados de USA si alguien viola el domicilio, la persona que hace el allanamiento puede ser privada por el dueño de la vivienda del derecho a la vida. Sus leyes les permiten hacer eso.

De hecho, en Estados Unidos un terrorista puede ser privado del derecho de libertad, del derecho a la vida si es condenando a pena de muerte e incluso puede ser enviado a alguna cárcel – como ha sucedido durante muchos años en Guantánamo – a sufrir torturas y perder más derechos humanos. Es SU LEY.

En España tenemos otra ley. No se pueden hacer cosas como lo de Guantánamo o condenar a alguien a una inyección letal o una silla eléctrica. Eso sí, cuando un juez lo pide, en España, se hacen análisis forenses a dispositivos móviles. Y esto se hace constantemente. Constantemente es constantemente. Quiero decir, cuando José Bretón mata a sus hijos, se hace un análisis forense de su dispositivo móvil. Lo hacen los cuerpos de seguridad del estado siguiendo un mandato judicial para intentar esclarecer por dónde se movió José Bretón el día que desaparecieron sus hijos. Para saber dónde los podía haber descuartizado, quemado y enterrado.

Pero no solo en España. En Francia, en Alemania, en USA, en UK, en Italia, en Holanda, en Suecia, en Noruega, en cualquier país defensor de los Derechos Humanos, de los derechos de la Carta de Derechos Fundamentales de la Unión Europea y que cuentan con una Ley de país del primer mundo, se hacen análisis forenses de dispositivos móviles. Para muchos, esos análisis forenses de terminales móviles de ladrones, secuestradores, asesinos, terroristas, acosadores, etc… puede suponer una vulneración de la privacidad de esos malos, pero es la ley que hemos elegido los que vivimos en estos países para defender los Derechos Humanos, los Derechos Fundamentales y los Derechos que nos damos en las Cartas Magnas que sirven de fundación de nuestros países.

Y sí, a veces la defensa de la ley obliga a los jueces a tomar la decisión de vulnerar ese derecho a la privacidad de los malos para poder defender los derechos humanos de los individuos no-malos de nuestra sociedad. Para poder defender los derechos de los niños asesinados, de las mujeres acosadas, de los seres humanos comprados, vendidos y explotados. Es así.

Pero es que la paradoja de nuestra ley en España es que para defender el Derecho a la Privacidad de un ciudadano, vulnerado por otro ciudadano, tal vez un juez se vea obligado a vulnerar el Derecho a la Privacidad del malo para defender el Derecho a la Privacidad del bueno. ¿Curioso, no? Pero es la labor de los jueces, que por eso tienen tan dura misión y son tan importantes los tribunales en nuestra sociedad.

Y como se hacen análisis forenses, surgen un montón de empresas que proporcionan herramientas, de investigadores de seguridad que desarrollan exploits, procesos, scripts, mecanismos o estudios sobre cómo hacer este trabajo. Y se dan charlas en DefCON, en BlackHat, en la RSA Conference, y se crean empresas por todo el mundo y se promocionan en conferencias, y se colabora con los cuerpos de seguridad de los estados, etc…. ¿A alguien le sorprende esto?

Sobre Apple y el terrorista de San Bernardino

Dicho todo esto, voy a intentar ahora centrarme un poco más en detalle en el tema que tanta polémica ha desatado. El tema de la colaboración de Apple con el FBI para investigar las conexiones de un terrorista a través de los datos de un terminal iPhone. Para ello, quiero dejar algunos hechos primero, para luego explicar mi conclusión personal.
Hecho 1: En EEUU todos los días se hacen análisis forenses de iPhone y nadie le importa nada. De hecho, en algunos casos se ha forzado a desbloquear el terminal por medio de Touch ID y no he visto a nadie quejarse a voz en cuello en Twitter. Pero es que también ha pasado en Noruega, dentro de la Unión Europea.

Hecho 2: En EEUU todos los días se hacen análisis forenses de iPhone y no he visto a Apple sacar una nota de prensa expresando su deseo de defender la privacidad de sus clientes.

Hecho 3: Si el FBI consigue desbloquear el terminal iPhone del terrorista con la ayuda de una empresa externa a Apple le parece perfecto. No problema.

Hecho 4: A un terrorista en EEUU se le puede quitar el derecho a la vida, el derecho a la libertad, el derecho a no ser torturado, y a nadie le ha importado mucho hasta ahora. Solo a personas realmente comprometidas con la defensa de los derechos humanos, a las que admiro.

Hecho 5: EEUU me importa lo justo, pero si cuando yo voy a EEUU tengo que cumplir su ley y si no lo hago me juego la pena de muerte, cualquier empresa que venga a España tendrá que cumplir la ley de mi país.

Hecho 6: Quien debe defender mis Derechos Universales, mis Derechos Fundamentales por ser Europeo y mis derechos por ser español deben ser los representantes que hayamos elegido democráticamente mis compatriotas y yo. No una empresa, un consejo de administración o ciudadanos de otro país, como EEUU. Ellos deciden sus garantes, yo decido con mis compatriotas los míos. 
Hecho 7: Apple, teniendo la posesión de los certificados digitales raíz en los que se basa el code-signing que protege su sistema operativo iOS siempre puede romper la seguridad del terminal y sacar los datos. Sorry, puede hacer lo que quiera. Si pensabas que no, siento darte el disgusto.

Hecho 8: Apple podría haber recibido el terminal y devuelto el passcode sin tener que llegar a los tribunales. De hecho, podría haberlo hecho sin que hubiera ruido mediatico alguno.

Hecho 9: Apple ha sido parte de PRISM, como parte del programa de colaboración – sin supervisión judicial – de los datos de los usuarios de sus tecnologías que la NSA necesitaba para luchar contra el terrorismo.

Hecho 10: Otras empresas – que también aparecían en PRISM – ya rompieron la privacidad de sus servicios para pillar a los malos, como hizo Google con el pederasta reincidente al que detecto analizando su correo electrónico y denunció a los cuerpos de seguridad, o Microsoft con un pedófilo, que lo detecto escaneando sus ficheros en OneDrive.

Hecho 11: Si Apple entrega lo que el juez le pidió, le estaría dando una llave maestra para hacer forense en local a todos los dispositivos. Eso sí, todos los que luchan contra esta llave, que recuerden que si tienen Touch ID, no necesitan nada más que la huella dactilar que te toman en la frontera o el dedo que tienes en la mano.
Dicho todo esto, mis conclusiones personales y opiniones de toda esta historia son las siguientes:
1) Estoy a favor de la privacidad. Quiero que los jueces y la ley de mi país protejan mi privacidad. Especialmente cuando empresas vigilan mi navegación por todo Internet - como en el caso de Facebook - o se saltan los controles de privacidad de mi navegador - como en el caso de Google -, espían mi WiFi - como en el caso de Google Car - o me trackean para hacer negocio con mis datos - como en el caso de Apple -. Pero no quiero que defiendan la privacidad de un malo que atenta con los derechos de un compatriota mío. Privacidad sí, pero no a cambio de impunidad para los malos. Si tu hija está secuestrada por un tipo y su vida está en riesgo, estaré de acuerdo con que se vulnere la privacidad del malo para saber dónde puede tenerla.

2) Los garantes de mis derechos no son las empresas. Quiero que las empresas cumplan la ley de mi país, es decir, el derecho nacional, el derecho europeo y el derecho internacional, que son las tres esferas que defienden mis derechos. No lo que diga la ley de EEUU, a pesar de ser un país tan importante en el mundo, que tiene poco que ver con mis derechos. Sus debates y sus decisiones con cosas que les atañan a ellos, son cosa suya. Pero cuando un juez de mi país - que no es un país que no respete los derechos humanos - dé una orden a una empresa, quiero que la cumpla si está sujeta a la ley. Incluso la ley de mi país permite a las empresas defenderse vía legal, porque es un derecho que tienen. Y por supuesto, menos aún es garante de mis derechos lo que decida una empresa en su entender de lo que es el bien para todos.

3) Ruido mediático interesado. Apple podría haber recibido el terminal, hecho el trabajo internamente, devolver el passcode sin necesidad de dar ninguna puerta trasera o troyano y se hubiera quedado en uno más de los miles y miles de iPhones a los que se hace un análisis forense en EEUU. Ha sido más marketing que otra cosa. Y si no ha sido así, entonces ha sido negligencia de alguno.

4) Master KEY: No estoy a favor de que se de una llave maestra a los cuerpos de seguridad de un país que no es garante de mis derechos, menos cuando salió un documento en pastebin en el que se decía que la NSA había estado espiando mis comunicaciones con PRISM, el programa en el apareció colaborando Apple – yo tengo un iPhone – y en el que no había supervisión judicial si el ciudadano era extranjero – como yo, que soy español -.
Con esto artículo solo pretendo mostrar mis opiniones personales, más allá de comentarios de 140 caracteres con frases manidas, reflexiones simplistas o mensajes populistas. Me gusta pensar en qué modelo de sociedad quiero tener en mi país y procuro pensar lo que me gustaría que mejorara en mi país, como ya he publicado muchas veces [Braindump: mi grito en "demo"cracia]. Estoy dispuesto a debatir con cualquiera, escuchar opiniones de otros e incluso matizar mis pensamientos con lo que me enseñes, pero de base, aquí está lo que yo pienso.

Saludos Malignos!