| @xpato | megustaria mencionar que las preguntas deben hacerlas en #qc |
|---|---|
| @MJesus_ | a ver, comienzano |
| @xpato | riel definio bien el punto de cryptomarkm hemos creado un modulo del kernel que reforzara las firmas del criptograficas del kernel en los ejecutables ELF |
| @xpato | hay muchas razones del porque uno querria esto |
| @xpato | la primera es para prevenir trojanos |
| @xpato | un troyanos en un programa que parece util, o bonito |
| @xpato | pero en realidad es malvado |
| @xpato | en segundo lugar es para prevenir la intalacion de programas 'rootkit' |
| @xpato | tipicamente, cuando un atacante ha creackeado una maquina, el o ella instala un rotkit, el cual |
| @xpato | falseara su status en la maquina a administrador de sistemas |
| @xpato | estos rootkirs son tipicamente programas binarios, o compilados en la maquina hackeada, asi que prevenir su utilizacion hara mas dificil la tarea del atacante |
| @xpato | puede haber escuchado sobre "tripwire", el cual realiza un trabajo similar a cryptomark; |
| @xpato | sin embargo, tripwire no trabaja en tiempo real, encuentra algun cambio en archivo despues de que estos se han hechos |
| @xpato | cryptomark trrar de llenar esa perdida de tiempo, al proveer chequeos instantaneos en los ejecutables -- cuando estos estan corriendos, su firma es chequeada |
| @xpato | si la firma ni funciona, el ejecutable no corre |
| @xpato | asi que, entrado en las firmas |
| @xpato | los que hemos hecho es usa un hash criptografico para proveer un "huella-digital" unica del ejecutable |
| @xpato | luego firmamos el hash usando un algoritmo de clave publica |
| @xpato | y guardamos la firma en la seccion ELF del ejecutable |
| @xpato | hemos escogifo usa md5 para la funcion del hash |
| @xpato | md5 ha estado en uso, y ha sido estudiado por la comunidad, durante muchos años |
| @xpato | md6 produce un hash de 128bits de largom si importar el tamaño del documento introducido |
| @xpato | el hash se parece a esto, cuando se imprime en hex: 8e783ec353dcef2db142433465c57ba6 |
| @xpato | no podemos usar la herramienta md5sum que viene con la mayoria de los linux, sin embargo |
| @xpato | como nosotros incrustamos la firma en el ejecutable, como una nueva seccion ELF, la incrustando la firma cambiamos la md5sum del archivo |
| @xpato | asi que, nosotros hemos escritos una nueva herramienta para computar el valor del hash en ciertas secciones del ELF, no importando la firma que añadimos |
| @xpato | tambien incluimos el encabezado ELF en el hash, porque eso especifica la direccion donde empieza el ejecutable |
| @xpato | (para aquellos que no estan familiarizados con ELF, es simplemente la estructura de archivos ejecutables en sistemas linux modernosm y muchos sistemas unix) |
| @xpato | nosotros firmamos el hash con un algoritmo de clave publica |
| @xpato | el algortimo de clave pubilca se divide en dos llaves "publica" y "privada" |
| @xpato | sabiendo la clave de un sistema criptografico se puede encriptar o desencriptar algo |
| @xpato | los sistemas de clave publica permiten que las firmas sean computadas. La firma es computada con: el hash, y la clave privada |
| @xpato | -cualquiera- en posesion de la parte publica de la llave puede verificar que la firma fue hecha con la parte privada de la llave |
| @xpato | en teoria, cual sistema cryptografico de llave publica puede ser usado, hasta ahora |
| @horacio | jose_x pregunta si las secciones que hemos pasado en el computo del hash pueden "escribirse" |
| @horacio | el que lo sean o no recae en la performance del sistema tradicional de control de accesos unix |
| @horacio | marcar una sección ELF para escritura requiere un buen comportamiento de quien quiera que vaya a modificar el ejecutable |
| @horacio | cryptomark trabaja con la presunción de que el control del root se ha perdido en la máquina, tratamos de proveer tanta cordura en el sistema como nos sea posible |
| @xpato | entonce, nosotros chequeamos la firma en los que es escencialmente el ejecutable completo |
| @xpato | hemos escogifo usar rsa para la llave publica del criptosistema |
| @xpato | implementaciones previas usaron "el gamal", como el gpg, para el mecanismo de firma |
| @xpato | esta fue un mala elecion, la verificacion de la firma con el gamal es 20 veces mas lenta que con rsa |
| @xpato | sin embargo, RSA estaba aun patentado en USA, asi que la desicion tenia un gran sentido |
| @xpato | ahora podemos libremente usar RSA, hemos cambiado la implementacion usando OpenSSL, los resultados son bastantes mas rapidos que la antigua gpg el gamal |
| @xpato | hecho estos, pusimos el tamaño de las claves a 1024 bits |
| @xpato | y hay un chequeo en solo una llave |
| @xpato | añadiendo soporte para llaves multiples(para permitir que los ejecutables se firmen |
| @xpato | va a tomar un trabajo extra, no esta hecho aun, pero solo es algo de software |
| @xpato | hay muchas razones para agregar soporte al tamaño de clave |
| @xpato | sin embargo, eso provee una potencia falla que puede usar un atacante, no estoy seguro la ganancia de esto |
| @xpato | y, 1024 bit de seguridad es casi suficiente, ganando grandes avance en teoria de numeros |
| @xpato | en eso casom 2048 0 4089 no son sanos tambin |
| @xpato | en este punto, estas pensado "gee, no son costosas las multiplicaciones de 1024 bits? |
| @xpato | si |
| @xpato | por suerte, la implementacion rsa de openssl ha sido bien optimizada al pasar los años |
| @xpato | ennla practica, hemos bajado entre 0.2 a 0.3 % |
| @xpato | ijuz dice: por eso necesitamos una arquitectura de 64 bit (para chequeos mas rapidos" |
| @xpato | ijus: bueno los x86-64 de amd tienen un desempeño mas rapido, pero eso es por el resultado de nuevas instrucciones optimizadas |
| @xpato | ijuz: talves itanium no esta bien optimizado |
| @xpato | mientras no tengamos un total implementacion disponible, los detalles sobre una antigua implementacion, y noticias sobre la nueva estan en:http://www.immunix.org/cryptomark.html |
| @xpato | mas preguntas? |
| @xpato | jose_n pregunta: si cryptomark usa algun cache? si, lo usamos, pero no es perfecto aun |
| @xpato | y riel pregunta una mas dificil, si cyptomark cheque las librerias compartidas? |
| @xpato | la cual lleva a, cryptomark revisa los sripts? |
| @xpato | actualmente no revisa las librerias compartidas |
| @xpato | pero lo haremos en algun momento |
| @xpato | de todas formas, a) estas librerias no tienen garantias atomicas del kernel b) pueden ser cargadas directamente con mmap()! |
| @xpato | por lo tantom hay muchas formas por las cuales pueden ser cargadas que no son obvias para el kernel |
| @xpato | los scripts tienen el mismo problema, hay muchas formas que un interprete puede cargar codigo, y revisandolos del kernel es dificil |
| @xpato | ijuz pregunta sobre si la licencia de openssl es compatible con gpl; no estamos seguros |
| @xpato | F3nix ha preguntado: los requerimientos minimos de cryptomark? |
| @xpato | como ocupa paging en demanda, ayuda mas RAM |
| @xpato | y, como realiza operaciones dificeles, ayuda una CPU rapida |
| @xpato | sin embargi, mi maquina de pruebas es un celeron 400 con 32 MB en Ram, y me gusta de esa forma, me fuerza a encontrar mejore soluciones |
| @sarnold | xpato: did I address F3nix's question? :) |
| @xpato | yes |
| @xpato | jose_n sugiere que manteniendo setuid root y compilando staticamente puede ayudar ... lo haria |
| @xpato | pero, hemos aprendido del fiasco zlib que linkear staticamente (y peor, copy&paste) codigo es un problema a largo plazo tremendo para mantener |
| @xpato | cthulhu_ pregunta: "que pasa cuando cambias codigo al correr, con ptrace por ejemplo?" |
| @xpato | ayuda recordad que esta tratando de resolver cryptomark, quiere elevar un barrera para infecciones de troyanos, y eleminar root-kits |
| @xpato | ya que ptrace puede modificar procesos mientras corren, y eso no es persistenete, ptrace no tiene mucho impacto |
| @xpato | lo segundo, no estoy seguro... pienso que la no persistencia va a ayudar |
| @xpato | pero, cthulhu_ tiene un buen punto, que cryptomark no resolvera todo tus problemas |
| @xpato | :) |
| @xpato | ultima llama por preguntas? :) |
| @xpato | quiero agradecer todas sus preguntas |
| @xpato | y recordar que la proxima charla es en cuatro horas |
| @xpato | Gracias |
| @xpato | aplausos |
| @MJesus_ | aplasusos para sarnold en #infosec y para xpato aqui |
| @MJesus_ | clap clap clap clap clap clap clap clap clap clap |
| @MJesus_ | clap clap clap clap clap clap clap clap clap clap |
| @MJesus_ | clap clap clap clap clap clap clap clap clap clap |
| @xpato | plas plass |
| @xpato | clap clap clap clap clap clap clap |
| @xpato | clap clap clap clap clap clap clap |
| @xpato | clap clap clap clap clap clap clap |
| @xpato | clap clap clap clap clap clap clap |
| @xpato | clap clap clap clap clap clap clap |
| @xpato | clap clap clap clap clap clap clap |
| @xpato | clap clap clap clap clap clap clap |
| @xpato | clap clap clap clap clap clap clap |
| @MJesus_ | clap clap clap clap clap clap clap clap clap clap |
| @MJesus_ | clap clap clap clap clap clap clap clap clap clap |
| @MJesus_ | clap clap clap clap clap clap clap clap clap clap |
| @MJesus_ | clap clap clap clap clap clap clap clap clap clap |
| @MJesus_ | clap clap clap clap clap clap clap clap clap clap |