ANALOGÍAS ENTRE UN SUPERMERCADO Y LOS REPOSITORIOS DE LINUX

Introducción

No se trata de ninguna broma. En esta entrega vamos a aclarar porqué es necesario usar repositorios de paquetes en Linux. Veremos que todo obedece a criterios de seguridad informática.

Porqué usar como símil un supermercado

Imaginemos que cuando necesitamos adquirir alimentos, fuésemos por la calle cogiendo cualquier cosa que fuera gratis (freeware) o muestras gratuitas de alimentos (shareware) sin ningún tipo de control de sanidad ni caducidad ni nada por el estilo. Probablemente, y aunque en principio nadie tenga la intención de causar daños a nadie, podriamos adquirir alimentos en mal estado y enfermar con algún “virus”. Afortunadamente, lo normal es adquir los alimentos en un establecimiento especializado (supermercado), donde existen un control sobre el estado de los mismo (marcas registradas en sanidad, fecha de caducidad, de envasado…) de ahí que la probabilidad de coger una infección vírica sea casi nula. En la informática pasa igual.

En Windows© nosotros instalamos cualquier cosa que encontramos por la red sin más reparo. Es cierto que la mayor parte del software, sobre todo el que se distribuye en paginas oficiales y peretenecen a empresas con cierto prestigio, obviamente podemos confiar en él. Pero existen muchos programas que han proliferado últimamente y que no están sujetos a ningún control, donde la gente sin saberlo lo instalan y infectan su ordenador con un virus.

En cambio en Linux aunque existe remotamente también esta posibilidad, las distribuciones mantienen repositorios de software adaptado a su distribución (supermercado). Aquí el fabricante controla el software que empaqueta y nos da garantias de que ese programa es original y libre de virus. Esto se consigue con una serie de claves que se importan en la configuración de los repositorios y que nos garantiza su procedencia. Entre los gestores de repositorios se encuentran: “apt”, “synaptic”, “smart”. Estos programas cuando instalan un programa además resuelven las dependencias de forma automática, por lo que simplifica enormemente la instalación de software en Linux.

Conclusión

En Linux el uso de repositorios nos garantiza que lo que se instala es de confianza. Aunque esto supone un cambio de mentalidad, pues estamos acostumbrados a descargar e instalar directamente un programa que encontramos por la red (con el riesgo que esto conlleva), merece la pena aprender a manejar los gestores de repositorios y así garantizar la seguridad de nuestro sistema.

Hasta otra…

RECUPERAR CONTRASEÑAS EN WINDOWS©

Introducción

En artículos anteriores hemos tratado aspectos básicos de seguridad en Linux y Windows©. Para terminar el tema de la seguridad deberíamos de introducirnos un poco en el hardware, concretamente los famosos anillos de la arquitectura x86. Pero dado que esto sería un tanto complejo no vamos a profundizar más en este aspecto.

El programa Ophcrack

En este artículo vamos a tratar de ver como recuperar las claves de Windows©, usando una herramienta comercial pero que dispone de versiones limitadas gratis. Se trata de la herramienta Ophcrack de la empresa Objectif-Sécurité. Esta herramienta se basa en la compensación de tiempo-memoria usando tablas “rainbow”, que es una variante de la compensación original de Hellman.

La parte fundamental del programa obviamente son las tablas. Las gratuitas obviamente tienen algunas limitaciones con respecto a las de pago.

Las tablas gratuitas son:

  • SSTIC04-10k: esta tabla para LM Hashes de Windows© XP es la peqeña, lo cual se traduce en que tarde más tiempo y soporta menos caracteres.
  • SSTIC04-5k: esta tabla para LM Hashes de Windows© XP es la rápida, lo cual se traduce en que tarde menos tiempo y soporta los mismos caracteres que la anterior.
  • VISTA-FREE: esta tabla para NT Hashes de Windows© Vista es la pequeña, lo cual se traduce en que tarde más tiempo y está basado en diccionario con variaciones en modo híbrido.

Respecto a las tablas de pago ( WS-20K y NT-HASHES) soportan casi todos los caracteres de ahí que si sean totalmente efectivas (existe una versión especial con caracteres alemanes).

La forma más fácil de usarlo es con el LiveCD (versión para contraseñas XP o Vista), y que es una mini-distribución de linux SLAX con el programa y las tablas. El problema es que viene con las tablas pequeñas. También disponemos del programa por una parte (para Windows© y Linux) y las tabas por otra, de esta forma sí que podemos usar la tabla que deseemos.

Conclusión

Tras analizar el programa he sacado dos conclusiones:

  • PRIMERO: Windows© XP y Vista tienen una criptografía débil por lo que su seguridad queda en entredicho.
  • SEGUNDO: Dado que en España disponemmos de la ñ/Ñ podemos usar este carácter en nuestras contraseñas, pues no se contempla aún en niguna de las tablas (ni siquiera en las de pago) de Ophcrack, por ahora. Lo cual no quiere decir que no existan en otros programas de recuperar contraseñas.
  • TERCERO: Implementando la directiva NoLMHash mediante las “Directivas de Grupo”, coseguimos la supuesta “nueva mejora de seguridad” de Windows© Vista. Digo supuesta pues no es nueva, Windows XP viene configurado por defecto con LMHash pero puede configurarse para usar NTHash activando dicha directiva. Para ello siga estos pasos:
    1.- En Directiva de grupo, expanda Configuración del equipo, Configuración de Windows, Configuración de seguridad, Directivas locales y, a continuación, haga clic en Opciones de seguridad.
    2.- En la lista de directivas disponibles, haga doble clic en Seguridad de red: no almacenar valor de hash de LAN Manager en el próximo cambio de contraseña.
    3.- Haga clic en Habilitado y después en Aceptar.

Espero que esta información sea de utilidad, hasta otra…

Bibliografía

http://ophcrack.sourceforge.net/
http://www.microsoft.com/spain/technet/recursos/articulos/secmod225.mspx

CRIPTOGRAFÍA EN LINUX Y WINDOWS©

Uno de los elementos más importante en la seguridad de un Sistema Operativo es la criptografía usada en la protección de las contraseñas, especialmente en usuarios de máximos privilegios como el Administrador.

Criptografía en Linux

En Linux tenemos tres métodos de encriptación de las contraseñas que son:

Bloowfish: En criptografía, Blowfish es un codificador de bloques simétricos, diseñado por Bruce Schneier en 1993 e incluido en un gran número de conjuntos de codificadores y productos de cifrado. Blowfish proporciona una buena rapidez de encriptación en software. Respecto a su vulnerabilidad señalar, que aunque se han encontrado algunos métodos que rompen el cifrado si se usan 4 u 8 rondas mediente criptoanalisis diferencial de segundo orden (Vincent Rijmen) o un ataque de texto plano conocido (Serge Vaudenay) respectivamente, no se ha encontrado ningún criptoanálisis efectivo para las 16 rondas completas que usa regularmente Blowfish. Sólamente el ataque por fuerza bruta que es aplicable a cualquier cifrado se puede usar.Schneier declaró “Blowfish no tiene patente, y así se quedará en los demás continentes. El algoritmo está a disposición del público, y puede ser usado libremente por cualquiera”.

DES: Data Encryption Standard (DES) es un algoritmo de cifrado, es decir, un método para cifrar información, escogido como FIPS en los Estados Unidos en 1976, y cuyo uso se ha propagado ampliamente por todo el mundo. El algoritmo fue controvertido al principio, con algunos elementos de diseño clasificados, una longitud de clave relativamente corta, y las continuas sospechas sobre la existencia de alguna puerta trasera para la National Security Agency (NSA). Posteriormente DES fue sometido a un intenso análisis académico y motivó el concepto moderno del cifrado por bloques y su criptoanálisis. Hoy en día, DES se considera inseguro para muchas aplicaciones. Esto se debe principalmente a que el tamaño de clave de 56 bits es corto; las claves de DES se han roto en menos de 24 horas. Se sabe que la NSA animó, o incluso persuadió a IBM para que redujera el tamaño de clave de 128 bits a 64, y de ahí a 56 bits; con frecuencia esto se ha interpretado como una evidencia de que la NSA poseía suficiente capacidad de computación para romper claves de éste tamaño incluso a mediados de los 70. Existen también resultados analíticos que demuestran debilidades teóricas en su cifrado, aunque son inviables en la práctica. Se cree que el algoritmo es seguro en la práctica en su variante de Triple DES, aunque existan ataques teóricos como:

  • El criptoanálisis diferencial fue descubierto a finales de los 80 por Eli Biham y Adi Shamir, aunque era conocido anteriormente tanto por la NSA como por IBM y mantenido en secreto. Para romper las 16 rondas completas, el criptoanálisis diferencial requiere 247 textos planos escogidos. DES fue diseñado para ser resistente al CD.
  • El criptoanálisis lineal fue descubierto por Mitsuru Matsui, y necesita 243 textos planos escogidos (Matsui, 1993); el método fue implementado (Matsui, 1994), y fue el primer criptoanálisis experimental de DES que se dio a conocer. No hay evidencias de que DES fuese adaptado para ser resistente a este tipo de ataque. Una generalización del CL (el criptoanálisis lineal múltiple) se propuso en 1994 Kaliski and Robshaw, y fue mejorada por Biryukov y otros (2004); su análisis sugiere que se podrían utilizar múltiples aproximaciones lineales para reducir los requisitos de datos del ataque en al menos un factor de 4 (es decir, 241 en lugar de 243). Una reducción similar en la complejidad de datos puede obtenerse con una variante del criptoanálisis lineal de textos planos escogidos (Knudsen y Mathiassen, 2000). Junod (2001) realizó varios experimentos para determinar la complejidad real del criptoanálisis lineal, y descubrió que era algo más rápido de lo predicho, requiriendo un tiempo equivalente a 239–241 comprobaciones en DES.
  • El ataque mejorado de Davies: mientras que el análisis lineal y diferencial son técnicas generales y pueden aplicarse a multitud de esquemas diferentes, el ataque de Davies es una técnica especializada para DES. Propuesta por vez primera por Davies en los 80, y mejorada por by Biham and Biryukov (1997). La forma más potente del ataque requiere 250 textos planos escogidos, tiene una complejidad computacional de 250, y tiene un 51% de probabilidad de éxito.

MD5: En criptografía, MD5 (acrónimo de Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado. MD5 es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad. A pesar de su amplia difusión actual, la sucesión de problemas de seguridad detectados desde que, en 1996, Hans Dobbertin anunciase una colisión de hash plantea una serie de dudas acerca de su uso futuro. A pesar de haber sido considerado criptográficamente seguro en un principio, ciertas investigaciones han revelado vulnerabilidades que hacen cuestionable el uso futuro del MD5. En agosto del 2004, Xiaoyun Wang, Dengguo Feng, Xuejia Lai y Hongbo Yu anunciaron el descubrimiento de colisiones de hash para MD5. Su ataque se consumó en una hora de cálculo con un clúster IBM P690. En sistemas UNIX y GNU/Linux que utilizan el algoritmo MD5 para cifrar las claves de los usuarios, en el disco se guarda el resultado del MD5 de la clave que se introduce al dar de alta un usuario, y cuando éste quiere entrar en el sistema se compara la entrada con la que hay guardada en el disco duro, si coinciden, es la misma clave y el usuario será autentificado. He ahí el problema de encontrar y generar colisiones de hash a voluntad. Esto se traduce que a pesar de las vulnerabilidades anteriormente citadas al no poder generar colisiones a voluntad resulta seguro para encriptar la contraseña.

Criptografía en Windows©

De manera predeterminada, Windows© nunca almacena una contraseña de usuario como texto sin cifrar, sino que las contraseñas se almacenan mediante dos representaciones diferentes de las contraseñas, llamadas habitualmente “hashes”. Se utilizan estas dos representaciones para posibilitar la compatibilidad con versiones anteriores.

LMHash: El LMHash, también denominado hash de Lan Manager, no es en absoluto un hash, hablando técnicamente. Se calcula de la siguiente manera:

  1. Se convierten todos los caracteres de la contraseña que estén en minúsculas a mayúsculas.
  2. Se rellena la contraseña con caracteres nulos hasta que tiene exactamente 14 caracteres.
  3. Se divide la contraseña en dos bloques de 7 caracteres.
  4. Se utiliza cada bloque de manera independiente como una clave DES para cifrar una determinada cadena.
  5. Se concadenan los dos textos de cifras en una cadena de 128 bits y se almacena el resultado.

Como consecuencia del algoritmo que se utiliza para generar el LMHash, este hash es muy sencillo de averiguar. En primer lugar, incluso una contraseña que tiene más de 8 caracteres se puede atacar con dos bloques discretos. En segundo lugar, se pueden ignorar todos aquellos caracteres correspondientes a minúsculas. Por tanto, la mayoría de las herramientas para averiguar contraseñas comenzará averiguando los LMHashes y, a continuación, sencillamente variarán los caracteres alfabéticos de la contraseña averiguada para generar las contraseñas con mayúsculas y minúsculas. Observe que para poder iniciar sesión en un sistema que ejecuta Windows©, ya sea de manera remota o local, deberá utilizar la contraseña respetando las mayúsculas y minúsculas.

NTHash: El NTHash también se denomina hash de Unicode, debido a que admite todo el juego de caracteres de Unicode. Este NTHash se calcula tomando la contraseña en texto sin cifrar y generando el hash MD4 de la misma. A continuación, se almacena el MD4. El NTHash resulta mucho más resistente a los ataques de fuerza bruta que el LMHash. Se tarda varias órdenes de magnitud más en averiguar por fuerza bruta un NTHash que en averiguar por fuerza bruta un LMHash de la misma contraseña. Ciertas debilidades en MD4 fueron demostradas por Den Boer y Bosselaers en un documento publicado en 1991. En agosto del año 2004, unos investigadores divulgaron la generación de colisiones de hash en MD4 usando “cálculo a mano”.

Conclusión

Queda claro que las criptografías usadas en Windows© son totalmente vulnerables, pues se conocen criptoanálisis que son capaces de romper dicha encriptación en poco tiempo. En Linux, Blowfish sólo es atacable por fuerza bruta (probando una por una todas las claves), lo cual lleva muchísimo tiempo.

Bibliografía

http://es.wikipedia.org/wiki/Data_Encryption_Standard
http://es.wikipedia.org/wiki/MD5
http://es.wikipedia.org/wiki/Blowfish
http://support.microsoft.com/kb/299656/es

LOS PRINCIPIOS DE DISEÑO DE LAS MEDIDAS DE SEGURIDAD Y LINUX

Los Principios de Diseño de las Medidas de Seguridad Informática son básicamente:

  1. Mínimo privilegio: Todos los programas y usuarios del sistema deben operar utilizando el menor conjunto de privilegios necesarios para completar la labor. Los derechos de acceso deben adquirirse sólo por permiso explícito; por omisión deberían ser “sin acceso”.
  2. Ahorro de mecanismos: Los mecanismos de seguridad deben ser tan pequeños y simples como sea posible y estar incluidos en los niveles más bajos del sistema.
  3. Aceptación: Los mecanismos de seguridad no deben interferir excesivamente en el trabajo de los usuarios, mientras cumplen al mismo tiempo las necesidades de aquellos que autoricen el acceso. Si los mecanismos no son fáciles de usar, probablemente no van a ser usados o lo serán de forma incorrecta.
  4. Mediación total: Cada acceso debe ser cotejado con la información de control de acceso. Hay que comprobar la autorización en cada momento.
  5. Diseño abierto: La seguridad del sistema no debe depender de guardar en secreto el diseño de sus mecanismos. La suposición de que los intrusos no conocen el funcionamiento del sistema sólo sirve para que los diseñadores se engañen a sí mismos.

Si analizamos el grado de integración de estos principios en Linux, vemos que satisface todos ellos. Por el contrario Windows© no satisface todos estos principios y es por ello que su seguridad sea inferior a Linux.

  • El primer principio se cumple en Linux, pues un usuario por defecto no tiene privilegios de escritura sobre ningún elemento que esté fuera de su carpeta de usuario, que está situada en el directorio “/home”. Por el contrario, el usuario creado por defecto en Windows© pertenece al grupo de adminstradores, teniendo privilegios de escritura a todos los archivos y directorios.
  • El segundo también se cumple en Linux, pues la seguridad está integrada en modulos del kernel (núcleo), que pertenecen a los niveles más bajos del sistema operativo, y ademas en el sistema de ficheros, que contempla una serie de jerarquias de privilegios para cada elemento (carpeta o fichero) del sistema operativo. En Windows©, la seguridad está en el último nivel (Nivel de Aplicaciones) y son los programas antivirus y demás. Respecto al sistema de ficheros FAT o FAT32 decir que no tiene seguridad alguna, y respecto al sistema de ficheros NTFS decir que por defecto está desactivada la seguridad del mismo, teniendo que activarse.
  • El tercer principio lo cumple perfectamente Windows© ¿?, dado que el usuario asume que el antivirus es algo “normal”, y que no es necesario usar contraseñas para realiazar ciertas tareas, el usuario acepta el no tener que hacer nada claro, pero con qué consecuencias. En Linux, a algunos usuarios (sobre todo los que vienen de Windows©) les cuesta tener que adaptarse a tener que introducir la contraseña del administrador (root) cada vez que hay que realizar algunas operaciones de riesgo, como instalar software o drivers. ¿es realmente tan incómodo esto?.
  • El cuarto principio afirma que la supuesta incomodidad anterior es necesaria, por lo que Linux vuelve salir bien parado en contra de lo que sucede en Windows©, donde el usuario (o un troyano) puede instalar cosas sin ningún control. Es muy importante cotejar la autorización en todo momento especialmente cuando instalamos cosas en el sistema. En Linux la instalación de programas se hace a través de repositorios que está acreditados mediante claves PGP y demás.
  • El quinto y último principio se basa per sec en la filosofía del Software Libre al que pertenece Linux. Este último prinpicio es diametralmente divergente a la filosofía de Windows©, que es un software cerrado.

Por todo ello y algunos aspectos más como la criptografía usada en uno y otro caso, llegamos a la conclusión que Linux es más seguro que Windows©.

Saludos y hasta la próxima.

Packaged by Edublogs - education blogs.