Ir al contenido principal

Entradas

Mostrando entradas de junio, 2012

Solución al reto de sensepost.com - BlackHat Challenge

Descripción del Reto: Una empresa crea su propio sistema de cifrado de comunicaciones y lo utiliza para que un cliente/empleado les envíe diariamente un mensaje. Una de esas comunicaciones es interceptada por un 'intruso' y además copia el código fuente del software utilizado para dichas comunicaciones entrando en un servidor de la empresa. Para resolver el reto se pide que obtengamos la password (shared secret) utilizada por ambas partes (cliente/servidor) para iniciar la autenticación, así como la clave usada para cifrar los mensajes. Para ello nos dan un archivo PCAP con las tramas capturadas y, el código fuente del software de comunicación. He de decir, que este reto me ha parecido muy sencillo debido principalmente, a la cantidad de información (pistas) proporcionadas, no obstante ha sido igualmente entretenido (gracias por prepararlo). Primera Parte Lo primero que hice fue echar un vistazo al PCAP con un tiburón. Rápidamente localizamos los protocolos que inter

Archivos MUI (Multilanguage User Interface)

Todos los que nos dedicamos a este complejo mundo del desarrollo de software, nos hemos topado en alguna ocasión con la necesidad de hacer que nuestras aplicaciones estén localizadas, es decir, que estén disponibles en varios idiomas. Para conseguir esto existen multitud de técnicas, pero en esta ocasión quiero comentaros una que utiliza Microsoft en el desarrollo de sus sistemas operativos Windows Vista, 7, 8, etc Se trata de los archivos MUI (Multilanguage User Interface). La idea es muy simple, pero bastante eficaz. Consiste en compilar las aplicaciones como binarios independientes de los recursos utilizados por las mismas, de tal forma que tengamos por un lado nuestros ejecutables o librerías (EXEs, DLLs) y por otro lado los recursos (en un archivo de tipo .MUI). En este escenario, una aplicación que necesita hacer uso de un recurso (cadena de texto, diálogo, icono, etc. ), lo que debe hacer es cargarlo desde el archivo .MUI correspondiente a la aplicación y en el "idi

¿Dónde se instalan las aplicaciones estilo METRO en Windows 8?

Si hay algo que nunca me ha gustado -entre otras cosas- en un sistema operativo, es no saber donde se instala un programa. Pues bien, en Windows 8, al igual que en versiones anteriores, cuando instalamos un programa de escritorio este va a parar a la clásica carpeta "Archivos de programa" ó "Archivos de programa(x86)" a menos que digamos lo contrario durante el proceso de instalación. Sin embargo, en windows 8, además de disponer de aplicaciones de escritorio también tenemos las MARAVILLOSAS aplicaciones estilo Metro, y estas ya no se instalan como las de escritorio (al menos no al 100%), es decir, seguirán instalandose en "Archivos de programa", pero en esta ocasión bajo una carpeta oculta que se llama "WindowsApps". No se si en la versión definitiva de Windows 8 esto seguirá siendo así, pero por lo menos hasta la Release Preview sí. Por lo tanto, si quereis ver donde estan esos flamantes y llamativos programas estilo Metro, tan solo hay qu

Dibujando la función trigonométrica Seno en un Canvas.

Enredando un poco con HTML5, Javascript y el elemento Canvas he programado un pequeño código que dibuja una función trigonométrica Seno. Lo bueno de todo esto es que no es preciso recurrir a plugins de terceros para poder dibujar con precisión (a nivel de pixel) y calidad utilizando tan solo HTML5 y JavaScript.

Seguridad en el Sistema Operativo iOS de Apple (IV)

Secure Boot Chain - Boot ROM En los dispositivos iOS han intentado "y conseguido" que exista una fuerte integración entre el hardware y el software, lo que permite y facilita la validación de actividades a través de todas las capas del dispositivo. Digamos que durante toda la fase de funcionamiento del dispositivo, no se permite dar un paso sin antes validarlo y verificar que es confiable. Cada paso del proceso de arranque de un dispositivo iOS contiene componentes que han sido firmados criptográficamente por Apple para garantizar su integridad. Esto incluye los bootloaders, el kernel, las extensiones del kernel y el firmware base . Cuando encendemos un dispositivo iOS, lo primero que se ejecuta es un código almacenado en la Boot ROM (Read Only Memory), una memoria de solo lectura cuyo código es inmutable y no puede ser modificado, ya que, es grabado en ROM durante el proceso de fabricación del dispositivo. Si durante el proceso de arranque el dispositivo detecta que a

Seguridad en el Sistema Operativo iOS de Apple (III)

ASLR - Address Space Layout Randomization Se trata de una técnica bastante interesante que consiste básicamente en "Aleatorizar" el espacio de direcciones de un proceso. De tal forma que las partes más críticas -desde el punto de vista de la seguridad ante un ataque vírico o de malware-, no dispongan de direccines fijas. Con esto lo que se hace es asignar direcciones distintas para las librerías, base del ejecutable, memoria del proceso, pila, etc. Un escenario típico donde no se haga uso de la técnica ASLR es aquel en el cual el Sistema Operativo carga sus librerías core siempre en la misma dirección, en esta situación es muy fácil para un software malintencionado hacer uso o acceder (saltar) a las funciones almacenadas en dichas librerías, ya que, bastaría con obtener su dirección y siempre será la misma. Con ASLR esto no es posible, ya que, dichas librerías se cargaran con direcciones base diferentes. Esta técnica no es infalible pero si "Dificulta" bastan

Seguridad en el Sistema Operativo iOS de Apple (II)

Se puede clasificar o dividir toda la plataforma de seguridad de un dispositivo móvil con el sistema iOS de Apple (iPhone, iPad, iPod Touch), en cuatro bloques principales. En cada uno de estos bloques o fases se utilizan diversos métodos, tecnologías y estrategias con el fin de conseguir proteger cada uno de los pasos que se realizan desde el momento en que se enciende el dispositivo. Arquitectura del Sistema Protección y codificación de datos Seguridad de red Acceso al dispositivo Arquitectura del Sistema En este caso se trata de asegurar los dispositivos iPhone, iPad y iPod touch desde el punto de vista de la plataforma hardware principalmente. Protección y codificación de datos Se encarga de proteger los datos del usuario ante la pérdida, posible robo del dispositivo ó, cuando una persona no autorizada intenta utilizarlo o modificarlo. Seguridad de red iOS utiliza protocolos de red basados en estándares internacionales con el fin de conseguir asegurar tanto la autent

Seguridad en el Sistema Operativo iOS de Apple (I)

Son varias las técnicas que han utilizado los ingenieros de Apple para intentar conseguir un Sistema Operativo seguro (al menos más seguro que "OTROS"). Todas estas y alguna más son las cosas que nos vamos a encontrar cuando investigamos un poco sobre la seguridad del sistema iOS: Address space layout randomization (ASLR) Boot ROM Data Protection DFU ECID Effaceable Storage GID iBoot Keybag Keychain Key wrapping Low-Level Bootloader (LLB) Per-file key Provisioning profile Tangling UID XNU Yarrow