Taller de Criptografía - Expediente 4


Ataques prácticos contra PGP

Archivo original: Practical Attacks on PGP
Correo electrónico: Joel McNamara


¿Están tus mensajes cifrados mediante PGP a salvo de ojos depredadores? Aunque la combinación de IDEA, RSA y MD5 hace a PGP resistente a los ataques criptográficos conocidos, hay otras maneras de violar la seguridad de un usuario.

Esta presentación discute ataques prácticos que un oponente puede usar para comprometer PGP. Estos métodos son generalmente mucho más eficientes y económicos que intentos de reventar claves con gran coste de CPU. Vulnerabilidades tales como acceso al archivo de intercambio [swap file], versiones de PGP e interfaces con troyanos, vigilancia del teclado, fuerza bruta y robo de claves se explorarán aquí. Se sugieren contramedidas para mejorar la seguridad.

Iba a dar la siguiente presentación en Hacking in Progress 97 a las afueras de Amsterdam, Holanda, en Agosto. Desafortunadamente, my descanso veraniego como bombero forestal se puso por medio, con una tardía temporada de incendios. Dave Del Toro, de PGP Inc. presentará una variación del siguiente trabajo que yo escribí (que es versión .90), y será completado, incluyendo enlaces, cuando tenga tiempo.



PGP
se ha convertido en el estándar de facto para las comunicaciones cifradas por Internet. Los algoritmos criptográficos fuertes empleados, la naturaleza abierta del código fuente, revisión informal por expertos criptográficos civiles, todo ha dado a PGP un aura de invencibilidad contra fisgones potenciales.

Actualmente, la reputación de PGP parece justificada. Los métodos criptoanalíticos modernos no han descubierto ninguna debilidad evidente, y los ataques de fuerza bruta contra claves de 1.024 bits y más son irrealistas. Descartando avances no revelados en la factorización o la computación cuántica, podemos conjeturar que las agencias gubernamentales se han topado con las mismas barreras criptoanalíticas que se han encontrado los criptógrafos civiles.

Aunque un algoritmo fuerte es crítico en la seguridad de una aplicación de cifrado, el público en general parece depositar demasiada fe en los números y las ecuaciones que proclaman que un mensaje cifrado no puede ser reventado. Las citas populares como "se necesitaría un tiempo igual a la edad del universo para reventar un mensaje" o "podría ser reventado con tantos ordenadores como átomos existen en la Tierra" suenan como eslóganes de anuncio.

Y, aunque computacionalmente hablando, tales afirmaciones puedan ser correctas, desprecian un hecho simple. Hay numerosos ataques prácticos que no se apoyan en criptoanálisis, y que pueden esponer los contenidos de un mensaje cifrado con PGP tan fácilmente como pelar un plátano.

Esos ataques son baratos, eficientes, a veces difíciles de detectar, y pueden ser elegantemente simples. Hay una buena probabilidad de que ya estén siendo usados durante actividades de vigilancia de las fuerzas de seguridad, operaciones de obtención de información del gobierno, o esfuerzos de espionaje industrial.

Este trabajo describe ataques prácticos que pueden comprometer la seguridad de PGP, particularmente en entorno Windows. (Para ser justos, estas debilidades no son exclusivas de PGP. Acechan a la mayoría de las aplicaciones criptográficas y de seguridad. Para mayor crédito de Phil Zimmermann, él siempre ha estado advirtiendo de los riesgos de estas clases de ataque en la documentación de PGP. Desafortunadamente, la mayoría de la gente no se tomas los avisos en serio).

Recuerda, al igual que el consumo de un coche, su escenario de riesgo puede variar.



Ataques mediante caballos de Troya

Las aplicaciones estilo caballo de Troya son una buena herramienta en el arsenal de un ladrón de sistemas. El mundo UNIX ha estado plagado por troyanos, creados por piratas informáticos [hackers] que facilitan puertas traseras tipo "ábrete sésamo" con acceso a sistemas. Pero hasta ahora, el mundo PC solo ha sido atacado por un puñado de troyanos. Típicamente maliciosos en naturaleza, afirman mejorar tu vida, pero acaban borrando tu disco duro.

La seguridad de PGP podría ser subvertida con un caballo de Troya. Se han escrito varias pruebas de troyanos conceptuales que debilitarían PGP, pero hasta ahora no ha habido incidentes de ataques "al aire libre." La amplia escala de Internet como mecanismo para conseguir software aumenta esta vulnerabilidad.

.EXE y DLL

PGP puede ser atacado al introducir debilidades, bien mediante parches de código binario, o bien modificando y recompilando el código fuente.

Las rutinas clave de PGP en peligro incluyen:

  • Rutinas para generación de números aleatorios modificadas para arrojar resultados predecibles.

  • Rutinas de clave de sesión modificadas para que se use siempre la misma clave.

  • Rutinas IDEA, RSA o MD5 debilitadas.

  • Mensajes cifrados siempre con una clave adicional encubierta.

La versión debilitada puede introducirse en el ordenador objetivo por medio de:

  • Una aplicación de caballo de Troya que encubiertamente parchea el programa binario.

  • Reemplazar físicamente la copia legítima con una copia debilitada cuando el usuario no se encuentra presente.

  • Hacer pasar la copia debilitada como legítima y distribuirla por Internet (una comprobación reciente con AltaVista reveló varios centenares de direcciones donde se puede descargar pgp262.zip o la versión internacional comparable).

  • Un ataque de "hombre en el medio" donde el blanco descarga el programa que se encuentra en una dirección legítima (p. ej. MIT) pero la sesión es interceptada, y la copia del programa es sustituida por otra debilitada.

Aunque puedes usar dif o alguna otra utilidad para comparar una aplicación sospechosa con una copia legítima de una fuente conocida, un ataque más sutil es parchear el código mientras está residente en la RAM con una aplicación troyana separada.

Aunque las copias, firmadas con PGP, del archivo ejecutable ofrece cierta protección contra versiones modificadas, varios investigadores han demostrado que se pueden crear claves fraudulentas. Un usuario ignorante de tal hecho podría ser potencialmente convencido de que el archivo ejecutable ha sido firmado por una fuente fiable, cuando en realidad no lo ha sido

Instalación

Las versiones tanto comerciales como gratuitas del recientemente aparecido PGP 5.0 hace que éste se obtenga mediante un archivo auto-extraible .EXE. Resulta bastante trivial añadir un parche para que se instalen programas maliciosos en otros lugares, y que sen ejecutados antes de que el .EXE se ejecute. Chris Drake, un consultor de seguridad australiano, ha producido varios ejemplos de este tipo de ataque en una prueba. Aunque hay una firma asociada con el instalador, muy poca gente comprueba la validez de las aplicacione firmadas.

Interfaces [shells]

La popularidad inicial de PGP fue alimentada por un conjunto de "shells" o interfaces basados en Windows que enmascaraban los comandos del DOS, difíciles de recordar, con menús y cuadros de diálogo. Un estudio reciente encontró más de 30 de estos shells disponibles en Internet como gratuitos o de dominio público.

Los shells ayudaron en la aceptación pública de PGP, pero la mayoría están patentados por naturaleza, y muy pocos autores muestran todo el código fuente. Los usuarios dependen de la integridad del autor, quien es habitualmente una entidad desconocida en algún lugar distante. Las oportunidades para instalar puertas traseras, comandos escondidos y fallos son múltiples.

Y aunque un programador tenga las mejores intenciones, fallos de programación no descubiertos pueden comprometer la seguridad del shell. Considera la plétora de agujeros de seguridad descubiertos en programas de software comercial. Desafortunadamente, el nivel de escrutinio dado a los fallos en los shells es como poco desalentador.

La vulnerabilidad de los shells será un hecho de la vida en el futuro próximo. La versión 5.0 de PGP tiene un interfaz "oficial" para Windows 95 (junto con código fuente para la versión gratuita), pero la mayoría de los usuarios de PC en todo el mundo siguen usando Windows 3.x y usarán PGP y shells de DOS.

Contramedidas

  • Desconfía de los "griegos" que llevan regalos.

  • Obtén tu copia de PGP o interfaz de una fuente fiable y conocida.

  • Compila tu propio código fuente de confianza (si tienes la habilidad y el compilador).

  • Valida cuidadosamente todas las firmas.

  • Guarda resúmenes (hash) de tus criptoaplicaciones y compruébalas con regularidad.


Ataques de fuerza bruta

Los ataques mediante fuerza bruta se aprovechan de gente descuidada (por usar un calificativo suave) que usa malas frases de contraseña. En cierto modo, es como dejar siempre la puerta sin echar la llave. Puede que nadie gire nunca el picaporte para ver qué pasa, pero un día puede que vuelvas a casa y te la encuentres saqueada.

PGPCrack es una aplicación de fuerza bruta ampliamente diseminada, diseñada para reventar archivos cifrados convencionalmente mediante PGP y que ataca la contraseña de la clave secreta. Depende de un archivo separado de diccionario, y prueba cada palabra como contraseña potencial. En un archivo protegido por PGP mediante cifrado convencional, el programa comprueba más de 15.000 palabras por segundo en un Pentium a 100 MHz. Como referencia, compárese con las 5.000 a 7.000 palabras/segundo para programas típicos de reventado de claves en UNIX en la misma máquina.

No es descabellado suponer que algunas agencias de seguridad y espionaje tengan sus propios programas optimizados para ataques de fuerza bruta contra PGP. Seguramente incluye sistemas de hardware muy rápidos y especializados.

El sentido común debe prevalecer con las contraseñas. Está más allá del propósito de este trabajo dar consejos sobre cómo seleccionar y usar una contraseña fuerte. Si no lo sabe, averígualo.

Contramedidas

  • Usa contraseñas fuertes.

  • Usa contraseñas compartimentalizadas (esto es, algunas contraseñas para seguridad fuerte como en PGP, otras para seguridad débil como en contraseñas de salvapantallas...); si rotas las contraseñas, nunca mezcles los dos tipos.


Ataques al sistema operativo

Desafortunadamente, el entorno operativo más popular usado en todo el mundo hoy día es terriblemente inadecuado a efectos de niveles decentes de seguridad. La arquitectura de Microsoft Windows 3.x y Windows 95 deja muchas vías de ataque para alguien que busque comprometer mensajes con PGP (aunque Windows NT ofrece una mejor seguridad, conforme se someta a un escrutinio más intenso aparecen más fallos aprovechables).

Archivos borrados

El usuario medio es deliciosamente ignorante de que, cuando borra un archivo, sólo se cambia la información sobre la asignación del archivo, y el contenido sigue residiendo en el disco hasta que sea sobreescrito por otro archivo. Hay numerosos programas disponibles para recuperar todo o parte del contenido de un archivo borrado.

Si usas PGP para cifrar un archivo y lo borras, o usas un editor para componer y guardar mensajes de correo electrónico antes de cifrar, estás en peligro.

Hay también una vulnerabilidad en los archivos temporales borrados. Algunas aplicaciones guardan una copia temporal del documento en el que estás trabajando. El archivo se borra cuando terminas la sesión de trabajo. Puede que ni siquiera estés al tanto de que existe un archivo temporal, pero el contenido puede ser visto o recuperado por alguien con acceso a tu disco duro.

Las utilidades de "tachado" [Wipe] resuelven esta debilidad sobreescribiendo un archivo con datos, a veces varias veces, antes del borrado. Esto evita que un fisgón use una herramienta de recuperación de datos para recuperar un archivo borrado o escudriñar un disco duro en busca de evidencias incriminadoras.

PGP tiene un parámetro opcional de tachado, pero solamente con una pasada. Una sola sobreescritura debería bastar para la mayoría de los casos, pero en algunos casos de riesgo extremo se requiere que los datos sean sobreescritos al menos tres veces antes de su borrado.

Nota: algunos expertos han afirmado que los microscopios electrónicos de barrido o de efecto túnel pueden ser capaces de recuperar datos sobreescritos entre 7 y 9 veces. Sin embargo, debido al coste y a los factores que afectan la remanencia magnética fuera de las condiciones de laboratorio, este es un ataque improbable.

Contramedidas


Espacio residual [slack space]

DOS/Windows asigna espacios de disco en paquetes llamados clusters. Por ejemplo, con un tamaño de cluster de 2k, un archivo de 100 bytes usa el mismo espacio que un archivo de 2.048 bytes. El espacio residual es el espacio que hay entre el final del archivo físico y el final del cluster asignado. Si bien una utilidad de borrado seguro sobreescribe el archivo físico, los bytes del espacio residual suelen permanecer.

Esto significa un riesgo, ya que pueden quedar bits y trozos de texto no cifrado en un disco duro. Como ejercicio, usa un editor de disco y busca en tu disco duro una cadena de texto referente a algo de información privada. Es probable que encuentres referencias en clusters no asociados con archivos actualmente asignados. Un fisgón puede lanzar un ataque similar de exploración.

Desfragmentar el disco duro no eliminará los datos almacenados en el espacio residual. Tu única opción es usar un programa diseñado para borrar los bytes no asignados que se encuentran al final de los clusters.

Contramedidas


Vigilancia del teclado

La principal debilidad de cualquier criptosistema es habitualmente la autenticación de la contraseña. Los usuarios suelen cometer muchos errores involuntarios al seleccionar y asegurar una contraseña. Sin embargo, las contraseñas son asimismo extremadamente vulnerables al nivel del sistema operativo.

Las rutinas de gestión de claves en DOS y Windows pueden ser fácilmente parcheadas para capturar las pulsaciones sobre el teclado. Las pulsaciones pueden ser grabadas en el disco o transmitidas por una red. Hay numerosas aplicaciones DOS y Windows en Internet para el monitoreo de pulsaciones, que podrían usarse para subvertir una contraseña de PGP. Con la contraseña revelada, el fisgón solamente necesita una copia del archivo de claves secretas.

Contramedidas



Vulnerabilidades de red

Se han identificado diversas debilidades relacionadas con la seguridad en entornos de red en Windows 3.x, Windows 95 y Windows NT. No está al alcance del presente trabajo discutir estas debilidades en detalle. Como poco, los usuarios deberán estar al tanto de que bajo ciertas circunstancias, es posible el acceso encubierto a datos mediante las unidades de disco en acceso a redes

Contramedidas



Ataques por red

El crecimiento de Internet ha supuesto nuevas amenazas para los usuarios. Los días de los PC como estaciones de trabajo monousuario o en pequeñas redes de confianza son cosa del pasado. Los ataques remotos lanzados por Internet son ahora una posibilidad real. Estos tipos de ataques, ya sea contra individuos o empresas, aumentarán con toda seguridad en el futuro.

Ataques con virus

Virus con fines de espionaje. Diseñados para recoger/robar información. Pueden ser de despliegue vertical o horizontal.

Hay un brillante futuro para los virus "de espionaje". Considera un virus que se extienda solamente a máquinas con copia de PGP en su interior.

Contramedidas

  • Usa programas para comprobación antivirus.


Ataques por navegadores y aplicaciones [applets] hostiles

Al haberse ido convirtiendo los navegadores en programas clave para los usuarios, hay que tener en cuenta los riesgos que subyacen a su naturaleza ubicua. Se ha descubierto numerosos fallos de seguridad en los navegadores tanto de Netscape como de Microsoft, los cuales permiten el acceso remoto no autorizado al disco duro de un usuario. Varios de estos fallos podrían ser explotados contra PGP para:

  • robar un archivo de claves

  • modificar un archivo de claves

  • instalar un caballo de Troya

  • permitir acceso a archivos no cifrados

Aunque los vendedores sacan parches contra dichos fallos, no todos los usuarios son conscientes de que puede haber problemas de seguridad en versiones más antiguas.

Además de esto, en la vorágine competitiva para sacar al mercado nuevas versiones de los navegadores, están mostrando sus feas caras muchos más fallos de los que se puedan ver en un producto con un ciclo de desarrollo normal. Cuantos más fallos, más posibilidades hay de que uno de ello pueda convertirse en un agujero de seguridad. (El ambocioso esfuerzo de Microsoft llamado Windows 98, que fusionará el ordenador con Internet, significará sin duda mayor vulnerabilidad debido a la naturaleza de la unión transparente entre el PC y la red).

Aparte los riesgos asociados con los fallos de los navegadores, los lenguajes de programación como Java, JavaScript y VBScript, así como la arquitectura ActiveX de Microsoft permiten una posible vía de entrada a ataques remotos mediante el acceso a páginas Web.

Si bien el modelo de seguridad en Java ofrece teóricamente una barrera para mantener las aplicaciones [applets] fuera de los datos del usuario, siguen apareciendo fallos de seguridad. ActiveX no ofrece seguridad contra estos tipos de ataques, ya que funciona mediante un modelo de confianza basado en firmas, en el que el sentido común del usuario es la fuerza predominante.

Aunque la mayoría de la gente se preocupa por páginas Web diseñadas para resultar destructivas, no existe mucha información sobre páginas Web diseñadas para espionaje, las cuales extraen ocultamente información del disco duro de un usuario. Estas "páginas de ataque", pasivas y relativamente difíciles de detectar, pueden acabar siendo una amenaza sustancial a la intimidad y seguridad en el futuro.

Hasta la fecha, no hay contenidos en páginas Web lo bastante atractivos para arriesgarse habilitando opciones Java, SavaScript y ActiveX en tu navegador.

Contramedidas

  • Mantente al día con los últimos parches de tu navegador.

  • No confíes en páginas Web que contengan Java, JavaScript, VBScript o ActiveX

  • Usa una estrategia de "rojo/negro" con dos ordenadores (uno conteniendo información insegura y usado para navegar por la red; el otro con información asegurada y aislado de la ved).

  • Usa Lynx.



Ataques por vigilancia electrónica

Además de los ataques a PGP basados en ordenador, pueden usarse métodos tradicionales de vigilancia electrónica para comprometer la seguridad que el cifrado suele ofrecer.

Vigilancia audio y video

Podrían escribirse tomos enteros sobre técnicas de vigilancia y contravigilancia electrónica usada por agencias de inteligencia, fuerzas de seguridad y el sector privado. Aunque estos métodos quedan fuera del alcance de este trabajo, es importante recordar que estos tipos de ataques pueden usarse junto con ataques basados por ordenador como los anteriormente descritos, u otros. Algunos ejemplos:

  • Las personas suelen hablar consigo mismas al usar un ordenador. Un micrófono de audio puede revelar la contraseña u otra información.

  • Un teclado estándar puede ser cambiado por un modelo modificado que contenga un transmisor para emitir una señal única para cada tecla pulsada. Pueden enviarse señales de radio a cada pulsación, o almacenadas y enviadas a intervalos aleatorios en una transmisión rápida.

  • Puede incluso usarse vigilancia no electrónica. Se conocen casos de hackers que usaban telescopios para observar monitores de ordenador por las ventanas.

Si bien el equipo de vigilancia suele ser caro, hay aparatos de menor precio. Considera que la vigilancia electrónica puede usarse por oponentes que carezcan de la habilidad técnica para montar un ataque basado en ordenador.

Contramedidas

  • Si el modelo de amenaza lo permite, usa contramedidas técnicas anti-vigilancia (TSCM)

  • No confíes en detectores de micrófonos de los de "tiendas de espías", ya que por lo general solo detectan los tipos más básicos de ingenios de vigilancia (a menos que tengas la experiencia y el equipo adecuados, no podrás detectar aparatos sofisticados de vigilancia).


TEMPEST

TEMPEST es una palabra código sobre el estudio de las emanaciones electromagnéticas y las contramedidas necesarias para evitar la fuga de información. Por ejemplo, los monitores de ordenador sueltan emanaciones electromagnéticas. En las condiciones correctas y con el equipo técnico adecuado, es posible recrear el contenido de la pantalla desde una ubicación remota. Los riesgos de seguridad son obvios.

A pesar de los esfuerzos de los gobiernos occidentales para mantener la información tipo TEMPEST oculta, hay bastante información pública disponible (ver http://www.eskimo.com/~joelm/tempest.html).

Algunos "expertos" pintan un cuadro de furgonetas en cada esquina, rastreando las pantallas de los PCs en las ondas. Para la mayoría, la amenaza de vigilancia de emanaciones es irrealista. Bajo las condiciones del mundo real, es difícil re-crear una pantalla de ordenador capturada. No obstante, si el enemigo tiene acceso a recursos cuantiosos y el objetivo tiene alto valor, tales ataques pueden ser viables.

Contramedidas

  • Usa técnicas y componentes habituales de apantallamiento de radiofrecuencia para reducir las fugas electromagnéticas de tu PC, periféricos y cableado.

  • Compra hardware apantallado contra TEMPEST



Ataques no técnicos

La tecnología suele verse como una solución mágica a los problemas de seguridad. No lo es. El hecho simple es que los ataques que involucran personas en vez de tecnología suelen ser más efectivos y económicos.

Es muy peligroso subestimar el elemento humano. Piensa en:

  • Soborno, amenazas o coerción física sobre amigos, familiares o colegas.

  • Irrupciones y robos, aprobados judicialmente o ilegales.

  • Confianza en la persona equivocada.

Cualquiera de estas condiciones comprometerá comunicaciones cifradas con PGP más deprisa que una bancada de superordenadores Cray.

Contramedidas

  • Revisa la seguridad física en sus premisas.

  • No escribas tu contraseña.

  • No entres tu contraseña enfrente de otros.

  • Guarda los archivos de claves en un disquete floppy y en lugar seguro.

  • No aceptes caramelos de desconocidos.

  • No confíes en nadie.


Conclusión

Defenderte contra ataques prácticos a PGP es factible si tienes en cuenta algunas contramedidas.

  • ¿Cuál es tu modelo de amenazas? Esto debe dictarte tus contramedidas.

  • Usa una estrategia de "rojo/negro"

  • No seas tonto con tu contraseña

  • No ejecutes PGP en una red

  • Usa SFS, SecureDrive, SecureDisk, BestCrypt, F-Secure, etc.

  • Guarda resúmenes MD5 o firmas PGP de archivos "limpios" de PGP y del sistema operativo, y compruébalos periódicamente.

  • Usa programas antivirus

  • Guarda los archivos de claves en un disquete (cifrado convencionalmente)

  • Borra archivos y espacio residual de modo seguro

  • Destruye físicamente (pulveriza/quema/machaca) discos viejos que tengan datos de interés

  • Vigila los registros Winsock de TCP-IP

  • Desactiva las opciones Java, JavaScript y ActiveX en tu navegador

  • No te olvides de la seguridad física

  • Ten cuidado en quién confías

  • Obtén tu copia de PGP de una fuente fiable

  • Líbrate de Windows y usa Linux con CFS



 

Joel McNamara (joelm@eskimo.com) - 9 Agosto 1997


Traducido por Arturo Quirantes Sierra (aquiran arroba ugr.es)
Vuelta a la sección Informes y expedientes