Descargado en: eybooks.com Privacidad y ocultación de información digital Esteganografía Protegiendo y atacando redes informáticas Alfonso Muñoz Muñoz Privacidad y ocultación de información digital Esteganografía Protegiendo y atacando redes informáticas Alfonso Muñoz Muñoz La ley prohíbe fotocopiar este libro Privacidad y ocultación de información digital. Esteganografía. Protegiendo y atacando redes informáticas © Alfonso Muñoz Muñoz © De la edición: Ra-Ma 2016 MARCAS COMERCIALES. Las designaciones utilizadas por las empresas para distinguir sus productos (hardware, software, sistemas operativos, etc.) suelen ser marcas registradas. RA-MAha intentado a lo largo de este libro distinguir las marcas comerciales de los términos descriptivos, siguiendo el estilo que utiliza el fabricante, sin intención de infringir la marca y solo en beneficio del propietario de la misma. Los datos de los ejemplos y pantallas son ficticios a no ser que se especifique lo contrario. RA-MA es marca comercial registrada. Se ha puesto el máximo empeño en ofrecer al lector una información completa y precisa. Sin embargo, RA-MA Editorial no asume ninguna responsabilidad derivada de su uso ni tampoco de cualquier violación de patentes ni otros derechos de terceras partes que pudieran ocurrir. Esta publicación tiene por objeto proporcionar unos conocimientos precisos y acreditados sobre el tema tratado. Su venta no supone para el editor ninguna forma de asistencia legal, administrativa o de ningún otro tipo. En caso de precisarse asesoría legal u otra forma de ayuda experta, deben buscarse los servicios de un profesional competente. d e s c a r g a do e n: e y b o oks. c o m Reservados todos los derechos de publicación en cualquier idioma. Según lo dispuesto en el Código Penal vigente, ninguna parte de este libro puede ser reproducida, grabada en sistema de almacenamiento o transmitida en forma alguna ni por cualquier procedimiento, ya sea electrónico, mecánico, reprográfico, magnético o cualquier otro sin autorización previa y por escrito de RA-MA; su contenido está protegido por la ley vigente, que establece penas de prisión y/o multas a quienes, intencionadamente, reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica. Editado por: RA-MA Editorial Calle Jarama, 3A, Polígono Industrial Igarsa 28860 PARACUELLOS DE JARAMA, Madrid Teléfono: 91 658 42 80 Fax: 91 662 81 39 Correo electrónico: editorial@ra-ma.com Internet: www.ra-ma.es y www.ra-ma.com ISBN: 978-84-9964-644-2 Depósito legal: M-10506-2016 Maquetación: Antonio García Tomé Diseño de portada: Antonio García Tomé Filmación e impresión: Copias Centro Impreso en España en abril de 2016 Dedicado a todos aquellos que en los últimos meses me han dado el cariño y la conanza necesarios para terminar este y otros proyectos. A los ángeles que me apartaron de la oscuridad. ÍNDICE ACERCA DEL AUTOR ..................................................................................................... 11 PRÓLOGO .......................................................................................................................... 13 CAPÍTULO 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES. CRIPTOGRAFÍA Y ESTEGANOGRAFÍA .....................................................................15 1.1 ESPIONAJE MASIVO DE LAS COMUNICACIONES. PRIVACIDAD Y FUGA DE INFORMACIÓN................................................... 15 1.2 PROTECCIÓN DE LA INFORMACIÓN MEDIANTE CRIPTOGRAFÍA. LIMITACIONES Y RETOS FUTUROS ............................................................. 25 1.2.1 Desde la criptografía clásica a las máquinas de cifrado ......................... 25 1.2.2 De las máquinas de cifrado a la criptografía moderna ........................... 36 1.2.3 Superando a la criptografía. Limitaciones y retos futuros......................43 CAPÍTULO 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES. ESTEGANOGRAFÍA.................................................................................47 2.1 ESTEGANOGRAFÍA EN LA ACTUALIDAD. DEFINICIÓN DE CONCEPTOS ...................................................................................................... 47 2.2 ESTEGANOGRAFÍA CLÁSICA. HISTORIA DE LA OCULTACIÓN DE COMUNICACIONES ......................................................................................... 51 2.3 CLASIFICACIÓN DE SISTEMAS ESTEGANOGRÁFICOS MODERNOS. PORTADORES .................................................................................................... 66 2.4 TÉCNICAS ESTEGANOGRÁFICAS EN LA ACTUALIDAD......................... 71 2.4.1 El caso DeCSS. Anulando el sistema de protección de los DVD .......... 71 2.4.2 Negación plausible y chafng and winnowing. Condencialidad sin cifrado...................................................................74 CAPÍTULO 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES ..77 3.1 PRINCIPIOS DE LA OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES. LO QUE EL OJO NO VE ............................................................. 77 8 ESTEGANOGRAFÍA 3.2 3.3 3.4 3.5 3.6 © RA-MA TÉCNICAS DE SUSTITUCIÓN LSB (LEAST SIGNIFICANT BIT) REPLACEMENT/MATCHING .......................................................................... 79 3.2.1 Ocultación de información en el bit menos signicativo. Herramientas y ejemplos ........................................................................ 79 TÉCNICAS ESTEGANOGRÁFICAS BASADAS EN PALETA DE COLORES. ESTEGANOGRAFÍA EN FORMATO GIF .................................... 94 TÉCNICAS ESTEGANOGRÁFICAS BASADAS EN COEFICIENTES CUANTIFICADOS. ESTEGANOGRAFÍA EN JPEG ....................................... 98 3.4.1 Herramienta esteganográca F5 ........................................................... 104 3.4.2 Stegosploit y polyglots. Malware en imágenes digitales ..................... 108 DETECCIÓN DE COMUNICACIONES OCULTAS. ESTEGOANÁLISIS DE IMÁGENES DIGITALES ........................................ 112 3.5.1 Ataques estadísticos y estegoanálisis a ciegas. Machine learning ....... 112 TÉCNICAS AVANZADAS DE OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES ................................................................................. 124 3.6.1 Reducción del impacto. Matrix embedding y wet paper codes ............ 124 3.6.2 Técnicas de ocultación avanzadas. Bordes y texturas .......................... 127 CAPÍTULO 4. OCULTACIÓN DE INFORMACIÓN EN AUDIO Y VÍDEO DIGITAL..............................................................................................................129 4.1 ESTEGANOGRAFÍA Y WATERMARKING EN EL AUDIO/VÍDEO DIGITAL. ESTUDIANDO EL OJO Y OÍDO HUMANOS .............................. 129 4.2 OCULTACIÓN DE INFORMACIÓN EN FICHEROS DE AUDIO. ESTUDIO DE DIFERENTES FORMATOS ..................................................... 131 4.2.1 Técnica LSB en muestras de audio. Esteganografía en chero .wav... 131 4.2.2 Ocultación en algoritmos de compresión. MP3 ................................... 134 4.2.3 Ocultación de comunicación en VoIP...................................................137 4.2.4 Ocultación de imágenes en el espectro de un audio ............................. 138 4.3 OCULTACIÓN DE INFORMACIÓN EN FICHEROS DE VÍDEO DIGITAL. ESTUDIO DE DIFERENTES FORMATOS ................................... 140 CAPÍTULO 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS .... 143 5.1 ESTEGANOGRAFÍA EN SISTEMAS DE FICHEROS Y SISTEMAS OPERATIVOS. OCULTANDO EL RASTRO .................................................. 144 5.1.1 Técnica de ocultación basada en la fragmentación interna de los sistemas operativos. Slack space .......................................................... 144 5.1.2 Técnica de ocultación mediante borrado de cheros. Unallocated File Space ......................................................................... 146 5.1.3 Técnica de ocultación ADS en sistema de cheros NTFS ................... 146 5.1.4 Sistema de cheros esteganograados. StegFS.................................... 149 5.1.5 Ocultación en la estructura lógico-física de los soportes de almacenamiento.................................................................................... 153 © RA-MA ÍNDICE 9 5.2 ESTEGANOGRAFÍA EN LA ESTRUCTURA DE LOS FORMATOS DE FICHEROS ........................................................................................................ 156 5.2.1 Técnica EoF (End of File). Información al nal de la estructura de un chero .........................................................................................156 5.2.2 Técnica de ocultación basada en cheros comprimidos. Ocultación de malware ......................................................................... 160 ESTEGANOGRAFÍA EN CÓDIGO EJECUTABLE. HERRAMIENTA HYDAN................................................................................165 ESTEGANOGRAFÍA EN CÓDIGO INTERPRETADO. LENGUAJE HTML Y XML..............................................................................167 5.3 5.4 CAPÍTULO 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN ................................................................ 173 6.1 OCULTACIÓN DE MENSAJES EN LENGUAJE NATURAL. PRIVACIDAD Y MARCADO DIGITAL..........................................................173 6.2 ESTEGANOGRAFÍA TEXTUAL EN LA ANTIGÜEDAD. CÓDIGOS ABIERTOS Y SEMAGRAMAS ..................................................... 174 6.2.1 Códigos abiertos ................................................................................... 174 6.2.2 Semagramas ......................................................................................... 180 6.3 ESTEGANOGRAFÍA LINGÜÍSTICA. DEFINICIÓN DE CONCEPTOS ...... 183 6.4 GENERACIÓN AUTOMÁTICA DE ESTEGOTEXTOS BASADA EN ESTADÍSTICA E IMITACIÓN GRAMATICAL.............................................. 186 6.5 GENERACIÓN AUTOMÁTICA DE ESTEGOTEXTOS BASADA EN MODIFICACIONES DE TEXTOS EXISTENTES .......................................... 196 6.5.1 Modicaciones léxico-semánticas........................................................ 197 6.5.2 Modicaciones sintáctico-semánticas .................................................. 199 6.5.3 Modicaciones basadas en el ruido de traducciones automáticas ........ 201 6.5.4 Modicaciones basadas en formato ..................................................... 203 6.5.5 Modicaciones basadas en errores, abreviaturas y símbolos de puntuación ............................................................................................ 206 CAPÍTULO 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS. EVASIÓN DE CORTAFUEGOS Y FUGA DE INFORMACIÓN EN REDES DE ORDENADORES ............................................................................................................. 209 7.1 OCULTANDO INFORMACIÓN EN EL TRÁFICO DE RED. FUGA DE INFORMACIÓN Y CONTROL REMOTO DE SISTEMAS INFECTADOS .. 209 7.2 CANALES ENCUBIERTOS EN PROTOCOLOS DE COMUNICACIÓN. TORRE TCP/IP.................................................................................................. 211 7.2.1 Esteganografía en protocolos de red local. IEEE 802.3. CSMA/CD ... 212 7.2.2 Canales encubiertos en protocolos de red. Protocolo IPv4 .................. 213 7.2.3 Canales encubiertos en protocolos de gestión e ICMPv4 .................... 218 7.2.4 Canales encubiertos en protocolos de transporte. Protocolo UDP/TCP .............................................................................221 7.2.5 Ocultación de información en protocolos de aplicación ...................... 229 10 ESTEGANOGRAFÍA 7.3 © RA-MA HERRAMIENTAS PARA CREAR CANALES SUBLIMINALES. NETWORK STEGANOGRAPHY....................................................................232 CAPÍTULO 8. ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES. UNIENDO CONOCIMIENTO ................................................................. 235 8.1 ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES. UNIENDO CONOCIMIENTO ......................................................................... 235 8.1.1 Navegador web esteganográco. Camera/Shy..................................... 241 8.1.2 Extensiones esteganográcas para navegadores web........................... 245 8.2 DISEÑA TUS PROPIAS HERRAMIENTAS. ALGORITMOS RESISTENTES A ATAQUES............................................................................ 247 CAPÍTULO 9. HERRAMIENTAS CRIPTOGRÁFICAS MÁS COMUNES. CONFIGURACIÓN PASO A PASO ............................................................................... 251 A.1 CIFRADO DE INFORMACIÓN ALMACENADA EN ORDENADOR. HERRAMIENTA VERACRYPT.......................................................................253 A.2 CIFRADO DE CORREO ELECTRÓNICO. THUNDERBIRD Y ENIGMAIL........................................................................................................ 261 CAPÍTULO 10. ESTEGOANÁLISIS. HERRAMIENTAS Y GUÍA DE USO............ 265 B.1 PRODUCTOS Y HERRAMIENTAS DE ESTEGOANÁLISIS COMERCIALES ............................................................................................... 266 B.2 HERRAMIENTAS DE ESTEGOANÁLISIS OPEN SOURCE ....................... 267 CAPÍTULO 11. FORMATO DE ESTEGOMEDIOS GRÁFICOS COMUNES. ANÁLISIS ESTRUCTURAL...........................................................................................275 C.1 WINDOWS BMP (BITMAP)............................................................................ 276 C.2 FORMATO GIF (GRAPHICS INTERCHANGE FORMAT) ........................... 280 C.3 FORMATO JPEG (JOINT PHOTOGRAPHIC EXPERTS GROUP) ............... 284 ÍNDICE ALFABÉTICO ...................................................................................................289 ACERCA DEL AUTOR Doctor en Ingeniería de Telecomunicación por la Universidad Politécnica de Madrid y posdoc por la Universidad Carlos III de Madrid. Investigador sénior en seguridad informática con más de 13 años de experiencia en este sector. Ha trabajado en proyectos avanzados con organismos europeos, multinacionales (Global 500) y organismos públicos, entre ellos FCSE. Durante más de una década ha prestado servicios avanzados en el diseño de arquitecturas seguras, test de penetración, análisis forense, seguridad wireless y móvil, protección de datos (criptografía y esteganografía), entre otros. Destaca su producción cientíca en el campo de la seguridad informática publicando más de 60 artículos (IEEE, ACM, etc.), libros, guías y herramientas en este sector. Habitualmente participa como ponente en conferencias de seguridad informática y hacking (STIC CCN-CERT, DeepSec, HackInTheBox, Virus Bulletin, RootedCon, 8.8, No cON Name, GSICKMinds, Cybercamp, etc.). Está certicado CISA (Certied Information Systems Auditor), CEHv8 (Certied Ethical Hacker) y CHFIv8 (Computer Hacking Forensic Investigator). Adicionalmente, es coeditor de la Red Temática de Criptografía y Seguridad Informática, CRIPTORED (@criptored), la red más longeva en lengua española en este sector, donde desarrolla y coordina proyectos de ciberseguridad y formación avanzada. Twitter: @mindcrypt Correo: alfonso@criptored.com PRÓLOGO En 2008, una visita guiada al Palacio Ducal, símbolo de la gloria y el poder histórico de Venecia, hizo que una historia apasionante creara en mi mente un juego de palabras que no me ha abandonado desde entonces: la paradoja del copista analfabeto. En esa apasionante historia surge la necesidad de mantener en secreto unos manuscritos, pero a su vez surge también la necesidad de crear copias para salvaguardar la información. La idea, aunque arriesgada, es brillante en su concepción. Se utilizarían sujetos analfabetos que desarrollarían la capacidad de imitar la grafía de un manuscrito para copiarla a otros. Al salir del palacio, el copista no podría divulgar la información, ya que, con suerte, solo podría llegar a recordar unos pocos símbolos. El ingenio humano es ilimitado a la hora de proteger nuestros más valiosos secretos. Nadie guarda mejor un secreto que el que lo ignora. Desde entonces he tenido la suerte de visitar diferentes países y apasionarme por esas pequeñas o grandes historias donde la necesidad, muchas veces vinculada a conictos militares y servicios secretos, forzó el ingenio humano para crear ilusiones convenientes, que el necio acepta, pero de cuyo ingenio goza el estudioso, sin cegarse ante el hecho de que tales ilusiones son otros tantos velos para ocultar las profundas tinieblas de lo insondable. Es precisamente en este entorno donde el ser humano ha desarrollado procedimientos sosticados para mantener a buen recaudo sus secretos, utilizando la ciencia de la esteganografía. Este libro pretende acercar al lector con un lenguaje accesible el potencial de las múltiples técnicas modernas para proteger y compartir sus secretos. Hoy día, su utilidad supera con creces sus orígenes dedicados a entornos militares, diplomacia y servicios secretos. 14 ESTEGANOGRAFÍA © RA-MA El potencial de la esteganografía es enorme en nuestras comunicaciones digitales, desde un simple chero a una red corporativa. Le recomiendo encarecidamente que estudie con detalle este libro, es un viaje intenso, pero como todo buen viaje con un destino apasionante. Este es solo un primer paso, pero un paso necesario en la defensa de su privacidad y en la protección de sus comunicaciones y sistemas digitales. Adicionalmente, si el contenido de este libro le ayuda a construir un mundo mejor para todos, enhorabuena. Habrá encontrado el camino más provechoso para utilizar la esteganografía con un buen n. Dr. Alfonso Muñoz Twitter: @mindcrypt Correo: alfonso@criptored.com 1 PROTECCIÓN DE LAS COMUNICACIONES DIGITALES. CRIPTOGRAFÍA Y ESTEGANOGRAFÍA “En cada operación de espionaje existe lo que está por encima de la letra y lo que está por debajo. Por encima de la letra está lo que uno hace de acuerdo con las normas. Por debajo está la forma en que uno debe hacer el trabajo”. John Le Carré, Un espía perfecto 1.1 ESPIONAJE MASIVO DE LAS COMUNICACIONES. PRIVACIDAD Y FUGA DE INFORMACIÓN La comunicación es uno de los símbolos más brillantes del siglo XX. Su ideal, acercar los valores y las culturas, ha liberado a los hombres de los obstáculos ancestrales de tiempo y espacio, compensando los horrores y las barbaries de nuestra época. Su avance ha acompañado a los combates por la libertad, los derechos humanos y la democracia. Hoy en día, la sociedad del conocimiento en la que estamos inmersos extiende el potencial de las tecnologías de comunicación a todas las facetas de la vida cotidiana. La idea clásica de que la religión es el opio del pueblo, hoy en día es sustituida por la información; su adquisición supone poder, y se cree que conduce a la libertad. El poder de la información es tal que numerosas entidades a lo largo de la historia han deseado restringirla o manipularla. De hecho, el espionaje de las comunicaciones ha constituido, en la guerra como en la paz, un valioso instrumento 16 ESTEGANOGRAFÍA © RA-MA para conocer las actividades e intenciones de otros grupos de personas. Hoy en día no se circunscribe exclusivamente a un mundo de tejemanejes político-militar. El espionaje de las comunicaciones es masivo tanto por parte de gobiernos como de organizaciones industriales. Por desgracia, las capacidades técnicas para realizar estas acciones son muy superiores a la moralidad de las personas que las emplean. La población comienza a ser consciente de la problemática de la privacidad de las comunicaciones, y como sus datos personales, de forma individual o agrupados, pueden resultar de interés para organizaciones o grupos con intereses variados que van desde el control social, a la rentabilización económica de esa información o la monitorización y seguimiento de personas o grupos marcados de interés. Aunque la historia del espionaje es tan antigua como la necesidad del ser humano de conocer los secretos ajenos, y cualquier interesado en la materia habrá leído decenas de libros de esta temática, un par de eventos concretos, a modo de fuga de información o noticias en medios de comunicación, son los que han permitido a la mayor parte de la población ser consciente de esta problemática. Sin duda, el primer evento notorio fue comprender la capacidad de los gobiernos de diferentes países para realizar escuchas masivas de las comunicaciones; un caso signicativo fue la red global de espionaje norteamericana que inicialmente se conoció como Echelon. En 1988, Duncan Campbell, 1 físico y periodista escocés, publicó en el Reino Unido un reportaje titulado Someone’s listening que desveló públicamente la existencia de un sistema global automatizado de interceptación de comunicaciones (la red Echelon). Sus investigaciones, junto con las de otros autores como el neozelandés Nicky Hager o los daneses Bo Elkjaer y Kenan Seeberg, fueron calando en la población, lo que contribuyó a denunciar en los últimos años de la década de los 80 del siglo XX este gran hermano tecnológico. Bien es cierto que desde la década de los años 70, al menos públicamente, se dispone de documentos que demuestran como EE. UU. mediante sus distintas agencias de inteligencia, civiles y militares, interceptaba masivamente comunicaciones privadas. De hecho, los inicios de este sistema de escucha surgen a nales de la II Guerra Mundial con la rma de un tratado secreto en 1948 conocido como pacto UKUSA (United Kingdom-United States of America) fruto de su cooperación militar y de espionaje en los años anteriores. Su auge y desarrollo sería en plena Guerra Fría, a partir de la década de los 50, como un medio efectivo en su lucha contra la Unión Soviética (URSS) y las naciones del pacto de Varsovia, contando posteriormente con la colaboración a lo largo del tiempo de otras agencias y países, por ejemplo agencias de Canadá (CSE), Australia (DSD) y Nueva Zelanda (GCSB). La situación geográca de estos países aliados no es arbitraria, ya que permite mediante determinados mecanismos terrestres dar cobertura 1 http://www.duncancampbell.org/content/echelon. © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 17 global al espionaje masivo de comunicaciones civiles, comerciales, diplomáticas y militares del resto de países del mundo, aliados o no. En realidad, la actividad de las agencias de inteligencia es imparable, especialmente, de las que disponen de más recursos económicos y humanos como es el caso de la inteligencia norteamericana. La totalidad de las tecnologías de comunicación pueden ser monitorizadas y procesadas, todo es cuestión de tiempo y dinero. Los satélites y estaciones terrestres con antenas de diverso tipo juegan un papel muy importante en esta tarea, cubriendo cielo y tierra. Se puede monitorizar frecuencias de todo tipo (bandas HF, VHF, UHF, microondas, etc.), monitorizar correos electrónicos, faxes, escuchar una conversación en un coche, etc. En las últimas décadas los satélites han jugado un papel muy importante en la observación terrestre de “amigos” o enemigos; o soluciones más “económicas” como el uso de aviones espías no tripulados para determinadas operaciones. Es común el uso de alguno de los siguientes términos vinculados a estos tipos de tecnologías: SIGINT (Signals Intelligence), que hace referencia a la inteligencia derivada de la interceptación de señales (a menudo implica el uso de criptoanálisis para desproteger las comunicaciones), COMINT (Communications Intelligence) hace referencia a la inteligencia derivada de la comunicación entre personas y ELINT (Electronic Intelligence) a la información derivada de dispositivos, por ejemplo, la inteligencia de radiaciones electromagnéticas inintencionadas (técnicas Tempest). Otros términos interesantes para el lector que esté interesado en estos temas son: IMINT (Imagery Intelligence), MASINT (Measurement and Signature Intelligence), ACOUSTINT (Acoustical Intelligence), etc. Tal es la gravedad para la privacidad de las comunicaciones que la Comisión Europea publicó 2 en 2000/2001 su opinión sobre el sistema Echelon dejando de maniesto el peligro de este sistema global de escuchas ya que supone una verdadera vulneración de la privacidad de los ciudadanos, “no por consistir en un sistema de interceptación especialmente poderoso, sino porque actúa en un ámbito carente, casi por completo, de regulación jurídica”. La recomendación de la Unión Europea es clara, Echelon extiende sus tentáculos para favorecer industrial y económicamente a EE. UU., y los países miembros deben tener más precaución en sus sistemas de información y, especialmente, proteger con algoritmos criptográcos robustos las comunicaciones gubernamentales, diplomáticas y comerciales. No obstante, no se debe ser ingenuo con este tipo de tecnologías. Cada país avanzado dispone de sus propios sistemas de escucha con mayor o menor cobertura internacional, con mayor o menor complejidad y precisión en función de los recursos disponibles (Carnivore, DCS-1000, Sorm, Oseminti, Programa Santiago, Frechelon, 2 http://www.europarl.europa.eu/transl_es/plataforma/pagina/maletin/colecc/actual/echelon/ 418508es.doc. 18 ESTEGANOGRAFÍA © RA-MA Evident X-Stream, 3 etc.). De hecho, no solo se debe centrar la atención en las capacidades iniciales de la famosa red Echelon de captura de información mediante el uso de satélites. Hoy en día, y desde el pasado, se explota a nivel gubernamental cualquier tipo de capacidad para el espionaje de las comunicaciones terrestres, ya sea por bra óptica, conexiones a grandes centros de interconexión (IPX), o cualquier sistema que simplique la recopilación y síntesis de inteligencia. Esto parece tan común que hoy en día solo es necesario leer la prensa para observar como grandes instituciones realizan interceptaciones de gran envergadura. Por ejemplo, el proyecto de vigilancia electrónica Tempora operado por el GCHQ (British Government Communication Headquaters), en teoría activo al menos desde 2008/2009. Entre sus objetivos destaca interceptar los cables de bra óptica que conguran el backbone de Internet. Esto facilitaría el acceso a enormes cantidades de información de usuarios de Internet. Figura 1.1. Comunicaciones por cables submarinos El ejemplo anterior no es ni mucho menos anecdótico, las ltraciones de Julian Assange (WikiLeaks) o las ltraciones recientes de Edward Snowden han centrado la atención mediática en la problemática actual de la falta de privacidad en nuestras comunicaciones digitales. 3 http://www.elcondencialdigital.com/seguridad/Mails-telefonicas-supersistema-vigilancia-Interior_0_2610338952 .html. © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 19 Una muestra signicativa de esta problemática fue revelada en 2013. El periódico alemán Der Spiegel publicó diversa información, escrita entre otros por Jacob Appelbaum, Judith Horchert y Christian Stöcker, que puso al descubierto cierta tecnología de monitorización utilizada por la NSA, concretamente el denominado catálogo de tecnologías de espionaje de la división ANT. Aunque no se especicó directamente la fuente de su información, todo estaba muy relacionado con documentos que previamente el exanalista de la NSA Edward Snowden había ltrado a periódicos como The Washington Post o The Guardian. El conocido como catálogo NSA-ANT es un documento clasicado con decenas de páginas, creado supuestamente en 2008 por miembros de la división Advanced/Access Network Technology (ANT) de la NSA que facilitarían el trabajo 4 de Tailored Access Operations (TAO) mediante recursos software y hardware variados. La conocida como ocina de Tailored Access Operations es una unidad de ciberinteligencia de la agencia de seguridad norteamericana, activa, al menos, desde 1998, cuyo objetivo principal es identicar, monitorizar, inltrar y recopilar información sobre sistemas informáticos utilizados por entidades extranjeras. En términos de la NSA, actividades de Computer Network Exploitation (CNE). En el catálogo NSA-ANT se puede encontrar tecnología de coste variado, desde gratuita (software libre) hasta por valor de cientos de miles de dólares, para atacar directamente a compañías y dispositivos de uso común. Fabricantes como Apple, Cisco, Dell, Juniper Networks, Maxtor, Seagate, Western Digital o Huawei están en el punto de mira. Entre los gadgets disponibles se puede observar tecnologías para visualizar el contenido de pantallas de ordenador a distancia, pendrives con transmisor radio para robar información por el aire, dispositivos para emular una estación GSM (BTS) e interceptar llamadas móviles, intrusión en routers, switches, cortafuegos, etc. 5 A continuación, a modo divulgativo, se va a listar cada uno de los proyectos (en código) recogidos en este catálogo, resumiendo la información en grupo (no por orden alfabético como se ha publicado en la prensa). Este breve resumen nos permitirá comprender la gran cantidad de tecnologías diversas que se ponen en juego cuando el objetivo nal es el espionaje de las comunicaciones. 4 http://www.washingtonpost.com/blogs/the-switch/wp/2013/08/29/the-nsa-has-its-own-team-ofelite-hackers/ ?tid=d_pulse. 5 Shopping for Spy Gear: Catalog Advertises NSA Toolbox. http://www.spiegel.de/international/ world/catalog-reveals-nsa-has-back-doors-for-numerous-devices-a-940994.html. 20 ESTEGANOGRAFÍA © RA-MA 1. Proyectos relacionados con infección de la BIOS/MBR o ejecución de código mediante dispositivos conectados a la placa base de un dispositivo electrónico. El objetivo principal de este tipo de tecnología es que el código malicioso permanezca invisible y persista aunque un administrador de sistema pudiera detectar y borrar un software malicioso existente en el sistema operativo (virus/troyano/malware/…). Para conseguir este objetivo es común modicar el código existente en la BIOS/UEFI 6 (código que controla el funcionamiento inicial de un ordenador) o el código existente en dispositivos conectados a la placa base del mismo. Este código se ejecutará antes que el sistema operativo y entre otras cosas podría contener malware que escribiera en zonas concretas del sistema operativo. Con esta losofía se atacó por ejemplo a servidores de marca Dell PowerEdge, al rmware de diferentes fabricantes de discos duros (Maxtor, Samsung, Seagate o Western Digital) o la infección y control remoto de cortafuegos marca Juniper. Nombre en código de los proyectos: IRONCHEF, DEITIBOUNCE, ANGRYMONK, GINSU, SWAP, IRATEMONK y SOUFFLETROUGH. 2. Proyectos relacionados con la infección o manipulación de routers y cortafuegos. En este caso sería también aplicable el proyecto SOUFFLETROUGH. Afectaban por ejemplo a cortafuegos/routers Huawei, evadir cortafuegos Juniper Networks, rmware routers CISCO, etc. Nombre en código de los proyectos: HEADWATER, HALLUXWATER, GOURMETTROUGH, FEEDTROUGH, MONTANA, JETPLOW. 3. Proyectos relacionados con la manipulación y monitorización de comunicaciones telefónicas y terminales móviles. Se ha documentado la posibilidad de localizar de forma precisa terminales móviles cercanos, software malicioso para terminales con diferentes sistemas operativos (subir y bajar cheros, consultar SMS, agenda, geolocalización, escucha remota, etc.), software instalable en la SIM de un terminal que permite enviar la localización del teléfono móvil mediante mensajes ocultos en SMS o tecnología para falsicar una estación base GSM (BTS) y hacerse pasar por una válida (por tanto, poder escuchar llamadas telefónicas, falsicar números móviles, etc.). 6 https://es.wikipedia.org/wiki/Extensible_Firmware_Interface. © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 21 Nombre en código de los proyectos: WATERWITCH, TOTEGHOSTLY, GOPHERSET, DROPOUTJEEP, MONKEYCALENDAR, PICASSO, CANDYGRAM, TOTECHASER. Figura 1.2. Proyecto PICASSO. GSM handset 4. Proyectos relacionados con conexiones remotas y tecnologías inalámbricas variadas. ● SOMBERKNAVE: software que habilita conexiones inalámbricas en sistema operativo Windows XP. Permite que sistemas aislados (no conectados a Internet) puedan ser controlados remotamente si se encuentra forma de redirigir tráco TCP a través de esa conexión inalámbrica. ● SPARROW II: pequeño “ordenador” para facilitar la interceptación de comunicaciones WLAN. Hardware: IBM Power PC 405GPR processor, 64 MB SDRAM, 16 MB of built-inash, 4 mini PCI slots, CompactFlash slot, y 802.11 B/G hardware. Linux 2.4. Precio unidad (2008): $6.000. 22 ESTEGANOGRAFÍA © RA-MA ● NIGHTSTAND: sistema software y hardware para vulneración de comunicaciones inalámbricas (802.11) e inyección de código arbitrario. Objetivos principales: dispositivos con sistema operativo Windows 2000, Windows XP, Windows XP SP1/SP2 y WinXPSP2. Opera a una distancia de hasta 12 km. Figura 1.3. Proyecto Nightstand. Interceptación de comunicaciones inalámbricas ● BULLDOZER: tecnología que crea una conexión wireless oculta proporcionando acceso inalámbrico para controlar una backdoor. 7 ● FIREWALK: dispositivo que imita la apariencia de un conector RJ45 facilitando la monitorización e inyección de datos en el conector mediante una conexión vía radio, basada en el transmisor de radiofrecuencia HOWLERMONKEY. Sin duda tiene una utilidad importante para la creación de una red privada virtual con la máquina objetivo. El coste en 2008 era de $537.000 para 50 unidades. 8 7 http://arstechnica.com/information-technology/2013/12/inside-the-nsas-leaked-catalog-of-surveillance-magic/. 8 http://www.theregister.co.uk/Print/2013/12/31/nsa_weapons_catalogue_promises_pwnage_at_ the_speed_of_light/. © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 23 ● SURLYSPAWN: dispositivo para monitorizar remotamente el teclado de un ordenador sin necesidad de que este esté conectado a Internet. ● HOWLERMONKEY: transmisor de radiofrecuencia para facilitar la extracción de datos y el control remoto de un sistema. ● COTTONMOUTH: tecnología para crear conectores USB y Ethernet modicados que pueden ser utilizados para instalar código malicioso y facilitar conexión remota inalámbrica a la máquina objetivo. Por ejemplo, COTTONMOUTH-I es un USB que usa como parte esencial a TRINITY y a HOWLERMONKEY como radiotransmisor (en 2008 su coste era sobre $1M para 50 unidades). 5. Proyectos relacionados con la reconstrucción de imágenes a distancia y localización. Proyectos: CTX4000, PHOTOANGLO, NIGHTWATCH, RAGEMASTER, etc. Como puede observar el lector, la variedad de tecnologías que pueden utilizarse para el espionaje viene limitada exclusivamente por la capacidad económica del “atacante”. En los ejemplos anteriores el “atacante” eran las agencias de inteligencia, aunque perfectamente el mismo razonamiento podría ser aplicado a grandes corporaciones con capacidad económica y técnica. No obstante, la privacidad de las comunicaciones tiene muchos otros frentes que combatir, más probables y cercanos a nuestro día a día. Por ejemplo, las decisiones políticas que afectan a nuestra privacidad y tienen que ver con intereses económico-industriales, en algunos casos con la excusa de una mayor seguridad para la ciudadanía. No se puede mirar hacia otro lado cuando se aprueban legislaciones y directivas para la identicación y retención de comunicaciones a lo largo y ancho del planeta sin una justicación adecuada. Winston Churchill armaba que “cada pueblo tiene el gobernante que se merece” y quizás no estuviese muy equivocado. Cada sociedad se ha ido constituyendo de forma distinta a lo largo de los siglos, sus sueños y sus miedos se han ido entretejiendo con propósitos muy dispares. Los sistemas económicos, las conductas sociales, la moralidad, la religión, los avances tecnológicos, las guerras, etc., todo puede ser explicado balanceando las esperanzas y los miedos de la ciudadanía de cada sociedad. Melvin Kranzberg sentenció en sus leyes de la tecnología9 que la tecnología no es buena ni mala y mucho menos neutral. Posiblemente esta armación podría aplicarse a la cúpula política de cada país y a 9 https://en.wikipedia.org/wiki/Melvin_Kranzberg. 24 ESTEGANOGRAFÍA © RA-MA su forma de inuir en el establecimiento de leyes con uno u otro propósito. En la actualidad, en la mayoría de los países del mundo se opta por un sistema económico capitalista, donde fuertes cantidades de dinero se mueven en unas y otras direcciones, lo que provoca que poderes no emanados del pueblo inuyan de forma notoria sobre la forma de legislar en una sociedad y, por tanto, aplicar la moralidad de unas pocas personas sobre la moralidad de otras muchas. En la práctica, cada país establece sus legislaciones según sus criterios, moralidad e inuencias externas/internas. A menudo, el problema surge al establecer un equilibrio entre seguridad (véase por ejemplo, seguridad nacional) y libertades civiles de toda índole. Cada país a este respecto legisla de manera muy diferente en términos de protección de datos, poder de servicios policiales y servicios de inteligencia, procedimientos de vigilancia, etc. Posiblemente dentro de las “sociedades democráticas” el extremo se lo lleve la legislación norteamericana. Un ejemplo fue la Patriot Act norteamericana (Uniting and Strengthening America by Providing Appropriate Tools Required to Intercept and Obstruct Terrorism), ley promulgada en 2001 por la Administración George W. Bush que limitó una serie de derechos constitucionales a n de ampliar el poder del Estado sin la intervención del poder judicial, con la excusa de garantizar la seguridad nacional y combatir el terrorismo. En Europa la legislación es más respetuosa con los derechos de la ciudadanía, aunque no siempre el balance es el adecuado. Legislaciones de todo tipo se han publicado, algunas con bastante controversia, por ejemplo, la Ley 25/2007, de 18 de octubre, de conservación de datos relativos a las comunicaciones electrónicas y a las redes públicas de comunicaciones; la Ley 56/2007, de 28 diciembre (LSSICE); la Ley 34/2002, de 11 de julio (LISI); la Ley Orgánica 4/1997, de 4 de agosto, por la que se regula la utilización de videocámaras por las fuerzas y cuerpos de seguridad en lugares públicos; la Ley Orgánica 10/2007, de 8 de octubre, reguladora de la base de datos policial sobre identicadores obtenidos a partir del ADN, etc. Leyes que, de manera justicada o no, facilitan la monitorización legal de individuos, sus relaciones y comportamientos. Por ejemplo, la retención de datos de carácter personal relacionados con la telefonía ja (números de teléfono-origen destino de las llamadas, llamadas recibidas, perdidas, lugar de procedencia, etc.), telefonía móvil, comunicaciones en Internet (dirección IP, nombre y dirección de usuario, duración de la conexión, identicación del tipo de comunicación), etc. En resumen, hoy en día las comunicaciones personales e industriales son monitorizadas por múltiples actores que tienen objetivos diversos: espionaje gubernamental, robo de información industrial, control social, monitorización legal, etc. Por tanto, la necesidad de proteger nuestros datos, almacenados o en tránsito, es un tema esencial donde la criptografía y la esteganografía juegan un papel fundamental. En los próximos apartados y capítulos el lector observará cómo pueden utilizarse estas tecnologías para su benecio. © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 25 1.2 PROTECCIÓN DE LA INFORMACIÓN MEDIANTE CRIPTOGRAFÍA. LIMITACIONES Y RETOS FUTUROS El ser humano siempre ha tenido secretos de muy diversa índole, y ha buscado mecanismos para mantenerlos fuera del alcance de miradas indiscretas, especialmente si la información se transmite por un canal inseguro, en el cual la información puede ser curioseada y modicada. La evolución de todos los mecanismos y técnicas que intentan solucionar este problema es lo que se conoce hoy en día como la ciencia de la criptología, compuesta por dos ramas, criptografía y criptoanálisis. La criptografía se encarga del diseño de algoritmos y procedimientos para garantizar principalmente la condencialidad, integridad y autenticidad de nuestros datos y comunicaciones digitales. Por otro lado, la ciencia del criptoanálisis analiza la robustez de los algoritmos criptográcos intentando vulnerar su seguridad. El criptoanálisis es vital para el diseño de algoritmos criptográcos robustos. Para entender cómo opera y funciona la criptografía en nuestra vida diaria es importante una visión global de esta ciencia. Es por ello que a menudo la ciencia de la criptología (o solo criptografía si nos centramos en proteger comunicaciones/ datos) se estudia en dos grandes épocas: criptología clásica y criptología moderna. Es necesario conocer la primera para entender cómo funcionan actualmente los algoritmos y herramientas criptográcas modernas que protegen nuestra información digital y la condencialidad, integridad y autenticidad de acciones tan comunes como una llamada por teléfono móvil, la conexión a la página web de nuestro banco, la compra en nuestro supermercado favorito por Internet, etc. En los próximos apartados se describirá de forma resumida cómo ha evolucionado esta ciencia hasta nuestros días para entender cómo funciona y sobre todo cuáles son sus limitaciones. 1.2.1 Desde la criptografía clásica a las máquinas de cifrado La criptología clásica comprende todas aquellas técnicas de escritura secreta hasta mediados del siglo XX. Estas técnicas de cifra se agrupaban en métodos de transposición y métodos de sustitución. La transposición consiste en colocarcombinar-reordenar la información de un mensaje de formas distintas a la original, mientras que la sustitución establece mecanismos que consisten en la sustitución de caracteres del alfabeto empleado por otros símbolos, típicamente mediante sustitución monoalfabética o polialfabética. En la siguiente tabla se puede ver de forma clasicada las grandes familias de algoritmos criptográcos clásicos. 26 ESTEGANOGRAFÍA © RA-MA Figura 1.4. Clasificación de los métodos clásicos de cifra 1.2.1.1 ALGORITMOS CRIPTOGRÁFICOS CLÁSICOS DE SUSTITUCIÓN Los algoritmos de sustitución pueden clasicarse en función de cómo operen con el mensaje a proteger, ya sea con caracteres individuales (sustitución monográca), donde cada letra del texto en claro corresponde a una letra en el texto cifrado, o con letras/caracteres en bloques (sustitución poligrámica). En nuestro mundo digital actual, las letras o caracteres estarían representadas, por ejemplo, por su codicación ASCII. En el proceso de cifrado por sustitución es posible utilizar uno o más alfabetos. La idea es sencilla, un único alfabeto quiere decir que una letra en claro siempre se codicará en una misma letra en el texto cifrado. Utilizando más de un alfabeto, una misma letra en el texto en claro puede dar lugar a una letra diferente en el texto cifrado en función del alfabeto concreto utilizado con esa letra (se entenderá mejor con ejemplos posteriores). De hecho, los criptosistemas monoalfabéticos (un único alfabeto) por sustitución (y los de transposición o permutación) presentan una gran debilidad al poder romperse en muchos casos los criptogramas aplicando unas técnicas sencillas de estadísticas del lenguaje. Por ejemplo, la letra más probable en el texto en claro coincidirá con la letra más probable en el texto cifrado. Es aquí donde los cifradores por sustitución polialfabéticos (más de un alfabeto) intentaron robustecer las comunicaciones con el paso de los siglos. Los algoritmos Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 27 © RA-MA de sustitución polialfabética tienen por objeto producir una distribución plana de la frecuencia relativa de los caracteres en el criptograma. Para ello utilizan sustituciones múltiples de forma que en un texto largo se combinan las altas frecuencias de algunos caracteres con otros de menor frecuencia. En otras palabras, si por ejemplo la letra A, de alta frecuencia en el lenguaje castellano, se cifra algunas veces como la letra O y otras veces como la letra J (una de alta frecuencia y otra de baja) y lo mismo ocurre para la letra W, de baja frecuencia en el lenguaje, el efecto nal es suavizar la mencionada distribución de frecuencia de todos los caracteres del criptograma, y por tanto dicultar que un atacante descifre la información. Veamos a continuación algunos ejemplos famosos de algoritmos de sustitución a lo largo de la historia. 1.2.1.1.1 Cifrado por sustitución monoalfabética-monográfica. El cifrador del César El cifrador monoalfabético (monográco) por sustitución más famoso es el denominado cifrador del César, uno de los cifradores más antiguos, atribuido al emperador romano Julio César. Se trata de un criptosistema en el que se aplica un desplazamiento constante igual de 3 caracteres sobre el texto en claro, obteniéndose así el criptograma buscado. Para recuperar el texto solo debe restar 3 a cada letra. Por ejemplo, la letra A (posición 0) en el texto en claro (M i) correspondería a la letra D (posición 3) en el texto cifrado resultante (C i). 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Mi A B C D E F G H I Ci D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z J K L M N Ñ O P Q R S T U V W X Y Z A B C Tabla 1.1. Ejemplo de cifrado con el cifrador del César Con la tabla anterior el mensaje M = CÉSAR EL EMPERADOR HA SIDO ASESINADO quedaría como C = FHVDU HÑHOS HUDGR UKDVL GRDVH VLPDG R. El cifrador del César (cifradores monoalfabéticos por desplazamiento puro o adición) es un caso particular de los conocidos como cifradores genéricos por sustitución que pueden expresarse con la siguiente ecuación: Ci = (a*Mi + b) mod n 28 ESTEGANOGRAFÍA © RA-MA La conguración con diferentes valores de a y b permite cifrar un mensaje M dado de diferentes maneras. Por ejemplo, modicando el valor b se cifraría la información desplazándose b posiciones en el alfabeto. 1.2.1.1.2 Cifrado por sustitución monoalfabética-poligrámica. Cifrador de Playfair Los cifradores poligrámicos, a diferencia de los monográmicos que cifraban carácter a carácter, consideran un poligrama con n caracteres (n ≥ 2) del texto en claro para proceder a su cifrado. De esta forma, el bloque de información a cifrar serán digramas, trigramas o, en general, poligramas. De los cifradores poligrámicos, los más conocidos son los de Playfair de mediados del siglo XIX, y el de Hill, que data de comienzos del siglo XX, y que tiene una importancia especial en la criptografía clásica por el hecho de utilizar la matemática de matrices para las operaciones de cifrado y descifrado. A modo introductorio vamos a ver un ejemplo de cómo utilizar uno de estos cifradores para comprender una forma posible de realizar este tipo de cifrado. Cifrador de Playfair Este sistema consiste en separar el texto en claro en digramas y proceder a su cifra de acuerdo a una matriz alfabética de dimensiones 5x5 en la cual se encuentran representadas 25 de las 26 letras del alfabeto inglés. Para que este método de cifra presente un mayor nivel de seguridad, se incluirá al comienzo de dicha matriz una clave que se escribe a partir de la primera la omitiendo las letras repetidas. A continuación de dicha clave, se distribuyen las restantes letras del alfabeto hasta completar toda la matriz. Veamos a continuación un ejemplo en lenguaje castellano con 27 caracteres; supongamos que las letras I y J ocupan una única celda, al igual que la Ñ y la N. A B C D E F G H I/J K L M N/Ñ O P Q R S T U V W X Y Z Tabla 1.2. Matriz de cifra de Playfair Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 29 © RA-MA V E R A N/Ñ O Z U L B C D F G H I/J K M P Q S T W X Y Tabla 1.3. Matriz de cifrado de Playfair con clave de ejemplo VERANO AZUL El método de Playfair cifrará pares de caracteres del texto en claro M 1M2 como C 1C2 de acuerdo a las siguientes reglas: 1. Si M 1 y M2 se encuentran en la misma la, se eligen los elementos del criptograma C 1 y C2 como aquellos que están a la derecha de M 1 y M2, respectivamente. Esta operación se realiza operando el módulo 5, de forma que para la matriz se cumplen las siguientes transformaciones: EA -> RN, LU -> BL, DH -> FC. 2. Si M 1 y M 2 se encuentran en la misma columna, se eligen C 1 y C2 como los caracteres que están inmediatamente debajo de ellos, operando el módulo 5. Para la matriz se cumplen las siguientes transformaciones: ED -> ZK, FU -> MF, AX -> LA. 3. Si M 1 y M 2 se encuentran en las y columnas distintas, entonces forman dos vértices de un rectángulo. Los elementos C 1 y C 2 se obtienen de los dos vértices que faltan para completar dicha gura geométrica, considerando siempre la la de M 1 como el elemento C 1. Esto es, en la matriz se cumplen las siguientes transformaciones: OT -> ZS, YU -> WB. Recuerde, además, que las letras I y J ocupan una misma celda, al igual que la N y la Ñ, por lo que se cumplen por ejemplo también las siguientes transformaciones en dicha matriz: MI = MJ → PK, EN = EÑ → RV. No obstante, si en la operación de descifrado se cae en la retícula I/J, siempre se descifrará como la letra I. 4. Al representar el texto en claro como una cadena de digramas, pueden aparecer caracteres repetidos con lo cual no podría aplicarse ninguna de las tres opciones de cifrado anteriores. La solución a este problema está en romper esta repetición antes del cifrado, incluyendo una letra nula (relleno) que, de acuerdo al lenguaje castellano podría ser X, Z o Q por ejemplo. Adicionalmente, es posible que el mensaje nal a cifrar, una vez eliminados los digramas repetidos, tenga un número impar de caracteres. En tal situación se añade un carácter nulo al nal de la cadena para poder cifrar el último carácter del texto en claro. 30 ESTEGANOGRAFÍA © RA-MA Aplicando estos principios, un mensaje en claro M dada una clave K daría lugar a un criptograma C. Por ejemplo: M = Las sombras llaman a la puerta del castillo hoy K = MIEDO. M‘ = LA SX SO MB RA SL LA MA NA LA PU ER TA DE LC AS TI LX LO HO YX C = HCXEUEIA QBXSHCAH HFHCUZIS QFODSLCQ RDSEPEPM ZY M I/J E D O A B C F G H K L N/Ñ P Q R S T U V W X Y Z Tabla 1.4. Matriz de cifrado de Playfair con clave MIEDO Para descifrar un criptograma obtenido mediante Playfair, simplemente puede utilizarse el algoritmo inverso, esto es: 1. Si los elementos C 1 y C2 están en la misma la, se eligen M 1 y M2 como los caracteres inmediatamente a la izquierda, operando el módulo 5. 2. Si los elementos C 1 y C 2 se encuentran en la misma columna, se eligen M 1 y M2 como los caracteres inmediatamente arriba de aquellos, operando el módulo 5. 3. Si los elementos C 1 y C2 están en las y columnas distintas, M 1 y M2 se eligen como aquellos caracteres que forman los vértices que faltan del recuadro, comenzando por la la del primer elemento C 1 . 1.2.1.1.3 Cifrado por sustitución polialfabética periódica y no periódica Los sistemas por sustitución polialfabética (más de un alfabeto de cifrado) tienen, por lo general, un período de repetición que vendrá dado por la longitud de la clave de cifrado. 10 Un excelente ejemplo de este tipo de algoritmos de sustitución polialfabética periódica es el cifrador de Vigenère. En general, para este tipo de algoritmos en función del período (longitud de la clave) existen ataques, como 10 Si el texto a cifrar es más largo que la clave de cifrado, un número importante de caracteres del mensaje en claro serán cifrados con el mismo alfabeto. Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 31 © RA-MA el método Kasiski, 11 que permiten descifrar la información protegida. La única excepción se encuentra en los denominados cifradores polialfabéticos de clave continua, siendo un ejemplo característico el cifrador de Vernam. Los cifradores de clave continua poseen una clave tanto o más larga que el texto en claro por lo que serán cifradores no periódicos y permitirán, como se verá a continuación, algoritmos matemáticamente imposibles de criptoanalizar. Cifrador de Vigenère El cifrador polialfabético (periódico) más conocido es el sistema de Vigenère, así denominado en honor al criptólogo francés Blaise de Vigenère (1523-1596). El sistema utiliza el mismo método que el cifrador del César, esto es, una sustitución monográmica por desplazamiento de k caracteres en el texto, con la diferencia de que dicho desplazamiento viene indicado por el valor numérico asociado a uno de los caracteres de una clave que se escribe cíclicamente bajo el mensaje. En las siguientes tablas puede verse un ejemplo de cómo funciona este cifrado considerando unos valores determinados para cada letra. Por ejemplo, la letra E del mensaje en claro (se codica como 4) más la letra C de la clave (se codica con el número 2) darían igual a la letra G en el texto cifrado (4 + 2 = 6). 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Tabla 1.5. Ejemplo de codificación numérica de los caracteres Mi E N U N L U G A R D E L A M A N C H A Ki C E R V A N T E S C E R V A N T E S C Ci G Q M I L H Z E K F I C V M N G G Z C Tabla 1.6. Ejemplo de cifrado con algoritmo Vigenère En 1710, Giovanni Sestri, basado en el método de cifra de Vigenère, propone un algoritmo simétrico que sirve tanto para cifrar como para descifrar (con Vigenère para cifrar se “suma la clave”, para descifrar “se resta”). El invento del cifrador nalmente se le atribuye al inglés sir Francis Beaufort, amigo de Sestri, y recibe 11 https://www.youtube.com/watch?v=A7p2ydEPg1k. 32 ESTEGANOGRAFÍA © RA-MA precisamente el nombre de cifrador de Beaufort. La sustitución empleada en este cifrador sigue la siguiente expresión: C i = E ki(M i) = (ki - Mi) mod n Cifradores no periódicos. Vernam y libretas de un solo uso La debilidad de los cifradores por sustitución con más de un alfabeto está en la periodicidad de la clave. Esto provoca posibles cadenas repetidas en el criptograma que entrega una pista al criptoanalista, facilitando el ataque a estos cifrados. ¿Qué sucede si se aumenta la longitud de la clave de forma que tenga un tamaño igual o mayor que el texto en claro? ¿Se podría conseguir un secreto perfecto? 12 . El cifrado Vernam, y su utilización con las libretas de un solo uso, 13 es el único algoritmo criptográco conocido irrompible. El secreto perfecto es posible si se dan una serie de condiciones. ] Claves criptográcas de un solo uso perfectamente aleatorias (libretas de un solo uso). ] Distribución segura de la libreta entre emisor y receptor. ] La longitud de la clave tiene que ser al menos tan larga como el mensaje y de un solo uso. La clave se debe destruir después de usarla con un mensaje. Con estas condiciones el algoritmo criptográco es muy sencillo y se basa en las propiedades estadísticas de la operación or-exclusiva. Un mensaje cifrado se obtendrá calculando la operación or-exclusiva entre el mensaje en claro y la clave criptográca (representados ambos en bits). Para la recuperación del mensaje en claro se repetirá la misma operación or-exclusiva pero en este caso entre el texto cifrado y la clave. Ci = Mi ⊕ ki M = Ci ⊕ k i = (Mi ⊕ k i) ⊕ k i Por desgracia, en la práctica, no es posible alcanzar las condiciones de secreto perfecto para muchos de los sistemas de comunicaciones actuales que necesitan el uso de criptografía. La principal dicultad es el problema de la distribución de la 12 https://es.wikipedia.org/wiki/Secreto_perfecto. 13 https://es.wikipedia.org/wiki/Libreta_de_un_solo_uso. © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 33 clave del emisor al receptor. De hecho, hoy en día estas ideas se intentan llevar a la práctica con menores restricciones mediante la denominada criptografía de ujo. 1.2.1.2 ALGORITMOS CRIPTOGRÁFICOS CLÁSICOS BASADOS EN TRANSPOSICIÓN El segundo método clásico utilizado para cifrar mensajes es la transposición o permutación de caracteres. Esto consiste en reordenar los caracteres del texto en claro como si de una baraja de cartas se tratase. El resultado de tal acción es el de difuminar la información del texto en claro. 1.2.1.2.1 Algoritmos criptográficos basados en transposición por grupos En este tipo de cifra, los caracteres del texto en claro se reordenan por medio de una permutación que indica dónde colocar cada carácter del texto en claro en el texto cifrado. Por ejemplo, si utilizamos la permutación P M = 24531 con el texto M = MANOS ARRIBA obtendríamos el siguiente criptograma C = AOSNM RIBRA. Se puede observar como la letra A, de la palabra MANOS, que estaba en la segunda posición se coloca donde indica la permutación. En este caso la letra que está en la posición 2 se colocará en la posición 1, y así con el resto de letras. Precisamente este método fue utilizado por los lacedemonios con el sistema de cifra conocido como la escítala (siglo V). El sistema consistía en una cinta que se enrollaba en un bastón sobre el cual se escribía el mensaje en forma longitudinal. Figura 1.5. Ejemplo de escítala Una vez escrito el mensaje, la cinta se desenrollaba y era entregada al mensajero; si este era interceptado por cualquier enemigo, lo único que se conseguiría sería un conjunto de caracteres o letras distribuidas al parecer de forma aleatoria en dicha cinta. Incluso si el enemigo intentaba enrollar la cinta en un bastón con diámetro diferente, el resultado obtenido era un conjunto de letras escritas una a continuación de otra sin sentido alguno. 34 ESTEGANOGRAFÍA © RA-MA 1.2.1.2.2 Algoritmos criptográficos basados en transposición por series Esta técnica consiste en ordenar el mensaje como una cadena de submensajes, de forma que el mensaje original se transmite como M‘ = M S1MS2MS3..., en donde cada una de las cadenas sigue una función o serie; por ejemplo, M S1 puede corresponder a los múltiplos de 3, M S2 a los números primos, M S3 a los números pares, etc. Suponga entonces un mensaje M con un total de 25 caracteres. Si se utilizan las 3 series M S1, MS2 y M S3 que se indican en ese mismo orden: ] MS1: relación de números primos ] MS2: relación de números pares ] MS3: relación de números impares entonces la cifra se realizará como sigue: ] M = m1m 2 m3m4m5m 6m7m 8m 9m 10m 11m 12 m 13m 14 m15m 16m 17m18m 19m 20m 21 m 22 m23 m 24 m25 ] M’ = MS1M S2MS3 ] MS1 = 1, 2, 3, 5, 7, 11, 13, 17, 19, 23 ] MS2 = 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 ] MS3 = 9, 15, 21, 25 ] C = m1 m2 m3 m 5m 7m 11m13m 17m19 m23m 4m6m 8m 10 m12m 14m 16m18m 20m 22m 24 m 9 m 15m21 m 25 Al no tener período, este algoritmo de cifrado posee una mayor fortaleza pues diculta el criptoanálisis, residiendo su seguridad en el secreto de las series utilizadas. Por ejemplo, utilizando las series anteriores (M S1MS2 MS3 ), un mensaje M sería cifrado de la siguiente forma: ] M = ERRAR ES HUMANO, PERDONAR DIVINO ] MS1 = 1,2,3,5,7,11,13,17,19,23 ] MS2 = 4,6,8,10,12,14,16,18,20,22,24,26 ] MS3 = 9,15,21,25,27 ] C = ERRRS AODNI AEHMN PROAD VNUER IO Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 35 © RA-MA 1.2.1.2.3 Algoritmos criptográficos basados en transposición por columnas En este tipo de cifrados se reordenan los caracteres del texto en claro en N columnas de forma que el mensaje así escrito se transmite luego por columnas (leyendo los caracteres de forma vertical), obteniéndose de esta manera el criptograma. El efecto, al igual que en los demás cifradores por permutación, es desplazar las letras de las posiciones adyacentes. Por ejemplo, si N = 6, la columna de cifrados podría quedar como se indica: Columna de cifrados C1 C7 C13 C19 C2 C8 C14 C20 C3 C9 C15 C21 C4 C10 C16 C22 C5 C11 C17 ... C6 C 12 C18 ... Luego, el criptograma resultante sería: C = C 1 C7C13C 19 ... C2 C 8C14C 20 ... C3C 9C15 C 21 ... ... C6 C 12C 18 ... Por ejemplo, el texto M se convertiría en el criptograma C aplicando la transposición por columnas con N = 6 (en este ejemplo usaremos como carácter de relleno la letra X). M = NUNCA ES TARDE CUANDO LA DICHA ES BUENA Mensaje M escrito en columnas: N S C L A N U T U A E A N A A D S X C R N I B X A D D C U X E E O H E X C = NSCLA NUTUA EANAA DSXCR NIBXA DDCUX EEOHE X 1.2.1.2.4 Algoritmos criptográficos basados en transposición por filas De forma similar al sistema de cifra por columnas, en esta operación de cifra se escribe el mensaje M en forma vertical, por ejemplo de arriba hacia abajo, con un cierto número de las N F que será la clave y luego se lee el criptograma en forma horizontal. Por ejemplo, dado el mensaje M y un N F = 3 el criptograma resultante puede observarse en C. 36 ESTEGANOGRAFÍA © RA-MA M = EL PRISIONERO SE ENTREGARÁ EN EL LUGAR YA INDICADO Mensaje M escrito verticalmente en tres niveles (N F = 3): ERIESNERNLAADA LIORETGAEURIID PSNOERAELGYNCO C = ERIES NERNL AADAL IORET GAEUR IIDPS NOERA ELGYN CO 1.2.2 De las máquinas de cifrado a la criptografía moderna En este punto el lector tiene una idea general del tipo de técnicas y procedimientos que se utilizaban antes del siglo XX para proteger la información a intercambiar, especialmente vinculada a un mundo militar, diplomático y de espionaje. Los algoritmos basados en técnicas de sustitución o permutación (o combinaciones) se fueron complicando cada vez más, para dicultar sobre todo ataques estadísticos manuales. La complejidad de los algoritmos encontró su culmen con la aparición a comienzos del siglo XX de las primeras máquinas de cifrado electromecánicas. Su presencia en la protección de comunicaciones en la I y la II Guerra Mundial fue un gran hito en la historia de la criptografía con máquinas complejas como Enigma, Hagelin, Purple, etc. Por ejemplo, un uso histórico se puede ver en plena II Guerra Mundial, concretamente el 7 de diciembre de 1941, la radio de la estación naval de Bainbridge Island, cerca de Seattle en los Estados Unidos, interceptó un mensaje de solamente 9 minutos desde Tokio a la embajada japonesa en los Estados Unidos. El radiotelegrama estaba cifrado con una máquina que los norteamericanos llamaron Purple, cuyo código fue roto por William Friedman, 14 uno de los criptólogos más importantes de la historia, junto con un grupo de criptoanalistas. Si bien es cierto que ello no pudo evitar el ataque de los japoneses a Pearl Harbor, el esfuerzo realizado por todos en la destrucción de tales códigos jugó un papel fundamental, tiempo después, y marcó la derrota del pueblo nipón, así como el n de la guerra. En ese momento histórico los criptógrafos ya comenzaban a tener conocimientos y dispositivos electrónicos para generar algoritmos criptográcos realmente complejos de solventar manualmente. La industrialización de la electrónica de consumo avanzaría en esta tendencia en pocas décadas. No obstante, otros retos aguardaban a ser resueltos, el principal la distribución segura de las claves 14 Si usted es un apasionado de esta rama de la criptología se recomienda encarecidamente la lectura de los textos clásicos de criptoanálisis militar de William F. Friedman: https://www.nsa.gov/public_info/declass/military_cryptanalysis.shtml. © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 37 criptográcas necesarias entre un emisor y un receptor para cifrar una comunicación. Por suerte, eso sería resuelto décadas más tarde con la criptografía moderna. Con el paso de los siglos la ciencia de la criptología fue adquiriendo consistencia. Se conocían multitud de algoritmos de cifrado y métodos de criptoanálisis. Una nueva criptografía estaba a punto de saltar a escena, con los mejores avances de los siglos anteriores, y con una idea revolucionaria, la planteada en 1883 por el lingüista holandés Auguste Kerckhoffs von Nieuwenhof en su libro La cryptographie militaire:15 “La seguridad de un criptosistema no debe depender de mantener secreto el algoritmo de cifrado. La seguridad solo debe depender de mantener la clave de cifrado en secreto”. El camino hacia una nueva losofía criptográca ya había comenzado, y se fue robusteciendo con una serie de artículos que establecieron denitivamente la base de la nueva criptografía, la criptografía moderna, que se extiende hasta nuestros días. Existen dos momentos clave en el siglo XX para la evolución futura de la criptografía y la protección de las comunicaciones. Uno de ellos fue en la década de los 40 del siglo XX con la publicación de dos artículos fundamentales que sentarían las bases de la teoría de la información: “A Mathematical Theory of Communication”, en 1948, y “Communication Theory of Secrecy Systems”, en 1949, desarrollados por Claude Shannon. Los artículos de Shannon propusieron dos técnicas de cifrado en criptosistemas de clave secreta o simétrica 16 (los únicos que se conocían hasta la época) a las que llamó difusión y confusión. Por un lado, la difusión es la técnica que permite dispersar las propiedades estadísticas inherentes al lenguaje en el texto en claro sobre el criptograma, por ejemplo, mediante permutaciones o transposiciones. Por otro lado, la técnica de confusión permite generar confusión, caos, mezcla en el resultado cifrado, de tal forma que la dependencia entre texto en claro, clave y criptograma sería lo más compleja posible e impediría romper el algoritmo (propone aplicar la técnica de sustitución). Ahora más que nunca la criptografía se convertiría en el refugio de los matemáticos, el lugar perfecto en el cual aplicar numerosas teorías, teniendo en cuenta los principios de Kerckhoffs. Todos estos avances contribuirían al desarrollo en las siguientes décadas de los cifradores de ujo y los cifradores de bloque (criptografía simétrica). 15 KERCKHOFFS, A.; “La cryptographie militaire”, Journal des sciences militaires, vol. IX, págs. 5-83, jan. 1883; págs. 161-191, feb. 1883. http://www.petitcolas.net/kerckhoffs/index.html. 16 Se conoce como criptografía simétrica a aquellos algoritmos que utilizan la misma clave para cifrar (emisor) y descifrar (receptor) una información. 38 ESTEGANOGRAFÍA © RA-MA En la criptografía simétrica moderna existen dos tendencias: criptografía simétrica de bloques y criptografía de ujo. En el primer caso, es la evolución de las técnicas clásicas que en lugar de utilizar poligramas para cifrar utilizan bloques de N bits. Por otro lado, la criptografía de ujo es un intento de llevar a la práctica el cifrado de Vernam y el esquema OTP (libreta de un solo uso). El problema del cifrado de Vernam es la distribución de la clave. Como recordará el lector de apartados anteriores, para que este algoritmo criptográco fuera seguro se necesitaba una clave de un solo uso del mismo tamaño que el mensaje a transmitir y esta debía ser proporcionada a los interlocutores por un canal seguro. Esta condición ya de por sí tiene una implicación graciosa, si la clave es del mismo tamaño que el mensaje y se proporciona por un canal seguro, ¿por qué no proporcionar directamente el mensaje por ese canal seguro? Para intentar solucionar este problema surgieron los cifradores de ujo. Los cifradores de ujo pretenden, utilizando una clave pequeña conocida exclusivamente por emisor y receptor generar una clave (con buenas propiedades estadísticas) lo sucientemente larga para usarse en un cifrado de Vernam. En esencia consisten en el diseño de polinomios matemáticos, 17 polinomios con una serie de propiedades matemáticas que permiten garantizar propiedades estadísticas y de periodicidad del resultado de dicha función, es decir, de los bits de salida que se utilizarán como clave. Figura 1.6. Esquema de un cifrador de flujo Lógicamente al tratarse de un procedimiento determinista la secuencia clave generada nalmente tendrá un período (que depende de la semilla-clave inicial), pero en la práctica los cifradores de ujo se pueden diseñar para tener períodos enormes, por ejemplo 10 38 bits. Es precisamente esta clave en binario generada la que se utilizará para proteger la información en claro mediante una operación orexclusiva. En el ejemplo anterior se podría enviar hasta 10 29 Gb. Si suponemos una conexión de 100 Gb/s la clave no se repetiría antes de ¡31.709.791.983.764.586.504 años! 17 De forma conceptual un polinomio matemático se puede ver como una función con diferentes variables a las que se les puede asignar valores iniciales (bits). Estos valores se conocen como semilla. Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 39 © RA-MA En cuanto a la criptografía simétrica de bloques, es importante destacar una serie de cuestiones que permitirán comprender al lector cómo funcionan este tipo de algoritmos en la actualidad y dónde reside la seguridad de algoritmos como 3DES o AES, si desea profundizar en su algoritmia. Algoritmos que se usan masivamente para la protección de datos o comunicaciones en redes de ordenadores, sistemas operativos e Internet. Salvando las distancias, un algoritmo criptográco simétrico de bloques puede verse como un algoritmo polialfabético poligrámico de N bits que combina de manera estudiada procedimientos de sustitución y transposición para conseguir difusión y confusión, es decir, para dicultar al máximo que un atacante pueda realizar el proceso inverso y recuperar la información en claro. De hecho, estos algoritmos se diseñan para tener seguridad condicional y computacional. Es decir, el algoritmo no puede invertirse salvo ataque por fuerza bruta (probar todas las claves) y esta tarea debería ser computacionalmente intratable con la capacidad tecnológica del momento (por este motivo los algoritmos criptográcos modernos se van actualizando, recomendando el uso de nuevos algoritmos). Adicionalmente, los algoritmos tienen que tener seguridad condicional, es decir, un algoritmo criptográco será seguro mientras que nadie demuestre lo contrario. Esto es importante no perderlo de vista pues marcará la estructura de los algoritmos de cifrado, por ejemplo, en el actual estándar de cifrado AES. Según esto, el lector puede observar fácilmente como en la mayoría de algoritmos criptográcos simétricos de bloques es común el uso de: 1. Operación or-exclusiva. 2. Operación de desplazamiento o rotación. 3. Operaciones de no-linealidad. Por ejemplo, las cajas S de DES o los procedimientos en AES. 4. Estructura de mezcla de las operaciones anteriores. 5. Número de vueltas o repeticiones del conjunto de operaciones. Como puede deducir gran parte de esas operaciones son parecidas conceptualmente a lo que se conocía a lo largo de la historia (como hemos ido viendo). El único reto actual en el diseño de estos algoritmos criptográcos es cómo seleccionar el menor número de operaciones y cómo combinarlas para garantizar el mínimo conocimiento del atacante de las propiedades estadísticas del texto en claro (difusión y confusión). Con este objetivo, la tendencia actual es diseñar pequeños bloques de operaciones que mezclen funciones or-exclusivas (propiedades que se mostraron interesantes en el cifrado de Vernam), operaciones de desplazamiento y rotación, y operaciones de no-linealidad. Esos bloques se repiten una y otra vez, en 40 ESTEGANOGRAFÍA © RA-MA lo que se conoce como el número de vueltas de un algoritmo criptográco simétrico, hasta que con los ataques actuales, por ejemplo criptoanálisis lineal o criptoanálisis diferencial, se demuestra que un atacante no puede recuperar la información en claro (seguridad condicional). En ocasiones, el número de vueltas de un algoritmo criptográco puede, incluso, ser un poco subjetivo. Por ejemplo, el actual estándar de cifrado AES para un tamaño de bloque de 128 bits y clave de 128 bits se demuestra que es seguro frente a ataques como criptoanálisis diferencial o criptoanálisis lineal mediante 6 vueltas. Los autores recomendaron que el algoritmo tuviera 10 vueltas, 4 más en lo que consideran un posible margen de seguridad. Por ejemplo, el antiguo estándar de cifrado DES repetía la estructura de operaciones congurada, red Feistel, 16 veces, persiguiendo el mismo objetivo de seguridad condicional. Recuerde el lector que una red Feistel trocea un bloque de N bits en dos partes. La parte derecha sale como la nueva parte izquierda y la nueva parte derecha será el resultado de hacer una operación or-exclusiva de la entrada izquierda con una serie de modicaciones, función F (procedimientos no-lineales), de la entrada derecha. Figura 1.7. Algoritmo criptográfico DES y la red Feistel Sin estas breves aclaraciones del porqué de cada elemento en un algoritmo, un lector novicio, que observe el esquema de este algoritmo por primera vez, simplemente se quedaría sin palabras, sin entender nada de nada, y mucho menos conar en que este tipo de algoritmo realmente en algún momento pueda proteger su información. © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 41 En cualquier caso, si no se detectan fallos en el diseño actual de los algoritmos criptográcos simétricos no es posible recuperar el texto en claro de un criptograma sin la clave criptográca válida. El único ataque posible es la fuerza bruta, probando todas las claves posibles, y los algoritmos se diseñan precisamente para ser robustos frente a este tipo de ataques. El tiempo necesario para conseguir tal hazaña es inviable. Independientemente de lo anterior, todavía existía un problema que no tenía solución, y es cómo poder intercambiar de forma segura las claves criptográcas, actualmente de tamaño ínmo comparado con la información a proteger. Algunas ideas se propusieron sin excesivo éxito, de hecho hoy en día existen propuestas, bajo ciertas suposiciones, para intercambiar claves mediante el uso de protocolos telemáticos que utilizan criptografía simétrica, por ejemplo los centros de distribución de claves (KDC) o el protocolo Kerberos. 18 En la práctica, a nales de la década de los 70 y en la década de los 80 se producirían los avances conceptuales más notorios que marcarían muchas de las tendencias criptográcas en las décadas posteriores. Fue en esta época cuando se abrió el camino al uso de funciones unidireccionales fáciles de computar en una dirección pero muy complejas computacionalmente de invertir sin una trampa, una pista a modo de clave de sistema (estos principios son los que permiten entre otras cosas la rma digital hoy en día). Posiblemente, el salto cualitativo más importante en la historia de la criptografía fue gracias al artículo “New directions in cryptography”, publicado en 1976 por Whiteld Dife y Martin Hellman, que establecía el concepto de criptografía asimétrica o clave pública, en la que cada participante en una comunicación secreta disponía de dos claves, una pública y otra privada. Cualquier emisor podía comunicarse con un destinatario conociendo exclusivamente su clave pública, solo el destinatario podía descifrar la comunicación cifrada, dado que solo él conocía su clave privada. He de reconocer que sin estudiar la base matemática que sustenta este tipo de criptografía asimétrica suena cuando menos extraño la existencia de dos tipos de claves diferentes, una pública y otra privada. No obstante, puede comprenderse su funcionamiento, sin necesidad de recurrir a las matemáticas, utilizando un símil con candados y llaves. Imagine el lector que un usuario A desea comunicarse con un usuario B introduciendo un secreto en un cofre que puede ser cerrado utilizando una serie de candados. El usuario B envía a A un candado suyo abierto (su clave pública) y conserva en privado la llave del candado. Un atacante que tenga acceso al candado no podrá abrirlo si no dispone de la llave. El usuario A introduce su secreto en el cofre 18 https://es.wikipedia.org/wiki/Kerberos. 42 ESTEGANOGRAFÍA © RA-MA y lo protege cerrándolo con el candado de B. Solo el usuario B con su llave podrá abrirlo y recuperar el secreto. Esta idea conceptualmente tan sencilla (criptografía asimétrica) resolvió el problema de la distribución de claves criptográcas en redes de comunicación insegura (Internet). En este punto, se abrió la caja de Pandora, desde entonces múltiples algoritmos, bajo el paraguas de la criptografía de clave pública, han permitido intercambiar claves criptográcas para su uso con algoritmos criptográcos simétricos o de ujo. Habitualmente se conoce a este tipo de claves intercambiadas para ser utilizadas con algoritmos simétricos como claves de sesión, para remarcar la importancia de que estas claves deberían ser utilizadas el menor número de veces posible y durante la menor cantidad de tiempo posible (en la mente siempre está la idea de emular el cifrador perfecto basado en la libreta de un solo uso). Por tanto, la criptografía pública solucionó el problema de la distribución de claves pero se debían añadir mecanismos para garantizar la identidad de las claves públicas de las partes de una comunicación (¿la clave pública del usuario con el que me comunico es realmente de él?). Sin recurrir a grandes infraestructuras, se puede recurrir a mecanismos más o menos a medida que tienen varios inconvenientes, entre ellos su falta de escalabilidad. Son muy famosas propuestas basadas en anillos de conanza como, por ejemplo, las rmas PGP entre usuarios para generar anillos de conanza. Imagine el siguiente escenario: Pepe se fía de Juan, luego certica la clave pública de Juan. Tomás se fía de Pepe, luego se fía de lo que certica Pepe y por tanto se fía de la identidad de la clave pública de Juan. Es lo que en lenguaje coloquial y popular se representa por la frase “los amigos de tus amigos son mis amigos”, nada aconsejable lógicamente en un entorno de documentos cifrados, secretos, etc. O al menos, esa es mi opinión. Independientemente de estas propuestas, en la actualidad no se puede hablar de criptografía de clave pública sin mencionar las infraestructuras de clave pública (PKI), las autoridades de certicación o tercera parte de conanza (CA) y los certicados digitales. En pocas palabras, vericar la identidad de una clave pública se soluciona incorporando el concepto de tercera parte de conanza. Una tercera parte de conanza es un elemento intermedio que actúa como juez en esa vericación gracias a que mediante el uso de criptografía pública la tercera parte de conanza certicará/rmará la clave pública de cada comunicante. Un lector aventajado observará rápidamente que una tercera parte de conanza no es suciente para solucionar el problema ya que a su vez alguien podría suplantar a esa parte. Esto se intenta solucionar mediante mecanismos administrativos (“cualquiera” no debería ser una tercera parte de conanza de aceptación masiva) y mediante mecanismos técnicos. Técnicamente el emisor y el receptor de una comunicación deben tener, por defecto, la clave pública de la tercera parte de conanza para interactuar con © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 43 ella y vericar las claves públicas de posibles comunicaciones origen-destino. Un ejemplo clásico de este funcionamiento en el mundo real son los navegadores web y la comunicación vía protocolo https con servidores web. Los navegadores tienen instaladas por defecto las claves públicas de las CA más famosas (terceras partes de conanza), cuando recibe el certicado público del servidor (su clave pública) rmado por una CA “famosa”, el navegador puede vericar que la clave pública es de quien dice ser y, por tanto, iniciar un protocolo para el intercambio de una clave de sesión para cifrar los datos en tránsito. Por desgracia, a día de hoy las infraestructuras de clave pública y este sistema de vericación basado en CA están puestos en cuarentena debido a multitud de escándalos de falsicación de CA y certicados digitales. En resumen, todos estos avances matemáticos facilitarían el desarrollo de protocolos criptográcos en las redes de comunicación, y permitieron dar una solución práctica al problema de la distribución de claves. En la década de los 80, el avance en los principios de los algoritmos de curvas elípticas y en las ideas de la actual criptografía cuántica marcarían los sistemas actuales de protección de comunicaciones digitales. En cualquier caso, por suerte, el lector puede proteger sus comunicaciones en el día a día sin necesidad de bucear a bajo nivel en los algoritmos comentados. En el Anexo A se ha visto conveniente recoger algunas herramientas de fácil uso que utilizan diversos algoritmos criptográcos para proteger diferentes tipos de información (correo electrónico, disco duro y USB, etc.). Si dispone de algo de tiempo libre le recomiendo que las instale, congure y use. 1.2.3 Superando a la criptografía. Limitaciones y retos futuros Sin entrar en detalles de bajo nivel para cada algoritmo criptográco particular, existen muchos libros que le ayudarán en esa dirección; el lector en este capítulo puede construirse una visión completa de la ciencia de la criptografía y cómo hoy en día nos ayuda a proporcionar servicios de condencialidad, integridad y autenticidad en el intercambio o almacenamiento de datos digitales. Por desgracia, existen limitaciones y retos futuros que deben abordarse. La criptografía actualmente tiene tres problemas intrínsecos a su naturaleza. En primer lugar las comunicaciones cifradas son fáciles de detectar, aunque no por ello seamos capaces de entender lo que se está transmitiendo. Una comunicación cifrada, precisamente por utilizar inteligentemente operaciones para producir confusión y difusión, se diferencia estadísticamente de las comunicaciones en claro, por tanto un atacante puede detectar cuándo este tipo de comunicaciones tienen lugar, localizar a la fuente (máquina o persona que las realiza) y emprender acciones 44 ESTEGANOGRAFÍA © RA-MA contra la fuente o simplemente inhibir la comunicación. En multitud de escenarios, legítimos o no, el hecho de que un atacante conozca que nos estamos comunicando supone un problema práctico, ya sea porque un malhechor está robando datos de una organización (usando criptografía para que no detecten la fuga de información sensible analizando el tráco en claro), defensores de libertades civiles están intercambiando información en un país dictatorial o agentes inltrados en una organización terrorista reciben órdenes desde el cuartel general. Por otro lado, está el problema de las claves criptográcas. Su uso, su creación, su almacenamiento y su destrucción suponen el mayor problema de la criptografía moderna. De hecho, en la práctica la mayoría de ataques van destinados a conseguir la clave criptográca utilizada en una comunicación de una y mil maneras, ya sea infectando el equipo que opera con ella, realizando ataques de escucha física (criptoanálisis acústico, ataques térmicos, estudio del consumo energético, etc.), ingeniería social, etc. Es famosa en el mundo de la criptografía la siguiente frase: la criptografía no se ataca, se esquiva, haciendo alusión clara a que los ataques prácticos en la actualidad van más en la dirección de conseguir las claves en claro que a intentar romper los algoritmos, lo cual, hasta lo que se conoce, no es posible con algoritmos modernos. Figura 1.8. Criptoanálisis acústico y ataques térmicos En último lugar tenemos el problema de mantener la cadena de privacidad (condencialidad, integridad y autenticidad) en comunicaciones donde son necesarios elementos intermedios de procesamiento de datos. El mayor ejemplo, y el mayor problema, lo vemos hoy en día en la denominada cloud (nube) y en el cloud computing. Si dos personas desean intercambiar información condencial pero necesitan que un elemento tercero, por ejemplo, un servicio de Internet, opere sobre sus datos, este servicio necesitará la clave criptográca para descifrar la información, operar con ella y volver a cifrarla. Imagine el escenario en el que dos delegaciones de un grupo empresarial contratan un servicio externo para hacer estadísticas sobre datos contables que consideran sensibles. No podrán utilizar criptografía en este caso, ya que la tercera parte necesitará la clave criptográca. Este es un problema © RA-MA Capítulo 1. PROTECCIÓN DE LAS COMUNICACIONES DIGITALES 45 que diculta la privacidad en Internet considerando el potencial de servicios que ofrecen la nube y el cloud computing. Quizás en las próximas décadas este problema sea resuelto con un tipo de criptografía, conocida como criptografía homomórca completa, pero aún falta tiempo. Entender las matemáticas que hay detrás de ella no es evidente para cualquier lector pero en esencia puede verse como aquel tipo de criptografía que permite realizar operaciones matemáticas sobre datos cifrados sin la necesidad de conocer qué información está protegida. La ventaja de este tipo de algoritmos es que las operaciones realizadas sobre los datos cifrados repercutirán de la misma manera que si los hubieran realizado en los datos en claro (con la ventaja de que no conocen el texto en claro y por tanto la clave criptográca que lo descifra). Por ejemplo, imagine una operación sencilla en la cual se quieren sumar dos números, se desea que una empresa externa sume esos dos números pero que no sepa su valor real. La criptografía homomórca solucionaría este problema, sumando los datos cifrados y generando un resultado. Al descifrar la información recuperada será igual a como si se hubieran sumado los valores en claro. 19 En este punto existen dos problemas evidentes de la criptografía que hay que trabajar, dicultar la visibilidad de las comunicaciones cifradas y establecer mecanismos para no permitir que las claves criptográcas pudieran ser accesibles. En el interés de proteger mejor las comunicaciones, típicamente cifradas, surgió históricamente el concepto de la esteganografía. Este arte, actualmente toda una ciencia, se centra en todo tipo de procedimientos para crear comunicaciones enmascaradas, comunicaciones que pasarían desapercibidas para un potencial atacante. Ni mucho menos la esteganografía es una ciencia novedosa, como se verá en el capítulo siguiente, sin embargo su aplicación a tantos escenarios variados de nuestras comunicaciones digitales la convierten de facto en un aliado ideal junto a la criptografía, con buenos o malos nes. En la práctica, las comunicaciones se cifrarán y posteriormente se ocultarán, intentando garantizar tanto invisibilidad de la comunicación como privacidad. En los siguientes capítulos el lector descubrirá el potencial de esta ciencia renovada tanto para proteger sus comunicaciones y datos como para aplicar ataques avanzados como ocultación de código malicioso, evasión de seguridad perimetral, etc. 19 Si desea profundizar en esta nueva criptografía puede profundizar en: https://en.wikipedia.org/ wiki/Homomorphic_encryption. 2 OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES. ESTEGANOGRAFÍA “Las tres cosas más difíciles en este mundo son: guardar un secreto, perdonar un agravio y aprovechar el tiempo”. Benjamin Franklin 2.1 ESTEGANOGRAFÍA EN LA ACTUALIDAD. DEFINICIÓN DE CONCEPTOS El término esteganografía, cuyo origen etimológico proviene de las palabras griegas steganos (oculto) y graphein (escribir), puede denirse como escritura oculta. En general, se traduce del término inglés steganography, que a su vez proviene del título del libro Steganographia, escrito por el abad alemán Johannes Trithemius (1462-1516) en 1499. Este libro, compuesto por 3 volúmenes escritos en latín, profundizaba en los dos primeros volúmenes en procedimientos de escritura oculta, mientras que en el tercero se hacía referencia a temas mágicos, como astrología o magia negra. Por ejemplo, documentando cómo crear un método para comunicarse sin mensajeros ni códigos establecidos. Para comunicarse a largas distancias Johannes indicaba que tan solo es necesario utilizar “espíritus”. El libro Steganographia, que tiene una apariencia de texto mágico o de brujería, tuvo una circulación reducida en el siglo XVI, concretamente en círculos privados, hasta que se publicó nalmente en 1606. A nales del siglo XX dos investigadores, Dr. Thomas Ernst y Dr. Jim Reeds, que trabajaban de forma independiente, llegan a la conclusión de que el tercer volumen de esta obra escondía mensajes ocultos. 48 ESTEGANOGRAFÍA © RA-MA Curiosamente este volumen parece más un tratado de criptografía que de ciencias ocultas. Si bien los mensajes descubiertos no tienen una relevancia especial, sí muestra la utilización de ciertas técnicas de ocultación. Por ejemplo, Trithemius denió una serie de esquemas para ocultar mensajes en las largas invocaciones de los nombres de ángeles, los mensajes secretos aparecían como patrones de letras dentro de las palabras. Un ejemplo de patrón es que de cada 2 palabras se elige la segunda y de ella se elige una letra sí y otra no. Figura 2.1. Portada del libro Steganographia Independientemente de estas curiosidades, la ciencia de la esteganografía, en sentido estricto, se divide en dos grandes áreas, la esteganografía y el estegoanálisis, de una forma similar a lo que sucedía en la criptología (criptografía y criptoanálisis). La ciencia de la esteganografía estudia diferentes procedimientos para ocultar información almacenándola en algún soporte o transmitiéndola por algún canal, mientras que la ciencia del estegoanálisis estudia la seguridad de los diferentes algoritmos esteganográcos, aplicando diferentes procedimientos para detectar la posible presencia de información oculta en un medio o bien para eliminarla, se tenga certeza de que existe o no. Las personas que aplican la ciencia del estegoanálisis se denominan estegoanalistas. La combinación de ambas es vital para el desarrollo de algoritmos robustos. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 49 En general, se denomina estegomedio a aquel medio o soporte de comunicación (por ejemplo, un chero informático) que se utiliza para enmascarar la información a transmitir sin levantar sospecha. Habitualmente el resultado de ocultar una información en un estegomedio da lugar a un estegoobjeto, sustitúyase la palabra objeto por el medio correspondiente. Por ejemplo, si como estegomedio se utilizan imágenes digitales para ocultar información, a la imagen resultante que contenga la información oculta se le denominará estegoimagen. Otros ejemplos serían estegoaudio, estegovídeo, etc. En los próximos apartados el lector comprenderá perfectamente los diferentes tipos de estegomedios y cómo poder llegar a utilizarlos en numerosas situaciones reales. No obstante, para comprender el uso actual de la ciencia de la esteganografía en el mundo real es importante recordar las ideas reejadas en el problema del prisionero,20 formalizado por G. J. Simmons en 1983. La descripción de este problema parte de la necesidad de comunicación entre dos entidades A y B, se supone por simplicación que se habla de personas, que son arrestadas y connadas en celdas separadas. El objetivo que se plantea consiste en desarrollar un plan de fuga, intercambiando información a través de su guardián, dado que se les impide una comunicación directa. Si el guardián es medianamente competente no permitirá una comunicación cifrada, y si tiene la más mínima sospecha interrumpirá las comunicaciones. De este modo, A y B deben comunicarse de manera invisible usando algún tipo de esteganografía. Una forma de hacer esto es ocultar información en un mensaje de apariencia inocua, por ejemplo, una imagen. B podría dibujar un dibujo de una vaca azul en un pasto verde, y pedir al guardián que se lo pase a A. Lógicamente el guardián observará el dibujo y al no alertar nada raro en él, si acaso un dibujo de arte abstracto, lo transmitirá sin saber que los colores del dibujo ocultan un mensaje. En este punto es importante analizar los comportamientos posibles del guardián (atacante) ante la comunicación interceptada: 1. Ataque pasivo. El guardián puede analizar la información intercambiada, dejando que la comunicación tenga lugar si no advierte nada raro. En un entorno actual, telemático (redes de ordenadores), puede que el guardián solo pueda analizar la información (en Internet) pero no interrumpirla. 2. Ataque activo. El guardián podría modicar la información, accidentalmente o a propósito, e incluso dañándola signicativamente. 20 No confundir el problema del prisionero con el dilema del prisionero que se aplica en teoría de juegos. 50 ESTEGANOGRAFÍA © RA-MA 3. Ataque malicioso. El guardián puede modicar a su antojo la información ocultada en una cubierta con la intención de provocar una acción determinada en las entidades receptoras de dicha información. En la práctica, este ataque no es realista en la mayoría de las situaciones ya que en principio debería desconocer los procedimientos utilizados. En resumen, el problema del prisionero introduce, y ejemplica de manera excepcional, los problemas actuales en el campo de la esteganografía y el estegoanálisis. Sin duda, el problema principal, que se ha intentado resolver a lo largo de los años, es cuánta información necesitan conocer previamente dos entidades que desean comunicarse de manera enmascarada siendo vigiladas por un guardián. Cuanto mejor sea esa información más realista será el mecanismo de ocultación. De hecho, hoy en día, las comunicaciones se realizan por Internet, un medio que podemos considerar inseguro por defecto (espiable), por tanto en Internet existen multitud de guardianes que podrán observar nuestras comunicaciones, y como buenos estegoanalistas, aplicar ataques pasivos, activos o maliciosos. Quizás ya en este punto el lector puede preguntarse si la esteganografía, además de un uso evidente en la privacidad y anonimato de las comunicaciones, tiene algún otro uso y sobre todo quién la usa. En los próximos capítulos observaremos como la esteganografía ha evolucionado al ritmo de las tecnologías actuales. En la antigüedad, su utilización estaba restringida a una población reducida, típicamente con formación en escritura y lectura, como militares, diplomacia, políticos o artistas. Hoy en día, su utilización es generalizada y tiene un impacto en la sociedad civil, con resultados positivos y negativos. Se han documentado usos para la defensa de libertades civiles (libertad de expresión y comunicación), así como otros usos más nefastos como su utilización para sincronizar planes terroristas o de espionaje gubernamental. Pero no queda ahí su utilidad, como veremos a lo largo del libro la esteganografía y variantes se utilizan en el día a día para vulnerar la seguridad de las redes de ordenadores, facilitando el anonimato y la fuga de información (espionaje industrial), la creación de malware invisible al software antivirus (al lector menos avezado en estos términos le sonará el término más particular y coloquial de “virus”), mecanismos de protección intelectual frente a copias ilegítimas, etc. Antes de profundizar en este apasionante mundo es importante tener algo más de visión global de lo que supuso la esteganografía en el pasado. En el siguiente apartado revisaremos rápidamente algunos eventos interesantes de la historia de la esteganografía. Este apartado no pretende retratar con exactitud todos los eventos acontecidos en la historia, siendo su objetivo fundamental la comprensión de cómo en la práctica lo único que limita la creación de nuevas formas de ocultar © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 51 información es la imaginación del creador de dichas técnicas. Para nalizar el capítulo, analizaremos los sistemas esteganográcos existentes en la actualidad e introduciremos las diferentes técnicas de ocultación que se analizarán en profundidad en los siguientes capítulos. 2.2 ESTEGANOGRAFÍA CLÁSICA. HISTORIA DE LA OCULTACIÓN DE COMUNICACIONES Uno de los testimonios más antiguos de uso de esteganografía se remonta al siglo V a.C., Las Historias del historiador griego Heródoto de Halicarnaso (484 a.C.-425 a.C.) recoge en sus crónicas los conictos entre Grecia y Persia, de especial interés desde el punto de vista de la esteganografía. Según Heródoto, fue la escritura oculta lo que permitió a los estados griegos evitar ser ocupados por una Persia opresora. Este hecho queda reejado en la historia de Histieo. Histieo, desde la corte de Persia quería alentar a su yerno Aristágoras de Mileto para que se rebelara contra el rey de Persia. Para transmitir sus instrucciones de forma segura, Histieo afeitó la cabeza de un mensajero, y tatuó el mensaje en su cuero cabelludo esperando a continuación a que le volviera a crecer el pelo. El mensajero pudo viajar sin levantar sospechas y hacer llegar la información que fue revelada al afeitarse la cabeza. Esta “sutil” comunicación permitió a los griegos percatarse de los planes persas para conquistarles. Otra de las crónicas de Heródoto versa sobre la historia de Demerato. En esta historia se describe el interés de Demerato de avisar a Esparta de que el rey persa Jerjes estaba planeando invadir Grecia. Este aviso no fue sencillo. La dicultad recaía en cómo enviar el mensaje sin que fuera interceptado por los vigías persas ingeniando para ello un canal de comunicación encubierto. El mecanismo de comunicación consistió en retirar la cera de un par de tablillas de madera, escribir la alerta de la proliferación militar en Persia y luego cubrir el mensaje con cera. Esta tabla, aparentemente en blanco, pasó completamente desapercibida, incluso para sus receptores durante un tiempo, hasta que descubrieron el método tan sutil de comunicación. Como resultado obvio de esta advertencia, los griegos comenzaron a armarse. 52 ESTEGANOGRAFÍA © RA-MA Figura 2.2. Tableta romana de cera con punzón de espátula Otra de las crónicas relata como el noble Harpagus transmitió una información a Cyrus, rey de Persia, indicándole que recibiría ayuda desde “dentro” para solucionar la opresión que sufría su país. Para ello vistió a un mensajero de cazador y le proporcionó una liebre en cuyo vientre afeitado había escrito el mensaje a transmitir, oculto tras crecer el vello. El cazador con la liebre pasaron desapercibidos. Otros ejemplos similares se pueden ver en la cultura milenaria china donde se escribían mensajes sobre seda na, que luego era aplastada hasta formar una pelotita diminuta que se recubría de cera para facilitar que el mensajero ocultara la información tragándose la bola. Todo este tipo de técnicas siguieron utilizándose a lo largo de los siglos, pero sin duda, siglos más tarde, durante los siglos XVI y XVII, y como culmen de la cultura renacentista, aparecería una valiosa cantidad de información sobre literatura esteganográca. El célebre renacentista Girolamo Cardano (1501-1576), excelente matemático y físico, puede ser recordado en este ámbito por su contribución a la esteganografía al reinventar en 1550 un procedimiento cuyos orígenes se encuentran en la cultura milenaria china, en lo que se conoce como la reja de Cardano o Cardan grille en terminología inglesa. El sistema Cardan grille en sus orígenes funciona de la siguiente manera: cada destinatario poseía un pedazo de papel o cartón con agujeros cortados en él (la reja). Cuando esta plantilla se ponía encima de un mensaje inocente, los agujeros dejaban ver letras especícas del mensaje, revelando el mensaje oculto. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 53 Figura 2.3. Ejemplo de reja de Cardano El lector puede observar la enorme dicultad para descubrir la información oculta si se desconoce la plantilla que actúa a modo de ltro. De hecho, existen multitud de variantes basándose en este principio, en función de cómo se utilice la plantilla, como por ejemplo, ir rotando 90 grados la plantilla cada vez que se obtiene una letra del mensaje oculto (turning grille). En cualquier caso, aunque es cierto que la idea de la reja de Cardano está considerada como una de las formas más seguras para transmitir un mensaje, este mecanismo no resulta práctico para transmitir grandes cantidades de información. Este mismo problema está presente en otras alternativas ingeniosas, como el código en jerga o jargon code en terminología inglesa. Un código en jerga consiste en sustituir letras o palabras por otras (es habitual generar un texto “con sentido”) o simplemente denir un lenguaje secreto. Suele ser común su utilización en entornos militares, por ejemplo, en la II Guerra Mundial por diplomáticos japoneses y espías alemanes. Un ejemplo famoso de código en jerga fue: Tora! Tora! Tora! usado por la Armada japonesa para comunicar el ataque al portaviones norteamericano Pearl Harbor en 1941. Tal fue el miedo a la aplicación de estas técnicas tan difíciles de detectar que el servicio postal de los Estados Unidos censuró después del ataque de Pearl Harbor diferentes cartas de correo, por miedo a que ocultaran información peligrosa, por ejemplo, en juegos de ajedrez vía correo, dibujos de niños, crucigramas, etc. Incluso los sellos de las cartas eran quitados y sustituidos por otros de igual valor pero diferente forma. Otro procedimiento ingenioso fue realizado utilizando un código especial sobre periódicos (en terminología inglesa se conoce como newspaper code). Este método desarrollado en la época victoriana (época de gran expansión económica y 54 ESTEGANOGRAFÍA © RA-MA social de Gran Bretaña entre 1837 y 1901) permitía a las clases pobres comunicarse libremente. Para ello hacían pequeños agujeros encima de ciertas letras del periódico, que una vez unidas forman el mensaje encubierto. Estos procedimientos encontraron utilidad, por ejemplo, en la II Guerra Mundial y en la Guerra Fría entre EE. UU. y la URSS. El lector puede observar como, sin duda, la mayor parte de eventos en el pasado relacionados con la esteganografía están relacionados con el mundo políticomilitar y la diplomacia. Otro caso conocido en este sentido fue el acontecido durante el reinado de la reina María Estuardo, María I de Escocia (1542-1567). En este caso la esteganografía tuvo una gran importancia en las conspiraciones urgidas entre los nobles católicos ingleses que querían destronar a la reina protestante Elizabeth por la católica María I de Escocia. La comunicación entre los conspiradores y la reina María debía pasar lo más desapercibida posible ya que cualquier conocimiento de esto implicaría ser acusados de alta traición y condenados a muerte. Por este motivo, emplearon tanto criptografía como esteganografía para ocultar sus mensajes. Un mecanismo recurrido fue la ocultación de mensajes en barriles de cerveza que se transportaban sin llamar la atención. Por desgracia para los conspiradores, la reina Elizabeth contaba con Francis Walsingham, un maestro del espionaje inglés. Sir Francis Walsingham había creado una red muy efectiva de espías que seguía paso a paso las acciones de los católicos. Sir Francis poseía información de los planes conspirativos que querían acabar en último n con la vida de la reina Elizabeth y trasladar su trono a la reina María. Para demostrar la relación entre María y los conspiradores sir Francis consiguió numerosas cartas entre ambos, con el problema adicional de que las cartas estaban codicadas. Lo que los conspiradores no sabían es que el código criptográco utilizado había sido roto hacía años. Thomas Phelippes, experto criptoanalista, llevaba años descifrando los mensajes interceptados entre los que conspiraban contra la reina Elizabeth. Finalmente se demostró la traición de la reina María hacia la Corona inglesa. Los conspiradores capturados fueron asesinados, y poco después María también. Un siglo después de estos acontecimientos, el cientíco alemán Gaspar Schott (1608-1666) documentaría en su libro Schola Steganographica cómo ocultar mensajes en partituras de música, haciendo equivaler una nota musical concreta con una letra. En ningún momento se buscó que las notas musicales tuvieran alguna coherencia y su resultado diera una melodía agradable, en cualquier caso, su representación, por ejemplo, en papel, permitía perfectamente ocultar un mensaje. Basados en estas ideas surgieron otros procedimientos de ocultación, como los basados en el número de ocurrencias de las notas. Ni mucho menos la imaginación esteganográca acabó aquí. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 55 Figura 2.4. Ocultación de información en notas musicales John Wilkins (1614-1672), religioso y naturalista inglés, desarrolló diversas obras relacionadas directamente con el mundo de la criptografía y la esteganografía como Mercury, or The Secret and Swift Messenger en 1641. En ellas es destacable el desarrollo de procedimientos para ocultar información utilizando dibujos geométricos, es decir, usando puntos, líneas o triángulos de un dibujo para enmascarar información. Posteriormente, esta característica se mostraría más útil de lo que pudiera parecer en un principio. Por ejemplo, se ha documentado como desde nales del siglo XVIII hasta por lo menos la guerra de la Independencia estadounidense (siglo XIX) los esclavos afroamericanos habilitaron mecanismos de comunicación enmascarada, aprovechando las tradiciones de su civilización, cultura y religión. La obra Hidden in Plain View: A Secret Story of Quilts and the Underground Railroad, de Jacqueline L. Tobin y Raymond G. Dobard, profundiza en muchos aspectos de los diferentes medios y códigos secretos que permitieron a los esclavos alcanzar su libertad. A lo largo de los años los esclavos afroamericanos constituyeron una red encubierta (en terminología inglesa underground railroad) apoyados por familias blancas comprometidas para asistir a los esclavos fugitivos. Según esta obra se habilitaron casas seguras, estaciones y refugios para ocultarse, así como diferentes códigos secretos de comunicación para facilitar a los esclavos el viaje a la libertad. Uno de los códigos de comunicación oculto consistía en bordar en colchas (en terminología inglesa quilt code) una serie de patrones que proporcionaban determinada información. Los captores no verían nada raro en que las mujeres de los esclavos colgaran las colchas al aire libre para airearlas, especialmente en primavera y meses de verano. Lo que no sospechaban es que cada colcha facilitaba a los esclavos que querían fugarse su camino a la libertad. Las colchas tenían bordados especiales que facilitaban la huida de los esclavos. La simbología de los patrones bordados era muy variada, por ejemplo, proporcionaban la dirección por donde escapar, indicaban si era necesario preparar herramientas para el largo viaje, tomar mejor un camino por la montaña, indicativos de que una persona era segura para hablar, no andar en línea recta para evitar rastreos, etc. Un método muy sencillo, a la vez que ecaz, cuya seguridad se basaba en el secreto compartido boca a boca entre los esclavos. Estas ideas aparecerían una y otra vez a lo largo de la historia, aunque solo fueran a modo de mensajes ocultos en la posición de un lazo en la cabeza. 56 ESTEGANOGRAFÍA © RA-MA Figura 2.5. Patrón “Bow Tie”. Este patrón indica a los esclavos que se deshagan de su ropa vieja y busquen otra para encajar mejor en la nueva ciudad Figura 2.6. Mensajes ocultos en los lazos del pelo. Revista LIFE Magazine, 1944 © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 57 Sin duda, la idea de utilizar imágenes para ocultar información ha sido muy socorrida en diferentes momentos históricos (en la actualidad estudiaremos métodos para utilizarlas también). Por ejemplo, en los siglos XVI y XVII, aprovechando la corriente renacentista de avances en arquitectura, escultura y pintura, se comienza a utilizar imágenes anamórcas, como un mecanismo ideal para camuar información, sobre todo política. Una anamorfosis, como tal, es una deformación reversible de una imagen a través de procedimientos matemáticos u ópticos, que se maniesta cuando se observa de una manera especial. Existen multitud de artistas que han plasmado diferentes ideas con imágenes anamórcas. Por ejemplo, Salvador Dalí. Figura 2.7. Ejemplo de una imagen anamórfica y su significado real Una imagen anamórca famosa es el Vexierbild creada por Erhard Schön (1491-1542), estudiante del famoso artista alemán Albrecht Dürer. A primera vista aparecen lugares, costas, barcos y ciudades, pero si se analiza la obra con más cuidado se descubre la composición anamórca de Carlos V, Fernando I, el papa Pablo III y Francisco I. 58 ESTEGANOGRAFÍA © RA-MA Figura 2.8. Imagen anamórfica de Carlos V, Fernando I, el papa Pablo III y Francisco I Con el paso de los siglos se comienza a utilizar otro tipo de técnica muy documentada a lo largo de los años, como son los procedimientos fotográcos para miniaturizar, y por tanto ocultar, información. En 1857, Brewster sugirió la posibilidad de ocultar mensajes secretos mediante reducción fotográca en un espacio no mayor que un punto de tinta. En 1860, el fotógrafo francés Rene Dragon la llevó a cabo después de solucionar una serie de problemas para conseguir imágenes pequeñas. Los microlms hicieron su aparición. Un ejemplo de su utilización fue durante la guerra franco-prusiana de 1870-1871. Mientras París y el emperador Napoleón III se encontraban sitiados, y sus canales de comunicación interrumpidos, se habilitaron una serie de mecanismos para enviar mensajes microfotograados utilizando palomas mensajeras, aves con la capacidad de recorrer grandes distancias. 21 La utilización de palomas mensajeras a lo largo de los siglos ha sido muy recurrida. Históricamente se puede comprobar como los persas ya entrenaban aves para realizar diferentes transportes. Sus usos civiles han sido muchos, de hecho, antes de la invención del telégrafo este mecanismo de comunicación solía ser utilizado con bastante asiduidad, por ejemplo, por hombres de negocios. En un ámbito militar este tipo de comunicaciones solían ser utilizadas de forma más o menos activa hasta la II Guerra Mundial. En la actualidad, las mejoras de las telecomunicaciones han desplazado este tipo de técnicas, no obstante, por ejemplo, no es raro encontrarse 21 La técnica de utilización de animales en conictos bélicos es muy común, por desgracia. Delnes para detectar minas submarinas, aves para detectar gases en el aire, monos para explotar minas de tierra, etc. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 59 en países europeos diferentes procedimientos de comunicación militar mediante palomas mensajeras, como una vía alternativa que pueda ser utilizada en un momento de necesidad, por ejemplo, porque sus comunicaciones estén interrumpidas. De hecho, Internet también se hizo eco del uso de las palomas mensajeras para transmitir mensajes a larga distancia, eso sí en tono de humor. La RFC 22 1149 (A Standard for the Transmission of IP Datagrams on Avian Carriers) reeja cómo poder establecer el protocolo de comunicación de Internet IP utilizando palomas que transporten dicha información. La RFC 2549 dene incluso una versión mejorada con calidad de servicio (IP over Avian Carriers with Quality of Service). Figura 2.9. Soldados franceses comunicando información con palomas mensajeras Independientemente de estas curiosidades, y retornando al concepto de reducción fotográca, durante la guerra ruso-japonesa de 1905 los ociales ocultaban imágenes microscópicas en lugares tan curiosos como los agujeros de la nariz, los oídos o incluso debajo de las uñas. Esta tendencia hizo, por ejemplo, que los alemanes en la I Guerra Mundial utilizaran la reducción fotográca para ocultar páginas de información o fotografías en puntos colocados encima de letras de cartas o periódicos. Era evidente que este tipo de técnicas se utilizaría con mil y una variantes en los conictos militares. Por ejemplo, en la II Guerra Mundial apareció la técnica de ocultación conocida como micropunto. Edgar Hoover (posiblemente el director del FBI más conocido de la historia por su “caza de brujas”) la calicó como “la obra 22 RFC (Request For Comments): documento de carácter técnico que describe los estándares o recomendaciones en Internet. 60 ESTEGANOGRAFÍA © RA-MA maestra del espionaje enemigo”. La técnica del micropunto fue llevada a cabo por agentes alemanes, por ejemplo, en Latinoamérica, donde reducían fotográcamente una página de texto a un punto de menos de 1 milímetro de diámetro y luego escondían este micropunto sobre un punto en un texto de una carta aparentemente inocua. La primera vez que el FBI descubrió el micropunto fue en 1941, siguiendo un soplo que decía que los norteamericanos debían buscar en la supercie de una carta un brillo diminuto, indicativo de un minúsculo lm. Después de esto, los norteamericanos pudieron leer el contenido de la mayoría de los micropuntos interceptados, salvo cuando los agentes alemanes se tomaron la molestia de además cifrar la información. Esta técnica tuvo gran uso durante la Guerra Fría y hasta hoy en día puede ser un recurso más de los servicios de inteligencia actuales. Su versatilidad es enorme, estos micropuntos podrían ocultarse y transmitirse de diversas maneras, por ejemplo, en una carta de correo ocultada bajo un sello postal. Figura 2.10. Ejemplo de micropunto en una carta En cualquier caso, en toda esta evolución de ideas ingeniosas para ocultar información uno de los mecanismos esteganográcos más tradicionales, y posiblemente en su tiempo más efectivos, fueron las tintas invisibles. A lo largo de los siglos se ha documentado el uso de tintas invisibles como procedimiento para ocultar todo tipo de información. Clásicamente las tintas invisibles son líquidos (aunque existen otras modalidades de aplicación como, por ejemplo, mediante espray) que se aplican a una supercie concreta y al secarse permiten ocultar a la vista la información escrita. En general, se requiere calor, luz (infrarrojos y/o luz ultravioleta) o alguna mezcla química especial para cambiar su color y revelar la información enmascarada. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 61 Una referencia clásica a la hora de hablar de tintas invisibles se encuentra en el siglo I d.C. El naturalista, escritor y militar romano Plinio el Viejo reeja en su obra Historia Natural como la leche de la planta Tithymalus podía usarse como tinta invisible. Esta sustancia se vuelve transparente al secarse, pero calentándola suavemente se chamusca y se pone marrón. Desde entonces es conocido como muchos uidos orgánicos se comportan de manera similar, dado que son ricos en carbono. En la práctica, es posible improvisar tinta invisible con leche, zumo de limón (en general, zumos de frutas), vinagre, vino o azúcar diluida. Se ha documentado como incluso sustancias generadas por el cuerpo humano podrían servir también como tinta invisible como la propia orina o el semen. 23 Esto no debería sorprender al lector. En situaciones extremas el propio cuerpo humano, o las sustancias generadas por él, pueden utilizarse con nes esteganográcos. Por ejemplo, es famoso el uso de esteganografía por parte de los tripulantes del buque estadounidense denominado Pueblo. Pueblo era un buque de la Armada estadounidense que en 1968 realizaba misiones de inteligencia cerca de la costa de Corea del Norte. El 23 de enero de 1968 el buque estadounidense fue atacado por buques norcoreanos y cazas MiG. Los 82 supervivientes estuvieron presos cerca de 11 meses. Una fotografía pasó a los anales de la historia, donde varios de sus miembros supuestamente fueron liberados por sus captores para demostrar su cooperación. Sin embargo, si la fotografía es observada con detenimiento se contempla un mensaje esteganográco. La posición de las manos de los miembros de la tripulación deletreaba la palabra snow job en lenguaje de signos. En inglés americano coloquial un snow job signica mentira, engaño o apariencia no veraz. Figura 2.11. Militares norteamericanos enviando un mensaje esteganografiado con sus manos 23 Agentes del MI6 usaron el semen como tinta invisible en la I Guerra Mundial. http://www.elmundo.es/elmundo/2010/09/21/internacional/1285079741.html. 62 ESTEGANOGRAFÍA © RA-MA Este ejemplo no es ni mucho menos único. Otra forma histórica de comunicación encubierta se produjo durante la guerra de Vietnam, cuando el comandante Jeremiah Denton fue capturado por las fuerzas norvietnamitas y obligado a difundir propaganda sobre las bondades de sus captores a una serie de medios. Mientras hablaba comunicó mediante pestañeo la palabra T-O-R-T-U-R-E, utilizando código Morse. Hecho este inciso, las tintas invisibles no dejaron de evolucionar. Una variación curiosa del concepto de tinta invisible apareció en el siglo XVI, cuando el cientíco italiano Giovanni Battista della Porta describió cómo esconder un mensaje dentro de un huevo cocido. El proceso consistía en hacer una tinta con una mezcla de una onza de alumbre y una pinta de vinagre, y escribir el mensaje utilizando esta tinta sobre la cáscara. La solución penetra la cáscara porosa y deja un mensaje en la supercie de la albúmina del huevo duro, que solo se puede leer si se pela el huevo. Pero esto no es todo ni mucho menos en el apasionante mundo de las tintas invisibles. Los progresos en química ayudaron a crear tintas invisibles más sosticadas para evitar al enemigo descubrir la comunicación encubierta. Aplicando estas ideas, la mejor tinta invisible es aquella que idealmente solo reacciona con un único compuesto químico. Este tipo de tintas se conocen como tintas especícas, y es el máximo grado de seguridad que se puede alcanzar, ya que como poco se necesita de un producto que invierta el proceso para que el receptor legítimo de la información pueda recuperarla. Por ejemplo, los espías nazis escribían mensajes en su pañuelo con una solución de sulfato de cobre, la cual permanecía invisible hasta que se exponía a vapores de amoniaco. Para dicultar un poco más la tarea de los analistas, la tinta invisible se podía escribir en la supercie interna del material utilizado, evitando que la aplicación directa de ciertos compuestos químicos a una supercie revelaran la información oculta. Por ejemplo, espías alemanes escribían información en una hoja de papel y la unían herméticamente (la pegaban) a otra. El problema claro de este mecanismo es que si la cantidad de la tinta invisible utilizada “calcaba” a la supercie donde no se había escrito la información podría ser detectada. A principios del siglo XX Alemania comienza a incrementar de forma considerable su poder militar, y la ebre del espionaje empieza a cobrar fuerza en muchos países. En Gran Bretaña la histeria se hizo colectiva, la gente veía por todas partes espías alemanes disfrazados de camareros, peluqueros, etc.; fue tal esa histeria que el Gobierno (por este y otros motivos) tuvo que crear el primer servicio secreto profesional del mundo: el MI6. Su primer director fue un capitán de la Armada, sir George Manseld Smith-Cumming. Su “C inicial” se utilizó como nombre en código utilizado por todos los directores siguientes del MI6. George Manseld es un buen ejemplo de utilización de tintas invisibles en servicios secretos. Al primer director del MI6 le gustaba toda la parafernalia relacionada con las tintas invisibles. Por ello, creó un laboratorio especial para probar todas las técnicas existentes y la creación de © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 63 nuevas, que pudieran facilitar tanto la comunicación secreta como mecanismos de detección para sus agentes. La historia demostraría su utilidad. De hecho durante la I Guerra Mundial, los lugares para esconder materiales con tintas invisibles, como el papel, eran muy variados. Por ejemplo, los alemanes escondían la información en la suela de los zapatos, las bufandas o los calcetines. Durante la II Guerra Mundial, alemanes y estadounidenses solían comprobar que las cartas que caían en sus manos no contuvieran tinta invisible, lo cual era algo tedioso debido a la diversidad de tipos de tintas y sustancias que debían aplicar para invertirlas. Por este motivo, para mejorar su trabajo, las técnicas de detección basadas en luz ultravioleta fueron el mecanismo más socorrido. Independientemente de lo anterior, el uso de tintas invisibles no es viable para transmitir grandes cantidades de información, por eso en la actualidad existen mejores procedimientos esteganográcos para alcanzar este objetivo. No obstante, siempre resulta interesante como un recurso más para situaciones límite, o quizás como mecanismo ingenioso de identicación. En nuestros días, las ideas de las tintas invisibles se encuentran en las marcas de agua presentes en billetes de papel moneda o tintas ultravioletas, y en diversas tecnologías para facilitar la monitorización (impresoras espías). Por desgracia, también tienen usos terroristas. 24 Impresoras espías Imagine por un momento que cada vez que imprime un documento, automáticamente se incluyera un código no visible que puede ser usado para identicar la impresora y potencialmente a la persona o las circunstancias en las que la usó. Pues esto precisamente lo realizan algunas de las impresoras láser de color del mercado, tecnología que se incluye desde la aparición de estos dispositivos, y de cuya naturaleza no se informa a los clientes. La EFF (Electronic Frontier Foundation), uno de los más importantes grupos de defensa de derechos civiles, denunció este hecho, y mantiene toda la información posible sobre “impresoras espías” en su Machine Identication Code Technology Project.25 Por ejemplo, la tecnología, creada parece ser por la empresa Xerox, imprime puntos microscópicos (puntos amarillos en impresoras a color láser de la serie Xerox DocuColor) en diferentes zonas de cada folio que se imprime. Esta información no es visible al ojo humano, codicando información que permite seguir la pista del documento una vez impreso. Esta información puede ser apreciada, por ejemplo, cuando el folio es analizado utilizando una lupa de gran resolución o un microscopio. Empresas como Xerox o Canon justican este sistema como medida 24 http://www.dailymail.co.uk/news/article-1061190/British-Muslim-Al-Qaeda-contacts-book-terrorists-numbers-written-invisible-ink.html. 25 Secret Code in Color Printers Lets Government Track You. https://www.eff.org/press/archives/2005/10/16. 64 ESTEGANOGRAFÍA © RA-MA de protección para llegar a detectar posibles falsicaciones (billetes, documentos ociales), debido a la gran calidad y potencial de las impresoras láser. Sin embargo, en muchos sectores se piensa que es un ataque a la privacidad de los usuarios, y es factible como tecnología de control y rastreo. Esteganografía y la piedra de la discordia En este punto, el lector ya tiene una visión de la evolución de la historia de la esteganografía más clásica. Mecanismos que hoy en día (con variaciones) se podrían utilizar en ámbitos comerciales, embajadas, servicios secretos, etc. Sin embargo, por suerte o por desgracia, después de la II Guerra Mundial la evolución de la teoría de códigos en las matemáticas, el avance de la física, química y biología, y el imparable crecimiento de las telecomunicaciones dieron otro enfoque a los clásicos procedimientos de ocultación de la información, creando mecanismos de ocultación realmente complejos. Toda una nueva gama de técnicas aparecieron, un mundo nuevo se abrió al gran público, y es precisamente por esa gran variedad por la que tiene sentido este libro. La esteganografía, conocida por algunos como ese conjunto de trucos para enmascarar la información, se convertiría, y se puede armar con rotundidad, en toda una ciencia. Aunque no por ello se perdería ese modo ingenioso de inventar canales de comunicación caseros de lo más variados (la piedra de la discordia). A principios del año 2006, la televisión estatal rusa difundió un vídeo sobre la presunta actividad de espionaje de algunos miembros de la embajada británica en Moscú. Una piedra permitiría pasar de forma desapercibida un dispositivo de espionaje. En dicho programa, personas que armaron pertenecer al servicio secreto ruso interceptaron una operación británica para espiar en su territorio. Agentes británicos colocaron un aparato en una piedra falsa en una calle de Moscú, de la que descargaban información con la ayuda de un dispositivo portátil. Según la televisión, se encargaban de esta operación cuatro miembros de la embajada británica y un ciudadano ruso, reclutado por el servicio secreto del Reino Unido que fue detenido posteriormente. El supuesto problema es que el Gobierno británico apoyaba nancieramente proyectos de las ONG rusas, que no necesariamente seguían la doctrina marcada por el Gobierno. Según el programa, uno de los funcionarios de la embajada involucrado en la operación autorizó pagos regulares a organizaciones rusas no gubernamentales (ONG). “Estamos preocupados y sorprendidos (...), rechazamos cualquier armación de conducta indebida en nuestro trato con las ONG de Rusia”, señaló un portavoz de la Foreign Ofce. “Es bien conocido que el Gobierno británico ha apoyado nancieramente proyectos implementados por las ONG rusas en materia de derechos humanos y sociedad civil”, agregó. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 65 “Toda nuestra ayuda es facilitada de manera abierta y tiene el objetivo de apoyar el desarrollo de una saludable sociedad civil en Rusia”, puntualizó el portavoz de Exteriores. Al poco tiempo la prensa demostraría que los británicos mentían. Figura 2.12. Supuesto espía británico obteniendo información de una piedra falsa Figura 2.13. Dispositivo electrónico de espionaje camuflado en una piedra 66 ESTEGANOGRAFÍA © RA-MA 2.3 CLASIFICACIÓN DE SISTEMAS ESTEGANOGRÁFICOS MODERNOS. PORTADORES Desde nales de la Guerra Fría se puede armar que el uso de la ciencia de la esteganografía es de gran espectro, no restringiéndose a los clásicos conictos bélicos del pasado, sino cubriendo todas las facetas que requieran ocultar una información a un grupo de individuos. Tiene aplicación directa en: política, comunicaciones militares, diplomacia, mecanismos de protección de propiedad intelectual, defensa de libertades civiles, secretos industriales, intrusión en sistemas informáticos (por ejemplo, espionaje industrial), ocultación de virus, etc. Es en esta nueva época cuando se empieza a hablar de la ciencia de la esteganografía moderna. Esta nueva vertiente consiste en que la seguridad de los procedimientos esteganográcos no depende de mantener en secreto el algoritmo o la técnica de ocultación (idea basada en los principios de Kerckhoffs), e incluso tampoco del tipo de tapadera/cubierta utilizada. 26 La seguridad recae exclusivamente en mantener una pequeña información secreta entre los intervinientes de la comunicación enmascarada, típicamente una clave, o al menos eso se supone hasta que un estegoanalista demuestre lo contrario. Obviamente, no se debe ser excesivamente elitista con esta denición. El mejor método esteganográco es aquel que funciona (no es detectado), esté basado en esteganografía clásica o moderna. Lógicamente una técnica esteganográca moderna, más robusta y que supone al atacante la capacidad de emplear ataques avanzados, debería ser mejor técnica para hacer invisibles nuestras comunicaciones. En este sentido, en las últimas dos décadas se han publicado multitud de investigaciones sobre esta temática y se ha intentado formalizar matemáticamente lo más rápido posible diferentes aspectos de esta ciencia. Por ejemplo, en 1998, Cachin C. (An Information Theoratic Model for Steganography, in Proceedings of the Second International Workshop on Information Hiding, 1998) publicó una destacable denición formal de la seguridad de un estegosistema, 27 donde incluso se formalizó la idea de la seguridad perfecta, el secreto perfecto (a semejanza del cifrado Vernam y el one-time password en criptografía), si se da la condición de que la probabilidad de distribución de estegocubiertas en un canal y la probabilidad de distribución de las cubiertas sean iguales. La condición es que la probabilidad de distribución de las cubiertas no se vea alterada durante el proceso de inserción del 26 Un atacante podría conocer el mecanismo por el que nos comunicamos, por ejemplo, con imágenes digitales en formato JPEG, y no ser capaz de diferenciar una imagen JPEG con información oculta de una imagen JPEG sin información oculta. 27 Estegosistema: en general puede entenderse como el sistema (algoritmos) completo que permite la ocultación/descubrimiento de información. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 67 mensaje oculto. Si esto fuera posible se podría generar un mensaje oculto que no podría ser detectado. En la actualidad, existen tres tendencias de diseño de sistemas esteganográcos: 1. Estegosistemas de clave simétrica Es el esquema de estegosistema más común, el que se utiliza en la gran mayoría de herramientas que se analizarán a lo largo del libro. Emisor y receptor comparten una clave secreta (estegoclave) y toda la seguridad del sistema se aposenta en ella. Lo normal es que el algoritmo esteganográco y el tipo de tapadera utilizados sean públicos y así un atacante no podrá detectar ni recuperar la información enmascarada sin la estegoclave. De la clave del sistema, estegoclave, pueden derivarse subclaves que se utilizan para cifrar la información a ocultar y tiene utilidad en el proceso de ocultación. Por ejemplo, si el algoritmo esteganográco modica bits los píxeles de una imagen de manera pseudoaleatoria, es común que subclaves derivadas de la estegoclave primaria alimenten un generador de números pseudoaleatorios del cual se obtienen las posiciones de los píxeles concretos a modicar. Figura 2.14. Esquema de esteganografía simétrica 68 ESTEGANOGRAFÍA © RA-MA 2. Estegosistemas de clave pública Son aquellos sistemas que requieren el uso de dos claves. Una clave pública para el proceso de ocultación y una clave privada para obtener el mensaje oculto. Si el lector desea profundizar en este tipo de estegosistemas se recomienda la lectura de los siguientes artículos: ● AHN, L. y HOPPER, N.; “Public Key Steganography”, Advances in Cryptology, Eurocrypt, 2004, págs. 323-341. ● GUILLON, P. et al.; “Security and watermarking of multimedia contents”, conference n.º 4, San Jose CA, ETATS-UNIS (21/01/2002), vol. 4.675, págs. 38-49. ISBN: 0-8194-4415-4. ● BACKERS, M. y CACHIN, C.; “Public key steganography with active attacks”, Springer Berlin/Heidelberg, LNCS, vol. 3.378/2005, págs. 210-226. ISBN: 978-3-540-24573-5. 3. Estegosistemas cuánticos Estos sistemas aprovechan los conocimientos sobre física cuántica para diseñar sistemas que faciliten la ocultación de información. Existen varias formas de realizar esto, por ejemplo, aprovechándose del ruido cuántico o de los códigos correctores de errores cuánticos. Una introducción recomendada a estos sistemas puede verse en los siguientes artículos: ● NATORI, S.; “Why Quantum Steganography Can Be Stronger Than Classical Steganography”, Springer Berlin/Heidelberg, vol. 102/2006, págs. 235-240. ISBN: 978-3-540-33132-2. ● DOBŠÍ, M. et al.; “A Theoretic-framework for Quantum Steganography”, Proceedings of Workshop 2006, CTU, vol. A, págs. 124-125. ISBN: 80-01-03439-9. ● CONTI, R. et al.; “Quantum steganography”, Patent 10/849789, 2004. Ideas parecidas se han utilizado en las últimas décadas para establecer comunicaciones enmascaradas utilizando diversas características de la naturaleza (comunicaciones atmosféricas con ciertas peculiaridades, ruido ambiente, etc.). El lector menos avezado no debe preocuparse por esta clasicación, en general, la mayoría de las herramientas disponibles hoy en día funcionan con un sistema simétrico. Es decir, emisor y receptor necesitarán compartir una clave para ocultar y detectar la información oculta, y típicamente también se deberán poner de © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 69 acuerdo sobre en qué tipo de tapadera ocultan la información. Por ejemplo, en una imagen digital como un chero con extensión JPEG, una canción en formato MP3, etc. En la práctica el interés concreto de un sistema esteganográco dependerá de 3 características: capacidad (cantidad de información que puede ser ocultada), seguridad/invisibilidad (probabilidad de detección por un estegoanalista) y robustez (cantidad de alteraciones dañinas que el medio puede soportar antes de que se pierda la información oculta). Considerando estas características la búsqueda de un procedimiento concreto de ocultación en un medio puede ayudarse teniendo en cuenta 3 grandes líneas de creación de algoritmos esteganográcos: 1. La cubierta existe y la ocultación produce alteraciones Este mecanismo de ocultación es el más habitual en las herramientas que el lector puede utilizar o desarrollar. En esencia, consiste en aprovechar alguna información disponible en una cubierta concreta que puede ser sustituida por otra sin que el receptor de la información advierta ese cambio. Es decir, la información que “machacaremos” puede considerarse en principio como información redundante. A lo largo del libro se observarán múltiples ejemplos de este funcionamiento. Sin duda, el más famoso es la ocultación de información en imágenes digitales. Este tipo de técnicas ocultarán información modicando la codicación de los píxeles. Los bits modicados no introducirán variaciones visuales notables en la imagen. A efectos prácticos el receptor no conocerá la existencia de la información oculta a no ser que disponga de la estegoclave y sepa qué cubierta concreta contiene información enmascarada. En ulteriores capítulos se analizarán diferentes herramientas que siguen esta losofía. 2. Generación automática de la cubierta ocultando información en ella Este procedimiento, quizás no tan común como el anterior, tiene como principio intentar evitar que un emisor utilice una cubierta existente para ocultar información y que el atacante pudiera conseguir la cubierta original, de tal forma que comparando la cubierta original con variaciones de esta (por ejemplo, la creada al modicar la original al ocultar información) se facilitará la detección de la información enmascarada. La idea es sencilla, crear una cubierta nueva para cada comunicación y en el proceso de creación ocultar la información a enmascarar. Por ejemplo, crear una imagen nueva con formato BMP y en el proceso de creación ocultar datos. Como observará el lector en próximos capítulos este tipo 70 ESTEGANOGRAFÍA © RA-MA de técnica ha sido particularmente útil en la creación de estegotextos, textos en lenguaje natural que ocultan información. 3. La cubierta existe y la ocultación de información no la modica Esta tendencia sin duda es la más particular de todas siendo poco común en las herramientas que el lector conocerá. Tradicionalmente el mecanismo favorito para implementar esta tendencia es la reordenación de elementos. Imagine el siguiente ejemplo: un emisor y un receptor desean intercambiar con esteganografía una clave, para ello disponen de 32 imágenes (con 32 nombres de chero diferentes). La información a transmitir se basa en el orden en el que se envíen las imágenes, por ejemplo, en el orden imagen1, imagen7, imagen5, imagen4, imagen3, imagen2, imagen6, etc. Si recuerda sus años de estudiante, las matemáticas le indicarán que existen ¡32! (2,631308369336935301672 1801216e+35) combinaciones posibles con las que enviar las imágenes, por tanto, podrá ocultar jugando con el orden de envío log 2(¡32!) = 117 bits. Información que podría utilizarse como una clave o semilla criptográca. En la práctica, la seguridad de este tipo de propuestas recae en mantener en secreto el procedimiento de ocultación y sinceramente no parecen nada prácticas para el envío de cantidades razonables de información (como poco miles de bits). Hoy en día, como verá el lector en el capítulo dedicado a esteganografía en protocolos de comunicación, su uso suele estar restringido a procedimientos de ocultación en el envío de paquetes de información utilizando protocolos de comunicación, con la denominada network steganography. Independientemente de todo esto, el lector debe tener muy en cuenta un par de los elementos más críticos en la ocultación de información: la tapadera/cubierta utilizada y el medio de transmisión por donde enviar la información (limitarán las capacidades de las técnicas esteganográcas y las capacidades de detección del estegoanalista). En los próximos capítulos se profundizará con herramientas reales en multitud de tapaderas diversas con propósitos dispares para la ocultación de datos en sistemas informáticos actuales. Del mismo modo, razonaremos el interés de utilizar tapaderas (estegomedio) de uso común (por ejemplo, formatos de imágenes digitales habituales en Internet) para dicultar la tarea del estegoanalista de “separar el grano de la paja”, es decir, de recolectar el mayor número posible de muestras de ese estegomedio concreto y estegoanalizar todas esas muestras en busca de información oculta. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 71 2.4 TÉCNICAS ESTEGANOGRÁFICAS EN LA ACTUALIDAD La irrupción de las telecomunicaciones y la informática ha decantado los procedimientos esteganográcos modernos hacia canales y formatos digitales. Así, en los últimos años se han publicado propuestas de ocultación de información utilizando imágenes, audio y vídeo digitales, tecnologías web como cabeceras http o cookies, utilización de la redundancia de las instrucciones máquina en cheros ejecutables, lenguajes de marcado web como HTML-XML (ocultación basada en caracteres invisibles, modicación de los caracteres de las etiquetas alternando mayúsculas y minúsculas al ser estas insensitive y ocultación basada en el orden de los atributos de una etiqueta), utilización esteganográca de diferentes protocolos de comunicación (SOAP, HTTP, TCP, UDP, IPv4, IPv6, DHCP, ICMP, IPSEC, IGMP, FTP, DNS, 802.2, 802.3, redes inalámbricas, “accesorios” de mails, etc.) para establecer canales encubiertos (network steganography) para saltarse protecciones corporativas como, por ejemplo, cortafuegos (típicamente utilizando campos reservados, campos redundantes o el reordenamiento de paquetes), ocultación de información en sistemas de cheros y soportes de almacenamiento, malware oculto en hardware y puertas traseras en microchips, etc. Una lista amplia de herramientas y técnicas esteganográcas que desgranaremos en los siguientes capítulos. A pesar de todo esto, no piense el lector que la esteganografía moderna, más matemática y cuadriculada, ha desplazado completamente a la esteganografía más ingeniosa. Esta es una de sus grandes cualidades y el motivo por el cual es tan esquiva de detectar: puede presentarse en cualquier sitio donde el ingenio humano encuentre la posibilidad de ocultar información. Para concluir este capítulo le dejo con un par de eventos signicativos que le harán meditar seguro sobre el potencial de esta ciencia. 2.4.1 El caso DeCSS. Anulando el sistema de protección de los DVD En octubre de 1999 el grupo de hackers denominado MoRE (Masters of Reverse Engeneering) publicó en Internet el código fuente del programa DeCSS 28 (Decoder Content Scramblins System), un software que anulaba el sistema de protección de los DVD y facilitaba su reproducción, inicialmente, en sistemas GNU/Linux. Poco después, la industria llevó a juicio al único miembro del grupo con identidad conocida. El joven noruego Jon Johansen (de 15 años) fue acusado de robo de datos y del desarrollo de software que facilitaría la piratería al ir en contra de las leyes de propiedad intelectual. Al mismo tiempo, la MPAA (Motion Picture Association of America) empezó a demandar a todo aquel sitio web que almacenara o enlazara a una copia de dicho programa. Como forma de protesta contra el juicio al joven Jon Johansen, y 28 https://en.wikipedia.org/wiki/DeCSS. 72 ESTEGANOGRAFÍA © RA-MA para evidenciar las contradicciones de la legislación que prohibía la publicación del programa DeCSS, se propuso representar el código fuente del programa ilegal bajo una forma completamente legal. Se pensó en convertir la información binaria del programa en un número, concretamente en un número primo. La ventaja fundamental de esta elección fue la distribución (la facilidad para llegar a un mayor número de personas), especialmente si se conseguía un primo de gran tamaño. Esta idea era magníca ya que no existía jurisprudencia para prohibir la publicación de un número primo, 29 aunque en la práctica se hizo todo lo posible para dicultar su difusión. En cualquier caso, Phil Carmody generó en marzo de 2001 varios números candidatos a número primo cuya representación binaria corresponde a una versión comprimida (algoritmo gzip) del programa fuente DeCSS escrito en lenguaje de programación C. Varios candidatos fueron identicados como “primos probables”, y nalmente uno de ellos resultó ser primo, con la ventaja de ser el décimo primo más grande conocido, un número de 1.401 dígitos. Este número podría ser distribuido y decodicado mediante programas especiales. 30 4 8565078965 7397829309 8418946942 8613770744 2087351357 9240196520 7366869851 3401047237 4469687974 3992611751 0973777701 0274475280 4905883138 4037549709 9879096539 5522701171 2157025974 6669932402 2683459661 9606034851 7424977358 4685188556 7457025712 5474999648 2194184655 7100841190 8625971694 7970799152 0048667099 7592359606 1320725973 7979936188 6063169144 7358830024 5336972781 8139147979 5551339994 9394882899 8469178361 0018259789 0103160196 1835034344 8956870538 4520853804 5842415654 8248893338 0474758711 2833959896 8522325446 0840897111 9771276941 2079586244 0547161321 0050064598 2017696177 1809478113 6220027234 4827224932 3259547234 6880029277 7649790614 8129840428 3457201463 4896854716 9082354737 8356619721 8622496943 1622716663 9390554302 4156473292 4855248991 2257394665 4862714048 2117138124 3882177176 0298412552 4464744505 5834628144 8833563190 2725319590 4392838737 6407391689 1257924055 0156208897 8716337599 9107887084 9081590975 4801928576 8451988596 3053238234 9055809203 2999603234 4711407760 1984716353 1161713078 5760848622 3637028357 0104961259 5681846785 9653331007 7017991614 6744725492 7283348691 6000647585 9174627812 1269007351 8309241530 1063028932 9566584366 2000800476 7789679843 8209079761 9859493646 3093805863 3672146969 5975027968 7712057249 9666698056 1453382074 1203159337 7030994915 2746918356 5937621022 2006812679 8273445760 9380203044 7912277498 0917955938 3871210005 8876668925 8448700470 7725524970 6044465212 7130404321 1826101035 9118647666 2963858495 0874484973 7347686142 0880529443 Figura 2.15. Primo ilegal de 1.401 dígitos 29 https://en.wikipedia.org/wiki/Illegal_prime. 30 http://www.cs.cmu.edu/~dst/DeCSS/Gallery/Stego/mccarthy-prime-decoder.txt. © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 73 Después de esta experiencia, Phil Carmody creó también otro primo de 1.811 dígitos, el cual corresponde a un programa ejecutable, escrito en código máquina que implementa la misma funcionalidad que el anterior. 49310 83597 02850 19002 75777 67239 07649 57284 90777 21502 08632 08075 01840 97926 27885 09765 88645 57802 01366 00732 86795 44734 11283 17353 67831 20155 75359 81978 54505 48115 71939 34587 73300 38009 93261 95058 76452 50238 20408 11018 98850 42615 17657 99417 04250 88903 70291 19015 87003 04794 32826 07382 14695 41570 33022 79875 57681 89560 16240 30064 11151 69008 72879 83819 42582 71674 56477 48166 84347 92846 45809 29131 53186 00700 10043 35318 93631 93439 12948 60445 03709 91980 04770 94629 21558 18071 11691 53031 87628 84778 78354 15759 32891 09329 54473 50881 88246 54950 60005 01900 62747 05305 38116 42782 94267 47485 34965 25745 36815 11706 55028 19055 52656 22135 31463 10421 00866 28679 71144 46706 36692 19825 86158 11125 15556 50481 34207 68673 23407 65505 48591 08269 56266 69306 62367 99702 10481 23965 62518 00681 83236 53959 34839 56753 57557 53246 19023 48106 47009 87753 02795 61868 92925 38069 33052 04238 14996 99454 56945 77413 83356 89906 00587 08321 81270 48611 33682 02651 59051 66351 87402 90181 97693 93767 78529 28722 10955 04129 25792 57381 86605 84501 50552 50274 99477 18831 29310 45769 80909 15304 61335 94190 30258 81320 59322 77444 38525 50466 77902 45186 97062 62778 88919 79580 42306 57506 15669 83469 56177 97879 65920 16440 51939 96071 69811 12615 19561 02762 83233 98257 91423 32172 69614 43744 38105 64855 29348 87634 92103 09887 02878 74532 33132 53212 26786 33283 70279 25099 74996 94887 75936 91591 76445 88032 71838 47402 35933 02037 48885 06755 70658 79194 61134 19323 07814 85443 64543 75113 20709 86063 90746 41756 41216 35042 38800 29678 08558 67037 03875 09410 76982 11837 65499 20520 43682 55854 64228 85024 29963 32268 53691 24648 55000 75591 66402 47292 40716 45072 53196 74499 95294 48434 74190 21077 29606 82055 81309 23626 83798 79519 66199 79828 55258 87161 09613 65617 80745 66159 24886 60889 81645 68541 72136 29208 46656 27913 14784 66791 55096 51543 10113 53858 62081 96875 83688 35955 77893 91454 53935 68199 60988 08540 47659 07358 97289 89834 25047 12891 84162 65878 96821 85380 87956 27903 99786 29449 39760 54675 34821 25675 01215 17082 73710 76462 70712 46753 21024 83678 15940 00875 05452 54353 7 Figura 2.16. Primer número primo ejecutable ilegal El caso de DeCSS sin duda es uno de los ejemplos más claros de como la imaginación puede evitar y saltar cualquier ley o grupo de presión convirtiendo un “programa ilegal” en contenido legal: 31 números primos, camisetas, código de barras, poemas, etc. 31 https://www.cs.cmu.edu/~dst/DeCSS/Gallery/Stego/. 74 ESTEGANOGRAFÍA © RA-MA Figura 2.17. Camiseta con código DeCSS 2.4.2 Negación plausible y chaffing and winnowing. Confidencialidad sin cifrado En Internet pueden encontrarse diferentes deniciones de lo que es la negación plausible. En esencia, es una condición/procedimiento por el cual una persona puede, con gran grado de credibilidad, negar el conocimiento de cualquier verdad particular que pueda existir, porque dicha persona es “deliberadamente” inconsciente de la verdad, para beneciarla o para blindarla de cualquier responsabilidad asociada con el conocimiento de tal verdad. Históricamente ha sido una doctrina política que facilita la creación de estructuras de poder y cadenas de mando lo sucientemente informales como para, de ser necesario, negar su existencia. Es precisamente esta idea la que en un mundo telemático/informático orientado a la seguridad informática permitiría hacer “cosas ilegales” respetando las leyes. Se entenderá esta armación fácilmente con la técnica de chafng and winnowing. Chaffing and winnowing La década de los 90 (siglo XX) fue un período de lo más interesante en la defensa de libertades civiles centradas en la condencialidad de las comunicaciones. Una época donde los gobiernos intentaron de todas las maneras posibles limitar el uso de la criptografía en un entorno civil, intentando, en el caso extremo de la sociedad norteamericana, que la ciudadanía utilizara dispositivos con chips diseñados por la © RA-MA Capítulo 2. OCULTACIÓN DE INFORMACIÓN EN COMUNICACIONES DIGITALES 75 Agencia de Seguridad Norteamericana (clipper chip) que teóricamente pudieran proporcionar condencialidad pero visible para el Gobierno. Lógicamente esto solo funcionaría si la ciudadanía no tenía acceso a otras tecnologías criptográcas. Años más tarde, esta iniciativa fracasó estrepitosamente, propuestas como PGP 32 y PGPfone contribuyeron sin duda a este éxito. Es precisamente en ese marco histórico donde se engloba una propuesta interesante conocida como chafng and winnowing. En 1998, el criptógrafo Ronald L. Rivest (uno de los creadores del algoritmo RSA) propuso una técnica criptográca que permite condencialidad en un canal inseguro sin usar cifrado (evitando así las leyes de exportaciones de algoritmos criptográcos); esta técnica, denominada chafng and winnowing, puede ser considerada como una forma intermedia entre criptografía y esteganografía. En su funcionamiento básico, un emisor envía varios mensajes a un receptor. Cada uno de los mensajes debe estar en claro (se respetan así las legislaciones nacionales que aunque permitían la exportación de software de rmas digitales sin restricciones, sí limitaban los algoritmos con capacidad de cifrado) pero adicionalmente se les añade una información extra: un número de serie (para facilitar la recuperación de la información y la detección de errores) y una información de autenticación, concretamente un código de autenticación o MAC (Message Authentication Code). Emisor y receptor comparten una clave secreta de autenticación que facilitará la creación de dichos MAC. Para un mensaje válido, el emisor le añadirá al mensaje un número de serie y un código de autenticación MAC, calculado como resultado de aplicar todo el contenido anterior a un algoritmo generador MAC (por ejemplo, HMAC-SHA1) usando para ello la clave secreta de autenticación. Por cada mensaje real, se produce otro de pega (en terminología inglesa chaff) con números de serie razonables y un código de autenticación no válido para la clave empleada. La condencialidad en esta propuesta no está basada en la dicultad de romper un esquema de cifrado, sino en la dicultad del atacante en diferenciar los mensajes reales de los falsos. En recepción, se recalcula el MAC del paquete utilizando el número de serie y el mensaje recibido, para ello se introduce esta información en un algoritmo generador (por ejemplo, HMAC-SHA1) y se utiliza la clave secreta de autenticación. Si el MAC calculado coincide con el recibido, quiere decir que ese es el mensaje correcto, si no el mensaje se descarta. Este proceso es denominado winnowing. 32 Pretty Good Privacy o PGP es un software desarrollado por Phil Zimmermann y cuya nalidad es proteger la información distribuida a través de Internet mediante el uso de criptografía de clave pública, así como facilitar la autenticación de documentos gracias a rmas digitales. https:// es.wikipedia.org/wiki/Pretty_Good_Privacy. 76 ESTEGANOGRAFÍA © RA-MA Independientemente de otros ataques, un “censor” no puede saber qué MAC es correcto o cuál no (negación plausible), porque desconoce la clave utilizada para calcularlos, luego aparentemente todos son válidos. De esta forma tan sencilla, se cumplía y evitaba la ley. 3 OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES Guía: ... le apuesto a que no sabe por qué las cebras tienen rayas. Kevin Ashton: por supuesto que lo sé. Es un mecanismo de camuaje. Guía: muy bien. Cebra. Rayas negras y blancas. África. ¿Ve algo blanco y negro por aquí? La razón por la que la cebra tiene rayas es para que cuando todas huyan en una manada, sea absolutamente imposible para el depredador mantener el ojo puesto solo en una de ellas. Así que las rayas de la cebra en realidad son una defensa contra la identicación. Katherine Albrecht, Liz McIntyre, Sky Chips 3.1 PRINCIPIOS DE LA OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES. LO QUE EL OJO NO VE El crecimiento imparable de la potencia de los ordenadores y la evolución de los dispositivos tecnológicos ha permitido aplicar teorías matemáticas y algoritmos de tratamiento digital de la señal a una gran cantidad de medios interesantes para el campo de la esteganografía. La automatización de estos procesos, hasta entonces bastante tediosos o poco prácticos, es de gran utilidad para ocultar información en un conjunto amplio de estegomedios, especialmente en medios contenedores de información multimedia, típicamente, imágenes, audio y vídeo. 78 ESTEGANOGRAFÍA © RA-MA La sociedad actual reclama tecnologías y contenidos multimedia, y cada vez más nuestra vida depende de ellos. Por tanto, si los contenidos multimedia son tan abundantes y existe una enorme cantidad de ellos, ¿por qué no utilizarlos para ocultar información de forma enmascarada? El ejemplo más signicativo es la ocultación de información en imágenes digitales. Las imágenes digitales son el estegomedio más utilizado para ocultar información. Existen múltiples motivos para ello, entre los más interesantes destaca la posibilidad de ocultar grandes volúmenes de información (en los próximos apartados se verá en qué condiciones) y una “supuesta” invisibilidad, un estegoanalista no podría detectar esa información enmascarada (en próximos apartados se verá en qué condiciones). En las últimas décadas se han documentado multitud de procedimientos esteganográcos en imágenes digitales para formatos grácos diversos. En estas técnicas se utilizan desde procedimientos informáticos triviales a complejos cálculos matemáticos basados, por ejemplo, en la transformada de Fourier 33 o Wavelet. 34 Tal es así, que es común que en la literatura sobre estas técnicas ciertos autores agrupen las técnicas en dos grandes grupos basados en técnicas matemáticas en el dominio del estegomedio o en el dominio transformado. Por un lado, las técnicas matemáticas basadas en el dominio del estegomedio consisten en la sustitución directa de la información almacenada en un estegomedio, en nuestro caso en ciertos cheros grácos; en lengua inglesa se suele hablar de herramientas bitplane tools o noise insertion tools. Una técnica clásica de este tipo es la sustitución del bit menos signicativo de la codicación de los píxeles almacenados en un chero gráco o la modicación de formatos grácos que representan su información mediante paleta de colores. Por otro lado, las técnicas basadas en un dominio transformado del estegomedio se caracterizan porque se aprovechan de la utilización de diversos algoritmos matemáticos, más o menos complejos, para transformar/procesar el estegomedio elegido. El aprovechamiento de los diferentes algoritmos matemáticos utilizados permite crear procedimientos esteganográcos más robustos y difíciles de detectar. Por ejemplo, la utilización de los coecientes generados al procesar una imagen digital con la transformada discreta del coseno (DCT) o la transformada Wavelet. En próximos apartados se estudiará algún ejemplo de ellos en detalle. Todas estas particularidades han hecho de las imágenes digitales el estegomedio más utilizado a día de hoy y es uno de los motivos por los cuales se dedica un espacio importante del libro a este estegomedio. Hoy en día, es común 33 https://es.wikipedia.org/wiki/Transformada_de_Fourier. 34 https://es.wikipedia.org/wiki/Ond%C3%ADcula. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 79 encontrarse esteganografía en imágenes digitales en entornos tan variados como la protección de software, la protección de derechos de autor y marcas de agua, su utilización para robar información en redes corporativas mediante canales encubiertos, para la ocultación de malware, privacidad de las comunicaciones, etc. Casi cualquier formato gráco permite algún procedimiento, más o menos robusto, para enmascarar información. La mayoría de ellos se basan en la forma en la que están codicados los píxeles de la imagen digital, ya sea directamente, como sucede en el formato BMP o similares, o en formatos comprimidos como pueden ser JPEG o GIF. En los siguientes apartados se va a destacar algunas de las técnicas más difundidas y utilizadas en algunas de las herramientas más famosas para que el lector experimente con este tipo de esteganografía. El lector descubrirá como la mayoría de las técnicas esteganográcas intentan responder a dos preguntas básicas: ¿cómo ocultar la información? y ¿dónde ocultar la información? De la primera pregunta ya conocemos la respuesta, la ocultación (al menos con técnicas robustas) utilizará la codicación de los píxeles de algún modo. La respuesta a la segunda pregunta es algo más compleja, como se irá analizando, y tiene que ver con la invisibilidad deseada para la información oculta y la cantidad de información a ocultar. Las técnicas de ocultación publicadas más robustas analizan las diferentes partes de una imagen digital para descubrir qué zonas son las más seguras para enmascarar información sin levantar sospechas. Veamos todo esto paso a paso. 3.2 TÉCNICAS DE SUSTITUCIÓN LSB (LEAST SIGNIFICANT BIT) REPLACEMENT/ MATCHING 3.2.1 Ocultación de información en el bit menos significativo. Herramientas y ejemplos En las últimas décadas se han publicado multitud de técnicas para ocultar información en imágenes digitales. 35 La técnica LSB (Least Signicant Bit) es el mecanismo de ocultación más clásico utilizado en esteganografía con un grado de seguridad adecuado, si se tienen en consideración una serie de factores que se describirán en el último apartado de este capítulo. Su utilización es muy común, debido 35 Técnicas triviales basadas en la ocultación de información en las cabeceras de los formatos grácos o añadiendo información al nal del chero (técnica EoF) han sido muy socorridas como técnicas de ocultación de fácil uso. 80 ESTEGANOGRAFÍA © RA-MA a su facilidad de aplicación, permitiendo ocultar grandes cantidades de información con un pequeño impacto sobre el portador de la información, el estegomedio. Para entender cómo funciona la técnica LSB es importante entender que una imagen digital se construye en base a una serie de unidades de tamaño mínimo, denominadas píxeles, que tienen unos determinados valores que reejan los diferentes colores visibles para una imagen concreta. Dependiendo de la resolución de la imagen y de la codicación empleada para un formato gráco concreto, los píxeles se representarán con 1 o más octetos en dicho formato. Es habitual encontrarse cheros grácos con diferentes codicaciones (resoluciones), típicamente 8, 16, 24 o 32 bits. Por ejemplo, una imagen BMP con una resolución de 24 bits por cada píxel se representa con 3 octetos (8 bits x 3 = 24 bits). Si estos octetos representan un modelo de color RGB (Red, Green, Blue), cada octeto, respectivamente, almacenará información sobre el nivel de rojo, verde y azul que está presente en cada píxel. En última instancia, esta información permite obtener el color real de dicho píxel. El valor concreto que puede tomar cada octeto representa la intensidad de dicho color. Este valor oscila desde el valor 0 (el nivel más oscuro) a 255 (el nivel más luminoso). Por ejemplo, un píxel representado con los siguientes 3 octetos: 11111111 (rojo), 00000000 (verde) y 00000000 (azul) da como resultado un píxel de color rojo. Siendo estrictos, la técnica LSB aplicada a imágenes es un procedimiento de sustitución que permite modicar el bit menos signicativo de la codicación de cada píxel de una imagen por el bit del mensaje a ocultar. La elección de los píxeles a utilizar dependerá de la variante de la técnica LSB empleada. Las más utilizadas son: Figura 3.1. Cubo de color RGB (Efford, 2000) © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 81 1. Técnica esteganográca basada en LSB secuencial Se realiza una sustitución de forma secuencial de los bits en la codicación de los píxeles de una imagen, ya sea partiendo de una posición ja en el chero gráco o de una posición que se calcula a partir de una información externa a modo de clave de usuario. La ocultación de información utilizando una técnica LSB secuencial es trivial y puede realizarse utilizando diferentes tipos de variantes, tradicionalmente LSBreplacement o LSB-matching. 36 Figura 3.2. Técnica de ocultación LSB-replacement en el bit menos significativo de un píxel Por ejemplo, una vez conocidos los píxeles disponibles y su codicación en binario se puede aplicar una técnica de inserción LSB-replacement 37 basada en extraer el bit menos signicativo (el de más a la derecha) de cada píxel y compararlo, bit a bit, con el mensaje a ocultar, previamente transformado en binario. Si se detecta una diferencia el bit menos signicativo de ese píxel se modica. Si es un bit 0 se convierte a un bit 1 y si es un bit 1 a un bit 0. 36 La técnica LSB-matching o esteganografía ±1, en general esteganografía ±k, se presenta como un procedimiento más difícil de detectar, en la práctica, que las técnicas basadas en LSB-replacement. Esta técnica inserta un bit de información oculta sumando o restando 1 al valor del píxel (cuando el valor del píxel es 0 solo podemos sumar, cuando es 255 solo restar). Este tipo de inserción se comporta como el ruido natural de las imágenes y se ha demostrado más robusto que técnicas basadas en LSB-replacement. 37 Es la técnica esteganográca más común que se puede encontrar en las herramientas disponibles en Internet. Esta técnica es, en general, menos “invisible” que las basadas en LSB-matching. 82 ESTEGANOGRAFÍA © RA-MA 2. Técnica esteganográca basada en LSB pseudoaleatoria Este mecanismo se suele implementar, en la práctica, utilizando generadores pseudoaleatorios de números (PRNG) que al aplicar una semilla (una información externa, por ejemplo, una clave de un usuario) genera números que se pueden utilizar para ir eligiendo qué píxel de la imagen ocultará la información. Se pueden utilizar las mismas técnicas y procedimientos que en el caso de LSB secuencial. 3. Técnica esteganográca LSB basada en función de selección La selección de los píxeles, individual o en grupo, se puede realizar en función de diversos criterios de selección denidos por el creador de la técnica. Un ejemplo común consistiría en dividir una imagen en un conjunto de imágenes disjuntas (partirla en bloques) y aplicar a cada una de ellas el procedimiento elegido. Esta idea es muy interesante para procedimientos más robustos, ya que no todas las regiones de píxeles son igual de interesantes desde el punto de vista esteganográco. Una técnica de ocultación sencilla, basada en dividir una imagen en partes, consiste en considerar una imagen como un conjunto de regiones donde es posible almacenar un bit de información en una región entera, en lugar de ir píxel a píxel. Este procedimiento consistiría en: ● Calculamos el bit de paridad de una región, calculando para ello el bit de paridad de cada píxel que interviene en la región. ● Si el bit de paridad de la región es igual al bit del mensaje a ocultar no se hace nada. Si el bit de paridad es diferente al bit del mensaje a ocultar se modica el LSB de un píxel de la región. ● La recuperación del mensaje consiste en calcular simplemente los bits de paridad de cada región. Lógicamente uno de los factores importantes de la seguridad de esta técnica depende de la elección de cada región. Una de las formas documentadas consiste en seleccionar los píxeles de una imagen, que formarán una región concreta, de forma pseudoaleatoria, a partir de una clave de usuario que se usa como semilla. Esto impediría, en primera instancia, que un atacante pudiera predecir el orden en el cual debe computar las regiones. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 83 El lector debe considerar que, aunque en principio esta variante no es mucho más robusta que una simple sustitución de un bit de un píxel, puede aportar ciertas ventajas adicionales. La selección de regiones donde las modicaciones alteren en menor medida las propiedades de la imagen puede complicar la detección de alteraciones por parte de un analista basándose en la búsqueda de patrones estadísticos comunes en el estegomedio. La aplicación de esta técnica o variantes dependerá del grado de seguridad que se desee obtener en contraposición a la capacidad de almacenamiento de información oculta que se quiera conseguir. En primera instancia, con una mentalidad clásica, a menor número de píxeles modicados menor será la probabilidad de detectar la presencia de información oculta pero, a su vez, también será menor la información que será posible ocultar. Desde un punto de vista teórico, y olvidando de momento cómo se seleccionan los píxeles a modicar, es importante destacar los factores en los que basa su seguridad la técnica LSB: 1. La modicación de bits en los píxeles de una imagen no aporta información adicional a un estegoanalista Durante mucho tiempo se pensó que los valores presentes en los bits menos signicativos de la codicación de los píxeles de una imagen tenían un comportamiento más o menos aleatorio y, por tanto, podían ser reemplazados, con la información a ocultar, sin proporcionar ningún tipo de pista a un potencial analista sobre la manipulación de la imagen. Más tarde se demostraría que esto no es cierto como se verá en el apartado de estegoanálisis. 2. La modicación esteganográca de imágenes se apoya en la incapacidad del ojo humano de percibir cambios muy pequeños en una imagen El sistema visual humano es posiblemente uno de los dispositivos biológicos más complejos que existen en la naturaleza. A pesar de ello, y como sucede con el resto de sentidos humanos, es posible engañarlo. Por ejemplo, la modicación de los colores de una imagen en una región donde hay presente gran variedad de colores es menos apreciable que si se modica el color de ciertos píxeles en regiones uniformes con uno o pocos colores. Otro ejemplo es como el ojo humano es muy sensitivo a modicaciones en los bordes de una imagen (en el contorno). Esto implica, en general, que para los procedimientos esteganográcos en imágenes, no será lo mismo ocultar información en unas zonas que en otras de una imagen. Este conocimiento lo tienen en cuenta procedimientos más robustos basados, por ejemplo, en marcas de agua. 84 ESTEGANOGRAFÍA © RA-MA La modicación de los bits de la codicación de un píxel, como el lector habrá deducido a estas alturas, altera nalmente la información de color a la que hace referencia. Especialmente, es de interés el bit menos signicativo de la información que representa cada píxel, esto es así porque el valor de dicho bit tiene, en principio, poca inuencia en el valor del color del píxel, y su modicación introduce poco “ruido” en la imagen nal (modicación no apreciable visualmente). En realidad, es posible utilizar cualquiera de los bits (uno o más) que representan la codicación de un píxel para ocultar información, 38 lo cual depende del grado de seguridad que se quiera obtener. Dependiendo de los bits de cada píxel que se utilicen, los cambios visuales serán más abruptos y apreciables para un analista. Los cambios en los bits de mayor peso producen cambios más notorios al modicar más información sobre el valor real del color del píxel. Es decir, la modicación de ciertos bits puede cambiar completamente el color de un píxel y producir cambios notorios visualmente. Aunque hoy en día la aplicación directa de técnicas LSB está muy cuestionada, es cierto que la mayoría de las herramientas esteganográcas, comerciales y de libre disposición, hacen uso de ellas para ocultación de información, sobre todo, en imágenes y audio. Este uso masivo se debe fundamentalmente a dos cuestiones prácticas. 1. Son técnicas que permiten ocultar grandes cantidades de información. Como mínimo 1 bit por cada píxel de la imagen, en la práctica, menos si se consideran los ataques estegoanalíticos. 2. Facilidad de implementación. La programación de este tipo de técnicas es realmente sencilla, lo que ha facilitado su difusión. Existen, por ejemplo, muchas herramientas esteganográcas disponibles en Internet que permiten aplicar estas técnicas a cheros grácos con formato BMP (con resoluciones de 8, 16 y 24 bits), cheros grácos con formato GIF, cheros de audio WAV, etc. 38 Un buen ejemplo serían las técnicas esteganográcas BPCS (Bit-Plane Segmentation Steganography). https://en.wikipedia.org/wiki/BPCS-Steganography. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 85 Figura 3.3. Impacto visual al modificar de más a menos los 6 bits más significativos de los píxeles de una imagen. De izquierda a derecha y de arriba abajo Tal es la facilidad para implementar ocultación con esteganografía que el lector puede encontrar con facilidad unas cuantas decenas de aplicaciones con estos principios. 3.2.1.1 OCULTANDO CON DIGITAL INVISIBLE INK TOOLKIT. CASO DE USO Internet es un medio ideal para encontrar multitud de herramientas esteganográcas. El investigador Neil F. Johnson recoge un buen número de ellas, más de 100 aplicaciones, por si está interesado en experimentar con estas herramientas. 39 En este apartado se va a ver rápidamente cómo utilizar una de ellas. En concreto, la herramienta multiplataforma Digital Invisible Ink Toolkit, 40 que incluye diversas técnicas esteganográcas y una serie de ataques estadísticos para comprobar cómo de segura está ocultada una información en una estegoimagen concreta. Esta herramienta es una de las más completas para experimentar con técnicas LSB; no es común encontrarse ataques estadísticos incluidos en la propia herramienta de ocultación, lo cual es sin duda algo muy interesante. 39 Steganography Software. http://www.jjtc.com/Steganography/tools.html. 40 http://diit.sourceforge.net/. 86 ESTEGANOGRAFÍA © RA-MA Desde un punto de vista práctico, su uso es muy sencillo. Solo es necesario descargar la aplicación de su página web 3 y hacer doble clic en el chero diit-1.5.jar para poder interactuar con la aplicación en modo gráco. Mediante diversas pestañas se puede seleccionar la opción de ocultar (pestaña Encode) y desvelar una información enmascarada en un chero BMP (pestaña Decode). Es posible seleccionar diversos algoritmos de ocultación, entre ellos una técnica LSB secuencial y pseudoaleatoria. Adicionalmente, para cada técnica de ocultación la herramienta permite seleccionar cuántos bits y cuáles por píxel se desea modicar. Una vez creada la estegoimagen con la información oculta es posible realizar una serie de análisis para analizar cómo de invisible es la información enmascarada. En la pestaña Analysis se pueden elegir diversos ataques, entre ellos, como se describirá posteriormente, los ataques RS y Sample Pairs. Figura 3.4. Ocultación de información con la herramienta DIIT Figura 3.5. Selección de los bits a modificar en cada píxel utilizando la herramienta DIIT © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 87 Figura 3.6. Recuperación de información oculta con la herramienta DIIT Figura 3.7. Ataques estegoanalíticos utilizando la herramienta DIIT 88 ESTEGANOGRAFÍA © RA-MA Figura 3.8. Resultados del ataque RS utilizando la herramienta DIIT 3.2.1.2 PROGRAMANDO TU PROPIA HERRAMIENTA DE OCULTACIÓN. MALOS USOS DE LA TÉCNICA DE SUSTITUCIÓN LSB El lector, una vez haya leído este libro tendrá una serie de nociones de qué propiedades debería tener una buena herramienta esteganográca y qué técnicas de ocultación y bajo qué condiciones debería ser utilizada. Este conocimiento le permitirá construir sus propias herramientas esteganográcas. En función del lenguaje de programación en el cual se sienta más cómodo programando (Java, 41 , 42 Python, 43 etc.), y en el caso particular de esteganografía en imágenes digitales, existen múltiples librerías que le facilitarán el trabajo de acceder a bajo nivel en los cheros grácos más comunes (BMP, GIF, JPEG, PNG, 44 etc.) e interactuar con los píxeles. En el peor de los casos, siempre podrá interpretar directamente el formato concreto de una imagen digital siguiendo esquemas parecidos a los reejados en el Anexo C. Independientemente de la forma en que implemente sus propias soluciones muchas precauciones deben ser tenidas en cuenta, no vaya a ser que implemente técnicas 41 Java Advanced Imaging (JAI). http://www.oracle.com/technetwork/articles/javaee/jai-142803.html. 42 Javax.ImageIO. https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html. 43 Scikit-Image. http://scikit-image.org/. 44 http://www.codeproject.com/Articles/581298/PNG-Image-Steganography-with-libpng. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 89 esteganográcas más o menos seguras de manera inapropiada. Por ejemplo, en Internet existen multitud de herramientas que aparentemente confían su seguridad en la utilización de una técnica LSB concreta. En ciertos casos, por desgracia, la seguridad de una herramienta esteganográca concreta puede ser vulnerada sin necesidad de utilizar complejos ataques estadísticos por una inadecuada implementación. Análisis básicos basados en prueba-error destacarán los fallos de diseño en algunas de las herramientas más famosas en Internet. El caso de la herramienta InThePicture v2.2 45 La herramienta InThePicture (versión 2.2) permite ocultar información en cheros con formato gráco BMP de 24 bits (es decir, 3 octetos para cada píxel RGB) utilizando la técnica de ocultación LSB de una forma secuencial, ocultando 2 bits de información por cada 2 bits menos signicativos de cada octeto. Cualquier información ocultada con esta herramienta deja un patrón “traceable”, para ello solo basta comprobar una marca ja de la siguiente manera: 1. Posición inicial de lectura dentro del chero 36H (esta es la posición dentro del formato BMP donde acaba la cabecera del chero y comienza la zona de datos o de valores de los píxeles, si el chero no tiene paleta de colores). 2. Se leen 32 octetos. De cada octeto se extraen los 2 bits menos signicativos. 3. De la operación anterior obtenemos 64 bits, es decir, 8 octetos. Estos se forman de izquierda a derecha, es decir, dentro de cada octeto los primeros bits que se leen son los de mayor peso y los últimos los de menor. 4. Estos 8 octetos tienen que coincidir con la marca que deja el programa en hexadecimal: “C8 D4 EA 35 DF E2 83 5F”. Si se detecta esta marca se puede razonar, con alta probabilidad, que existe información oculta mediante la herramienta InThePicture en el estegochero BMP sospechoso. Esta herramienta sirve de ejemplo para comprender como técnicas más o menos complejas que requerirían algoritmos más complejos de detección pueden ser incorrectamente implementadas, dejando rasgos distintivos que simpliquen enormemente su detección. 45 http://www.intar.com/ITP/itpinfo.htm. 90 ESTEGANOGRAFÍA © RA-MA El caso de la herramienta InPlainView 46 Esta herramienta de ocultación también utiliza como estegomedio cheros BMP de 24 bits y oculta la información utilizando el bit menos signicativo de cada octeto de los datos que representan los valores de los píxeles. De nuevo analizando diferentes cheros se puede deducir y detectar su presencia: 1. Posicionarse en la posición 36H del chero sospechoso (se supone un chero BMP sin paleta de colores, que es lo habitual) y leer 16 octetos (hasta la posición 45H). 2. Extrayendo el bit menos signicativo de esos 16 octetos da lugar a 16 bits o 2 octetos. Estos octetos tienen que tener el valor “00 00”. 3. Leemos los 16 octetos siguientes (de la posición 46H a la 55H) y obtenemos 16 bits o 2 octetos que representan el tamaño del chero oculto. Si este valor es 0 es que no existe información oculta. 4. Leemos los 8 octetos siguientes (56H al 5DH) y obtenemos 8 bits o 1 octeto. Este campo indica si la información está protegida por una clave. Puede valer 00h si no hay clave activa o 01h si hay clave activa. Cualquier otro valor se considera erróneo, y por tanto no hay información oculta. Como puede observarse del procedimiento anterior, en la mayoría de las imágenes estos datos permitirán la detección correcta de información ocultada con esta herramienta y su tamaño exacto. No obstante, en algún caso este procedimiento podría producir algún falso positivo. En este caso, como en cualquier otro, esto no supone un problema excesivo pues existen diferentes algoritmos para vericar aún más si un chero sospechoso tiene información oculta o no (véase los ataques estadísticos publicados posteriormente). En cualquier caso, estos dos ejemplos son una buena muestra para reexionar en la forma en la cual se implementa una técnica esteganográca. Si un programador de este tipo de herramientas desea introducir una marca en la imagen digital, para identicar con alta probabilidad si una imagen contiene información oculta con su herramienta, se recomienda que este patrón no sea fácilmente deducible por el atacante (las posiciones donde se encuentran y su orden no debería ser predecible) ayudándose de procedimientos criptográcos. En el mejor de los casos, se recomienda no introducir ningún tipo de marca. Generalmente, emisor y receptor saben que se 46 www.9-yards.com/software.html. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 91 están comunicando de manera esteganograada y sabrán sobre qué conjunto de imágenes intentar recuperar la información oculta. 3.2.1.3 ESTEGANOGRAFÍA EN IMÁGENES DIGITALES EN INTERNET Y REDES SOCIALES. CAPTCHA STEGANOGRAPHY Hoy en día, Internet y las redes sociales son un medio ideal para intercambiar y utilizar imágenes digitales que oculten información mediante esteganografía. En el capítulo 8, una vez el lector haya conocido la mayor parte de las técnicas de ocultación más famosas, se profundiza en esta cuestión centrando el foco en el potencial esteganográco de Internet y en la dicultad de cualquier estegoanalista en detectar información en la red de redes. En este apartado, simplemente se quiere mostrar al lector como aun utilizando técnicas tan clásicas como LSB se puede dicultar la detección de un estegoanalista si no sabe bien dónde apuntar sus ataques de detección. En Internet hay multitud de escenarios curiosos donde poder utilizar esteganografía en imágenes digitales. Un ejemplo de ello, en principio puede que no útil, sería la posibilidad de realizar esteganografía en las imágenes de los CAPTCHAS. Como posiblemente ya conoce, un CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) se trata de una prueba desafío-respuesta utilizada en computación para determinar cuándo el usuario es o no humano. Este test es controlado por una máquina, en lugar de por un humano como en la prueba de Turing. Por ello, consiste en una prueba de Turing inversa. Su funcionamiento principal en Internet consiste en vericar si la interacción con un sistema informático es realizada por un humano o por un software; esto permite evitar solicitudes automáticas indeseadas que pudieran provocar algún tipo de problema de seguridad o estabilidad de los sistemas. Es común su uso cuando se rellenan datos en un formulario en Internet o cuando se autentica un usuario en un servicio web para minimizar ataques de fuerza bruta automatizados intentando adivinar la clave de un usuario determinado. Figura 3.9. Ejemplo de formato de CAPTCHA Un CAPTCHA al nal es una imagen como otra cualquiera y por tanto podría ocultarse información utilizando LSB, además esta imagen se renueva en 92 ESTEGANOGRAFÍA © RA-MA cada petición lo cual puede dar juego para seleccionar cuándo y de qué manera una imagen de este tipo podría tener información oculta con una técnica tipo LSB o variantes. Un estegoanalista debería analizar también este tipo de imágenes. De hecho, ya existen herramientas para ocultar información aprovechándose de este tipo de protección. 47 Es más, se podrían desarrollar otras tanto o más imaginativas que la anterior. Imagine el siguiente escenario: Figura 3.10. CAPTCHA steganography 1. Cada vez que un usuario se conecta a una página web se observa un CAPTCHA. 2. Diferentes peticiones web a la misma página web dan lugar a diferentes CAPTCHAS (imágenes digitales). 3. No todos los CAPTCHAS son igual de seguros. Existen multitud de ellos en Internet cuyo texto puede ser recuperado automáticamente mediante procesamiento digital de la señal. 48 47 http://www.hip.ir/CAPTCHASteganography/. 48 PWNtcha tool. http://caca.zoy.org/wiki/PWNtcha. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 93 4. Un cliente y un servidor se ponen de acuerdo para enmascarar información en el texto del CAPTCHA vulnerable. El cliente realizará múltiples consultas al servidor para obtener múltiples CAPTCHAS, de los cuales extraerá la información a decodicar para obtener la información enmascarada. Figura 3.11. CAPTCHAS rotos por la herramienta PWNtcha 5. Cualquier otro usuario, y un potencial estegoanalista, es probable que solo advierta una página web con un CAPTCHA vulnerable; un CAPTCHA de las mismas propiedades que muchos otros que existen en cientos de páginas web. Como puede observar el lector, una vez más el límite de la esteganografía está en la invención del usuario que la utilice. 94 ESTEGANOGRAFÍA © RA-MA 3.3 TÉCNICAS ESTEGANOGRÁFICAS BASADAS EN PALETA DE COLORES. ESTEGANOGRAFÍA EN FORMATO GIF La evolución a lo largo de los años del tratamiento y almacenamiento de imágenes dio lugar a la necesidad de representar las imágenes, clásicamente en formatos de cheros grácos, de tal forma que su tamaño nal, en octetos, fuera no excesivamente grande. Este hecho facilitaría no solo su almacenamiento sino sobre todo su intercambio por las redes de telecomunicaciones. Para solucionar este problema, se propusieron varias propuestas, entre ellas, destacó la idea de crear imágenes con un número pequeño de colores. Si el número de colores en una imagen es pequeño se puede codicar estos valores en una especie de tabla, de tal forma que cada píxel en lugar de almacenar el color que le corresponda apunte a su color presente en esa tabla. El tamaño con el cual se codica estos índices que apuntan a la tabla es menor que la codicación con la que se almacena el color para cada píxel, con lo que se consigue, nalmente, cheros grácos de tamaño más pequeño. Esta ordenación especial de los octetos de la imagen permite reducir bastante su tamaño. Esta información adicional, a modo de tabla, se conoce como paleta de colores. La literatura clásica siempre muestra como ejemplo la paleta de colores presente en los cheros grácos con formato GIF (Graphics Interchange Format), aunque también es posible encontrarla en otros formatos grácos, como por ejemplo, en los cheros BMP (cuando esta está presente). La paleta de colores de los cheros GIF permite representar hasta 256 colores diferentes, codicando el valor de cada uno con 3 octetos, que indican su valor RGB. Los valores RGB de los píxeles de la imagen no se almacenan directamente en el chero gráco sino que se almacenan índices que enlazan a la paleta de colores. De esta forma, en un chero GIF, cada píxel se puede representar con 8 bits (2 8 = 256 colores posibles de la paleta) pudiendo servir de índice o entrada para indicar cuál es el color real del píxel que está en la paleta. Gracias a este mecanismo, y debido al número limitado de colores, es posible crear imágenes de tamaño realmente pequeño. Una comparación rápida entre este formato y otros formatos grácos más clásicos se puede ver con imágenes en formato BMP con una resolución de 24 bits. Para esta resolución, cada píxel necesitaría 3 octetos para codicar el valor del color que representa (su valor RGB). Partiendo de estas condiciones y si tuviéramos que almacenar una imagen de N colores y M píxeles, la diferencia en tamaño sería notoria, ya que se suele cumplir que M >> N, con lo que la diferencia iría de 3*N+M octetos frente al valor más grande de 3*M octetos. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 95 Independientemente de la mejor conveniencia de utilizar uno u otro formato gráco, es cierto que los formatos que se apoyan en la utilización de una paleta de colores facilitan la creación de diferentes técnicas de ocultación de información. Figura 3.12. Ejemplo de paleta de colores con 6 píxeles-índices y 3 colores La técnica más utilizada y documentada para ocultar información en imágenes que utilizan paleta de colores es la aplicación de una técnica LSB sobre los índices de la imagen que apuntan a la paleta de colores, por ejemplo, en imágenes en formato GIF. Sin embargo, a diferencia de otros formatos grácos, que no presentan paleta de colores, debe tenerse en cuenta una serie de consideraciones al aplicar una técnica LSB. Al modicar el bit menos signicativo de un índice (ponerlo a 0 o 1), el color actual que corresponde al píxel en cuestión cambia, ya que el nuevo índice apuntará al color adyacente del actual, presente en la paleta de colores (véase la gura anterior). Este hecho hace que si los colores adyacentes en la paleta no son parecidos el “ruido” debido a la manipulación de los LSB será obvio, y producirá una imagen cuyo resultado visual hará sospechar de posible ocultación de información. Para intentar reducir este problema es común que antes de insertar la información a ocultar se realice algún procesado u ordenación previa de los colores presentes en la paleta de colores. Es habitual que los valores de la paleta de colores estén ordenados del más usado al menos usado, para reducir tiempos de decodicación de la imagen, o que los colores de esta no presenten cambios graduales (por ejemplo, de un bit), salvo ciertas excepciones, como son las imágenes de grises. Adicionalmente, es posible utilizar técnicas de ocultación centradas exclusivamente en la información existente en la paleta de colores. Entre ellas, aplicar una técnica LSB a los colores presentes en la paleta de colores (no a los índices), con lo que se podría ocultar tantos bits como bits se modicarán de los colores de la paleta (1 bit por cada octeto de la paleta), o reordenar los colores de la paleta, cuyo orden codicaría una información. Veamos un poco en detalle esta última técnica. Los colores presentes en la paleta de colores, en el caso de un formato GIF un máximo de 256 colores, pueden ser reordenados en la forma que se desee 96 ESTEGANOGRAFÍA © RA-MA siempre y cuando cada índice que apunta a cada color apunte al color oportuno una vez reordenada la paleta. Esto permitiría ocultar información (codicándola en binario) aprovechándose de las diferentes combinaciones de colores en la paleta. Así, por ejemplo, una paleta de un chero GIF con 256 colores permitiría realizar ¡256! (8,5781777534284265411908227168123e+506) posibles permutaciones de estos colores de la paleta que produciría la misma imagen nal. Es decir, se puede hacer una técnica de ocultación sencilla que oculte hasta log 2(256!)≈1683 bits basándose en el orden de los colores, transformando la información a ocultar en la permutación (orden) correspondiente de los colores en la paleta. Un método sencillo que permite ocultar una cantidad importante de bits. El lector puede experimentar con cualquiera de las técnicas anteriores fácilmente al existir herramientas gratuitas disponibles en Internet como son S-Tools, MandelSteg, Hide and Seek, EzStego, Gifshufe, Empty-Pic, Git-It-Up o Hide4PGP. En este punto, el lector se preguntará cómo de invisibles son estas técnicas. ¿Están seguros nuestros datos ocultos en cheros con formato GIF? La respuesta más directa, por los ataques publicados, es que hoy en día las herramientas más famosas de ocultación en cheros con formato GIF no son seguras, o al menos, deben tenerse en cuenta diversas consideraciones que no hacen apto a cualquier iniciado para utilizarlas para ocultar información sensible. 49 Los ataques publicados a estas herramientas son principalmente estadísticos (Chi-square, Pair-Values, 50 estegoanálisis a ciegas, etc.), para detectar la inserción de información oculta utilizando técnicas LSB secuencial y pseudoaleatoria en los índices que enlazan a la paleta de colores, y la detección de patrones inusuales, especialmente en la manipulación y reordenado de la paleta de colores. Algunos ejemplos clásicos de detección de patrones son: Herramienta S-Tools La herramienta esteganográca S-Tools, creada por Andy Brown, permite la ocultación de información en diferentes cubiertas, concretamente, en cheros BMP, GIF y WAV, aplicando una técnica LSB seleccionando los bits a modicar de forma pseudoaleatoria. La ocultación de información con esta herramienta en cheros GIF, especialmente imágenes en color de 8 bit e imágenes de escala de grises, produce un patrón inusual que no ocurre en imágenes típicas, a excepción de aquellas que hayan sido alteradas por ciertas técnicas esteganográcas. En concreto, si se ordena la paleta de colores por los valores de luminancia, se observa que los bloques de 49 Esto no quiere decir que si utiliza este tipo de principios en Internet, dado el volumen de información actual en la red de redes, un potencial estegoanalista le detecte. 50 http://www.ws.binghamton.edu/fridrich/publications.html#Steganography. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 97 color parecen ser el mismo, pero todos ellos varían en 1 bit. Esto es una rma única de esta herramienta y facilitaría su detección automática. Figura 3.13. Ejemplo de patrón detectable introducido por la herramienta S-Tools. Imagen original a la izquierda y estegoimagen a la derecha Este es un buen ejemplo de como en muchos casos, una excelente herramienta estegoanalítica contra potenciales estegoimágenes es simple y llanamente una herramienta de edición de imágenes, como por ejemplo, Adobe Photoshop o Gimp. Herramienta MandelSteg La ocultación con esta herramienta puede ser detectada apoyándose en diferentes características. En primer lugar, esta herramienta es la única que genera imágenes de fractales Mandelbrot como imagen para ocultar la información secreta. Este hecho podría servir de sospecha, pero además, existe un patrón detectable ya que la herramienta siempre genera una paleta de 256 colores (entradas), paleta que tiene 128 colores únicos con dos entradas para cada color. Si se ordena la paleta por los valores de luminancia se observa la aparición de los 128 colores duplicados. Herramienta Hide and Seek La detección de patrones jos con esta herramienta depende de la versión que se esté utilizando. Por ejemplo, en las versiones 4.1 y 5.0 la paleta de imágenes de 256 colores muestra en todas sus entradas valores divisibles por 4. Además de toda una serie de patrones posibles, la herramienta deja un rastro relativamente “ruidoso” en la estegoimagen destino, existe una información adicional que se puede utilizar. Por ejemplo, las versiones 4.1 y 5.0 crean cheros de resoluciones jas, por 98 ESTEGANOGRAFÍA © RA-MA ejemplo, 320x400, 320x480, etc. Si la imagen original es más pequeña, el resto de la estegoimagen se rellena con espacios en blanco. Figura 3.14. Patrón detectable al ocultar con la herramienta Hide and Seek. Imagen original a la izquierda (8 bits) y estegoimagen a la derecha Herramienta EzStego La inserción de un mensaje oculto mediante esta herramienta introduce suciente ruido “visible” para levantar sospechas. Una técnica de ltrado, como el ataque visual, que se verá posteriormente, permite delatar la ocultación de información con esta herramienta. 3.4 TÉCNICAS ESTEGANOGRÁFICAS BASADAS EN COEFICIENTES CUANTIFICADOS. ESTEGANOGRAFÍA EN JPEG El procesamiento digital y el almacenamiento de imágenes a lo largo de los últimos años ha hecho que se utilicen un sinfín de algoritmos y transformaciones matemáticas, aplicables a las imágenes, con propósitos muy diversos. Transformaciones clásicas, en estos últimos años, han sido algoritmos de compresión (para reducir el tamaño de estas) y algoritmos de ltrado con nes muy variados: ltrado de ruido, ensalce de contornos, etc. Al igual que sucede en otros campos, ya analizados, se han publicado diversas técnicas esteganográcas que se aprovechan de los diferentes dominios de transformación matemáticos empleados para ocultar información. Un buen ejemplo de este tipo de ideas consiste en la ocultación de información utilizando los coecientes cuanticados presentes en un chero gráco con formato JPEG, obtenidos al aplicar a una imagen original una transformada discreta del coseno © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 99 (DCT). Este tipo de técnica ha sido una de las más utilizadas en las herramientas 51 de ocultación en formato JPEG disponibles en Internet. Para entender en detalle cómo funciona esta transformación y el formato JPEG le recomiendo la lectura del Anexo C.3. Un análisis a simple vista puede ayudar al lector a comprender cuál es el signicado real de estos coecientes cuanticados y por qué pueden utilizarse en esteganografía. De hecho, los coecientes cuanticados, como tal, son números que almacenan la información de la imagen a visualizar. Por tanto, ¿por qué no modicarlos como hacíamos con los valores de los píxeles de otros formatos? En las últimas dos décadas se han publicado diversas herramientas que ocultan información en imágenes digitales, la mayoría de ellas basadas en los coecientes cuanticados. Algunas de las herramientas más famosas son JSteg, JPHide&Seek, OutGuess, F5, MB1, MB2, Steghide, 52 OpenStego, 53 OpenPuff, 54 Steg,55 PQ,56 YASS, 57 etc.58 Al igual que sucede con la modicación de píxeles en una imagen, es posible crear variantes de técnicas de ocultación utilizando coecientes de forma individualizada, en grupo o mezcla de ambos, ya sea mediante selección secuencial o aleatoria. De la misma forma que con técnicas en otros formatos, casi cualquier herramienta de las publicadas puede ser detectada si se dan determinadas condiciones, típicamente si se oculta suciente información. En los siguientes párrafos se va a describir el funcionamiento y diseño de alguna de las herramientas mencionadas anteriormente. El lector comprenderá fácilmente cómo funciona la esteganografía en JPEG basada en coecientes DCT y cuál ha sido su evolución. Si desea profundizar en alguna otra herramienta no descrita le recomiendo revisar las referencias adjuntadas en cada página de este libro. En cualquier caso, comencemos desde el principio. Una de las primeras herramientas que puso en práctica la idea de ocultación en chero JPEG usando los 51 Existen múltiples procedimientos matemáticos para ocultar información en chero JPEG. En este capítulo nos centraremos especialmente en los basados en coecientes DCT por ser estos los utilizados por la mayoría de herramientas disponibles en Internet. 52 http://steghide.sourceforge.net/. 53 http://www.openstego.com/. 54 http://embeddedsw.net/OpenPuff_Steganography_Home.html. 55 http://steg.drupalgardens.com/. 56 Perturbed Quantization. http://dde.binghamton.edu/download/pq/. 57 http://www.ws.binghamton.edu/fridrich/Research/yass_attack.pdf. 58 LI, B. et al.; “A survey on Image Steganography and Steganalysis”, Journal of Information Hiding and Multimedia Signal Processing. 100 ESTEGANOGRAFÍA © RA-MA coecientes DCT fue JSteg 59 de Derek Upham. Esta herramienta aplica una técnica LSB de forma secuencial e individualizada a los coecientes cuanticados DCT de la imagen, de modo que para ocultar un bit de información se modica el bit menos signicativo del valor de un coeciente cuanticado. Esta herramienta, además de llevar a la práctica procedimientos esteganográcos no triviales sobre cheros JPEG, tiene la ventaja de proporcionar una alta capacidad de almacenamiento de mensajes ocultos, así como resistencia frente a ataques publicados en ese momento, ya clásicos, como los ataques visuales. Sin embargo, la modicación de los bits LSB de los coecientes cuanticados introduce anomalías que son detectables por estudios estadísticos, con lo que la seguridad de JSteg es muy cuestionable. Figura 3.15. Histograma típico de los coeficientes JPEG después del proceso de cuantificación vs. histograma resultante después de ocultar información con JSteg Un ataque clásico consiste en un ataque Chi-square sobre los coecientes cuanticados DCT de una imagen JPEG. Este ataque permite, en general, detectar mensajes ocultos insertados de forma secuencial utilizando una técnica LSB, por ejemplo, sobre dichos coecientes. La aplicación de esta técnica permite, por ejemplo, la detección de información ocultada con la herramienta esteganográca JSteg, siempre que esta no “sea muy pequeña” (centenas de octetos), y estimar su tamaño. Este tipo de ataques estadísticos son efectivos contra esta herramienta, a diferencia de otros ataques como los visuales, porque JSteg al reemplazar bits introduce dependencias estadísticas entre la ocurrencia de las diferentes componentes de frecuencia. 59 http://zooid.org/~paul/crypto/jsteg/. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 101 Figura 3.16. Imagen sin información oculta. El ataque Chi-square detecta una muy pequeña probabilidad de presencia de información oculta Figura 3.17. Detectando información ocultada (50%) con JSteg utilizando el ataque Chi-square Otra herramienta esteganográca famosa es JPHide 60 de Allan Latham, que incluye compresión previa de la información a ocultar y el cifrado con el algoritmo criptográco Blowsh. Esta herramienta selecciona los coecientes cuanticados DCT de manera no secuencial lo cual diculta, en teoría, su detección. Aplica una técnica LSB sobre los coecientes DCT. No obstante,al igual que sucede con JSteg es posible detectar la presencia de información oculta y estimar su tamaño mediante estudios estadísticos, a pesar de que la herramienta intenta presentar fortaleza ante estos ataques, por ejemplo, modicando los coecientes DCT -1, 0 y 1 en una forma especial para que su modicación no pueda ser detectada por 60 http://linux01.gwdg.de/~alatham/stego.html. 102 ESTEGANOGRAFÍA © RA-MA un ataque Chi-square. Un ejemplo de ataque estadístico que es posible utilizar, al menos teóricamente, es la versión Chi-square generalizada para detectar información insertada pseudoaleatoriamente en los coecientes cuanticados, así como estimar su tamaño. También esto sería aplicable a JSteg si se modica para una inserción pseudoaleatoria. Otra herramienta esteganográca famosa es OutGuess (versiones 0.13b y 0.2) desarrollada por Niels Provos, con la intención de mejorar la invisibilidad proporcionada por una herramienta basada en la ocultación en los coecientes DCT, especialmente protegida contra el ataque Chi-square. Su histograma global no puede ser usado, en general, para distinguir diferencias estadísticas (está protegido frente a ataques estadísticos de primer orden). A diferencia de JSteg utiliza un procedimiento de elección pseudoaleatorio, basado en RC4, de los coecientes DCT (salvo coecientes 0 s y 1s), empleando técnica LSB, a la vez que implementa procedimientos para hacer que los cambios se repartan de forma equitativa entre todos los coecientes disponibles, para hacer más difícil un ataque basado en estudios estadísticos, especialmente de la versión OutGuess 0.2. El ataque Chisquare, por ejemplo, no muestra buenos resultados para la versión 0.2, aunque puede ser extendido para detectar información para la versión 0.13b. Sin embargo, a día de hoy existen diversos estudios estegoanalíticos que indican que es posible realizar una detección able sobre imágenes que ocultan información, con cualquier versión de OutGuess. Se puede ver, a modo de ejemplo, el estudio inicial de Jessica Fridrich61 et al., en el artículo “Attacking the OutGuess” y en la investigación New methodology for breaking steganographic techniques for JPEGs. Metodologías que pueden ser aplicadas, en teoría, para todas las herramientas esteganográcas actuales que modican los coecientes DCT en JPEG, detectando mensajes ocultos y estimando su tamaño. Lo interesante de estas metodologías es que proporcionan nuevas ideas de estegoanálisis no centradas exclusivamente en el estudio de los histogramas. Por ejemplo, mediante la denición de parámetros, distinguidores estadísticos, que evolucionan de forma sensible con el tamaño de la información ocultada. En OutGuess, a modo de particularización, se puede centrar la atención en la forma en la que se sobrescriben los LSB. El proceso de inserción de información introduce “ruido” en los coecientes DCT, incrementando las discontinuidades en el dominio espacial. Por ejemplo, la reinserción de mensajes ocultos en una misma estegoimagen cancelará parcialmente el contenido actual produciendo efectos diferentes en la misma. La reinserción repetida en los LSB incrementa las discontinuidades espaciales de forma más lenta que cuando lo hacemos en una imagen tapadera original. Este incremento, 61 http://www.ws.binghamton.edu/fridrich/publications.html#Steganography. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 103 por ejemplo, puede usarse de distinguidor estadístico. En realidad, la misma idea puede extrapolarse para obtener distinguidores estadísticos mediante el procesado de la supuesta estegoimagen, por ejemplo, mediante recortado o recompresión de su información. Esta información distinguidora permitirá nalmente estimar el tamaño de los mensajes ocultos. Estos ataques permiten observar unas nuevas conclusiones. Por un lado, el desarrollo de procedimientos esteganográcos seguros basados en DCT JPEG debería evitar los cambios predecibles que pueden ser estimados por características del formato JPEG que son, en general, invariantes con respecto a transformaciones de una estegoimagen, por ejemplo, recompresión. Por otro lado, se debe abandonar el concepto de ocultación de información basado en sustitución de LSB preriendo otras sustituciones, como por ejemplo, usar incrementos/ decrementos de los valores de los coecientes, como utiliza Andreas Westeld en su herramienta esteganográca F5 (se analizará a continuación). Independientemente del ataque concreto a una técnica de ocultación en JPEG, el lector debe ser consciente, además, de que también se han documentado ataques a la ocultación de información en imágenes convertidas desde un chero JPEG. Un ejemplo signicativo es la investigación de Jessica Fridrich et al. en sus ataques por compatibilidad JPEG.62 Este ataque se basa en el conocimiento de que una imagen que previamente fue almacenada en formato JPEG actualmente está almacenada en otro formato, por ejemplo, BMP. La compresión JPEG actúa como una especie de marca de agua débil. El estudio de la nueva imagen (análisis de bloques de píxeles), a la que se convirtió la imagen JPEG original, reeja muchas características de la estructura creada por la compresión JPEG, e incluso es posible recuperar los valores de la tabla de cuanticación de dicho formato. Lo curioso de estos ataques es que si en la nueva imagen se oculta una información, la imagen resultante, con una alta probabilidad, ya no será compatible con el formato JPEG, lo que da potenciales sospechas de ocultación de información. Este método puede aplicarse, en teoría, para cualquier algoritmo esteganográco y de watermarking. De hecho, podría detectar cambios tan pequeños como la modicación del LSB de un único píxel. Este método podría ser usado para estimar el tamaño del mensaje secreto e identicar los píxeles que portan el mensaje oculto. Como es de suponer, es altamente recomendable evitar utilizar imágenes con nes esteganográcos que originalmente hayan estado almacenadas en un formato JPEG, por ejemplo obtenidas con una cámara digital, y que posteriormente han sido convertidas a otros formatos. 62 http://www.ws.binghamton.edu/fridrich/Research/jpgstego01.pdf. 104 ESTEGANOGRAFÍA © RA-MA 3.4.1 Herramienta esteganográfica F5 De las herramientas esteganográcas que permiten ocultar información en cheros JPEG destaca la herramienta F5, una de las herramientas esteganográcas más sosticadas disponibles para un público genérico. Tal es así, que es común ver su presencia en la ocultación de malware, en la ocultación de comunicaciones, en CTF, 63 en ciberejercicios, 64 etc. Dado su impacto en Internet, es importante comprender su funcionamiento interno. El algoritmo F5 65 fue desarrollado por Andreas Westeld en 2001, como resultado de la maduración de técnicas anteriores como F3 y F4. Su objetivo fundamental reside en alcanzar una gran capacidad de ocultación de información (en un ejemplo optimista hablaríamos de un 13% de ocultación del tamaño de un chero JPEG), sin ceder por ello en invisibilidad frente a ataques conocidos en la época como el ataque visual, Chi-square o Chi-square generalizado. Para alcanzar este propósito la herramienta F5 utiliza también los coecientes DCT para ocultar información pero los manipula con especial cuidado, para ello decrementa el valor absoluto de los coecientes DCT, que son elegidos pseudoaleatoriamente, en lugar de sobrescribir su LSB. Esta técnica combinada con el uso de matrices de codicación y técnicas de permutación, presenta una resistencia alta a ataques estegoanalíticos evitando dejar rastros predecibles del estudio de su histograma. Figura 3.18. Algoritmo implementado en la herramienta F5 63 CTF (Capture the Flag) es una competición de seguridad informática (concurso de captura la bandera) donde los participantes ponen a prueba sus conocimientos informáticos atacando y defendiendo sistemas. Son comunes pruebas basadas en ingeniería inversa, análisis de protocolos telemáticos, programación, criptografía, esteganografía, etc. 64 Un ciberejercicio tradicionalmente hace referencia a la capacidad de los estados/organismos/ejércitos para evaluar el estado de preparación de los participantes frente un potencial ataque/crisis derivando de ataques en el ciberespacio. 65 F5 - A Steganographic Algorithm. High Capacity Despite Better Steganalysis. https://www2.htwdresden.de/~westfeld/publikationen/21370289.pdf. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 105 La utilización de la herramienta F5 es muy sencilla. Después de descargar la herramienta de su página web 66 pueden utilizarse diferentes parámetros para ocultar y revelar la información ocultada en un chero JPEG. Figura 3.19. Ocultación y recuperación de información utilizando la herramienta F5 Figura 3.20. Ocultación y recuperación de información con la herramienta F5 utilizando una clave secreta 66 https://code.google.com/archive/p/f5-steganography/. 106 ESTEGANOGRAFÍA © RA-MA 3.4.1.1 DISTRIBUCIÓN Y REDUCCIÓN DE LAS MODIFICACIONES EN LA IMAGEN. ATACANDO F5 Una herramienta esteganográca robusta debería considerar que el proceso de inserción de información fuera lo más regular posible en el estegomedio elegido. La “densidad de datos ocultos” debería ser igual en todas partes del estegomedio, es decir, todas las partes del estegomedio deberían tender a ser igual de probables para almacenar información oculta, al menos con una mentalidad clásica (veremos en el apartado de técnicas avanzadas que esto no tiene porqué ser así necesariamente, siendo unas zonas de la imagen más interesantes esteganográcamente). En muchos casos, especialmente si la inserción se produce de forma secuencial en el estegomedio, es probable que el mensaje a ocultar no requiera de toda la capacidad disponible, por tanto, parte del estegomedio se queda sin uso, y las modicaciones se centran en una sola parte del estegomedio, lo que puede dar pistas a un estegoanalista. No parece la mejor de las implementaciones. Para evitar ataques, es conveniente no solo distribuir la información a lo largo del estegomedio, sino intentar que las diferentes zonas puedan llegar a ser equiprobables. La herramienta F5 implementa estas ideas utilizando una serie de permutaciones que depende de una subclave generada de la clave (estegoclave) del usuario. Estas permutaciones unidas a un generador pseudoaleatorio (que dependen de la estegoclave del usuario) facilitan la correcta selección de los coecientes cuanticados a modicar. Adicionalmente, F5 aborda otro problema clásico en el mundo de la esteganografía, cómo reducir las modicaciones que sufre un estegomedio, en nuestro caso una imagen, cuando se aplican procedimientos de inserción de información, sin por ello disminuir la capacidad de ocultación de información. Centrándonos en imágenes, el pensamiento clásico reinante en esteganografía consiste en que cuanto mayor sea el número de píxeles modicados mayor será la probabilidad de detección de la información oculta. Si esto es así, es de suponer que un procedimiento que modique menos píxeles es más seguro frente a ataques estegoanalíticos. Aunque siempre es posible minimizar el número de modicaciones al insertar una información troceando la información y enviándola en múltiples estegoimágenes, la herramienta F5 implementa otro procedimiento para alcanzar este objetivo, quizás más interesante, utilizando las denominadas matrices de codicación. Ron Crandall 67 introdujo el término matriz de codicación como una nueva técnica para mejorar la eciencia de los procesos de inserción esteganográcos. 67 CRANDALL, R.; Some Notes on Steganography, publicado en Steganography. Mailing List, 1998. http://os.inf.tu-dresden.de/ ̃ westfeld/crandall.pdf. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 107 Basándose en estas ideas, la herramienta F5 realizó, posiblemente, la primera implementación útil de este tipo de matrices. Las matrices de codicación permiten disminuir el número necesario de cambios en una imagen para un mismo tamaño de información a ocultar. F5 calcula la matriz de codicación en función de la capacidad de cada chero JPEG a utilizar y del tamaño del mensaje secreto a ocultar. Para ello diseña un algoritmo mediante el cual solo necesita modicar 1 bit (de un píxel) de cada n = 2K-1 bits (supongamos que por cada píxel solo se puede ocultar 1 bit) ocultando k bits. Este procedimiento, aunque limitado por la cantidad de bits libres necesarios para ocultar información, es excepcional para minimizar el impacto en una estegoimagen. Figura 3.21. Ejemplos de uso de la matriz de codificación de la herramienta F5 Por desgracia, aunque todos los procedimientos anteriores son muy prometedores, la información oculta con F5 puede ser detectada y puede predecirse el tamaño del mensaje enmascarado en un chero JPEG. Uno de los primeros ataques a esta herramienta fue realizado por Jessica Fridrich et al. en su investigación Steganalysis of JPEG Images: Breaking the F5 Algorithm.68 En este trabajo se dene un método para estimar el histograma de la imagen tapadera original de la información de la supuesta estegoimagen. Para ello la estegoimagen JPEG es descomprimida, recortada en bloques de 4 píxeles que rompen la estructura cuanticada de los bloques de coecientes DCT, y nalmente recomprimida usando el mismo factor de calidad que tiene la estegoimagen. Con esto, el número de cambios introducidos por F5 en la imagen tapadera original puede ser determinado de la comparación de los histogramas estimados, de los coecientes DCT seleccionados y de los mismos de la estegoimagen. En las pruebas experimentales documentadas, modicaciones tan pequeñas como el 10% de los coecientes DCT disponibles pueden ser detectadas de forma able. Pero sin duda, lo más interesante son las publicaciones que reejan como es posible la medida de ciertas características comunes del formato JPEG que permite 68 http://www.ws.binghamton.edu/fridrich/Research/f5.pdf. 108 ESTEGANOGRAFÍA © RA-MA incluso predecir el tamaño aproximado del mensaje ocultado con herramientas como F5 u OutGuess. Una colección de ataques se han publicado para reducir aún más los umbrales de detección del tamaño de posibles mensajes ocultos, algunos ejemplos clásicos son: 69 New methodology for breaking steganographic techniques for JPEGs, Blind Statistical Steganalysis of Additive Steganography Using Wavelet Higher Order Statistics o Towards Multi-Class Blind Steganalyzer for JPEG Images. Actualmente los esfuerzos están muy encaminados al estudio de propiedades genéricas de este formato y a la aplicación de algoritmos de detección a ciegas, es decir, detección independientemente del algoritmo utilizado. Ante todo esto, es posible que el formato JPEG no sea, hoy en día, el más apropiado para ocultar información dado el enorme interés en detectar información enmascarada por este medio. 3.4.2 Stegosploit y polyglots. Malware en imágenes digitales El potencial de las técnicas esteganográcas es tan amplio que ha permitido a diferentes investigadores utilizarlas con propósitos variados. Uno de los usos potencialmente más peligrosos, especialmente en la utilización de esteganografía en imágenes digitales, es su utilización para ocultar código malicioso, 70 especialmente en cheros JPEG. Un código malicioso, malware en general, no deja de ser una información binaria que puede ocultarse, como cualquier otra, en cualquier estegomedio. El mayor problema sin duda viene de la mano de la capacidad del atacante para poder ejecutar con facilidad ese malware oculto. Cómo ocultar o intentar recuperar ese malware depende, de nuevo, de la creatividad del atacante que desee introducir ese código malicioso a un usuario u organización. En este apartado se van a destacar dos ejemplos de este potencial en dos escenarios muy comunes: la reproducción de imágenes en un navegador web y las aplicaciones móviles. Stegosploit. Infectando a un usuario a través de su navegador web El investigador Saumil Shah publicó en la conferencia de seguridad HackInTheBox 2015 celebrada en Ámsterdam 71 la herramienta Stegosploit 72 que 69 http://www.ws.binghamton.edu/fridrich/publications.html#Steganography. 70 Cada vez es más común el uso de esteganografía por parte del malware: Stegoloader, Luks downloader, ZeusVM, etc. 71 https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hackin g-with-Pictures.pdf. 72 https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 109 permite atacar a un usuario enmascarando exploits conocidos para navegadores web usando imágenes digitales. Para ello, oculta el código del exploit en el LSB de los píxeles de la imagen e introduce en la cabecera del chero gráco un código JavaScript que permitirá extraer la información y ejecutarla. La pregunta importante en este punto es ¿cómo un navegador web es capaz de ejecutar un código JavaScript que está incrustado en la cabecera de una imagen digital? La respuesta viene de la mano de los polyglots. 73 Mediante el estudio de los formatos de cheros es posible hacer que un chero con un formato determinado, por ejemplo una imagen digital, sea interpretado como otro formato diferente (por ejemplo, JavaScript, HTML, PDF, etc.) por un reproductor concreto. Stegosploit hace uso de la forma en la que interpretan los navegadores web las imágenes digitales para, partiendo de una inofensiva imagen digital, interpretarlas como cheros con código JavaScript. Una vez ejecutado el código JavaScript, se recuperará el exploit y si el navegador web es vulnerable la seguridad del ordenador que lo ejecute se verá comprometida. Piense por un momento en la cantidad de usuarios con versiones de navegador no actualizadas y el potencial de ocultar estegomalware en múltiples imágenes, presentes en redes sociales, para comprender la utilidad de este tipo de ataques. La ventaja novedosa de esta herramienta es que el estegomalware se puede recuperar y ejecutar automáticamente sin la interacción directa o indirecta del atacante. Figura 3.22. Introducción de código JavaScript en cabecera JPEG 73 El investigador Ange Albertini es uno de los autores más prolijos en el uso de polyglots con utilidad informática. https://code.google.com/archive/p/corkami/. 110 ESTEGANOGRAFÍA © RA-MA Figura 3.23. Introducción de código JavaScript en la cabecera de una imagen PNG Estegomalware en aplicaciones móviles Entre los muchos lugares donde es posible ocultar información en imágenes digitales con utilidad maliciosa se encuentran las aplicaciones móviles. Tradicionalmente cuando un desarrollador intenta publicar una aplicación en su market de aplicaciones favorito, típicamente Google (Android) o Apple (iOS), toda una serie de procedimientos de detección son realizados para vericar que el código ejecutable de la misma no contenga un comportamiento malicioso que pueda afectar a la privacidad de los datos del usuario que se la descarga o a la propia seguridad de su terminal móvil. Si un atacante desarrolla una aplicación 74 y oculta el código malicioso en una imagen de la aplicación, los controles de seguridad no detectarán esta información. Posteriormente, la aplicación cuando lo estime oportuno podrá recuperar la información ocultada y ejecutarla. Entre las investigaciones más signicativas destaca la publicada por Axelle Apvrille y Ange Albertini en la conferencia de seguridad informática BlackHat Europe 2014 con título Hide Android 74 MUÑOZ, A.; Finding stegomalware in an ocean of apps, Rooted CON 2015. http://es.slideshare. net/elevenpaths/buscando-stegomalware-en-un-oceano-de-apps. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 111 Applications in Images,75 en la que se muestra detalladamente cómo enmascarar una aplicación Android en una imagen que podría ser ejecutada sin ser detectada, o la investigación realizada por investigadores 76 de la Universidad Carlos III de Madrid (España) en la que utilizando la herramienta F5 ocultan un código ejecutable (.dex) en una imagen (likeimage.jpg). Este código ejecutable descarga un payload inofensivo de la URL http://cosec-uc3m.appspot.com/likeimage. A día de hoy, la aplicación, publicada el 9 de junio de 2014, sigue activa en el market de GooglePlay: https://play.google.com/store/apps/details?id=es.uc3m.cosec.likeimage. Figura 3.24. Ingeniería inversa al estegomalware para Android LikeImage Estas ideas ya se están utilizando en el mundo móvil con nes dañinos. Por ejemplo, a principios de 2016, y solo por citar un caso reciente, se detectó un nuevo malware, Android.Xiny.19.origin, 77 que utilizaba técnicas esteganográcas para recuperar una aplicación maliciosa desde una imagen descargada. 78 Una vez recuperada la aplicación maliciosa era inyectada en memoria RAM utilizando la clase DexClassLoader. 75 https://www.blackhat.com/docs/eu-14/materials/eu-14-Apvrille-Hide-Android-Applications-InImages-wp.pdf. 76 http://www.seg.inf.uc3m.es/~guillermo-suarez-tangil/papers/2014inscrypt-stegomalware.pdf. 77 Android.Xiny.19.origin. http://vms.drweb.com/virus/?i=7945694&lng=en. 78 Trojan targeted dozens of games on Google Play. https://news.drweb.com/show/?i=9803&lng=en. 112 ESTEGANOGRAFÍA © RA-MA 3.5 DETECCIÓN DE COMUNICACIONES OCULTAS. ESTEGOANÁLISIS DE IMÁGENES DIGITALES La detección de comunicaciones ocultas es un tema que hace un par de décadas se centraba exclusivamente en entornos militares y agencias de inteligencia. En la actualidad, la existencia y uso de mecanismos de enmascarado de información se ha popularizado siendo cualquier lugar aparentemente inofensivo un buen candidato para ocultar una información. Existen multitud de situaciones reales en las que, aparte de un entorno de inteligencia, resulta interesante detectar información oculta. Por ejemplo, por parte de cuerpos policiales en una investigación electrónica, útil para establecer políticas de seguridad que impidan el robo de información de una entidad concreta, evitar que un servidor de contenidos se utilice para difundir una información no deseada, etc. Independientemente de la técnica de ocultación utilizada, LSB o no, los procedimientos de detección tienen principios muy similares. Ya sea mediante procedimientos clásicos de informática forense, detectando patrones evidentes, o utilizando técnicas estadísticas sosticadas, el objetivo nal siempre es detectar anomalías en un estegomedio dado, en nuestro caso, en imágenes digitales. Esas anomalías podrían permitir detectar información oculta y estimar su tamaño. La ciencia del estegoanálisis es un campo muy extenso y complejo matemáticamente. En los siguientes apartados se va a mostrar algún ejemplo de algoritmo de detección para visualizar cómo funciona este tipo de tecnología y despertar el espíritu crítico en el lector. A día de hoy, la información ocultada con la gran mayoría de las herramientas esteganográficas publicadas en Internet puede ser detectada en determinadas circunstancias. La detección será más o menos fácil dependiendo del tamaño de la información a ocultar y de la imagen seleccionada para ocultar los datos. 3.5.1 Ataques estadísticos y estegoanálisis a ciegas. Machine learning Desde los terribles atentados del 11 de septiembre de 2001 en EE. UU., la investigación en estegoanálisis, motivada por el supuesto uso con nes terroristas de la esteganografía, ha crecido exponencialmente. En el Anexo B se recogen algunas de las herramientas de estegoanálisis disponibles hoy en día para su uso en el mundo real. Como observará rápidamente estas herramientas son escasas y limitadas en sus capacidades. Por desgracia, no es posible en unos pocos folios desarrollar una habilidad tal que le permita convertirse en un buen estegoanalista, esto es una tarea bastante compleja. No obstante, se ve conveniente profundizar un poco en los principios que constituyen los ataques de estegoanálisis modernos, estos permitirán sin duda hacerse una idea de cómo funcionan y cómo poder llegar a diseñar mejores herramientas esteganográcas. Aunque en las próximas líneas se centrará el esfuerzo © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 113 en la detección de información oculta en imágenes digitales, muchos de los principios expuestos en este apartado pueden utilizarse para otros estegomedios. En las últimas dos décadas se han publicado multitud de ataques estegoanalíticos para detectar información oculta en los formatos grácos más comunes (BMP, JPEG, PNG y GIF) 79. Cualquiera de los ataques publicados (Chi-square, RS, SPA,80 SPAM, 81 PPD,82 Merged Features, 83 Rich Models, 84 etc.) perfeccionan unos conceptos fáciles de entender, independientemente de la técnica de ocultación empleada, tradicionalmente LSB-replacement o LSB-matching. La mayoría de técnicas esteganográcas en imágenes digitales insertan información perturbando la imagen original. Los algoritmos estegoanalíticos intentan detectar dónde se localizan esas perturbaciones y cuántas perturbaciones se han detectado (el algoritmo estima el tamaño de la información oculta). Todos los algoritmos estegoanalíticos emplean diferentes procedimientos matemáticos para detectar esas perturbaciones y poder contestar a una sencilla pregunta: ¿es el color de un píxel raro comparado con sus vecinos? En los siguientes subapartados se detallarán algunos ejemplos clásicos de ataques estegoanalíticos para comprender con facilidad estos conceptos. Ataques estegoanalíticos más sosticados se basan en estos principios, lógicamente con una componente matemática no apta para todos los públicos. 85 Este tipo de ataques son muy precisos frente a técnicas de ocultación especícas. Sin embargo, cuando el atacante no conoce la técnica de ocultación concreta (lo cual es habitual si no se usan directamente las herramientas esteganográcas publicadas en Internet) es conveniente el desarrollo y la implementación de técnicas de detección adicionales basadas en algoritmos de estegoanálisis a ciegas, blind steganography en terminología inglesa. 79 SERRA, J.; LERCH, D. y MUÑOZ, A.; Esteganografía y estegoanálisis, Edición 0xWORD 2014. ISBN: 978-84-617-0021-9. Depósito Legal: M-15373-2014. 80 Detection of LSB steganography via Sample Pair Analysis. http://www.ece.mcmaster.ca/~sorina/ papers/ LSBnalTSP.pdf. 81 http://www.ws.binghamton.edu/fridrich/Research/mmsec29-pevny.pdf. 82 LSB matching steganalysis based on patterns of pixel differences and random embedding. http:// www.sciencedirect. com/science/article/pii/S0167404812001745. 83 Extractor of 274/548 Merged Features. http://dde.binghamton.edu/download/ccmerged/. 84 KODOVSKÝ, J.; “Rich Models for Steganalysis of Digital Images”, IEEE Trans. on Info. Forensics and Security, vol. 7(3), págs. 868-882, 2012. http://www.ws.binghamton.edu/fridrich/Research/TIFS2012-SRM.pdf. 85 Si desea profundizar en estos ataques le recomiendo la lectura de los diferentes artículos cientícos enlazados en cada uno de los ataques sosticados que se referencian a lo largo de este capítulo. 114 ESTEGANOGRAFÍA © RA-MA El concepto de estegoanálisis a ciegas apareció por primera vez en el trabajo propuesto por Avcibas, Memon y Sankur en 2001, 86 y consiste en realizar estegoanálisis sin necesidad de conocer la técnica de ocultación empleada. La idea es clara: como existe un número elevado de variantes posibles de cada técnica esteganográca conocida y dado que la tendencia actual es utilizar portadores muy comunes, la idea consiste en caracterizar el estegomedio potencial y extraer parámetros cuanticables que permitan estimar variaciones entre un chero portador “normal” y el mismo chero portador con información oculta. El trabajo teórico consiste en la cuanticación de esos parámetros; una vez realizado esto pueden realizarse diversas implementaciones prácticas mediante el uso de clasicadores que diferencien entre cubiertas originales y potenciales estegomedios. En la última década los clasicadores SVM 87 (Support Vector Machines) han tenido una importancia crucial en el estegoanálisis a ciegas; tanto que es posible combinarlos para que no solo se detecte la presencia de información oculta sino que, además, se puedan clasificar los estegomedios por técnicas esteganográcas conocidas. En general, los ataques estegoanalíticos a medida sobre algoritmos esteganográcos concretos darán mejores resultados que la detección a ciegas, no obstante, si el algoritmo de detección a ciegas consigue clasicar un estegomedio en una técnica esteganográca conocida será posible, posteriormente, aplicar ataques a medida para intentar extraer la mayor cantidad posible de información del estegomedio detectado, por ejemplo, el tamaño de la información oculta. Si desea profundizar en esta temática le recomiendo para empezar las publicaciones accesibles desde la página web de la estegoanalista Jessica Fridrich .88 Por ejemplo, su trabajo New Blind Steganalysis and its implications. 89 Aunque no es sencillo realizar una recomendación para protegerse frente a estos ataques (véase el apartado de técnicas avanzadas de ocultación), hay un factor que siempre estará en la mano del usuario que desee ocultar información en una imagen digital, en un estegomedio en general, que es la cantidad de información a ocultar entre el total disponible en una imagen dada. Si el porcentaje es bajo, típicamente menor del 1%, los algoritmos estegoanalíticos más precisos presentarán cuantiosos falsos positivos (no podrán diferenciar una estegoimagen real de perturbaciones presentes por ruido natural en una imagen dada). Por tanto, es posible esquivar las técnicas estegoanalíticas, pero si desea ocultar un mensaje de gran tamaño la tarea se le complicará necesitando utilizar procedimientos matemáticos adicionales (matrices de codicación) y distribución de la información en múltiples estegomedios. 86 AVCIBAS, I. et al.; “Steganalysis using image quality metrics”, Proceedings of SPIE Electronic Imaging, Security and Watermarking of Multimedia Content III, vol. 4.314/2001, págs. 523-531. 87 https://en.wikipedia.org/wiki/Support_vector_machine. 88 http://www.ws.binghamton.edu/fridrich/publications.html#Steganography. 89 http://www.ws.binghamton.edu/fridrich/Research/EI06-6072-1.pdf. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 115 En cualquier caso, a modo conceptual se considera interesante detallar algunos algoritmos estegoanalíticos clásicos para comprender cuál es la esencia de este tipo de tecnología de detección facilitando la comprensión de ataques más modernos si el lector desea profundizar en las referencias previamente indicadas. 3.5.1.1 ATAQUE VISUAL A UNA ESTEGOIMAGEN. ATACANDO LSB SECUENCIAL El ataque visual90 fue uno de los primeros ataques que demostró de forma rotunda que las consideraciones de ciertos autores, que defendían que el bit menos signicativo de los valores de la luminancia en imágenes digitales tenía valores completamente aleatorios y, por tanto, podría ser reemplazado sin problemas, eran erróneas. El denominado ataque visual es un ejemplo de ltrado de la imagen que muestra como es posible detectar la presencia de información oculta a simple vista. Esta técnica demuestra algo que es considerado hoy en día por cualquier algoritmo esteganográco moderno. No todas las zonas de píxeles en una imagen digital son igual de aptas para ocultar información. Por ejemplo, si se dispone de una imagen que está formada por áreas de color uniforme o áreas con colores “saturados” (0 o 255), un analista puede deducir la presencia de información oculta mediante un simple ltrado de la estegoimagen (es fácil detectar píxeles raros en una zona dada). Por ejemplo, un ltrado de este tipo, para un chero BMP de 24 bits (es decir, 3 octetos representan cada componente RGB del píxel), se puede hacer de la siguiente manera: 1. Se eliminan los 7 bits de mayor peso de cada componente (de cada byte), es decir, se marcan a cero. Si el bit menos signicativo es 1 lo convertimos a 255, y si es 0 lo dejamos como está. 2. Esta simple operación de mapeado, gracias al abrupto contraste, permite hacer evidente información ocultada con técnica LSB. Figura 3.25. Ataque visual a una potencial estegoimagen con 5 KB de información oculta con técnica LSB secuencial. A la izquierda la imagen original, en el centro la imagen sin información oculta después de aplicar un ataque visual, a la derecha el ataque visual a la imagen con la información oculta 90 Attacks on Steganographic Systems. Breaking the steganographic utilities EzStego, Jsteg, Steganos, and S-Tools – and some lessons learned. https://users.ece.cmu.edu/~adrian/487-s06/westfeldptzmann-ihw99.pdf. 116 ESTEGANOGRAFÍA © RA-MA En general, un ataque de tipo ltrado puede ser aplicado a estegomedios en los que se haya ocultado información de forma secuencial o de forma pseudoaleatoria en ciertas zonas. Aunque, como se puede razonar, se obtienen mejores resultados cuando la información es insertada de forma secuencial, siendo los resultados visuales más apreciables. El ataque visual también puede ser aplicado a imágenes que poseen paleta de colores y cuyos índices se utilizan para ocultar información mediante la modicación del LSB; clásicamente el formato gráco GIF, y también el BMP cuando presenta paleta de colores. Sin embargo, este tipo de ataque presenta una serie de limitaciones importantes, ya que no es posible aplicar este tipo de ataque a imágenes “ruidosas” o imágenes de gran resolución de colores. En el Anexo B podrá ver la forma de interactuar con este ataque utilizando la herramienta de estegoanálisis StegSecret. 3.5.1.2 ATAQUE CHI-SQUARE. ATACANDO LSB SECUENCIAL Los investigadores Andreas Ptzman y Andreas Westfeld publicaron un interesante y potente ataque estadístico, 91 que puede ser aplicado a cualquier técnica esteganográca, en el cual en un conjunto jo de parejas de valores (Pairs of Values o PoV) se conmute de un valor al otro de la pareja cuando se insertan los bits del mensaje oculto. Estas parejas se pueden formar, por ejemplo, cuando se aplica una técnica LSB a los valores de píxeles, coecientes cuanticados DCT, índices a una paleta de colores, etc. Por tanto, aplicable a múltiples técnicas de ocultación en cheros grácos variados (BMP, JPEG, PNG, GIF, etc.). En general, una pareja de valores (PoV) se puede ver como aquellos valores que solo dieren en el último bit. Por ejemplo, si se considera como referencia un octeto o 256 posibles valores, dispondremos de 128 (PoV) parejas diferentes. Por ejemplo: 00000000-00000001, 00000010-00000011, 0000010000000101, 00000110-00000111,..., 11111110-11111111. Se deduce fácilmente que, si se altera el bit menos signicativo, un octeto de una pareja se convierte en el otro valor de la pareja. El ataque Chi-square se aprovecha de esta circunstancia partiendo de los siguientes hechos que se pueden comprobar. 91 Attacks on Steganographic Systems. Breaking the steganographic utilities EzStego, Jsteg, Steganos, and S-Tools – and some lessons learned. https://users.ece.cmu.edu/~adrian/487-s06/westfeldptzmann-ihw99.pdf. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 117 1. Antes de ocultar un mensaje en el bit menos signicativo las ocurrencias de cada valor en la pareja se distribuyen de forma no equitativa. 2. Después de ocultar un mensaje las ocurrencias de valores de una misma pareja tienden a igualarse. Esto depende del tamaño del mensaje oculto. Este hecho puede ser aprovechado para utilizar esta información en un test estadístico Chi-square que analice cómo de probable es que ambos valores en la pareja sean iguales. Además, si la información se ha insertado de forma secuencial (en píxel, coecientes DCT, índices, etc.) el analista puede observar un cambio abrupto en los resultados estadísticos que incluso pueden reejar el nal del mensaje oculto, delatando su tamaño. Con esta información previa se puede comprender cómo funciona el ataque Chi-square: ● Se calcula el número de ocurrencias de cada valor de la pareja. ● Se aplica un análisis estadístico de las muestras anteriores, en concreto se calcula el test estadístico Chi-square con los valores de las parejas. Este test presenta k-1 grados de libertad, donde k es el número de valores a procesar, n i representa el número de ocurrencias para un valor de cada pareja y n’i el valor teórico esperado. Si la información insertada es un mensaje aleatorio, típicamente un mensaje cifrado, el valor esperado para una pareja será la mitad de la suma de los valores que la forman. Por ejemplo, si tenemos 500 valores, y aparece 100 veces el valor 01011100 y 400 veces el valor 01011101, la frecuencia esperada para cada valor si se supone un mensaje aleatorio será del 50%, es decir, 250 para cada valor. 3. Finalmente se resuelve la expresión: donde el valor p expresa la probabilidad de que las distribuciones n i y n’ i sean iguales. Si la probabilidad es cercana a 1 entonces existirá información 118 ESTEGANOGRAFÍA © RA-MA oculta, si es cercana a 0 no. Si se analiza una imagen en el mismo sentido en el que fue insertado de forma secuencial un mensaje se observa como el valor de p es cercano a 1 y cae repentinamente a 0 cuando se llega al nal del mensaje oculto. Si los píxeles de la estegoimagen son elegidos de forma pseudoaleatoria en lugar de en forma secuencial, este ataque pierde bastante precisión a no ser que se utilicen la gran mayoría de los píxeles de la imagen, típicamente más de un 97%. Westfeld describe una generalización de este ataque para el caso de inserción de información de forma pseudoaleatoria, en lo que se conoce como ataque Chi-square generalizado, en el que se aprovecha básicamente la misma idea pero trabajando individualmente con píxeles o con un conjunto reducido de píxeles vecinos. La generalización de este ataque presenta peores resultados que los que permite el ataque RS que se verá posteriormente. En cualquier caso, el ataque Chi-square (simple) es uno de los métodos estadísticos más precisos para detectar la presencia de un mensaje que ha sido ocultado de forma secuencial utilizando una técnica LSBreplacement. No obstante, dependiendo de la imagen analizada se puede observar uctuaciones imprecisas del valor p. Por ejemplo, en imágenes que no contienen información oculta presenta una pequeña uctuación del valor p antes de caer a 0. Con lo cual un analista podría asumir que una imagen que no contiene información posee una información oculta muy pequeña, típicamente una centena de octetos. Este es el límite último del algoritmo, y como sucede en la gran mayoría de los algoritmos de detección analizados, supone el mínimo umbral de detección. Es decir, ocultar una información de un tamaño menor al umbral de detección del algoritmo de estegoanálisis hará “invisible” la información, en cuanto el algoritmo no puede proporcionar la información suciente de si la detección corresponde a una imagen real que tiene información oculta o si es un falso positivo. En el Anexo B podrá ver la forma de interactuar con este ataque utilizando la herramienta de estegoanálisis StegSecret. 3.5.1.3 ATAQUES RS Y PAIR VALUES. ATACANDO LSB PSEUDOALEATORIO El ataque RS 92 (2001) permite la detección de información oculta que se inserta de forma pseudoaleatoria, mediante una técnica LSB-replacement, sobre los píxeles de una imagen de color o de escala de grises, por ejemplo, en un chero BMP clásico (principios similares son aplicables a ocultación en coecientes DCT, índices 92 FRIDRICH, J. et al.; Reliable Detection of LSB Steganography in Color and Grayscale Images. http://www.ws.binghamton.edu/fridrich/Research/acmwrkshp_version.pdf. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 119 a una paleta de colores, etc.). Este ataque proporciona un mecanismo preciso de estimación del tamaño del mensaje oculto, así como una precisión de detección de 0,005 bits por píxel (según las pruebas realizadas para imágenes de alta resolución obtenidas con cámaras digitales y escáneres). Es decir, si se supone una imagen de grises en la que cada píxel se presenta con un octeto, este ataque podría detectar un mensaje oculto que fuera ocultado utilizando como poco, de media, 5 bits por cada 1.000 píxeles (octetos), esto es, un 0,5% de la ocupación total posible. La idea detrás de este ataque resulta sencilla de comprender. Si se considera una imagen como áreas lo sucientemente pequeñas, para que una posible técnica de ocultación pseudoaleatoria muestre un comportamiento cuasisecuencial, es posible estudiar una serie de píxeles vecinos y analizar qué diferencias existen entre ellos, detectando posibles anomalías o inserciones. Para comprender el ataque supongamos que se tiene una imagen de MxN píxeles con valores que pertenecen al conjunto P, por ejemplo, para una imagen de 8 bits de escala de grises, P = {0,...,255}. Según estas condiciones el ataque opera de la siguiente manera: 1. El algoritmo se inicia dividiendo la imagen en grupos disjuntos de n píxeles adyacentes (x 1,...,x n). Por ejemplo, grupos de n = 4 píxeles consecutivos por la. 2. Se dene una función de discriminación f que asigna un número real f(G) a cada grupo de píxeles G = (x 1 ,...,xn ). El propósito de esta función es capturar la suavidad o regularidad del grupo de píxeles G. El grupo de píxeles que presente más ruido será aquel cuyo valor de la función de discriminación sea mayor. Por ejemplo, una función de discriminación posible es: aunque puede establecerse cualquier otra según las consideraciones estadísticas que se impongan a la estegoimagen. 3. Se dene una operación invertible F en P denominada ipping. Al ser invertible se cumple que F 2 es la identidad, es decir, F(F(x)) = x para ∀x ∈ P. Con esta función se denen tres tipos de permutaciones: ● F0 denida como la permutación identidad, F(x) = x para ∀x ∈P. ● F1 que corresponde a conmutar el LSB de cada valor x. 120 ESTEGANOGRAFÍA © RA-MA ● F-1 que consiste en aplicar un desplazamiento al plano LSB. Es decir, F -1 (x) = F1 (x+1)-1 para ∀x. La función de discriminación f y las operaciones de ipping denen tres tipos de grupos de píxeles: R, S y U (unused). ] Grupos Regulares: GeR ⇔ f(F(G)) > f(G) ] Grupos Singulares: GeS ⇔ f(F(G)) < f(G) ] Grupos sin Uso: GeU ⇔ f(F(G)) = f(G) La función F(G) signica aplicar la función F (ipping) a las componentes del vector G = (x1,...,x n). Es posible aplicar diferentes permutaciones (ipping) a diferentes píxeles del grupo G según las necesidades, de hecho, es posible utilizar una máscara M, que es una n-tupla con valores -1, 0 o 1. Por tanto, tendríamos que F(G) es (FM(1) (x1),...,FM(n)(x n )). El propósito de la operación de ipping F es modicar con una pequeña cantidad los valores de los píxeles de una forma invertible, simulando la inserción de un ruido (invertible). En imágenes típicas, introducir una pequeña cantidad de ruido permitirá un incremento en la función de discriminación en lugar de un decremento. Por tanto, el número total de grupos regulares será más grande que el número total de grupos singulares. Si denotamos el número de grupos regulares para una máscara M como R M (en tanto por ciento de todos los grupos), y SM al número de grupos singulares, sabemos que R M + SM ⊆ 1 y R -M + S-M ⊆ 1, para la máscara negativa. La hipótesis estadística en la que se basa este método estegoanalítico es que en una imagen típica, el valor esperado de R M es aproximadamente igual al valor de R-M, y lo mismo para S M y S-M. Esta condición sin embargo se modica cuando se inserta información de forma aleatoria en los LSB. La aleatorización de los LSB fuerza la diferencia entre R M y SM a cero, mayor aun si el tamaño del mensaje oculto se incrementa. Después de la modicación del 50% de los píxeles, lo cual sucede al ocultar un mensaje aleatorio en cada píxel, se obtiene que R M @ SM . Curiosamente R-M y S-M sufren el efecto opuesto. Su diferencia se incrementa con el tamaño m del mensaje oculto. Descargado en: eybooks.co m © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 121 Figura 3.26. Diagrama RS El principio de este procedimiento estegoanalítico se basa en resultados experimentales de las propiedades anteriores. Si se analizan los grupos R y S de una imagen variando el tamaño de los mensajes ocultos se observa que aparecen una serie de curvas (diagrama RS) que lo representan y que reejan el tamaño del mensaje oculto. La idea de este procedimiento consiste en estimar de la estegoimagen las cuatro curvas del diagrama RS y calcular su intersección usando extrapolación. La forma general de las cuatro curvas en el diagrama variará dependiendo de la imagen original desde la más perfecta línea a una curva. Las pruebas experimentales demuestran que R -M y S- M pueden ser modeladas con cierta precisión como una línea recta, mientras que un polinomio de segundo grado aproxima las curvas R M y SM razonablemente bien. La determinación de los parámetros de las curvas reejará el tamaño p del mensaje oculto. Para obtenerlo es necesario seguir los siguientes pasos: 1. Se mide el número de grupos R y S presentes en la estegoimagen sospechosa, para dos máscaras M y –M, obteniendo R M (p/2), SM(p/2), R-M (p/2) y S -M(p/2). El término ½ es debido a asumir que el mensaje oculto es un ujo de bits aleatorios, de media solo la mitad de los píxeles serán modicados para insertar el mensaje. 122 ESTEGANOGRAFÍA © RA-MA 2. Se conmuta el LSB de todos los píxeles de la estegoimagen y se calculan los grupos R y S para dos máscaras M y –M, obteniendo los puntos RM(1-p/2), S M(1-p/2), R-M(1-p/2) y S -M(1-p/2). 3. RM(1/2) y SM(1/2) se pueden calcular suponiendo que el punto de intersección de las curvas R M y R -M tiene la misma coordenada x como el punto de intersección para las curvas S M y S -M. Las curvas RM y S M se cortan en m = 50% o R M(1/2) = SM(1/2). Con estos puntos es posible construir las líneas rectas a partir de R -M(p/2), R-M(1-p/2), S-M (p/2), S -M(1-p/2), y denir las dos parábolas a partir de R M(p/2), RM(1/2), RM (1-p/2), SM (p/2), SM (1/2), SM(1-p/2). La intersección de las curvas permitirá estimar el tamaño p del mensaje oculto. Operando con estas expresiones se deduce una ecuación cuadrática: 2 (d1 +d0 ) x2 + (d -0-d-1-d1-3d 0) x + d 0-d-0 = 0 donde d 0 = R M(p/2) - S M(p/2) d -0 = R-M (p/2) - S-M (p/2) d 1 = R M(1-p/2) - SM(1-p/2) d-1 = R-M (1-p/2) - S-M(1-p/2) La raíz x cuyo valor absoluto es menor permitirá estimar el tamaño del mensaje oculto. Calculando: p=x/(x-½) La precisión del algoritmo viene asociada a una serie de limitaciones del algoritmo. Las condiciones iniciales de la imagen original, su nivel de ruido y el lugar donde se oculte el mensaje de bits son tres factores principales que inuyen en la precisión de la estimación del tamaño del mensaje: Condiciones iniciales. Incluso las imágenes originales pueden indicar un tamaño de mensaje distinto de cero debido a variaciones aleatorias. Estas condiciones iniciales ponen un límite a la precisión teórica del método estegoanalítico. Si se puede estimar el tamaño inicial del mensaje ml 0 (es decir, el que se mide en ausencia de mensaje en la imagen original), se puede usar la siguiente fórmula para corregir el tamaño del mensaje detectado ml det . ml = ml det- ml 0 / 1 - ml 0 Ruido. Para imágenes ruidosas, la diferencia entre el número de grupos regulares y singulares en la imagen original es pequeña. Consecuentemente, las Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 123 © RA-MA líneas en el diagrama RS se cruzan en un ángulo más pequeño y la precisión del ataque de estegoanálisis se decrementa. Localización del mensaje. El estegoanálisis RS es más preciso para mensajes que se ocultan de forma pseudoaleatoria en toda la imagen que para mensajes que se centran en un área concreta, en este último caso se puede aplicar el mismo algoritmo pero dividiendo la imagen por zonas. Para mensajes secuenciales, es aconsejable el ataque Chi-square. En este punto el lector comprenderá la complejidad del diseño de los ataques estegoanalíticos. Sin duda, la comprensión del ataque RS le permitirá comprender con mayor facilidad ataques estegoanalíticos más modernos. En cualquier caso, si el lector desea experimentar con este ataque se recomienda leer el Anexo B y experimentar con la herramienta de estegoanálisis StegSecret. Ataque Pair Values La confección de este ataque guarda muchas similitudes con el anterior. Este método estegoanalítico es especialmente aconsejable para imágenes de 8 bits, como imágenes GIF, donde los mensajes se insertan en el LSB de los índices que apuntan a una paleta de colores. Los experimentos publicados reejan que es posible la detección de un mensaje oculto de 0,1 bits por píxel, es decir, mensajes un 10% menores que la capacidad total de ocultación en la imagen. Se puede deducir que la raíz q más pequeña de la siguiente ecuación cuadrática aproxima el tamaño del mensaje oculto. 4 D(1/2)q 2 + [D(1-q) - D(q) - 4D(1/2)]q + D(q) = 0 El ataque RS presenta mejores resultados para detección de información oculta en cheros BMP de 8 y 24 bits, y ligeramente superior en imágenes de escala de grises. El ataque Pair Values muestra unos resultados un poco más ables para técnicas en las cuales se modican los LSB de los índices que enlazan a una paleta preordenada. En cualquier caso, los dos métodos son de utilidad y pueden ser utilizados conjuntamente para la detección. Si desea ampliar información sobre este ataque le recomiendo la lectura de la investigación Higher-order statistical steganalysis of palette images.93 93 FRIDRICH, J. et al. http://www.ws.binghamton.edu/fridrich/Research/pairs01.pdf. 124 ESTEGANOGRAFÍA © RA-MA Figura 3.27. Diagrama Pair Values 3.6 TÉCNICAS AVANZADAS DE OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 3.6.1 Reducción del impacto. Matrix embedding y wet paper codes El lector ya conoce que la mayoría de ataques estegoanalíticos se basan, de una manera u otra, en procedimientos estadísticos. Por tanto, a menor número de modicaciones la precisión de estos ataques será menor. En el mejor de los casos un atacante no podrá diferenciar el ruido natural presente en un estegomedio dado de un estegomedio con información oculta. En la última década diferentes investigadores han centrado su interés en desarrollar procedimientos matemáticos para minimizar el impacto introducido en un estegomedio cuando se introduce una información que se desea permanezca oculta. Estos esfuerzos han sido signicativos en el caso de las imágenes digitales, aunque estos principios pueden ser aplicados a otros estegomedios. Entre las técnicas más interesantes destacan las matrices de codicación, matrix embedding en terminología inglesa, y los wet paper codes. A grandes rasgos, 94 las matrices de codicación permiten mediante unos cálculos matemáticos que, de media, las modicaciones realizadas en un estegomedio, en nuestros ejemplos sobre una imagen digital, sean menores que la información a ocultar (obsérvese que la 94 En este libro no se cubre la descripción matemática de las diferentes propuestas por cuestión de espacio. En cualquier caso, puede encontrar fácilmente información de esta temática en Internet utilizando los términos matrix embedding steganography. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 125 información puede estar codicada a su vez como se desee). El funcionamiento de este tipo de técnicas es fácil de entender con un pequeño ejemplo. 95 En la siguiente imagen se adjuntan unas fórmulas basadas en la operación or-exclusiva que permiten ocultar siempre 2 bits de información con una única modicación en la imagen, en el peor de los casos. Es decir, con esta formulación tan sencilla somos capaces de reducir como poco el número de inserciones en una imagen al 50%. Veamos por qué. Figura 3.28. Ejemplo de matriz de codificación 2:3 En este ejemplo deseamos ocultar 2 bits (x 1 , x2 ) en el LSB de 3 píxeles (a1 , a2, a 3) de una imagen, por tanto, en 3 bits. El proceso de inserción consiste en calcular la operación or-exclusiva de los valores a 1-a3 y a 2-a 3. El valor a 3 sirve para poder “enlazar” las dos operaciones. Si estas operaciones son igual al valor que se desea insertar no se modica nada. Si una de ellas no se cumple se modica el valor correspondiente (a 1 o a2 ), a no ser que no se verique ninguna de las dos ecuaciones en cuyo caso se modica a 3 (se invierte el valor del bit). De esta forma tan sencilla los valores (por ejemplo, coecientes, píxeles, índices de una paleta, etc.) a 1 , a2 y a3 almacenan 2 bits de información oculta mediante la modicación, como mucho, de 1 solo píxel. En realidad, se realizan modicaciones de 1 bit el 75% de las veces (3/4). El proceso de recuperación de la información es muy sencillo a partir de los 3 valores almacenados (a 1, a2, a3 ), ya que con la codicación empleada a 1 or-exclusiva a 3 indica cuál es el valor del bit oculto x 1 y a2 or-exclusiva a 3 indica el valor del bit oculto x 2 . Uno de los problemas fundamentales de las matrices de codicación para reducir el número de inserciones es la necesidad de necesitar más bits en el estegomedio de los necesarios para ocultar la información. En nuestro ejemplo, se necesitan 3 bits por cada 2 bits a ocultar. Lo cual establece limitaciones al necesitarse imágenes grandes para ocultar mayores volúmenes de información con mayor invisibilidad. En el caso de la herramienta F5, como se describió anteriormente, se necesitaban n = 2K-1 bits para poder ocultar k bits modicando solo un único bit de la imagen. Como se puede observar, el crecimiento del tamaño que tendría que tener la estegoimagen es exponencial según crece el número de k bits a ocultar. Este es uno de los motivos, como en el ejemplo comentado, por el cual k suele tener un valor 95 Una generalización de esta técnica es utilizada por la herramienta F5, que fue descrita con anterioridad. 126 ESTEGANOGRAFÍA © RA-MA pequeño. Si bien el número de modicaciones será mayor, se consigue un equilibrio adecuado entre el tamaño del estegomedio seleccionado y la invisibilidad deseada. No obstante, los investigadores no tiran la toalla. Diferentes investigaciones siguen trabajando en el desarrollo de matrices de codicación útiles para ocultar mensajes de gran tamaño, aproximando el tamaño de la información a ocultar a la capacidad efectiva de ocultación del estegomedio. Una investigación interesante en este sentido fue publicada por Jessica Fridrich et al. en Matrix Embedding for Large Payloads. 96 Adicionalmente al problema de intentar reducir el número de inserciones en un estegomedio para ocultar información se presenta otra problemática. No todas las zonas o localizaciones de un estegomedio son igual de propicias para ocultar una información. Por ejemplo, en una imagen digital es más conveniente, para minimizar ataques estadísticos, no realizar modicaciones en zonas donde haya mucha presencia de colores uniformes. Esta problemática es la que intentan cubrir las técnicas de wet paper codes. Esta técnica esteganográca hace uso de la metáfora de escribir en papel mojado. Imagine que la imagen donde se ocultará el mensaje ha sido expuesta a la lluvia. El emisor solo puede modicar las partes secas, nunca las partes mojadas. Durante la transmisión, la imagen se seca, de manera que el receptor no sabe qué partes de la imagen ha usado el emisor para escribir. Por tanto, el problema que intenta cubrir este tipo de esteganografía es cómo poder escribir en ciertas zonas de la imagen de manera que el receptor, que no sabe dónde se ha escrito esta información, sea capaz de leerla correctamente. Para comprender estas propuestas son necesarios conocimientos importantes de procedimientos matemáticos variados. El lector interesado puede iniciarse en estas técnicas mediante las siguientes investigaciones: ] FRIDRICH, J.; GOLJAN, M.; LISONEK, P. y SOUKAL, D.; Writing on Wet Paper.97 ] FRIDRICH, J.; GOLJAN, M. y SOUKAL, D.; Efcient Wet Paper Codes. 98 ] FRIDRICH, J.; GOLJAN, M. y SOUKAL, D.; Wet Paper Codes with Improved Embedding Efciency.99 96 http://www.ws.binghamton.edu/fridrich/Research/large_payloads-spie.pdf. 97 http://www.ws.binghamton.edu/fridrich/Research/WPC_TransactionsJournal1.pdf. 98 http://www.ws.binghamton.edu/fridrich/Research/WPC_IHW_nal.pdf. 99 http://www.ws.binghamton.edu/fridrich/Research/wpc_with_improved_embedding_efciencyieee.pdf. © RA-MA Capítulo 3. OCULTACIÓN DE INFORMACIÓN EN IMÁGENES DIGITALES 127 3.6.2 Técnicas de ocultación avanzadas. Bordes y texturas El lector, en este punto, es posible que ya se haga una serie de preguntas que serán incrementadas cuando lea los siguientes capítulos. Da la sensación de que existen multitud de herramientas esteganográcas para ocultar información en múltiples estegomedios, en este capítulo en concreto en diferentes formatos grácos utilizando técnicas esteganográcas variadas. Da la sensación de que casi cualquier herramienta o técnica esteganográca desarrollada puede ser detectada por procedimientos estadísticos o estegoanálisis a ciegas si se oculta un volumen importante de datos (esto dependerá del formato y de la imagen concreta elegida), con la única protección de intentar minimizar el número de inserciones en las mejores zonas del estegomedio para evitar una detección precisa. Alguna de las preguntas que es posible que se esté haciendo son: ¿está la batalla perdida?, ¿cuál es el mecanismo más robusto para ocultar la información en imágenes digitales? Las investigaciones publicadas en la última década hacen evidente una respuesta. Si el algoritmo esteganográco está disponible para el estegoanalista, a diferencia de lo que sucede con la criptografía, tarde o temprano será posible detectar la información oculta si se dan una serie de condiciones, típicamente ocultar una información de gran tamaño en un estegomedio y las características particulares de cada estegomedio elegido. A pesar de esta aparente noticia negativa, la investigación pública en nuevas técnicas de ocultación no está parada. En los últimos años, numerosos esfuerzos se han destinado a la creación de algoritmos para modelar con precisión imágenes digitales para detectar qué zonas de la misma son aptas para ocultar información de manera más invisible. Basado en estas ideas se ha prestado un especial interés en técnicas de ocultación en zonas donde estén presentes ejes o zonas con texturas. Este tipo de zonas tienen la particularidad de que se producen grandes saltos en el valor de los píxeles, debido a cambios de color o de tonalidad en esa parte de la imagen. Estos saltos son difíciles de modelar para un atacante. Siguiendo estos principios, nuevas técnicas de ocultación basadas en esteganografía adaptativa permiten mejores resultados. Destacan, por ejemplo, el sistema HUGO (Highly Undetectable Stego, 2010) 100 y WOW (Wavelet Obtained Weights, 2012)101. Estos sistemas esteganográcos son algunos de los procedimientos públicos más robustos que hoy en día puede encontrar el lector en herramientas fácilmente accesibles. La esteganografía con HUGO oculta información tanto en los ejes como en las texturas. Su diseño parte de la idea de establecer y analizar diferentes funciones 100 Artículos y código fuente: http://agents.fel.cvut.cz/boss/index.php?mode=VIEW&tmpl=materials. 101 http://dde.binghamton.edu/download/stego_algorithms/download/WOW_linux_make_v10.tar.gz. 128 ESTEGANOGRAFÍA © RA-MA de distorsión, a medida, para no ser detectable por un sistema de estegoanálisis concreto. En el momento en el que se publicó HUGO, el algoritmo de estegoanálisis SPAM102 era la herramienta pública más potente para la detección de esteganografía. Sus resultados eran excepcionales con LSB-matching, por lo que HUGO se diseñó para ser indetectable por SPAM. Más tarde, ataques 103,104 demostrarían que una mayor seguridad puede obtenerse considerando solo el modelado de las texturas. Es el caso de la función de distorsión usada por el algoritmo WOW. La función de distorsión usada por WOW busca texturas (zonas ruidosas) evitando ejes. Para ello, usa ltros direccionales para asegurarse de que una zona es ruidosa en todas las direcciones y que, en consecuencia, no es un eje fácil de modelar. Como consecuencia, los datos insertados por WOW son incluso menos detectables que los insertados por HUGO. Por desgracia, WOW también es atacable en determinadas circunstancias. 105 Ante todo esto, hay un par de conclusiones sobre las que reexionar. La primera de todas, aunque los sistemas esteganográcos se diseñen para no estar basados en oscuridad, es aconsejable que el estegoanalista disponga de la menor información posible sobre el tipo de estegomedio elegido y el algoritmo desarrollado. La historia demuestra que es cuestión de tiempo que el algoritmo se vulnere. La segunda recomendación es minimizar el número de inserciones en zonas de calidad y utilizar múltiples portadores, por ejemplo varias imágenes, para ocultar mensajes de tamaño grande sin facilitar la tarea a ataques estadísticos. Aunque la cantidad a ocultar depende de muchos factores, entre ellos la capacidad efectiva de ocultación de la estegoimagen, 106 en la práctica, para imágenes de una centena de KB, la ocultación de una centena de bits puede estar en un umbral razonable de invisibilidad (habría que analizarlo para la técnica e imagen concreta). En último lugar, por desgracia, tanto las técnicas de ocultación como de detección más sosticadas suelen quedarse en ámbitos de investigación y pruebas conceptuales, no existiendo herramientas de fácil uso para el usuario común. La única opción que le queda, si de verdad desea utilizar los algoritmos esteganográcos más robustos, es analizar todos los avances en estegoanálisis e implementar sus propias herramientas. 102 Steganalysis by Subtractive Pixel Adjacency Matrix. http://www.ws.binghamton.edu/fridrich/ Research/ paper_6_dc.pdf. 103 Steganalysis of Highly Undetectable Steganography Using Convolution Filtering. http://www. scialert.net/qredirect.php?doi=itj.2014.2588.2592&linkid=pdf. 104 Breaking HUGO. The process Discovery. http://www.ws.binghamton.edu/fridrich/Research/ hugobreakers05.pdf. 105 Adaptive steganalysis against WOW embedding Algorithm. http://dl.acm.org/citation.cfm?id=2600935. 106 Recuerde, por ejemplo, que el antiguo ataque RS (2001) permitía detectar una información oculta en LSB pseudoaleatorio cuando esta era superior a 0,005 bits por píxel (de media). Es decir, una ocultación mayor al 0,5% de la capacidad total de ocultación permitida en una imagen. 4 OCULTACIÓN DE INFORMACIÓN EN AUDIO Y VÍDEO DIGITAL “La música puede dar nombre a lo innombrable y comunicar lo desconocido”. Leonard Bernstein 4.1 ESTEGANOGRAFÍA Y WATERMARKING EN EL AUDIO/VÍDEO DIGITAL. ESTUDIANDO EL OJO Y OÍDO HUMANOS Un medio excelente, a priori, para enmascarar información, al igual que sucede con las imágenes digitales, es el audio o el vídeo (mezcla de las dos anteriores), debido a su uso cotidiano y generalizado en la sociedad de entretenimiento actual. El avance de la tecnología, en la última década, ha permitido la creación de dispositivos de consumo cada vez más pequeños y autónomos, que facilitan la creación, reproducción, replicación y distribución de audio y vídeo. La variedad de dispositivos para reproducir y almacenar audio/vídeo, y la gran cantidad de herramientas disponibles para poder tratarlos, hacen interesante la utilización de estos medios para ocultar información, debido principalmente a la facilidad con la que una información enmascarada puede pasar inadvertida, especialmente en Internet y las redes sociales. La esteganografía, en el audio o en el vídeo, en la mayoría de los casos se basa en aprovechar deciencias en nuestros sistemas receptores. Al igual que sucedía con las modicaciones en imágenes, que podían producir cambios visuales notorios apreciables mediante el sistema de visión humano si no se tomaban precauciones, es vital, en un entorno multimedia, audio y vídeo, conocer también las propiedades del sistema de audición humano. 130 ESTEGANOGRAFÍA © RA-MA En términos generales, el sistema de audición humano es bastante más difícil de engañar que el sistema de visión. Presenta un rango dinámico mayor, percibiendo sonidos para rangos grandes de potencia y frecuencia. Por ejemplo, el oído presenta una sensibilidad alta a la presencia de un ruido blanco gausiano añadido a una señal de audio. Esta detección puede ser incluso de unos 70 dB por debajo del nivel de ruido ambiente. Sin embargo, a pesar de estas propiedades, existen diversas situaciones en las que el sistema puede ser engañado, es impreciso en la detección. Un ejemplo sencillo de comprender es como ante la presencia de “sonidos fuertes” y “sonidos más débiles” los primeros tienden a enmascarar a los segundos. O, como el sistema de audición humano es poco sensible a ciertos cambios de fase en una señal de audio o a la supresión (modicación) de ciertas frecuencias en la señal de audio, como por ejemplo, realiza el estándar MPEG-1 audio Layer III (MP3). El estudio de las limitaciones del sistema de audición humano es el punto de partida para el diseño correcto de un algoritmo esteganográco que oculte información en señales de audio o vídeo, pero no es el único, al igual que sucede con otros estegomedios o algoritmos comentados. La introducción de modicaciones puede crear patrones no comunes que pueden ser detectados mediante estudios estadísticos de las propiedades de la señal empleada. El lector puede comprobar esto en herramientas típicas que se pueden descargar de Internet: MP3Stego, 107 MP3Stegz, 108 OpenPuff, 109 Silenteye, 110 Steghide, 111 StegoWav,112 S-Tools, 113 GiLBCSteg,114 Hide4PGP 115 o DeepSound. 116 Al igual que sucede con la esteganografía en imágenes digitales existen 3 parámetros que siempre se deberán considerar a la hora de ocultar información en estos medios: la cantidad de información a ocultar, la invisibilidad y la robustez frente a ataques que intenten eliminarla. Por los algoritmos publicados y difundidos, no es posible obtener a la vez excelentes resultados en cada una de estas características. Por ejemplo, es muy complicado obtener una alta robustez a la modicación de la 107 http://www.petitcolas.net/fabien/steganography/mp3stego. 108 http://sourceforge.net/projects/mp3stegz/. 109 http://embeddedsw.net/OpenPuff_Steganography_Home.html. 110 http://www.silenteye.org/. 111 http://steghide.sourceforge.net/. 112 https://packetstormsecurity.com/les/21655/stegowav.zip.html. 113 http://bit599.netai.net/s_tools_1.htm#demo. 114 https://github.com/Garrestotle/GiLBCSteg. 115 http://www.heinz-repp.onlinehome.de/Hide4PGP.htm. 116 http://jpinsoft.net/DeepSound/. © RA-MA Capítulo 4. OCULTACIÓN DE INFORMACIÓN EN AUDIO Y VÍDEO DIGITAL 131 información insertada en señales de audio y conseguir a la vez una capacidad de ocultación alta, así como mezclar estos requisitos para obtener una calidad de audio razonable que no advierta modicaciones en la señal. En función del escenario se primará un parámetro sobre otro. Por ejemplo, para conseguir marcas de agua 117 en audio digital se prioriza la robustez de la marca de agua (que sea difícil de eliminar) a su invisibilidad o tamaño efectivo de información introducida en el contenido. Para abordar esta problemática, en los últimos años se han documentado diversas técnicas de ocultación que van desde colocar información en niveles imperceptibles de ruido, manipulación de algoritmos de compresión, pequeños retardos de las señales en forma de eco, manipulación de las propiedades de las señales portadoras (por ejemplo, el oído no aprecia bien las altas frecuencias), técnicas en espectro ensanchado (spread spectrum), etc. Un ejemplo clásico es la utilización de medios de almacenamiento “ruidosos” para almacenar una información. Por ejemplo, grabar un audio con información oculta a cintas de casete, cuya calidad deja mucho que desear, y cuyo ruido inherente al dispositivo puede hacer pasar la información oculta por desapercibida. En cualquier caso, en las siguientes líneas se van a analizar algunas de las técnicas esteganográcas más comunes en señales digitales de audio/vídeo. Muchas de las cuales han sido y pueden ser utilizadas y evolucionadas para el diseño de sistemas esteganográcos más robustos y de marcado digital. No obstante, el lector debe ser consciente de que las propuestas cientícas (esteganográcas) en medios multimedia exceden en tamaño el espacio destinado a cubrir estas materias en este libro. Toda la información referente a esta cuestión en este libro le permitirá fácilmente comprender la materia y analizar y probar las herramientas más comunes disponibles en Internet. Para ampliar conocimientos estos resúmenes le servirán de guía en su búsqueda en Internet. 4.2 OCULTACIÓN DE INFORMACIÓN EN FICHEROS DE AUDIO. ESTUDIO DE DIFERENTES FORMATOS 4.2.1 Técnica LSB en muestras de audio. Esteganografía en fichero .wav La técnica LSB es una de las técnicas de ocultación más antiguas que permite ocultar información en muestras de audio. Al igual que sucede con los píxeles en cheros grácos, es posible aplicar la técnica de sustitución del bit menos signicativo, 117 Una marca de agua introduce un mensaje (oculto o no) en el interior de un objeto digital (imágenes, audio, vídeo, texto, software). Típicamente un grupo de bits que contiene información sobre el autor o propietario intelectual del objeto digital tratado (copyright). 132 ESTEGANOGRAFÍA © RA-MA y sus variantes, a las muestras de audio, es decir, en un mundo digital, los octetos que contienen la información real del audio almacenado. La incapacidad del oído humano de apreciar pequeñas diferencias posibilita la utilización de este tipo de técnicas en las muestras de audio, almacenadas, por ejemplo, en un chero digital de audio. Un ejemplo típico de la aplicación de este tipo de técnicas se puede ver en la ocultación de información en cheros digitales de audio, muy extendidos, con formato WAVE 118 (Waveform Audio Format), por ejemplo, los clásicos cheros de audio con extensión WAV. Este tipo de chero con este formato de audio digital, normalmente sin compresión de datos, facilita el acceso a la codicación digital de las muestras de audio almacenadas en el mismo, típicamente codicadas con 8 o 16 bits. Las muestras son almacenadas una detrás de otra, normalmente, con cuanticación uniforme. La facilidad de acceso a las muestras que contienen la información de audio hace de esta técnica una de las más sencillas y utilizadas con nes esteganográcos. Una herramienta que demuestra estos conceptos es la utilidad StegoWav 119 . Figura 4.1. Formato WAVE. Ficheros .wav 118 Hiding Data in Wave Audio Files. http://www.codeproject.com/Articles/6960/SteganographyVIII-Hiding-Data-in-Wave-Audio-Files. 119 https://packetstormsecurity.com/les/21655/stegowav.zip.html. © RA-MA Capítulo 4. OCULTACIÓN DE INFORMACIÓN EN AUDIO Y VÍDEO DIGITAL 133 Figura 4.2. Ejemplo de muestra de audio en el formato WAVE Como se destacó para este tipo de técnica cuando se habló de esteganografía en imágenes, se puede operar con muestras de audio individuales, en grupo, seleccionarlas aleatoriamente, etc. De nuevo, dependiendo de este criterio se pueden realizar diversas variantes de la técnica clásica LSB. Los principales inconvenientes de la utilización de esta técnica están relacionados con el margen de seguridad que se desee obtener y con cuál será la utilización práctica de esta técnica. La modicación de los bits (bit LSB u otros bits) de las diferentes muestras de audio para insertar información oculta provocará “alteraciones en la señal de audio” que hacen que se añada una pequeña potencia de ruido (típicamente, blanco gausiano) a dicha señal. El sistema de audición humano es sensible a este tipo de ruido, lo cual, en primera instancia, limitará el número de bits y muestras que pueden ser modicados sin que los cambios sean perceptibles (degradación de la calidad de la señal). En cualquier caso, al producirse modicaciones, será posible aplicar algoritmos estegoanalíticos conceptualmente parecidos al estegoanálisis en imágenes digitales para medir anomalías estadísticas. Cuantas más modicaciones se realicen más información tendrá el atacante para intentar detectar el mensaje oculto. Figura 4.3. Ocultando información con la herramienta StegoWav 134 ESTEGANOGRAFÍA © RA-MA 4.2.2 Ocultación en algoritmos de compresión. MP3 La ocultación de información y especialmente el marcado digital (watermarking) en audio es una de las ciencias más estudiadas 120 en los últimos 20 años. Haciendo especial hincapié sobre todo en la robustez de las propuestas frente a ataques activos que intenten borrar la información introducida en el audio. Entre los procedimientos de ocultación documentados 121 se puede destacar las siguientes técnicas (adicionalmente a las técnicas basadas en LSB): 1. Técnica de ocultación en la fase de una señal. El sistema de audición humano, a pesar de sus buenas propiedades, es mucho menos sensible a la modicación de las componentes de fase de una señal de audio. Este hecho, que es utilizado por multitud de sistemas digitales de compresión de audio, puede ser aprovechado para enmascarar información usando modulación de la fase de una señal o la codicación en la fase (phase coding). 2. Técnica de ocultación en el eco de una señal. Existen diferentes procedimientos que facilitan la ocultación de información en señales de audio mediante la introducción de un eco en la señal (echo hiding), concretamente mediante la modicación de los parámetros que lo denen, típicamente su amplitud y/o el retardo respecto a la señal original. Se han publicado un número importante de algoritmos de marcado digital de audio basados en estas ideas. 3. Ocultación aprovechando características estadísticas de las señales de audio. Se han publicado ejemplos de algoritmos que utilizan propiedades como “valores de pico de las señales”, la diferencia de energía entre trozos (bloques) de una señal de audio, etc. La idea básica consiste en clasicar la señal de audio en un número determinado de segmentos de acuerdo a sus propiedades en el dominio del tiempo, e insertar información en cada segmento utilizando el esquema de inserción más adecuado para minimizar las alteraciones detectables. Los esquemas de inserción tendrán muy en cuenta las características de los segmentos en el dominio de la frecuencia. Otras ideas, más o menos ingeniosas, presentan 120 Techniques for data hiding. http://www.cs.utsa.edu/~jortiz/CS4953/Papers/Techniques%20for%20 Data%20Hiding-p.pdf. 121 A Survey on Audio Steganography Approaches. http://research.ijcaonline.org/volume95/number14/pxc3896640.pdf. © RA-MA Capítulo 4. OCULTACIÓN DE INFORMACIÓN EN AUDIO Y VÍDEO DIGITAL 135 algoritmos capaces de insertar información utilizando los períodos de silencio en una señal, por ejemplo, mediante la expansión de la duración de este tiempo por un valor predeterminado. Para facilitar la detección, el receptor deberá conocer la duración original de los períodos de silencio de la señal de audio original. Por cuestión de espacio no se puede analizar cada una de las técnicas destacadas anteriormente pero sí se puede dedicar algo de espacio a estudiar al menos una de las herramientas más famosas que usando alguno de estos principios permite ocultación de información en cheros de audio MP3 (MPEG-1 Audio Layer III). El investigador Fabien A. P. Petitcolas, del laboratorio de seguridad de Cambridge, en el año 2002, creó una herramienta esteganográca que demostró la posibilidad de ocultar información aprovechándose de los algoritmos de compresión de audio más difundidos. Petitcolas se centró en el formato de audio MP3, publicando el software esteganográco denominado MP3Stego. 122 La herramienta MP3Stego trabaja exclusivamente con archivos de audio WAVE (mono) de 16 bits codicados a 44.100 Hz. Durante el proceso de compresión de este tipo de archivos se produce la ocultación de información, mecanismo que dará como resultado un archivo en formato MP3. MP3Stego primero comprime los datos a ocultar, luego los cifra con el algoritmo criptográco 3DES (Data Encryption Standard) y nalmente los oculta en el ujo de bits del archivo resultante MP3. El uso de la herramienta es muy sencillo. Por ejemplo, con el siguiente comando convertirá el chero svega.wav al chero svega_stego.mp3 con el contenido del chero de texto oculto dentro (hidden_text.txt). El contenido será cifrado usando como clave pass. #encode -E hidden_text.txt -P pass svega.wav svega_stego.mp3 Para recuperar la información oculta bastaría con la ejecución del siguiente comando: #decode -X -P pass svega_stego.mp3 122 http://www.petitcolas.net/steganography/mp3stego/. 136 ESTEGANOGRAFÍA © RA-MA Figura 4.4. Ocultación de información con MP3Stego ¿Cómo funciona MP3Stego? Para comprender cómo funciona la herramienta MP3Stego es necesario conocer mínimamente cómo se transforma un chero .wav a un chero MP3, ya que en ese proceso de compresión se producirá la ocultación de información. En este sentido, en una primera pasada se analiza la señal de audio usando modelos perceptuales, también conocidos como modelos psicoacústicos. La señal digital de entrada es procesada mediante un banco de ltros de análisis, los cuales extraen y ordenan la información espectral en un número de bandas de frecuencia. El modelo perceptual determina qué frecuencias se descartarán y qué frecuencias serán codicadas. Se descartan todos los contenidos no audibles para el ser humano, o al menos se hacen compromisos aceptables. En una segunda pasada se aplica una codicación Huffman 123 para comprimir sin pérdidas el resultado redundante que sobreviva. MP3Stego opera en el núcleo del proceso de codicación MPEG. Sin profundizar en el estándar MPEG Audio Layer 3, en este proceso tienen lugar dos iteraciones anidadas, en terminología inglesa rate loop (inner loop) y noise control/distortion loop. El proceso inner_loop cuantica los datos de entrada y va incrementando el paso de cuantización hasta que los datos cuanticados se pueden codicar con la cantidad disponible de bits. Otro proceso verica que esta distorsión introducida por la cuantización de los valores no sobrepasa un cierto umbral que el 123 https://es.wikipedia.org/wiki/Codicaci%C3%B3n_Huffman. © RA-MA Capítulo 4. OCULTACIÓN DE INFORMACIÓN EN AUDIO Y VÍDEO DIGITAL 137 modelo psicoacústico del oído humano detectaría. La ocultación de los valores se obtiene mediante la selección pseudoaleatoria de los valores de la paridad de los bits que conforman el código de Huffman de los valores cuanticados anteriormente (variable part2_3_length). El proceso de ocultación es complejo, pero eso no asegura que la ocultación de los datos sea segura, ya que al modicar valores de las paridades de los códigos correctores cualquier modicación alterará el contenido. Por lo tanto, tal y como argumenta el propio creador, si se decodica a WAV y se vuelve a comprimir a MP3, se perderá por completo todo el mensaje oculto. Adicionalmente, se conocen diversos estudios 124 estegoanalíticos 125 que demuestran como MP3Stego podría provocar alteraciones estadísticas signicativas, dependiendo del tamaño de la información a ocultar y de los cheros utilizados. Esta información podría permitir detectar la presencia de un mensaje oculto y estimar su tamaño. 4.2.3 Ocultación de comunicación en VoIP La voz sobre IP (VoIP) se dene como el conjunto de recursos que hacen posible que la señal de voz viaje a través de Internet empleando el protocolo de red IP. Esto signica que la señal de voz se envía en forma digital, en paquetes de datos, en lugar de enviarla en forma analógica a través de circuitos utilizables solo por telefonía convencional. Hoy en día, cualquier usuario, de forma directa o indirecta hace uso de este tipo de tecnologías, aunque solo sea en aplicaciones tan famosas como Skype 126 o Whatsapp. Figura 4.5. Torre de protocolos TCP/IP y VoIP 124 Steganalysis for Mp3Stego using differential statistics of quantization step. http://www.sciencedirect.com/science/article/pii/S1051200413000365. 125 Blind Steganalysis of Mp3Stego. http://www.seg.inf.uc3m.es/papers/2010jise.pdf. 126 SkyDe: a Skype-based steganographic method. http://arxiv.org/ftp/arxiv/papers/1301/1301.3632.pdf. 138 ESTEGANOGRAFÍA © RA-MA Las comunicaciones por VoIP presentan una serie de características que permiten ocultar información no solo en la forma en la que se codica el audio (empleando técnicas similares a las documentadas anteriormente), sino también aprovechándose de las particularidades de cada protocolo que transmite esa información (en el capítulo 7 dedicado a canales encubiertos se profundiza con más detalle en esta cuestión). Por ejemplo, en el protocolo de señalización SIP (Session Initiation Protocol), el protocolo de transporte RTP 127 (Real-Time Transport Protocol) o el protocolo de control RTCP (Real Time Control Protocol). Figura 4.6. Ejemplo de ocultación de información en VoIP y protocolo RTP En cualquier caso, un buen punto de partida, si desea profundizar en esta temática y comprender su funcionamiento, se encuentra en el trabajo de Wojciech Mazurczyk: VoIP Steganography and Its Detection – A Survey, 128 donde encontrará resumidas muchas de las técnicas esteganográcas utilizadas en audio (documentadas anteriormente) y las propuestas académicas de ocultación en protocolos de transporte de audio. 4.2.4 Ocultación de imágenes en el espectro de un audio Todas las técnicas esteganográcas en audio, más o menos seguras, intentan conseguir su objetivo, enmascarar información de manera desapercibida. En esta ciencia, si algo destaca sobre lo demás, es la creatividad para crear nuevas formas de ocultación de información, en ocasiones basadas en seguridad por oscuridad (una vez conocida la técnica de ocultación es viable detectar la información ocultada). Un ejemplo signicativo, en este sentido, es lo que permite la herramienta Enscribe. 127 SteganRTP (RTP Covert Channel Tool). http://sourceforge.net/projects/steganrtp/. 128 VoIP Steganography and Its Detection – A Survey. http://arxiv.org/ftp/arxiv/papers/1203/1203.4374. pdf. © RA-MA Capítulo 4. OCULTACIÓN DE INFORMACIÓN EN AUDIO Y VÍDEO DIGITAL 139 Esta herramienta permite crear un chero de audio digital WAV desde una imagen digital en formato JPG, PNG o BMP. Este audio no tendrá ningún sentido para los humanos, pero si se analiza espectralmente 129 es posible descubrir la imagen que originó ese audio. Adicionalmente, la herramienta presenta ciertas propiedades para que la imagen (el espectro) no se elimine aunque se convierta a ciertos formatos o se aplique a ciertas técnicas de compresión y ltrado. Figura 4.7. Ocultación de una imagen en el espectro de un audio con Enscribe y visualización con Baudline En la página del autor está publicado un completo manual utilizar esta herramienta, con varios ejemplos de ocultación. 129 http://www.baudline.com/. 130 http://coppercloudmusic.com/enscribe/. 130 para instalar y 140 ESTEGANOGRAFÍA © RA-MA 4.3 OCULTACIÓN DE INFORMACIÓN EN FICHEROS DE VÍDEO DIGITAL. ESTUDIO DE DIFERENTES FORMATOS Un vídeo digital puede denirse como un conjunto de frames individuales formado por imágenes y/o audio (y en ocasiones también texto). Por tanto, los procedimientos de ocultación de información en un vídeo se pueden aprovechar de las distintas técnicas esteganográcas sobre cada uno de esos elementos individuales (estegomedios) que conguran cada frame o bien combinando los frames. Esta posibilidad hace del vídeo digital un estegomedio de gran interés por su posible gran capacidad de ocultación y la dicultad de detectar el uso de técnicas variadas: ocultación en coeciente DCT en frames individuales (LSB...), ocultación por regiones de cada frame (o mezclando regiones de diferentes frames), ocultación en comunicaciones de videoconferencia en tiempo real, videostreaming por Internet, 131 etc. Adicionalmente existen procedimientos especícos de ocultación en vídeo basados en funcionamiento de cómo se crean y se combinan los distintos frames. De esta forma se pueden desarrollar mecanismos de ocultación que codiquen información a partir del cálculo de los vectores de movimiento entre una colección de frames, técnicas basadas en corrección de errores, la compresión de vídeo (motion vector steganography), etc. De hecho, tal es su potencial que en los últimos años la prensa generalista se ha hecho eco de supuestos usos esteganográcos en vídeo digital para propósitos variados, especialmente para usos terroristas. Figura 4.8. Documentos ocultos en un vídeo pornográfico por Al-Qaeda132 131 Video steganography using Flash Video (FLV). http://ieeexplore.ieee.orgxplloginjsp?tp= &arnumber= 5168563&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F5159258%2F5168 393%2F05168563.pdf%3Farnumber%3D5168563. 132 http://arstechnica.com/business/2012/05/steganography-how-al-qaeda-hid-secret-documents-ina-porn-video/. © RA-MA Capítulo 4. OCULTACIÓN DE INFORMACIÓN EN AUDIO Y VÍDEO DIGITAL 141 Por suerte o por desgracia, depende de si nuestro interés es detectar u ocultar, los algoritmos más robustos para ocultar/detectar información en vídeo digital están desarrollados solo como prueba de concepto en ámbitos de investigación académica (la mayor parte del código está desarrollado en Matlab, Maple o Mathematica) y no están disponibles como herramientas seguras fáciles de utilizar para el usuario común. Por el contrario, sí es común la existencia en Internet de una cantidad importante de herramientas que ocultan información en vídeo digital de manera insegura, 133 típicamente utilizando una técnica de ocultación EoF (End of File). Entre ellas: OurSecret (http://www.securekit.net/oursecret.htm), OmniHide Pro (http://omnihide. com/), Masker (http://www.softpuls.com/masker/), StegoStick (http://stegostick. sourceforge.net/), BDV DataHider (http://www.bdvnotepad.com/products/bdvdatahider/), Max File Encryption (http://www. softeza.com/leencryption/), etc. Entre las excepciones, disponibles para el público en general, se encuentra la herramienta MSU StegoVideo, 134 desarrollada por investigadores rusos. Esta herramienta permite ocultar datos directamente en las secuencias de vídeo, considerando los efectos de la compresión. Por desgracia, diversos estudios se han publicado sobre su falta de seguridad. 135,136 133 Forensic analysis of video steganography tools. https://peerj.com/articles/cs-7.pdf. 134 http://compression.ru/video/stego_video/index_en.html. 135 Steganalysis of MSU Stego Video based on discontinuous coefcient. http://ieeexploreieee.org/ xpl/login.jsp? tp=& arnumber=5485297&url=http%3A%2F%2Fieeexploreieeeorg%2Fstamp%2F stamp.jsp%3Ftp%3D%26arnumber%3D5485297. 136 Video steganalysis using motion estimation. http://ieeexplore.ieee.org/xpl/loginjsp?tp=&arnumb er=5179032&url= http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F5161636%2F51785572F05 179032.pdf%3Farnumber%3D5179032. 142 ESTEGANOGRAFÍA © RA-MA Figura 4.9. Ejemplo de ocultación en vídeo digital con la herramienta MSU StegoVideo Figura 4.10. Recuperación de información oculta con MSU StegoVideo 5 OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS “Más allá de lo cticio que proyectamos, existe una realidad que ocultamos”. Zule En los últimos años los investigadores han centrado una cantidad importante de esfuerzos en técnicas esteganográcas aplicables a un entorno más local como podrían ser los sistemas operativos y las diferentes formas de representar y almacenar la información en los diversos sistemas de cheros y soportes físicos. Intereses hay múltiples, y aplicaciones, pero principalmente el uso de este tipo de técnicas esteganográcas ha estado muy centrado en mecanismos de ocultación de información con propósitos de integridad de software propietario (copyright y licencias de instalación) y ocultación de código ejecutable, especialmente malicioso. Recuerde el lector que una vez atacado un sistema una idea excelente (posexplotación) es facilitar el acceso posterior ocultando y ejecutando herramientas o código en la máquina/sistema a atacar, por ejemplo, con el uso de rootkits. 137 Todo esto hace que hoy en día la ciencia de la informática forense centre cada vez más su atención en la detección de todos estos tipos de procedimientos de ocultación y en la creación de herramientas lo más automatizadas posible para detectar posibles vulneraciones de un sistema o dispositivo. Como se comprobará las opciones son múltiples y variadas. 137 https://es.wikipedia.org/wiki/Rootkit. 144 ESTEGANOGRAFÍA © RA-MA 5.1 ESTEGANOGRAFÍA EN SISTEMAS DE FICHEROS Y SISTEMAS OPERATIVOS. OCULTANDO EL RASTRO Hoy en día, cualquier sistema informático necesita de software de control que facilite su utilización. Esta compleja tarea suele recaer en el sistema operativo. Este a su vez implementará uno o varios sistemas de cheros para tratar y almacenar información creando unidades lógicas llamadas cheros. En los próximos apartados estudiaremos diversas técnicas esteganográcas para ocultar información utilizando precisamente el formato de un sistema de cheros, su organización e incluso su estructura interna. 5.1.1 Técnica de ocultación basada en la fragmentación interna de los sistemas operativos. Slack space Los sistemas operativos, y concretamente sus sistemas de cheros, trabajan con estructuras lógicas (cheros) que permiten acceder de forma conjunta a una serie de octetos guardados en un dispositivo. Desde un punto de vista físico, un chero ocupa bloques de un elemento de almacenamiento, siendo un bloque (conjunto de octetos) la unidad mínima que maneja un sistema de cheros concreto. El sistema de cheros FAT16 utiliza, por ejemplo, bloques de 32 KB, y el sistema de cheros ext2 utilizado en entornos GNU/Linux, bloques de 4 KB. 138 Dado que el tamaño de un chero no es un múltiplo exacto del tamaño del bloque, siempre hay parte de un bloque que no se usa, y está reservado para ese chero. Esto es lo que se conoce como fragmentación interna del chero 139 o slack space. Esto es fácil de comprobar con su sistema operativo favorito. Por ejemplo, si en un sistema operativo Windows 8.1 se crea y se salva un chero de texto de 14 caracteres usando la aplicación Notepad (C:/Windows/notepad.exe), al editar sus propiedades se comprueba que aunque el chero tiene 14 octetos de datos de usuario, realmente en el disco duro ocupa 4*1.024 octetos (4 KB). Esto es debido a que los sistemas operativos trabajan a nivel de bloque por motivos de simplicidad de diseño, y este tamaño de bloque varía dependiendo de la balanza entre optimización y complejidad. Partiendo de esta idea, es viable la utilización de la fragmentación 138 En realidad el tamaño de los bloques de un sistema de cheros ext2 se puede decidir en su creación usando el mandato mkfs. 139 Estos mismos principios pueden aplicarse a diferentes formas de almacenar la información, como por ejemplo en una memoria RAM (ram slack) o en un disco duro (disk slack). © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 145 interna de los cheros para ocultar información, ya sean cheros generados aposta con fragmentación interna u otros ya existentes. 140 Ocultar datos en la fragmentación interna tiene una serie de ventajas a destacar. Por un lado, resultan invisibles al sistema de cheros, a las aplicaciones y a las herramientas de validación de archivos convencionales. Por otro lado, aunque tiene inconvenientes de portabilidad, ya que si un chero con información oculta se copia con herramientas estándar la información de la zona de fragmentación interna se pierde, ya que solo se copian los datos de usuario, en ciertos contextos esta desventaja podría ser una ventaja interesante, precisamente si interesa que el chero copiado no se lleve la información encubierta. Figura 5.1. Ejemplo de una posible ocultación de un mensaje utilizando fragmentación interna En sistemas operativos Linux/Unix una herramienta clásica que utiliza esta técnica de fragmentación interna es, por ejemplo, la herramienta Bmap. Combinando unos pocos mandatos en una consola se puede ocultar información fácilmente en un chero. Un ejemplo podría ser el siguiente (más detallado en la referencia a pie de página):141 140 La herramienta removeSlack.exe facilita el borrado de los datos almacenados en el slack space para evitar fugas de información: https://github.com/OpenSecurityResearch/slacker. 141 Hiding Data in Slack Space using bmap. https://www.computersecuritystudent.com/FORENSICS/ HIDING/lesson1/index.html. 146 ESTEGANOGRAFÍA © RA-MA # echo “evil data is here” | bmap --mode putslack /etc/passwd # bmap --mode slack /etc/passwd getting from block 887048 le size was: 9428 slack size: 2860 block size: 4096 evil data is here 5.1.2 Técnica de ocultación mediante borrado de ficheros. Unallocated File Space Habitualmente cuando un usuario utiliza las herramientas tradicionales para eliminar un chero en un sistema operativo este no se elimina en sentido estricto. Cuando se “borra” un chero en un sistema de cheros se “eliminan” los enlaces a los diferentes bloques de octetos que constituyen ese chero, marcándose esos bloques como libres. Mientras los bloques marcados como libres no se sobrescriban con una nueva información, los datos previos permanecen inalterados y por tanto, en teoría, pueden ser recuperados, por ejemplo, de un disco duro de un ordenador. Existen multitud de herramientas para recuperar archivos borrados, tanto en plataformas Windows como en GNU/Linux. Por ejemplo, en el mundo Linux los cheros borrados con el mandato rm pueden ser recuperados con herramientas como e2undel (http://e2undel.sourceforge.net/), extundelete (http://extundelete.sourceforge.net/), etc. Por tanto, si en determinadas circunstancias es posible recuperar la información borrada, este hecho se puede utilizar como un mecanismo trivial de ocultación de información borrando cheros. Actualmente cualquier distribución seria de análisis forense, con una o más herramientas, contempla la detección de estos casos (SIFT, 142 CAINE,143 Autospy,144 etc.). En cualquier caso la lista de herramientas gratuitas y comerciales para la recuperación de archivos es enorme. 145 5.1.3 Técnica de ocultación ADS en sistema de ficheros NTFS NTFS (New Technology File System) es un sistema de cheros propietario, desarrollado en esencia a lo largo de la década de los 90, utilizado, en principio, para sistemas operativos Windows NT, 2000 y XP. NTFS es un sistema de alto rendimiento con soporte de seguridad con cifrado para proteger datos sensibles, 142 SANS Incident Forensic Toolkit (SIFT). http://digital-forensics.sans.org/community/downloads. 143 http://www.caine-live.net/. 144 http://www.sleuthkit.org/autopsy/. 145 File Recovery: https://en.wikipedia.org/wiki/List_of_data_recovery_software. © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 147 compresión y auditoría. Permite gestión de discos duros de mayor tamaño y soluciones para implementar tecnologías RAID. Adicionalmente implanta NTFS ADS (NTFS Alternate Data Streams), ujos de datos alternativos, para proporcionar (al menos así lo reeja la versión ocial) compatibilidad con el sistema de cheros de Macintosh HFS (Hierarchical File System). En el sistema de cheros NTFS un chero se constituye de diferentes ujos de datos. Por ejemplo, un ujo almacena la información de seguridad como los permisos del chero, otro almacena los datos reales del usuario, etc. Sin embargo, el problema surge porque es posible la creación de ujos de datos ocultos. Es decir, distintos ujos de datos en un chero que aparentemente no pueden ser accedidos. La creación de ADS en un sistema de cheros NTFS permite en último lugar la creación de técnicas esteganográcas y la ocultación de información en el sistema de cheros. Para poder aplicar esta técnica de ocultación no es necesario tener privilegios especiales de usuario, sino simplemente permiso de escritura en el chero donde se desea almacenar la información a esconder. En el pasado la ocultación de ADS ha sido útil no solo para ocultar información textual, sino sobre todo código ejecutable, debido a la facilidad para crearlos. A continuación el lector puede reproducir una de las diferentes formas posibles para crear un ADS. En nuestro ejemplo en un sistema de cheros NTFS y Windows 8.1: ] Paso 1. Abrir una consola en Windows (Inicio à Ejecutar o área de búsqueda à cmd). ] Paso 2. Reproducir los mandatos que se pueden ver en la siguiente gura. En este paso se utiliza el ujo de datos oculto para almacenar nuestra información deseada. Se observa que la edición normal del chero visible.txt no permite el acceso a la información oculta, es más, en principio se necesita conocer el nombre del ujo de datos creado. Además, se demuestra que es posible ocultar múltiples ujos de datos ocultos dentro de un chero (oculto y oculto1). Lo más interesante es que al comprobar el tamaño del chero este no varía. Si se utiliza el comando dir (sin opciones) para listar el chero se comprueba que su tamaño coincide exactamente con el mensaje “original” introducido. Del mismo modo, si utiliza una herramienta de edición de cheros, como el conocido UltraEdit o NotePad++ para una edición hexadecimal de los octetos que forman el chero, observará que únicamente es posible editar la información “original”. 148 ESTEGANOGRAFÍA © RA-MA Figura 5.2. Ocultación de mensaje utilizando NTFS ADS En el siguiente ejemplo puede observar cómo podríamos ocultar un chero ejecutable 146 (en el ADS oculto.exe se oculta una consola nueva) y ejecutarlo (wmic process call create): Figura 5.3. Ejecución de un código ejecutable oculto en un ADS 146 Stealth Alternate Data Streams and Other ADS Weirdness. http://www.exploit-mondaycom/2011/ 09/stealth-alternate-data-streams-and.html. Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 149 © RA-MA La recuperación de la información enmascarada requiere del uso de herramientas especiales para detectar y observar esta información, o comandos presentes en el sistema operativo pero con ciertas opciones. Por ejemplo, el comando dir /R permite ver los ujos de datos existentes. Otra herramienta de detección muy famosa es LADS (List Alternate Data Streams) de Frank Heyne. 147 En cualquier caso cualquier herramienta forense decente en la actualidad detecta la presencia de ADS. Figura 5.4. Detección de NTFS ADS con comando dir Una vez se detecta la presencia de un ADS y se observa su contenido resulta trivial eliminarlo, incluso en ocasiones esto puede suceder sin que la persona que oculta la información sea consciente. Por ejemplo, mover los cheros del sistema de cheros NTFS a otro sistema de cheros, por ejemplo FAT, elimina los ADS. Efecto parecido se obtiene si se copian exclusivamente los datos del chero a otro chero: type visible.txt > sinADS.txt del visible.txt 5.1.4 Sistema de ficheros esteganografiados. StegFS En cualquier sistema operativo moderno se puede realizar toda una serie de operaciones sobre cheros informáticos sin necesidad de conocer la ejecución exacta de las tareas necesarias para realizar dicha operación. Por ejemplo, cuando se crea un 147 http://www.heysoft.de/en/software/lads.php?lang=EN. 150 ESTEGANOGRAFÍA © RA-MA chero, el sistema de cheros gobernado por el sistema operativo entra en juego. Su tarea principal, en este caso, consiste en decidir una serie de bloques de octetos libres para asignar como ocupados en los cuales se almacenará la información del usuario, al mismo tiempo se establecen las uniones necesarias para que toda la información esté enlazada y pueda ser accedida por el propietario del chero. Si se consigue que el sistema de cheros cree una serie de bloques ocupados con datos pero que en ningún momento se enlacen al árbol de directorios, esta información se presenta invisible al propio sistema operativo y a las herramientas estándar de listado. La idea de creación de bloques individuales de información permitiría ocultar datos en la estructura de un sistema de cheros. Es decir, se podría utilizar la estructura propia de un sistema de cheros como medio esteganográco, creándose un sistema de cheros esteganograado. Esta técnica tiene la ventaja de facilitar la ocultación de gran cantidad de información, o al menos alcanzar un mayor almacenamiento para una seguridad razonable. No obstante, entre sus inconvenientes destaca que no es una técnica portable, es decir, no se puede transmitir, en principio, información a un usuario remoto. Obviamente, herramientas especícas para detectar este tipo de esteganografía intentarán detectar bloques que están ocupados y que son sospechosos por algún motivo, por ejemplo, porque no están enlazados al directorio raíz. En cualquier caso, en Internet se pueden encontrar múltiples herramientas que presumen de ocultar la existencia de cheros o directamente de datos individuales en sistemas NTFS, FAT, etc. En realidad, una simple búsqueda con su buscador favorito dará como resultado multitud de herramientas en muy poco tiempo. Como no es posible analizar cada particularidad de cada herramienta publicada en Internet en este apartado se cree conveniente analizar un sistema bastante completo que aúna las diferentes ideas comentadas. Un verdadero sistema de cheros esteganograado. La idea de un sistema de cheros esteganograado no es para nada nueva, se ha escrito mucho acerca de ellos. En las siguientes líneas comentaremos sus características a través de diferentes artículos, y principalmente de “StegFS 148 : A Steganographic File System” de los autores HweeHwa Pang, Kian-Lee Tan y Xuan Zhou, sin olvidar estudios previos, como los realizados por A. Shamir, R. Anderson, R. Needham, A. McDonald, M. Kuhn, etc. 149 La idea fundamental de esta herramienta (StegFS) surge al darse cuenta los creadores del sistema de que ni la criptografía ni los controles de acceso de 148 https://albinoloverats.net/projects/stegfs. 149 http://www.mcdonald.org.uk/StegFS/. © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 151 usuarios a determinados datos pueden al nal evitar la alerta de existencia de datos y de posibles ataques para rebelarlos, especialmente si se tiene acceso físico al sistema de cheros (a la máquina/disco duro). El control de acceso y el cifrado son mecanismos estándar de protección de datos en los sistemas de cheros más modernos, como el clásico EFS (Encrypting File System) presente ya en Windows 2000 y XP, o herramientas de cifrado de disco como el conocido PGPDisk. 150 Sin embargo, el problema no surge solo porque alguien pueda detectar la existencia de datos e intentar atacar las protecciones para obtenerlos, sino por casos peores como pueden ser cuando un administrador intencionadamente, o no, da permiso a información en contra del deseo del propietario, por ejemplo, al añadir un usuario a una lista de control de acceso a un chero protegido. El sistema StegFS intenta dicultar esta tarea ocultando información en el sistema de cheros, de tal forma que un usuario sin la clave de acceso correspondiente a ese chero no es capaz de deducir su existencia, aunque conozca la estructura interna del sistema de cheros y tenga acceso total al mismo. Es decir, en una primera aproximación ni siquiera el administrador de los equipos tendría la capacidad de localizar la información ya que no dispone de la clave de acceso que permite localizarlos. Además, esta herramienta se preocupa de que el sistema sea lo más práctico posible, asegurando la integridad de los cheros ocultados y una utilización eciente tanto del espacio del disco duro como de operaciones en el sistema de cheros. Quizás esto sea una de las ventajas secundarias más destacables de este tipo de herramienta, ya que permite utilizarla de forma práctica. Implementación de StegFS Sin profundizar en exceso en los sistemas de cheros comunes en GNU/ Linux, como ext2 o ext3, es importante recordar algunas nociones básicas de estos sistemas de cheros para comprender cómo funciona el sistema StegFS. En general, el espacio de almacenamiento se divide en bloques de tamaño estándar y en una serie de vectores de bits (bitmap), que indica si un bloque está libre o reservado (ocupado). Por ejemplo, un bit a cero en una posición determinada del bitmap indica que el bloque con número esa posición está libre, mientras que un bit a 1 signica bloque usado. La gracia de esta herramienta es que todos los cheros “normales” (no ocultos) se acceden a través del directorio raíz (en sistemas UNIX “/”), acceso que se realiza gracias a una estructura de enlaces con información sobre los distintos cheros, los bloques de información que ocupan, etc. Esta estructura se conoce como la tabla de i-nodos en un sistema tipo UNIX. 150 Una lista completa de software de cifrado de disco duro puede verse en la siguiente URL: http:// www.criptored.upm.es/crypt4you/temas/privacidad-proteccion/leccion2/leccion2.html. 152 ESTEGANOGRAFÍA © RA-MA Sin embargo, si los bloques que forman un chero no son enlazados a la tabla de i-nodos, aparentemente desde el sistema de cheros esta información permanece oculta, pues el sistema operativo no dispone de información para enlazar los distintos bloques. Partiendo de esta idea, lo único que debe realizar la herramienta es marcar en el bitmap los bloques de información como usados para prevenir que el espacio reservado pueda volver a ser utilizado. No obstante, todavía un usuario con conocimiento de la estructura del sistema de cheros y acceso completo al mismo podría deducir qué bloques no están enlazados y poder inferir en qué bloques existe información oculta, aunque no tendría porqué ser capaz de determinar qué bloques pertenecen a qué chero concreto. Para dicultar esta tarea StegFS crea bloques falsos de dos tipos (activa en el bitmap el bit correspondiente), por un lado, reserva de forma aleatoria algunos bloques que son abandonados (no tienen uso para ocultar información) para contrarrestar un posible intento de localización de datos ocultos simplemente mirando el bitmap. Sin embargo, esto implicaría efectos negativos en uso óptimo del espacio de almacenamiento. Por esto, en la práctica este número de bloques abandonados es aconsejable que no sea grande. Además de este tipo de información, StegFS mantiene uno o más cheros ocultos dummy. Un chero dummy es un chero falso que se actualiza periódicamente, simulando la existencia de cheros reales que van cambiando, y que dicultaría un ataque basado en el estudio de alteración de los distintos bloques marcados en el bitmap y no enlazados. Conocido esto es importante resaltar que cada chero oculto se accede a través de su propia cabecera, la cual contiene tres estructuras de datos: 1. Un enlace a una tabla de i-nodos que enlaza todos los bloques de datos en un chero. 2. Una rma que identica de forma única el chero. 3. Una lista enlazada de punteros a bloques libres reservados por el chero. Todos los componentes del chero, incluidos cabecera y datos, son cifrados con una clave de acceso para hacerlos indistinguibles de los bloques abandonados y cheros dummy para observadores desautorizados. Como se comentó, al no ser enlazados los cheros en el directorio central la herramienta StegFS debe ser capaz de localizar la cabecera del chero usando solo un nombre físico del chero y una clave de acceso. Para permitir esto en la creación de un chero, StegFS marca el chero con una rma hash calculada del nombre del chero y la clave de acceso. Utiliza esta información como semilla (entrada) a un generador pseudoaleatorio de número de bloque, es decir, calcula un número de bloque de forma pseudoaleatoria © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 153 y comprueba en el bitmap si está libre en cuyo caso procede a almacenar la cabecera del chero. Una vez que esta está reservada, los bloques subsiguientes del chero se asignan aleatoriamente consultando el bitmap, y almacenando el enlace entre los bloques del chero. Para evitar situaciones de sobrescritura debidas a diferentes usuarios trabajando con un mismo nombre de chero y clave de acceso, el nombre físico del chero se deriva concatenándolo con el identicador de usuario en el sistema operativo (que es único por usuario y sistema) y con la ruta completa del chero. La localización una vez conocido esto resulta semejante. StegFS utiliza el nombre de chero y la clave de acceso para calcular el bloque a consultar, verica si está asignado en el bitmap, y a continuación verica que tiene una rma de chero igual al hash calculado (se emplean algoritmos criptográcos como SHA-1 y MD5). Extendiendo esta idea se comprende que StegFS tiene más efectividad en un entorno multiusuario, ya que al existir diferentes cheros ocultos de usuarios, se le complica a un atacante determinar qué información corresponde a un usuario concreto. De nuevo, este sistema demuestra la sosticación que puede presentar un sistema real que mezcla criptografía y esteganografía para proteger la información. 151 5.1.5 Ocultación en la estructura lógico-física de los soportes de almacenamiento En las últimas décadas la estructura lógico-física de los soportes de almacenamiento (disquete, CD-ROM, disco duro, tarjeta ash, chip, etc.) se ha mostrado de gran utilidad para proteger u ocultar información. Un buen ejemplo de esto lo fueron en el pasado los clásicos discos llaves. Los discos llaves eran disquetes o CD normales que presentaban algún tipo de problema en su estructura interna (lógica o física), anomalía que era buscada por un determinado software antes de ejecutarse. La utilidad principal de esto era crear discos anticopia, ya que si el programa se copiaba a otro disco, que en principio no tenía estas anomalías, el programa de detección fallaría y la ejecución no tendría lugar. 152 Lo importante de este ejemplo es alguna de las diversas técnicas para producir esas anomalías, ya que han tenido utilidad con nes esteganográcos. Por ejemplo, en los extinguidos disquetes el medio de almacenamiento se dividía en 151 Puede descargar StegFS desde: http://www.mcdonald.org.uk/StegFS/download.html. 152 Durante muchos años fueron muy comunes también las mochilas hardware como mecanismo ant copia. https://es.wikipedia.org/wiki/Mochila_%28dispositivo%29. 154 ESTEGANOGRAFÍA © RA-MA pequeños bloques organizativos llamados sectores (almacenaban la información). En los disquetes se podían aplicar diferentes técnicas para marcar ciertos sectores válidos como corruptos, formatear sectores o pistas a un tamaño no estándar (con lo cual eran invisibles para el sistema operativo), etc. Todas estas técnicas antiguas de protección pueden ser usadas para ocultar información, ya que cualquier procedimiento no estándar que se realice es habitual que pase desapercibido para el sistema operativo. Aprovechándose, precisamente de la división de un disquete en bloques lógicos llamados sectores (habitualmente de 512 bytes), la herramienta S-Tools 153 (módulo FDD) es capaz de ocultar datos en los sectores libres de un disquete con sistema operativo MS-DOS y sistema de cheros FAT (File Allocation Table). Esta asignación se realiza por medio de un generador pseudoaleatorio y en ningún caso los bloques se marcan como usados. Esto presenta la desventaja de que si la información del disquete crece, es posible que se pierda la información oculta, aunque tiene la ventaja de que un análisis de los bloques reservados no desvela su utilización. Al nal, un analista tiene que decidir si la información que se encuentra en los sectores libres puede o no ser información real del usuario. Hoy en día, estas técnicas no se limitan a los dispositivos de almacenamiento convencionales sino en general a cualquier dispositivo electrónico que tenga algún tipo de memoria. En los últimos años ha sido signicativa la ocultación de información (típicamente código malicioso) en la estructura (memoria) de la BIOS 154 o en dispositivos USB. Habitualmente la BIOS en una placa base de un PC, un router u otro dispositivo se almacena en un chip de ash con suciente espacio libre para añadir información adicional o código malicioso. La BIOS original se modicará para ejecutar el código añadido adicionalmente y continuar ejecutando su funcionamiento habitual. En los últimos años se han publicado multitud de ejemplos de implementación de malware oculto en BIOS. 155 Especialmente signicativos han sido los múltiples proyectos de espionaje elaborados por la NSA y revelados por Edward Snowden (IRONCHEF, DEITIBOUNCE, ANGRYMONK, GINSU, SWAP, IRATEMONK y SOUFFLETROUGH) para infectar BIOS/rmware de equipos, cortafuegos, routers o discos duros. Un caso signicativo en esta tendencia fue el malware BadBIOS. Las atribuciones a este malware daban una vuelta de tuerca a la utilidad de ocultación de código malicioso en una BIOS o rmware. Tradicionalmente una de las utilidades 153 http://www.jjtc.com/Security/stegtools.htm. 154 El propósito fundamental del BIOS es iniciar y probar el hardware del sistema y cargar un gestor de arranque o un sistema operativo de un dispositivo de almacenamiento de datos. 155 BARROSO, D.; Infección en BIOS, UEFI y derivados, Rooted CON 2015. https://www.youtube. com/watch?v=Za9rwt2RDsE. © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 155 principales de un malware en la BIOS es generar persistencia de un malware (o funcionalidad extra) que se instalaría en un sistema operativo. Las atribuciones a BadBIOS156 indican que era capaz de infectar una BIOS con un malware que era capaz de comunicarse con otro malware instalado en otra BIOS mediante comunicaciones inalámbricas (por ejemplo, con sonidos imperceptibles por el ser humano). Esta idea introduce una serie de problemas interesantes de destacar. Por ejemplo, un ordenador no conectado a Internet cuya BIOS ha sido modicada por algún procedimiento (por ejemplo, a través de la ejecución de un malware en una memoria USB) podría comunicarse con otro ordenador próximo que sí está conectado a Internet (tendría que tener la BIOS infectada también). Si esto se produce se producirían canales de comunicación fuera de la red de comunicaciones interna tradicional (evitando las medidas de seguridad clásicas) facilitando la fuga de información y el control remoto de sistemas aislados. Por desgracia, existen tantas formas de ser infectado que cualquiera de estas opciones podría llegar al usuario común. Incluso con algo tan inofensivo como un cargador USB de un cigarrillo electrónico 157 o múltiples accesorios USB. 158 Adicionalmente a lo anterior, el lector debe ser consciente de que existe otro mundo más complejo y alejado del usuario medio que consiste en la posibilidad de ocultar malware a nivel de hardware. Esto es un problema especialmente en entornos que procesan información con un grado importante de condencialidad. En los últimos años, se han publicado decenas de noticias periodísticas y artículos académicos 159 destacando esta posibilidad, en la que actores como, por ejemplo, el FBI 160 o el Departamento de Homeland Security de EE. UU. desconfían, 161 y con razón, a todos los niveles de hardware fabricado en otros países para procesar información sensible. 156 https://en.wikipedia.org/wiki/BadBIOS. 157 E-Cigarettes From China Spreading Malware Through USB Charger. http://www.ibtimes.co.uk/ecigarettes-china-spreading-malware-through-usb-charger-1476239. 158 BadUSB. http://www.welivesecurity.com/la-es/2014/08/11/analisis-badusb-nueva-amenaza-noes-apocalipsis/. 159 Designing and implementing malicious hardware. http://www.acoz.net/pubs/malicious_processor. pdf. 160 F.B.I. Says the Military Had Bogus Computer Gear. http://www.nytimes.com/ 2008/05/09/ technology/09cisco.html?_r=0. 161 http://www.fastcompany.com/1765855/dhs-imported-consumer-tech-contains-hidden-hackerattack-tools. 156 ESTEGANOGRAFÍA © RA-MA 5.2 ESTEGANOGRAFÍA EN LA ESTRUCTURA DE LOS FORMATOS DE FICHEROS En este apartado se van a estudiar algunas ideas/técnicas que permiten ocultar información aprovechándose de las redundancias o situaciones de imprecisión en la validación de un formato de chero digital concreto. Veamos algunas de las más conocidas. 5.2.1 Técnica EoF (End of File). Información al final de la estructura de un fichero Una técnica muy extendida en Internet, a la vez que insegura (puede detectarse que la información existe), consiste en enmascarar datos directamente añadiéndolos al nal de un chero electrónico. En muchos formatos electrónicos, sobre todo aquellos cuyo contenido de algún modo es ejecutable (tiene estructura), añadir información al nal del chero es inocuo al comportamiento y ejecución habitual de ese formato. Esto es así porque la mayoría de los formatos de archivos no comprueban la longitud total del chero que lo contiene. En su lugar, se van leyendo las diferentes informaciones de las estructuras que conforman el formato especíco del chero y una vez que terminan no siguen leyendo. En ningún momento verican si hay información más allá. Puede probar esta técnica fácilmente desde su sistema operativo favorito. Por ejemplo, desde la consola MS-DOS de Windows 8.1: 1. 2. 3. 4. 5. 6. Abrir una consola/terminal: tecla Windows+cmd+Intro. Mkdir c:\EoF. Seleccionamos una imagen. Por ejemplo, descargamos el logo del buscador Google. https://www.google.es/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png c:\EOF > echo "Esteganograa" > oculto.txt. c:\EOF > copy /b googlelogo_color_272x92dp.png+oculto.txt googleModicado.png. En el ejemplo anterior creamos una nueva imagen concatenando una imagen original y un chero a “ocultar”. Se utiliza el mandato copy con la opción /b para realizar una copia binaria. Las dos imágenes son visualmente idénticas pero “googleModicado.png” introduce al nal del chero información extra. © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 157 Figura 5.5. Ocultación del texto “Esteganografía” en una imagen utilizando una técnica EoF Posiblemente esta sea una de las técnicas esteganográcas más difundida en Internet, sobre todo para contenido multimedia (imágenes, audio y vídeo). No obstante, su seguridad es realmente baja, y una inspección directa del chero sospechoso puede delatarla. La ventaja principal es que permite almacenar una enorme cantidad de información ¿oculta? Entre las herramientas esteganográcas más difundidas en Internet se encuentran algunas como: Camouage 1.2.1, Data Stash v1.5, AppendX, DataStealh v1.0, PGE v1.0, JPEGX Ver 2.1.1, etc. Todas estas herramientas utilizan una técnica EoF para ocultar la información en cualquier chero, siendo su detección realmente simple y automatizable. En la sección de herramientas de estegoanálisis se verá cómo realizarlo con la herramienta de detección StegSecret. Ejemplo: la herramienta Camouflage 1.2.1 Si es de interés el lector puede buscar y ejecutar las herramientas esteganográcas anteriores y probar cómo funciona la técnica EoF de una manera transparente. Un excelente ejemplo es la herramienta Camouage, 162 masivamente utilizada en Internet. En estas líneas me gustaría describir brevemente el proceso que realizaría un analista para invertir su seguridad y posteriormente automatizar su detección en una herramienta de estegoanálisis (como hace, por ejemplo, la herramienta StegSecret que desarrollé hace años). El lector comprenderá lo sencillo que es “romper” una protección basada en EoF o variantes. 162 http://camouage.unction.com/. 158 ESTEGANOGRAFÍA © RA-MA Figura 5.6. Ejemplo de uso de la herramienta Camouflage 1. La herramienta esteganográca Camouage permite la ocultación de cualquier chero de información en cualquier otro chero de información. Para ello, utiliza la técnica de ocultación al nal de chero (EoF), es decir, pega la información a ocultar detrás del último octeto del chero que se utilizará como estegomedio o cubierta. Permite además la codicación de la información a ocultar mediante un algoritmo propietario y una clave elegida por el usuario. 2. El análisis con cualquier comparador hexadecimal de diferentes cheros con información oculta y de los mismos sin ella permite extraer patrones jos para detectar cualquier otro chero con información enmascarada en un futuro. Analizando la estructura con la que se ocultan los datos se puede describir un procedimiento de detección. ● Posicionarse en el último octeto del estegochero y restar a esta posición 11 Ch. ● Leyendo en la nueva posición del chero permite obtener un número de 4 bytes, que llamaremos N.ºBytes, que corresponde con el tamaño de la información útil oculta. ● Calculamos el número (854 + N.ºBytes), y su resultado se lo restamos a la posición que ocupa el último octeto en el estegochero. El número 854 es el número de bytes de información ja que añade la herramienta. ● Situados en esta nueva posición dentro del estegochero, se debe leer la marca de dos bytes “20 00” (hexadecimal). Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 159 © RA-MA ● A continuación se le suma a la posición actual del chero 24 posiciones más. ● En esta nueva posición se leen 4 bytes. Este número debe coincidir con el valor N.ºBytes leído anteriormente. Si todo el proceso es correcto, el chero sospechoso incluye información ocultada con la herramienta Camouage v1.2.1 e incluso es posible determinar el tamaño exacto de esta información. En el proceso de inversión de esta herramienta concreta, no solo se puede recuperar la información original, sino que además se puede decodicar fácilmente si esta estuviera codicada con el algoritmo de cifrado de la herramienta, incluso recuperar la clave utilizada por el usuario. Por motivos de espacio no se desarrolla como invertir este algoritmo, pero básicamente su funcionamiento consiste en realizar una operación or-exclusiva de los datos a cifrar con una clave prejada de la herramienta. Esta clave prejada no depende de la clave del usuario, por tanto, además de que la implementación del algoritmo de cifrado no es segura, es posible recuperar una clave maestra para descifrar cualquier estegochero. 163 Independientemente de lo fácil que resulta detectar este tipo de técnicas, su uso es masivo especialmente combinado con otras técnicas/herramientas (Hacha,164 Kamaleon, 165 etc.) en Internet. Herramientas clásicas que permiten esto son varias como, por ejemplo, la herramienta Camuaweb. 166 Esta herramienta oculta información en las imágenes (EoF) de un sitio web y su utilidad a menudo está destinada a distribuir material protegido con derechos de autor por redes de intercambio (p2p, 167 p2m, 168 etc.). 163 (easily) Breaking a (very weak) steganography software. http://www.guillermito2.net/stegano/camouage/. 164 http://hacha.softonic.com/. 165 http://kamaleon.softonic.com/. 166 Descargable de http://es.rockybytes.com/camuaweb. 167 https://es.wikipedia.org/wiki/Peer-to-peer. 168 https://es.wikipedia.org/wiki/P2M_%28software%29. 160 ESTEGANOGRAFÍA © RA-MA 5.2.2 Técnica de ocultación basada en ficheros comprimidos. Ocultación de malware En las últimas décadas los algoritmos y formatos que se utilizan para comprimir información se han utilizado para realizar diversos ataques prácticos sobre redes y sistemas informáticos. Especialmente, es signicativo su uso para la ocultación de código malicioso o malware. Un ejemplo mítico de este tipo de ideas eran las bombas de descompresión, o más popularmente las bombas zip. Las bombas de descompresión consistían en un chero cuidadosamente elaborado para al descomprimirlo requerir grandes cantidades de tiempo, espacio en disco o memoria, con la intención principal de bloquear un sistema o, por ejemplo, deshabilitar un software antivirus (y así permitir ejecutar otro malware después que pasaría desapercibido). Un ejemplo de bomba zip es el archivo 42.zip 169 (42 KB) que utilizando diferentes niveles anidados de compresión está diseñado para descomprimir hasta 4,5 petabytes. 170 Por suerte, muchas de las soluciones antivirus actuales pueden prevenir este tipo de ataques evitando un cierto nivel de recursividad, consumo de memoria o exceso de tiempo de ejecución. Donde los antivirus tienen el trabajo un poco más complicado es con otro tipo de técnicas bastante más interesantes. Entre estas, destaca la investigación publicada en BlackHat Europe 2010 por los investigadores Mario Vuksan, Tomislav Pericin y Brian Karney titulada: Hiding in the Familiar: Steganography and Vulnerabilities in Popular Archives Formats 171 - (ZIP, 7ZIP, RAR, CAB y GZIP). En esencia en este trabajo se analizan diferentes algoritmos de compresión para detectar la manera de ocultar información utilizando la estructura de los cheros comprimidos. Es un trabajo que merece la pena leer. A modo de ejemplo se va a analizar un caso con el cual sería posible introducir un malware (ocultar un código malicioso) en un chero comprimido y pasar desapercibido a las tecnologías antivirus actuales basadas en análisis estático. Lógicamente esta misma técnica podría ser utilizada para ocultar cualquier otro tipo de información. 169 Se puede obtener en: http://www.unforgettable.dk/. 170 https://en.wikipedia.org/wiki/Zip_bomb. 171 BlackHat Europe 2010 - Hiding in the Familiar: Steganography and Vulnerabilities in Popular Archives Formats. https://vimeo.com/11340346. © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 161 Ocultación de malware en ficheros comprimidos con el algoritmo RAR Se va a simular la introducción de un malware en una organización que posee medidas de seguridad perimetral basadas en tecnologías de antivirus. Para ello se va a utilizar el algoritmo de compresión RAR 172 y la estructura de los datos comprimidos con este algoritmo. El ejemplo es muy sencillo de entender. En esencia un chero .rar (el resultado de comprimir información) es un contenedor que almacena uno o más cheros comprimidos (los concatena). En la estructura del chero .rar se denen diferentes cabeceras para indicar los cheros que existen y qué información comprimida corresponde a cada chero. Por ejemplo, se puede observar las siguientes cabeceras (byte en hexadecimal) para indicar si estamos hablando del contenedor global de la información comprimida o de un chero concreto comprimido: HEAD_TYPE=0x73 (contenedor) HEAD_TYPE=0x74 (archivo) Por ejemplo, el chero 2cheros.rar comprime (almacena) dos cheros: un chero PDF y una copia de un virus muy antiguo (Barrotes 1310). Figura 5.7. Fichero PDF y virus comprimidos con RAR 172 RAR (Rosal ARchive) es un algoritmo de compresión sin pérdidas desarrollado por el ingeniero de software ruso Eugene Roshal que destaca por su tasa de compresión. https://en.wikipedia.org/wiki/ RAR_%28le_format%29. 162 ESTEGANOGRAFÍA © RA-MA Figura 5.8. Virus Barrotes 1310 comprimido con el algoritmo RAR Si se edita hexadecimalmente 173 el chero 2cheros.rar, se puede localizar dónde inicia cada chero comprimido, observando su nombre y los datos comprimidos. En este escenario, ¿qué sucedería si se modica el byte 0x74 que indica dónde leer el chero BARROTES.EXE.txt creando un nuevo chero 2cherosModicado.rar? 173 Puede utilizar, por ejemplo, la herramienta gratuita HxD (editor hexadecimal): http://mh-nexus.de/ en/hxd/. © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 163 Figura 5.9. Estructura de un fichero RAR modificada (HEAD_TYPE=0x74->0x00) para que no se encuentre un fichero comprimido almacenado en el fichero contenedor (2ficherosModificados.rar) Una vez creado el chero 2cherosModicados.rar al descomprimirlo se puede observar solo un único chero (el chero PDF). ¿Dónde está el otro chero (el virus)? La herramienta de descompresión no ha sido capaz de localizarlo al no estar la estructura del chero .rar correctamente codicada. 174 Figura 5.10. Fichero oculto en la estructura del fichero .rar ¿El virus ha desaparecido? ¿Qué pasaría si analizamos los cheros 2cheros. rar y 2cherosModicados.rar con diferentes soluciones antivirus? Precisamente para analizar los siguientes resultados se comprimió en 2cheros.rar un virus muy antiguo (Barrotes 1310) y, en principio, detectable por los motores antivirus. Para comprobar este hecho se utilizó el servicio online VirusTotal,175 observando que 40 de 55 soluciones antivirus detectan la presencia del virus en el chero comprimido. Si analizamos el chero 2cherosModicados. rar ninguna de las soluciones antivirus (al menos sin recurrir a otro tipo de técnicas que se desplegarían cuando el virus fuera a ejecutarse) detectaría su presencia. Este 174 El lector puede comprimir cualquier otro tipo de cheros y modicar las cabeceras de la misma forma para ocultar la información. 175 VirusTotal es un servicio gratuito que analiza archivos y URL sospechosos facilitando la rápida detección de virus, gusanos, troyanos y todo tipo de malware utilizando para ello la mayor parte de los motores antivirus existentes: https://www.virustotal.com/es/about/. 164 ESTEGANOGRAFÍA © RA-MA hecho es bastante signicativo, ya que permitiría, por ejemplo, ocultar malware. Dependiendo del escenario esto puede ser grave. Imagine el lector un escenario como el siguiente: 1. Un usuario malicioso de una organización desea introducir un malware en una organización. 2. La única opción es por correo electrónico. 3. La organización cuenta con diversas medidas de seguridad perimetral basadas en tecnologías antivirus. 4. El usuario malicioso prueba su malware, lo oculta en un chero .rar y lo testea con VirusTotal 176 (ya que es un escenario real de tecnologías de detección). 5. Se envía el malware por correo. Una vez recibido localiza la posición del virus y con un editor cambia el byte de 0x00 a 0x74 pudiendo recuperar el virus. 6. Lo ejecuta. Figura 5.11. Detección con VirusTotal del virus Barrotes 1310 comprimido con RAR 176 El lector debe ser consciente de que al testear un nuevo malware con VirusTotal se deja un rastro que podría ser utilizado para localizarlo más tarde. Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 165 © RA-MA Figura 5.12. Virus Barrotes 1310 no detectado por VirusTotal al modificar la estructura del contenedor RAR 5.3 ESTEGANOGRAFÍA EN CÓDIGO EJECUTABLE. HERRAMIENTA HYDAN Una tendencia interesante en la ocultación de datos reside en la posibilidad de modicar código ejecutable para enmascarar información conservando la funcionalidad lógica del ejecutable. Es decir, se modicarían las instrucciones 177 máquina codicadas en un chero ejecutable y adicionalmente el chero ejecutable funcionaría sin ningún problema. Esta idea tiene varias aplicaciones prácticas. La primera obviamente la ocultación de información y la segunda, quizás más sutil, facilita el marcado digital de un ejecutable, permitiendo introducir una marca a modo de copyright. Uno de los mejores exponentes de este tipo de esteganografía es la herramienta Hydan, desarrollada por Rakan El-Khalil de la Universidad de Columbia. La investigación de Rakan se centró en el estudio de la redundancia del conjunto de instrucciones en la familia de microprocesadores x86, por ejemplo, procesadores Intel. Su estudio, de forma concisa, concluyó que existen diferentes instrucciones que pueden realizar el mismo trabajo en un programa ejecutable, y por tanto, se 178 177 https://es.wikipedia.org/wiki/Instrucción_(informática). 178 http://www.crazyboy.com/hydan/. 166 ESTEGANOGRAFÍA © RA-MA puede sustituir una instrucción por otra equivalente (estas ideas, no tan estudiadas como otros procedimientos, se pueden utilizar para representar bits de datos ocultos). Un ejemplo sencillo de esta equivalencia se puede ver en la instrucción suma. Matemáticamente una instrucción que sume 50 a otro valor puede ser reemplazada por otra instrucción que reste –50 a ese valor. En este simple ejemplo, sustituyendo sumas por restas (y viceversa) se podría ocultar un bit por cada operación de suma o resta, sin cambiar el funcionamiento del programa ni aumentar su tamaño. Esta idea se puede generalizar para ocultar mayores volúmenes de información. En la siguiente gura se puede ver cómo ocultar la información binaria “00, 01 o 11” en un programa ejecutable de tal forma que en el ejecutable esteganograado la operación suma equivalga a un bit oculto a 0 y la operación resta a un bit a 1. Figura 5.13. Esteganografía con Hydan en programa ejecutable Es decir, en este sencillo y reducido ejemplo, si se desea ocultar un bit 0 y la operación que se encuentra en el programa original es una suma se deja como está, y si es una resta se convierte en una suma. Por otro lado, si se desea ocultar un 1 y la operación que se encuentra es una suma se convertiría a su equivalente en resta. El proceso inverso consistiría en leer el ejecutable esteganograado y extraer la información en función de las operaciones de suma y resta que se vayan encontrando. En términos generales, Hydan presenta un ratio de ocultación aproximado de 1/110, es decir, permite almacenar un octeto de información oculta por cada 110 octetos de código máquina (bytes de las instrucciones). Hydan permite ocultar datos en un chero ejecutable para diferentes plataformas (NetBSD y FreeBSD i386 ELF, Linux i386 ELF, Windows XP PE/COFF) sin modicar su tamaño, dando la posibilidad de cifrar dicha información con el algoritmo criptográco Blowsh. Al igual que otras propuestas esteganográcas Hydan, o técnicas similares, pueden ser atacadas desde múltiples frentes. Por ejemplo, técnicas de estegoanálisis © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 167 podrían considerar que la distribución de la información a ocultar en un ejecutable dependerá en última instancia de cómo sea el ejecutable (las instrucciones que contiene) y de la cantidad de información a ocultar. Si la sustitución se realiza únicamente utilizando un par de instrucciones, como el ejemplo anterior de suma/ resta, la detección de la información a ocultar es más que probable. Aunque la herramienta está diseñada para intentar que la distribución de las instrucciones resultantes en el ejecutable esteganograado sea parecida a un ejecutable típico, es cierto que un análisis concienzudo, en función del tamaño ocultado, puede levantar sospechas de la presencia de información enmascarada. En esta dirección se han publicado diferentes procedimientos de detección. 179 En cualquier caso, además de esto, se debe considerar los problemas clásicos ya planteados en otras técnicas esteganográcas al utilizar estegomedios. En el caso de Hydan es recomendable evitar ejecutables comunes y preferiblemente usarlos solo una vez. Por ejemplo, si para la ocultación de información se utilizara un ejecutable típico del sistema operativo Windows 10/8/XP, un analista lo podría comparar con una versión original de este chero y alertar cambios que levanten sospechas. Estos procedimientos se pueden aplicar de diferentes formas, un mecanismo habitual es utilizar ideas de la informática forense utilizando base de datos donde se almacena el resultado de aplicar diversos algoritmos criptográcos de hash a cada chero del sistema operativo, calculando posteriormente los hashes para los cheros a analizar y comparándolos. En un entorno local, controlado, la utilización de herramientas que permitan revisar periódicamente la integridad de los cheros, como el software Tripwire (http://sourceforge.net/projects/tripwire/), facilitará detectar la ocultación de código oculto (modicación de programas) en un sistema y ponerlo en cuarentena. 5.4 ESTEGANOGRAFÍA EN CÓDIGO INTERPRETADO. LENGUAJE HTML Y XML En general, cualquier lenguaje de programación, por su propia estructura, permite la posibilidad de ocultar información. Especialmente signicativos han sido los esfuerzos en el desarrollo de técnicas y herramientas de ocultación aprovechándose de la estructura de los lenguajes de marcado de uso masivo, como HTML o XML. La idea de estos procedimientos esteganográcos consiste en introducir información, por ejemplo en una página web en HTML, de forma que no sea visible por un usuario que visualice esa página web. La información oculta solo podrá recuperarse utilizando una herramienta de recuperación concreta. 179 Steganalysis of Hydan - Emerging Challenges for Security, Privacy and Trust, vol. 297 de la serie IFIP Advances in Information and Communication Technology, págs. 132-142. Investigación: http://goo.gl/0k2gmu. 168 ESTEGANOGRAFÍA © RA-MA Entre las técnicas de ocultación más famosas en HTML (las ideas son extensibles a lenguajes similares como XML 180 o al protocolo SOAP) son: 181 1. Ocultación basada en caracteres invisibles Técnicas triviales de ocultación en páginas web consisten en la utilización de caracteres invisibles para enmascarar información. Por ejemplo, codicar información en un texto del mismo color que el fondo de la página web, codicar la información oculta usando espacios-tabuladores entre etiquetas HTML o al nal de cada línea (recuérdese que al visualizar páginas HTML se suele ignorar si existe más de un espacio entre palabras), etc. Herramientas que permiten hacer esto son: wbStego Secret. 183 182 o Invisible 2. Ocultación mediante codicación en caracteres. Modicación insensitive de etiquetas En multitud de lenguajes de marcado el software (navegador web) que interpreta el código fuente (páginas web) no diferencia etiquetas en mayúscula o minúscula, es decir, se dice que son insensitive. Por ejemplo, HTML 4.0. Esta característica permite ocultar información binaria y, por tanto, cualquier tipo de información. Un ejemplo sencillo de cómo funciona esta técnica se puede ver con una etiqueta concreta, por ejemplo, la etiqueta HTML <br> (salto de línea). Esta etiqueta tiene 2 letras y se interpreta exactamente igual en cualquiera de sus variantes mayúscula-minúscula: <br>, <bR>, <Br> o <BR>. En total existen 4 combinaciones, luego se podría ocultar hasta log 2(4) = 2 bits en esta etiqueta, asignando 00, 01, 10 o 11 en binario a cada una de las combinaciones respectivamente. Aplicando este tipo de técnica para cada etiqueta especíca en toda la página web se ocultaría la información deseada. 180 Ofce XML Steganography Tool. http://www.irongeek.com/i.php?page=security/ms-ofce-stegocode. 181 Sending hidden data through WWW pages: detection and prevention. http://turing.tele.pw.edu. pl/~zkotulsk/ Engng_Trans_58_1_2_75_89.pdf. 182 http://www.aptrio.com/Utilities/Security-Encryption/wbstego-686.html. 183 http://www.invisiblesecrets.com/invsecr4.html. © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 169 Como puede deducir el lector esta técnica de ocultación debería ser fácil de detectar dado que lo habitual es que las etiquetas se encuentren en minúsculas o mayúsculas. En cualquier caso, siempre se podrá utilizar como un procedimiento para incrustar una rma digital en el código (en lugar de información oculta). La información (la rma) será visible (al chequear el código) y su existencia permitirá vericar la autoría de una información. Figura 5.14. Ejemplo de ocultación de información en un mensaje del protocolo SOAP que podría utilizarse para incluir una firma criptográfica que autentique el contenido 170 ESTEGANOGRAFÍA © RA-MA 3. Ocultación basada en el orden de los atributos de una etiqueta En una forma parecida a la técnica anterior, es posible utilizar el orden de los atributos de un lenguaje de marcado para ocultar información, siempre y cuando su orden no inuya en la adecuada visualización de la información que representa, como en el caso de HTML. Un ejemplo de herramienta que implementa esta técnica es Deogol, 184 desarrollada por Stephen Forrest. Deogol es una herramienta escrita en Perl que permite la ocultación de información en cheros HTML, sin cambiar el tamaño del chero ni modicar cualquier dato que no sea una etiqueta. En general, un chero HTML consiste en un conjunto de etiquetas que deberán ser interpretadas, con el formato: <tagname attribute1=value1 attribute2=value2 ....> Así, por ejemplo, las dos instrucciones siguientes se interpretan del mismo modo por un navegador: <IMG SRC=“picture.jpg” ALT= “A picture”> <IMG ALT= “A picture” SRC=“picture.jpg” > Por lo tanto, podríamos codicar con una instrucción un bit 0 y con otra un bit 1, dando la posibilidad de ocultar una información binaria. Partiendo de este principio, se puede generalizar la idea a otro tipo de etiquetas. Por ejemplo: <TD NOWRAP ROWSPAN=1 COLSPAN=4 ALIGN=left VALIGN=top HEIGHT=40 WIDTH=40 id=col1> Esta etiqueta contiene 8 atributos. Si se hacen unas pequeñas cuentas se observa que el número posible de permutaciones de estos atributos es ¡8! = 40320. Es decir, para esta etiqueta en particular, podemos elegir entre 40.320 etiquetas equivalentes, simplemente cambiando el orden de sus atributos. Es decir, podemos ocultar log 2 (¡8!) = 15,3 bits, casi dos octetos de información. En general, la capacidad de ocultación de esta herramienta por etiqueta dependerá del número de atributos (1 o más) y es log 2 (¡n.ºatributos!). Ideas similares se pueden razonar en otros lenguajes de marcado como XML. 185 184 http://hord.ca/projects/deogol/. 185 A Proposal on Information Hiding Methods using XML. http://takizawa.ne.jp/nlp_xml.pdf. © RA-MA Capítulo 5. OCULTACIÓN EN SISTEMAS DE FICHEROS Y FORMATOS 171 Figura 5.15. Ocultación de información en XML modificando la estructura de los mensajes 6 ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN “Ciencia es el arte de crear ilusiones convenientes, que el necio acepta o disputa, pero de cuyo ingenio goza el estudioso, sin cegarse ante el hecho de que tales ilusiones son otros tantos velos para ocultar las profundas tinieblas de lo insondable”. Carl Gustav Jung 6.1 OCULTACIÓN DE MENSAJES EN LENGUAJE NATURAL. PRIVACIDAD Y MARCADO DIGITAL El advenimiento de los sistemas informáticos y especialmente de la interconexión de las redes de telecomunicaciones ha dado a la información textual un protagonismo notorio. Aunque vivimos en un mundo multimedia, es cierto que la información textual está presente en todas partes, especialmente en Internet: periódicos online, páginas web, correos electrónicos, mensajería instantánea, blogs, redes sociales, SMS, voz transcrita automáticamente a texto, etc. Esta circunstancia convierte a los mensajes (textos) en lenguaje natural en excelentes portadores (estegomedios) de información oculta. Los motivos son claros: 1. Un potencial estegoanalista tendrá grandes problemas en procesar la inmensidad de textos disponibles en Internet (por ejemplo) para discriminar cuáles tienen información oculta. Existe por tanto un problema de cantidad. 2. Flexibilidad del estegomedio. La ventaja de ocultar información en el lenguaje natural es que su distribución es muy exible. Por ejemplo, un mensaje con información oculta podría ser enviado en un correo electrónico, publicado en un post o, quizás, narrado en una conversación telefónica. 174 ESTEGANOGRAFÍA © RA-MA Por estos motivos, y dado el enorme potencial de este estegomedio, en este capítulo se va a profundizar en la posibilidad de utilizar textos en lenguaje natural, perfectamente legibles por un humano, para enmascarar información. A continuación, se describirá la evolución de dichas técnicas que nos permitirá diferenciar entre procedimientos algo más clásicos (denidos bajo el paraguas de la esteganografía textual) y procedimientos esteganográcos más robustos y actuales (esteganografía lingüística). 6.2 ESTEGANOGRAFÍA TEXTUAL EN LA ANTIGÜEDAD. CÓDIGOS ABIERTOS Y SEMAGRAMAS En 1997, Friedrich L. Bauer (Decrypted Secrets. Methods and Maxims of Cryptology)186 realizó una clasicación de los procedimientos de esteganografía textual que puede resumir muy bien las tendencias en procedimientos de ocultación en textos antes de la última década del siglo XX. Según esta, la esteganografía textual puede explicarse en dos grandes ramas: códigos abiertos y semagramas (open codes y semagrams, en terminología inglesa). 6.2.1 Códigos abiertos Los códigos abiertos (en inglés, open codes) son textos de apariencia inocente, que ocultan información recuperable utilizando ciertas letras, palabras, frases del texto o comunicación. Por ejemplo, ciertas letras situadas en determinadas posiciones de una carta, de la letra de una canción, etc. Procedimientos basados en estas ideas son las pistas o señales, cifradores nulos, código en jerga y las rejillas. 1. Señales o pistas (en inglés, cues) El término cues hace referencia a la transmisión de ciertas palabras, que aparecen en un texto o medio genérico de comunicación, que se utilizan como señal para avisar al receptor de que realice una serie de acciones. Un uso interesante se puede observar en situaciones de guerra para retransmitir instrucciones a los soldados, agentes o grupos de resistencia ubicados en un país enemigo. En la actualidad, un ejemplo muy simple de esta idea consistiría, por ejemplo, en que un agente escuchara un programa de radio de emisión nocturna que permite la participación del público, por ejemplo, por teléfono. En función de si se usa una serie de 186 https://www.iacr.org/books/2009_sp_Bauer_DecryptedSecrets.pdf. © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 175 palabras o no, se siguen una serie de instrucciones u otras. Este método de comunicación es muy exible y efectivo, sin embargo, requiere de cierta preparación y comunicación previa. No es idóneo para transmitir grandes cantidades de información. Figura 6.1. Clasificación de mecanismos de esteganografía textual según Friedrich L. Bauer 2. Cifradores nulos (en inglés, null ciphers) En general, el término null ciphers hace referencia a aquellos procedimientos esteganográcos que permiten ocultar información en un texto tapadera cuya recuperación se obtiene al seleccionar ciertas letras o palabras del mismo. La distribución de la información ocultada en el mensaje inofensivo, que se usa como tapadera, depende del algoritmo desarrollado. Por ejemplo, ocultar información en sentido vertical u horizontal del mismo, cierto número de letras por línea, etc. David Kahn en su excepcional obra The CodeBreakers 187 relata algunos ejemplos de su uso en la historia. Por ejemplo, un mensaje enviado por los alemanes en la I Guerra Mundial, en forma de nota de prensa, decía: PRESIDENT’S EMBARGO RULING SHOULD HAVE INMEDIATE NOTICE. GRAVE SITUATION AFFECTING INTERNATIONAL LAW. STATEMENT FORESHADOWS RUIN OF MANY NEUTRALS. YELLOW JOURNALS UNIFYING NATIONAL EXCITEMENT INMENSELY. Las letras iniciales reejan el mensaje: Pershing sails from N.Y. June I. 187 https://en.wikipedia.org/wiki/The_Codebreakers. 176 ESTEGANOGRAFÍA © RA-MA Durante la II Guerra Mundial este tipo de procedimientos encontraron su uso para comunicar información enmascarada entre soldados norteamericanos y sus familiares. Tal fue el extremo que la Armada norteamericana, en la década de los 40, impuso penas severas a los marineros que intentaban comunicarse de forma encubierta con este tipo de código familiar que, en general, era fácilmente detectable, y podía poner en peligro sus vidas y las de los mensajeros, al revelar en esas comunicaciones información táctica (su posición) a sus familiares. Avanzando en estas ideas, es interesante destacar uno de los procedimientos más usados en la historia que utiliza estos principios. Son los denominados acrósticos. Un acróstico, del griego akros (extremo) y stikhos (verso), en sentido estricto, es un poema cuyas letras iniciales, medias o nales de cada verso, leídas en sentido vertical, forman un vocablo o expresión. Por simplicación, se suele llamar también acróstico a la expresión formada con dichas letras, siendo en la actualidad de aplicación a cualquier texto de cualquier naturaleza, no exclusivamente a poemas. Este recurso fue muy utilizado por los poetas italianos del Renacimiento. El siguiente poema, de autor desconocido, es un ejemplo de un acróstico doble en el que las letras iniciales y nales de los versos construyen la palabra Sonia. SONIA Supiste una vez más ocultar tu rostro, negar al mundo ese don impreciso pero dulce, así, así amante: tu boca. Uno de los acrósticos más famosos de la lengua española está constituido por los versos que conforman el prólogo de la obra La Celestina del autor Fernando de Rojas (1470-1541). La selección de la primera letra de cada línea del prólogo permite observar la siguiente oración en castellano: El bachiller Fernando de Rojas acabó la comedia de Calisto y Melibea y fue nacido en la Puebla de Montalbán. Los nes y uso de este tipo de técnicas son tan variados como personas hay interesadas en utilizarlas. Un caso destacable por su notoriedad fue el del Yak-42. En mayo de 2003, tuvo lugar un desgraciado accidente en el cual un avión Yakolev 42 se estrelló en Turquía, cerca del aeropuerto de Trebisonda, cuando transportaba de vuelta a casa a 62 militares españoles tras cumplir cuatro meses de misión en Afganistán. Todos perdieron la vida. La versión inicial del aparente accidente por error humano se fue modicando tras las denuncias de los familiares acerca del mal estado de © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 177 esta y otras aeronaves utilizadas por el Ejército español. Meses después de este lamentable suceso, la cadena radiofónica SER (Sociedad Española de Radiodifusión perteneciente al grupo de comunicación PRISA) publicó que el entonces ministro de Defensa, Federico Trillo, había responsabilizado del suceso, de forma encubierta, al Estado Mayor de la Defensa. Para ello, Trillo utilizó el editorial de la Revista Española de Defensa para ocultar esta información a través de un acróstico. Posiblemente, dada la sencillez del procedimiento, con la intención de que lo detectaran. Figura 6.2. Acróstico sobre el Yak-42 en la Revista Española de Defensa 3. Código en jerga (en inglés, jargon code) Un código en jerga consiste en sustituir símbolos o expresiones (por ejemplo, palabras), por otras no tan comunes (o inventadas) para un uso concreto. En sentido práctico, consiste en la creación y utilización de un lenguaje secreto de comunicación, normalmente, sencillo y versátil, conocido por un grupo de personas y desconocido por el resto. Conceptualmente se encuentra en un punto intermedio entre criptografía y esteganografía. Un ejemplo famoso de código en jerga fue el Tora! Tora! Tora! usado por la Armada japonesa para comunicar el ataque a Pearl Harbor en 1941. Tal fue el miedo de la aplicación de estas técnicas tan difíciles de detectar que el servicio postal de los Estados Unidos censuró después del ataque de Pearl Harbor diferentes cartas de correo, por miedo a que ocultaran información peligrosa, por ejemplo, juegos de ajedrez vía correo, dibujos de niños, crucigramas, etc. Incluso los sellos de las cartas eran quitados y sustituidos por otros de igual valor pero diferente forma. 178 ESTEGANOGRAFÍA © RA-MA En la actualidad esta modalidad ha tenido una variante pictórica muy importante. Un ejemplo reciente de código en jerga en el mundo informático es el denominado warchalking. Figura 6.3. Algunos de los símbolos del lenguaje warchalking Se conoce como warchalking al lenguaje de símbolos, que escritos con tiza en paredes y suelo de las calles, informa a los posibles interesados de la existencia de una red inalámbrica con cobertura en ese punto. Está inspirado en otros procedimientos de marcado más antiguos, como el hobochalking, sistema de marcado que utilizan los vagabundos para señalar casas que son amables, donde dan comida, etc. La relativa sencillez de los símbolos y su característica de no perdurabilidad durante grandes períodos de tiempo hacen que este código sea muy dinámico y se adapte a las características cambiantes de las redes de las cuales informa. Este es uno de los factores que han hecho posible su proliferación por las grandes ciudades. 4. Rejillas (en inglés, grilles) Estos procedimientos esteganográcos 188 consisten en la selección de ciertas letras o palabras de un documento utilizando para ello un conocimiento adicional que a modo de plantilla facilita la selección de dicha información. En la terminología habitual esta plantilla se conoce como grille o, en español, rejilla, en cuanto deja ver solo lo que interesa. El mejor procedimiento para entender estas ideas lo encontramos en el Renacimiento y es conocido como la reja de Cardano, Cardan grille en terminología inglesa, en honor a su creador el célebre renacentista Girolamo Cardano (1501-1576) que reinventó en 1550 un procedimiento cuyos orígenes se encuentran en la cultura milenaria china. El sistema Cardan grille en sus orígenes funciona de la siguiente manera: cada destinatario posee un pedazo de papel o cartón con agujeros cortados 188 Conceptualmente la diferencia sutil respecto de los null ciphers consiste en que estos últimos funcionan mediante un conjunto de reglas preestablecidas mientras que en el caso de las rejillas ese patrón de conducta lo establece la propia rejilla. © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 179 en él, la reja. Cuando esta plantilla se pone encima de un mensaje inocente, los agujeros dejan ver letras especícas del mensaje, revelando el mensaje oculto. Este tipo de técnicas son muy difíciles de detectar en cuanto la plantilla que actúa a modo de ltro, a efectos prácticos como si habláramos de la clave del sistema, se mantenga en secreto. El mayor inconveniente de este procedimiento es que tanto emisor como receptor deben distribuir de forma segura la plantilla y la información oculta de un texto inofensivo debe ajustarse a esa plantilla. En la práctica, podría resultar complejo crear mensajes de una forma rápida reutilizando una misma plantilla; si esto no fuera posible el emisor tendría que transmitir de forma segura, en el caso extremo, una plantilla por mensaje oculto que quisiera que el receptor recibiera, lo cual unido a la baja capacidad de ocultación de información, al ser un procedimiento manual que requiere un texto grande para no facilitar la detección, hace de este procedimiento poco práctico hoy en día. Basándose en los mismos principios, se han publicado diferentes variantes en función de cómo se utilice la plantilla. Así, por ejemplo, ir rotando 90 grados la plantilla cada vez que se obtiene una letra del mensaje oculto (turning grille), etc. A lo largo de la historia se han documentado múltiples usos de estas variantes e incluso han tenido su repercusión en la literatura, léase por ejemplo la obra Mathias Sandorf de Julio Verne (1828-1905). Figura 6.4. Spy letters of American Revolution. Carta de Henry Clinton a John Burgoyne (1777). http://clements.umich.edu/exhibits/online/spies/gallery.html 180 ESTEGANOGRAFÍA © RA-MA Otro procedimiento ingenioso fue utilizar un código especial sobre periódicos, en terminología inglesa se conoce como newspaper code. Este método desarrollado en la época victoriana, época de gran expansión económica y social de Gran Bretaña entre 1837 y 1901, permitía a las clases pobres comunicarse libremente. Para ello hacían pequeños agujeros encima de ciertas letras del periódico, que una vez unidas formaban el mensaje encubierto. Aunque es un procedimiento más práctico que el anterior, adolece de mayor visibilidad. 6.2.2 Semagramas Los semagramas (en inglés, semagrams) consisten en la utilización de la estructura, formato y conguración de símbolos y objetos para establecer un medio de comunicación para ocultar una información. En general, reriéndose a textos, consisten en pequeñas variaciones de la estructura normal de un documento, que aunque visibles, no por ello son fáciles de detectar. Un ejemplo clásico es ocultar información utilizando más o menos espacios entre las palabras de un documento o modicar grácamente los caracteres del mismo. Su utilización no se limita a textos, puede verse en fotografías, dibujos, música, etc. Por ejemplo, un dibujo con un determinado número de manzanas en un árbol puede contener una información secreta. Como puede aventurar el lector la imaginación es el único límite para crear sistemas de este tipo. En general, se pueden distinguir dos tipos: semagramas visuales y semagramas textuales (visual semagrams y text semagrams, en terminología inglesa). 1. Semagramas visuales Los semagramas visuales (en inglés, visual semagrams) consisten en utilizar todo tipo de símbolos y señales para ocultar un mensaje. Habitualmente objetos físicos, como por ejemplo, objetos de uso cotidiano, ya que por ser comunes no se les presta excesiva atención. Por ejemplo, ocultar información utilizando un garabato de una hoja, la distribución de ciertos objetos en un escritorio, las manecillas paradas de un reloj (que podría indicar la hora de un hecho), etc. Figura 6.5. Mensaje secreto solucionado por Sherlock Holmes (AM HERE ABLE SLANEY) en la obra The Adventure of the Dancing Men de Arthur Conan Doyle © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 181 Hoy en día estos procedimientos se pueden extrapolar al mundo digital de manera sencilla, por ejemplo utilizando juegos en red multijugador. Múltiples noticias 189 y desmentidos se han publicado de cómo usar juegos como Call of Duty (por ejemplo, utilizando una serie de disparos en una pared), Mario Bros o en general videoconsolas para enmascarar información y posible uso terrorista. 190,191 Figura 6.6. Diseñando un nivel del videojuego Super Mario Bros con un “mensaje” escrito con monedas y bloques 2. Semagramas textuales Los semagramas textuales (en inglés, text semagrams) se aprovechan de la estructura, formato y conguración de un documento para enmascarar una información. La estructura natural de un texto puede facilitar la utilización de ciertas técnicas esteganográcas: inserción de espacios, uso de caracteres no visibles, tipografía, etc. El uso del formato particular de un documento y de sus atributos posibles permiten la implementación de procedimientos de enmascarado de información. En la actualidad, una evolución de estos principios consistiría en utilizar los atributos de un texto digital como el color del texto, el atributo de negrita, cursiva, subrayado, la fuente del tipo de letra elegido, el tamaño del carácter, etc. Todos estos atributos permiten la creación de códigos que permiten la ocultación de 189 http://www.xataka.com/seguridad/juegos-de-guerra-o-como-los-terroristas-pueden-estar-usandola-consola-ps4-para-planear-atentados. 190 http://www.politico.eu/article/why-terrorists-love-playstation-4/. 191 http://www.theverge.com/2015/11/16/9745216/playstation-4-paris-attacks-reporting-error. 182 ESTEGANOGRAFÍA © RA-MA información sensible, clásicamente, codicaciones binarias. Por ejemplo, el texto: “este mensaje almacena un octeto de información 01010101b” almacena la información binaria 01010101. Para ello, para las palabras impares se utiliza un tipo de letra Courier y para las palabras pares Courier New. En este ejemplo, se aprovecha la similitud de ambos tipos de letras para establecer una codicación binaria, equivaliendo una palabra en Courier a un bit 0 y una palabra en Courier New a un bit 1, por ejemplo. Como puede observar el lector aunque es una técnica trivial puede ser lo sucientemente sutil para enmascarar información en documentos y pasar desapercibida. Otro ejemplo notorio de este tipo de técnicas consiste en enmascarar información secreta, crear sistemas de codicación binaria, mediante modicaciones horizontales y verticales. Los procedimientos esteganográcos más documentados sobre modicaciones horizontales están relacionados con el uso de espacios en blanco en un documento. Las técnicas de ocultación basadas en esta idea son: la modicación del espaciado entre las palabras de una frase, codicar información añadiendo uno o más espacios al nal de una línea, utilizar los espacios después de los signos de puntuación (comas, puntos...), etc. La introducción de más o menos espacios depende de si estos son de un tamaño prejado o si dicho tamaño puede modicarse. Habitualmente, el tamaño de los “espacios” en un documento depende de la herramienta de edición utilizada para la creación del texto, y por tanto, del grado de modicación que permita la herramienta de edición. Por ejemplo, si se utiliza una herramienta de edición de textos, aunque sea un procesador de texto algo primitivo, en el cual los espacios tienen un tamaño jo, una técnica muy sencilla de codicación puede ser añadir al nal de cada línea un espacio o dos espacios. Esta sencilla técnica permitiría, por ejemplo, establecer un código binario (un espacio equivale a un bit a 0, dos espacios a un bit a 1), y la ocultación de una información genérica. Este método tan sencillo no es una técnica recomendable para ocultar información sensible, además esta información se pierde al imprimir el texto, y dependiendo de qué procesador trabaje con el documento es posible que se eliminen los espacios extra. Una técnica algo diferente consiste en utilizar más de un espacio entre las palabras. Figura 6.7. Técnica esteganográfica basada en espaciado © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 183 Técnicas de este estilo se han utilizado a lo largo de la historia. Un caso interesante sucedió en la década de los 80. Margaret Thatcher (primera ministra británica) ordenó el uso de un método de marcado invisible de documentos, después de que varios documentos privados fueran revelados a la prensa. Para ello, ordenó que se modicaran los procesadores de textos que usaban los empleados del Gobierno para que codicaran su identidad utilizando los espacios entre las palabras del documento. Este procedimiento permitió rápidamente encontrar a los empleados que realizaban fugas de información. Adicionalmente, estos procedimientos de ocultación se pueden realizar mediante modicaciones verticales, es decir, jugar con la distancia vertical, ja o variable, entre elementos de un texto para codicar una información binaria. Independientemente del procedimiento elegido, el tamaño de los “espacios” en un documento, si no se realiza de forma manual, depende de la herramienta de edición utilizada para la creación del texto. Una buena herramienta para este propósito es el sistema de tipografía desarrollado por Donald E. Knuth, denominado TEX.192 TEX, y LaTeX, permiten la creación de documentos profesionales de gran calidad, permitiendo un control muy preciso sobre todos los aspectos del texto, por ejemplo, su estructura, tamaño de las letras, etc. En este sentido, permite un control muy preciso sobre el tamaño del espaciado entre palabras o el tamaño de los espacios que siguen a ciertos signos de puntuación. Aunque este no fue el objetivo para el cual se creó, ni principalmente el uso que se le da, es cierto que es una excelente herramienta que facilita la ocultación de información en textos (en los documentos generados mediante “compilación”). Por ejemplo, permite añadir espacios de tamaño tan reducido entre palabras o entre los caracteres de una palabra que un lector no será capaz de apreciarlos. Todas estas técnicas documentadas sirven de referencia para profundizar en procedimientos más robustos y modernos en el siglo XXI. 6.3 ESTEGANOGRAFÍA LINGÜÍSTICA. DEFINICIÓN DE CONCEPTOS En la última década el auge del procesamiento del lenguaje natural, lo que denominaremos de aquí en adelante lingüística computacional, viene motivado por su enorme utilidad en tecnologías tan dispares como son los sistemas de traducción automática, los algoritmos de reconocimiento del habla, algoritmos de análisis ortográcos, sistemas de data mining, algoritmos para el resumen automático de 192 Hoy en día, paquetes de macros para TEX como LaTeX se utilizan con gran éxito. https://www. latex-project.org/. 184 ESTEGANOGRAFÍA © RA-MA textos, compresión de datos, recopilación de inteligencia, 193 etc. Además, a todas estas aplicaciones, desde hace bastante tiempo, se les une su utilidad en la protección y anonimato de comunicaciones. Por ejemplo, en procedimientos criptográcos clásicos para estudiar la frecuencia de aparición de digramas, trigramas, etc., permitía hacer más seguros (o atacar) sistemas de cifra utilizados en comunicaciones diplomáticas y militares, como vimos en capítulos anteriores. Hoy en día, nuevas propuestas permiten vislumbrar aplicaciones más claras del procesamiento del lenguaje natural y la protección de comunicaciones digitales. Un artículo que permite acotar esta cuestión fue publicado por Atallah et al.194 en el año 2000 donde se resumía la utilidad de estos avances en tareas de inteligencia, recopilación y síntesis de información, y más interesante para nosotros, en aplicaciones concretas de uso como son: los sistemas de memorización de claves aleatorias o los sistemas de marcado digital de textos. Es precisamente en el marcado digital de textos donde la aplicación de la lingüística computacional, especialmente en estos últimos 15 años, ha permitido unos resultados notables y ha facilitado la posibilidad de ocultar información en lenguaje natural de manera sosticada utilizando la ciencia de la esteganografía lingüística. Ciencia que aglutina los conocimientos previos en esteganografía textual destacados en párrafos anteriores. ¿Qué es la esteganografía lingüística? A falta de una denición más completa, se puede denir la esteganografía lingüística como aquel conjunto de algoritmos robustos que permiten ocultar una información, típicamente binaria, utilizando como tapadera información en lenguaje natural. En la actualidad, la esteganografía lingüística intenta mezclar principios de la ciencia de la esteganografía y la lingüística computacional (análisis automático del contenido textual, generación textual, análisis morfosintáctico, lexicografía computacional, descripciones ontológicas, etc.) para crear procedimientos públicos no triviales según los principios de Kerckhoffs. 195 La seguridad de estos procedimientos 193 Una muestra de ello es el Open Source Center, creado en 2005. El OSC es un organismo de la inteligencia estadounidense encargado de analizar las comunicaciones e información en la red, especialmente de los medios sociales, blogs, wikis, foros y redes sociales de todo el mundo. https:// en.wikipedia.org/wiki/Open_Source_Center. 194 ATALLAH, M., et al.; Natural Language Processing for Information Assurance and Security: An Overview and Implementations, Proceedings 9th ACM/SIGSAC New Security Paradigms Workshop, págs. 51-65, septiembre, 2000. 195 https://es.wikipedia.org/wiki/Principios_de_Kerckhoffs. © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 185 dependerá exclusivamente de una información adicional conocida exclusivamente por el emisor y el receptor a modo de clave. Al igual que sucede con otro tipo de cubierta, en función de la cantidad de información a ocultar, el estegotexto generado introducirá más o menos pistas que podrían facilitar la vida a un estegoanalista. En la actualidad, la ciencia de la esteganografía lingüística intenta solventar las dos problemáticas siguientes: 1. Anonimato y privacidad. La posibilidad de ocultar información en textos en lenguaje natural permitiría intercambiar información dicultando su detección por parte de personas y sistemas de monitorización automáticos. A la dicultad de invertir los mecanismos de protección se le une la complejidad de procesar el volumen de información textual intercambiado en las redes de telecomunicación, haciendo inviable la recopilación y el análisis por un potencial estegoanalista, mejorando, o eso se espera, la privacidad e incluso el anonimato de dichas comunicaciones. Por tanto, tiene interés en términos de libertad de expresión. 2. Marcado digital de textos. En la actualidad, la integridad y la autenticidad de una información pueden ser garantizadas mediante la utilización de la denominada rma digital. En general, se trata de procedimientos que generan unos datos extras basados en la información que se quiere proteger y que se adjuntan a esa misma información. Estos procedimientos tienen el inconveniente de que la información generada no está autocontenida en la información que se quiere proteger y por tanto puede ser separada, con los problemas en términos de vericación que esto puede suponer. La posibilidad de ocultar información en un texto en lenguaje natural, si esta modicación no supusiera “alteraciones notorias” del texto utilizado como portador, facilitaría la inclusión autocontenida de rmas que podrían tener utilidad en autenticidad e integridad de escritos en una lengua concreta. Una rma autocontenida permite garantizar que la rma de un autor presente en un artículo corresponde precisamente al texto que escribió y se puede, además, demostrar que él es el autor de dicho documento (authorship proof) así como “realizar un seguimiento” del mismo, por ejemplo, para medir la difusión de una obra. Existen dos grandes líneas de investigación para proporcionar soluciones a las dos problemáticas indicadas: la generación automática de estegotextos y la modicación de textos existentes. Vinculadas a estas dos grandes líneas de trabajo es donde se circunscriben la mayoría de herramientas de esteganografía, publicadas en Internet, que trabajan con información textual. 186 ESTEGANOGRAFÍA © RA-MA 6.4 GENERACIÓN AUTOMÁTICA DE ESTEGOTEXTOS BASADA EN ESTADÍSTICA E IMITACIÓN GRAMATICAL La generación automática de estegotextos es una rama dentro de la ciencia de la esteganografía lingüística cuyo objetivo consiste en crear textos en lenguaje natural en función de la información que se desee ocultar. En la antigüedad, y actualmente en otra rama importante de investigación en esteganografía lingüística, la modicación de textos existentes fue la principal tendencia para ocultar información en textos en lenguaje natural. Esta tendencia, al margen de otras cuestiones lingüísticas y estadísticas, tiene la problemática de tener que mantener en secreto (o destruir) el texto original/portador en el cual se realizarán las modicaciones y mediante el cual se creará el estegotexto resultante con la información enmascarada. Debe minimizarse al máximo la posibilidad de que un potencial estegoanalista pudiera realizar comparaciones entre el texto original y el estegotexto creado que le simplicará la tarea de detección. Por estos motivos, la generación automática de estegotextos muestra interés. En primer lugar, el estegotexto generado, que depende de la información a ocultar, puede ser mejor modelado realizando todo tipo de consideraciones lingüísticas y estadísticas en el proceso automático de creación. Por otro lado, esta tendencia facilita la creación de un estegotexto único por cada comunicación enmascarada a realizar, lo que complica el trabajo de un potencial estegoanalista. Los algoritmos de generación automática de textos deben considerar la calidad léxica, sintáctica y semántica, así como la cohesión y coherencia del estegotexto resultante. Para aproximarse a este problema, desde nales del siglo XX, dos grandes líneas de generación, que se pueden entremezclar, se han propuesto: unas basadas en imitación gramatical y otras basadas en imitación estadística de un texto “típico” en una lengua concreta. 1. Ocultando información mediante imitación estadística de textos de entrenamiento La generación de textos en lenguaje natural podría partir de la idea de que las palabras y las expresiones presentes en un lenguaje siguen un determinado orden. Un modelado estadístico del lenguaje natural permitiría cuanticar diferentes aspectos sobre textos en una lengua concreta que tendría utilidad para la creación de textos con validez lingüística que no solo no levanten sospechas a un software automatizado (máquina) sino tampoco a un lector humano. En general, puede ser muy complejo realizar un modelado estadístico preciso sobre un lenguaje. Por ello, en determinados entornos, como pueda ser la esteganografía, modelados estadísticos más sencillos son, en principio, prácticos para Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 187 © RA-MA propuestas reales. Esta idea no es ni mucho menos nueva, Peter Wayner en 1992196 ya propuso diferentes herramientas aplicadas a la lengua inglesa. En cualquier caso, la mejor manera de comprender cómo funciona este tipo de procedimientos y sus limitaciones es jugando con una herramienta real, en nuestro caso en lengua castellana. Herramienta Stelin La herramienta con la que vamos a realizar las pruebas, Stelin, puede descargarse gratuitamente de Internet (http://stelin.sourceforge.net). La desarrollé en 2009 precisamente para probar la utilidad de la generación automática de estegotextos basada en imitación estadística en lengua castellana (el lector rápidamente observará como los mismos principios podrían utilizarse con otras lenguas). ¿Por qué esta herramienta y no otra? La respuesta es clara, no se conocen otras herramientas que hayan estudiado esta posibilidad en nuestra lengua. Figura 6.8. Algoritmo esteganográfico utilizado en la herramienta Stelin Stelin utiliza un algoritmo de generación automática de estegotextos basado en un modelo estadístico N-gram. 197 Esta herramienta utiliza uno o más textos de entrenamiento para simular (aprender) el comportamiento de un lenguaje (los textos de entrenamiento son compartidos entre emisor y receptor). Dados estos textos se anotan las ocurrencias de las palabras presentes en los mismos y se contabiliza la repetición de cada una, es decir, se anota qué palabras van detrás 196 WAYNER, P.; “Mimic functions”, Cryptologia XVI, págs. 193-214, julio, 1992. 197 Un modelo estadístico N-gram hace referencia a aquel modelo que permite contabilizar las ocurrencias y la posición de posibles elementos en una secuencia de n elementos consecutivos, en nuestro caso palabras de un texto. 188 ESTEGANOGRAFÍA © RA-MA de qué otra y con qué probabilidad. Imitando la estadística de esos textos de entrenamiento es probable que un estegotexto resultante, que está basado en textos de entrenamiento con validez léxica y sintáctica, tenga a su vez validez léxica y sintáctica. Los textos resultantes deberían tener la suciente calidad lingüística para no ser detectados por un software automatizado y en la medida de lo posible tampoco por lectores humanos. El proceso de ocultación es sencillo. Se anota después de cada palabra (a lo largo del texto) qué palabras le siguen y así sucesivamente hasta un orden de complejidad n (este es un parámetro de la herramienta). Por ejemplo, un orden n = 8 signica que analizaremos la estadística de hasta 8 palabras consecutivas. Conocido esto, a cada palabra disponible en cada nivel (orden) se le asigna una codicación binaria. A continuación, el mensaje a ocultar se codica en binario, se elige una palabra de la tabla raíz y se va enlazando palabra tras palabra hasta alcanzar el orden n. Las palabras que se irán eligiendo serán aquellas cuya codicación binaria coincida con los bits a ocultar de manera consecutiva. Una vez llegados a la última palabra en el orden n, se enlazará con la tabla raíz para continuar con el proceso hasta ocultar toda la información deseada. planeta por donde cruza errante la sombra de Caín criminal. ¡Gloria a Caín! Hoy sólo quedan lágrimas para llorar. No hay camino, sino estelas en la mar. ¡Fugitiva ilusión de ojos guerreros, que el polvo barre y la ceniza avienta. ¿Qué has hecho? La muerte no hay camino, se hace camino al andar. El que espera desespera, dice la mano viril que la blandiera, no por los salones de sal-si-puedes suena el rebato de la tarde en la arboleda! Mientras el corazón pesado […] Figura 6.9. Estegotexto que oculta 126 bits. Texto fuente de entrenamiento versión digital de Poesías Completas de Antonio Machado. 0,7636 bits/palabra estegotexto. Orden de complejidad n = 9 La calidad del texto de entrenamiento, como lo es también el orden de complejidad, es vital en la generación de los estegotextos. Entendemos por calidad no solo el tamaño del mismo, sino también su validez léxica, sintáctica, su género literario, su estilo, etc. Ante este condicionante una pregunta interesante a resolver sería qué texto de entrenamiento, si es que hay alguna preferencia, es más adecuado por su uso esteganográco. En principio, diferentes tipos de textos podrían ser considerados como fuente para ocultar información: poemas, novelas, artículos periodísticos, código de programación, etc. Desde un punto de vista lingüístico, y al trabajar con secuencias de n palabras consecutivas, sería interesante ltrar zonas del texto que pudieran afectar claramente a la coherencia del estegotexto resultante © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 189 como resultado de concatenar diversas secuencias de palabras. Por ejemplo, descartar índices, títulos, numeraciones (a), b), c), I, II, III), fechas, referencias, etc. En la práctica, los textos de entrenamiento recomendados, según las investigaciones actuales, serían libros y novelas (narrativa) con decenas de miles de palabras. También una obra de poesía podría ser una buena candidata como fuente de entrenamiento ya que, en general, la coherencia entre las frases en este tipo de textos no es tan estricta como en otros tipos de textos de entrenamiento. De hecho, es frecuente en este tipo de textos que frases adyacentes hablen de cosas muy diferentes. En cualquier caso la herramienta Stelin presenta dos ventajas adicionales para conseguir estegotextos de mejor calidad lingüística. Por un lado, incorpora una opción mode satanic para generar todos los estegotextos posibles, es decir, genera cada uno de los estegotextos para cada una de las palabras de la tabla raíz. Esta opción facilitará al emisor elegir el estegotexto más adecuado, según sus criterios, si no desea que la herramienta lo realice automáticamente en función de la clave elegida por el emisor. Por ejemplo, algunos de los posibles estegotextos 198 para la ocultación199 de una pequeña información de 72 bits, que contiene la dirección IP 81.10.49.51, son: -_STEGOTEXT_-5 Y, a propósito de matrimonio, pero que la mitad de sus tierras se creían en la obligación, porque soy el padre.» En medio del clamor general, a quien homenajeamos y a sus hijosdijo con su voz fuerte, grave, lleno de títulos: el puente de Enns, sino con los caballos. Era una noche. Momentos después, la emoción, que le ahogaba, al ver una enorme masa fuera de la puerta abierta. -_STEGOTEXT_-13 Este corpulento muchacho era hijo natural de la escolta, al corpulento ocial de servicio -, y el Príncipe -. Ve, Macha! Y, quitándose el abrigo, que, según la moda, como aún no se habían visto en Moscú, y unas cuantas palabras agradables antes de retirarse sin perder bagajes. Había habido un duro encuentro, se veían ante ellos. - Sí,, sí. Tikhon no oía el más que un hombre civil y rico les dejará alguna cosa. «Vaya por Dios», pensó Pedro. No te enardezcas. No desees nada. Haz por ignorar el príncipe Andrés. 198 En este ejemplo utilizamos como fuente de entrenamiento la versión digital de Guerra y Paz de León Tolstoi, cuyo tamaño en texto plano es 396 KB con 69.344 palabras, con un orden n = 7, generando 9.291 estegotextos diferentes. 199 Stelin representa cada carácter a ocultar con 6 bits y después 6 bits de código de n. 190 ESTEGANOGRAFÍA © RA-MA -_STEGOTEXT_-153 nueva ciencia - la estrategia -, pero el príncipe Bagration no le miró con gozo, inclinando la mano, cosa que todavía no le ha llamado ni una sola en el campo. -No olvides que estarás con mi padre y la hija de la visitante, con la túnica de las tres días de armisticio. Bagration contestó. - ¿No quieres...? - preguntó. - A la habitación de -_STEGOTEXT_-160 había hecho un esfuerzo extraordinario para decir que no respondería de sí misma frase -. No se pueden vivir sin guerras. ¿Por la noche, cuando, después de la ausencia, a las piernas. Sus mejillas se contraían violentamente, y cuando se encogió de hombros y abrió los brazos separados del cuerpo, presentaba su marido con el mismo tono de la Princesa, como si ésta se fue a dormir a casa del conde Bezukhov. III En el momento -_STEGOTEXT_-5229 Viva Su Excelencia! Y de nuevo a reír, con risa sonora que incluso todos, hasta la mano, como a una extraña para los rusos. Los cosacos conducían a pie. Uno de la Princesa y suspiró. - ¡Dios sea loado! -, y la hija de la habitación con paso rápido. Mademoiselle Bourienne miraba también a la Princesa no entendía un problema de aritmética. Se alejaba de ella y, en general, las mujeres, la conversación era regular, no te Por otro lado, Stelin aborda el mayor problema en la ocultación de información mediante esteganografía lingüística, ya sea en textos existentes o generados, que consiste en conseguir que el estegotexto resultante presente cohesión y coherencia global, es decir, que no sea una secuencia de frases “más o menos ordenadas”, y por tanto, tenga “sentido” para un ser humano. Para minimizar este problema, se introduce de manera original el concepto de maquillaje manual. 200 La herramienta permite al emisor modicar el estegotexto resultante con cierta libertad, introduciendo nuevas palabras, construyendo un estegotexto completamente humano, con la ventaja adicional de que el receptor no necesita saber qué palabras ha introducido el emisor para poder recuperar la información enmascarada. Aunque es un proceso algo tedioso, la calidad del estegotexto creado y la invisibilidad de los datos ocultos son signicativas. 200 En la herramienta StegoSense, que desarrollé posteriormente, se lleva este principio al extremo generando estegotextos “difícilmente detectables”. http://www.securitybydefault.com/2010/11/ herramienta-stegosense-automatizando-la.html. © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 191 Por ejemplo, si se ocultan 54 bits (una coordenada GPS: 42.08.36 à 42º 08’ 36’’) utilizando como fuente de entrenamiento una versión digital de Cien años de soledad y un orden 3, se obtiene un estegotexto como el siguiente (hay 17.070 posibles): método de exterminio, desde entonces hasta la hora de que se le dio la muerte del mundo. El coronel Aureliano Buendía Figura 6.10. Ejemplo de estegotexto generado automáticamente en lengua española. [stegotext-540]. Ocultación 54 bits. Texto fuente versión digital de Cien años de soledad de Gabriel García Márquez. 2,5714 bits/palabra. Tamaño fuente: 809 KB texto plano, 137.649 palabras. Orden de complejidad 3. Expansión 1:14 Este estegotexto podría ser corregido manualmente y generar un estegotexto con apariencia próxima a uno generado por un ser humano. método de exterminio de esclavos, desde entonces hasta la hora de su sublevación. Muerte que se le dio sin piedad, la muerte del mundo menos afortunado. El coronel Aureliano Buendía pagaría años después por sus atrocidades. 6.11. Corrección manual del estegotexto anterior, mejorando cohesión y coherencia global. Ocultación de 54 bits. Capacidad de ocultación final 1,5 bits/palabra Si el lector está interesado puede consultar los detalles del algoritmo, 201 no obstante en la página web del proyecto existe un manual sencillo para el uso práctico de la herramienta Stelin (http://stelin.sourceforge.net). 2. Ocultando información mediante imitación gramatical del lenguaje natural. Gramáticas libres de contexto Los textos en lenguaje natural pueden verse como un conjunto de léxico (palabras) que mediante uniones (reglas gramaticales) permiten construir fragmentos con semántica cuya unión (coherencia) aporta un valor concreto al lector. Dado que de una forma simplista un texto puede verse como un conjunto de oraciones unidas, tiene sentido analizar la posibilidad de imitar la estructura gramatical de una lengua concreta y analizar si en esa imitación para generar texto válido es posible ocultar 201 MUÑOZ, A.; Generating Spanish Stegotext for fun and prot. http://stelin.sourceforge.net/rooted. pdf. 192 ESTEGANOGRAFÍA © RA-MA información. Una excelente manera de realizar esto es mediante el uso de gramáticas libres de contexto. Para comprender su uso es necesario remontarse a los años 60 del siglo XX. En la década de los 60 el excepcional lingüista A. Noam Chomsky postuló la gramática generativa. Esta gramática se denió como el conjunto de reglas innatas que permiten traducir combinaciones de ideas a combinaciones de palabras y en este sentido, la gramática se convertía en un sistema combinatorio discreto que permite construir innitas frases a partir de un número nito de elementos mediante reglas diversas que pueden formalizarse mediante una gramática formal gobernada por normas de transformación. Según esta teoría de lenguaje formal una CFG (Context-Free Grammar) se dene como una gramática en la que cada regla de producción es de la forma v::=w, donde v es una variable y w es una cadena de símbolos terminales y no terminales. Se entiende por terminal la información última de cada regla, por ejemplo, una palabra determinada. Por tanto, en general, una CFG se compondrá de terminales, variables y producciones. Las CFG han jugado un papel nuclear en el diseño de lenguajes de programación y compiladores, así como en el análisis de la sintaxis del lenguaje natural. En la década de los 90, Peter Wayner vinculó la posibilidad de utilizar las construcciones CFG en la generación de estegotextos de forma automática. 202 Esta idea facilitaría la creación de estegotextos que, al menos, tendrían validez gramatical-sintáctica. Estos estudios los realizó en su aplicación a la lengua inglesa. A continuación, para facilitar su comprensión se añade un ejemplo en lengua española. Variable_Inicio S ::= AB (.5) | AC (.5) A ::= “Buenos días,”(.25) | “Buenas tardes,”(.25) | “Buenas noches,” (.25) | “Hola”(.25) B ::= “estimado amigo” C (.5) | “estimado compañero” C (.5) C ::= “Juan,” D (.25) | “Pedro,” D (.25) | “Lucas,” D (.25) | “Tomás,” D (.25) D ::= “quedamos algún día para” E (.5) | “dame tu número de teléfono para” E (.5) E ::= “hablar” F (.5) | “charlar” F (.5) F ::= Un saludo (1.0). Figura 6.12. Ejemplo de PCFG en lengua española en formato BNG actuando a modo de plantilla. Ocultación máxima de 8 bits 202 WAYNER, P.; Disappearing Cryptography, Second Edition: Information Hiding: Steganography & Watermarking, Morgan Kaufmann, 2ª edición, May 13, 2002. ISBN-13: 978-1558607699. © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 193 La ocultación de información se realiza mediante la selección de elementos concretos dentro de una regla especíca, regla que es elegida mediante algún algoritmo de selección concreto. En el ejemplo anterior, una posible oración extraída de las reglas denidas podría ser: “Buenos días, estimado compañero Tomás, dame tu número de teléfono para charlar. Un saludo”, la cual ocultaría 8 bits (1+2+1+2+1+1). Esta información oculta se produciría de la siguiente manera: 1. El primer bit a ocultar (0 o 1) permite seleccionar la regla inicial AB o AC. Supongamos que ocultamos un bit 0. Seleccionamos la regla AB. 2. Regla A: existen 4 términos posibles, luego 4 opciones para elegir (00, 01, 10, 11) o lo que es lo mismo 2 bits de ocultación (log 24). Supongamos que ocultamos 2 bits con valor 00. Seleccionamos “Buenos días”. Dado que el término seleccionado no enlaza a ninguna otra regla seguimos con la regla pendiente, la regla B. 3. Regla B: existen 2 términos, luego 2 opciones para elegir (0 o 1) o lo que es lo mismo 1 bit de ocultación. Supongamos que ocultamos un bit con valor 0. Seleccionamos “estimado amigo”. Como en el término seleccionado se enlaza a la regla C continuamos con esa regla. 4. Continuando con este razonamiento y en función de la información a ocultar se elegiría una regla u otra, ocultando toda la información deseada. Si se llega a la última regla y quedara información por ocultar se iniciaría de nuevo desde la Variable_Inicio. Wayner desarrolló varios ejemplos interesantes aplicando estas ideas, uno muy curioso es la ocultación de información en un mensaje con estructura de correo de spam (¿quién pensaría que un correo de spam puede tener información oculta?). Una herramienta con la que el lector puede simular este comportamiento es spammimic. 203 Esta herramienta es insegura 204 pero es un buen ejemplo de uso de gramáticas CFG con utilidad esteganográca. 203 http://www.spammimic.com/encode.shtml. 204 Adicionalmente a otros ataques, el lector puede observar como a los signos de puntuación siempre les antecede un espacio, estableciendo un patrón muy característico de esta herramienta. 194 ESTEGANOGRAFÍA © RA-MA Figura 6.13. Ocultación de un mensaje con la herramienta spammimic Figura 6.14. Mensaje de spam con información ocultada con spammimic A primera vista la ocultación basada en imitación gramatical aparenta ser robusta y producir textos de gran calidad que ni incluso un ser humano distinguiría como falsos, sin embargo existen problemas que es importante resaltar. El primer problema es que la gramática debe permanecer privada, emisor y receptor la deben conocer, ya que si no es así un atacante podría inferir fácilmente la información oculta. Este problema es mayor si la gramática es estática-manual. Si esta gramática fuera conocida por el atacante forzaría al emisor y al receptor un nuevo proceso tedioso (en función de la herramienta, manual) y costoso de generación de una nueva gramática. La calidad del estegotexto depende claramente de la gramática y si esta tiene pocas reglas es más que probable la repetición de frases y términos en el estegotexto, facilitando a los estegoanalistas su trabajo. Aunque la gramática sea generada automáticamente de uno o más textos de referencia, conocidos por emisor y receptor, deben considerarse otros análisis al generar algoritmos esteganográcos © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 195 basados en CFG, por ejemplo, las palabras (términos) en una CFG se relacionan con sus vecinos en formas jas. Aunque se añadan modelos estadísticos a las gramáticas como son las Probabilistic Context Free Grammars, PCFG, para dicultar ataques de análisis, siempre existirán correlaciones mutuas si se quiere que el texto sea coherente para un humano. Por otro lado, deben considerarse los ataques basados en estudio de terminales, información última de cada regla, ya que aunque las variaciones de textos creados puedan crecer sustancialmente con el tamaño de una gramática dada, el número de terminales está limitado por el tamaño de la gramática, lo cual signica que forzosamente, si el texto es lo sucientemente grande, se tienen que producir, y por tanto repetir, combinaciones lineales de terminales. En los últimos años se han publicado múltiples herramientas que utilizan de algún modo las gramáticas libres de contexto para ocultación de información, entre las más conocidas destacan NICETEXT 205 para lengua inglesa (con un funcionamiento parecido al descrito en el ejemplo anterior), la herramienta TEXTO 206 que transforma información a sentencias en inglés, las herramientas C2txt2c 207 y Csteg 208 que ocultan código fuente de lenguajes de programación en oraciones en lenguaje natural, etc. Aunque la esteganografía lingüística basada en imitación gramatical no sea tan utilizada como otro tipo de esteganografía analizada en este libro no por ello el lector debe asumir que no se han estudiado formas de atacarla. De hecho, desde 2008 se pueden observar trabajos cientícos de la comunidad china detectando con precisión 209, 210,211 estegotextos creados por la mayor parte de herramientas disponibles 205 CHAPMAN, M.; Hiding the hidden: A software system for concealing ciphertext as innocuous text, master’s thesis, University of Wisconsin-Milwaukee, May 1997. 206 Texto. Texto tool. ftp://ftp.funet./pub/crypt/steganography (Finlandia). 207 BLASCO, J. et al.; Csteg: Talking in C code, INSTiCC, 2008, Proceedings of SECRYPT International Conference, págs. 399-406. 208 ZUXU, D. et al.; Text Information Hiding Based on Part of Speech Grammar, IEEE Computer Society, Proceedings of the 2007 International Conference on Computational Intelligence and Security Workshops, págs. 632-635. ISBN:0-7695-3073-7. 209 ZHILI, C. et al.; Linguistic Steganography Detection Using Statistical Characteristics of Correlations, Information Hiding: 10th International Workshop, IH 2008, Revised Selected, LNCS, págs. 224-235. Doi: 10.1007/978-3-540-88961-8_16. 210 ZHILI, C. et al.; A Statistical Algorithm for Linguistic Steganography Detection Based on Distribution of Words, IEEE Computer Society, 2008, Proceedings of the Third International Conference on Availability, Reliability and Security, págs. 558-563. ISBN: 978-0-7695-3102-1. 211 MENG, P. et al.; Linguistic Steganography Detection Algorithm Using Statistical Language Model, International Conference on Information Technology and Computer Science, 2009. ISBN: 978-0-7695-3688-0. 196 ESTEGANOGRAFÍA © RA-MA en Internet que trabajan con lengua inglesa como NICETEXT, TEXTO o similares. En estas publicaciones pueden observarse porcentajes de detección cercanos al 100% para tamaños de textos sospechosos (estegotextos) de pocos miles de caracteres, y los ataques, no quepa la menor duda, irán mejorándose. Para más información visite el buscador académico de Google (https://scholar.google.com) e introduzca los términos steganalysis linguistic steganography. Rápidamente observará la enorme cantidad de investigaciones que se han publicado en esta temática. En resumen, mecanismos a tener en cuenta y, en función de quién sea nuestro potencial “atacante”, entendiendo por atacante la persona o entidad y los recursos invertidos en detectar una comunicación enmascarada, tener precaución a la hora de utilizar las herramientas libremente accesibles para enmascarar información. 6.5 GENERACIÓN AUTOMÁTICA DE ESTEGOTEXTOS BASADA EN MODIFICACIONES DE TEXTOS EXISTENTES El mecanismo más tradicional de ocultación de información consiste en utilizar un texto existente para enmascarar información basándose en algunos elementos del texto o modicaciones del mismo. En el pasado la información textual fue un portador muy socorrido para implementar procedimientos esteganográcos, en general sencillos y que ocultaban poca información, basados habitualmente en la modicación del formato del texto o de la posición especíca de unas letras en el mismo (null ciphers y text semagrams). En la actualidad, mucho de este conocimiento ha derivado en una línea de investigación más amplia intentando aunar los conocimientos en el procesamiento del lenguaje natural y la criptografía para alcanzar propuestas más robustas y que permitan ocultar un mayor volumen de datos. Esta línea de investigación consiste en la posibilidad de ocultar información realizando modicaciones en un texto existente o un texto que se genera automáticamente para ser modicado. En general, el receptor no necesitará el texto original, al que se le han realizado las modicaciones, para recuperar la información oculta. En los siguientes apartados se verá como es posible, además, establecer procedimientos esteganográcos basados en que emisor y receptor posean el texto original al que se realizan las modicaciones, lo que da lugar al estegotexto. En general, esta idea no es tan interesante ya que supone una limitación más a considerar en el sistema esteganográco. Debe tenerse en cuenta que si el estegoanalista fuera capaz de conseguir el texto original el procedimiento de detección se simplicaría bastante (comparando uno y otro), luego emisor y receptor deberían salvaguardar o destruir la cubierta original. Aunque los procedimientos clasicados en esta línea de ocultación pueden ser utilizados como procedimientos esteganográcos, su utilidad actual va más destinada al marcado digital de textos, posiblemente por su aplicación © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 197 práctica. Por este motivo, la ciencia del marcado digital de textos (en inglés, Natural Language Watermarking o NLW), está tomando un auge signicativo en los últimos diez años en lenguajes tan dispares como el inglés, el mandarín, el árabe, etc. 6.5.1 Modificaciones léxico-semánticas Esta línea de investigación se centra en la posibilidad de utilizar el léxico presente en un texto con utilidad esteganográca. La gran mayoría de las propuestas actuales están destinadas a la sustitución de palabras, y más concretamente a la sustitución de palabras por palabras parecidas, es decir, por sinónimos. Cualquier algoritmo moderno de sustitución de palabras por sus sinónimos puede verse básicamente de la siguiente manera: H(T, s, D, k) = T’ E(T’, D, k) = s Siendo T el texto a modicar, s la información a insertar, D el diccionario de sinónimos y k una clave secreta. H es la función que realiza la inserción de la información a ocultar y E la función que permite recuperarla. Con esta idea en mente, es sencillo establecer un algoritmo esteganográco. Por ejemplo, en un texto donde deseamos ocultar información y se encuentra la palabra “atadura” podríamos elegir entre 8 sinónimos: vínculo, conexión, enlace, ligadura, unión, nudo, grillete, yugo. Con estos 8 sinónimos se podría codicar hasta tres bits de información oculta (log2 8 = 3 bits), para ello cada sinónimo representaría una información binaria del tipo: vínculo = 000, conexión = 001, enlace = 010, ligadura = 011, unión = 100, nudo = 101, grillete = 110, yugo = 111. Por tanto, la palabra original sería sustituida por el sinónimo que represente los 3 bits de información a ocultar. Entre los sistemas puros más antiguos que utilizan este tipo de procedimientos podemos encontrarnos la herramienta T-LEX, 212 publicada en 1999 por Winstein. Un software que permitía realizar sustituciones léxicas en textos en inglés basadas en un diccionario de un conjunto de sinónimos construido con aproximadamente 20.000 palabras y haciendo uso de la base de datos Wordnet. 213 En función de la información a ocultar se utilizará un sinónimo u otro. 212 T-LEX. Lexical Steganography. web.mit.edu/keithw/tlex/. 213 La base de datos Wordnet es una voluminosa base de datos léxica en inglés, desarrollada en la Universidad de Princeton, que agrupa nombres, verbos, adjetivos y adverbios en conjuntos de sinónimos (synsets). Estos conjuntos están relacionados mediante relaciones semánticas y conceptuales, estableciendo una estructura de gran utilidad para la lingüística computacional y el procesamiento del lenguaje natural. 198 ESTEGANOGRAFÍA © RA-MA Figura 6.15. Ejemplo de sustitución de sinónimos en el sistema T-LEX Desde ese año multitud de publicaciones cientícas se han publicado intentando proponer mejoras que eviten potenciales ataques. Si el lector se para a pensar un momento en este tipo de sistemas observará su principal problema. En realidad existen muy pocos sinónimos “puros” o absolutos en una lengua, sinónimos válidos en cualquier contexto 214 de palabras, lo que implica que la modicación de una palabra inserta necesariamente un ruido visual. Es decir, no podemos elegir cualquier sinónimo de los aparentemente disponibles en función de la información a ocultar. Intentar resolver esta cuestión ha dado lugar a multitud de técnicas y procedimientos variados en los últimos 15 años. Como por ejemplo, intentar medir la distorsión introducida o utilizar modelos N-GRAM para conocer cómo de probable es una palabra dada en un contexto de palabras. En general, solucionar esta problemática requiere sosticados procedimientos de desambiguación del sentido de las palabras o aproximaciones estadísticas. Por ejemplo, si tenemos la oración “voy al banco a sacar dinero” y tenemos sinónimos de la palabra banco que puede tener múltiples signicados (banco = entidad nanciera, banco = conjunto de peces, banco = objeto para sentarme, etc.), solo ciertas palabras serán más probables junto al resto “voy al SINONIMO_ NUEVO a sacar dinero”. En este punto el lector observará que para minimizar errores lingüísticos en el estegotexto resultante adicionalmente debe analizarse el lenguaje de las palabras en su contexto cercano ya que es posible que se tenga que modicar el género o número de alguna palabra o sustituirla por una nueva. Por ejemplo, si banco = entidad nanciera, la frase nal podría ser algo como “voy a la entidad nanciera a sacar dinero”. En este sentido, en 2014, desarrollé la única herramienta de ocultación conocida basada en sinónimos (más de 23.198 sinónimos únicos), herramienta Jano, considerando todas estas cuestiones planteadas, minimizando la distorsión introducida en el estegotexto nal (no se conocen ataques efectivos contra esta herramienta) y maximizando la capacidad de ocultación en lengua española (22 bits por cada 100 palabras de texto en claro). Si desea conocer más de este tipo de herramientas consulte la información al pie de página. 215 214 Existen contextos donde incluso palabras que no son sinónimas harían esa función. Por ejemplo, “the sleuth” es sinónimo de “Sherlock Holmes” en muchas de las obras de Arthur Conan Doyle, así como es un sinónimo de “Hercules Poirot” or “Miss Marple” en algunas novelas de Agatha Christie. 215 Ocultación de comunicaciones en lenguaje natural, Rooted CON 2014. https://www.youtube.com/ watch?v=KZakb7WBBmY. © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 199 Independientemente de la herramienta concreta otro inconveniente de las sustituciones léxicas, adicional a la falta de sinónimos absolutos, es la facilidad, en mayor o menor medida, con la que un atacante podría invertir/anular gran parte de las inserciones, realizando cambios de palabras con los sinónimos disponibles, aunque introduzcan errores. Por tanto, estas propuestas no son resistentes a ataques activos. No obstante lo anterior no debe desanimarnos, todavía existe un gran camino para la investigación en este tipo de ocultación y variantes. Aunque es cierto que la mayoría de propuestas léxicas se centran en el uso de sinónimos, existen otras técnicas que intentan conseguir el mismo objetivo sin utilizar sinónimos. Por ejemplo, las propuestas léxicas basadas en sistemas de codicación que se apoyan en el valor semántico de las palabras. En esta dirección se orienta, por ejemplo, el trabajo de Niimi et al.,216 en 2003, en el cual se desarrolla un modelo para cuanticar el valor semántico de una información. Según este modelo se le asigna una puntuación a conceptos (palabras), otra a modicadores (adjetivos), a conectores de conceptos (por ejemplo, conjunciones), a delimitadores (paréntesis y corchetes), etc. El proceso de ocultación reside en la comparación de la puntuación semántica de una información con un umbral. Si está por debajo ocultará un bit 0 y si no un bit 1. Algunas de las técnicas empleadas para incrementar o decrementar el valor semántico y así poder enmascarar información binaria son: remover modicadores, remover conectores (y algunos elementos que conectan), transformaciones sintácticas, etc. 6.5.2 Modificaciones sintáctico-semánticas En teoría, la manipulación sintáctica de una frase con nes esteganográcos se basa en el hecho de que las frases son combinaciones de sintaxis y semántica, y la semántica de una frase podría ser expresada por más de una estructura sintáctica. Conocido esto es posible articular procedimientos que aprovechen esta situación con utilidad esteganográca y de marcado digital de textos. La idea es poder modicar una frase sintácticamente sin que la semántica de la frase ni la coherencia global del texto se vean afectadas. Si existe más de una posibilidad de expresar “lo mismo” puede elegirse entre las opciones disponibles, y la decisión de una u otra opción es lo que permitirá ocultar información. El esquema más documentado consiste en que el emisor envíe un texto modicado al receptor. Otro esquema posible, que tiene más restricciones, permitiría ocultar información mediante el conocimiento tanto por el emisor como por el receptor del texto origen sobre el que se va a realizar 216 NIIMI, M. et al.; “A framework of text-based steganography using sd-form semantics model”. IPSJ Journal 44, agosto, 2003. 200 ESTEGANOGRAFÍA © RA-MA la modicación. Todos estos procedimientos se fundamentan principalmente en la posibilidad de mover estructuras o palabras dentro de una sentencia, eliminar/añadir palabras “semánticamente vacías” o procedimientos similares. Habitualmente, la modicación de estructuras sintácticas requiere de procedimientos más sosticados que las sustituciones léxicas. No obstante, actualmente la investigación en sistemas de etiquetado (taggers 217) y en procedimientos de desambiguación 218 permite construir propuestas reales aunque no sean perfectas. Su ventaja reside en mostrar una seguridad intrínseca frente a ataques léxicos, es decir, a procedimientos de ataque que únicamente sustituyan unas palabras por otras para intentar anular la información ocultada. Si la ocultación se basa en la estructura de los textos este tipo de ataque no tiene utilidad. En general, el movimiento de palabras dentro de una estructura es detectable por el receptor sin conocimiento del texto original. Los procedimientos de ocultación basados en la elisión o inserción de palabras requerirán del conocimiento del texto original por parte del receptor para detectar la información oculta. Este tipo de técnicas dependen claramente del idioma del texto donde se desee aplicar esteganografía. Existen publicaciones que indican su interés en utilizarlas en idiomas tan diversos como el ruso, mandarín, turco, japonés o coreano. Por ejemplo, en 2001 Murphy 219 realizó un amplio estudio de las posibilidades de la lengua inglesa con utilidad esteganográca, estudio que sería complementado por investigadores posteriores en los últimos 15 años y que nos hace pensar en posibles estructuras que podrían tener cierta libertad a ser modicadas y por tanto facilitar la ocultación de información: sustitución de which/who/whom por that dependiendo del contexto, reordenación de argumentos unidos por conjunción, movimiento de complementos, transformación activa-pasiva, la inserción de elementos semánticamente vacíos del estilo de “generally speaking”, “basically”, “it seems that”, etc. En lengua castellana existen pocas investigaciones que analicen la utilidad o no de este tipo de técnicas en español. Por este motivo, entre 2009 y 2011 realicé una serie de investigaciones cuyos resultados pueden consultarse libremente en: 217 https://en.wikipedia.org/wiki/Part-of-speech_tagging. 218 En lingüística computacional, la desambiguación del signicado de la palabra es un problema abierto de procesamiento de lenguaje natural, que incluye el proceso de identicar con qué sentido una palabra está usada en los términos de una oración, cuando la palabra en cuestión tiene polisemia, es decir, pluralidad de signicados. 219 MURPHY, B.; Syntactic information hiding in plain text, M.S. Thesis, CLCS, Trinity College, 2001. © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 201 ] MUÑOZ, A. et al.; “Modicaciones sintácticas en lengua española con utilidad en esteganografía lingüística”, RAEL: Revista Electrónica de Lingüística Aplicada, ISSN 1885-9089, n.º 8, 2009, págs. 229-247. http://dialnet.unirioja.es/descarga/articulo/3143010.pdf. ] MUÑOZ, A. et al.; “Modicaciones sintácticas basadas en la reordenación de complementos del verbo con utilidad en esteganografía lingüística”, RAEL: Revista Electrónica de Lingüística Aplicada, ISSN 1885-9089, n.º 10, 2011, págs. 31-54. http://dialnet.unirioja.es/descarga/ articulo/3882607.pdf. Estas investigaciones demuestran que existen ciertas modicaciones sintácticas en lengua castellana que permiten, al menos en teoría, ocultar información binaria jugando con el orden de las palabras en una oración (modicaciones sintácticas). Entre ellas, el cambio de activa-pasiva de una oración (por ejemplo, el atracador golpeó a Luis/Luis fue golpeado por el atracador), transformaciones basadas en movimientos de los adjetivos y otros complementos dentro del sintagma nominal (sustantivo + adjetivo vs. adjetivo + sustantivo, nombre + adjetivo1 + adjetivo2 vs. nombre + adjetivo2 + adjetivo1) o transformaciones basadas en la reordenación de complementos del verbo 220 (verbo + adverbio vs. adverbio + verbo, adverbio al principio de la frase vs. adverbio al nal de la frase) como, por ejemplo, “Lamentablemente, él fue despedido” (oculto un bit 0) o “Él fue despedido, lamentablemente” (oculto un bit 1). Por desgracia, su utilidad real y la capacidad de ocultación para enmascarar mensajes depende mucho del tipo del texto utilizado, del canal por donde se transmita (la estadística de la fuente) y de su tamaño. A día de hoy, por la investigación publicada, en lenguaje castellano estas técnicas podrían ser utilizadas para ocultar poca cantidad de información, de decenas a pocas centenas de bits, en textos de tamaño mediano (centenas de palabras) o como técnicas esteganográcas complementarias a otras para hacer el proceso de ocultación más robusto. 6.5.3 Modificaciones basadas en el ruido de traducciones automáticas La idea de estos procedimientos consiste en ocultar información basándose en la posibilidad de traducir una sentencia, de un lenguaje concreto, en varias sentencias “equivalentes” en un lenguaje destino, entre las cuales se puede elegir 220 En general, la presencia en la oración de adverbios y otros complementos no subcategorizados por el verbo, como complementos circunstanciales externos al sintagma verbal, no es obligatoria y por lo tanto se puede predecir que podrían gozar de mayor movilidad y aceptabilidad ante la manipulación en general. 202 ESTEGANOGRAFÍA © RA-MA estableciendo un sistema binario de ocultación de información. Esta curiosa idea fue adelantada en 2005 por Grothoff et al., 221 y mejorada posteriormente por Stutsman et al. 222 Este mecanismo analiza la posibilidad de ocultar información en el “ruido” creado en las traducciones automáticas de documentos en lenguaje natural. La traducción de fragmentos de texto de un lenguaje a otro crea sucientes alternativas para considerarlas seriamente en un proceso de ocultación. Los errores/ imprecisiones introducidos en las traducciones podrían ser utilizados. Es decir, la traducción automática es adecuada para aplicaciones esteganográcas. Los autores analizaron diferentes tipos de errores generados por varios sistemas de traducción automática e incluso algunos de estos errores son razonables en traducciones por humanos. Estas limitaciones fueron explotadas en un sistema de ocultación práctico publicado en http://www.scs.stanford.edu/~stutsman/stego. Algunos de los errores considerados, en terminología inglesa, son: functional words, blatant word choice errors, translations between typologically dissimilar languages, etc. Un ejemplo de error sin destruir el signicado de las oraciones a traducir consiste en la traducción incorrecta de palabras (functional words) como artículos, pronombres y preposiciones. Por ejemplo, muchos lenguajes no usan artículos delante de todos los nombres. Así por ejemplo, la traducción del francés al inglés de “La vie est paralysée” se traduce como “Life is paralyzed”. La máquina de traducción cometería un error si produjera “The life is paralyzed” dado que el sentido de “life” en general no tiene artículo en inglés, lo mismo que nombres comunes como water o money. Errores parecidos suceden con la traducción de preposiciones que depende fuertemente del contexto de la oración. Por ejemplo, la frase en francés “J’habite à 100 mètres de lui” signica “I live 100 meters from him” en inglés, pero traducciones erróneas podrían traducirla como “I live with 100 meters of him” o “I live in 100 meters of him”, en ambos casos la traducción de à como with/in son inapropiadas en el contexto. Otros errores más sosticados podrían hacer uso de las diferencias estructurales (sintácticas, semánticas y morfológicas) entre idiomas tan distintos como el chino y el inglés, el inglés y el árabe, etc. Como puede deducirse un ataque a un sistema esteganográco de este tipo depende claramente de cómo evolucione la caracterización de un lenguaje determinado. Este mismo conocimiento y sus limitaciones podrían ser explotados nuevamente por un sistema de este tipo. Por tanto, la seguridad de este sistema recae en la clásica carrera entre el ratón y el gato (protector y atacante). Los autores justican que dado que 221 GROTHOFF, C. et al.; “Translation-based steganography”, Tech. Rep. TR 2005-39, Purdue CERIAS, 2005. 222 STUTSMAN, R. et al.; Lost in just the translation, Proceedings of the 21st Annual ACM Symposium on Applied Computing (SAC 2006). © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 203 generar un modelo de análisis por parte de un atacante no es ni mucho menos trivial y es sencillo adaptar el sistema para eliminar posibles excepciones que faciliten la tarea al analista, este tipo de sistemas, por tanto, establece un “nivel razonable” de protección. 6.5.4 Modificaciones basadas en formato En apartados anteriores se describieron procedimientos tradicionales de esteganografía textual en los siglos pasados. Uno de esos procedimientos consistía en la posibilidad de utilizar la estructura (formato y posición de las palabras, frases o elementos en un documento) con nes esteganográcos. Sus ventajas residen en un ancho de banda esteganográco grande y en la imperceptibilidad visual (depende del método). Desde nales del siglo XX hasta nuestros días, gracias al auge de los contenidos digitales, se han documentado diferentes procedimientos esteganográcos aplicados a todo tipo de documentos que contienen información textual, típicamente documentos omáticos creados con Microsoft Word, OpenOfce, Latex, etc. Este empuje ha ido de la mano de todo tipo de propuestas basadas en estas ideas para facilitar sistemas de marcado digital de texto para vericación de autor o contenido. Un buen resumen de muchas de estas ideas fue publicado en 1994, donde Brassil et al.223 proponen tres métodos de ocultación con utilidad en marcado de textos: lineshift coding (desplazamiento vertical, de tamaño jo o variable, de elementos de un texto, típicamente desplazamiento entre líneas, entre grupo de caracteres, etc.), wordshift coding (desplazamiento horizontal, de tamaño jo o variable, de elementos de un texto, típicamente desplazamiento entre caracteres o entre palabras) y character coding (procedimientos de inserción de información basados en modicaciones de la tipografía de los caracteres y de los atributos asociados a ellos, por ejemplo, brillo, color, etc.), en terminología inglesa. Desde entonces otros autores teorizarían sobre la posibilidad real de utilizar estos métodos en el marcado de textos. Hoy en día, en la primera década del siglo XXI, la tendencia es hacer más robustas esas ideas iniciales, aunque las pocas ideas medianamente novedosas son adaptaciones de esos principios a nuevos formatos digitales que contienen información textual. Ejemplos, a modo de artículos cientícos se encuentran a decenas: ] MEI, Q. et al.; Data Hiding in Binary Text Documents. Security and watermarking of multimedia contents, Conference n.º 3, San Jose CA, ETATSUNIS (22/01/2001), vol. 4.314, págs. 369-375. ISBN 0-8194-3992-4. 223 BRASSIL, J. et al.; Marking text features of document images to deter illicit dissemination, Proc. of the 12th IAPR International Conference on Computer Vision and Image Processing, vol. 2/1994, págs. 315-319. 204 ESTEGANOGRAFÍA © RA-MA ] HYON-GON, C. y WHOI-YUL, K.; “Data-Hiding Capacity Improvement for Text Watermarking Using Space Coding Method”, LNCS, vol. 2939/2004, págs. 593-599. ISBN: 978-3-540-21061-0. ] AWAN, I. et al.; Utilization of Maximum Data Hiding Capacity in ObjectBased Text Document Authentication, 2006 International Conference on Intelligent Information Hiding and Multimedia Signal Processing (IIHMSP’06). ] KHAIRULLAH, M. A.; Novel Text Steganography System Using Font Color of the Invisible Characters in Microsoft Word Documents, Second International Conference on Computer and Electrical Engineering, 2009. ISBN: 978-0-7695-3925-6. Por suerte, de vez en cuando surge alguna idea curiosa, por ejemplo, la creación de mensajes ocultos mediante ASCII Art. Un ejemplo de ello es la aplicación online que puede verse en http://pictureworthsthousandwords.appspot.com. Estas herramientas permiten construir una imagen mediante caracteres ASCII. Dado que es posible combinarlos de diferentes maneras es posible ocultar información en un texto ASCII que represente una imagen. Figura 6.16. Mensaje oculto en una imagen codificada en ASCII Art © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 205 En la primera década del siglo XXI diferentes investigaciones han mostrado interés en utilizar sistemas de escritura sosticados como el sistema tipográco TEX para generar estegotextos con modicaciones basadas en formato 224 dado su versatilidad225 y su capacidad de ocultación. 226 Por ejemplo, en 2006 Chao et al. 227 utilizaron el sistema TEX para ocultar información en ligeras modicaciones del interespaciado entre las palabras, siendo el resultado del estegotexto un chero PDF. Muchas otras propuestas se han publicado para diferentes idiomas basadas en los tres métodos de ocultación citados anteriormente, en algunos idiomas tan “exóticos” como el bengalí, el tailandés o el hindi. A todo lo anterior hay que añadir, sin duda, un avance muy signicativo en el siglo XXI en ataques lingüísticos a estas propuestas, siendo especialmente signicativas las publicaciones de la comunidad cientíca china. Por ejemplo, en 2007, Lingjun et al.228 publicaron un algoritmo para detectar variaciones en los atributos del formato de un texto que podrían tener uso esteganográco. Su algoritmo mide las diferencias de atributos entre caracteres adyacentes y con esa información, utilizando inteligencia articial, entrenaron un SVM 229 (Support Vector Machine) que le permite clasicar textos inocuos y estegotextos. La precisión de su algoritmo, bajo las condiciones establecidas, es de un 99,3% cuando el tamaño ocultado es de al menos 16 bits. En 2008, Lingjun et al. 230 presentaron un ataque estegoanalítico frente a esteganografía textual en documentos PDF basados en introducción de 224 CHEN, C. et al.; “Data Hiding in Text File Using TeX and Extraction of Hidden Data from Document Image”, Journal of Applied Sciences, vol. 24/2006, págs. 115-119. 225 LIN, S.; New Methods of Data Hiding in TeX Documents, Masters Thesis, National Kaohsiung First University of Science and Technology, Taiwan, June 2004. 226 ARAVIND, K. et al.; “High-capacity data hiding in text documents. Media Forensics and Security”, publicado por DELP, E. J. III; DITTMANN, J.; MEMON, N. D. y WONG, P. W.; Proceedings of the SPIE, vol. 7254/2009. Doi: 10.1117/12.805960. 227 CHAO, C. et al.; Information hiding in text using typesetting tools with stegoencoding, IEEE Computer Society, 2006, Proceedings of the First International Conference on Innovative Computing, Information and Control, págs. 459-462. 228 LINGJUN, X. et al.; Research on Steganalysis fort text steganography based on font format, IAS 2007, págs. 490-495. ISBN: 0-7695-2876-7. 229 Las máquinas de soporte vectorial o máquinas de vectores de soporte (Support Vector Machines, SVM) son un conjunto de algoritmos de aprendizaje supervisado que intentan abordar problemas de clasicación y regresión. Dado un conjunto de ejemplos de entrenamiento (de muestras) podemos etiquetar las clases y entrenar una SVM para construir un modelo que prediga la clase de una nueva muestra. 230 LINGJUN, L., et al.; A statistical attack on Kind of Word-Shift Text-Steganography, IIH-MSP 2008, págs. 1503-1507. ISBN:978-0-7695-3278-3. 206 ESTEGANOGRAFÍA © RA-MA espacios variables entre palabras. Si, según las condiciones establecidas, se utiliza más de un 5% de la capacidad de ocultación, el porcentaje de clasicación es de un 98% de éxito. Por cuestión de espacio no podemos profundizar en todos los ataques publicados hasta la fecha, no obstante el lector puede hacerse una idea del interés en detectar estas técnicas de ocultación tan esquivas y de la precaución a la hora de utilizar herramientas o técnicas concretas para enmascarar información sensible. Las herramientas más famosas disponibles en Internet están siendo investigadas con resultados de detección notorios. 6.5.5 Modificaciones basadas en errores, abreviaturas y símbolos de puntuación La presencia de errores ortográcos o tipográcos en los textos presentes en un canal de comunicación permitiría, teóricamente, su uso con nes esteganográcos. La utilidad real de un procedimiento esteganográco de estas características depende mucho del canal donde se transmita y de qué habilidades se le consideren a un atacante. Por ejemplo, un lector humano delataría rápidamente la presencia de muchas de esas faltas, y si su presencia es elevada podría incluso hacer sospechar de la naturaleza del texto analizado. Quizás, no pensaría lo mismo si encuentra esas faltas de ortografía en foros de Internet. Aunque en la práctica no es sencillo articular una propuesta pública, no basada en oscuridad, considerando estos principios para un volumen de ocultación medio, en 2007 Topkara et al.231 articularon una aproximación interesante y razonablemente seria. 232 Si el atacante fuera un sistema clasicador automatizado, suposición realista dado el volumen de información que se intercambia en las redes de telecomunicación, la pregunta clave a resolver es ¿cómo sabe un programa automático que existe una falta de ortografía en un texto? La respuesta a esta pregunta permite clasicar tres tipos diferentes de sistemas de ocultación: 1. Sistemas que usan procedimientos para producir palabras que no existen en un diccionario. El ataque a estas propuestas se simplica utilizando diccionarios grandes y modelos estadísticos de la lengua bajo estudio que indiquen cómo se relacionan las palabras entre sí. 231 TOPKARA, M., et al.; Information Hiding through Errors: A Confusing Approach, Proceedings of the SPIE International Conference on Security, Steganography, and Watermarking of Multimedia Contents, 2007, San Jose. 232 No se conoce ninguna otra publicación cientíca “seria” de esta temática. © RA-MA Capítulo 6. ESTEGANOGRAFÍA LINGÜÍSTICA. MARCADO DIGITAL DE INFORMACIÓN 207 2. Sistemas basados en errores tipográcos, uso de acrónimos y abreviaturas. La detección de estos procedimientos queda supeditada a algoritmos similares a los utilizados en la corrección de textos, por ejemplo, en los programas omáticos. Algunas de las técnicas que se emplean en su detección pueden estar basadas en la mínima distancia de edición (mínima diferencia en letras entre una palabra con errores y una palabra válida en un diccionario), modelos estadísticos N-Gram (estudio de la probabilidad de aparición de esa palabra respecto de sus vecinas), etc. En general, estos procedimientos de ocultación, sustituciones léxicas, podrían ser procedimientos adecuados en combinación con otros, ya que resulta complejo denir una propuesta robusta pública con estas ideas de forma individual. Estos procedimientos podrían tener mayor aplicación en entornos muy determinados como esteganografía en SMS, 233 codicación de información en emoticonos, 234 etc. Tabla 6.1. Lista de acrónimos de palabras en inglés utilizadas en mensajes SMS 3. Sistemas que usan procedimientos para transformar una palabra válida en otra palabra válida. Por ejemplo, vaca-baca, toro-loro, etc. Dentro de este tipo de sistemas también se pueden considerar otros procedimientos basados en la separación de palabras compuestas (saca puntas-sacapuntas) y en la creación de errores gramaticales. La detección de estos procedimientos requiere de técnicas avanzadas de reconocimiento lingüístico, etiquetadores precisos, técnicas de desambiguación y comprensión semántica. 233 SHIRALI-SHAHREZA, M.; Text Steganography in SMS, Proceedings of the International Conference on Convergence Information Technology (ICCIT 2007), págs. 2.260-2.265. 234 CHANG, C.; Emoticon-based Text Steganography in Chat. http://msn.iecs.fcu.edu.tw/ courses/ talk/slides/data/2009-11-17/1_Emoticonbased%20Text%20Steganography %20in%20Chat.ppt. 208 ESTEGANOGRAFÍA © RA-MA En último lugar, existe otro tipo de procedimiento esteganográco que estaría basado en la posibilidad de alterar símbolos de puntuación para ocultar información. Al igual que sucedía en los dos procedimientos anteriores no se conocen propuestas serias basadas en estos principios. En 2006, Meral et al.235 realizaron una serie de consideraciones a este respecto en turco. Estas armaciones no dejan de ser anecdóticas, poco justicadas y difícilmente extrapolables a otros idiomas. En conclusión, esta es una rama de investigación basada en errores que podría ser interesante exclusivamente en canales muy concretos, como pudieran ser las redes sociales, si se demuestra la presencia masiva de faltas de ortografía. Queda por determinar cuestiones prácticas como la capacidad de ocultación y la invisibilidad de este procedimiento para evaluar si es interesante considerarlo para el desarrollo de una propuesta esteganográca útil y segura. 235 MERAL, H. et al.; Syntactic tools for natural language watermarking, Proceedings of the SPIE International Conference on Security, Steganography, and Watermarking of Multimedia Contents, January 2007. 7 NETWORK STEGANOGRAPHY Y COVERT CHANNELS. EVASIÓN DE CORTAFUEGOS Y FUGA DE INFORMACIÓN EN REDES DE ORDENADORES 7.1 OCULTANDO INFORMACIÓN EN EL TRÁFICO DE RED. FUGA DE INFORMACIÓN Y CONTROL REMOTO DE SISTEMAS INFECTADOS Las redes de comunicaciones aumentan nuestra capacidad de libertad y colaboración, o por lo menos se quiere creer que es así. Para que todas las redes funcionen adecuadamente y se puedan establecer conexiones entre ellas, es necesario habilitar mecanismos estrictos formalizados de comunicación con los denominados protocolos telemáticos. En la red Internet es habitual el uso de la torre de protocolos TCP/IP, cuando desde un navegador web se realiza una consulta al buscador favorito de un usuario. Estos mecanismos formalizados establecen procedimientos para poder encapsular adecuadamente la información a enviar y que pueda ser recuperada por el receptor con éxito. Para facilitar este hecho, se utiliza una información adicional, junto con el mensaje del usuario a comunicar, para facilitar el correcto envío de dicho mensaje. Dependiendo del protocolo (más bien de su nivel en la torre de protocolos a la que pertenezca) todo este conjunto de información puede recibir diferentes nombres, como paquete, segmento, datagrama, trama, etc. En cualquier caso, a partir de ahora entiéndase que estos nombres se reeren siempre a la unión de información útil e información de control. Por ejemplo, es interesante que a la información a enviar se le indique con una información adicional quién es el destinatario de la misma. 210 ESTEGANOGRAFÍA © RA-MA En general, y desde un punto de vista esteganográco, en la mayoría de protocolos existen ciertas debilidades o consideraciones no estrictamente denidas en diseño que permiten a un individuo crear canales ocultos de información, que pasarán inadvertidos entre una conexión de datos más o menos común. Esto permite comunicarse sin molestia de un posible censor. El concepto de canal oculto fue formalizado, entre otros, por Butler W. Lampson en 1973 y se describe como aquel canal de comunicación que viola una o más políticas de seguridad del sistema donde se aplica. En sentido práctico, consiste en procedimientos de comunicación que no forman parte del sistema original u organización, pero que se pueden utilizar para transferir información a un sistema o usuario que, en principio, no estaría autorizado a acceder a dicha información. La creación de canales ocultos, en la mayoría de los protocolos de comunicaciones, es viable ya que existen campos no utilizados en la estructura del formato de los paquetes enviados o simplemente campos a los que se les puede proporcionar una funcionalidad diferente a la establecida en la correspondiente especicación que dene el protocolo en cuestión. Un mecanismo habitual de ocultación consiste en utilizar campos reservados, para un futuro, sin utilidad actual en una determinada versión de un protocolo. No obstante, se debería vericar para casos concretos que la información ocultada no es modicada o comprobada por ningún elemento de la red informática donde se desee aplicar dicho canal, como un router o un cortafuegos. Lógicamente, como sucede en otros ámbitos de la informática, los datos, en un canal encubierto, pueden ser cifrados convenientemente para uso exclusivo de los miembros que actúan en la comunicación; también se pueden utilizar múltiples técnicas esteganográcas (múltiples protocolos telemáticos) para ocultar más información y dicultar la detección. A día de hoy, los canales encubiertos tienen dos objetivos fundamentales: fuga de información y control remoto de equipos/software. Su objetivo fundamental es intentar evadir cualquier tipo de tecnología DLP 236 (Data Loss Prevention) o de seguridad perimetral (antivirus, cortafuegos, IDS, etc.) que pudiera detectarlos. Desde hace décadas numerosos esfuerzos 237 están destinados al análisis y detección de este tipo de canales encubiertos, quizás menos esquivos que otras técnicas esteganográcas descritas en este libro. De hecho, en la última década es especialmente signicativa la caracterización de protocolos (comportamiento) utilizando algoritmos de aprendizaje automático (inteligencia articial). 238 236 https://en.wikipedia.org/wiki/Data_loss_prevention_software. 237 National Computer Security Center, A guide to Understanding Covert Channel Analysis of Trusted Systems.https://fas.org/irp/nsa/rainbow/tg030.htm. 238 A novel comprehensive steganalysis of transmission control protocol/Internet protocol covert channels based on protocol behaviors and support vector machine. http://onlinelibrary.wiley.com/ doi/10.1002/sec.1081/abstract. © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 211 7.2 CANALES ENCUBIERTOS EN PROTOCOLOS DE COMUNICACIÓN. TORRE TCP/IP Algunos de los protocolos de comunicación típicos para crear canales encubiertos son: HTTP, TCP, UDP, IPv4, IPv6, ICMP, IPSEC, IGMP, FTP, DNS, los protocolos usados en redes de área local (802.2, 802.3), en redes inalámbricas, 239 etc. En general, los protocolos típicos vinculados a las comunicaciones en Internet y a la torre de protocolos TCP/IP. Figura 7.1. Torre de protocolos TCP/IP La creación de canales ocultos utilizando los protocolos estándar de comunicación en Internet es posible mediante técnicas muy diversas basadas en la manipulación de la cabecera de los paquetes (donde se encuentra la información de control), la reordenación de los paquetes a enviar (el orden en que se reciban los paquetes permite ocultar información), la creación de canales en función del tiempo que se tarda en enviar una serie de mensajes (timing channels, 240 en nomenclatura inglesa), etc. En los siguientes apartados se van a estudiar algunas técnicas esteganográcas para los protocolos más utilizados en Internet. El lector debe ser consciente de que en función de dónde se localicen emisor o receptor (en qué red) la ocultación de 239 WLAN steganography. http://stegano.net/our-papers.html. 240 IP Covert Timing Channels: Design and Detection. http://www.cs.jhu.edu/~fabian/courses/ CS600.624/covert.pdf. 212 ESTEGANOGRAFÍA © RA-MA información podría ser mayor combinando varias técnicas y varios protocolos, por ejemplo, si un emisor y un receptor están en una misma red local corporativa. Obviamente, un escenario posible de comunicación podría ser en el cual el emisor es el atacante y el receptor el sistema controlado remotamente utilizando canales ocultos. Recuérdese, especialmente para los lectores que no estén habituados a la utilización de torres de protocolos, que la información de los protocolos superiores en la torre (información de control e información de usuario) se encapsula en el campo de datos del protocolo inferior, y así sucesivamente. En una red local un canal oculto entre un emisor y un receptor utilizando Internet podría usar, por ejemplo, protocolos de nivel de enlace, nivel de red y nivel de transporte para ocultar información. Si desea profundizar en esta cuestión le recomiendo consultar los siguientes términos: inter-protocol steganography y multi-level steganography (MLS). En cualquier caso, la mejor forma de entender cómo combinar técnicas o protocolos es con casos concretos. 7.2.1 Esteganografía en protocolos de red local. IEEE 802.3. CSMA/CD En toda torre de protocolos de comunicación existe un nivel que permite acceder directamente al medio físico de transmisión mediante el cual se va a poder enviar la información, por ejemplo, a través del aire. Un protocolo muy común utilizado por las tarjetas de red Ethernet, especialmente en redes de área local (conexión a Internet), es el protocolo IEEE 802.3 CSMA/CD, el cual es interesante desde un punto de vista esteganográco. Por denición este protocolo puede utilizar un acceso al medio, múltiple, con escucha de portadora y detección de colisión (Carrier Sense Múltiple Access/Collision Detect, CSMA/CD), en principio, para una topología lógica de red en bus y varios medios físicos de transmisión. El mecanismo básico de transmisión mediante este protocolo es el siguiente: 1. Cuando una estación desea transmitir una trama (unidad de información, información de control e información útil, a nivel 2 de la torre de protocolos), escucha previamente el medio físico; si se detecta que otra estación está transmitiendo continúa a la escucha (carrier sense). 2. Cuando el medio se queda libre comienza a transmitir la trama. Si dos o más estaciones intentan transmitir una trama al mismo tiempo se producirá una “colisión”, que será detectada (collision detect) por las estaciones. Si una estación detecta una colisión durante la transmisión de una trama, interrumpe la transmisión de esa trama y transmite una señal jam de reiniciación, y de aviso. © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 213 Después de una colisión, y para evitar la repetición de este suceso, las estaciones que han colisionado esperan un tiempo aleatorio, backoff, antes de poder volver a transmitir una trama. En general, el algoritmo de espera considera un tiempo de espera que es un múltiplo entero del slot-time (tiempo máximo entre que una estación comienza a transmitir y detecta la colisión): T BACKOFF = r . TSLOT TIME Siendo “r” un entero aleatorio, seleccionado dentro del rango 0 ≤ r < 2 K, donde K depende del número “n” de intentos de transmisión, es decir, típicamente K = Min(n,10). Después de un número de intentos (normalmente 16) la entidad MAC asume que existe algún problema en la transmisión y lo reporta al protocolo de nivel superior. Un mecanismo sencillo de ocultación esteganográca utilizando el funcionamiento de este protocolo consiste en utilizar el tiempo backoff para crear un canal oculto de información (manipulación de backoff). Los canales se crean en base a diferencias temporales (timing channels). En este sentido, en una conguración muy sencilla, es posible ocultar un bit de información por trama. Veamos cómo. Una técnica de ocultación viable consiste en jugar con el tiempo de retransmisión después de una colisión. Así, por ejemplo, se podría utilizar dos valores jos de tiempo, uno para representar el “0” binario y otro el “1” binario, en lugar del valor aleatorio que especica la norma. Por ejemplo, en una red local si nuestra implementación nada más colisionar envía el paquete de información, sin esperar, esto podría denotar un bit “0” oculto para el receptor. Puede pensarse que esta idea, en principio, aumentaría el número de colisiones, sin embargo, si el resto de equipos cumple la normativa de retransmisión al colisionar, se observa como se puede establecer canales ocultos, e intercambiar información sin una latencia excesiva. 7.2.2 Canales encubiertos en protocolos de red. Protocolo IPv4 El protocolo de comunicación de red más extendido y utilizado es el protocolo IP versión 4 (Internet Protocol), descrito en la norma RFC 791. El protocolo IP pertenece al nivel de red de la torre de protocolos TCP/IP, cuyo objetivo es facilitar la interconexión de redes heterogéneas y la transmisión de información. Este protocolo permite el intercambio de información mediante paquetes autocontenidos, denominados datagramas, independientes de otros paquetes, que poseen 214 ESTEGANOGRAFÍA © RA-MA toda la información necesaria para su encaminamiento por la red y la comunicación entre sistemas nales. Al ser un protocolo no orientado a la conexión no requiere establecimiento de conexión entre los diferentes pares que actúan en una comunicación. Para comprender algunas de las técnicas esteganográcas descritas utilizando este protocolo es necesario conocer el formato del datagrama IPv4, y en concreto, su cabecera. La información de usuario concreta que se envía en cada comunicación, en estos momentos, no es relevante desde un punto de vista esteganográco. Figura 7.2. Estructura de la cabecera de un datagrama IPv4 A modo de resumen veamos el signicado de cada campo de esta cabecera: ] Versión (4 bits). Identica la versión del protocolo IP con la que ha sido generado el datagrama IP. ] Longitud de la cabecera (4 bits). Especica la longitud total de la cabecera del datagrama IP, incluidas las opciones y los bits de relleno, en unidades de 4 octetos (32 bits). El valor por defecto de este campo es 5 (cabecera IP, sin opciones ni relleno, lo que equivale a 20 octetos). El valor máximo de este campo es de 15 (cabecera IP de 60 octetos). ] Tipo de servicio (8 bits). Denido en la RFC 1349, proporciona un servicio de priorización de datos IP. ] Longitud total (16 bits). Longitud total del datagrama IP (cabecera y datos), medida en octetos. ] Identicación (16 bits). Se utiliza para identicar unívocamente todos los fragmentos en los que se puede dividir un datagrama IP. Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 215 © RA-MA ] Flags (3 bits). Está formado por 3 ags con el siguiente signicado: ● Bit 1 (reservado). ● Bit 2 (Don’t Fragment, DF). Se utiliza para indicar si un router puede (DF = “0”) o no fragmentar (DF = “1”) un datagrama IP. ● Bit 3 (More Fragment, MF). Este bit se activa en la máquina del usuario o router que realiza la fragmentación. Se utiliza, además, en la máquina destino para concatenar los fragmentos del datagrama IP. MF = “1” indica que hay más fragmentos pertenecientes al mismo datagrama IP. MF = “0” indica que es el último fragmento del datagrama IP. ] Desplazamiento del fragmento (13 bits). Indica la posición que ocupa el primer octeto de datos del fragmento en el campo de datos del datagrama IP original, medido en unidades de 8 octetos (64 bits). Se utiliza para concatenar los fragmentos del datagrama IP en la máquina destino (orden de los fragmentos). ] Tiempo de vida (8 bits). Tiempo que el datagrama IP puede permanecer en la red, evitando su circulación indenida. La máquina origen pone el valor inicial y cada router por el que pasa el datagrama IP lo disminuye en una unidad antes de retransmitir dicho datagrama IP. Si el valor de ese campo es “cero” antes de que el datagrama IP llegue a su destino, dicho datagrama IP se descarta y se envía a la máquina origen un mensaje ICMP de “tiempo excedido en tránsito”. ] Protocolo (8 bits). Identica el protocolo que gestiona el campo de datos de usuario del datagrama IP, por ejemplo: 1 = ICMP, 6 = TCP, 17 = UDP. ] Checksum cabecera (16 bits). Campo con información de vericación de cabecera, generado por la máquina origen y recalculado por cada router por el que pasa el datagrama IP. ] Dirección IP origen y destino (32 y 32 bits). Dirección origen y destino de los comunicantes. ] Opciones: campo opcional, donde se indican facilidades adicionales solicitadas por la máquina origen, por ejemplo, identicar el tiempo en el que un router procesa un datagrama IP. ] Relleno: al ser el campo opciones de tamaño variable, y no necesariamente múltiplo de 32 bits, es necesaria una información de relleno para que la longitud de la cabecera del datagrama IPv4 sea múltiplo de 32 bits. 216 ESTEGANOGRAFÍA © RA-MA Partiendo de la información anterior ahora es posible comprender algunos de los mecanismos más comunes para crear canales ocultos utilizando el protocolo IPv4. Entre las técnicas publicadas se puede destacar, por ejemplo, algunos procedimientos para ocultar información utilizando los siguientes campos del datagrama. ] Campo “Identicación IP”: 16 bits ocultos por datagrama. ] Campos no utilizados. Por ejemplo, ag DF (Don´t Fragment) cuando no hay segmentación de datagrama. ] Utilizar el campo “dirección IP origen” para ocultar información. Con este procedimiento se puede ocultar 32 bits por datagrama. ] Uso del campo Relleno, consiguiendo hasta 31 bits por datagrama. Unos procedimientos permiten ocultar más información que otros. En cualquier caso, siempre es posible combinarlos para conseguir una mejor tasa de información oculta. A continuación se analizan algunos de estos a modo de ejemplo. 7.2.2.1 MANIPULACIÓN DEL BIT DF EN EL DATAGRAMA IPV4 El diseño del protocolo IPv4 consideró diversas situaciones para facilitar la interconexión de redes heterogéneas, en este caso el acceso entre diferentes redes físicas. Es importante el concepto de la Unidad Máxima de Transmisión o MTU. La MTU es un parámetro que depende de una red física concreta, e indica el tamaño máximo de datos de una trama en el nivel de enlace (nivel por debajo del protocolo IPv4 que encapsula los datagramas y los envía por el medio físico). En consecuencia, cada interfaz física tiene una MTU, cuyo valor es función de la red a la que está conectada. Por ejemplo, DIX-Ethernet 1.500 octetos, IEEE 802.5 4.464 octetos, etc. Siempre que el nivel IPv4 tiene un datagrama que enviar, determina la interfaz física por la que va a efectuar el envío y comprueba la MTU de dicha interfaz. Una vez realizados estos pasos si el datagrama IPv4 a enviar tiene un tamaño menor o igual que el valor de la MTU, el datagrama IPv4 se encapsula en una única trama del nivel de enlace. Por el contrario, si el datagrama IPv4 tiene un tamaño mayor que el valor de la MTU, el nivel IPv4 ejecuta la fragmentación, rompiendo el datagrama IPv4 en varios fragmentos, cada uno de los cuales se encapsula en una trama del nivel de enlace diferente; dicha fragmentación puede producirse en la máquina origen o en un router intermedio. © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 217 A todos los efectos, cada fragmento se comporta como un datagrama nuevo, tiene su propia cabecera IPv4 y se puede encaminar de forma independiente al resto de los fragmentos. Para evitar problemas en la red, el ensamblado solo tiene lugar en el destino nal, siempre y cuando reciba todos los fragmentos. Si esto no es posible el equipo nal descarta todos los fragmentos recibidos transcurrido un tiempo. Para permitir el mecanismo de fragmentación y ensamblado se habilitan en cada datagrama IPv4 dos ags (2 bits): bit DF (Don´t Fragment) y bit MF (More Fragment). Un datagrama sin fragmentar tiene MF = 0 y el campo Desplazamiento de fragmentación a 0, esto permite que DF, teóricamente, pueda tener indistintamente un valor de 0 o 1, considerando el tamaño máximo del datagrama. Teniendo en cuenta esto, se puede realizar un algoritmo de empaquetado que usando la estrategia de fragmentación del protocolo IPv4, use el bit DF para enviar información oculta. La idea consiste en que mientras que no se supere la MTU, ningún datagrama será fragmentado, aunque se indique explícitamente lo contrario en el bit DF. Así, por ejemplo, dadas dos estaciones en la misma red (con conocimiento previo de la MTU) se puede establecer un canal encubierto entre una comunicación de datos ordinaria, para intercambiar datos ocultos. Utilizando únicamente esta técnica se consigue poca capacidad efectiva por datagrama para el canal encubierto ya que solo se puede ocultar un bit por datagrama IP enviado. La cantidad total de información posible a enviar por segundo dependerá claramente de las propiedades y velocidad de la red (datagramas/segundo). 7.2.2.2 MANIPULACIÓN DEL CAMPO DE IDENTIFICACIÓN EN EL DATAGRAMA IPV4 La cabecera IPv4 incluye un campo de 16 bits denominado “Identicación”. Este campo se utiliza para identicar unívocamente todos los fragmentos de un datagrama IPv4, por ejemplo, cuando un datagrama se segmenta en varios trozos estos tienen el mismo identicador. La entidad origen lo rellena, garantizando que no se repita este valor durante el tiempo de vida del datagrama IPv4, para la misma dirección IPv4 origen, dirección IPv4 destino y tipo de protocolo. Este campo permanece inalterable a lo largo de todo el camino hasta llegar al destino. Dadas estas características sería interesante utilizar este campo para crear un canal oculto de información. Para ello sería necesario generar un algoritmo que ocultara la información en el campo cumpliendo las condiciones anteriores. A modo de ejemplo, se puede desarrollar un algoritmo intuitivo para un entorno de red local para comprender el procedimiento, aunque algo ineciente e inseguro. 218 ESTEGANOGRAFÍA © RA-MA Un usuario A que conoce el procedimiento decide utilizar una implementación que utiliza de los 16 bits 4 bits para transmitir información útil. Los 12 bits restantes (212 = 4.096) se utilizan para añadir un número único que se incrementa en una unidad cada vez que se envía un paquete. De esta manera podemos numerar 4.096 paquetes con identicador diferente en la red, y suponer que esta medida impide que se duplique el valor del identicador en dos datagramas en la red para la misma IPv4 origen, IPv4 destino y tipo de protocolo. En general, el valor del identicador es cíclico, y por tanto, cuando llega al valor máximo retorna a 0. Hasta retornar al valor 0 el receptor debe haber recibido el datagrama anterior numerado con este identicador. Con este simple procedimiento un usuario A podría comunicar 4 bits de información oculta a un usuario B por datagrama IPv4. 7.2.2.3 MANIPULACIÓN DEL CAMPO DE DIRECCIÓN ORIGEN EN UN DATAGRAMA IPV4 En el mundo de la seguridad informática es conocida la técnica de IPspoong por ser un procedimiento que permite falsear la dirección IP origen de un datagrama enviado a un cierto destino. Esta técnica se puede utilizar, clásicamente, bien para ocultar la identidad del emisor o para falsicar la identidad de otro usuario utilizando su IP. Desde el punto de vista de la esteganografía, y para todos aquellos entornos en los cuales la información de la dirección IP origen no repercute en el adecuado progreso de la comunicación (en la mayoría), este campo puede ser utilizado para ocultar 32 bits por datagrama. La información a ocultar debe estar codicada con formato de dirección IPv4 real (recordar que una dirección IPv4 está formada por 4 octetos, cada uno de ellos con valores de 0 a 255), vericando si elementos intermedios limitan el uso de ciertos valores en el campo origen (la dirección destino es la que se utiliza para el encaminamiento). 7.2.3 Canales encubiertos en protocolos de gestión e ICMPv4 El protocolo ICMP (Internet Control Message Protocol) es un protocolo de control de nivel de red denido en la RFC 792. La utilidad de este protocolo es diversa, una de sus características es que permite a los routers intermedios o a la máquina destino enviar mensajes ICMP de error, destinados a la máquina origen o a otros routers, cuando ha ocurrido un problema de entrega del datagrama IP. Por ejemplo, esta circunstancia se da cuando un router descarta un datagrama porque © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 219 tiene su memoria llena. 241 Otro uso permite a una máquina origen enviar mensajes ICMP de consulta (query) de forma que un router o máquina destino responda con otro mensaje ICMP de respuesta a esa consulta. Estos mensajes facilitan la detección, por ejemplo, de si una máquina sigue funcionando en una determinada red. 242 Para facilitar todo el intercambio de información, se dene la unidad de datos de este protocolo, denominado mensaje ICMP, y se encapsula como datos de usuario en los datagramas del protocolo IP (en su cabecera con el campo “Protocolo=1”). El formato del mensaje ICMP se puede ver como: Figura 7.3. Encapsulación de un mensaje ICMP en un datagrama IP ] Tipo (8 bits): identica el tipo de mensaje ICMP. ] Código (8 bits): especica un mensaje dentro de un tipo dado. ] Suma de vericación (checksum) (16 bits): verica el contenido del mensaje ICMP. Utiliza el mismo algoritmo de vericación de errores que el protocolo IP. En el receptor ICMP se calcula la suma de vericación ICMP y se compara con la suma de vericación ICMP recibida; de forma que, si no coinciden, se descarta el mensaje ICMP. 241 Es interesante recordar que el protocolo IP es un protocolo no orientado a la conexión y sin conrmación de entrega; en este aspecto el protocolo ICMP complementa las deciencias de IP. 242 Existen propuestas en las que también se aprovechan IPv6 e ICMPv6 para la ocultación de información: Covert Channel Using ICMPv6 and IPv6 Addressing. http://worldcomp-proceedings. com/proc/p2015/SAM7036.pdf. 220 ESTEGANOGRAFÍA © RA-MA Existen muchos mensajes ICMP, algunos de ellos son: Tipo Código 0 0 3 Descripción Echo reply (ping replay) Destination unreachable 0 Network unreachable 1 Host unreachable 2 Protocol unreachable 3 Port unreachable 8 0 Echo request (ping request) 17 0 Address mask request 18 0 Address mask reply Tabla 7.1. Algunos mensajes ICMP posibles Una vez conocido el funcionamiento de este protocolo se puede comprender algunas de las técnicas de ocultación publicadas. Algunos de los procedimientos documentados permiten, por ejemplo, ocultación de información mediante mensajes ICMP address mask request y mensajes ICMP echo request/response. Por ejemplo, en este último caso cuando se quiere comprobar que una estación está accesible se suele utilizar la aplicación “ping”, que en último lugar envía un mensaje de solicitud ICMP Eco Request y queda a la espera de un mensaje de respuesta ICMP Eco Reply. El tamaño del campo de datos de estos mensajes (que básicamente contienen un campo de identicación del proceso que envía el mensaje y un número de secuencia, ya que se pueden enviar varios mensajes ICMP de solicitud de eco) es variable lo cual permite añadir información adicional que no suele ser analizada y permite crear canales encubiertos. Una herramienta mítica para probar esta técnica es la herramienta ptunnel, que permite crear canales encubiertos con conexiones TCP utilizando paquetes ICMP echo request/response. La herramienta está disponible para varios sistemas operativos. Una copia para el sistema operativo Microsoft Windows y un tutorial pueden encontrarse en: http://neophob.com/2007/10/pingtunnel-for-windows-icmp-tunnel/. Otra técnica posible (router solicitation) es cuando una máquina envía una solicitud después del arranque para solicitar que los routers en la red local respondan inmediatamente con un mensaje ICMP message router advertisement. En esta solicitud se observa una palabra de 32 bits de uso reservado. Estos bits pueden usarse para un canal encubierto. La variedad de técnicas de ocultación posibles con este protocolo ha permitido la creación de numerosas herramientas para crear canales ocultos que, © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 221 si bien pueden evitarse, pueden ser más o menos difíciles de detectar. Mecanismos tan sencillos como estos son utilizados por troyanos, como en el pasado lo fue el conocido BO2K 243 (Back Orice 2000), que una vez instalados en la máquina víctima, utilizando un túnel ICMP, permiten establecer un control remoto completo del PC infectado. Las intenciones de este tipo de troyanos dependen de las intenciones del atacante, desde el robo de datos o la utilización de la máquina zombi para lanzar ataques DoS (Denial or Service) a otras máquinas hasta como tapadera para ataques informáticos a otros equipos. La utilización de cortafuegos no soluciona estos problemas, a no ser que se bloquee explícitamente el tráco ICMP. 7.2.4 Canales encubiertos en protocolos de transporte. Protocolo UDP/TCP 7.2.4.1 ESTEGANOGRAFÍA EN EL PROTOCOLO UDP El protocolo UDP (User Datagram Protocol) es un protocolo de nivel de transporte, denido en la RFC 768. UDP es un protocolo no orientado a conexión, es decir, para transferir datos entre dos entidades del nivel UDP no es necesario que, de forma previa, se establezca una conexión entre ellas. Cada paquete UDP es independiente de los demás. UDP es un protocolo no able porque no garantiza la entrega de datos al destino, los datos pueden perderse, duplicarse o entregarse desordenados. No obstante, la rapidez en el establecimiento de la comunicación (requisitos de retardo) y la reducida sobrecarga en información de control enviada convierten a este protocolo en un candidato ideal para la transmisión de audio y vídeo en tiempo real, y su utilidad en otros protocolos como DNS, SNMP, NFS, TFTP, DHCP, etc. Un paquete UDP se puede ver de la siguiente manera: Figura 7.4. Cabecera de un paquete UDP 243 https://en.wikipedia.org/wiki/Back_Orice. 222 ESTEGANOGRAFÍA © RA-MA ] Puerto origen/destino (16 bits-16 bits): indica el puerto que usa la aplicación para enviar-recibir el paquete UDP. Este protocolo maneja el concepto de puerto UDP que permite identicar distintas aplicaciones dentro de una máquina. ] Longitud total (16 bits): especica la longitud total del paquete UDP (cabecera+datos) en octetos. Este campo es redundante, ya que se puede obtener también de los campos de la cabecera IP (protocolo sobre el que se encapsula). ] Suma de vericación (16 bits): analiza que la información recibida en el receptor coincide con la suma de vericación calculada en el emisor. Conocida esta información, y al igual que en otros protocolos, es posible la creación de canales encubiertos. Entre las técnicas publicadas destacan, por ejemplo, la utilización del campo “Puerto origen” y/o el campo “Suma de vericación” con nes esteganográcos. 1. Manipulación del puerto origen UDP El campo “Puerto origen UDP” permite indicar al receptor el puerto por el cual el emisor está transmitiendo información al receptor. Este campo puede ser utilizado para ocultar 16 bits por paquete UDP enviado. Hay multitud de situaciones en las cuales el receptor no necesita conocer el puerto origen de transmisión, por ejemplo, en el establecimiento de una comunicación unidireccional de transmisor a receptor. 2. Manipulación de la suma de vericación La intención de este campo es que el receptor de una comunicación UDP pueda detectar errores en el paquete UDP recibido. Sin embargo, esta es una información redundante, y puede ser utilizada para ocultar información. Un receptor previamente congurado podría recibir paquetes UDP con información oculta en este campo, al recalcular la suma de vericación del segmento recibido y compararlo con el presente en el campo “Suma de vericación” comprobaría que se ha producido un error, en este caso, en lugar de descartar la información la daría como buena. Esta técnica tiene el inconveniente de que si se produce un cambio de información en el paquete durante el tránsito de origen a destino se daría por buena, ya sea en la información de usuario o en la propia suma de vericación creada ad hoc. De cara a un canal encubierto esto se podría © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 223 solucionar parcialmente considerando que actualmente los medios de transmisión son muy buenos, lo que minimiza los fallos, y que la propia información ocultada podría contener información de vericación para los datos ocultos. En principio, esto dependerá del entorno práctico donde se aplique, los datos enviados en el campo de datos de usuario, no importa que pudieran tener errores, porque no van a ser utilizados por los usuarios que intercambian información por el canal encubierto. Simplemente actúan de señuelo, aunque se puede diseñar otra estrategia. 7.2.4.2 ESTEGANOGRAFÍA EN EL PROTOCOLO TCP Uno de los protocolos esenciales en la torre de protocolos TCP/IP y que se ha impuesto como protocolo estándar en las comunicaciones en Internet es el protocolo TCP (Transmission Control Protocol). Este es un protocolo de nivel de transporte denido en la norma RFC 793. Entre sus características principales destacan: ] TCP es orientado a conexión. Es necesario el establecimiento previo de una conexión entre estaciones que deseen comunicarse. Finalmente debe ser liberada. ] Conexión extremo a extremo. ] Proporciona transferencia bidireccional simultánea e independiente. ] Protocolo able y control de ujo. Envío de octetos de datos numerados secuencialmente en cada dirección, recibiendo conrmaciones (acks) de los octetos desde la dirección destino. Garantizan entrega ordenada, sin duplicación y sin pérdidas. Permiten variar el número de octetos a enviar en función de la ocupación del buffer (memoria) del receptor, evitando saturarlo y que se produzcan pérdidas. ] Temporizador de retransmisión. El envío de octetos de datos provoca la activación de un temporizador de retransmisión, si vence dicho temporizador sin conrmación de los octetos enviados, estos se retransmiten. ] Soporta varias conexiones sobre el mismo puerto (bien porque cambia el valor de la dirección IP o el puerto origen del emisor). 224 ESTEGANOGRAFÍA © RA-MA La unidad de datos del protocolo a nivel TCP es el segmento TCP, que se encapsula en datagramas IP (clásicamente IPv4), con el campo “Protocolo del datagrama IPv4 = 6”. En esencia, una conexión TCP está formada por dos puntos extremos, que se comunican a través de direcciones TCP (clásicamente, dirección IPv4 más puerto TCP de la aplicación). Un segmento TCP se estructura de la siguiente manera: Figura 7.5. Estructura de un segmento TCP ] Puerto origen (16 bits): identica el puerto que utiliza la aplicación que envía el segmento TCP. ] Puerto destino (16 bits): identica el puerto que utiliza la aplicación que debe recibir el segmento TCP. ] Número de secuencia (32 bits) y Número de conrmación (32 bits): facilitan al protocolo TCP la tarea de numeración y conrmación de los octetos enviados (acuse de recibo). ] Longitud de la cabecera (4 bits): longitud total de la cabecera del segmento TCP, incluidos las opciones y los bits de relleno, representada en unidades de 4 octetos. El valor por defecto de este campo es 5 (cabecera TCP, sin opciones ni relleno, de 20 octetos). ] Reservado (6 bits): reservado para uso futuro. © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 225 ] Flags (6 bits): campo con 6 bits que determinan el propósito y contenido de un segmento TCP. ● URG: envío de datos en modo urgente. El contenido del campo “Puntero de datos urgentes” es válido. ● ACK: conrmación de octetos de datos. El contenido del campo “Número de conrmación” es válido. ● PSH: indica al receptor TCP que entregue inmediatamente los datos del segmento a la aplicación. ● RST: indica la terminación de la conexión TCP, de forma “brusca”, por parte del nivel TCP. ● SYN: en el establecimiento de la conexión TCP, para sincronizar los números iniciales de secuencia, en cada extremo de la conexión. ● FIN: indica la terminación de la conexión TCP, de forma ordenada, por parte de la aplicación (usuario). ] Tamaño de ventana (16 bits): número máximo de octetos de datos que el extremo emisor del segmento está dispuesto a aceptar, a partir del último octeto de datos recibido y conrmado. ] Suma de vericación (16 bits): útil para la comprobación en el receptor de la vericación del segmento recibido. ] Puntero de datos urgentes (16 bits): este campo tiene sentido si el ag URG está a “1” (en caso contrario, se ignora) e identica el número de secuencia del último octeto de datos urgentes que se encuentra en el segmento TCP. Cuando se recibe un segmento TCP con el ag URG = “1”, el receptor TCP envía inmediatamente los datos urgentes a la aplicación. ] Opciones (variable): es un campo opcional, donde se indican facilidades adicionales proporcionadas por el protocolo TCP. ] Relleno (variable): conjunto de bits de relleno para que la longitud de la cabecera del segmento TCP sea múltiplo de 32 bits. Complementando a esta información, la fase de establecimiento de la conexión de este protocolo es una de sus características más interesantes. Precisamente durante la fase de conexión entre dos extremos se puede negociar el tamaño máximo del campo de datos del segmento TCP (MSS, Maximun Segment Size) cuyo objetivo es evitar la fragmentación de segmentos TCP por limitación de los niveles inferiores (MTU, Maximum Transmission Unit). La negociación básica para establecer una 226 ESTEGANOGRAFÍA © RA-MA conexión con un protocolo TCP, negociación en tres sentidos (three way handshake), se puede ver como: 1. Primero uno de los extremos de la comunicación envía un segmento de sincronización (ag SYN) con un número inicial de secuencia (ISN), que posteriormente le permite numerar los octetos intercambiados en ese sentido de la comunicación, y el puerto del otro extremo con el que desea conectar. Este segmento SYN a efectos de conrmación equivale a enviar un byte de datos. 2. El otro extremo responde conrmando la solicitud, empleando un segmento con los ags activados SYN y ACK. 3. Finalmente la negociación concluye con el envío de un último segmento de conrmación (ag ACK) por parte del equipo que inicia la negociación. Figura 7.6. Negociación three way handshake en TCP Partiendo de toda esta información previa, se puede comprender algunas de las diversas formas de ocultación de información publicadas utilizando este protocolo; entre las técnicas más conocidas se pueden destacar las basadas en: el campo Número inicial de secuencia (32 bits por conexión), el campo Relleno (hasta 31 bits por segmento), el campo Puntero de datos urgentes (16 bits por segmento) y el campo de bits Reservados (6 bits por segmento). Veamos a continuación algunas de ellas. 1. Técnica de ocultación mediante el campo “Número inicial de secuencia” El protocolo TCP utiliza el campo “Número inicial de secuencia” para permitir un funcionamiento able del protocolo, permitiendo © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 227 conrmación a nivel de octeto de los datos enviados. Este valor también puede ser negociado durante el establecimiento de la conexión. Una vez comprendido el funcionamiento del establecimiento de conexión TCP, se puede comprobar que este campo es un medio idóneo para ocultar información proporcionando 32 bits por segmento. Existen diversos procedimientos para utilizar con éxito este campo, pero uno de los más habituales consiste en ocultar directamente la información en él. La idea es que una máquina origen oculte su información en este campo y mediante sucesivos establecimientos de conexión, que nunca completa, el receptor sea capaz de ir almacenando esa información recibida en cada segmento con ag SYN. De esta forma tan simple se puede crear un canal encubierto con TCP. Una herramienta que permite esta funcionalidad es por ejemplo la herramienta gratuita Covert_TCP para plataformas UNIX. El uso de este tipo de herramientas es muy sencillo. Simplemente es necesario descargarla y seguir los pasos denidos en su manual. 244 Figura 7.7. Ejemplo de uso de Covert_TCP para enviar un mensaje oculto “Hello there.” 244 Covert_TCP File Transfer for Dummies using Linux. http://dunnesec.com/category/tools/covert_ tcp/. 228 ESTEGANOGRAFÍA © RA-MA Figura 7.8. Ejemplo de uso de Covert_TCP esperando recibir un mensaje oculto de una dirección IP destino Otra técnica posible consiste en establecer una conexión TCP con un extremo, utilizar el campo “Número inicial de secuencia” en el establecimiento de la conexión para ocultar información, y una vez establecida, por ejemplo, establecer un canal encubierto utilizando el protocolo IP sobre el que se encapsula TCP. Mientras tanto el campo de datos de usuario de TCP podría contener la información deseada, ya fuera información de pega o útil para otro tipo de aplicación. Independientemente de la técnica de ocultación creada debe recordarse que el número inicial de secuencia se utiliza para ir numerando y conrmando los octetos enviados en la conexión con un extremo. Se debe prestar especial atención a que si se utilizan números iniciales de secuencia personalizados y se establece una conexión, estos números no deberían ser fácilmente predecibles por un atacante externo. 245 El ataque conocido como TCP Hijacking (ataque de hombre en el medio), se puede aprovechar del conocimiento de los números iniciales de secuencia y del número de octetos transmitidos para suplantar la identidad bien del emisor o del receptor, con los posibles inconvenientes que supone esto. 245 ZALEWSKI, M.; Strange Attractors and TCP/IP Sequence Number Analysis - One Year Later. http://lcamtuf.coredump.cx/newtcp/. © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 229 2. Técnica de ocultación mediante el campo “Puntero de datos urgentes” Una técnica de creación de canales encubiertos en TCP se puede apoyar en el bit URG. Este ag indica si hay envío de datos en modo urgente, es decir, datos que se envían y que el receptor debe entregar inmediatamente a la aplicación en el receptor. Para facilitar esta tarea el segmento TCP contiene un campo denominado “Puntero de datos urgentes”. Cuando este ag está activado (URG = 1) indica dónde comienza la parte de datos urgentes. Esta característica permite la creación de canales de información ocultos. El campo “Puntero de datos urgentes” solo es válido cuando URG = 1, si URG = 0 este campo es ignorado. Este hecho permite la capacidad de enviar 16 bits por segmento de forma oculta en todo segmento que tenga URG = 0. En cualquier caso, esta u otras técnicas podrían ser evitadas validando que los campos no utilizados tengan siempre un valor prejado en los protocolos telemáticos. 7.2.5 Ocultación de información en protocolos de aplicación En los apartados anteriores, se han analizado algunos ejemplos muy famosos de ocultación de información en protocolos de comunicación utilizados, en nuestro día a día, en las comunicaciones en Internet. Hoy en día, quizás por su facilidad de utilización en redes heterogéneas, multitud de propuestas esteganográcas se desarrollan en protocolos de aplicación. Protocolos de comunicación que intercambian información apoyándose en protocolos de transporte e interconexión como TCP/IP. De esta forma, es sencillo ver como protocolos tan famosos como HTTP, DNS,246, 247 IRC248 o incluso protocolos P2P 249 tienen uso esteganográco. De nuevo, el límite de uso esteganográco de cada protocolo depende de la imaginación de los diseñadores y de los atacantes. 246 Detecting DNS Tunneling. https://www.sans.org/reading-room/whitepapers/dns/detecting-dnstunneling-34152. 247 Malware Turns to DNS and Steganography to Hide C&C Communications. http://news.softpedia. com/news/ malware-turns-to-dns-and-steganography-to-hide-c-c-communications-496437.shtml. 248 Covert channels within IRC. http://www.dtic.mil/dtic/tr/fulltext/u2/a540273.pdf. 249 StegTorrent: a Steganographic Method for the P2P File Sharing Service. http://www.ieee-security. org/TC/SPW2013/papers/data/5017a151.pdf. 230 ESTEGANOGRAFÍA © RA-MA La utilización de protocolos de aplicación para enmascarar información tiene todo el sentido del mundo. Habitualmente si se desea controlar remotamente equipos infectados o fuga de información sensible se necesita que los protocolos a utilizar no estén bloqueados por las medidas de seguridad perimetral (típicamente, cortafuegos). Un ejemplo clásico es el protocolo HTTP o DNS, 250,251 necesario en la mayoría de las organizaciones para la búsqueda de información en Internet. Estos protocolos son los mejores candidatos para establecer canales encubiertos. De hecho, los creadores de malware se dieron cuenta hace años del potencial de estos protocolos y los usan masivamente para crear canales encubiertos que les permitan controlar y robar información de las máquinas infectadas sin levantar sospechas. 7.2.5.1 ESTEGANOGRAFÍA EN EL PROTOCOLO HTTP El protocolo HTTP (Hyper Text Transfer Protocol, RFC 2616), o protocolo de transferencia de hipertexto, es un protocolo sin estado (no guarda ninguna información sobre conexiones anteriores) vital para la comunicación en Internet, especialmente para la web. Grosso modo, si se entiende por hipertexto el contenido de las páginas web, el protocolo de transferencia es un sistema mediante el cual se envían peticiones para acceder al contenido concreto de una página web, se produce la recepción de las respuestas del servidor que proporciona la información, así como el intercambio de información útil en ambos sentidos. Dicho de otra forma, el protocolo HTTP gestiona las peticiones y respuestas cuando, por ejemplo, un usuario se conecta e interactúa con su página web favorita desde un navegador. El tráco HTTP tiene una forma similar al siguiente ejemplo, donde se puede ver la petición que haría un navegador web a un dominio web y la respuesta para visualizar una página web concreta. GET / HTTP/1.1 Host: www.google.com User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 Accept: text/html,application/xhtml+xml,application/ xml;q=0.9,*/*;q=0.8 Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate DNT: 1 250 GÓMEZ, F. J. y DÍAZ, C. J.; Cloud Malware distribution: DNS will be your friend, Rooted CON 2011. https://vimeo.com/23057707. 251 DÍAZ, C. J. y GÓMEZ, F. J.; CMD: Look who’s talking too, Rooted CON 2012. https://vimeo. com/43984556. © RA-MA Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 231 Connection: keep-alive HTTP/1.1 302 Found Cache-Control: private Content-Type: text/html; charset=UTF-8 Location: http://www.google.es/?gfe_rd=cr&ei=l8icVpuFAo6t8wf_ qoOoBQ Content-Length: 258 Date: Mon, 18 Jan 2016 11:12:23 GMT Server: GFE/2.0 ¿Qué pasaría si las cabeceras del protocolo HTTP fueran utilizadas de diferente forma a como establece el estándar? La respuesta es sencilla, en los últimos años el protocolo HTTP se ha utilizado principalmente para encapsular otros protocolos no necesarios en la comunicación web, creando túneles esteganográcos. Esta funcionalidad es realmente interesante, sobre todo si se piensa que la enorme utilidad de los contenidos web ha hecho que muchas organizaciones se sientan obligadas a permitir este tipo de tráco en sus redes (este protocolo no suele estar bloqueado en los cortafuegos). Esta “circunstancia” permite saltarse ciertas políticas de seguridad establecidas en una organización o red informática. Por ejemplo, se puede encapsular el protocolo de transferencia de cheros FTP (File Transfer Protocol) a través de HTTP, lo que permitiría, por ejemplo, atravesar las reglas de ltrado de los cortafuegos corporativos, y robar o introducir información no permitida en la organización. En general, se puede llegar a encapsular casi cualquier información o protocolo de comunicación por HTTP. Muchas de las herramientas publicadas para ocultar información en protocolo HTTP (se adjuntan en el siguiente apartado) hacen uso de los métodos GET y POST (obtener o enviar información de/hacia una web) para el establecimiento de dichos canales encubiertos, facilitando canales de comunicación de otros protocolos como TCP o UDP a través de HTTP. Adicionalmente, existen otro tipo de técnicas interesantes basadas en el protocolo HTTP que facilitan la creación de canales de información subrepticios. 252 Por ejemplo, se ha publicado que es posible la creación de canales de información entre servidores web a través de los navegadores de los clientes, sin que estos últimos se den cuenta. Es un mecanismo muy curioso que transporta datos de manera indirecta. Esto se puede realizar mediante transmisión de datos utilizando 252 Por ejemplo, el troyano bancario VBKlip intercambia información con el servidor C&C (Command and Control) utilizando el protocolo HTTP. http://blog.trendmicro.com/trendlabs-securityintelligence/steganography-and-malware-why-and-how/. 232 ESTEGANOGRAFÍA © RA-MA redirecciones, cookies253, 254 y referer headers. En el caso de las redirecciones (redirects, RFC 2616) en páginas web, que se utilizan para trasladar al cliente a otra localización, se pueden utilizar con nes esteganográcos. La nueva localización (donde apunta la redirección) podría ser la URL de un script CGI ( Common Gateway Interface), que recibe parámetros a través de la variable de entorno QUERY_STRING. Este script CGI puede enviar datos aprovechándose de estos parámetros a través de los navegadores que navegan por Internet inocentemente. La capacidad de este canal estaría limitada al tamaño de los parámetros, es decir, 1.024 bytes/petición. 7.3 HERRAMIENTAS PARA CREAR CANALES SUBLIMINALES. NETWORK STEGANOGRAPHY Las técnicas analizadas en este capítulo corresponden a una rama de la creación de canales encubiertos en la que se ha publicado una gran variedad de documentación. No es posible, por el espacio reservado a esta temática profundizar mucho más. No obstante, el lector ya posee el conocimiento y las referencias adecuadas para profundizar todo lo que desee en esta cuestión. En último lugar, nalizamos este capítulo con una lista de algunas de las aplicaciones disponibles en Internet para la creación de canales encubiertos con protocolos telemáticos. Algunas de ellas con las técnicas descritas anteriormente. Si le interesa esta rama en concreto de la esteganografía le recomiendo que se tome su tiempo para probar y comprender cada una de ellas. Si está interesado en un protocolo en concreto, su buscador favorito le servirá de guía para localizar la mejor herramienta. ] Protocolo IPv4: StegTunnel 255 (campo “Identicación datagramas IP”). ] Protocolo TCP: Covert_TCP, 256 StegTunnel (campo “Número de secuencia”). 253 How to cook a covert channel with HTTP cookies. http://www.gray-world.net/projects/cooking_ channels/hakin9_cooking_channels_en.pdf. 254 www.gray-world.net/projects/cooking_channels/cooking_channels-1.1.tar.gz. 255 https://packetstormsecurity.com/les/31731/stegtunnel-0.4.tar.gz.html. 256 http://www.securityfocus.com/tools/1475. Capítulo 7. NETWORK STEGANOGRAPHY Y COVERT CHANNELS 233 © RA-MA ] Protocolo ICMP: troyano Loki 257 (ICMP echo Reply/ICMP echo request), IcmpShell, 258 Pingtunnel, 259 Timeshifter (intervalos de tiempo), 260 ICMPStegano. 261 ] Protocolo IPv6: VoodooNet (voodoon3t) 262 ,263 (IPv6 sobre IPv4), IPv6steganography. 264 ] Protocolo DNS: dnssteganography, 265 Netcross 266 (denise, dns2tcp, dnscapy, dnscat, heyoka, iodine, psudp, squeeza, TUNS). 267 ] Protocolo HTTP: HttpTunnel, 268 Firepass 269 (transferencia de datos TCP/UDP en mensajes HTTP POST), HCovert, 270 Cctt. 271 ] Protocolo Aplicación: MailTunnel, 272 MsnShell 273 (shell remoto Linux a través del protocolo MSN), StegTorrent, 274 g00gle Crewbots.275 257 https://en.wikipedia.org/wiki/Loki_%28computer%29. 258 http://icmpshell.sourceforge.net/. 259 http://www.mit.edu/afs.new/sipb/user/golem/tmp/ptunnel-0.61.orig/web/. 260 Transmissions of data through time based covert channels across a network. https://www.anfractuosity.com/projects/timeshifter/. 261 https://github.com/pshanoop/ICMPStegano. 262 Covert channel tool hides data in IPv6. http://www.securityfocus.com/news/11406. 263 IPv6/ICMPv6 Covert channels. https://www.defcon.org/images/defcon-14/dc-14-presentations/ DC-14-Murphy.pdf. 264 https://github.com/bpafoshizle/IPv6-Steganography. 265 https://code.google.com/p/dnssteganography/. 266 https://www.primianotucci.com/os/netcross-ip-over-dns-tunneling. 267 https://www.sans.org/reading-room/whitepapers/dns/detecting-dns-tunneling-34152. 268 http://http-tunnel.sourceforge.net/. 269 http://www.gray-world.net/pr_repass.shtml. 270 http://sourceforge.net/projects/hcovert/. 271 http://gray-world.net/projects/cctt/win32_cctt/. 272 http://www.securityfocus.com/tools/1309. 273 http://www.gray-world.net/es/pr_msnshell.shtml. 274 http://stegtorrent.sourceforge.net/. 275 http://www.gray-world.net/pr_gbot.shtml. 234 ESTEGANOGRAFÍA © RA-MA Adicionalmente, si desea inventar sus propias técnicas de ocultación existen lenguajes, herramientas y sistemas operativos que le facilitarán la creación de sus propias herramientas para manipular e interactuar a bajo nivel con paquetes de protocolos de comunicación, permitiendo la creación de canales ocultos entre un cliente y un servidor. Un ejemplo actual para realizar esto es la utilización de Scapy 276, 277 usando el lenguaje de programación Python. 278 276 http://www.secdev.org/projects/scapy/. 277 http://bt3gl.github.io/black-hat-python-innite-possibilities-with-the-scapy-module.html. 278 Ejemplo sencillo de ocultación en ICMP con Scapy. http://danteslab.blogspot.com.es/2008/10/ esteganografa-de-red.html. 8 ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES. UNIENDO CONOCIMIENTO 8.1 ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES. UNIENDO CONOCIMIENTO Internet y las demás redes telemáticas constituyen un escenario de comunicación por el que uyen de forma constante y permanente ingentes cantidades de datos. Son estas redes, por tanto, un medio idóneo para introducir información esteganograada debido al hecho de que, en principio, no es sencillo averiguar en cuales de los múltiples mensajes que uyen hay información oculta. Esta armación no es baladí. Si se centra el interés en la información que hoy en día circula exclusivamente por Internet la cifra es abrumadora. En 2010, 279 y han pasado unos años desde entonces, se enviaron más de 107 billones de correos electrónicos, 294.000 millones diarios (89,1% de los mails enviados eran spam). A nales de ese año había más de 255 millones de sitios web activos en todo el mundo, con un crecimiento de 21 millones anuales. Pero sin duda, lo más interesante fue la cantidad dinámica de información que se generó en blogs y redes sociales. En 2010 existían más de 152 millones de blogs. Se crearon 25.000 millones de tweets en Twitter. 280 En Facebook se instalaron al día 20 millones 279 Se utiliza esta fecha por el detalle de la información obtenida. No siendo signicativos, dado el volumen de datos observado, valores más actuales para justicar el razonamiento en curso. 280 How use twitter to control botnet. http://www.wired.com/2009/08/botnet-tweets/. 236 ESTEGANOGRAFÍA © RA-MA de aplicaciones. Cada día se visionaron 2.000 millones de vídeos en YouTube, cada minuto se añadieron 35 horas de vídeos. El número de fotografías de Flickr aumentó más de 5.000 millones. En Facebook se subieron 36.000 millones de imágenes al año, etc. Aunque estas cifras a día de hoy son antiguas, y sin destacar la información que se podría generar en países asiáticos, el lector comprenderá rápidamente los volúmenes de información de los que estamos hablando. Figura 8.1. Distribución de usuarios de Internet en el mundo Por tanto, Internet es un medio ideal para ocultar información de múltiples formas como se adelantó en los apartados anteriores. Solo hay que pensar en la posible ocultación de información en cheros de vídeo, audio, imagen, texto o mediante el uso de tecnologías web masivas (HTML, XML, HTTP, etc.) para comprender la magnitud del asunto. 281 En este punto surge una problemática que es importante resaltar. El uso de la esteganografía podría tener nes legítimos o ilegítimos, que pueden ser beneciosos para proteger la privacidad de las comunicaciones o ser vehículos, en el peor de los casos, para perpetrar actos criminales. La esteganografía, al igual que la criptografía, es una tecnología con doble uso y las agencias gubernamentales son conscientes de ello. Por ejemplo, el uso de herramientas criptográcas con usos terroristas 282 como 281 Un buen número de muestras de malware usan técnicas esteganográcas variadas, “caseras”, para establecer canales ocultos de información: SK Banker (comentarios en Pinterest), Janicab (comentarios en YouTube), Hammertoss (Twitter), etc. 282 ¿Qué es y cómo funciona el Mujahideen Secrets 2? http://www.segurpress.com/index.php/colaboradores/ editoriales/121-moyahidin.html. © RA-MA Capítulo 8. ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES 237 el Mujahideen Secrets 283 o herramientas de cifrado de la organización terrorista, autonombrada, Estado Islámico (ISIS). 284 Figura 8.2. Herramienta criptográfica Mujahideen Secrets Figura 8.3. Herramientas criptográficas de grupos terroristas 283 Mujahideen Secrets 2. https://www.schneier.com/blog/archives/2008/02/mujahideen_secr_1.html. 284 How Al-Qaeda Uses Encryption Post-Snowden (Part 2). https://www.recordedfuture.com/al-qaeda-encryption-technology-part-2/. 238 ESTEGANOGRAFÍA © RA-MA Por tanto, sería esperable, dado el potencial de estas técnicas de ocultación, que agencias gubernamentales dentro de su tarea de recopilación de inteligencia prestaran especial atención al uso y desarrollo de herramientas de estegoanálisis. Lo cierto es que, aun presuponiendo grandes infraestructuras de interceptación y procesamiento de telecomunicaciones e incluso colaborando (forzadas por la ley o no) con proveedores de contenidos (empresas propietarias de redes sociales, buscadores, etc.), la tarea de detectar esteganografía en Internet es buscar una aguja en un pajar. Además el lector no debe olvidar que siempre es posible ocultar información distribuyéndola en múltiples tapaderas y en múltiples proveedores, lo que hace que en la práctica la detección de esteganografía en Internet si se tienen en cuenta unas consideraciones mínimas de seguridad no pueda ser detectada. En terminología inglesa es común referirse a estas posibilidades como steganogram scattering285 (SGS), steganogram hopping286 (SGH) y multi-level steganography287 (MLS). Quizás, para algún lector, esta última armación puede parecer poco precavida, si algo sabemos en seguridad informática es que es mejor ser prudente en la manera en la que se arma la seguridad de un sistema. No obstante, en el caso que nos ocupa el uso de algoritmos esteganográcos con ciertas consideraciones de seguridad y su uso de forma distribuida y multiportador dan garantías de privacidad (invisibilidad) no conocidas hasta ahora (ver apéndice de estegoanálisis). En cualquier caso, sin necesidad de hilar tan no, en esta misma dirección es interesante abordar como la industria podría hacer frente al mal uso de las páginas web, Internet o redes sociales con este tipo de tecnología “invisible”. Es reseñable la aparición de herramientas automatizadas que simplican más, si cabe, el uso de la esteganografía, no centrándose exclusivamente en la ocultación de información en una tapadera concreta sino centrándose además en el modo o en el medio en el que esa tapadera (un estegotexto, una estegoimagen, etc.) es distribuida. Facilitando en gran medida su creación, distribución y consulta por parte de usuarios que deseen usar esteganografía en Internet, en redes sociales, u otro tipo de redes. Un ejemplo muy sencillo para entender esto es el que se ha utilizado durante años para la distribución de material protegido por derechos de autor y 285 Consiste en la posibilidad de trocear una información y ocultar información con diferentes técnicas esteganográcas en cada fragmento. 286 Utilizar múltiples técnicas esteganográcas que podrían ir variando periódicamente, incluso para un mismo canal encubierto. 287 Combinar todas las posibilidades del medio de transmisión para ocultar información a diferentes niveles. © RA-MA Capítulo 8. ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES 239 pornografía adulta utilizando servicios gratuitos en Internet como redes sociales o cuentas de correo electrónico. Un ejemplo sencillo son las tecnologías peer2mail 288 y herramientas como camuaweb o kamaleon. Era común, con este tipo de herramientas, coger la información a ocultar y a distribuir, típicamente películas, y trocearla en bloques de información, información que se enviaría de manera distribuida a diversas cuentas de correo electrónico. Era habitual que esta información en vez de ser enviada en un correo electrónico “normal” se “ocultara” en diversas imágenes digitales con una técnica EoF (copiar la información a ocultar al nal del chero). La persona que deseara obtener una película solo necesitaba conocer los proveedores (Gmail, Yahoo!, etc.) y las cuentas de correo gratuitas especícas para recuperar la información automáticamente. El servidor de correo servía de almacén y los correos electrónicos y sus adjuntos camuados la información a descargar. En este caso concreto, los proveedores (en nuestro ejemplo Google) se defendieron de este “ataque” bloqueando cuentas de correo electrónico que tuvieran muchos accesos desde direcciones IP muy diferentes. Aunque esta política era útil a corto plazo, en poco tiempo se creaban nuevas cuentas y se distribuía el contenido “ilegal” automáticamente de nuevo. El lector debe darse cuenta de que en ningún momento los proveedores (Google en nuestro caso) eran conscientes realmente de qué tipo de información estaban alojando ni de quién poseía el resto de información para tener la totalidad de ella. ¿Qué puede hacer un proveedor de servicios para evitar que usen sus redes mediante el uso de tecnologías esteganográcas? ¿Evitar ocultar contenido ilegal? ¿Malware? Bueno, en la práctica lo único que pueden hacer es realizar ataques activos a la información que almacenen. Con una alta probabilidad un proveedor de servicios no sabrá que tiene información en sus sistemas con datos ocultos. La mejor estrategia, dado que no puede saber si una información tiene o no datos enmascarados, es considerar que toda información que pase por sus sistemas tiene datos ocultos e intentar eliminarlos. Esa política de actuación, aunque funciona en determinados escenarios, tiene una serie de inconvenientes claros. Tradicionalmente un ataque activo implica modicar el contenido enviado por un usuario, en determinados escenarios esa modicación es posible sin afectar al resultado nal pero en otras ocasiones es peligroso y desaconsejable. Veámoslo con un par de ejemplos, olvidando por un momento el coste que implicaría realizar estas tareas y el posible retardo introducido en la comunicación/almacenamiento. 288 https://es.wikipedia.org/wiki/P2M_%28software%29. 240 ESTEGANOGRAFÍA © RA-MA ] Ejemplo 1: si un usuario sube una imagen en formato JPEG con datos ocultos a una red social, esta podría reformatear la imagen (por ejemplo, cambiando la resolución de la misma) para generar una nueva imagen que desde un punto de vista visual es igual pero que ha cambiado su codicación binaria lo suciente para eliminar cualquier presencia de información oculta, al menos para las técnicas más simples (LSB). Procedimiento común en redes sociales. ] Ejemplo 2: un proveedor de servicio accede a todas las imágenes que gestiona en formato BMP y machaca con información aleatoria el bit menos signicativo de la codicación de cada píxel. Si existen datos ocultos estos desaparecerán y en principio la imagen se verá exactamente igual. Por desgracia, existen inconvenientes claros que desaconsejan este tipo de políticas de una forma generalizada. En primer lugar si un proveedor modica el contenido del usuario es probable que el usuario sea consciente de ese cambio e intente/evite el proveedor o intente saltarse esa medida de protección particular (veremos esto a continuación en el caso particular de la red social Facebook). Pero sobre todo el mayor problema tiene que ver con la integridad y autoría de los datos del usuario. Imagínese que envía un contenido (una imagen digital, un vídeo, un PDF, etc.) con una rma digital adjunta para facilitar la vericación del origen de esa información (el usuario que la rma es quien dice ser) y la integridad de la misma (los datos son los que precisamente el usuario que rma creó). La modicación automática del contenido provocaría que la rma digital al ser validada en el destino no fuera válida y por tanto rápidamente emisor y receptor (personas que probablemente ni hayan oído hablar en su vida de lo que es la ciencia de la esteganografía) dejarían de usar ese proveedor de servicios por no ser “conable en el envío de sus datos”. En resumen, aunque suene atractiva esta idea en la práctica no es factible activarla (para cualquier servicio). Lo cual es una pena porque la aparición herramientas de ocultación versátiles y fáciles de utilizar no deja de crecer. Existen varias herramientas más que son buen ejemplo de este tipo de funcionalidad. Quizás una de las más conocidas sea StegPage. 289 Esta herramienta combina ocultación en imágenes digitales y distribución. Para ello, selecciona todas las imágenes disponibles en una página web y oculta la información en ellas. El proceso de ocultación consiste en trocear la información a ocultar introduciéndola equitativamente en cada imagen disponible usando la herramienta esteganográca 289 http://stegpage.sourceforge.net/downloads.php. © RA-MA Capítulo 8. ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES 241 Steghide 290 . Por tanto, ya no es una cuestión exclusiva de cómo de seguro 291, 292 es el procedimiento de ocultación, en este caso la herramienta Steghide, sino más bien de si un atacante será capaz de aplicar estegoanálisis y detectar las múltiples imágenes que contienen esos trozos de información (en una o más páginas web). Adicionalmente, el atacante debería conocer la forma en la que reordenar esos trozos para recuperar la información enmascarada. Con estas ideas en mente creo que es interesante destacar en los siguientes apartados una serie de herramientas esteganográcas orientadas a la ocultación de información en páginas web y redes sociales que permitirán al lector comprender que la ciencia de la esteganografía solo está limitada, una y mil veces, por la imaginación del diseñador de algoritmos y herramientas. Figura 8.4. Ejemplo de uso de la herramienta Steghide. Más ejemplos en su web oficial: http://steghide. sourceforge.net/ 8.1.1 Navegador web esteganográfico. Camera/Shy Una herramienta conceptualmente interesante es la herramienta Camera/ Shy publicada en 2002 por el grupo de hackers cDc (cult of the dead cow) supuestamente para ayudar a activistas en países dictatoriales a comunicarse sin censura. Esta herramienta permite mediante un pseudonavegador web, basado en Internet Explorer, observar en una web, según se navega, qué imágenes GIF presentes 293 290 http://steghide.sourceforge.net/. 291 Steganalysis of audio: Attacking the Steghide. http://ieeexplore.ieee.org/xpl/login. jsp?tp=&arnumber=1527626& url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all. jsp%3Farnumber%3D1527626. 292 JPEG steganography and steganalysis – a review. https://link.springer.com/chapter/10.1007% 2F978-3-319-12012-6_20. 293 http://www.hacktivismo.com/public/pr/camerashy.php. 242 ESTEGANOGRAFÍA © RA-MA en esa página pudieran tener información ocultada previamente con esa misma herramienta. Su uso es muy sencillo una vez descargada la herramienta (spanishrelease0.2.23.1.bin).294 Una vez se realiza doble clic sobre el ejecutable spanish-release0.2.23.1.bin descargado se observa la siguiente pantalla principal: Figura 8.5. Pantalla principal de la herramienta esteganográfica Camera/Shy Para ocultar información en una imagen GIF con esta herramienta se debe deshabilitar la opción No mostrar la ventana de los contenidos ocultos en GIF del menú Ver. Una vez realizado esto podrá ver la siguiente pantalla. Si además deshabilita la opción Ocultar contraseñas en el menú Seguridad observará la contraseña con la que se protegerá la información a ocultar en el chero GIF elegido y la marca que se incrustará para identicar a dichos cheros. Para ocultar una información solo es necesario seleccionar una imagen con formato .gif y abrir el chero pulsando la echa azul que se indica en la gura siguiente. Una vez cargada puede introducir el texto que desee en el cuadro inferior a la derecha. Presionando el icono con el candado amarillo y después la echa azul de la derecha se modica la imagen con formato .gif creando una estegoimagen con los datos ocultos. 294 http://sourceforge.net/projects/camerashy/files/Spanish/Spanish%20CameraShy.exe/spanishrelease0.2.23.1.bin.exe/ download. © RA-MA Capítulo 8. ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES 243 Figura 8.6. Abrir o guardar una estegoimagen con Camera/Shy Figura 8.7. Ocultando información con Camera/Shy 244 ESTEGANOGRAFÍA © RA-MA Una vez realizado esto ya solo tendría que publicar la imagen en alguna página web de su interés. Navegando con normalidad la herramienta, dadas una contraseña y marca concretas, le avisará en qué imágenes de la página web se encuentra información oculta. Por ejemplo, el lector puede observar como en http:// stegsecret.sourceforge.net/ lleva oculta durante años una información en el chero ojo.gif. Para ver su contenido solo es necesario pinchar en el enlace que indica la herramienta Camera/Shy. Figura 8.8. Página web visualizada con Camera/Shy Figura 8.9. Recuperando información oculta con Camera/Shy © RA-MA Capítulo 8. ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES 245 Figura 8.10. Información ocultada en una red social con Camera/Shy Esta herramienta reeja claramente como la esteganografía puede convertirse en algo completamente usable y fácil de manejar para cualquier usuario. No obstante, esta herramienta debe utilizarse exclusivamente para nes educativos, ya que dependiendo de la cantidad de información a ocultar es insegura. Si se realizan estudios de ingeniería inversa se observa que utiliza una técnica LSB secuencial sobre la codicación de cada píxel del chero GIF; estas técnicas son detectables por los estudios estegoanalíticos actuales (depende del tamaño ocultado). Además, la información ocultada en los LSB secuenciales después de cifrada es convertida a base64, lo cual establece un patrón de detección. No es común que al recuperar los bits LSB secuenciales de un chero GIF la información tenga un formato en base64. Dado el interés en este tipo de herramientas es posible desarrollar utilidades parecidas con menos desarrollo y con mayor exibilidad utilizando extensiones para los navegadores web actuales. 8.1.2 Extensiones esteganográficas para navegadores web Las extensiones con capacidad esteganográca son una excelente opción para interactuar en Internet con información ocultada en diversos medios utilizando nuestro navegador actual. Por ejemplo, para el navegador Firefox podemos encontrar extensiones como Simple Steganography, 295 FireSteg296 o Hide in Plain Sight, 297 295 https://addons.mozilla.org/es/refox/addon/simple-steganography/. 296 https://addons.mozilla.org/en-US/refox/addon/resteg/. 297 https://addons.mozilla.org/es/refox/addon/hide-in-plain-sight/. 246 ESTEGANOGRAFÍA © RA-MA mientras que para otros navegadores como Chrome podemos encontrar extensiones (add-ons) como Secretbook. 298 Esta última extensión requiere un poco más de atención por presentar unas características interesantes. Si el lector recuerda de párrafos anteriores, un proveedor de contenidos, por ejemplo una red social, podría eliminar potencial información ocultada con esteganografía realizando ataques activos, es decir, transformando la imagen en otra lo más parecida posible para eliminar la información oculta. Muchos proveedores de servicios y contenidos en Internet realizan ataques activos sin saberlo. Un buen ejemplo es cuando se sube una fotografía a la red social Facebook y esta la reformatea (reescala) según sus criterios para adaptarla más adecuadamente a la forma en que Facebook muestra los contenidos. De esta forma tan sencilla cualquier tipo de información ocultada en una imagen mediante una técnica tradicional de LSB será eliminada. Sin quererlo, Facebook está realizando en la práctica un ataque activo que evita cierto tipo de esteganografía. Lógicamente, solo era cuestión de tiempo que algún investigador encontrara la manera de enmascarar datos en Facebook de manera sencilla. Este es el objetivo de la extensión Secretbook desarrollada en la Universidad de Oxford que permite no solo ocultar información en imágenes JPEG sino, lo más interesante, ser resistente a la recodicación que realiza Facebook cuando publicamos una imagen, no perdiéndose la información oculta. Figura 8.11. Extensión esteganográfica Secretbook 298 https://chrome.google.com/webstore/detail/secretbook/plglajddgpenmohgiemalpcfgjjbph?hl= en-GB. © RA-MA Capítulo 8. ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES 247 Esta extensión es solo un ejemplo del potencial en la creación de técnicas esteganográcas especícas para redes sociales (Twitter, Facebook, etc.). No obstante, no debe olvidarse tampoco el potencial de las redes sociales más difundidas para facilitar canales encubiertos que faciliten comunicaciones entre emisor y receptor en tiempo real (o casi). Un excelente ejemplo en Facebook es la herramienta Facecat del investigador español José Selvi. Esta herramienta permite establecer un canal encubierto a través del chat de Facebook, facilitando (command&control) el control remoto de sistemas atacados, leyendo las instrucciones “invisibles” enviadas por un atacante a una cuenta especíca de Facebook. En los siguientes enlaces puede consultar cómo utilizar esta herramienta y su código fuente. 299, 300,301 8.2 DISEÑA TUS PROPIAS HERRAMIENTAS. ALGORITMOS RESISTENTES A ATAQUES Si ha llegado a este apartado después de procesar todo el conocimiento reejado en este libro, enhorabuena. A partir de este momento comprenderá de verdad el potencial que tiene la ciencia de la esteganografía en las comunicaciones de hoy en día para propósitos variados. Poco más se puede reejar en estos folios, quizás unas últimas reexiones por si se aventura a desarrollar sus propios algoritmos y herramientas esteganográcas. Unos consejos para hacer su trabajo más fácil y, quizás, sus herramientas más seguras frente a potenciales estegoanalistas. 1. ¿Cuál es la mejor técnica esteganográca que puedo utilizar o implementar? Esta sin duda es la mejor y la primera pregunta cuando uno desea trabajar con esteganografía. Por desgracia, no hay una respuesta fácil. La respuesta genérica indicaría que depende del canal de transmisión por donde deseemos enviar la información que contendrá los datos ocultos, el tamaño deseado de información oculta y la tapadera elegida. A lo largo del libro el lector puede observar como en función del tipo de tapadera que utilicemos (puede venir impuesto por el canal de transmisión) la capacidad de ocultación será una u otra y esto afectará a la seguridad del mismo. Adicionalmente, dentro de un mismo tipo de tapadera, no todas las tapaderas son igual de útiles desde un punto de vista esteganográco. Por ejemplo, una imagen de alta resolución es más adecuada que una 299 http://www.pentester.es/2013/04/covert-channels-over-social-networks-y.html. 300 http://tools.pentester.es/facecat. 301 https://www.sans.org/reading-room/whitepapers/threats/covert-channels-social-networks-33960. 248 ESTEGANOGRAFÍA © RA-MA imagen con zonas de colores uniformes (el motivo se comprende fácilmente leyendo el capítulo 3). Gran parte de las técnicas mostradas en este libro, especialmente las de contenido multimedia, pueden utilizarse sin problemas para mensajes ocultos de pocas centenas de bits; recuérdese que en esencia los ataques estegoanalíticos son estadísticos, si existen pocas perturbaciones en un medio, estas técnicas no serán capaces de diferenciar una estegoimagen de una imagen real con su ruido natural. 2. ¿Es posible utilizar las técnicas estudiadas para ocultar grandes volúmenes de información? ¿Necesito conocer todas las técnicas de estegoanálisis? En un mundo ideal sí, pero lo más probable es que no sea así, y aunque lo fuera no todas las técnicas de detección son o se harán públicas, por tanto se debe asumir que en algún momento, aun poniendo interés, solo se conocerá un número parcial de ellas (véase los anexos del libro). En este sentido la recomendación sería la siguiente, intentar conocer el mayor número de ataques posibles para ver cómo de segura es la técnica que se implementa (facilitará ocultar más cantidad de información de manera invisible); una vez hecho eso analizar cuál es la mayor cantidad de información que se puede ocultar por tapadera intentando minimizar el número de modicaciones (matrices de codicación). Si este paso no es suciente para ocultar toda la información deseada es necesario utilizar múltiples tapaderas, del mismo tipo o diferente, para ocultar los datos deseados (distribución de la información). Si se decide ocultar los datos en Internet una excelente idea sería dicultar al atacante localizar la información, ya no solo al utilizar múltiples portadores almacenados en proveedores diversos, sino también utilizando trucos que eviten escaneos automáticos, por ejemplo, publicando la información en foros que tengan algún tipo de impedimento en el acceso como login-password, CAPTCHAS, etc. Obviamente, independientemente de la técnica de ocultación que utilice, es necesario evitar seleccionar cubiertas disponibles fácilmente en Internet. Por ejemplo, si desea ocultar una información en una imagen digital, no es buena idea utilizar una imagen de un repositorio público. Si un atacante encuentra la imagen original que se ha utilizado para insertar información, dando lugar a la estegoimagen, podría hacer simples comparaciones entre ellas, simplicando el trabajo de estegoanálisis. Un atacante utilizará buscadores inversos, como Google Images o TinEye, para localizar imágenes similares a una sospechosa y ver si puede realizar este tipo de ataques. © RA-MA Capítulo 8. ESTEGANOGRAFÍA EN INTERNET Y EN LAS REDES SOCIALES 249 Figura 8.12. Google Images permite localizar imágenes similares a una dada Figura 8.13. Buscador inverso de imágenes TinEye 3. ¿Necesito cifrar mis datos previamente? En teoría no, en la práctica sí. La seguridad, en nuestro caso privacidad y anonimato, es un proceso que se enriquece con un mayor número de procedimientos y técnicas que se acumulan para hacer más difícil la tarea del atacante. Es una buena práctica cifrar la información antes de ocultarla en una tapadera. En capítulos anteriores se destacó el proceso habitual seguido por un atacante para intentar detectar la información enmascarada por una técnica esteganográca. En primer lugar intentará detectar la presencia de información oculta. En segundo lugar intentará estimar el tamaño de los datos enmascarados. En tercer lugar intentará extraer la información de la tapadera y en último lugar recomponer la información recuperada e intentar extraer el mensaje oculto. 250 ESTEGANOGRAFÍA © RA-MA Si el algoritmo de ocultación no es trivial, en el mejor de los casos el atacante solo podrá llegar al paso dos, esto es así gracias al uso de la criptografía. Habitualmente, como se ha visto a lo largo del libro, los algoritmos esteganográcos se apoyan en generadores de números pseudoaleatorios para recomendarles qué posiciones del chero (en general o de una zona en particular) modicar. Por tanto, sin conocer la clave criptográca utilizada para generar esos números este paso no es factible. No obstante, supongamos que por algún mecanismo el atacante consiguiera detectar exactamente qué posiciones del chero han sido modicadas. En ese caso, al desconocer la clave utilizada para generar los números aleatorios, no se conocería la forma (orden) en la que se deben colocar los bits recuperados para intentar extraer el mensaje oculto. Aún más, si suponemos que fuera capaz de hacer esto se encontraría con un mensaje cifrado que no podría descifrar. En resumen, desde un punto de vista práctico el atacante lo que intentará será detectar exclusivamente la presencia de información oculta y si la encuentra atacar a la fuente que emite los datos de otra manera. 4. Negación plausible En el peor de los casos, que un atacante detecte la presencia de esteganografía en una tapadera enviada por nosotros, siempre nos quedará la opción de utilizar los principios de la negación plausible. Es decir, habilitar procedimientos que permitan crear una duda razonable sobre la no existencia de esteganografía, ya sea porque la propia técnica de ocultación lo habilite o porque generemos información adicional (dummy) para confundir al atacante. El uso de los principios de la negación plausible está presente en múltiples herramientas y protocolos criptográcos/esteganográcos para ocultar la presencia de su uso. Al nal, será posible negar de modo convincente que los datos están cifrados u ocultos, o ser capaz de descifrarlos/recuperarlos. La negación, aunque falsa, no puede ser vericada por el atacante sin la cooperación del usuario, que podría realmente no ser capaz de descifrar/recuperar los datos. La negación plausible 302 sirve para socavar la conanza del atacante y su duda se convierte en otra forma de protección. Un ejemplo signicativo de esta idea se puede ver en el uso de volúmenes ocultos de datos en herramientas de cifrado como Truecrypt (entre muchos otros ejemplos). 303 302 https://es.wikipedia.org/wiki/Cifrado_negable. 303 http://www.howtogeek.com/109210/the-htg-guide-to-hiding-your-data-in-a-truecrypt-hidden-volume/?PageSpeed= noscript. Anexo A HERRAMIENTAS CRIPTOGRÁFICAS MÁS COMUNES. CONFIGURACIÓN PASO A PASO En el presente libro se dedica un esfuerzo importante en la descripción y uso de técnicas esteganográcas en diferentes escenarios reales. Hoy en día, una sabia decisión es combinar la esteganografía con algoritmos criptográcos para garantizar la privacidad e indetectabilidad de las comunicaciones digitales. En el primer capítulo del libro, por no ser este el objetivo de este texto, se realiza un rápido resumen de la ciencia de la criptografía, destacando sus virtudes y defectos, recomendando al lector la lectura de textos especializados en profundidad si desea adquirir mayor conocimiento y destreza en esa ciencia. Obviamente, la criptografía es útil y necesaria en multitud de escenarios no solo para proteger nuestras comunicaciones ocultas sino, sobre todo, para proteger nuestros datos o sistemas si estos son vulnerados. Por ejemplo, si se produce una fuga de información utilizando un canal encubierto. Por este motivo, creo que es importante dedicar unas cuantas líneas al uso práctico de la criptografía en su día a día, algo que sin duda el lector menos experimentado agradecerá. En los siguientes párrafos se va a describir, de forma resumida, algunas herramientas criptográcas famosas, de fácil uso, para proteger las diferentes formas, las más comunes, que un usuario tiene para comunicarse o almacenar datos. Se describirá brevemente la conguración y uso de herramientas exclusivamente de software libre para cifrado completo de información en un disco duro y dispositivo de almacenamiento externo (por ejemplo, USB) y el cifrado de correo electrónico. El lector observará como es posible incrementar la protección de sus comunicaciones digitales con software disponible gratuitamente. 252 ESTEGANOGRAFÍA © RA-MA En cualquier caso el lector debe ser consciente de que cualquier herramienta de protección, aunque su código fuente esté disponible, tiene una complejidad muy superior a los algoritmos de protección que implementa, y por tanto, aunque los algoritmos criptográcos utilizados sean seguros (según los ataques publicados) la herramienta podría introducir fallos que podrían debilitarlos. Por este motivo, siempre es un buen consejo estar atento a la publicación de posibles vulnerabilidades y nuevas actualizaciones de las herramientas. Adicionalmente a este anexo, le recomiendo encarecidamente que visite el proyecto prism-break.304 Este proyecto aglutina una enorme cantidad de herramientas de protección para múltiples sistemas y mecanismos de comunicación. Del mismo modo, localice tutoriales que le simpliquen la instalación y conguración de estas herramientas. Por ejemplo, instalar el cifrado de mensajería instantánea con las herramientas Pidgin y OTR. 305 Figura A.1. Lista de tecnologías para mitigar las interceptaciones digitales 304 https://prism-break.org/en/all/. 305 https://info.securityinabox.org/es/usar_pidgin. © RA-MA Anexo A. HERRAMIENTAS CRIPTOGRÁFICAS MÁS COMUNES. CONFIGURACIÓN PASO A PASO 253 A.1 CIFRADO DE INFORMACIÓN ALMACENADA EN ORDENADOR. HERRAMIENTA VERACRYPT En la actualidad existen múltiples herramientas, 306 comerciales y gratuitas, para garantizar, o al menos intentar, la privacidad de nuestros datos. Hay gustos variados en función del sistema operativo que se desee utilizar. Pero sin duda, una buena herramienta para iniciarse en este tipo de tecnologías es Veracrypt 307 (surgida del proyecto Truecrypt 308, 309). En Internet encontrará diversos tutoriales de cómo instalar o utilizar esta herramienta multiplataforma para su sistema operativo favorito. A continuación, una vez instalada la aplicación, se muestra una serie de imágenes que le mostrarán lo sencillo que es cifrar un disco duro en un sistema operativo Microsoft Windows. En los ejemplos adjuntos se utiliza la última versión de Veracrypt (1.14) al escribir este libro. En las guras siguientes se destaca cómo crear un volumen cifrado de datos. Una unidad de datos en la que el lector podrá escribir y leer sus archivos de datos o ejecutar sus aplicaciones con normalidad. De forma transparente los datos serán cifrados y descifrados. Figura A.2. Proceso para crear un volumen cifrado con Veracrypt 306 Cifrado de discos: proteger tu privacidad de forma sencilla y efectiva. http://www.criptored.upm. es/crypt4you/temas/privacidad-proteccion/leccion2/leccion2.html. 307 https://veracrypt.codeplex.com/. 308 http://truecrypt.sourceforge.net/. 309 https://opencryptoaudit.org/. 254 ESTEGANOGRAFÍA © RA-MA Figura A.3. Creación de un volumen cifrado estándar con Veracrypt Figura A.4. Selección de los algoritmos criptográficos con los que se desea proteger el volumen de información cifrado © RA-MA Anexo A. HERRAMIENTAS CRIPTOGRÁFICAS MÁS COMUNES. CONFIGURACIÓN PASO A PASO 255 Figura A.5. Se selecciona el tamaño del volumen que almacenará los datos cifrados Figura A.6. Selección de clave criptográfica y preparación del volumen cifrado Figura A.7. Volumen de datos cifrado creado con éxito con Veracrypt 256 ESTEGANOGRAFÍA Figura A.8. Montamos (abrimos) un volumen de datos cifrados con Veracrypt Figura A.9. Introducción de clave criptográfica y apertura del volumen cifrado Figura A.10. Visualización de volumen cifrado con Explorador de Windows © RA-MA © RA-MA Anexo A. HERRAMIENTAS CRIPTOGRÁFICAS MÁS COMUNES. CONFIGURACIÓN PASO A PASO 257 En este punto el lector puede utilizar la unidad como otra unidad más de datos del sistema operativo Windows. Cuando desmonte la unidad (botón Dismount) los datos permanecerán cifrados y nadie podrá acceder a ellos en claro sin la clave criptográca. A todos los efectos el volumen cifrado es un chero que se almacenará en nuestro sistema de cheros protegido con criptografía. Un procedimiento similar se puede realizar para proteger la información almacenada en un dispositivo de almacenamiento externo, como por ejemplo un USB. Figura A.11. Seleccionamos la partición o dispositivo a cifrar Figura A.12. Seleccionamos el dispositivo USB a cifrar 258 ESTEGANOGRAFÍA © RA-MA Figura A.13. Requisitos para el cifrado de un dispositivo USB en Microsoft Windows Figura A.14. Selección de los algoritmos criptográficos y la clave utilizada para proteger la información de un USB © RA-MA Anexo A. HERRAMIENTAS CRIPTOGRÁFICAS MÁS COMUNES. CONFIGURACIÓN PASO A PASO 259 Figura A.15. Mecanismo de borrado de datos previo al cifrado de información en USB Figura A.16. Dispositivo USB preparado para almacenar datos cifrados 260 ESTEGANOGRAFÍA © RA-MA Una vez el dispositivo USB está preparado para cifrar transparentemente la información almacenada en él, el único paso necesario para utilizarlo es seleccionar el dispositivo y utilizar la unidad de datos (el USB) con normalidad. Una vez desmontado el dispositivo los datos almacenados en él estarán cifrados y no podrán ser accedidos sin la clave criptográca. Figura A.17. Selección y “apertura” del USB cifrado con Veracrypt © RA-MA Anexo A. HERRAMIENTAS CRIPTOGRÁFICAS MÁS COMUNES. CONFIGURACIÓN PASO A PASO 261 A.2 CIFRADO DE CORREO ELECTRÓNICO. THUNDERBIRD Y ENIGMAIL En este apartado se va a describir brevemente cómo poder congurar un cliente de correo electrónico (software libre) como el software Mozilla Thunderbird para el cifrado y rmado de correos electrónicos, garantizando privacidad, autenticidad e integridad de los mismos. El lector observará lo sencillo que es congurar hoy en día un cliente de correo electrónico para soportar criptografía. Al mismo tiempo observará uno de los principales motivos por los cuales hoy en día la mayor parte de la población no cifra sus correos electrónicos. Aunque el proceso de conguración es muy sencillo, no es un mecanismo transparente. Si deseamos comunicarnos de manera cifrada con otro interlocutor el receptor necesitará instalar un software similar, especíco para su cliente de correo, para descifrar la información. Para la correcta conguración del software de cifrado primero es necesaria la instalación del cliente de correo Thunderbird. 310 Este cliente de correo puede descargarse desde su página web. 311 Una vez instalado el cliente de correo es necesario instalar y congurar el software de cifrado para este cliente de correo. Para ello, es necesario descargar la extensión Enigmail 312 e instalarla a través del menú Herramientas à Complementos (Instalar complemento desde archivo). 313 310 https://info.securityinabox.org/es/como_instalar_thunderbird. 311 https://www.mozilla.org/es-ES/thunderbird/. 312 https://www.enigmail.net/home/index.php. 313 https://info.securityinabox.org/es/thunderbird_usarenigmail. 262 ESTEGANOGRAFÍA © RA-MA Figura A.18. Instalación de la extensión Enigmail314 Una vez instalada la extensión Enigmail es necesaria una breve conguración para poder cifrar y rmar nuestros correos electrónicos. Las diferentes opciones de conguración se encuentran en el menú Enigmail, siendo recomendado para usuarios inexpertos Asistente de conguración à Preero una conguración estándar. Figura A.19. Menú de configuración de extensión Enigmail 314 https://www.enigmail.net/download/release/1.8/enigmail-1.8.2-tb+sm.xpi. © RA-MA Anexo A. HERRAMIENTAS CRIPTOGRÁFICAS MÁS COMUNES. CONFIGURACIÓN PASO A PASO 263 Figura A.20. Creación de claves pública y privada para el cifrado de correos electrónicos con Enigmail Una vez creadas las claves criptográcas podrá crear nuevos correos electrónicos y activar (icono candado, icono lápiz) el cifrado y la rma digital de los mismos. El lector debe recordar que para poder enviar información cifrada a otro usuario deberá haber recibido previamente su clave pública. Del mismo modo, si desea que un usuario verique su rma digital (autenticidad) deberá adjuntar en un correo (o por algún otro medio) la clave pública generada. 264 ESTEGANOGRAFÍA © RA-MA Figura A.21. Cifrado y firmado de correos electrónicos mediante Enigmail-Thunderbird A través del menú Enigmail à Administración de claves, el lector podrá realizar todo tipo de operaciones con las claves reconocidas en su cliente de correo. Claves que le permitirán comunicarse de manera cifrada con otros usuarios y vericar la autenticidad de los correos de otros usuarios. Figura A.22. Administración de claves criptográficas con Enigmail Anexo B ESTEGOANÁLISIS. HERRAMIENTAS Y GUÍA DE USO El lector ha podido observar a lo largo de este libro como se ha centrado el esfuerzo principalmente en destacar múltiples técnicas y procedimientos para ocultar información. Sin embargo, se han dejado un poco de lado los procedimientos de detección (estegoanálisis), aunque se han destacado ciertas técnicas y algunas herramientas especícas. Los motivos de esta decisión son múltiples. La detección de información oculta es un tema realmente complejo (si no se utilizan técnicas triviales de ocultación, como la técnica EoF) y los algoritmos propuestos, los más modernos y sosticados, son difíciles de encontrar en herramientas de libre acceso que el lector pueda probar. A grandes rasgos, independientemente de las técnicas o el medio utilizados para ocultar información, cualquier propuesta de detección estegoanalítica se basará en la utilización de procedimientos matemáticos para detectar anomalías (test estadísticos, machine learning, etc.). Algunos más sencillos y otros mucho más complejos que no son sencillos de comprender para cualquier lector sin una base importante de matemáticas. Ninguna técnica de ocultación es 100% efectiva si no prestamos especial cuidado en el tamaño de la información a ocultar y en el medio que la transporta. En la última década multitud de estudios han detectado patrones (información oculta) en todas las técnicas documentadas en este libro. Es cierto que, aunque con limitaciones, un usuario común puede detectar ciertas técnicas de ocultación con herramientas gratuitas o comerciales. Por desgracia, la variedad de estas herramientas es reducida, al menos públicamente, y pueden ser engañadas (ocultar información que no será detectada). Salvo que el lector opte por desarrollar sus propios algoritmos de detección o implementar alguno propuesto en artículos cientícos, la utilización de este tipo de herramientas es la única opción 266 ESTEGANOGRAFÍA © RA-MA real para intentar proteger sus sistemas o redes de información de fugas de datos o uso indebido de la esteganografía. Veamos en detalle algunas de estas herramientas de detección. B.1 PRODUCTOS Y HERRAMIENTAS DE ESTEGOANÁLISIS COMERCIALES Parecería razonable que el número de empresas y productos comerciales para cubrir la problemática de la detección de comunicaciones ocultas fuera extenso, dada su criticidad. Sin embargo, al menos públicamente, 315 no hay una gran oferta en este sentido. Posiblemente por la dicultad de hacer un producto able. Un ejemplo de empresa y productos de estegoanálisis lo realiza BackBone Security con SARC. 316 Sus esfuerzos se centran en el desarrollo de herramientas software y hardware para la detección en tiempo real de información ocultada con ciertas herramientas y la presencia de dichas herramientas en sistemas y redes informáticas. Según su publicidad son capaces de detectar más de 1.225 aplicaciones esteganográcas (cheros relacionados con estas aplicaciones) utilizando su Steganography Application Fingerprint Database (SAFDB). Para ello, identican cada chero con algoritmos de hash (CRC-32, MD5, SHA-1, SHA-224, SHA-256, SHA-384 y SHA-512), con la ventaja adicional de que puede ser utilizada con la mayoría de las herramientas forenses más importantes como EnCase, Forensic Toolkit (FTK), Ilook, ProDiscover, etc. El precio de sus diferentes soluciones no está disponible para todos los bolsillos: Steganography Analyzer Artifact Scanner (1.095 dólares), StegAlyzerFS (395 dólares), StegAlyzerSS (1.595 dólares) o StegAlyzerRTS (9.995 o 24.995 dólares). En esta línea se encuentra también la empresa norteamericana WetStone Technologies con la herramienta StegoSuite 317 que incluye diversos productos destinados a detección (StegoHunter, StegoWatch y StegoAnalyst) y recuperación de la información (StegoBreak) realizando incluso ataques a posibles contraseñas utilizadas para ocultar información con herramientas esteganográcas típicas como F5 o JPHide&Seek. 315 StegKit. https://www.sbir.gov/sbirsearch/detail/151266. 316 https://www.sarc-wv.com/. 317 https://www.wetstonetech.com/product/stego-suite/. © RA-MA Anexo B. ESTEGOANÁLISIS. HERRAMIENTAS Y GUÍA DE USO 267 Figura B.1. Herramienta de estegoanálisis StegoAnalyst B.2 HERRAMIENTAS DE ESTEGOANÁLISIS OPEN SOURCE En los últimos años se han publicado diversas herramientas de estegoanálisis de software libre y open source disponibles para el público en general. En la mayoría de los casos son herramientas de espectro limitado, detectando unas pocas herramientas de ocultación e implementando unos pocos algoritmos estegoanalíticos. En cualquier caso, este tipo de herramientas son la única opción si su presupuesto es limitado o si desea implementar alguna medida ad hoc (adaptándolas) en su sistema o red corporativa. ] Herramienta StegSpy (http://www.spy-hunter.com/stegspydownload. htm), publicada en la BlackHat 2004: permite la detección de información ocultada con las herramientas Hiderman, JPHide&Seek, Masker, JPegX e Invisible Secrets. ] Herramienta StegExpose (http://www.darknet.org.uk/2014/09/ stegexpose-steganalysis-tool-detecting-steganography-images/). Centrada en detección de técnica LSB en imágenes digitales con formato PNG y BMP. Implementa diversos ataques estadísticos y estegoanalíticos conocidos (Sample Pairs, RS, Chi-square y Primary Sets) para detectar la ocultación con herramientas como OpenStego, OpenPuff o SilentEye. 268 ESTEGANOGRAFÍA © RA-MA ] VLS (Virtual Steganographic Laboratory for digital images), 318 stegolab, 319 digital invisible ink toolkit, 320 simple-steganalysis suite, 321 o steganalysis 322 de Jessica Fridrich. ] Herramienta Stegdetect. Stegdetect 323 es una herramienta gratuita (licencia BSD) desarrollada por el investigador Niels Provos a partir de sus estudios, que permite la detección automática de ciertos algoritmos esteganográcos. En concreto, se centra en imágenes JPEG. Actualmente, es capaz de detectar ocultación de mensajes con JSteg, Jphide, OutGuess 01.3b, F5 (header analysis), AppendX y Camouage. Junto a esta herramienta proporciona otra denominada Stegbreak, que permite realizar ataques de diccionario contra los mecanismos criptográcos de JSteg-Shell, JPHide y OutGuess 0.13b. Stegdetect (versión 0.6) muestra alguna idea interesante, como es el análisis mediante una función de discriminación lineal. La herramienta, dados un conjunto de imágenes normales y un conjunto de imágenes que contienen información oculta con una nueva aplicación esteganográca, es capaz de determinar una función de detección lineal que se puede utilizar en un futuro para clasicar nuevas imágenes producidas por esa nueva técnica esteganográca. Figura B.2. Discriminador lineal Stegdetect 318 http://vsl.sourceforge.net/. 319 https://github.com/daniellerch/stegolab. 320 http://sourceforge.net/projects/diit/les/dirt/1.0/. 321 https://code.google.com/p/simple-steganalysis-suite/. 322 http://dde.binghamton.edu/download/. 323 https://github.com/abeluck/stegdetect. © RA-MA Anexo B. ESTEGOANÁLISIS. HERRAMIENTAS Y GUÍA DE USO 269 Lógicamente una clasicación lineal tiene la limitación de esperar un comportamiento lineal de las técnicas esteganográcas utilizadas, hecho que no coincide con muchas de las herramientas en la realidad. Sin embargo, supuso un buen reejo del interés de los investigadores en buscar procedimientos estegoanalíticos más o menos genéricos independientemente de la técnica esteganográca empleada. Es un excelente ejemplo para comprender cómo evolucionaron las técnicas de detección hacia mecanismos sosticados utilizando técnicas de machine learning. Públicamente la herramienta Stegdetect obtuvo notoriedad al ser utilizada por su creador para analizar más de 2 millones de imágenes de eBay, sin encontrar ningún mensaje oculto. Estos resultados reejaron que, al menos para los algoritmos soportados, la presencia de información oculta en medios de comunicación masivos no era tan común. Posteriormente procedió a analizar 1 millón de imágenes de la red USENET.324 Como resultado, se encontró, en una primera fase, 20.000 imágenes sospechosas. Para las imágenes que presentaban cierta probabilidad de que se hubiera ocultado información, concretamente para las herramientas JSteg y JPHide, se lanzó un ataque de diccionario (diccionario con 1.800.000 palabras y frases) que ayudase a proporcionar más datos sobre la supuesta información ocultada. El ataque se distribuyó de tal forma que se consiguieron picos de computación de 87 gigaops. No obstante, no se encontró ningún mensaje oculto. 325 Independientemente de la importancia que se quiera otorgar a estos resultados estegoanalíticos. Es cierto que estas publicaciones destacaron como el uso escalable de herramientas de detección de este tipo podrían tener una gran utilidad, y por qué no (al igual que con la criptografía), un mercado creciente, especialmente para agencias de inteligencia y cuerpos policiales. Esto desde el punto de vista del usuario que desea ocultar y distribuir información de forma enmascarada debe recordarle de nuevo la importancia de elegir buenas técnicas de ocultación. Herramienta StegSecret La herramienta de código libre StegSecret, 326 desarrollada por el autor de este libro en 2005, permite realizar algunos ataques de manera simplicada mediante una interfaz gráca. StegSecret permite detectar información ocultada con los siguientes programas: Camouage V1.2.1, inThePicture v2.2, JPEGXv2.1.1, Pretty 324 Scanning USENET for Steganography. http://niels.xtdnet.nl/stego/usenet.php. 325 Resultados conceptualmente similares fueron obtenidos por el investigador Alfonso Muñoz, en 2015, analizando potenciales estegoimágenes en el market Google Play. https://www.youtube. com/watch?v=Xn38Y7puq-g. 326 http://stegsecret.sourceforge.net. 270 ESTEGANOGRAFÍA © RA-MA Good Envelope v1.0, appendX v<=4, steganography v1.6.5, inPlainView, DataStash v1.5 y dataStealth v1.0. Adicionalmente, StegSecret comprueba la estructura del formato gráco de imágenes BMP, GIF y JPEG (este análisis permite detectar información oculta al nal de chero, técnica EoF) y detecta la presencia de más de 40 herramientas esteganográcas. Utilizar las funcionalidades anteriores es muy sencillo desde la interfaz gráca: 1. Descargar y descomprimir: http://stegsecret.sourceforge.net/XStegSecret. Beta.v0.1.zip. 2. Ejecutar xstegsecret.exe (multiplataforma). (Windows) o #java –jar xstegsecret 3. Seleccionar el menú Detección à Herramienta de Detección. 4. Seleccionar la ruta de cheros a analizar. 5. Hacer clic en el icono de la lupa. Con estos simples pasos la herramienta detectará la presencia de información oculta con las herramientas detectadas, la presencia de herramientas esteganográcas en la ruta seleccionada y el chequeo de la estructura del formato de chero de imágenes BMP, JPEG y GIF (detección técnica EoF). Todo a golpe de un único clic. Figura B.3. Menú Herramienta de Detección de StegSecret © RA-MA Anexo B. ESTEGOANÁLISIS. HERRAMIENTAS Y GUÍA DE USO 271 Figura B.4. Detección automática con StegSecret Una de las particularidades de StegSecret es que permite aplicar una serie de test estadísticos y visuales de manera sencilla desde la interfaz gráca. En la versión actual solo con cheros digitales BMP. Para ello se debe ir al menú Análisis de Imágenes à Analizar StegoImágenes, posicionar el puntero del ratón en el cuadro de la derecha o izquierda, dar al botón derecho y Abrir chero (la imagen deseada). En las siguientes guras se muestran diversos ejemplos realizando ataques visual, Chi-square y RS a dos imágenes, la imagen de la izquierda es una imagen sin información oculta y la imagen de la derecha con información oculta. Figura B.5. Análisis de estegoimágenes con StegSecret 272 ESTEGANOGRAFÍA © RA-MA Figura B.6. Ataque visual al LSB de cada píxel con StegSecret Figura B.7. Información oculta detectada con StegSecret. LSB secuencial (imagen de la derecha) © RA-MA Anexo B. ESTEGOANÁLISIS. HERRAMIENTAS Y GUÍA DE USO 273 Figura B.8. Información oculta detectada con ataque Chi-square (imagen derecha) Figura B.9. Ataques visual y Chi-square no funcionan de forma precisa con ocultación basada en LSB pseudoaleatorio (imagen de la izquierda y derecha con información oculta) 274 ESTEGANOGRAFÍA © RA-MA Figura B.10. Detección de información ocultada con LSB pseudoaleatorio utilizando ataque RS. La información real ocultada es de 4 KB (en la imagen derecha). Es posible observar, en la imagen izquierda, la detección de una pequeña información oculta (ruido natural) no presente. En la imagen derecha se detecta más información de la oculta (véase la diferencia con el ruido natural) Anexo C FORMATO DE ESTEGOMEDIOS GRÁFICOS COMUNES. ANÁLISIS ESTRUCTURAL En el presente libro se ha dedicado un esfuerzo especial a la esteganografía en imágenes digitales, por ser esta una de las técnicas más difundidas y estudiadas. En las siguientes páginas se ve interesante facilitar al lector algo de información adicional sobre la estructura de algunos de los formatos de imágenes digitales más utilizados en las herramientas esteganográcas disponibles en Internet, entre ellos BMP, GIF y JPEG. Un vistazo a esta estructura le facilitará comprender qué octetos se deben modicar para ocultar información en el bit menos signicativo de la codicación de un píxel, en octetos de la cabecera, en comentarios, etc. En cualquier caso, una búsqueda con su buscador favorito le facilitará encontrar los detalles a bajo nivel del tipo de imagen digital que desea utilizar para implementar un mecanismo esteganográco concreto. Por ejemplo, para el formato PNG. 327 Por suerte para el lector no es necesario bajar a bajo nivel en la mayoría de los casos para implementar sus propias herramientas esteganográcas. En la mayoría de lenguajes de programación de alto nivel se dispone de librerías que le ayudarán en esta tarea. Por ejemplo, en Java (Java Advanced Imaging, Java Image I/O, Java Media Framework, etc.) o en Python (Python Imaging Library, scikit-image, etc.). 327 PNG (Portable Network Graphics) Specication Version 1.0. https://tools.ietf.org/html/rfc2083. 276 ESTEGANOGRAFÍA © RA-MA C.1 WINDOWS BMP (BITMAP) El formato de imagen a describir es uno de los formatos grácos más sencillos que existen en la actualidad. El formato BMP es un formato estándar de imagen creado por la empresa norteamericana Microsoft y popularizado a través de sus múltiples sistemas operativos Microsoft Windows. Aunque existen otros formatos BMP, como el de OS/2, el formato de Microsoft es el más utilizado (Windows BMP versión 3). Por tanto, a partir de ahora se centra el estudio exclusivamente en este formato. El formato BMP (también conocido como Windows DIB) admite una serie de modos de color: RGB, indexación de colores, escala de grises y mapa de bits. Permite resoluciones de 1, 4, 8, 16, 24 y 32 bits por píxel, aunque no es frecuente encontrarse con cheros BMP de 16 o 32 bits por píxel. El formato BMP permite compresión sin pérdidas RLE (algoritmos RLE4 y RLE8) aunque no se suele utilizar normalmente. La principal ventaja de este formato frente a otros se centra en la facilidad de uso y de procesado, así como en garantizar que cuando una imagen se almacena en este formato es idéntica a la original, armación que no es cierta en otros formatos (con pérdidas) como JPEG. La estructura de los cheros BMP es muy simple. Para leer adecuadamente la información de esta estructura es necesario recordar que en este formato los octetos menos signicativos se almacenan primero en los campos. La estructura interna de este tipo de chero gráco se compone de una serie de bloques, denominados: cabecera del chero, cabecera de la imagen, paleta de colores (opcional) y datos de la imagen. Cabecera del fichero La cabecera del chero BMP (estructura BITMAPFILEHEADER según Microsoft) consta de 14 octetos divididos en los siguientes campos: ] Tipo de chero (2 octetos). Contiene dos caracteres ASCII con valor “BM” (0x424D) indicando el tipo de chero (BMP). ] Tamaño del chero (4 octetos). Contiene el tamaño total del chero BMP en octetos, valor que debe coincidir con el proporcionado por el sistema operativo. © RA-MA Anexo C. FORMATO DE ESTEGOMEDIOS GRÁFICOS COMUNES. ANÁLISIS ESTRUCTURAL 277 ] Reservado (4 octetos). El valor esperado en este campo es 0x00000000. ] Desplazamiento a la imagen (4 octetos). Es la posición donde se encuentran los datos de la imagen (valores de los píxeles). Figura C.1. Cabecera del fichero gráfico BMP La principal función de esta cabecera es permitir la correcta identicación de un chero con este formato. Analizando esta cabecera se puede realizar tres comprobaciones para observar si el chero tiene o no un formato BMP. ] Los primeros 2 octetos deben ser los caracteres ASCII “BM”. ] Si es posible determinar el tamaño exacto del chero en octetos en el sistema de cheros utilizado, este valor debe coincidir con el indicado en la cabecera. ] El campo reservado debe estar a cero. Cabecera de la imagen La cabecera de la imagen es una estructura con información que va inmediatamente después de la cabecera del chero. Esta estructura varía dependiendo del formato de BMP, ya sea el de OS/2 o el Windows BMP que está más extendido. Desafortunadamente, no hay un campo de versión en la denición del formato BMP, así que la única forma de determinar el tipo de la estructura de imagen usada en un chero concreto es examinando el tamaño de esta cabecera. A continuación, se muestra la estructura de datos para cheros BMP Windows. ] Tamaño de la cabecera (4 octetos). El valor de este campo es 40 octetos para Windows, y 12 para los BMP de OS/2. ] Ancho (4 octetos). Anchura de la imagen en píxeles. ] Alto (4 octetos). Indica la altura de la imagen en píxeles. Si es un número positivo indica que la imagen es bottom-up con el origen en la esquina 278 ESTEGANOGRAFÍA © RA-MA inferior izquierda. Si, por el contrario es un número negativo será topdown con el origen en la esquina superior izquierda. ] Planos (2 octetos). Número de planos de color utilizados para representar la imagen. Los archivos BMP solo tienen un plano de color, con lo que este campo siempre es 1. ] Bits por píxel (2 octetos). Bits utilizados para representar el color de cada píxel. Los valores válidos para este campo son: 1, 4, 8, 16, 24 y 32. ] Compresión (4 octetos). Indica el método de codicación utilizado para comprimir la información del mapa de bits. 0 indica que la información está sin comprimir, 1 indica que se utiliza el algoritmo RLE8, y 2 indica que se utiliza el algoritmo RLE4. ] Tamaño del mapa de bits (4 octetos). Es el tamaño del mapa de bits almacenado. Normalmente este valor es cero cuando la información del mapa de bits está sin comprimir; en ese caso, el decodicador calcula el tamaño según las dimensiones de la imagen. ] Resolución horizontal (4 octetos). Indica la resolución horizontal en píxeles por metro. ] Resolución vertical (4 octetos). Indica la resolución vertical en píxeles por metro. Este valor junto con el de resolución horizontal se utilizan para ayudar a dar una resolución adecuada cuando se imprime o muestra por pantalla el BMP. ] Colores usados (4 octetos). Número de colores usados en la paleta (en caso de que exista esta). ] Colores importantes (4 octetos). Es el número de colores importantes en la paleta, lo cual se determina por la frecuencia de aparición de los mismos en el mapa de bits; cuanto más aparezca un color en los datos, más importante es el mismo. Este campo se utiliza para proporcionar una representación lo más el posible cuando el hardware soporta menos colores de los que están denidos para la imagen. El formato BMP soporta imágenes con codicación run-length (RLE) de 4 y 8 bits por píxel. La codicación run-length es una de las técnicas de compresión más simples. En ella los datos que están almacenados de forma repetitiva con el mismo Anexo C. FORMATO DE ESTEGOMEDIOS GRÁFICOS COMUNES. ANÁLISIS ESTRUCTURAL 279 © RA-MA valor se reemplazan por un contador que indica qué valor aparece repetido y cuántas veces. Este tipo de compresión está disponible solo para imágenes que tengan muchos valores repetidos, como caricaturas y dibujos animados. Para la mayoría de las imágenes, la codicación run-length producirá un chero más grande, lo que se conoce como compresión negativa. Paleta de color La paleta de color es una información opcional utilizada en otros formatos para reducir el tamaño de las imágenes al tener que representar solo unos pocos colores diferentes. Existen diferentes posibilidades según la resolución del chero: ] Para 24 bits/píxel. No existe este campo, y el valor de los píxeles sigue el orden B, G y R, con 8 bits por componente. ] Para 1, 4 u 8 bits/píxel. La paleta está presente, y para cada color de la paleta hay 4 octetos que siguen un orden de B, R y G y relleno (“0”). ] Para 16 o 32 bits/píxel. La paleta indica cómo irán a continuación los datos mediante la utilización de máscaras. Se denen tres grupos (de 16 o 32 bits), uno para cada componente R, G y B, respectivamente. En estos grupos se marca con un “1” los bits que en los datos serán asignados a ese componente de color. Datos de la imagen La mayoría de las aplicaciones colocan los valores de los píxeles después de las estructuras de las cabeceras o de la paleta, si esta existe. En cualquier caso, es más adecuado posicionarse según lo establecido en el campo de desplazamiento de la cabecera del chero. Normalmente esta información se almacena siguiendo un orden de izquierda a derecha y de abajo arriba. Según la resolución empleada (y por tanto si la paleta existe o no) los datos se pueden almacenar de la siguiente forma: ] Para 24 bits/píxel. Cada píxel está representado por 3 octetos consecutivos que especican los valores de los componentes B, G y R, respectivamente. Destacar que este orden es el inverso del que se usa en la mayoría de los cheros de formato gráco. ] Para 1 y 4 bits/píxel. Cada byte está subdividido en 8 o 2 campos, respectivamente, cuyos valores representan un índice a la paleta de color. 280 ESTEGANOGRAFÍA © RA-MA ] Para 8 bits/píxel. Cada píxel en cada la está representado por 1 byte que es un índice a la paleta de colores. ] Para 16 bits/píxel. Cada píxel es representado por un valor entero de 2 octetos. Si no existe compresión, la intensidad de cada color es representada por 5 bits, con el bit más signicativo sin uso. Bit 15: Sin uso, bit 14-bit 10: Red, bit 9-bit 5: Blue, bit 4-bit 0: Green. ] Para 32 bits/píxel. Cada píxel es representado por un entero de 4 octetos. Si no existe compresión, el formato es como el de 24 bits con un byte desechado al nal. C.2 FORMATO GIF (GRAPHICS INTERCHANGE FORMAT) En 1987, CompuServe publicó la primera especicación del formato gráco GIF (Graphics Interchange Format) denominada GIF87a. Esta especicación se distribuyó gratuitamente, y el formato fue adoptado prácticamente por toda aplicación de procesamiento de imágenes. CompuServe más tarde publicaría una actualización compatible de este estándar, con una serie de mejoras, bajo la norma GIF89a, aunque la mayoría de las imágenes GIF suelen usar las características fundamentales de la norma anterior. Debido a que el conocimiento de este formato facilitará la comprensión de ciertos temas esteganográcos, se detalla aquí un resumen del formato de la especicación GIF87a. El uso de este formato, en la actualidad, es cada vez más restringido debido a que solo puede trabajar con 256 colores como mucho. Cada vez es más común su sustitución por el formato gráco JPEG o el formato PNG. 328 Al igual que sucede en otros formatos grácos, el formato de un chero GIF se estructura en una serie de componentes, en concreto, en un área ja de información al comienzo del chero, seguida por un número variable de bloques y, nalmente un bloque de n de formato. Toda esta información permitirá identicar correctamente el formato de un chero GIF, así como de toda la información necesaria para mostrar de forma adecuada las imágenes almacenadas. 328 PNG (Portable Network Graphics) Specication Version 1.0. https://tools.ietf.org/html/rfc2083. Anexo C. FORMATO DE ESTEGOMEDIOS GRÁFICOS COMUNES. ANÁLISIS ESTRUCTURAL 281 © RA-MA Figura C.2. Estructura del fichero GIF Cabecera GIF La cabecera GIF es la primera información que encontramos en un chero con formato GIF y permite identicar un chero con este formato concreto. Para permitir esta identicación esta cabecera consta de 6 caracteres ASCII que indican: ] Firma (3 octetos). Debe ser una cadena ASCII de valor “GIF”. ] Versión (3 octetos). Debe ser una cadena ASCII de valor “87a” o “89b”. Descriptor global Proporciona información sobre el área de pantalla lógica en la cual mostrar las imágenes individuales que forma el chero GIF. Consta de 7 octetos con información sobre las imágenes individuales. 282 ESTEGANOGRAFÍA © RA-MA ] Ancho y alto de la pantalla lógica (2 octetos/2 octetos). ] Campo de bits (1 byte): ● Tamaño del mapa global de color (bits 0-2). 2N+1 da el número de entrada en el mapa. ● Flag de ordenación del mapa de color (bit 3). Activo cuando los colores en el mapa global de colores están ordenados por orden de importancia. ● Bits por píxel (bits 4-6). Bits por píxel menos 1. ● Flag de Mapa global de color (bit 7). Activo cuando hay un mapa global de color. ] Color de fondo (1 byte). ] Relación entre píxel (1 byte). Mapa global de color Esta información puede estar o no presente (en cuyo caso, se generará una por defecto) según lo indicado en el ag de activación correspondiente en el descriptor global. Las imágenes dentro de un chero pueden usar este mapa global o denir su mapa de color propio. Lógicamente el uso de un mapa global reduce el tamaño del chero nal y facilita la decodicación del formato. Este mapa (paleta de colores) consiste en un array de entradas de 3 octetos con valores de las componentes rojo, verde y azul. Siendo el número total de entradas el especicado en el descriptor global. Después de esta área de información ja, aparece la información variable del formato. El chero contiene una secuencia de bloques que están identicados al comienzo del bloque por un código de 1 byte. Este código indica si se trata de un bloque de extensión (21h), un bloque de imagen (2Ch) o un terminador GIF (3Bh). El terminador se utiliza para nalizar cualquier bloque, y por tanto, como terminador del último bloque, será también el indicador de nal de chero. Bloque de imagen Un bloque de imagen dene una imagen dentro de un chero GIF. La información asociada a esta imagen se estructura en diferentes campos. En primer lugar, aparece una cabecera de la imagen que indica su tamaño y su posición. Esta estructura es la siguiente: © RA-MA Anexo C. FORMATO DE ESTEGOMEDIOS GRÁFICOS COMUNES. ANÁLISIS ESTRUCTURAL 283 ] Posición horizontal (2 octetos). Comienzo de la imagen en píxeles desde el lado izquierdo de la pantalla lógica. ] Posición vertical (2 octetos). Comienzo de la imagen en píxeles desde la parte superior de la pantalla. ] Ancho y alto de la imagen (4 octetos). Con esta información una imagen puede indicar si utilizar el mapa de color local en lugar del denido de forma global. Al igual que el mapa global de color, el mapa local es un array de entradas de 3 octetos con las componentes de color. A continuación de la tabla de color local o de la cabecera de la imagen se añade un byte que contiene el tamaño del código inicial utilizado en la compresión de los datos almacenados en el chero. Este valor suele ser 8. A continuación, le sigue una serie de bloques de datos que contienen los datos de la imagen comprimidos. Son los denominados bloques de datos y consisten en un byte que actúa como contador (indica el número de octetos que siguen), seguido de 1 a 255 valores de octetos de datos. La cadena de bloques de datos para una imagen siempre termina con un bloque de datos con un contador de 0 octetos de datos. Los datos de la imagen en el formato GIF están comprimidos usando el algoritmo denominado LZW. 329 LZW es un esquema de compresión basado en diccionario. Es decir, un mecanismo que aprovechando la entropía de la fuente (la redundancia de los datos de la imagen) sustituye las cadenas repetidas por índices a un diccionario que almacena precisamente esa cadena que se repite continuamente. De esta forma, se produce el fenómeno de la compresión ya que ocupa menos tamaño almacenar un índice (desplazamiento) a una posición de un diccionario, con las informaciones más frecuentes de la fuente, que almacenar la información tal cual. La mayoría de los esquemas de compresión basados en diccionario usan como base las ideas de Abraham Lempel y Jacob Zivv (1977 y 1978) con sus algoritmos LZ77 y LZ78. LZ77 usa una ventana deslizante en los datos sin comprimir para crear el diccionario. LZ78 construye un diccionario dinámicamente desde los datos sin comprimir. LZW es una variante del LZ78 diseñado por Terry Welsh en 1984 y adoptada por CompuServe para el formato GIF. Este algoritmo está patentado, lo que impidió su distribución en aplicaciones libres, lo que junto a otros problemas ha hecho que este formato esté cada vez más en desuso. 329 https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch. 284 ESTEGANOGRAFÍA © RA-MA Aunque no se va a profundizar en la más moderna especicación GIF89a, 330 para nalizar con este formato, es importante destacar alguna de las aportaciones de este nuevo estándar, como es la denición de los bloques de extensión. Extensiones a las funcionalidades básicas, y que permiten, por ejemplo, un control más exible de los frames individuales que constituyen una animación GIF. Su estructura es similar a la de un bloque de imagen, en cuanto a que posee una cierta información de cabecera, una serie de bloques de datos y un terminador. C.3 FORMATO JPEG (JOINT PHOTOGRAPHIC EXPERTS GROUP) En 1987 se creó un grupo de trabajo formado por expertos en tratamiento de imágenes, con la intención de desarrollar un formato estándar para la compresión de imágenes jas, tanto monocromas como en color. Los estudios y experimentos de este grupo de trabajo, que ocialmente fue denominado JTC1/SC2/WG10 (auspiciado por ISO, ITU-T e IEC), se plasmaron en una serie de publicaciones, entre ellas la especicación JPEG. El formato gráco JPEG tiene la cualidad principal de que es capaz de proporcionar una calidad de imagen variable, dependiendo del grado de compresión que se desee (a mayor nivel de compresión, disminuye la calidad de la imagen). A continuación, vamos a comentar algunas características de este formato. Debido a la gran extensión de su especicación, y que para el propósito que nos ocupa no es necesario profundizar excesivamente, se verá un breve resumen de su funcionamiento. Codificación JPEG Para que una imagen pueda ser convertida a formato JPEG debe sufrir una serie de operaciones que se describen a continuación. ] La imagen a codicar se divide en grupos de 64 píxeles, denominados bloques, con un formato cuadrado de 8x8 píxeles. Si la imagen es en color, de la imagen original se obtendrán tres imágenes (componentes de color R, G y B), de forma que cada una de ellas será tratada independientemente (aunque luego se junten para formar un único archivo). Por eso, de forma genérica se puede establecer que todo el conjunto se encuentra formado por un conjunto de bloques, cada uno de ellos congurado por 64 píxeles. “En una imagen en color cada píxel se desdobla en tres valores (las tres 330 https://www.w3.org/Graphics/GIF/spec-gif89a.txt. © RA-MA Anexo C. FORMATO DE ESTEGOMEDIOS GRÁFICOS COMUNES. ANÁLISIS ESTRUCTURAL 285 componentes de color) que se pueden considerar como el brillo de cada componente utilizado en la confección de la imagen original, por lo que una imagen en color podría ser codicada como una sucesión de tres imágenes monocromas en las que solo importa el brillo de cada píxel, puesto que sus características cromáticas ya vienen jadas al establecer los colores primarios. Si se codicasen directamente estas tres imágenes RGB, habría que codicar cada una de ellas con la misma calidad y además con la calidad máxima. Para conseguir un importante ahorro en el número de muestras, se preere utilizar otros tres valores, deducidos de estos tres valores iniciales, a través de unas ecuaciones perfectamente establecidas. Y, Cb, Cr (luminancia y crominancia).”. ] A cada uno de los bloques por separado se le aplica la transformada discreta del coseno y después de su aplicación, se obtienen 64 coecientes para cada uno de los bloques. A cada bloque de coecientes se le somete a un proceso de cuanticación (en este punto es posible regular la calidad de la imagen y por tanto el grado de compresión elegido), de manera que el escalón cuántico será diferente para cada uno de los coecientes dentro del bloque. ] Del resultado de la cuanticación se obtienen unos coecientes cuanticados, que ya no adoptan innitas posiciones, sino solo unas pocas, siendo nulos la gran mayoría de ellos. Es decir, el proceso de cuanticación consiste en forzar que todos los coecientes que se encuentren con valores muy cercanos entre sí, se refundan en un único coeciente a la salida del proceso de cuanticación. Después de este proceso, los datos correspondientes a cada bloque se encuentran ubicados sobre una matriz formada por ocho las y ocho columnas. El índice de la esquina superior izquierda corresponde al valor medio del bloque, componente continua o también llamada DC en inglés, Direct Current, y según se avanza, tanto en vertical como en horizontal, va correspondiendo a frecuencias superiores, hasta llegar al índice 64. Estos son los denominados coecientes AC. El coeciente DC presenta una distribución uniforme, puesto que tiene la misma probabilidad de tomar uno u otro valor, y posee la mayor información visual. El resto de los coecientes presentan una distribución laplaciana, lo que da a entender que tienen más probabilidad de ser pequeños que de ser grandes. Lo normal es que a partir de determinadas posiciones de frecuencias, los valores de los coecientes sean cero, por lo que los valores signicativos se encontrarán en los coecientes puestos en las posiciones de más baja frecuencia. 286 ESTEGANOGRAFÍA © RA-MA ] A los coecientes ya cuanticados, es necesario codicarlos de forma binaria, utilizándose codicaciones entrópicas (por ejemplo, Huffman) que asocian códigos cortos a valores que aparecen frecuentemente y códigos largos a valores que apenas aparecen. Dado que aparecerán muchos ceros, se utilizan además codicaciones del tipo RLE (RunLength Encoding). Se debe considerar que para codicar los coecientes hay que ponerlos en serie, unos detrás de otros y para ello no hay otra posibilidad que extraerlos de las posiciones que ocupan dentro de la matriz y formar con ellos una secuencia unidimensional de 64 valores. Teniendo en cuenta que por la posterior forma de codicación, interesa que existan muchos ceros seguidos, una buena forma de explorar la matriz para conseguir muchos ceros seguidos es una exploración en zigzag del bloque de 8x8 octetos. Figura C.3. Exploración zigzag JPEG De todo esto, se puede extraer que la especicación JPEG utiliza una serie de mecanismos para eliminar la información de alta frecuencia de la imagen, frecuencias a las que el ojo humano no percibe los cambios, y por tanto no es capaz de observar cómo se degrada la imagen, consiguiendo cheros de menor tamaño. Según vaya subiendo la compresión esta degradación comenzará a ser percibida. Estructura de un archivo JPEG Un archivo JPEG se puede estructurar en dos partes: una cabecera con información sobre parámetros especícos de la imagen almacenada, y un campo de datos con los valores de la imagen. Como son muchos los parámetros que habrá que © RA-MA Anexo C. FORMATO DE ESTEGOMEDIOS GRÁFICOS COMUNES. ANÁLISIS ESTRUCTURAL 287 indicar, es necesario considerar la cabecera como un conjunto de pequeños bloques de información. En cada uno de esos bloques, conocidos como marcadores, se indica una característica especíca del archivo. Para que sean perfectamente identicados, cada uno de ellos deberá ir precedido por uno de los códigos que se denominan “inicio de marcador”. Otro aspecto también importante a tener en cuenta es el de que los datos (o carga útil) no se suelen organizar en un único bloque, en su lugar se dividen en intervalos (restart intervals), de manera que cada uno de ellos se puede decodicar independientemente. La longitud de cada uno de estos intervalos no es ja, sino que es indicada al principio del intervalo. Cuando la información se estructura en intervalos, entre unos y otros también es posible la colocación de marcadores. Su presencia está totalmente identicada, porque sus códigos de inicio no dejan lugar a ninguna duda. Cada intervalo de datos deberá llevar forzosamente un marcador a su comienzo, para indicar el tipo de información que contiene y cómo está estructurada. Entendiendo por un marcador un conjunto de información autocontenida, que especica algunos parámetros relativos a la codicación de la imagen o informaciones interesantes para los decodicadores. Cada marcador siempre comienza con un código de inicio, que a su vez está formado por un prejo, común para todos los marcadores, y una especicación diferente para cada uno de ellos, que es lo que realmente lo identica. El código de inicio es algo así como la rma identicativa o el nombre propio del marcador indicando el contenido de lo que viene a continuación. Siempre que acaba un segmento, tanto en la cabecera como en los datos, a continuación forzosamente deberá venir un nuevo marcador para indicar lo que viene a continuación, ya que en principio puede ser cualquier cosa y el decodicador necesita saber lo que es. Incluso al nal del archivo, existe un marcador indicando que ha nalizado completamente el archivo (código: FFD9, longitud: nula). Esta breve introducción al formato JPEG quizás le permita comprender algunas técnicas esteganográcas (basadas en coecientes DC) realizadas sobre este formato gráco concreto, así como la posibilidad de detectar información oculta en este tipo de chero validando la estructura interna del mismo, por ejemplo, recorriendo su estructura a través de los marcadores. Si observa técnicas esteganográcas que hagan uso de una versión más moderna de este estándar, por ejemplo, utilizando la transformada Wavelet en JPEG2000, 331 le recomiendo encarecidamente seguir un proceso similar al publicado en este anexo para profundizar en su comprensión. 331 https://es.wikipedia.org/wiki/JPEG_2000. ÍNDICE ALFABÉTICO Símbolos 3DES, 39, 135 A ACOUSTINT, 17 ADS, 146, 147, 148, 149 AES, 39, 40 Anonimato, 185 ANT, 19 Ataque activo, 49 Ataque malicioso, 50 Ataque pasivo, 49 Ataques por compatibilidad jpeg, 103 Ataque visual, 98, 104, 115, 116, 271 Autoridades de certicación, 42 B BIOS, 20, 154 Bit menos signicativo, 78, 79, 80, 81, 84, 90, 95, 100, 115, 116, 117, 131, 240, 275 BPCS, 84 BTS, 19, 20 C CA, 42, 68, 203 Camera/Shy, 241, 242, 243, 244, 245 Canales encubiertos, 71, 79, 138, 210, 211, 220, 222, 229, 230, 231, 232, 247 CAPTCHA, 91, 92, 93 Carnivore, 17 CFGs, 192, 195 Chafng and Winnowing, 74, 75 Chi-square, 96, 100, 101, 102, 113, 116, 117, 118, 123, 273 Cifrador del César, 27, 31 Cifrador de Vigenère, 31 Cifradores monoalfabéticos por desplazamiento puro o adición, 27 Cifradores nulos, 175 Clave pública, 41, 42, 68, 75, 263 Código en jerga, 53, 174, 177, 178 Códigos abiertos, 174 Coecientes cuanticados, 98, 99, 100, 101, 106, 116, 285 COMINT, 17 Criptografía asimétrica, 41 Criptografía cuántica, 43 Criptografía de ujo, 33, 38 Criptografía homomórca, 45 Curvas elípticas, 43 290 ESTEGANOGRAFÍA © RA-MA D DCT, 78, 99, 100, 116, 140 DeCSS, 71, 72, 73, 74 Deogol, 170 DES, 39, 40 Desambiguación, 198, 200, 207 Digital Invisible Ink Toolkit, 85 Duncam Campbell, 16 E Echelon, 16, 17, 18 Edward Snowden, 18, 19, 154 ELINT, 17 End of File, 141, 156 Enscribe, 138, 139 Escítala, 33 Esteganografía clásica, 51 Esteganografía lingüística, 174, 184, 185, 186, 190, 195, 201 Estegoanálisis, 48, 50, 83, 96, 102, 112, 113, 114, 116, 118, 123, 127, 128, 133, 157, 166, 238, 241, 248, 265, 266, 267 Estegoanálisis a ciegas, 96, 112, 113, 114, 127 Estegomalware, 110 Estegomedio, 49, 70, 78, 80, 83, 90, 106, 108, 112, 114, 124, 125, 126, 127, 128, 140, 158, 173, 174 Estegosistemas cuánticos, 68 Estegosistemas de clave simétrica, 67 Evident X-Stream, 18 EzStego, 96, 98, 115, 116 F F5, 99, 103, 104, 105, 106, 107, 111, 125, 266, 268 Fragmentación interna, 144, 145 G GCHQ, 18 GIF, 79, 84, 88, 94, 95, 96, 113, 116, 123, 241, 242, 245, 270, 275, 280, 281, 282, 283, 284 Gramáticas libres de contexto, 192, 195 H Herramienta, 85, 86, 87, 88, 89, 90, 93, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 111, 116, 118, 123, 125, 127, 128, 132, 133, 135, 136, 138, 139, 141, 142, 145, 147, 149, 150, 151, 152, 154, 157, 158, 159, 162, 163, 165, 167, 170, 182, 183, 187, 188, 189, 190, 191, 193, 194, 195, 197, 198, 199, 220, 227, 232, 240, 241, 242, 244, 245, 247, 252, 253, 266, 268, 269, 270 Hide&Seek, 97, 98 Hill, 28 HTML, 71, 109, 167, 168, 170, 236 HUGO, 127, 128 Hydan, 165, 166, 167 I Imágenes anamórcas, 57 IMINT, 17 Impresoras espías, 63 Inter-protocol steganography, 212 J Jano, 198 JPHide, 99, 101, 268, 269 Jsteg, 99, 100, 101, 102, 115, 116, 268, 269 Julian Assange, 18 K Kasiski, 31 Kerberos, 41 Kerckhoffs, 37, 66, 184 ÍNDICE ALFABÉTICO 291 © RA-MA L Leyes de la tecnología, 23 Libretas de un solo uso, 32 LISI, 24 LSB, 79, 80, 81, 82, 84, 85, 88, 89, 91, 95, 96, 100, 103, 104, 109, 112, 113, 115, 116, 118, 119, 122, 123, 125, 128, 131, 133, 134, 140, 240, 245, 246, 272, 273, 274 LSB-matching, 81, 113 LSB-replacement, 81, 113, 118 LSSICE, 24 M Machine learning, 112 Malware, 20, 50, 71, 79, 104, 108, 111, 154, 155, 160, 161, 163, 164, 229, 230, 231, 236 MandelSteg, 96, 97 Maquillaje manual, 190 Máquinas de cifrado, 25, 36 Marcado digital de textos, 185 MASINT, 17 Matrices de codicación, 104, 106, 107, 114, 124, 125, 126, 248 Matrix embedding, 124 Matriz de codicación, 106, 107, 125 Merged Features, 113 Micropunto, 59, 60 MP3, 69, 134, 135, 137 MP3Stego, 135, 136 Muestras de audio, 131, 133 Multi-level steganography, 212, 238 N Negación plausible, 74, 76, 250 Nicetext, 195, 196 NLW, 197 O OpenPuff, 99, 130, 267 OpenStego, 99, 267 OTP, 38 Outguess, 99, 102, 108, 268 P Pacto UKUSA, 16 Pair-Values, 96, 123 Paleta de colores, 78, 89, 90, 94, 95, 96, 116, 119, 123, 276, 280, 282 Patriot Act, 24 Peer2mail, 239 PKIs, 42 Playfair, 28, 29, 30 Polyglots, 108, 109 PPD, 113 PQ, 99 Privacidad, 16, 17, 18, 23, 44, 45, 50, 64, 79, 110, 151, 185, 236, 238, 249, 251, 253, 261 Problema del prisionero, 49, 50 R Red Feistel, 40 Reja de Cardano, 52, 53, 178 Rich Models, 113 RS, 86, 88, 113, 118, 121, 123, 128, 267, 271, 274 S Seguridad perimetral, 45, 161, 164, 210, 230 Semagramas textuales, 180, 181 Semagramas visuales, 180 Shannon, 37 SIGINT, 17 Sinónimos, 197, 198, 199 SOAP, 71, 168, 169 SPA, 113 SPAM, 113, 128, 194 292 ESTEGANOGRAFÍA © RA-MA Steganogram hopping, 238 Steganogram scattering, 238 StegFS, 150, 151, 152, 153 Steghide, 99, 130, 241 Stegosploit, 108 StegoVideo, 141, 142 Stelin, 187, 189, 190, 191 S-Tools, 96, 97, 115, 116, 154 Sustitución, 25, 26, 27, 28, 30, 31, 32, 36, 37, 39, 78, 79, 80, 81, 83, 88, 103, 131, 167, 197, 198, 200, 280 SVM, 114, 205 T Técnica lsb, 79, 80, 81, 83, 86, 89, 95, 96, 100, 101, 102, 115, 116, 118, 131, 245, 267 Tempora, 18 Terroristas, 50, 63, 112, 140, 181, 236, 237 TEX, 183, 205 Thunderbird, 261, 264 Timing channels, 211, 213 Tintas invisibles, 60, 61, 62, 63 T-LEX, 197, 198 Transposición, 25, 26, 33, 34, 35, 39 Transposición por columnas, 35 Transposición por las, 35 Transposición por grupos, 33 Transposición por series, 34 Trithemius, 47, 48 U UEFI, 20, 154 V Veracrypt, 253, 254, 255, 256, 260 Vernam, 31, 32, 38, 39, 66 VoIP, 137, 138 W WAVE, 132, 133, 135 Wet paper codes, 124, 126 William Friedman, 36 WOW, 127, 128 X XML, 71, 167, 168, 170, 171, 236 Y YASS, 99 Descargado en: eybooks.co m