Showing posts with label en. Show all posts
Showing posts with label en. Show all posts

Saturday, February 18, 2017

Malware en Android Discovering Reversing Forensics

Malware en Android Discovering Reversing Forensics


Ya está disponible en libro número 38 de la colección de 0xWord, en este caso dedicado al mundo del malware en sistemas operativos Android. El título que lleva este libro es "Malware en Android: Discovering, Revesing & Forensics" y ha sido escrito por Miguel Ángel García del Moral, uno de los ingenieros que han estado detrás de nuestro Tacyt en Eleven Paths durante más de un año hasta que vio la luz, y que además antes cursó el Master de Seguridad de la UEM donde presento como PFM SCCAID integrado con Latch.

Figura 1: Malware en Android: Discovering, Reversing & Forensics

El libro se centra en cómo es la arquitectura del malware en Android, en cómo se puede hacer reversing de las apps, en cuáles son los trucos que utilizan los creadores de estas apps maliciosas y cómo se puede pillara a un bicho con malas intenciones para nuestro sistema.

Figura 2: Malware en Android. Discovering, Reversing & Forensics

Para que veas el contenido en detalle, he subido a mi canal SlideShare el contenido de libro, así podrás ver todos los capítulos que se tocan en el libro, y los ejemplos con los que se explican cada una de las partes.

Figura 3: Malware en Android: Discovering, Reversing & Forensics

Este es el libro número 38, y también pasara a formar parte de la colección completa y del pack Mobile Security del que vamos a quitar en breve Hacking con iOS, ya que solo quedan unos ejemplares - menos de 10 - en stock.

Saludos Malignos!

Available link for download

Read more »

Tuesday, February 14, 2017

Esteganografía en TCP IP Una Proof of Concept en Ruby

Esteganografía en TCP IP Una Proof of Concept en Ruby


Hace tiempo que decidí echar un ojo al concepto de ocultar información dentro de los protocolos TCP, UDP o IP. Mi idea era generar una pequeña prueba de concepto dónde pudiera utilizar un protocolo común, el cual será utilizado como Covert Channel, y transmitir información de manera oculta, como una prueba de esteganografía. Tras estudiar diferentes opciones y revisar algún paper que habla de ello - que la idea no es nueva ni mucho menos y en el libro de Esteganografía & Estegoanálisis se le dedica un capítulo a esta parte -, opté por utilizar los flags de TCP y el número de secuencia de los paquetes TCP.

Figura 1: Esteganografía en TCP/IP: Una PoC en Ruby

En esta prueba de concepto, los paquetes TCP son reales, pero no tienen ningún sentido. Es cierto que se podría lograr un ejemplo de esteganografía más real que permitiese transmitir información sobre tráfico coherente TCP que se genere en el equipo. Es cierto, que si un administrador de red lee el tráfico que generaremos no me encontrará coherencia, y pensará que es tráfico erróneo, pero el mensaje se encuentra ahí, oculto.

Planteamiento

El primer planteamiento es ocultar información dentro de las estructuras que proporciona el protocolo TCP. Si nos fijamos en los flags más famosos de este protocolo, se tienen 6huecos” para almacenar bits. Los flags son: SYN, ACK, PSH, URG, RST y FIN. Aquí tenemos 6 bits y utilizando el número de secuencia o Sequence Number del protocolo se puede aumentar el ratio de bits. Para la prueba de concepto se ha decidido utilizar, solo 2 bits más con el número de secuencia.

En otras palabras, si queremos enviar el mensaje “esto es un secreto”, cada carácter se enviará oculto en los flags y en el número de secuencia de cada paquete TCP. A continuación desglosamos los bits de, por ejemplo, la letra "e", que se traduce en “01100101”, por lo que los 2 bits más significativos serán introducidos como número de secuencia, siendo éste el valor “1”. En el caso de ser “10” sería un “2”, y en el caso de ser “11” sería un “3”. El resto de bits menos significativos se corresponden con los 6 flags comentados anteriormente. Los flags RST, ACK y URG irían a 1. En la captura de Wireshark se puede visualizar.

Figura 2: Visualización de transmisión de letra "e"

En la máquina destino tendremos un programa que es capaz de leer el tráfico TCP y decodificar el tráfico oculto en TCP. ¿Cómo sabemos que el tráfico es especial? Para esta PoC hemos utilizado un puerto destino concreto como clave. Es decir, cuando recibamos un TCP destino 3030 entendemos que es un paquete con esteganografía.

El proceso de decodificación es el proceso inverso al de ocultación. El programa remoto leerá el número de secuencia y esos 2 bits (del 0 al 3) serán los bits más significativos. Después concatenaremos los flags, y obtendremos de nuevo un valor de 8 bits. Este valor se identifica con un carácter. Una vez entendido el mecanismo sencillo que se utilizará para ocultar los caracteres en los paquetes TCP vamos a hablar de la implementación.

Implementación

Para llevar a cabo la prueba de concepto se utilizó Ruby. La librería PacketFu, la cual es parecida a Scapy en Python, permite “jugar” y crear paquetes TCP y datagramas IP a nuestro antojo. Ya fue utilizado para el Port-Knocking con Latch y el modo paranoia. En la siguiente imagen se puede ver el código de la función main. El coder recibe 2 parámetros: Dirección IP destino y mensaje a ocultar en el protocolo TCP.

Figura 3: Coder. Implementación de la función main

El coder invoca un método denominado send_message, el cual proporciona la funcionalidad de ocultar el mensaje en el protocolo TCP, tal y como se explicó anteriormente. La función send_message inyecta el tráfico en la red a través de la función inject y prepara mediante unpack los caracteres que forman el mensaje en formato bytes.

Figura 4: Implementación de la función send_message

Hay una función importante como es write_byte_into_packet que permite ocultar la información en el paquete TCP gracias a PacketFu, tal y como puede verse en la siguiente imagen. En esta imagen se puede ver la explicación de dónde se oculta dentro de un paquete TCP los bits.

Figura 5: Función writ_byte_into_packet

Y, ¿El orden?

El orden de los paquetes TCP importa, ya que no es lo mismo que la “e” de “esto es un secreto” llegue antes o después que la “s”. El mecanismo válido en un ámbito real sería utilizar el Sequence Number para lo que es, y utilizar el ACK Number cómo lo estamos utilizando nosotros en esta prueba de concepto. En este caso, para evitar problemas se ha decidido enviar los paquetes con 1 segundo de diferencia, aunque en entornos LAN no habría problema.

En la siguiente imagen se puede visualizar como el emisor lanza el mensaje a una dirección IP concreta y al puerto 3030. El mensaje es “esto es un secreto”.

Figura 6: Envío del mensaje secreto con esteganografía en TCP/IP

El receptor recibe el tráfico y puede obtener el mensaje oculto uniendo los bits del Sequence Number y los flags TCP, tal y como se puede ver en la imagen. El resultado es el mensaje original. Si viéramos con Wireshark el tráfico veríamos paquetes TCP que podrían ser considerados incoherentes, pero que esconden el mensaje.

Figura 7: Lectura del mensaje por el covert channel en Kali Linux

Quiero agradecer a mi compañero Daniel Ruiz su apoyo y colaboración en llevar la prueba de concepto hacia adelante.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking" y “Pentesting con Powershell”

Available link for download

Read more »

Monday, February 13, 2017

MetaShield para Exchange y Outlook Online en Office 365 elevenpaths Metadatos Office365 Exchange

MetaShield para Exchange y Outlook Online en Office 365 elevenpaths Metadatos Office365 Exchange


Parece que no ha pasado el tiempo desde que empecé a jugar con los metadatos en documentos Microsoft Office y los metadatos en documentos Open Office. De aquellos juegos surgió la idea de comenzar a desarrollar FOCA, que culminó en la publicación del Whitepaper titulado "Disclosing Private information from metadata, hidden info and lost data" que publicamos para la edición de BlackHat Europa 2009, de hace ya siete años. Todos aquellos trabajos culminaron en una herramienta de protección llamada MetaShield Protector, que era útil para evitar fugas de información en la empresa y cumplir la legislación, por ejemplo el Esquema Nacional de Seguridad, y que incluso llegó a recibir un premio a la innovación.

Figura 1: Metashield Protector para Exchange y para Outlook 365

De aquellos inicios sacamos una versión del motor que aplicamos solo a los servidores web IIS de Microsoft, pero los problemas con los metadatos en los documentos son tantos que al final sacamos una versión para analistas forenses.


Figura 2: Demostración del funcionamiento de MetaShield Forensics

Con el comienzo del proyecto de Eleven Paths, hicimos un ejercicio de re-ingeniería del producto, dividimos la arquitectura del sistema en engines y puntos de limpieza, para acabar sacando versiones de MetaShield Protector 3.0 para servidores de ficheros, para SharePoint, para sistemas Windows de escritorio, una versión para Microsoft Outlook en versión cliente pesado y una versión online para que todo el mundo pueda analizar metadatos desde la web "MetaShield Analyzer".

Figura 3: Consola de administración de MetaShield Protector 3.0

Después, avanzamos en la evolución del producto sacando una Consola de administración centralizada, un engine en versión stand alone y una versión para ICAP que se puede integrar con cualquier Web Application Firewall, tal y como mostró mi compañero Tony Bordón en esta presentación en el pasado Security Day 2016_.


Figura 4: Demostración de MetaShield Protector for ICAP integrada con FortiWeb

En el mundo del correo electrónico, las últimas versiones que hemos presentado son: Microsoft Protector para Microsoft Exchange Server, permitiendo que para el usuario sea totalmente transparente esta limpieza de metadatos e información oculta en los documentos que envía, lo que permite que no importe qué cliente de correo o sistema operativo esté utilizando el usuario.

Figura 5: MetaShield Protector for Exchange Server. Se eligen los usuarios a proteger y listo.

En segundo lugar hemos presentado el cliente de MetaShield Protector para Office 365 integrado directamente en Outlook Online, lo que hace que desde cualquier navegador de Internet se pueda tener la limpieza de metadatos con MetaShield Protector, incluso un iPad o un iPhone.


Figura 6: Demostración de funcionamiento de MetaShield Protector para Outlook Online en Office 365

Ahora la familia de MetaShield Protector ha crecido mucho, y se pueden evitar las fugas de datos de las empresas de forma sencilla controlando todos los puntos de fuga de los sistemas de manera centralizada.

Figura: Familia de productos de MetaShield Protector

Aún así, para los sistemas Apache, Web Clean-Up y OS X estamos desarrollando un módulo especial que tendremos en el futuro, así que es posible que próximamente vuelva a hablar de este proyecto de investigación personal que surgió de un trabajo en un blog por aquí.

Saludos Malignos!

Available link for download

Read more »

Hoy comienza la campaña de Verano 2016 en 0xWord 0xWord Libros VERANO2016

Hoy comienza la campaña de Verano 2016 en 0xWord 0xWord Libros VERANO2016


Como todos los años, en 0xWord se está trabajando para cerrar el año y hacer inventario. Esta es una tarea que se realiza habitualmente durante el periodo estival veraniego, así que para que todo el que quiera disfrutar de alguno de los libros, pueda hacerlo en sus vacaciones, hemos lanzado desde hoy 2 de Julio, y hasta el 12 de Julio la campaña de verano 2016.

Figura 1: Hoy comienza la campaña Verano 2016 en 0xWord

Para ello hemos rehecho todos los packs con el objeto de incorporar a ellos los libros más recientes como el de Hacking con Tecnologías Web o Got Root. En total tienes 35 libros disponibles que puedes adquirir por separados o en uno de los 11 packs oferta que tienes a tu disposición, más el mítico y obra de coleccionista Pendrive de Cálico Electrónico que hicimos en su momento.

Figura 2: Algunos de los libros del catálogo disponible de 0xWord

Todo el material estará durante diez días con un 10% de descuento aplicando el cupón descuento #VERANO2016 en el proceso de compra.

Figura 3: Cupón con 10% de descuento. Al aplicarlo se descontará el 10% de la compra

Como sabéis, los gastos de envíos son menores en Madrid, y si lo recoges en nuestra tienda de 0xWord en Móstoles no tienes que pagarlos. Después del 12 de Julio, los precios volverán a ser los mismos y anunciaremos el cierre a finales de mes para hacer el proceso de inventario y tomarnos las merecidas vacaciones.

Saludos Malignos!

Available link for download

Read more »

Sunday, February 12, 2017

Intentan envenenar agua de un planta depuradora en UK

Intentan envenenar agua de un planta depuradora en UK


Los ataques a los sistemas SCADA utilizados en el control industrial es algo que puede tener consecuencias graves si no se han hecho los deberes de seguridad adecuados. Los sistemas industriales utilizados en estos entornos están formados por una buena cantidad de componentes de distintos fabricantes, PLCs, protocolos especiales y sistemas que a veces pasan muchos años antes de ser cambiados - o tan siquiera actualizados -. Y por supuesto, tienen vulnerabilidades que aparecen en sistemas PLCs [PLCs exponen passwords, PLCs vulnerables a Brute-Force]  en el equipamiento utilizado en la construcción del sistema y en el software que se haya desarrollado a medida para dicha plataforma.

Figura 1: Intentan envenenar el agua en una planta depuradora en UK

Es un ecosistema complejo del que hay que preocuparse con cariño. Nuestro compañero en Eleven Paths Claudio Caracciolo (@holosec) conoce a la perfección estos entornos por su experiencia trabajando con ellos,  y nos explicó en detalle cómo funciona en la charla que impartió dentro de las Eleven Paths Talks y que puedes ver online ya.


Figura 2: Comprendiendo la seguridad en sistemas industriales

Dicho esto, hoy quería centrarme en un caso explicado en el último informe Data Brech Digest publicado por Verizon, en el que cuentan cómo fue la investigación para descubrir el ataque que se había producido a un planta depuradora de agua de un distrito en Reino Unido. Los equipos de gestión del funcionamiento de la planta depuradora se dieron cuenta de que algo había pasado cuando saltaron las alarmas de control que vigilan que nada vaya mal en la planta al detectarse que la mezcla de componentes químicos que se estaba usando podría dañar la salud de las personas que la bebieran.

Figura 3: Intento de configurar agua "no potable" variando los compuestos químos

Esto sucede porque los sistemas SCADA se crearon para ayudar a los ingenieros a tomar las decisiones de seguridad más adecuadas, pero además del sistema informatizado y automatizados existen controles que verifican que ningún fallo provoque una situación no deseada, como la de que el agua que se entrega a los usuarios sea de mala calidad y nociva para su salud.

Errores en la gestión de la seguridad de la planta depuradora

Tras la investigación realizada por el Equipo de Respuesta ante Incidentes, la explicación resulto ser la acumulación de una serie de BASICS de seguridad no realizados por la empresa que gestiona el IT de la planta de seguridad y que os paso a resumir a continuación.

1) Arquitectura no segmentada de la red
La empresa cuenta con una aplicación web/mobile a la que los clientes se pueden conectar para la gestión de sus cuentas y sus pagos. Esto está alojado en un servidor web, pero que tiene conexión directa con el servidor SCADA, basado en un AS/400 (que también debería fortificarse). Este servidor AS/400, además, tenía conexión de a Internet, por lo que una vez llegado a él se podría sacar datos. Llegando a un servidor, es fácil acceder a las credenciales de acceso a otros servicios, incluso acceder a las passwords de gestión de los PLCs e incluso mucho más fácil, ya que puede que haya sistemas PLC sin passwords o fácilmente saltables.
Figura 4: Arquitectura de red de los sistemas de la planta. Desde el AS/400 acceso a todo.

2) Aplicación de pagos con mala gestión de identidades
Cualquier cliente de la empresa se podía conectar al sistema de pagos con un sistema de credenciales basado en usuario y contraseña, sin que hubiera ninguna protección de Segundo Factor de Autenticación o Autenticación Robusta, lo que permitía a un atacante hacerse fácilmente con alguna cuenta de usuario con ataques simples de phishing, troyanos, etcétera.
3) Aplicación de pagos con vulnerabilidades en el código del backend
La aplicación de pagos no estaba correctamente auditada y desde la sesión de un usuario era posible explotar bugs en el backend que permitieran acceder a los ficheros del servidor. No se sabe si la vulnerabilidad permitía subir una shell, era un ataque de LFI, o un Directory listing, pero con este fallo se podía acceder a los ficheros del servidor.
4) Credenciales de acceso al sistema SCADA en AS/400 sin 2FA
De nuevo, el acceso al sistema SCADA utilizaba usuarios y contraseñas sin ninguna protección de Segundo Factor de Autenticación, así que cualquiera que se hiciera con las credenciales podría entrar a manipular el servidor.
5) Credenciales almacenadas en el servidor de la aplicación de pagos
Como sucede en muchos casos, las herramientas de adminsitración de servidores permiten guardar información de las conexiones que realizan los técnicos para que sea cómodo acceder a ellos a golpe de clic. Según parece, en el servidor de la aplicación de pagos había un fichero .INI con las credenciales del sistema SCADA, así que una vez accedido a los ficheros del servidor fue fácil obtener el acceso al sistema SCADA.
Figura 5: Cúmulo de fallos en la gestión de las credenciales de acceso a los sitemas

6) Reutilización de credenciales en distintos sistemas
Al final, los atacantes se pudieron llevar la base de datos de los usuarios, ya que las credenciales funcionaban en otros sistemas conectados, como el servidor que hospedaba la aplicación financiera de la planta.
Por suerte, al manipular las cantidades de productos químicos con las que se hace la depuración del agua, las alertas de seguridad de la planta levantaron las alertas. De nuevo, un caso en el que el cúmulo de errores de seguridad lleva a que casi Security se convierta en Safety y haya un verdadero problema para los clientes de esta planta. Hay que agradecer que las Infraestructuras Críticas aplican conceptos de defensa en profundidad para no depender totalmente de un sistema informatizado y, en este caso, ha evitado una catástrofe.

Saludos Malignos!

Available link for download

Read more »

Friday, February 3, 2017

El derecho a la privacidad en mi lista de derechos

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!

Available link for download

Read more »

Tuesday, January 31, 2017

Configuration Huawei SmartAX MT882 MT882a ADSL en routeur

Configuration Huawei SmartAX MT882 MT882a ADSL en routeur


Les utilisateurs de modem Huawei SmartAX MT882a peuvent configurer leur modem ADSL en routeur. Ce mode consiste à paramétrer le modem comme une passerelle, la procédure de configuration du modem FAWRI est divisée en deux étapes.



Configuration IP

Sous Windows XP, cliquez sur Démarrer - Panneau de configuration - Connexions réseau et Internet - Connexions réseau

Clic droit sur « Connexion au réseau local », puis sélectionnez « Protocole TCP/IP » ensuite cliquez sur « Propriétés »


Cochez loption « utiliser ladresse IP suivante » après entrez les informations suivantes:

192.168.1.2 dans « Adresse IP »

255.255.255.0 dans « Masque de sous-réseau »


Après avoir entré les bonnes informations, cliquez sur « OK » pour terminer.


Configuration Huawei SmartAX

Pour configurer votre modem MT882a en routeur, connectez votre appareil à lordinateur via un cable Ethernet

Ouvrer votre navigateur internet, puis entrez http://192.168.1.1 dans la barre d’adresse

Entrez le nom d’utilisateur et le mot de passe, par défaut sest « admin »

Cliquez sur « OK » pour accéder à linterface de gestion du modem


Cliquez sur longlet « Basic » (1) ensuite sur « WAN Setting » (2) pour modifier les options suivantes:

* vci (3): 38
* mode (4): routing
* encapsulation (5): PPPoe

Vous pouvez changez « username » (6) et « password » (7) par défaut, cliquez sur « Submit » (8).

Cliquez sur « Tools » (9) - « Reboot » (10) - « Resart » (11) pour terminer la configuration de votre routeur Huawei.


comment configurer Modem SmartAX MT882a/MT880, how to configure SmartAX MT882a/MT880, configurer le modem SmartAX MT882a/MT880 en routeur,


Available link for download

Read more »

Thursday, January 19, 2017

Mi nueva vida como Chief Data Officer en Telefónica

Mi nueva vida como Chief Data Officer en Telefónica


La verdad es que no esperaba que se generara tanto revuelo con mi nuevo rol dentro de Telefónica, pero el impacto en la sociedad de esta compañía es mucho más grande de lo que uno se imagina, que hasta Andreu Buenafuente se ha disfrazado como si fuera yo - con el que tuve la suerte de estar en un programa -. Han aparecido muchos artículos y en algunos de ellos, los datos no eran del todo correctos. Para los que no os haya llegado aún la noticia, desde el martes he tomado el rol de Chief Data Officer en Telefónica para ocuparme de una serie de iniciativas dentro del grupo que circulan alrededor del mundo del Big Data y la Seguridad de la Información, principalmente.

Figura 1: Mi nueva vida como CDO en Telefónica

La verdad es que no pensaba hablar mucho de este nuevo rol y esperar, como hice con el lanzamiento de Eleven Paths, unos meses hasta que me hubiera dado tiempo a organizarme bien, pero viendo que salió en tantos medios de comunicación, e incluso en el Telediario Nacional de TVE1, creo que no va a ser posible esperar ese tiempo, así que os cuento un poco en resumen qué he estado haciendo en Telefónica estos años y qué voy a hacer ahora.

Figura 2: El popular presentador Andreu Buenafuente con el gorro de rallas y las melenas

Dese que llegué a la casa hace ya más de 4 años - como sabéis no acabo de fichar precisamente - he estado cambiando de rol varias veces, pero siempre llevando la tecnología y la seguridad informática como epicentro. Primero estuve como asesor/consultor de nuestro hoy presidente D. José María Álvarez-Pallete, dentro de una iniciativa de la que os he hablado ya muchas veces llamada Talentum Startups. Allí estuve poco más de un año desde Febrero de 2012 hasta que pasé a mi siguiente ocupación.

Figura 3: Año 20102. Con Javier Santiso (mi compañero en la creación de  Telefónica Talentum) en la primera
selección de jóvenes para los programas de Talentum Startups Short Track & Long Track

En Abril de 2013, con la incorporación de todo mi equipo de Informática 64 en Telefónica lanzamos Eleven Paths, una empresa filial de Telefónica enfocada en la innovación en tecnologías de seguridad de la información - aunque estuvimos en modo silencioso hasta Junio. Allí, comenzamos a construir Faast, Latch, MetaShield Protector o Tacyt, por citar los productos principales que creamos durante la primera etapa. No solo creamos productos, sino que también incorporamos tecnologías provenientes de la compañía SmartAccess, como fueron SmartID y SealSign. 


Figura 4: KeyNote Security Innovation Day 2014. Resumen de dos años en Eleven Paths

En Abril de 2015, dos años después, fusionamos todos los equipos de seguridad de la información globales en Telefónica Business Solutions, y he estado trabajando como Director de Seguridad de la Información B2B.  En esta nueva unidad global lanzamos los programas de alianzas estratégicas que firmamos con Palo Alto, BlueCoat, Alien Vault, Intel Security, Vaultive, RSA y que ahora hemos extendido a Fortinet y Spamina. Además, incorporamos los productos Sinfonier, SandaS y Mobile Connect, y los servicios de CyberSeguridad basados en Vamps, CyberThreats y AntiFraud. También adquirimos SandaS GRC, un porcentaje de otras compañías de seguridad como Alise Devices (Liliac) y algoritmos biométricos provenientes de la Universidad Carlos III.


Figura 5: KeyNote Security Innovation Day 2015. Resumen del año en Eleven Paths

En estos tres últimos años hemos estado, además de sacando las patentes tecnológicas para las nuevas ideas y de desarrollar todos los productos que os he citado, creando los servicios de seguridad dede la red, los servicios de seguridad en los Data Centers, trabajando en Seguridad IoT y ampliando la red de SOCs por todo el mundo, llegando a montar los de Etisalat o Turk Telekom que ahora hemos firmado. Entre ellos, la última alianza con CheckPoint para integrar MTP y Tacyt en la seguridad de dispositivos móviles en entornos corporativos.

Ahora, en Mayo de este año, dentro de la unidad CDO hemos unido los equipos de Big Data y Cyberseguridad debido a las sinergias que tienen ambos y la importancia que para Telefónica es su visión de devolver a los usuarios el control de sus datos. Y ese es mi nuevo rol dentro de la compañía, como ya dejé publicado en mi perfil de Linkedin, ocuparme de los productos y servicios de seguridad de la información tanto para B2B como para B2C, además de toda la estrategia alrededor de los datos, es decir, los servicios de Business Intelligence, Big Data y nuestras estrategias destinadas a transformar la relación de nuestros clientes con sus datos.


Figura 6: Conferencia de Big Data y Privacidad en Fundación Telefónica

Para la compañía, esta evolución es muy importante, y por eso el puesto de CDO está dentro del comité ejecutivo desde su concepción. Ahora soy yo el que tengo que continuar el buen hacer de Ian Small, quien se ha ocupado del rol de CDO desde que se constituyó el año pasado, además de continuar con el buen hacer que desde hace años los equipos de Seguridad de la Información y BI / Big Data han hecho en Telefónica.

Curiosamente para mí se da una vuelta la vida, pues cuando estudié en la universidad mi interés iba enfocado al mundo de las bases de datos - trabajé mucho con Oracle y SQL Server - y no me interesaba tanto la seguridad, como expliqué en el pequeño discurso que di cuando me hicieron embajador honorífico de mi escuela.


Figura 7: Discurso de "la servilleta", el día que me hicieron embajador
honorífico de la Escuela de Informática de la UPM

Después, gracias a la aparición de las técnicas de SQL Injection, todo ese conocimiento en el lenguaje SQL me llevó al mundo de la seguridad informática y a hacer mi doctorado en técnicas de inyección de comandos a ciegas - muy motivado por el conocimiento en bases de datos que tenía -. Ahora, el mundo de la seguridad se movió hacia el Big Data y se cierra un círculo que me llevó de la gestión de los datos a la seguridad de la información y ahora a la gestión segura de grandes volúmenes de datos. Y no solo estoy contento, estoy contento e ilusionado por comenzar a disfrutar de todas estas tecnologías juntas.

Saludos Malignos!

Available link for download

Read more »

Wednesday, January 18, 2017

¿Tienes un oído fino Cifrado y esteganografía de datos en ficheros de audio y un test de estegonanálisis con tu oreja

¿Tienes un oído fino Cifrado y esteganografía de datos en ficheros de audio y un test de estegonanálisis con tu oreja


Tras ver la invitación de Chema Alonso para escribir algún artículo en El lado del mal me decidí a enviar un resumen de lo que fue mi proyecto final de carrera de ingeniería informática, en el que tocaba el tema de esteganografía y cifrado de datos en ficheros de audio. Hace poco se habló de una técnica parecida en el artículo "Esteganografía con ficheros de audio: enviar tus documentos ocultos en canciones", pero en este trabajo se añade la capa de cifrado y el trabajo se hace con MatLab, así que espero que os sea de utilidad y complemente un poco más el conocimiento de las técnicas de esteganografía y estegoanálisis.

Figura 1: ¿Tienes un oído fino? Cifrado y esteganografía de datos en
ficheros de audio y un test de estgonanálisis con tu oreja

Considero que todo documento científico debe contar con una breve introducción de los conceptos que se tratarán, así que, para empezar a tener claras las ideas, me gusta empezar siempre con definiciones y, si es posible, dar algunas pinceladas de etimología a los términos sobre los que escribo. Y aquí van:
Definición 1: esteganografía es la ciencia que trata el estudio y la aplicación de un conjunto de técnicas que permiten ocultar o esconder información, de modo que no se perciba su existencia. 
Etimología 1: Estegano-, del griego tégos-/steganos, que significa disimular, disfrazar o cubrir. 
Definición 2: criptografía es el arte de escribir con clave secreta o de un modo enigmático. 
Etimología 2: Cripto-, del griego kryptós, que significa recubierto.
Etimología 3: -grafía, de la raíz del griego grafein, que significa escritura o representación gráfica.
Con todo esto presente, mi objetivo fue construir un criptosistema que fuera capaz de cifrar información y para posteriormente esconderla dentro de un fichero de audio en formato WAV, maximizando la cantidad de mensaje a ocultar y minimizando todo lo posible el ruido introducido. Para la parte del cifrado me decanté por usar cifrado asimétrico RSA y para la de esteganografía, utilicé 2 métodos, uno bastante empleado, como es el LSB y otro no tanto, conocido como Phase Coding.

Explicación del funcionamiento del criptosistema

El sistema consta de dos capas de seguridad, la primera será criptográfica, ya que a toda la información que se pretenda transmitir, le aplicaremos un cifrado asimétrico. Una vez tenemos la información cifrada, realizaremos el proceso de esteganografía, escogiendo para ello un fichero de audio WAV como portador y ocultando en él los datos cifrados en el paso anterior.

Figura 2: Diagrama global del criptosistema

En la Figura 2 vemos cómo encajan todos los subsistemas entre sí, donde las cajas rojas conforman el subsistema criptográfico, que se corresponden con los procesos de cifrado y descifrado. Aquí es importante destacar que el emisor cifra la clave secreta (o clave de sesión) con la clave pública del receptor y que el mensaje se cifra usando la clave secreta, generada automática y aleatoriamente por GPG4WIN.

Las cajas azules conforman el subsistema esteganográfico, que se corresponden con los procesos de ocultación y extracción. El resto de elemento son las entradas y salidas del sistema, y un medio de transmisión.

Explicación general de cada subsistema

Teniendo una visión global del sistema, veamos el comportamiento de cada uno de sus elementos de procesamiento de la información.

Subsistema criptográfico: es el componente que aplica un algoritmo de cifrado o descifrado, en función de la etapa en la que se encuentre la información que procesemos dentro del sistema global. Recurrimos a RSA 2048 bits, mediante la herramienta GPG4WIN. En la Figura 1 se ve el flujo de la información y cuándo entra en juego cada componente. Para gestionar nuestro criptosistema de la forma que queremos, debemos configurar adecuadamente GPG4WIN. Los pasos a seguir son:
1. Crear un certificado de tipo ‘OpenPGP key pair’
2. Introducir algunos datos personales: Dentro de las opciones avanzadas, elegimos el uso que le vamos a dar. En nuestro caso solo queremos cifrar, así que elegimos el método RSA con 2048 bits y marcamos la casilla de ‘Encryption’.
3. Crear una ‘passphrase’ para cifrar la clave privada (este cifrado es tipo simétrico)
Si todo el proceso se ha llevado a cabo correctamente, obtendremos una ventana de confirmación que nos mostrará el ‘fingerprint’ de nuestro certificado. Con este certificado será con el que podamos cifrar/descifrar ficheros. Para cifrar en GPG4WIN lo podemos hacer con el propio gestor de certificados que incluye, llamado Kleopatra. Simplemente lo abrimos y seguimos estos pasos:
1. Elegimos ‘Sign/Encrypt Files’, y marcamos la opción de Encrypt. Seleccionamos el fichero a cifrar.
2. Seleccionamos el certificado que queramos usar para cifrar. En este caso, como ya lo tenemos creado, seleccionamos y añadimos el que hemos hecho anteriormente.
3. Pulsamos en ‘Encrypt’ y esperamos a que el proceso finalice. El programa nos avisará.
Para descifrar en GPG4WIN lo haremos también con Kleopatra:
1. Elegimos ‘Decrypt/Verify Files’, y seleccionamos el fichero a descifrar. También podemos elegir dónde se guardará la información descifrada.2. Introducimos la ‘passphrase’ para nuestro certificado, que se nos indica en pantalla. Cada certificado que creemos tiene su propia ‘passphrase’, de modo que hay que recordarla para poder realizar el proceso de descifrado.3. Pulsamos en ‘OK’ y esperamos a que el proceso finalice.
Subsistema esteganográfico: es el componente que aplica un algoritmo de ocultación o extracción. Depende también de la etapa, y en la misma Figura 2 vemos las interacciones de este componente con el sistema.

1. LSB (Least Significant Bit): es un método de ocultación que se basa en esconder la información en los bits menos significativos del fichero de audio original. El proceso consiste en realizar una sustitución de los bits menos significativos de las muestras del audio original por todos los bits del mensaje. En la Figura 2 vemos un ejemplo de ocultación, donde:
• Audio: muestras de sonido del fichero WAV original. El subíndice indica el número de muestra y el superíndice indica el peso del bit de la muestra.
• Datos: cadena de bits del mensaje original.
• Portador: muestras de sonido del fichero WAV con el mensaje ‘Datos’ incluido.
Figura 3: Ejemplo de ocultación LSB. Sustitución de los bits menos significativos
de las muestras de audio original por los bits del mensaje

2. Phase Coding: Es un método de ocultación que se basa en esconder la información en la fase de las componentes espectrales de la onda de sonido que se obtiene a partir del audio original. El proceso de ocultación es como sigue:
a. Dividimos la señal acústica en varias ventanas de tamaño fijo.
b. Calculamos la DFT (transformada discreta de Fourier) de cada ventana, obteniendo la fase y la magnitud.
c. Elección de puntos de cada ventana candidatos para esconder la información.

i. Todos los puntos que cumplan Thmin < magnitud < Th albergarán el mensaje a ocultar.
• Umbral, Th, es un porcentaje del valor máximo de la señal.
• Umbral mínimo, Thmin, es un valor fijo obtenido de forma empírica, 10^-4 genera 0 errores.
ii. Para cada punto, dejaremos el valor de la fase original, con el siguiente criterio:
• Si bit a ocultar 0, entonces: (-1) x fase
• Si bit a ocultar 1, entonces: (1) x fase
Figura 4: Pasos para aplicar el método de esteganografía de Phase Coding

Implementación de esteganografía con Matlab

Entrando un poco más en materia, paso a explicar cómo implementé ambos algoritmos esteganográficos en Matlab.

• LSB, ocultación:
1. Leer fichero con los datos a esconder
[Datos, count] = fread(fopen(C: utamensaje.txt));
Datos = matriz de ‘count’ filas (cada caracter) y 1 columna.
count = cantidad de caracteres leídos.
2. Leer fichero de audio, que hará de portador
[x,fs] = audioread(ruta);
x = muestras de audio
fs = frecuencia de muestreo
3. Sustituir los bits menos significativos de ‘x’ por todos los bits que haya en ‘Datos’
% La parte del mensaje que cabe justa
coded(1:F_smr,(end-LSB+1):end) = stego_mensaje;
% La parte del mensaje que sobra
coded(F_smr+1,end-sobran+1:end)=Datos(L_esconder-sobran+1:end);
Básicamente estos son los pasos, pero se ve mucho mejor en la Figura 3. Hay que tener en cuenta que hay que moldear bastante las matrices y jugar con los tipos de datos en Matlab, para poder ajustar todos los cálculos, ya que el algoritmo lo hice para poder escoger una cantidad variable de bits menos significativos.
4. Crear un nuevo vector de muestras, que contenga el mensaje sustituido y el resto de muestras originales, es decir, las muestras del fichero portador, incluyendo el mensaje a esconder.
y = coded;
audiowrite(‘C: utaLSB-codedAudio.wav’, y, fs);
• LSB, extracción:
1. Leer fichero de audio, que es el portador del mensaje oculto
[x_ext,fs_ext] = audioread(‘C: utaLSB-codedAudio.wav’);
2. Extraer los bits menos significativos de ‘x_ext’
% Recupero el mensaje, por partes: la divisible, y el resto
% 1º Recupero la parte divisible del mensaje
recup1 = x_ext(1:F_smr,end-LSB+1:end);
% 2º Recupero la parte que falta del mensaje
recup2 = x_ext(F_smr+1,end-sobran+1:end);
% Juntamos todo
recup = vertcat(recup1,recup2);
3. Crear un nuevo fichero que será el mensaje extraído.
fwrite(fopen(C: utamensaje_extraido.txt,w), recup);  
%Recordad que este mensaje extraído está cifrado.
• Phase Coding, ocultación:
1. Leer fichero de audio y dividir la señal en ventanas
[x,fs] = audioread(ruta);
% Longitud archivo portador en muestras
T = length(x);
% Longitud de cada segmento
L = 1024;% Numero de segmentos
N = floor(T/L);
% División en segmentos de la señal (cada columna un segmento)
for n=1:N
xf(:,n) = x((n-1)*L + 1:n*L);
end
2. Calcular DFT y obtener fase y magnitud
% DFT de cada segmento (fft lo hace de golpe)
Xf = fft(xf);
% Matriz de magnitud original
M_ori = abs(Xf);
% Matriz de fases original
P_ori = angle(Xf);
3. Calcular umbrales y obtener los puntos candidatos
Th = porcentaje*max(M_ori(:));Th_min = 0.0001;indhide = find(M_ori<Th & M_ori>Th_min);
4. Calcular umbrales y obtener los puntos candidatos
for k=1:L_esconder % desde 1 hasta el tamaño del mensaje que quiero esconder
if Datos(k)==0
P_hide(indhide(k)) = abs(P_ori(indhide(k)))*(-1);
else
P_hide(indhide(k)) = abs(P_ori(indhide(k)))*(+1);
end
end
5. Crear el audio portador con el mensaje a esconder.
% Mensaje portador con datos ocultos
Xhide = M_ori.*exp(1i*P_ori);
xm = real(ifft(Xhide));
audiowrite(‘C: utaPC-codedAudio.wav’,xm,fs);
• Phase Coding, extracción:
1. Los pasos para extraer son los mismos que para ocultar, desde el 1 al 3 
2. Extraemos la información del vector con los puntos candidatos
% Extraer índices de los puntos con bits ocultos
indhide = find(M_decod<Th & M_decod>Th_min);
indhide = indhide(1:L_esconder);
Decp = P_ decod(indhide);
Recordad que ‘L_esconder’ es el tamaño del mensaje que voy a extraer. En principio lo sabemos de antemano, pero se podría crear un espacio dentro del mensaje a ocultar para indicar cuál es su tamaño, y transmitirlo también una vez cifrado y ocultado. 
3. Extraemos el mensaje oculto
% Mensaje extraído en Datadec
Datadec = (Decp<=0)*0 + (Decp>0)*1;
Guión final y resultados

Bien, ahora que hemos visto cómo funciona cada parte por separado, vamos a hacer un pequeño guión de cómo hacer funcionar todo el sistema.

CIFRADO Y OCULTACIÓN
1. Elegimos un fichero cualquiera que será nuestro mensaje a ocultar.
2. Elegimos un fichero de audio, en formato WAV, que será nuestro portador.
3. Ciframos el fichero con GPG4WIN.
4. Ocultamos el mensaje obtenido en el paso 3 mediante una técnica esteganográfica: LSB o Phase Coding.
5. Obtenemos un fichero WAV con el mensaje incluido. Este fichero lo podemos transmitir o almacenar teniendo 2 ventajas principalmente:
a. Tenemos la información escondida, luego será más difícil encontrarla para cualquiera que no sepa dónde/cómo buscar.
b. Tenemos la información cifrada, de modo que, incluso aunque se llegue a descubrir que tenemos información oculta, sería casi imposible descifrar sin tener la llave.
EXTRACCIÓN Y DESCIFRADO
1. Elegimos un fichero de audio que sea portador.
2. Extraemos el mensaje mediante una técnica esteganográfica: LSB o Phase Coding.
3. Desciframos el fichero obtenido en el paso 2 con GPG4WIN.
Para comprobar que todo este proceso de cifrado y ocultación funciona bien, quise realizar una serie de pruebas a personas de mi entorno. Recurrí para ello al test ABX, que es un tipo de prueba auditiva que se realiza a ciegas, lo que se conoce también como ‘blind test’, es decir, que el sujeto desconoce el origen del audio que escucha. Para hacer las pruebas más sencillas, recurrí a la herramienta llamada Lacinato ABX/Shootouter, que permite cargar ficheros de audio, y realizar la prueba de forma automática, mostrando los resultados obtenidos por cada sujeto. Sin entrar en mucho detalle matemático, necesariamente derivado de este tipo de pruebas, os explico en qué consiste el test ABX.

Figura 5: Herramienta Lacinato ABS/SHootouter

Durante la prueba, una de las muestras recibe el nombre de A y la otra muestra recibe el nombre de B. El programa elige una muestra X, que puede ser cualquiera de las muestras A o B, que el usuario ha indicado como banco de muestras, pero el sujeto no sabe cuál es. La tarea del sujeto es escuchar atentamente todas las muestras, tanto A y B como X, y entonces decidir si X se corresponde con la muestra A o con la muestra B. Por cada vez que el sujeto se vea sometido a esta elección, lo llamaremos intento. Al final de la prueba, se analizan el número de pruebas realizadas, el número de aciertos y fallos.

Las señales acústicas que hemos elegido para el test se pueden agrupar en cuatro tipos diferentes de audio:
Música clásica: Sinfonía nº 6 en Fa mayor, op. 68, “Pastoral”, Ludwig Van Beethoven.
Música comercial: Diamonds, Season One, Emancipator.
Música pop-rock: Cuando los ´árboles se sequen, Casa Grande, Marco Boz y Pablo Páez.
Voz hablada: Blue Sky Bridge, narración en inglés, Fergus Sound Enterprises.
Estos cuatro tipos de audio son muy comunes a día de hoy, por lo tanto, son un adecuado objeto de estudio para nuestro proyecto. Cabe destacar que los formatos de los audio obtenidos son del tipo sin pérdida, concretamente en formato WAV. Esto es así para poder trabajar a partir de un material que ofrezca el menor error posible. Destacar que, para homogeneizar las muestras, todos los audio han sido normalizados y convertidos a monocanal con 16 bits de profundidad. Los resultados que obtuve para cada algoritmo esteganográfico fueron los siguientes:
Resultados para LSB: Para evitar detección auditiva, recomiendo utilizar como máximo los 4 bits menos significativos. Capacidad de ocultación del LSB es el producto del número de muestras del audio original y el valor de LSB elegido en cada caso: numero_muestras x N lsb 
Resultados para Phase Coding: Para evitar detección auditiva, recomiendo utilizar un valor Th ? 10-4.
Es importante tener en cuenta que lo que más pesa a la hora de realizar un buen proceso de ocultación es el fichero portador. En nuestro caso, cuanto más intenso sea el nivel de sonido de nuestra onda portadora, más disimulará el contenido oculto. Por eso he especificado qué tipo de fragmentos musicales he utilizado, y también porque necesitaba una base sobre la que partir. Es por ello que se hace complicado dar un valor preciso que indique cuánta cantidad de información puedo introducir por muestra mediante esta técnica.

Para terminar, ahora que os he soltado toda esta marea de ideas y conceptos, aquí podéis escuchar los ficheros de audio y realizar vosotros mismos vuestras comparativas. Os los dejos organizados por carpetas y por estilos musicales [Audios Codificados, Audios Originales] ¿Hasta dónde sois capaces de detectar el ruido en cada técnica? Empieza el reto ;)

Autor: Jorge Peris (Universidad de Valencia)

Available link for download

Read more »