IV International Conference of Unix at Uninet
  • Presentación
  • Registro
  • Programa
  • Comité Organizador
  • Lista de registrados
  • Equipo de traductores
Talk

20031218-2.sp

mfkr_estoamos orgullosos de presentar a Mr. Jose Nazario de Monker.org
mfkr_Dr. Nazario tiene un Phd en bioquimica de Case Western Reserve
mfkr_pero actualmente trabaja como Verificador de Sistemas y analista de segusridad
mfkr_para una compa#ia americana
mfkr_El titulo de la conferencia es is Vthrottle: stopping mail viruses through libmilter
mfkr_parando los virus de email con libmilter
mfkr_las dispositivas de esta presentacion estan en  http://monkey.org/~jose/presentations/vthrottle.d
mfkr_el concepto detras de vthrottle no es mio
mfkr_pertenece a los labs de HP
mfkr_particularmente a matt williamson
mfkr_y su grupo de investigacion
mfkr_ellos han estado investigando usar mecanismos de limitacion
mfkr_para prevenir el crecimiento de anomalias en la red
mfkr_yo supe de esta investigacion
mfkr_usando un limitador de actividad extran~a
mfkr_mientras escribia un libro en gusanos de internet
mfkr_el cual fue publicado el ultimo mes
mfkr_en breve la tecnica parece ser prometedora
mfkr_pero no estoy completamente convencido de que funcione para todos los casos
mfkr_luego decidi escribir un codigo que probara esto para ver como se comportaba en el mundo real
mfkr_este codigo esta recien en la version 0.30, pero es muy estable
mfkr_y tiene la mayoria de las caracteristicas que tendria un producto de un release 1.0
mfkr_en resumen  vthrottle es un plugin para el email server MTA
mfkr_te permite modificar el comportamiento del MTA
mfkr_MTA = Mail Transfer Agent
mfkr_opera en la capa del MTA , en la conversacion SMTP
mfkr_esta conversacion SMTP entre cliente y servidor
mfkr_esto es opuesto a su cliente lector de email que se denomina MUA
mfkr_MUA (mail user agent)
mfkr_encargado de bajar el correo de sus casillas
mfkr_vthrottle no para los gusanos , solo los hace mas lentos
mfkr_tu nunca le vaz a ganar la carrera a un gusano
mfkr_luego la intencion es ganar un poco de tiempo para alcanzar a reaccionar
mfkr_para hacer esto con gusanos que aun no son conocidos
mfkr_se trabaja con propiedades genericas de los gusanos
mfkr_nunca nos fijamos en la carga util, solo en el comportamiento del host
mfkr_la implementacion esta basada en el plugin milter para sendmail
mfkr_milter es el plugin para la arquitectura sendmail
mfkr_que permite interactuar con el server SMTP y tomar decisiones acerca de los mensajes que pasan por el
mfkr_diapositiva # 3 slide #3
mfkr_tomemos unos minutos para revisar libmilter
mfkr_libmilter es un plugin de la arq sendmail
mfkr_como aparece en el slide 3 es una biblioteca para la parte cliente
mfkr_y el cliente necesita soporte para este y se adhiere en la etapa se compilacion del sendmail
mfkr_no funciona para qmail, exim , postfix etc
mfkr_provee un ambiente de trabajo para interactuar con los email en la etapa de transicion dentro del SMTP
mfkr_esta etapa de transicion compienza cuando el dice HELO
mfkr_y setea el "mail from"
mfkr_o a quien el email va dirigido
mfkr_y cuando envia los encabezados "headers,"
mfkr_luego envia el cuerpo del mensaje
mfkr_cuando termina el cuerpo de mensaaje el email finaliza
mfkr_y el cliente cierra la conexion
mfkr_el cliente MILTER escucha a un Unix socket abierto en el mismo SMTP server
mfkr_o tambien puede ser a travez de un socket ipv4 o ipv5
mfkr_esto te permite tener un unico servidor milter para una granja de MTA ( o smtp servers)
mfkr_la gente tipicamente ha usado los plugins milter por las siguinetes 4 razones
mfkr_la primera es como un archivador de mensajes
mfkr_permite copiar todos los mensajes que pasan por un SMTP server
mfkr_el segundo proposito tipico de milter es para recoger informacion para efectos estadisticos
mfkr_el segundo proposito tipico de milter es para recoger informacion para efectos estadisticos
mfkr_esto puede ser por ejemplo para ver cuotas de correo de salida por mes o por usuario
mfkr_contar el numero de conexiones, se esta evaluando esta informacion a futuro como un macanismo generico de deteccion y control de gusanos
mfkr_el tercer uso de milter es como un sub sistema de antivirus
mfkr_tu puedes alimentar tu antivirus con el mensaje de email y devolver informacion acerca de este mensaje al server
mfkr_aqui se podrian tomar acciones como las siguientes, rechazar o aceptar el email despues de la inspeccion
mfkr_el cuarto uso de milter es como un mecanismo anti-spam
mfkr_omologo al sistema de anti-virus
mfkr_tu puedes pasar el mensaje al systema antispam para que lo evalue y rechaze o acepte
mfkr_dispositiva #5 slide 5
mfkr_como se ha ,aludido en las previas dispositivas, milter puede *hacer* cosas a sobre las conexiones , puede reaccionar durante el estado de transicion
mfkr_entregando un estado de OK 200, o fallo, serie de mensajes 400 fallo tempora o 500 para fallo permanente
mfkr_en la version 8.13 de sendmail se permite dejar los mensajes de email en estado de cuarentena para una decision posterior
mfkr_tu tb. puedes modificar el mail a la vez que pasa atravez de el sistema , aqui lo que se puede hacer es agregar encabezados (headers) como por ejemplo " "X-SPAM")
mfkr_o incluso reescribir parte del mesnaje , como cambiar un attachment
mfkr_por ultimo se puede copiar los mensaje silenciosamente
mfkr_usando el sistema milter
mfkr_los mensajes se pueden copia por ejemplo a un archivo
mfkr_ver diapositiva # 6 slide 6
mfkr_usar libmilter es muy facil de hacer
mfkr_el primer paso es armar un sendmail que tenga soporte para libmilter
mfkr_luego configuras el sendmail para obligar los mensajes a pasar por un checkeo, llamado por el programa milter
mfkr_el siguiente paso es escribir un programa milter
mfkr_lo que se hace es llenar un struct  que le dice al programa que funciones llamar a que puntos, para estos estados de transicion dentro de una transaccion SMTP
mfkr_y por supuesto , to puede dejar estos seteados en NULL
mfkr_si ti deaseas que no sean evaluados
mfkr_estos son solo punteros a funciones
mfkr_lo siguiente es escribir las funciones que evaluan la porcion de la conversacion SMTP
mfkr_todas las funciones pueden tratar el cuerpo del mensaje como un string
mfkr_pero hay que ser cuidadosos de como empaquetamos los NULL
mfkr_todo los metodos retornan una respuesta que sea : dejar pasar, rechazar , o fallo
mfkr_pero hay que ser cuidadosos de como empaquetamos los NULL
mfkr_todo los metodos retornan una respuesta que sea : dejar pasar, rechazar , o fallo
mfkr_dentro del programa tu necesitad connectarte al socket , que tu haz definido para comunicar con el MTA , ( ya sea un unix socket o un IPv4 socket)
mfkr_luego las ultima cosa que queda por hacer el llamar a la funcion smfi_main() , la cual ejecuta el programa milter
mfkr_los porgramas milter trabajan con hebras
mfkr_permitiendo una lto desempeño
mfkr_al mismo tiempo no se bloquean unas a otras
mfkr_de modo que las puedes tener trabajando en paralelo
mfkr_alguien pregunto en el canal #qc si existen herramienta como milter para qmail
mfkr_la respuesta es ninguna que el orardor conozca
mfkr_yo no uso qmail , pero etoy convencido de que milter no funciona con qmail
mfkr_slide 7 dispositiva 7
Aradorlos programas milter normalmente están escritos en C o C++, pero se han escrito bindings en Perl. Los milters perl tienen la misma estructura que el C milter.
AradorDebería ser facil escribir biondings para otros lenguajes usando el toolkit SWIG Entonces podrias escribir en Python, Ruby, tcl, C# o lo que te de a gana de lo que soporta SWIG. Creo que nadie ha hecho esto todavía.
Arador[diapositiva 8]
Aradorvthrottle funciona de una manera muy muy fácil. Tiene tres partes de la transaccion SMTP que observa
AradorLa primera es quien se conecta al servidor de correo.
AradorLa segunda es como dices HELO (como empiezas la transacción SMTP)
AradorY la tercera es la dirección de donde viene el email
AradorPara la conexión y ela información de HELO se conserva y compara el nombre del host, para el "mail desde" se usa una dirección de email
Aradorpara cada una de estas porciones de información, vthrottle conserva una lista de quien ha visto y cuando fueron vistos
Aradorlo que hace entonces vthrottle es mirar al la hora actual y el tiempo de lista que vió alguna de esas observaciones y fuerza un intervalo mínimo entre esas conexiones
Aradorasumimos un par de cosas aquí, la primera que los hosts normales no intentarán mandar correo mas deprisa que este limite y la segunda parte que asumimos es que creemos que la mayoría de virus y gusanos intentarán mandar correo mas rápido que este límite
Aradorcomo dije antes, esta no es mi idea, es de matt williamson, un inverstigador de UK que trabaja en los laboratorios de HP
Arador[diapositiva 9]
mfkr_vthrottle es muy facil de instalar
mfkr_primero tienes q' estar seguro de que tu sendmail tenga soporte
mfkr_para milter incluido
Aradory las librerias instaladas
Aradoresta es parte de la distribucion normal de sendmail, asique no tienes que instalar nigun software especial
Aradorentonces, obviamente, descargas el software de mi sitio:
Aradorhttp://monkey.org/~jose/software/vthrottle/
Aradorla versión actual es 0.30, que lanze la semana pasada (14 diciembre 2003)
Aradorcompilar vthrottle puede costar un poco, solo porque todavía no hay un script ./configure
Aradornecesitas modificar el Makefile
Aradoral punto donde estén instalados las cabeceras libmilter y la librería
Aradorentonces puedes instarlo donde quieras. El archivo README lista los cambios de configuración necesarios para tu sendmail.mc, una vez que regeneres tu archivo .cf ya lo tienes hecho
Aradorse empieza de una manera muy simple: vthrottle -s <socket>, que es el socket de comunicación para el programa
Aradorpuedes ajustar diferentes intervalos de tiempo con -i (por defecto son sesenta segundos ahora mismo)
Aradortambien puedes crear una "lista blanca" usando -w. Este archivo especifica diferentes límites para direcciones de correo o hosts
Arador[diapositiva 10]
Aradoresas son las grandes características de vthrotte ahora mismo, sobre su comportamiento básico
Aradorpuedes configurar un inter4valo por defecto que sea bueno para tu red o tu s necesidades
Aradordigamos que la gente de tu oficina manda email cada 30 segundos de media, puedes cambiar el comportamiento de la linea de comando en tiempo de ejecución
Aradortambien puedes hacer listas blancas de hosts o direcciones de correo usando la funcion de lista blanca
Aradoresto es para los grandes sistemas MTA o para direccions de listas de correo. Puedes configurar diferentes intervalos para esas entradas
mfkr_este es un orden basico de las operaciones para el mail server
Arador[diapositiva 11]
mfkr_este es un orden basico de las operaciones para el mail server
mfkr_usando vthrottle.
mfkr_cuando un host se conecta dice HELO, vthrottle mira a este en la lista de hosts
mfkr_y cuando ellos son encontrados en la lista de hosts conocidos , evalua cual fue la hora de la ultima conexion
mfkr_y cuanto duro esta
mfkr_si la duracion es mas largo de lo requerido por el intervalo
mfkr_entonces vthrottle dice "ok" y el mensaje es permitido
mfkr_si no habia visto el host antes , lo agregar a la lista
mfkr_y lo mueve con un "ok"
mfkr_si la conexion es muy pronta , vthrottle le dice al server que rechace la transaccion
mfkr_cuando el la direccion email de origen es enviada, vthrottle repite el chequeo en una lista para las direcciones de email
mfkr_si por lo menos hay un intervalo de segundos de difernecia , entonces el correo puede pasar, si no el intento de correo falla
mfkr_cuando sea que un intento de encia un correo es evitado por un rechazo o falla , es loggueado para el administrator
mfkr_slide 12 dispositiva 12
Aradorvthrottle tiene algunos fallos...algunos de los cuales son por mi culpa
Aradorel primero es que manda un error permanente al host cuando le dice que se vaya de la conexión o una peticion HELO
Aradoresto se especifica por los standards SMTP y es limitado por sendmail
Aradorel segundo es que la lista usada en vthrottle es golbal. Debido a que vthrottle usa thredas, probablemente destruirá la lista y la hara inservible...
Aradorel tercero es mas bien un problema de rendimiento que espero ver. Usa una lista enlazada en sentido único para buscar las direcciones, asiqeu el rendimiento se degradará con el número de direcciones y hosts con los que interactua tu serverservidor
Arador[diapositiva 13]
mfkr_este es una breve lista de cosas q' planeo hacer con vthrottle para el release 1.0
mfkr_la primera es arreglar sendmail con una parche para retornar un fallo temporal para una coneccion
mfkr_o accion HELO de throttle
mfkr_este permitira que los clientes reaccionen de manera mas sana y vuelvan a intentar en un par de minutos
mfkr_los siguientes dos que ya hice , tu deberias ser capaz de variar del intervalo por defecto, el cual tu puedes hacer ahora
mfkr_el tercer es mejorar la sintaxis de la lista blanca
mfkr_y esta hecho
mfkr_por ultimo yo necesito iplementar un aplazamiento de la cola de mensajes
mfkr_que han sido throttled. estos va ha serv mas truculento
mfkr_pero va ha hacer el servidor mas facil de manejar colas mas largas
mfkr_en vez de esperar que el cliente lo corrija
mfkr_diapositiva 14
Aradortristemente, ya no llevo ningún servidor de correo
AradorAsique no he probado vthrottle en el mundo real. Todo lo que se es que es muy lento y arruinará tu servidor de correo
AradorPodría ser porque tiene que atravesar esta lista enlazada, pero eso depende del tamaño de la red
Aradorobviamente, espero que vthrottle no tenga un impacto negativo en las operaciones de red
Aradornormales
AradorEl peor escenario para este tipo de impacto es que alguien este fuera de la red por un tiempo y pongponga mucho email. Cuando se siente a enviarlo, ese "disparo" de email se retrasará.
AradorUna lista de dereferencia? ayudará mucho en ess aspecto
Arador[diapositiva 15]
mfkr_hay alguna debilidades en el diese#o el cual yo nbecesito ver si puedo mejorar
mfkr_lo primero es cuando un host reusa su conecion existente via un SMTP RSET (setear el estado)
mfkr_lo que yo deberia hacer aca e iniciar el checkeo nuevamente y pretender conectarlo denuevo
mfkr_deberia ser simple hacerlo
mfkr_si el libmilter tuviera un handler para RSET
mfkr_lo segundo es la situacion cuando el virus falsea la informacion en el HELO
mfkr_recuerdelo UD puede enviar cualquier informacion aqui , y el server no esta supuesto a verificarlo
mfkr_yo me imaginno alguno virus ya han hecho esto
mfkr_lo te5cero es cuando el virus falsea la direccion de origen del mail en la ausencia de una fuerte autentoificacion ( via TLS)
mfkr_del emisario , no hay manera de solucionar esto por la implementacion de SMTP
mfkr_diapositiva 16
Arador¡y eso es todo! necesito agradecer a matt williamsony su equipo de gestión de los laboratorios HP, fueron muy agradables con que alguien lanzara un producto que hace lo que hace su patente pendiente de aprobación :)
AradorSe puede encontrar la última versión de vthrottle en su página web:
Aradorhttp://monkey.org/~jose/softwaree/vthrottle/
Aradorel website necesita algunos gráficos bonitos si quieres contribuir. Tengo algunas ideas pero no soy un buen artista
AradorY por ultimo esto tomo solo unas pocas horas de escribir y extender, pero llevarlo a su versión 0.30 me llevó cerca de 400 líneas de código C y seis horas de trabajo
Aradorgracias :)
EMPE[log]plas plas plas plas plas plas plas
EMPE[log]plas plas plas plas plas plas plas
EMPE[log]plas plas plas plas plas plas plas
EMPE[log]plas plas plas plas plas plas plas
EMPE[log]plas plas plas plas plas plas plas
EMPE[log]EXCELENTE traduccion
Moguritoplas plas plas plsa plas plas plas plas ;DD
MJesusclap clap clap clap clap clap clap clap clap clap
EMPE[log]gracias nuevamente a los rtaductores
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
EMPE[log]por hacer este esfuerzo
EMPE[log]por todos los interesados al tema

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

Email UsMás información


© 2003 - www.uninet.edu - Contact Organizing Comittee - Valid XHTML - Valid CSS - Design by Raul Pérez Justicia