Logo Umeet2001

ESPAÑOL
Presentación

Programa

Desarrollo

ENGLISH

Presentation

Programa

Desarrollo


viZardLa charla para ahora, esta titulada "El proyecto de Seguridad en Linux por modulos"
viZarddirigido por Seth Arnold and Chris Wright (WireX Communications, Inc)
viZardok es hora de comenzar.
dardhalBuenas noches
viZardbuenas
viZardal rato nos ayudas a traducir =)
dardhala ver si puedo :)
viZardlos ponentes son sarnold y cdub en el canal #linux
viZarden un momento comenzamos
viZardAhora sí, comenzamos.
viZardLa lectura de esta tarde, luego de la de David Santo
viZardsera acerca de la infraestrucutura mas flexible y segura en Linux
viZardmas flexibilidad en algo bueno, por varias razones
viZardpor un lado, los sistemas de grandes servidorees tradicionales de usuario - grupo
viZardson un problema al manejar la seguridad
viZardla lectura de hoy, sera dada por Chris Wright and Seth Arnold from WireX Communications
viZardellos estan desarrollando el proyecto de modulos de serguridad para Linux
viZardasi, que les cedo la palabra a ambos.
viZardGracias riel, por la introduccion
viZardY gracias a uninet por permitirnos participar en este foro
viZardPrimero comenzaremos con algo de historia
viZardComenzando con el linux 2.5 kernel summit.
viZardLa Agencia de Seguridad Nacional (USA) hizo una presentacion de su distribucion SELinux y la construccion sobre seguridad en su kernel
viZardpara hacer la historia corta
viZardLinus y otros acordaron que Linux necesita seguridad avanzada
viZardSin embargo, Linus queria algo  flexible
viZardno quiso aceptar un proyecto de seguridad que desviara el dasarrollo del kernel en otra direccion
viZardbasicamente esto es el proyecto LSM
viZardComenzamos definiendo el ambiente abstracto para permitir una variedad de politicas de seguridad para ser implementadas en el kernel
viZardsin tener que estar parcheando para cada proyecto
viZardLa primera pregunta importante que enfrentamos fue
viZardcomo interponer nuestro ambiente de trabajo
viZardHay muchas personas a favor de un sistema de trabajo estricto de llamado de sistema
viZardeventualmente elegimos el sistema de llamado estricto por interposicion
viZardsolitario
viZardel cual fue tan bueno como para que Linus nos aconsejara en contra de ello
viZardPor el contrario escogimos ver cada objeto del kernel que fuese accesible al espacio del usuario como algo que necesita proteccion
viZardel estado-de-arte en el presente kernel, permite modos de pruebas basicos en bits (pruebas de superusuario)
viZardasi que comenzamos tratando de crear un ambiente que permitiria el soporte del actual sistema de control de acceso
viZarden el kernel
viZardel problema con el sistema de llamado es que esta muy lejos de donde la "accion" toma lugar
viZardHay datos de usuario que necesita ser copiado al kernel
viZardy hay objetos del kernel que necesitan ser buscados
viZardetc
viZardAsi que concentrandonos en los mismos objetos del kernel
viZardcomo inodos, archivos, task_struct, etc
viZardsentimos que podemos obtener mejor covertura de control de acceso
dardhalfijándonos en la situación de los actuales controles check() u super()vimmos que nuestra aproximación no estaba tan alejada de dónde está ahora mismo el kernel
dardhalde maner a que comenzamos a crear una estructura de callbasck que representan a todos los objetos
dardhaly todas las accciones quye pueden hacer los usuarios para manipular dichos objetos
dardhalel propio código del LSM que está en el kernel es un conjunto de ocntroles que protegen el acceso a los objetos del núcleo
dardhalestos ganchos ejecutan las callbacks, que llaman al código específico del módulo
dardhaluna idea crítica es separar la -política- del -mecanismo-
dardhalqueremos que nuestro marco de seguridad sea lo más independiente de la política de seguridd posible
dardhaly forzar todas las decisiones de política de seguridad hacia el módulo de seguridad
dardhallas políticas actuales de seguridad en el núcleo son básicamente DAC (Control de Acceso Discreccional)
dardhalPero hay otros grupos muuy importantes de polñiticas de seguridad
dardhaltales como MAC, DTE, etc....
dardhaluna característica importante de la que carece MAC es el etiquetado de de objetos específics
dardhal¿ como la infrestructura de netfilter ?. Sí, hasta donde yo sé
dardhalparte del marco de seguridad soporta el etiquetado de objetos
dardhalalgo que cariñosamente llamamos "burbuja de seguridad opaca"
dardhalademás de proporcionar ganchos (hooks) para el control de acceso
dardhalproporcionamos los ganchos necesarios de asignación/desasignación de ganchos para dichos "burbujas de seguridad opacas9 (léase void* )
dardhalentomces la infraestructura puede usar dichas etiquetas para decidir si se permite o no el acceso
dardhalesta es la vista de nivel general de lo que es LSM
dardhal¿ preguntas ?
dardhal¿ como los Large Binary Object ?
dardhalson simples void*,  el módulo de seguridad puede poner lo que desee ahí
dardhal¿ qué otros usos se preveen ,es decir, qué módulos ya están, control de recuross, (como los userbeans( ?
dardhalcontinua sarnold
dardhalno sé lo que son los userbeans, aunque los ganchos están situados en lugares estratégicos, y supongo que tendrán un amplio avbanico de usos
dardhaluna cosa que me viene a la cabez son los portable filesystem de BSD
dardhaluna cosa que hemos tratado de evitar es ligarnos a un esquema concreto de ganchos, de manera qye los ganchos son realment egeneéricos
dardhalLos userbeans son cuotas de usuario pero para recursos del sistema, qur Andrey Savochkin did it and Marcelo Tosatti trabajaron en el pasado
dardhalGuau,, muy interesante
dardhalSuena como algo que podría implementarse gracias a LSM
dardhalPuesto que LSM dispone de ganchos para la creación de objetos
dardhalPorque un sistema de segurida trambién podría preociparse de gestionar los recursosl
dardhal¿ tales como  inode->u.generic_ip, netdevice->private, struct sock->protinfo.destruct_hook (estoy sobrecargando la cosa :) ?
dardhalsí, tenemos inode->security y tal, y llevan asociadas etiquetas especificas del módulo
dardhal¿ será posible usar múlktiples módulos de seguridad al mismo tiempo ?
dardhalEsperad, que eso lo voy a contar a continuación
dardhalahora que hemos visto el nivel general del marco de seguridad
dardhalhablemos de los detalles
dardhallas coallbacks están todas en una estructura, security_operations
ToniSBdardhal ya sigo sigo si kieres ;)
dardhalcuando se iniciar el módulo
dardhaltantoen tiempo de arranque o al argar ek módulo
dardhalnecesita inicaiar la estructura security_ops
dardhalesto se hace mediante la interfaces estandar del tipo register_security
ToniSBesto se hace via la interface register_security estandart...
ToniSBy uno de nuestros primeros objetivos fue
ToniSBcomo hacer posibles los modulos de seguridad de pila con esta interface...
ToniSB(y no hay que olvidar que cadamodulo esta guardando su propia etiqueta en el objeto del kernel)
ToniSBlinus tenia una fuerte opinion sobre esto, como mucha gente en el campo de la seguridad
ToniSBlinus dice en efecto, no hay que diseñar politicas de seguridad
ToniSBla investigacion de seguridad dice, que en general, las politicas de seguridad no se diseñan
ToniSBdecidimos tomar un punto intermedio aqui
ToniSBuna cosa importante a remarcar es que el super usuario y los chequeos de capacidades se hacen contra datos directamente en task_struc
ToniSBasi que seria "trivial" diseñar una politica de seguridad arbitraria con el superusuario o el modulo de capacidades, ya que ellos no pisan directamentes los dedos de los otros (via el puntero oscuro)
ToniSBel unico problema por ahora, es la interface delkernel (la estructura de llamada atras (callback))
ToniSBasi que tenemos la notacion de un modulo primario. este es el primero que llama a register_security
ToniSBtodos los modules siguientes no se registran con el kernel, sino que lo hacen con el primario
ToniSBesto permite al kernel ser "clueless"(sin pistas¿?¿) sobre la pila de modulos
ToniSBy fuerza a los modulos que se estan apilando con otros a permitir explicitamente este comportamiento
ToniSBde esta manera, pensamos que el diseño arbitrario de politicas de seguridad puede ser un problema inmanejable
ToniSBxo el diseño de algunas politicas conocidas puede hacerse facilmente
dardhalhemos considerado la creación de un tipo básico de composición que simplemente permita tregistrar múltiples módulos, y que básicamente && o || los resultados, pero tal módulo no existe ahora mismo. Para recapitular, se pueden apilar módulos, pero hemos intentado que el kernel no sepa de eso, luego el mecanismo de apilado no es completamente genmérico
dardhalente restringe el acceso a dicho objeto ? Esto tiene más sentido cuando consideras qué pinta tiene el código del kernel
dardhalalgo como las ACL podrían combinar bien con algo como vserver,. Sí pienso eso , y es algo sobre lo que hablaré en breve. El código del kernel a menudo se parece a los siguiente:
dardhal<cdub> if (uids != match && !(capable()) goto failed;
dardhal<cdub> do_action()
dardhal<cdub> with LSM it looks similar:
dardhal<cdub> if (uids != match && !(capable()) goto failed;
dardhal<cdub> if (security_ops->do_action()) goto failed;
dardhal<cdub> do_action();
dardhalde manera que tenemos  un problemo, y podríamos queres sobrescribir el acceso a un objeto por parte de determinado sujeto. El gancho de seguridad sólo va a restringir el acceso concedido por la lógica del núcleo. Y hemos dicho acerca de este preciso aspecto y hemos decidido hacer un compromiso
ToniSBtenemos un gancho en la funciona capable(), asi que esa funciona puede saltarse(este es un comportamiento de las capacidades 'estandards' POSIX.1e)
dardhalel compromiso es que, la función capable() recibe muy poco contexto, sólo un vector de 32 bits CAP_SYS_ADMIN etc
ToniSBel compromiso es que, la funcion capable acepta un contexto muy limitado, solo un vector de 32 bits CAP_SYS_ADMIN, etc...
ToniSBasiq ue mientras podemos restringir el acceso a objetos en un marco muy concreto
ToniSB(las interfaces restrictivas pueden tener muchos argumentos al callbak, inode, dentry, etc.)
ToniSBsolo podem saltarnos en control de acceso en una granularidad "corarse"(¡?¿?) (vector de 32 bits)
dardhalelegimos este compromiso porque permite a la mayoría de los módulos de seguridad, con el mínimo de cambios en el kernel
viZardbuena sincronia =)
ToniSBperfecto, ahora el problema vserver...
ToniSBvserver es un proyecto para permitur multiples servidores virtuales a ejecutarse en contextos de seguridad aislados
ToniSBpodemos soportar la mayoria de las cosas que deberia hacer el vserver, con dos excepciones
ToniSB!) vserver toca directamente el codigo temporizador, cosa que nosotros nunca intentamos hacer ;)
dardhal2) vserver devuelve los datos al usuario en función del su contexto
ToniSBesto es algo que podemos trabajar para mejorar el marco de trabajo del LSM
ToniSBoh, he olvidado mencionar que el LSM se esta diseñando para ser aceptado para el 2.5
dardhal(un ejemplo específico, vserver puede devolver diferente iunformación de uname en diferetes contextos de seguridad) (en la actualidad podemos manejar eso, pero algunas de las otras no, pero ahora no recuerdo cuáles)
ToniSBotro problema que teniamos deberia haber sido solucionado por los cambios en el VFS anticipados en el 2.5
ToniSBalgunas politicas de seguridad intentarian hacer desiciones de control de acceso basadas en el nombre del archivo, en cambio otras basadas en el numero de inodo
ToniSBel marco de trabajo de security_ops refleja las inode_operations
dardhal¿ Como hace LIDS ?.  ¿ te refieres a los nombres de ficheros ?. S¡, exacto
ToniSBasi que justo antesd de que el sistema de archivos sea llamado para hacer algo, comprobamos que es correcto
ToniSBalgunos discuten que los nombres de archivo no son suficientes, ya que estas intentando protejer realemente el inode, pero esto es una cuestion de discusion de politicas de seguridad ;)
dardhalintentamos ser agnósticos, luego esperamos soportar proyectos tales como LIDS. Desde nuestro hooks hacemos copia de los inode_operations, y tomamos los mismos argumentos. Para aqulellos que lo hjan probadso
ToniSBno puedes montar de manera segura una ruta desde un solo inode. realmente necesitas las dos dentry y vfsmount
dardhalsabeafortunadamente, Al Viro planea canbiar la interface del FS, luego preveemos que esa funcionalidad esté muy pronto. ¿ preguntas ?. Nada, sin descanso para mi mano tecleadora
ToniSBdonde estamos ahora?
ToniSBhemos implementado un completomarco de trabajo
ToniSBy hemos implementado modulos que usan este marco, concretamente, superuser y capacidades
ToniSBadicionalmente, desde la comunidad lsm, tenemos un modulo DTE, un modulo SELInux, y un modulo que implementa mucha parte del parche OpenWall del kernel
ToniSBestamos inspeccionando muy de cerca el desarrollo del 2.5, y deseamos proponer lsm un tiempo despues de que los cambios al VFS se hayan realizado
ToniSBno he mencionado mucho sobre la parte de red del LSM
ToniSBse diseña mayoritariamente desde netfilter, y solo añade lo que falta para cubrirlo por completo
ToniSBasi que parte de la interface del LSM son una serie de ganchos de netfiltes
dardhaly es que no queremos reinventar la rueda
ToniSB;)
ToniSBah, si, y por supuesto estamos siguiendo los atributos extendidos y el desarrollo del ACL, ya que EA permite un monton de etiquetas sin tener que usar un archivo de respaldo para una base de datos de atributos
dardhal usando la infrwestructura actual de netfilter para la parte de red de LSM es bueno :) ?. Sí, estoy de acuerdo. Pero haciendo esto estamos extendiendo la infraestructura de red y yendo haci algo más genérico
ToniSBbien, esto es una manera de verlo ;) cuando vino el soporte de red del LSM fue obvio que se necesitaba acutualizar (¿?) netfilter
ToniSBasi que imagino netfilter como una mejora de LSM ;)
dardhalEntonces netfilter, LSM, EA, userbeans, etc....podrían ser tofdo una gran infraestructiura basada en ganchos
dardhalLo que queremos es centrarnois en la seguridad y en el control de acceso, auqnque LSM permita hacer más cosa
dardhal¿ pero no hay partes de las que otros proyectos puede veneficiarse ?
dardhalsí,m pero no pretendemos resolver todos los problemas
dardhalpero de igual manera que hemos usado netfilter, los demás pueden usar LSM
dardhalpara satisfacer sis necesidades
dardhal¿ le preocupa a LSM la identificación ?
dardhal¿ de dónde obtiene las credenciales ?
dardhal¿ o está fuera del ámbito de LSM ?
dardhalEstro lo consiuderamos como una politica que debe ser aplicada por un módul
dardhalEl núcleo de LSM ni sabe ni se preocupa
dardhalLos ganchos de LSM son como fork y exec
dardhalDurante ese tiempo el módulo puede conceder credenciales  de la tarea
dardhalRecientemente leí una entrevista donde se dice que el HURD puede ejecutar uin proceso sin un contexro asociado , por ejemplo sin derecjhos
dardhalEsto permite a un servidor de FTP funcionar sin derechos, justo lo contrario que funcionar como root en UNIX
dardhalhasta que un usuario entra en el servidor
dardhal¿ se puede conseguir algo similar con LSM?
dardhalsí, y de hecho el uso astuto de las capabilities permitirán este tipo  de cosas
dardhal¿ qué modiles están ya disponibles ?
dardhal<cdub> DTE, SELinux, Openwall, capability, superuser son los módulos ya disponibles
dardhalel módulo root=god module, POSIX1.e capabilities un módulo de enforcement de dominoi y tipos, el SElinux, el solar designers, et.c...
dardhalSElinux es una infraestructura que permite muchas politicas
E-D-W-I-NSELinux es sí mismo en la infraestructura que permite las políticas múltiples (MAC, los etc.) tan hay absolutamente un dígito binario disponibles ahora
dardhalLa egnt4 de LIDS dice que quiere portat LSM cuando este se estabilice
dardhalY yo tengo un ódulod e vserver parcialmente funcional
dardhalNo pretendemos que se acepten en 2.5. todos los módulos de LSM
dardhalSólo queremos que entren el núcleo de LSM así como algunos módulos
dardhalMientras tanto habrá un repositorio de todos los módulos para poder ser descargados y como servicio a la comiunidad
dardhalvan Riel preguntaba sobre cómo combinar ACLs y vserver
dardhaly estew es quizás un ejemplo de cómo los módulos genéricos pueden no combinar bien
dardhalpor ejemlpo, las ACL podrinan implementarse completamente dentro del propio contexto de vsercer
dardhalproporcionando control de acceso obligatorio adiciional
dardhalgracias a vserver
dardhalperio las ACL tambien se pueden implementar fuera de vserver, para propotcionmar una mayor granularidad
dardhalentre los servidores de vserver
dardhaldiferentes políticas de seguridad perfectamente válidas vienen de enfoiques diferentes para componerlas en dos módulos
dardhal¿ más preguntas ?
dardhalNT: espero que no ;)
dardhalalgunos detalles del proyecto.-.
dardhalpueden encontrar los parches en lsm.immunix.org
dardhalvayam esto parece ahora bastanmte tranquilo
dardhaldisponemos de una lista de corre,
dardhalpara aquellos que se preguntan por LTT; http://www.opersys.com/LTT/
dardhal<cdub> http://mail.wirex.com/mailman/listinfo/linux-security-module <<--- lista de correo
dardhalY nos reunimos habitualamente en irc.openprojects.net #lsm-dev
dardhal¿ está dentro del ambito de LSM el lucahr contra los covert channels (canales encubiertos) ?
dardhalBuena pregunta....no completamrnte, puesto que es una batalla perdida
dardhalsí,como tiempos de busqueda de I/O, etc.
dardhalno disponemos de la posibilidad de cerrar todos los canales encubiertos
dardhalPero hay varios hooks de LSM que permiten cerrar muchos de estos canales
dardhalEs una respuesta un poco vaga, pero los canales encubiertos son difíciles
dardhalgracias a los ponentes (cdub y sarnold) por esta conferencia
dardhalEn 30 minutos comenzará otra conferencia (afortunadamente en castellano. NT)
dardhalBueno, creo que eso es todo por mi parte (dardhal)
dardhalEspero que hayáis entendido algo de lo que he traducido, que hoy andaba espeso :(

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


Mas información: umeet@uninet.edu