Aradorok, nuestro proximo conferenciante es Seth Arnold
AradorTrabaja como investigador y experto de seguridad desde los EEUU
Aradortrabaja en Wirex, y esta envuelto en el desarrollo de la distribucion Inmunix
Aradortambien esta involucrado enla organizacion de esta conferencia
AradorSin el esta conferencia habria sido muy distintza
Aradorba a hablar sobbre un proyecto interesante sobre auditoria de seguridad
Aradorcodigo abierto : "Sardoniz: haciendo la mayoria de nuestro open source"
AradorGracias a el por preparar esta chrla sonre este interesante tema y a todos por venir
AradorMr. Arnold....
Arador<sarnlod> gracias fernado
Aradorlas preguntas van en #qc
Aradorsentiros libres de preguntar en cualquier momento :)
Aradorquerria agradecer a los traductores su trabajo
Aradorme gustaria empezar diciendo
Aradorque no quiero noesautorizar a RMS cuando hablo de codigo abierto
Aradorcreo que dice muchas cosas buenas, incluso si irritantes a veces ;)
Aradorpero no quiero decir nada especifrico por "codigo abierto" contra "codigo libre"
Aradorhay una anotacion: "con suficientes ojos, todos los bugs son superficiales"
Aradorha sido atribuido a linus torvalds y eric s raymond
Aradorquizas los dos lo han dicho :)
Aradorpero el problema es que _no hay_ suficientes ojos
Aradorla amyoria del software en el que creemos no ha sido propiamente auditado
Aradorbuena parte ha sido escrito por entusiastas para divertirse
viZardesto es maravilloso -- --- excepto porq, los programadores cometen errores y sin una infraestructura para intentar corregir esos errores pueden convertirse en serios problemas.
viZardhay _algunos_ proyectos organizados de auditacion, como el projecto OpenBSD, Solar Designer's Openwall, y los equipos de seguridad de SuSE y Caldera
viZardsin embargo, los equipos de seguridad de caldera y suse han camiado drásticamente....
viZardellos ya no invierten tanto tiempo para auditar como antes
viZard< tarzeau:#qc> y qué de debian? y el hurd?
Arador< tarzeau:#qc> y debian? y hurd?
Aradortarzeau: debian tiene un equipo de seguridad activo, que yo sepa, es orientados principalmente a la respuesta -- meter a los desarrolladores de paquetes en el arreglo de bugs
viZardtarzeau: debian tiene un equipo de seguridad activo; pero a mi entender, ellos están orientados a modo de respuesta--- manteniendo los parches de seguridad al día.
viZardtarzeau: a mi entender, el proyecto hurd no hace auditoría de nada. talvez lo hacen. no sé.
viZard < rene:#qc> y microsoft? :)
viZardrene: microsoft está moviéndose hace C#, lo que puede reflejar enormes ventajas de seguridad con el tiempo.
viZardrene: pero el problema más grande de microsoft es su enorme complejidad
raulrene: de cualquier forma microsoft puede afrontar el contratar miles y miles de programadores para que simplemente lean el codigo fuente y encuentren vulenerabilidades... quizas hay contratados un grupo para haer especificamente eso en su ultimo intento de hacerlos seguros, la comunidad opensource no puede afrontar elc ontratar a docenas de programadores que checkeen el trabajo de otros.
raulvolvamos de nuevo a sardonix! :)
raulña fierza de la comunidad opensource es que mucha gente hace suyos los programas que usa cada dia
raulfernand0:#qc> hay otro problema: auditar el codigo no es facil
raulfernand0 lo ha entendido.
raullos programadores se han acostumbrado durante año a usar metodos inseguros de programacion y muchos errores son muy sutiles
raulsin embargo, cuando alguien como Al viro  le echa un vistazo a un codigo fuente, _cualqueir codigo fuente_, durante 5 minutos, el es capaz de encontrar fallos
raulAl vrio es unico, pero no necesariametne en una moda que no pueda ser seguida
raulque cualqueira pueda encontrar bugs asi de arpido significa que tenemos un camino a seguir
raulnecesitamos un metodo para animar a la gente a encontrar bugs
rauly hacerlo asi con un metod que no implique gastar un monton de dinero
raulmi jefe, Crispin Cowan, ha estado influenciado por slashdot durante años
raulmas especialmente, como la gente gasta _un monton_ de tiempo intentando aumentar "puntos de karma" en sus envios
Arador sardonix nacio
Aradorla idea es simple: hacer un repositorio para almacenar auditorias de seguridad
raulla gente se sale de su camino para escribir utiles y incitantes comentarios, porque seran moderados alto, y un historial consistente de comentarios utiles es un reclamo
Arador atar las auditorias fuertemente a los auditores, y podemos producir puntuaciones de como los auditores trabajan
Aradorteniendo semejante sistema de puntuacion, podriamos ayudar a los auditores a mirar al software y ser precisos en sus auditorias
Arador< rene:#qc> sarnold: especificamente al open software creo que hay otro problema. Algunaes veces cuando encuentro un bug, no lo reporto porque lo estaba arreglando yo mismo ( tengo el codigo fuente despues de todo..) meterse demasiado en eso, atascarse a mitad de camino, y dejarlo tirado
Aradorrene: si, hay esta el problema
Arador rene: aunque quizas la solucion simple es reportar primero el bug a alguien, y entonces despues intentar parchearlo
Aradorrene: de esa manera, si produces un parche, sera probado (siempre un plus) y la gente recibira mejor tus reportes de bug en el futuro :)
Arador< jose_n:#qc> putua tambien sardonix a los distribuidores? por ejemplo: "-a no responde", o "+5 rapida respuesta, trabajo bien con la comunidad para arreglarlo"
Aradorjose_n: actualmente no; para ser honesto, la puntuacion no funciona del todo bien todavia ;)
Aradorjose_n: aunque tenemos planes de puntuar programas especificos con respecto a sus historiales de bugs
Aradorjose_n: La idea es, el sistema de puntuacion de karma de slashdot es casi todo automatico. Nos gustaria que sardoniz fuera enteramente automatico.....puntuar basandonos en la respuesta complicaria los problemas un poco, pero probablmente merece la pena investigar ;)
Arador < docelic:#qc> deberia ponerse un monton de esfuerzo en avisar a los programadoes existentes/nuevos en como escribir codigo con al menos algunos aspectos de seguridad en mente (en adiccion a solamente trabajar en arreglar los bugs que alguien hizo en algun momento del pasado)
Aradordocelic: sinceramente estoy de acuerdo, mi propia experiencia educativa me muestra que esas cosas de seguridad no se tocan en la escuela
Aradordocelic: uno de mis profesores era incapaz? de ver una condicion de carrera en accion -- imagina que si ella fuera a estar programando software que no aceptara carcateres no previstos? el resultado no seria bueno
Aradordocelic: como jose_n apunto, esto no es por falta de recursos -- es en parte, porque la insdutria del software esta mas basada en las nuevas caracteristicas que en la fabilidad
Aradordocelic: asique eneñar a los pprofesores a escribir codigo rapidamente ha sido mas importante que enseñar a los profesores a escribir codigo correctamente
Aradordocelic: con las consecuencias esperadas ;)
Arador< fernand0:#qc> hay otro problema: auditar codigo no es facil
Aradorfernand0 dria no saber esto cuando lo dijo (quizas lo sabia ;) pero porbar codigo que no tiene fallos de seguridad es un problema insalvable
raul ha sido probado que asegurarse que el código no tenga fallas en él isomórfo (tiene el mismo problema que) resolver el problema del Manto de Turín.
raul< riel:#qc> sarnold: un problema que he estado viendo es que la gente copia código con fallas de seguridad de los libros y ejemplos en línea. ¿Sabes si existe algún esfuerzo para auditar material educativo para fallas de seguridad?
raulriel, no conozco proyecto alguno; sería muy difícil bajo algunas circunstancias, como existen cientos de libros de programación con errores depresivamente largos (y obvios),
raullas fallas de seguridad en los mismos, usando funciones no segurar... y prácticamente cada página de un (popular) libro que tengo, está lleno de fallas de seguridad.
raulriel: ambos, jose_n y yo, hemos apuntado anotaciones en ejemplos de codigo en revistas sobre linux; ambos escribimos quejas a los editores, pero esto era duro.
raul < fork:#qc> No será ese que Stevens estuvo pagando para que se sacaran los errores de su libro?
viZardfork: no recuerdo que stevens haya estado pagando específicamente por errores; knuth ofreció una recompensa de $2.56 por error hallado por la primera persona en reportar un error, sin embargo dudo que alguien _realmente_ haya cobrado esos cheques.
viZardDado que la audotoría de código s difícil, ningún auditor hallará todos las fallas; así que necesitamos alentar a _muchas_ personas a auditar software, y esperemos que todos juntos, podamos encontrar la mayoría de ellas.
viZardy, parte de sardonix es el aspecto de investigación: ver si _podemos_ alentar a gente para que audite software proviendo la carroza proverbial, y esperemos que los "putos del karma" se unan a la causa. :)
viZard< docelic:#qc> concerniente a los fallos en ejemplos en línea y/o libros... talvez algunas personas pueda ofrecerse de voluntario en sardonix para auditar el código que se publicará....
viZarddocelic: esa es una gran idea. Creo que debemos ponernos en contacto con una gran editora y ver que podemos hacer
viZard < tarzeau:#qc>  a veces la programación segura no es tan importante....
viZard < tarzeau:#qc> o no existe una diferencia entre la frontera entre lo seguro y los fallado
viZardtarzeau: Iván Arce, de CORE-SDI tiene una folosofía maravillosa: "rendimiento es cuando los programas hacen lo que deben hacer; seguridad es cuando los programas hacen lo que deben, nada mas"
viZard tarzeau: y tienes razón, ése tipo de software no necesita reaalmente ser seguro
Aradorlos juegos son un ejemplo popular
Aradortarzeau: a pesar de eso, muchos sistemas han sido comprometidos por juegos --- cualqueir caballo de trolla que instale cuentas nuevas con privilegios nivel-root cuando se ejecuta por un administrador del sistema, o cuyo fichero
Arador  de "maxima puntuacion" pueda ser usado para explotar el sistema
Aradortarzeau: algunos juegos, como el quake, pueden funcionar en una red -- y cualquier usuario de la red puede enviar al quake alguna entrada pobremente formateada y provocar que este ejecute otro codigo
Aradortarzeau: aunque algunos programas no necesiten ser programados de forma segura, si ellos aceptan cualquier entrada de fuentes que no han sido verificadas completamente, ellos necesitan ser programados pensando en la seguridad.
Arador< Borja:#qc> De echo, las maquinas de juegos pueden ser una excelente artilleria de zombies para hacer ataques DOS.
AradorBorja: si :) esto es porque los juegos necesitan ser programados pensando en la seguridad
Aradortarzeau: en general, solo empezar con una programacion defensiva es todo lo que se necesita para escribir un software seguro
Aradortarzeau: debe de estar en mente, con cada funcion, "como podia ir esto mal si alguien lo usara mal?"
Arador<tarzeau:#qc> no encuentro critico si el software no es seguro que causaria daño/muerte a los humanos o a otras formas de vida
Arador< blackkoal:#qc>define seguridad en una palicacion tl y como tu la entiences
Aradorel software que es critico para una persona no lo es para alguien mas
Aradory, en general, el software de codigo abierto no tiene a ser usado en aeropuertos, o sistemas que soportan la vida en los hospitañes
Aradory , uno de los valores del codigo abierto es que la gente que confia en ellos puede realizar sus propias auditorias de seguridad
Aradorcreo que a este punto, he hablado suficiente sobre la auditoria
Aradorespero que hayamos llegado al punto de que la auditoria de software es un aspecto importante del desarrollo de software en general
Arador(como mi jefe dice, "eso es por lo que lo llamamos 'investigacion :)
Arador< Borja:#qc>de todas maneras, no creo que la auditoria sea el objetivo principal
Arador < Borja:#qc> el software deberia ser fuerte por diseño
Arador < rene:#qc>sarnold: lo siento por no tener pists, pero que es el "karma whore"?
Aradorrene: karma whore -- el efecto de postear de eslashdot, en el que la gente se va fuera de su camino escribiendo comentarios utiles...solo para reconocer :)
Aradorborja: el tipo que escribio "the mytical man month" clasifica a los bugs en dos categorias
Aradorborja: "incidentales" e "intrinisecos"
Aradorborja: los bugs incidentales son los buffer overflows y los bugs de printf -- bugs que se podrian mitigar usando otras herramientas (como los lenguajes de tipo seguro: java, ml, haskell, etc)
Aradorborja: esos bugs tienden a hacer lineas de cabecera frecuentemente: "otrovrus de outlook" "otro bug de seguriodad del IE"
Aradorborja: auditar puede descubirr amabs clases: la auditoria del diseñador de xinetd (100 kb de parche) tenia ambos intrinsecos y extrinscos
Aradorborja: pero encontrar los bugs intrinsecos toma mas trabajo: de ahi la necesiadd de mejor educacion
Aradory hablando de educacion, pienso que esta charla podria ser mas interesante si mencion algunos de los fallos comunes que se introducen en el software
Aradorel mas popular es el buffer overflow (sobreescritura del buffer)
Aradorse hace muy facil en C porque las cadenas son presentadas como colecciones de carcteres terminados en un caracter null
Aradorasique un codigo como este muy tipico permite al atacante tomar el control del progra,a
Arador char buf[MAX];
Arador strcpy(buf, input);
Aradordependiendo de la longitud de la coleccion de carcteres en "input" una persona maliciosa podria sobreescribir el buffer "buf", esto podria escribir sobre variablescercanas o direcciones de rtorno de funciones, o otros elementos del programa
Aradoreste trozo deberia reescribirs para asegurarse que solo MAX-1 caracteres son copiados en buf, o abortar si linput es demasiado largo
Arador(usando strncpy, strlcpy, o strlen)
rauldependiendo del largo del arreglo de caracteres en "input", una persona malicionsa puede sobrecargar el buffer "buf"; esto puede sobre escribir algunas variables, or devolver direcciones, u otros elementos de programa:
Arador < rene:#qc> strlcpy?
Aradorrene: strlcpy fue introducido por el proyecto openbsd como reemplazo de  strncpy .. el cual tenía inconsistencias e semántica.
Arador< blackkoal:#qc> otra pregunta: existe en algún lado un sitio web acerca de cómo escribir código limpio (me refiero con buenos comentarios...?) especialmente como escribir comentarios)
Aradorblackhoal: existe una lista de recursos disponible en https://sardonix.org/Auditing_Resources.html
Arador  blackhoal: y para lo de escribir comentarios, hay una cierta regla que es "no describas lo que hace el código; eso debería ser obvio. describe _por qué_ el código hace lo que hace."
viZardla próxima falla de seguridad más común es el "printf"
viZardpor muchos años, la gente ha asumido que printf es una función segura
viZardpero, en la primaver/verano del 2000, alguien apuntó que printf tiene un método que permite la escritura en la memoria.
viZardy _muchos_ programas permiten entradas maliciosas a suplir strings format
viZardasí que el código luce como sigue:
viZard printf(foo); es más o menos vulnerable pero en desuso.
viZarddebería ser reescrito como printf("%s", foo);
viZardexiste un problema complejo con printf, pero está mejor discutido en un foro específico para printf (como la conferencia INFOSEC de hace unos meses atrás)
viZardotra clase de error común es la carrera de sistemas de archivos (filesystems)
viZardesta es la especialidad de Al Viro :-)
viZardesto puede ser algo tan simple como usar access(2) en un programa privilegiado para determinar si el acceso a archivos debe ser dado en una llamada abierta hecha a nombre del usuario.
viZard(el uso normal va como sigue: if (access("/etc/shadow", S_IWUSR)) open("/etc/passwd", O_WR);)
viZardel problema es que alguien puede reemplazar el /etc/shadow usando el access(2) y el open(2)
viZardesto es conocido como " tiempo de revisión a tiempo de uso"
viZardla solución a este problema es mucha más complejo: el uso de setuid(2) y setgid(2) y setgroups(2) para asegurar que el _kernel_ hace la revisión.
viZardLinux introdujo la herramiente fsuid, que puede ser usada para permitir que un programa emule los privilegios de un ususario específico a un sistema de archivos, sin arrojar los privilegios totales.
viZardEsto puede ser implementado principalmente para el daemon NFS, pero puede ser usado por otros programas, como Sendmail, para asegurar que la entrega de correos funciona perfectamente.
viZardOtros problemas con entradas sin revisar incluye la función system(3)
viZardesta función ejecuta un comando usando /bin/sh, así que es extremadamente poderoso y simpre de usar -- con la salvedad de que si cualquier entrada es suplida por el usuario, uno debe tener cuidado de los metacaracteres del shell
viZardasí, que si un usuario puede suplir parte de un comando con input, algo como "rm -fr /" podría arruinarnos el día.
Aradorun problema de fuente en el que poca gente piensa es en el entorno!
Aradorel cargador provee funcionalidad permitiendo a las librerias ser pre-enlazadas en el programa, reemplazando las librerias del sistema, usando LD_PRELOAD
Aradorasique, incluso usuarios pueden reemplazar funciones con funcione sd eus eleccion!
Aradoresto es mitigado en la libc limpiando el entorno cuando se hace un exec() pero no es perfecto
AradorPATH es tambien popular, muchos sistemas incluyeron . (CWD) en si variable PATJ.....proporcionando un programa /tmp/mail, uno podria ser afortunado si el root lee su email desde /tmp ;)
Arador< majeu:#qc> como puede uno evitar los problemas con LD_PRELOAD, aparte de compilar estaticamente?
Aradorno hay mucho que se pueda hacer, LD_PRELOAD se maneja principalmente por glibc en los sistemas linux, pero el problema es indicativo de la naturaleza especial de las variables de entorno
Aradorel otro dia, recibi un email de Steven Christey, del proyecto MITRE CVE, con una lista de errores de codificacion....era sobre 60 categorias, y muchas entradas tenian una docena o mas subcategorias
Aradorpondremos esta lista en el sitio web de sardonix como una guia para ayudar a los auditores a la hora de auditar software, parece que los auditores tienen un terreno fertil para buscar problemas de seguridad :)
Aradoralguien tiene mas preguntas (canal #qc)
viZard¿Alguien tiene preguntas?
Arador< sh0nX:#qc> cuantas de las utilidades open source (como la base de herramientas GNU) y semejantes se auditan=
sarnold(¿Alguien tiene preguntas? otherwise, i'm done.. :)
raulsh0nX: no suficientes. La gente aún encuentra vulnerabilidades en tar, rm, et
raulsh0nX: me gustaría pensar que 18 es tiempo suficiente para que tengamos un tar estable y libre de fallas, pero ... supongo que no es así
raul< crispin:#qc>  La lista de Steven Christey es una forma más rica que la lista patológica de sardonix.
viZardí, debe hacerse notar que solo he dado unos cuantos ejemplos de errores :) su lista es muy grande y completa
viZard< sh0nX:#qc> quisiera ver un consorcio de auditoría de open source
viZardsh0nX:  eso es mas o menos la meta de sardonix .. pero tratando de imitar el efecto slashdot, esperamos alentar gente para que audite software con un poco más que reconocimiento y paga :)
viZard< sh0nX:#qc> y qué de herramientas automatizadas para buscar cosas
viZardhttps://sardonix.org/Auditing_Resources.html  enlista muchas herramientas que ayudan en los problemas de códigos
viZard< pflanze:#qc> probablemente sería buena idea usar "sandboxing" para aplicaciones como browsers, icq y clientes irc.
viZardpflanze: sí, estas en lo cierto, eso puede ayudar significativamente. Proyectos como LSM (http://lsm.immunix.org) están proveyendo infraestructuras para módulos de seguridad en el kernel de Linux para ayudar a activar cosas como  sandboxes (TrustedBSD for the FreeBSD fans)
viZard< tarzeau:#qc> ¿Alguien conoce SELinux?
viZardtarzeau: el problema más grande de SELinux, como lo veo, es que el tamaño de la complejidad de las reglas de sus políticas es demasiado alto.
viZardtarzeau: esto es otro inconveniente -- los sandboxes pueden ser muy ceñidos y explicitos --- pero lleva mucho tiempo el prepararlos y validarlos, o seran demasiado timples y muy granulados, pero son simples de preparar y validar
viZard< pflanze:#qc> demostrar que un codigo no tiene fallos de seguridad es un problema inresolvible: es solamente iresolvible en cuanto que no se puede partir desde el putno de vista de que las caracteristicas son mas importantes que las correcciones. :)
Aradorpflanze: bien, esto actualmente no se ha probado que sea el caso -- determinas las spropiedades de seguridad  de programas arbitrartios es imposible
Aradorpflanze: para programas especificos, tienes razon, pero incluso programas simples y pequeños (fingerd es uno que me viene a la cabeza) tiene  pobre seguridad
Arador< pflanze:#qc> por ejepmlo,si eres cuidadoso desde el principio (como DJB) podria ser posible escribir codigo 100% seguro
Aradorpflanze: tienes razon, alguna diligencia por parte de los autores del software puede a largo plazao asegurar buesnos registros de seguridad
Aradorpflanze: con los problemas que la funcionalidad sufre (por ejemplo, servidores DNS recursivos deberia ser posible)
Aradoral menos que no haya mas preguntas, me inclino a llamarlo una presentacion :)
Aradorgracias a todos
Arador<traduccion terminada>
sarnoldgracias arador :)
raulplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
Aradorde nada sarnold ;)
viZardaplauso aplauso aplauso aplauso
angelLuisplas plas plas plas plas plas plas plas plas
Aradorgracias a raul y viZard tambien :)
viZardaplauso aplauso aplauso aplauso
angelLuisplas plas plas plas plas plas plas plas plas
angelLuisplas plas plas plas plas plas plas plas plas
angelLuisplas plas plas plas plas plas plas plas plas
viZardaplauso aplauso aplauso aplauso
angelLuis:))
viZardaplauso aplauso aplauso aplauso
viZardaplauso aplauso aplauso aplauso
viZardaplauso aplauso aplauso aplauso
viZardaplauso aplauso aplauso aplauso
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
raulplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas p
raulplas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas

Generated by irclog2html.pl 2.1 by Jeff Waugh - find it at freshmeat.net!