¿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
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.
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
No dejes por ahí copias archivos de de texto no cifrado.
Usa utilidades de borrado seguro.
Ojo a las aplicaciones que usan archivos temporales
Destruye físicamente (rasga/quema/pulveriza/mete en ácido) los medios magnéticos viejos [discos duros, disquetes] que contengan datos seguros.
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
Usa programas para el borrado de espacio residual - http://www.sky.net/~voyageur/wipeutil.htm [N. del T. otro programa eficaz para borrado de espacio residual es BCWipe]
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
Usa aplicaciones diseñadas para evitar la vigilancia del teclado (NetSafe).
Guarda resúmenes (hash) cifrados, o firmas, de ficheros clave en el sistema operativo "limpios" para futura referencia.
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
Mantente al día respecto a las vulnerabilidades de red de Windows.
Usa archivos Winsock (de los que guardan registro de las actuaciones pasadas) para vigilar las conversaciones en protocolos.
Ataques por red
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
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
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
¿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