Blog
Proyectos

viernes 9 de mayo de 2008

Análisis de binarios desde un lenguaje de alto nivel

Por norma general el lenguaje utilizado para el análisis de un programa ajeno compilado bajo windows ha sido el ensamblador, ya que partimos de que no disponemos del código fuente, pero hoy día tenemos herramientas muy potentes que nos permiten utilizar lenguajes de más alto nivel para realizar ciertas tareas.

Si tienes práctica en este tema, este post no te dirá nada nuevo, pero pretende motivar a aquellos que tienen curiosidad pero no se atreven por miedo al ensamblador. Que sepan que existen ayudas muy potentes a un nivel más alto.

A la hora de realizar un análisis estático, la herramienta por excelencia es IDA, que junto con su añadido Hex-rays nos puede proporcionar un desensamblado traducido a un lenguaje parecido a C, lo cual puede suponer un ahorro de tiempo bastante importante para alguien que quiera aplicar ingeniería inversa a un fichero.

Si lo que se pretende realizar en un análisis dinámico o en tiempo de ejecución, además de IDA se puede utilizar OllyDbg, un depurador gratuito y muy práctico, pero por ahora tan solo para ring3. El creador del mismo está trabajando en la versión 2.0 del mismo, que será capaz de trabajar en ring0.
También disponemos de Immunity Debugger, que viene a ser el OllyDbg con soporte para python, o podemos utilizar Windbg, un depurador que te permitirá hacer lo que quieras, siempre que sepas controlarlo.


Tenemos unas alternativas muy interesantes que nos permitirán analizar los ficheros desde python. Por un lado disponemos de pefile de mano de Ero Carrera (al que tuve el gusto de conocer en la última edición de la BlackHat: ¡¡un saludo!!) y pydbg dentro de la suite PaiMei que nos proporciona Pedram Amini. Estos aportes nos permite analizar un fichero ejecutable e incluso depurarlo desde python, de una manera muy práctica.

Al utilizar un lenguaje de programación interpretado como python, podremos utilizar scripts que automaticen la tarea o la consola para ir depurando y viendo como se encuentra nuestro pequeñín en cada momento.

Por ejemplo, si queremos saber el punto de entrada del programa (Entry Point) en memoria, con pefile podemos obtenerla de una manera muy sencilla con un script como el que sigue:

import sys
import pefile
fichero = sys.argv[1]
pe = pefile.PE(fichero)
ep = pe.OPTIONAL_HEADER.AddressOfEntryPoint
imagebase = pe.OPTIONAL_HEADER.ImageBase
ep2 = ep + imagebase
print hex(ep2)

./ep.py arana.exe
0x401000L

Vemos que el resultado coincide con el EP que nos da, por ejemplo, OllyDbg:




Por supuesto, ningún lenguaje de alto nivel va a evitar que se necesite una sólida base en ensamblador y la estructura PE, pero esto no es problema, ya que el reverser por norma general tiende a ser más masoca que vago ;)

Mikel Gastesi
S21sec labs

Imagen, Video y Rock 'n' Roll

Actualmente podemos usar técnicas esteganográficas para ocultar datos nuestros dentro de multitud de archivos, siendo los más usados los archivos de imágenes. Existen muchas aplicaciones para hacerlo, una breve busqueda en vuestro buscador favorito os mostrará las más usadas. Se usan básicamente dos métodos:

  • Ocultar la información como una parte del archivo
  • Ocultar la información dentro de los datos del propio archivo
El primero es el más simple y se basa en que los formatos de archivo de imágen, vídeo y sonido contienen además de la imagen, vídeo y sonido; "tags" o metadatos adicionales como la aplicación que los creó, autor, subtítulos, letra de la canción, y un largo etc... Estos "tags" no son necesarios normalmente para poder ver y/u oir correctamente el contenido pero sí nos permiten meter cualquier información que queramos, por ejemplo la nuestra. El incremento en el tamaño del archivo es igual al de los datos

El segundo ya es más complejo, y se basa en mezclar los datos de imagen, vídeo y/o audio con los nuestros. El archivo final pierde calidad si se sustituyen los datos del portador por los de los datos a ocultar, o gana en tamaño si se añaden. Éstos es lo que hacen la mayor parte, si no todas, las aplicaciones de esteganografía.

Seguro que ya estais pensado en las posibilidades de esta técnica para "hacer el mal". Lamentablemente para los que lo hayais pensado os diré que existen tantas técnicas para detectar que existe información escondida que actualmente da igual que escondáis ahí información. Si se está buscando, se encuentra, o al menos se detecta, y en muchos casos, se lee.

Eduardo Morrás
S21sec labs

jueves 8 de mayo de 2008

Lanzamiento BS 25999-2 en castellano

Ayer miércoles, 7 de Mayo, tuvo lugar en el Hotel Meliá Castilla de Madrid la presentación de la norma “BS 25999-2: Gestión de la Continuidad de negocio. La especificación”, en su versión en castellano.
El evento Organizado por la filial española del British Standars Institution (BSI) http://www.bsigroup.es/ contó para dicho evento con la presencia de diferentes ponentes expertos en materia de continuidad de negocio tanto del Business Continuity Institute (BCI) http://www.thebci.org/ , como de otras empresas de los sectores de la banca, formación o consultoría.

Esta norma va a permitir en adelante certificar la implantación de planes de continuidad de negocio contra la norma BS 25999- parte I de gran implantación en el mercado norteamericano, europeo y asiático.

Sin duda esta iniciativa ha tenido en consideración las demandas de varias entidades y empresas que venian solicitando la obtención de un sello de certificación, con reconocimiento en el mercado, que viniese a reconocer los esfuerzos desarrollados por las empresas en la implementación de sus estrategias de continuidad de negocio acorde a la BS 25999. Este Sistema aporta como mayor ventaja y según los creadores del estandar, la de incluir dentro de un proceso de mejora continua “PDCA” la gestión de la continuidad del negocio haciendo de este modo que el plan de continuidad del negocio al que este sistema se aplica este permanentemente actualizado y testado para el caso de la ocurrencia de un incidente o desastre.

La implementación de este sistema de gestión de continuidad de negocio va a permitir en primer lugar incrementar la resiliencia o “capacidad de aguante” de la organización ante la ocurrencia de una contingencia o desastre de la organización así como el poder garantizar en mayor medida una continuidad aceptable de las operaciones criticas de la organización para los casos de paradas prolongadas del servicio principal abaratando los costes de recuperación.
Otro tipo de ventajas de la implantacion de este sistema de gestión y la certificación del mismo son:
· Apoyo a la organización en el cumplimiento de los requerimientos regulatorios en materia de continuidad de negocio (LOPD, BASILEA II, SOX, Mfid, etc…)
· Obtención de un elemento competitivo diferenciador de la competencia
· Reducción de los esfuerzos y costes derivados de la ejecución de auditoria interna y de proveedores
· Permite obtener una justificación interna de los gatos realizados para su implantación
· Obtención de la confianza de los directivos, clientes, accionistas y resto de stakeholders en la "supervivencia" del negocio

Con tantas ventajas no cabe sino esperar que este estándar sea “adoptado” por la gente de ISO, como ya ha sucedido anteriormente con otros estándares que el BSI ha publicado en materia de seguridad (por todos es conocido el paso de BS 7799 a la ISO 17799, actual 27001), dando así una mayor visión internacional a esta solución de continuidad y “unificándose” así las distintas iniciativas que de carácter sectorial han implementado otras entidades o paises.
Cabe destacar en este sentido los comentarios de Agustín Lerma, Product Manager de la BS 25999 en España, quién dentro del acto de preesntación de la BS 25999-2, aseguró que en caso de darse una transición de la norma BS 25999 a ISO la misma se hará, como ha ocurrido en otros casos, de "forma tranquila" de tal forma que las empresas que hayan obtenido la certificación de BSI para sus planes de continuidad no resulten perjudicadas.
Hasta ahora esto solo es una posibilidad…

miércoles 7 de mayo de 2008

La serpiente botnet


El otro día nos encontramos un panel de control nuevo que no es la típica modificación de uno de los conocidos que se pueden encontrar por Internet (tipo MPack, IcePack, FirePack, ZeuS, Apophis, ...). Todos estos para bien o para mal fueron publicados en ciertas webs de forma 'gratuita' y a partir de ellos han salido varias versiones nuevas.

Pero esta vez, nos sorprendió la imagen de la entrada, una serpiente que buscando en Internet parece ser una Taipán, la más venenosa del mundo, (espero que algún lector me corrija) pidiendo la autenticación de acceso al panel de control. El número de máquinas controladas no es mucho más que unas 8.000, pero nos sorprendió porque fue la primera vez que nos lo encontramos.

Realmente el panel de control no permite mandar órdenes del tipo DDoS a los zombies que posee, pero sí que permite enviar 'tareas' a los ordenadores infectados para que bajen nuevos ejecutables y los ejecuten, que es donde se encuentra la parte de los ataques. Además, utilizan una librería para la generación de gráficos JpGraph (que en este momento no funcionaba correctamente) donde si nos fijamos en su página, si el uso de la herramienta es comercial, es necesario comprar la licencia pro. ¿Podemos considerar, además, que el uso de un panel de control de una botnet es de carácter profesional/comercial? ¿Están incumpliendo la licencia de la librería?



Independientemente de las respuestas (que esperamos nos déis) el delito que están cometiendo es mucho mayor, y es un ejemplo más de la amenaza silenciosa de Internet. Desde la unidad de S21sec e-crime luchamos contra este tipo de amenazas, y además de todos los servicios relacionados con el e-crime, ofrecemos servicios de formación/concienciación/divulgación sobre este tipo de amenazas: qué son, cuáles existen, cómo funcionan, cómo puedo protegerme, etc. 

David Barroso
S21sec e-crime

lunes 5 de mayo de 2008

¿La privacidad y la seguridad no se llevan bien?

La polémica está servida con el reciente post publicado por Jesús Oquendo, defensor acérrimo de la privacidad. En él expone que la herramienta contra el malware de Microsoft, que se instala automáticamente con sus actualizaciones y que se anuncia como una excelente solución contra las botnets, podría verse como un backdoor. El programa en cuestión parece ser una herramienta de análisis remoto de los PCs sospechosos de estar infectados. Desde el punto de vista de la seguridad, desde luego, no tiene precio, ya que se accede remotamente al equipo para controlar los movimientos del malware existente en él, pero desde el punto de vista de la privacidad quizá tenga más puntos oscuros de lo que parece...Microsoft no ha detallado aún cómo trabaja exactamente su herramienta, ni a qué datos se tiene acceso, pero si el acceso es total estaríamos hablando de una puerta trasera instalada en cada uno de los equipos que usan Windows actualmente. Nadie puede negar que llegado a cierto punto, y en pro de la lucha antiterrorista, las agencias de seguridad y autoridades mundiales podrían acceder libremente a los contenidos de los usuarios. Todo depende del nivel de paranoia de cada uno, o eso dicen.

El tema de la seguridad contra la privacidad no es nuevo y se ha notado con más fuerza desde el fatídico 11S. Cada uno tiene su propia opinión sobre ello, y no es la primera vez tampoco que este tipo de polémicas saltan a la palestra, como hace unos días cuando a un investigador del protocolo GSM se le requisaron ciertos materiales cuando se dirigía al evento de seguridad HITBSecConf, o cuando a otro investigador se le denegó la entrada a Estados Unidos por razones similares cuando acudía a la BlackHat hace menos de un año. Está claro que es necesario un compromiso entre estos dos términos, aunque la historia reciente dice que la balanza se suele decantar hacia uno de los lados. ¿Es sólo paranoia de unos cuantos o realmente se producen atropellos en este ámbito? ¿seremos protagonistas del siguiente GH sin desearlo?


José Miguel Esparza
S21sec labs

viernes 2 de mayo de 2008

Seguridad analógica

Hoy vamos a escribir de algunos aspectos de la seguridad que a veces pasan inadvertidos. Para gestionar la seguridad de una infraestructura hay que tener en cuenta varios factores, como la seguridad perimetral, el cumplimiento de la normativa legal, la gestión de los elementos de seguridad o la prevención del fraude en caso de ofrecer servicios por internet.

Hay aspectos que no son puramente técnicos. Al final, las personas que usamos, administramos o tenemos acceso a una infraestructura que tiene cierta importancia, podemos ser el origen de una vulnerabilidad. Como muestra, una noticia de hace unos años, pero que ilustra lo que quiero mostrar. Más del 70% de la gente revelaría su contraseña a cambio de una chocolatina. Realmente preocupante, pero hay más casos en los que la falta de concienciación supone un riesgo para la seguridad, como este caso en el que un consultor deja memorias USB con malware por la oficina. Al poco tiempo, los empleados los cogen, miran su contenido e infectan sin querer su ordenador, enviando información sensible al exterior. Otro ejemplo es el empleado que desenchufa unos servidores por 10$ cortando el servicio. Un ataque frustrado muy conocido es el intento de robo a un importante banco internacional. Al parecer, los ladrones, haciéndose pasar por empleados de la limpieza instalaron pequeños keyloggers en los teclados de los ordenadores de los empleados.

¿Crees que podría pasar algo así en tu lugar de trabajo?
¿Qué harías si te encuentras o te regalan una memoria USB en el trabajo?
¿Qué acceso a instalaciones críticas tiene el personal de limpieza o de mantenimiento?
¿Has recibido formación relacionada con la seguridad?

Patxi Astiz
S21sec labs

Donde los scanners de vulnerabilidades no llegan - VI

Aplicaciones propietarias o poco conocidas

La mayoría de los scanners se basan en bases de datos de vulnerabilidades predefinidas y donde habitualmente solo se cataloga el software utilizado de forma mayoritaria. Si analizamos un software propietario o poco común, el scanner no tiene patrones para trabajar.

Cuando un scanner encuentra un software o una aplicación que no conoce, simplemente se limita a ignorarlo. Esto hace que queden huecos bastantes importantes en la valoración del riesgo que realiza.

Como hemos comentado, hay scanners específicos para aplicaciones Web que intentan cubrir esta deficiencia, teniendo en cuenta que una gran parte de las aplicaciones Web existentes son de desarrollo propietario. Pero no existe el equivalente en el resto de servicios.

http://en.wikipedia.org/wiki/Web_Application_Security_Scanner

Esta limitación es similar a las de otro tipo de herramientas de seguridad basadas en patrones, por ejemplo los Antivirus. Si no existe una labor constante y exhaustiva de mejora y actualización de los patrones de detección el scanner se hace inútil.

Ramón Pinuaga
Departamento de Auditoría

 
© Copyright S21sec Gestión S.A. 2007