Reseña Libro: iOS Hacker’s Handbook

Hacía tiempo que quería leer este libro, por fin saqué algo de tiempo y tengo que admitir que ha superado mis expectativas. Esta magnífica obra escrita por unos reputados expertos en seguridad en iOS – una de las plataformas móviles líder del mercado – como son Charlie Miller, Dion Blazakis, Dino DaiZovi, Stefan Esser, Vincenzo Iozzo y Ralf-Philip Weinmann nos revela los secretos del sistema operativo móvil de Apple.

iOS Hacker’s Handbook (ISBN: 978-1-118-20412-2) es una fascinante lectura muy técnica que nos adentra en el funcionamiento y seguridad de iOS para encontrar vulnerabilidades y desarrollar exploits.

Sus once capítulos están repletos de código fuente (recomendado entender C y ASM) y describen la arquitectura de seguridad de iOS como el cifrado, sandboxing, los diferentes tipos de protecciones de memoria y firma de código para encontrar vulnerabilidades mediante ingeniería inversa y fuzzing, así como desarrollar exploits mediante modernas técnicas como ROP.

Algunas joyas incluyen el estudio de vulnerabilidades reales que han sido utilizadas para ganar el mítico Pwn2Own, funcionamiento y desarrollo de nuestros propios jailbreaks y depuración y explotación del kernel iOS.

Teniendo en cuenta que el auge en la venta de exploits y lo que se puede llegar a pagar por un 0day en iOS es un negocio muy serio y lucrativo, ¡hay que leer esta obra (leer artículo de Forbes al respecto)!

Este libro está enfocado en la plataforma iOS, por lo que no entra en vulnerabilidades y explotación de Apps – aunque para ese tema ya existen otras referencias por lo que no se echa de menos.

Sin duda una obra de obligada lectura para todos los expertos en seguridad que quieran adentrarse en las entrañas de iOS al más bajo nivel. Os recomiendo leer la obra un par de veces para asimilar bien los conceptos y bajar el código fuente que acompaña, ya que contiene diversas herramientas muy interesantes y que necesitaremos para explotar iOS.

Aprovecharé este post para mencionaros que desde la empresa VULNEX ofrecemos una formación de hacking en móviles que estoy seguro puede ser de vuestro interés 

Puntuación (1 rosa, muy malo / 5 rosas, muy bueno): 5 Rosas (Lectura Recomendada)

— Simon Roses Femerling

Publicado en Hacking, Hacking Etico, Libro, Seguridad | Etiquetado , , , , , , , , | Deja un comentario

AppSec: Mitos en Python sobre ofuscación y reversing

Python es un lenguaje de programación fácil y potente que nos permite escribir sofisticados programas, como por ejemplo Dropbox y BitTorrent. Es habitual que se entregue el código fuente de los programas en Python, aunque en algunos casos se aplican diversas técnicas como ofuscación y compilación para proteger el código de los ojos curiosos. Pero ¿realmente funcionan estas técnicas?

En este artículo veremos algunas herramientas que supuestamente nos ayudan a proteger nuestro código y lo fácil que es subvertirlas.

A continuación tenemos dos programas de ejemplo escritos en Python: el primero es una simple función que nos pide una contraseña y nos muestra un mensaje; el segundo ejemplo es igual, aunque en esta ocasión hemos utilizado una clase.


def main():

        a = "toomanysecrets"

        res = raw_input("Please enter your password: ")
        
        if res == a:
                print "ACCESS GRANTED"
        else:
                print "ACCESS DENIED"

if __name__ == "__main__":
	main()

secretapp1.py


class DoMain:

        def __init__(self):
                self.a = "toomanysecrets"

        def Ask(self):
                res = raw_input("Please enter your password: ")

                if res == self.a:
                        print "ACCESS GRANTED"
                else:
                        print "ACCESS DENIED"

if __name__ == "__main__":
	dm = DoMain()
	dm.Ask()

secretapp2.py

Supongamos que no quiero entregar el código de estos programas, por lo que tengo varias opciones. Nuestra primera opción será ofuscar el código, dificultando su lectura.

Pyobfuscate

Este programa nos permite ofuscar nuestro programa de forma totalmente válida para el intérprete Python. Veamos un ejemplo con SecretApp1 y SecretApp2.

simonroses_python_cap1
Fig. 1 – Secretapp1 ofuscado

simonroses_python_cap2
Fig. 2 – Secretapp2 ofuscado

A simple vista nuestro código no tiene sentido, pero si analizamos el resultado veremos cómo las cadenas de texto siguen en el código y podemos reconocer sintaxis de Python. No es demasiado difícil reconstruir el código ofuscado.

A pesar de sus limitaciones os invito a visitar la web de esta herramienta para ver sus posibilidades.

Htibctobf

Originalmente esta herramienta se escribió para resolver un reto en una competición de hacking en el congreso Hack in the Box. Os recomiendo leer este estupendo artículo.

A diferencia de la anterior herramienta, Htibctobf ofusca el código Python modificando los AST (Abstract Syntax Trees). Al ejecutar esta herramienta podemos ver nuestro código Python ofuscado en la Fig. 3 y Fig. 4.

simonroses_python_cap3
Fig. 3 – Secretapp1 ofuscado

simonroses_python_cap4
Fig. 4 – Secretapp2 ofuscado

Podemos observar el código ofuscado, incluso las cadenas de texto, sin embargo a pesar de todo no es demasiado difícil reconstruir el código original.

Sin duda un interesante concepto con amplias posibilidades pero que requiere de mejoras para ser útil.

En algunos casos quizás baste con ofuscar el código, pero busquemos otras opciones para proteger nuestro código de forma más efectiva: tendremos que recurrir a compilar el código Python creando un ejecutable.

Py2exe

Posiblemente una de las opciones más populares para convertir código Python en ejecutables Windows. Py2exe

En primer lugar tenemos que crear un fichero llamado setup.py que incluya una referencia a nuestro programa que queremos compilar. Ver código setup.


from distutils.core import setup
import py2exe

setup(console=['secretapp1.py'])

setup.py

Ya estamos listos para compilar nuestro código Python en un ejecutable Windows, para ello ejecutamos py2exe. Ver Fig. 5.

simonroses_python_cap5
Fig. 5 – Compilando secretapp1.exe

Una vez finalizado el proceso de compilación, py2exe nos creará un directorio llamado “dist” que incluye nuestro ejecutable y algunas librerías necesarias. En la Fig. 6 podemos ver que py2exe finaliza con éxito y ejecutamos nuestro programa en formato exe.

simonroses_python_cap6
Fig. 6 – Compilación completada

Ahora podríamos distribuir este binario sin miedo a entregar nuestro código o quizás no ¿?

Py2exe_extract

Esta herramienta nos permite extraer los objetos Python dentro de los ejecutables creados con py2exe, básicamente invertimos el proceso. Py2exe_extract

En la Fig. 7 podemos ver como utilizamos py2exe_extract para obtener el fichero objeto (el contenido de este fichero es independiente de la plataforma y se conoce como Bytecode) de nuestra aplicación secretapp1.exe (secretapp1.pyc)

simonroses_python_cap7
Fig. 7 – Extrayendo el fichero objeto

Ahora tenemos que ver cómo podemos obtener el código de este fichero objeto.

Unwind

Unwind es un desensamblador para Python Bytecode que podemos utilizar para analizar ficheros objetos “.pyc”. Para este ejemplo he escrito un simple script en Python, mytest.py, que importa el desensamblador y analiza el fichero pyc. Ver código a continuación.


import unwind

print(unwind.disassemble('secretapp1.pyc'))

mytest.py

Con este script podemos ejecutar el siguiente comando y obtener un desensamblado del fichero objeto. Ver Fig. 8.

simonroses_python_cap8
Fig. 8 – Python Bytecode

Para los amantes del bajo nivel esta será su opción favorita 😉

Uncompyle2

Otra opción es utilizar un decompilador como uncompyle2 para obtener el código directamente del fichero objeto “.pyc” sin tener que pasar por el desensamblador como vimos anteriormente.

Esta herramienta es potente y fácil de utilizar, como se puede observar en la Fig. 9 mediante un simple comando obtenemos el código fuente de secretapp1.pyc.

simonroses_python_cap9
Fig. 9 – Código de secretapp1 obtenido del fichero objeto

Wow, tenemos código fuente!

A lo largo del artículo hemos visto algunas técnicas de ofuscación y compilación de código Python para protegerlo, no obstante hemos podido subvertir todo el proceso de protección fácilmente 

La siguiente lista son otros compiladores Python que podemos utilizar para Windows, Linux o MacOS, pero tienen los mismos problemas.

También podríamos analizar y subvertir el binario utilizando herramientas como IDA PRO o Immunity Debugger, lo que dejaremos para un futuro post. Otra interesante herramienta que no he comentado es pyREtic, un potente framework para reversing de in-memory de Python Bytecode.

Que un atacante consiga el código Python es cuestión de tiempo, sin embargo para ponérselo realmente difícil desde un punto de vista defensivo se
tienen que combinar diferentes técnicas.

¿Proteges tus programas en Python? ¿Qué métodos utilizas?

— Simon Roses Femerling

Publicado en Hacking, Hacking Etico, Privacidad, SDL, Seguridad, Tecnologia | Etiquetado , , , , , , | 6 comentarios

Reseña Libro: Mob Rules. What the Mafia Can Teach the Legitimate Businessman

Al leer la sinopsis del libro ya nos damos cuenta que este no es el típico libro de cómo triunfar en los negocios. Escrito por Louis Ferrante, ex mafioso de la familia Gambino y reconvertido a escritor, nos compara la estructura de la mafia y su peculiar estilo de hacer negocios para obtener el éxito en el mundo empresarial.

Mob Rules: What the Mafia Can Teach the Legitimate Businessman (ISBN: 978-1591843986) es una obra diferente y de fácil lectura que describe multitud de consejos básicos y lógicos para triunfar en los negocios y que muchos emprendedores y ejecutivos deberían leer y sobre todo aplicar.

A lo largo de sus tres secciones (soldado=empleado, capo=mandos intermedios y don=alta dirección) divididas en 88 lecciones, el libro nos detalla cómo la mafia aplica estos conceptos para triunfar en los negocios.

La obra está llena de referencias a casos reales de la mafia e historia antigua con ejemplos de cómo hacer o no las cosas. Todos estos casos reales han sido muy bien seleccionados y, además de interesantes, potencian el mensaje del autor.

Desde hace años se habla del Arte de la Guerra de Sun Tzu como una obra de referencia para aplicar a los negocios, pero sin duda Mob Rules es una obra a tener en cuenta para hacer negocios.

El punto negativo de la obra es que algunas lecciones son muy básicas y no aportan demasiado al lector.

Recomiendo el libro tanto como si queremos aplicar sus consejos a los negocios o simplemente por leer un libro curioso repleto de casos reales sobre la mafia.

Puntuación (1 rosa, muy malo / 5 rosas, muy bueno): 4 Rosas (Lectura Recomendada)

— Simon Roses Femerling

Publicado en Economia, Libro, Negocios | Etiquetado , | Deja un comentario

¡La App Libres no es tan libre!

El pasado julio el Ministerio de Sanidad, Servicios Sociales e Igualdad junto a Telefónica España presentaron una App social dirigida a las mujeres que sufren o han sufrido violencia de género para plataformas Android y iOS.

Esta App llamada Libres permite obtener información para ayudar a las mujeres a combatir esta lacra de nuestra sociedad y por ello he pensado que sería interesante realizar un análisis rápido para determinar la postura de seguridad y privacidad de la App.

Desconozco si esta App es realmente de ayuda a las mujeres que sufren violencia de género, sinceramente espero que sí, pero desde un punto de vista de seguridad la App tiene varios problemas. Solo he revisado la versión Android, aunque imagino que la versión iOS sufrirá problemas similares.

Este artículo no es ninguna crítica a la App o a sus desarrolladores sino todo lo contrario: es mi granito de arena para mejorar la seguridad y privacidad que se han descuidado un poco en una App que ayuda en un tema tan preocupante y sensible como la violencia de género.

Falsa sensación de seguridad

En la web del Ministerio podemos leer:

“Todo ello de un forma ágil, sencilla, intuitiva, gratuita y sobre todo confidencial ya que la aplicación se ha diseñado para que permanezca oculta en el menú del teléfono de tal manera que nadie más, salvo ella misma, sepa que dispone de una aplicación sobre violencia de género”.

Lo siento mucho, pero utilizar un icono falso similar a “Ajustes” en Android (ver Fig. 1) y que luego al ejecutar la App aparezca un falso menú (ver Fig. 2) que nos lleva a la auténtica aplicación al pulsar “Aplicación” (ver Fig. 3) no lo llamaría confidencial y diseñada para permanecer oculta como afirma el Ministerio.

libres_screen8Fig. 1

libres_screen4Fig. 2

libres_screen7Fig. 3

¡Sin duda esta área se puede mejorar!

¡Comunicaciones en texto claro!

Otro problema de seguridad es que toda la comunicación entre la App y los servicios ofrecidos por el Ministerio es en texto claro. Aunque la App no contiene información sensible es siempre aconsejable cifrar las comunicaciones.

Un atacante podría estar espiando la red donde está conectado el dispositivo y ver que Libres está instalada. Además la App permite enviar comentarios / sugerencias al Ministerio que son enviadas sin cifrar.

¡Otra área más de mejora!

Recomendaciones de Seguridad

A continuación algunas recomendaciones para mejorar la seguridad y privacidad de esta App:

  • La App contiene otros fallos de seguridad, como Debug activado por defecto.
  • Toda comunicación debería estar cifrada mediante SSL.
  • La App debería detectar si el dispositivo puede estar comprometido (ver mi articulo sobre rooted).
  • Al diseñar una App siempre debemos realizar un modelo de amenazas que nos ayude a identificar los riesgos y cómo minimizarlos.
  • Sería conveniente mejorar sustancialmente el mecanismo de ocultación de la App.

¿Qué mejoras de seguridad incluirías en la App?

¡Desearos un feliz verano, hoy 1 de agosto!

— Simon Roses Femerling

Publicado en Hacking Etico | Etiquetado , , , | Comentarios desactivados en ¡La App Libres no es tan libre!

Entrevista en RTVE

En el portal de RTVE en la sección de Tecnología se ha publicado una entrevista que me han realizado recientemente y que espero que los lectores del blog disfrutéis 🙂

En esta entrevista comento el trabajo realizado por VULNEX para el DARPA, siendo la única startup española en colaborar con el DARPA Cyber Fast Track (CFT) desarrollando un proyecto en I+D en ciberseguridad. También tratamos otros temas de interés como el perfil de los atacantes, por qué falla la seguridad en las empresas, la dificultad de emprender en este país y otras cuestiones.

Agradezco a la gente de RTVE su interés y apoyo a VULNEX para que el público vea que algunas empresas en España sí apostamos por el I+D y gracias a ello estamos trabajando en proyectos interesantes a nivel nacional e internacional.

— Simon Roses Femerling

Publicado en Emprendedores, Seguridad, Tecnologia | Etiquetado | Deja un comentario

OWASP Top Ten 2013 seminario gratuito

Ayer, 17 de julio, impartí un seminario gratuito sobre el OWASP Top Ten 2013 que se publicó recientemente y que describe las diez vulnerabilidades más comunes en aplicaciones Web. Este seminario es una colaboración entre la Catedral de Innovación del Ayuntamiento de Madrid y VULNEX para concienciar sobre ciberseguridad.

La presentación del seminario la tenéis colgada en la web de VULNEX.

Si desarrollas aplicaciones web, este documento es para ti!

Aquí os dejo una foto del seminario 😉

vulnex_OWASP_17junio13

Muchas gracias a la Cátedra de Innovación y a todos los asistentes.

Hasta el próximo evento!

¿Qué temas te gustaría que tratara en el próximo evento?

— Simon Roses Femerling

Publicado en OWASP, Privacidad, SDL, Seguridad, Tecnologia | Etiquetado , , , , , | Deja un comentario

ANCITE: nueva Asociación Nacional de Ciberseguridad y Pericia Tecnológica

Recientemente se ha creado la ANCITE (Asociación Nacional de Ciberseguridad y Pericia Tecnológica) con el espíritu de crear una autentica asociación nacional dedicada a fomentar la ciberseguridad y el peritaje informático de forma seria y rigurosa, sin duda toda una necesidad en este país.

En la asociación podemos encontrar grandes profesionales como son Pedro Sánchez y Lorenzo Martínez, entre otros (como los fundadores pero dejaré que sean ellos que se presenten), por lo que el tema promete 🙂

Me parece perfecto que se haga un esfuerzo por concienciar en ciberseguridad, el área por donde me muevo principalmente, por lo que espero poder participar en los proyectos y eventos de la asociación.

Nos vemos pronto en algún sarao 😉

— Simon Roses Femerling

Publicado en Hacking Etico, Seguridad, Tecnologia | Etiquetado , | Deja un comentario

Reseña Libro: Más ideas y menos másters

Esta magnífica obra escrita de forma clara, simple y de fácil lectura por el empresario Kike Sarasola, uno de los fundadores de la cadena hotelera Room Mate, nos revela a lo largo de sus trece capítulos su forma de ver las cosas y actuar.

Más ideas y menos másters (ISBN: 9788499982878) trata sobre un tema como es el emprendimiento, sin duda hot topic del momento, pero escrita por alguien que ha sabido darle un aire de frescura al negocio de la hostelería y crear una cadena de referencia, todo una hazaña en este país, mediante lógica, pasión y esfuerzo.

Si estás emprendiendo, como el servidor de este post, o estás pensando en hacerlo te recomiendo que leas este libro encarecidamente porque te será bastante útil. El autor nos revela cómo fueron sus comienzos (duros como todos los que hemos pisado este terreno), cómo obtener financiación, rodearte de los mejores (socios, inversores y empleados) y cuidarlos a todos. Pero sobre todo menos teoría y más práctica, ya que hasta que no pongamos nuestro negocio en marcha no podremos saber qué funciona y qué falla.

La obra está llena de referencias a emprendedores de éxito (Ray Kroc, Richard Branson y otros muchos) que en su día fueron disruptivos porque hicieron las cosas de forma diferente y también de ejemplos reales de la vida del autor en su faceta de deportista olímpico y de empresario.

Definitivamente una estupenda obra para todo aquel que quiera empezar o ya sea un emprendedor para coger ideas y lanzarse a la piscina.

Y como él dice en el libro: El <<no>> no existe: ¡ATRÉVETE!

Puntuación (1 rosa, muy malo / 5 rosas, muy bueno): 5 Rosas (Lectura Obligatoria)

— Simon Roses Femerling

Publicado en Economia, Emprendedores, Negocios | Etiquetado , | Deja un comentario

Una startup española en el DARPA Cyber Fast Track (CFT)

El panorama de la seguridad cambió en agosto del 2011 en el congreso de Black Hat cuando el legendario hacker del L0pht Peiter “Mudge” Zatko presentó el nuevo programa Cyber Fast Track (CFT) (DARPA-PA-11-52) del DARPA (Agencia de Proyectos de Investigación Avanzados de Defensa de los EE.UU.) para financiar proyectos de I+D para hackers y pequeñas empresas. En la web del DARPA CFT (offline en estos momentos) o DARPA CFT se puede encontrar toda la información sobre el programa

La idea es simple, los tiempos han cambiado y son los hackers y las pequeñas empresas quienes tienen las ideas y agilidad para innovar, pero no los recursos necesarios y esto es precisamente lo que aporta el programa. Muchos países deberían tomar nota de esta novedosa idea que potencia la creatividad y el I+D.

Para facilitar el proceso de solicitud se colgó una serie de documentos y guías. La idea era agilizar y simplificar el proceso para personas no acostumbradas a lidiar con la burocracia gubernamental. Sin duda una estupenda idea y de gran ayuda.

Aparte de ser un hecho insólito que el DARPA subvencione a hackers (creo que ha sido el único programa de estas características en todo el mundo), ¡mas insólito era el hecho de que este programa estaba abierto a cualquier hacker y boutique de seguridad del mundo entero!

A través de la empresa que funde el año pasado, VULNEX, una startup especializada en ciberseguridad ubicada en Madrid, decidimos probar suerte y creamos una propuesta de I+D que enviamos en agosto del 2012 y a los cinco días recibimos una llamada del DARPA comunicándonos que habían aceptado nuestro proyecto, increíble.

El objetivo del proyecto era mejorar la seguridad en el ciclo de desarrollo de software. La duración del proyecto era de cinco meses analizando los diferentes compiladores (Visual Studio, GCC y LLVM) y versiones para determinar qué medidas de seguridad ofrecen, su efectividad y cómo afectan a los binarios producidos.

Con este profundo análisis, la segunda y tercera fase del proyecto consistían en desarrollar dos tecnologías para ayudar a los programadores a producir software seguro.

Una de las tecnologías desarrolladas es BinSecSweeper, una potente herramienta fácil de utilizar para analizar la postura de seguridad de binarios. La herramienta es de código abierto, multiplataforma y capaz de analizar diferentes tipos de binarios y arquitecturas. BinSecSweeper estará disponible en la web de VULNEX próximamente.

Es una pena que el DARPA terminase con el programa CFT el pasado 1 de abril del 2013, del que tengo entendido se han beneficiado unos 500 proyectos de más de 1500 recibidos. De los proyectos seleccionados han salido herramientas muy interesantes y se presentan en congresos de seguridad de primer nivel, basta que hagamos una búsqueda en la web para poder encontrar muchos de ellos.

Sin duda una idea rompedora que para hackers y pymes ha sido de gran ayuda, y para nosotros VULNEX, una startup española, toda una grata experiencia poder colaborar con el DARPA y nuestra tecnología presentada en eventos internos 🙂

Desde aquí dar las gracias a Mudge, DARPA y a todo el equipo de BITSystems (encargados de la gestión del CFT).

Gracias!

¿Conocías el DARPA CFT? ¿Qué te parece?

— Simon Roses Femerling

Publicado en Economia, Hacking, Negocios, SDL, Seguridad, Tecnologia | Etiquetado , , , , , | Deja un comentario

¿Por qué debemos de informar sobre 0Day?

En las últimas semanas no cesan de aparecer noticias relacionadas con PRISM desde que lo filtrara Edward Snowden, que trabajaba para Booz Allen Hamilton, contratista de defensa para la NSA.

Un resultado interesante de estas filtraciones es el acceso por parte de la NSA a vulnerabilidades 0Day por parte de Microsoft y quién sabe si de otras grandes compañías (Google, Apple, Adobe, etc.) bajo los programas de colaboración Microsoft Active Protections Progam (MAPPS) y el Security Cooperation Program (SCP). El primero es para empresas de seguridad y el segundo para organismos gubernamentales -por ejemplo la agencia de inteligencia española (CNI) es miembro de este programa- con el objetivo de ser informados los primeros cuando aparecen vulnerabilidades para poder protegerse antes de que salgan los conocidos parches y actualizar sus productos de seguridad.

Estos programas se crearon con fines defensivos pero plantean una interesante cuestión: el uso de esta información para fines ofensivos.

Encontrar vulnerabilidades en productos de las grandes compañías es cada vez más costoso, por lo que el acceso a información sobre 0Day por parte de las agencias de inteligencia les hace ganar tiempo y ahorrar recursos. Ahora solo tienen que desarrollar exploits para atacar cualquier sistema, ya que recordemos que aún no se ha publicado el parche de seguridad.

Los países que quieran establecer unas capacidades ofensivas y defensivas deberían crear programas nacionales que ofrezcan una recompensa económica (en función de una escala) a los individuos que les informen de 0Day.

Las grandes compañías de software e Internet son principalmente americanas, pero muchas vulnerabilidades son identificadas y reportadas por expertos en seguridad extranjeros. Si existiera un programa nacional sobre vulnerabilidades podrían informar primero a su gobierno y no a las compañías de software.

La cuestión es ¿por qué debemos informar de vulnerabilidades a las compañías de software para que ellos a su vez informen a sus agencias de inteligencia para realizar actos ofensivos a otras naciones?

Recordemos que las vulnerabilidades 0day y exploits tienen valor económico hoy en día, y muchas empresas públicas y privadas pagan un buen dinero por ello.

En el fondo no deberían sorprendernos los actos de la NSA, ya que al fin y al cabo su misión es la seguridad nacional utilizando todos los medios posibles (legales ¿?), igual que hacen las agencias de inteligencia de muchos países.

Lo que está claro es que el caso PRISM puede que tenga más repercusiones para los EE.UU. de lo que parecía en un principio, y seguramente muchos países cambien su política de ciberseguridad defensiva / ofensiva.

Sin duda será interesante observar cómo las políticas de ciberseguridad evolucionan en los países durante los próximos años.

¿Qué cambios crees que son necesarios en las políticas de ciberseguridad?

— Simon Roses Femerling

Publicado en Hacking, Seguridad, Tecnologia | Etiquetado , , , , , , , | Deja un comentario