viernes, 6 de septiembre de 2013

Sí, tú casa está llena de dispositivos que pueden ser “hackeados” :), un ejemplo:

UE46F6400 Descripción: Televisor LED 3D de 46 pulgadas con SmartTV (Full HD 1080p, Clear Motion Rate 100 Hz).
Vulnerabilidad: fallo que permite el acceso root al shell del firmware basado en Linux.
Consecuencias: control total. Un atacante podría por ejemplo acceder al contenido del TV o de cualquier dispositivo USB conectado o incluso espiar al usuario activando la cámara y el micrófono remotamente.





"Y por fin llegó arrastrándose al sillón después de una dura jornada, buscó y rebuscó el mando entre los cojines y encendió su televisor. Un escalofrío precedió a un sin fin de pálpitos acelerados porque de repente se vio dentro de él con un mensaje que amenazaba "te estamos vigilando". Su primera reacción fue llamar a la policía pero, al descolgar el interfono, la pantalla led del teléfono IP mostraba el mismo mensaje "te estamos vigilando". Agarró su chaqueta y anduvo hacia la puerta con el único objetivo de escapar, pero la puerta automática hacia su salvación estaba bloqueada. El suspiro de resignación evidenció vapor al exhalar, la temperatura había disminuido y para rematar las luces desvanecían sumergiendo su cuerpo en la oscuridad de aquel pasillo. Dio tres pasos a ciegas y el pánico le invadió al percatarse de que unas extrañas luces le perseguían. Corrió a encerrarse dentro del cuarto de baño, la tapa del inodoro se levantó automáticamente y cayó fulminado al suelo..."

Fantasmas, extraterrestres, ... no, HACKERS!

Cada vez nuestros hogares se equipan con más y más electrodomésticos y gadgets que nos hacen la vida más fácil y que pueden controlarse desde Internet. No obstante si alquien fuera capaz de controlarlos veríamos absolutamente expuestos nuestra intimidad e incluso seguridad.

Lo que contaba al principio con ese breve relato podría provocarlo ya HOY un hacker y para demostrarlo queremos plantearos un modelo de casa corriente. La siguiente planta muestra un pequeño piso con una serie de modelos de dispositivos que pueden adquirirse en la actualidad. Cada uno de ellos tiene o ha tenido la vulnerabilidad brevemente descrita y en cada uno podéis ver las consecuencias...


¡Hogar, dulce hogar!



1.- Router Cisco Linksys WRT54GL
 
Descripción: Router de banda ancha Wireless-G con dos antenas externas y 4 puertos ethernet.


Vulnerabilidad: La no-validación del parámetro wan_hostname puede permitir inyectar y ejecutar comandos de shell.


Enlace: http://tools.cisco.com/security/center/viewAlert.x?alertId=27942


Consecuencias: Un atacante remoto podría conseguir permisos de root obteniendo así el control total del router. Con ello podría por ejemplo modificar la configuración WiFi, cambiar las IPs de los DNS en el servidor DHCP, añadir rutas, etc.

2.- Receptor de satélite NBOX 5800SX ENIGMA2 


Descripción: receptor/decodificador en alta definición con doble sintonizadora y disco duro de 250gb

Vulnerabilidad: el dispositivo implementa el sistema de acceso Conax con la funcionalidad chipset pairing que tiene diversas debilidades


Enlace: http://www.security-explorations.com/en/SE-2011-01-press.html


Consecuencias: un atacante podría capturar la señal decodificada y distribuirla en Internet.

3.- Televisión Samsung UE46F6400 


Descripción: Televisor LED 3D de 46 pulgadas con SmartTV (Full HD 1080p, Clear Motion Rate 100 Hz).

Vulnerabilidad: fallo que permite el acceso root al shell del firmware basado en Linux. 


Enlace: http://vimeo.com/55174958


Consecuencias: control total. Un atacante podría por ejemplo acceder al contenido del TV o de cualquier dispositivo USB conectado o incluso espiar al usuario activando la cámara y el micrófono remotamente.

4.- Media center Apple TV 2 con XBMC 11 


Descripción: reproductor que permite ver películas de iTunes en 1080p HD, escuchar música y ver fotos de iCloud y usar AirPlay para reproducirlas desde otros dispositivos y, si se le realiza un jailbreak, utilizar XBMC uno de los principales distribuciones para mediacenters bajo la licencia GNU/GPL.

Vulnerabilidad: directory traversal en el servidor web


Enlace: http://www.ioactive.com/pdfs/Security_Advisory_XBMC.pdf


Consecuencias: un atacante podría leer remotamente cualquier archivo con los mismos privilegios que tenga el usuario que está ejecutando XBMC. Se ha publicado incluso un módulo en Metasploit.


5.- Teléfono Cisco Unified IP Phone 6941 

Descripción: teléfono IP con conexión Gigabit ethernet y pantalla a color. 

Vulnerabilidad: fallo al validar las llamadas al kernel desde aplicaciones corriendo en el espacio de usuario.


Enlace: http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20130109-uipphone


Consecuencias: Aunque parece que para ejecutar el exploit es necesario validarse previamente por SSH (o tener acceso físico al dispositivo) si se consigue el atacante tendría acceso como root al teléfono y podría cambiar su programación, actuar sobre los leds, capturar llamadas, etc.

6.- Termostato Radio Thermostat Company of America CT 80


 Descripción: termostato universal que puede controlar casi cualquier sistema residencial común HVAC. Soporta hasta 3 etapas de calor, 2 etapas de frío, bombas de varias etapas de calor, humidificadores, deshumidificadores y deflectores de aire externos. Puede mostrar mensajes de texto y consumo de energía.

Vulnerabilidad: no es necesario ninguna autenticación para usar el API.


Enlace: https://www.trustwave.com/spiderlabs/advisories/TWSL2013-022.txt


Consecuencias: Cualquier usuario en la misma red del dispositivo podría cambiar la temperatura, el modo de operación o la configuración wifi.


7.- AlertMe/Zigme

Descripción: Sistema modulable de control de la seguridad del hogar con múltiples componentes como sensores de ventanas y puertas, detectores de movimiento, alarmas, cámaras, etc.

Vulnerabilidad: los componentes del sistema utiliza el protocolo inalámbrico Z-Wave que aunque implementa cifrado AES en sus comunicaciones pone en claro el intercambio de claves inicial.


Enlace: http://www.theregister.co.uk/2013/08/13/wave_goodbye_to_security_with_zwave/


Consecuencias: Un atacante podría interceptar las comunicaciones y obtener el control de los dispositivos.

8.- RP40 multiCLASS® Reader 


Descripción: Lector RFiD compatible con tarjetas HID Prox, Microprox, iCLASS y MIFARE.

Vulnerabilidad: la longitud y tipo de clave (PIN numérico) y la carencia de otras contramedidas permiten el uso de ataques de fuerza bruta.


Enlace: http://hackerhurricane.blogspot.com.es/2011/03/w-my-security-research-discovers-major.html


Consecuencias: sólo conociendo la IP del dispositivo es posible lanzar un ataque de fuerza bruta con éxito y rapidez. La consecuencia es la apertura inmediata de la puerta.


 9.- TP-Link TL-SC3171 IP Camera
 
Descripción: Cámara de vigilancia de Día/Noche con 12 LEDs infrarrojos y video en tiempo real en cualquier lugar desde el iPhone y otros teléfonos 3G populares.


Vulnerabilidad: múltiples vulnerabilidades pueden permitir la inyección remota de comandos, el uso de credenciales "hard-coded" o la evasión de autenticación.


Enlace: http://www.coresecurity.com/advisories/multiple-vulnerabilities-tp-link-tl-sc3171-ip-cameras


Consecuencias: control total de la cámara. Su explotación más común es la obtención remota de vídeo en tiempo real (incluso de noche) de la víctima.

10.- LIXIL Satis Toilet 


Descripción: Inódoro inteligente que automatiza la apertura y cierre de la tapa, activa automáticamente el agua, higieniza, ahorra energía... y hasta tiene música.

Vulnerabilidad: la aplicación Android "My Satis" tiene fijada (hard-coded) el pin bluetooth.


Enlace: https://www.trustwave.com/spiderlabs/advisories/TWSL2013-020.txt


Consecuencias: un atacante puede hacer que el inodoro tire de la cadena varias veces, que se abra/cierre inesperadamente la tapa, que se activen
las funciones del bidé o funciones de secado al aire causando malestar o angustia a usuario. 


11.- Foscam FI8910W (White) Wireless B/G/N IP Camera
 
Descripción: Cámara IP que puede utilizarse como baby monitor con conectividad inalámbrica N y compatible con smartphones (Iphone, Android y Blackberry) y también accesible mediante web.


Vulnerabilidad: Directory traversal en el interfaz web con firmware anterior a 11.37.2.49 permite leer remotamente ficheros, incluyendo las credenciales web y wifi que utiliza el dispositivo.


Enlace: https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-2560


Consecuencias: Un atacante puede tomar el control de la cámara y espíar a su víctima.

 
12.- Roomba iRobot 585
 
Descripción: robot aspirador con sistema de navegación inteligente iAdapt y sistema de limpieza en 3 etapas patentado.


Vulnerabilidad: Ejecutando ROS es posible acceder al controlador del sensor sin autenticación.


Enlace: http://www.ros.org/wiki/Robots/Roomba


Consecuencias: Mediante una aplicación en ROSjava (por ejemplo en Android) un atacante podría controlar remotamente el dispositivo.

 

13.- HP Pavilion dv3-4130ss
 
Descripción: Portátil con procesador i5-460M, 4 gbs de RAM y disco duro SATA de 320 GB (7200 rpm). Viene con sistema operativo instalado Windows® 7 Home Premium 64 bits.


Vulnerabilidad: La funcionalidad CMM (color management) en el componente 2D de Oracle Java SE 7 Update 15 y anteriores, 6 Update 41 y anteriores y 5.0 Update 40 provoca una corrupción de memoria en la JVM si recibe parámetros específicamente modificados.


Enlace: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1493


Consecuencias: Un atacante remoto podría provocar un DoS o ejecutar código arbitrariamente. Por ejemplo esta vulnerabilidad ha sido utilizada por el troyano McRAT que a su vez permite la descarga e instalación de otro malware.

14.- HP LaserJet Pro CP1025nw

 
Descripción: Impresora láser color, inalámbrica y con conexión Ethernet.


Vulnerabilidad: Ciertas impresoras HP LaserJet Pro contienen un bug en el servicio telnet que podría permitir a un atacante obtener acceso al dispositivo.


Enlace: http://www.kb.cert.org/vuls/id/782451


Consecuencias: Un atacante podría tener acceso a información confidencial.

15.- Samsung Galaxy III Mini i8190 


Descripción: Smartphone con pantalla AMOLED de 4" y sistema operativo Jelly Bean.
Vulnerabilidad: Desde Android 1.6 Donut hasta 4.2 Jelly Bean no se comprueba correctamente la firma criptográfica de una aplicación.


Enlace: http://www.cvedetails.com/cve/CVE-2013-4787/


Consecuencias: Un usuario podría instalar una aplicación modificada de forma maliciosa sin percatarse permitiendo la instalación de malware en el dispositivo.

16.- Karotz plastic bunny 


Descripción: Juguete que es un conejo de plástico que puede ser controlado desde un smartphone y que está equipado con una cámara de video, micrófono, chip RFID y altavoces.

Vulnerabilidad: es posible escribir un módulo en Python en un pendrive USB y cargarlo al iniciar el juguete. Además las credenciales para el control del dispositivo (tokens de sesión) se transmiten en claro por HTTP y pueden ser interceptadas.


Enlace: https://www.trustwave.com/spiderlabs/advisories/TWSL2013-021.txt


Consecuencias: Por ejemplo, si la aplicación utiliza la cámara web, el vídeo puede ser capturado y enviado a un servidor arbitrario.

Cómo crear una conexión cliente-servidor TCP o UDP con Python


Crear una conexión cliente-servidor es facilísimo con Python. Para ello podemos ejecutar un pequeño script en el servidor que creará un socket en el número de puerto especificado y empezará a escuchar a la espera de que el cliente, otro sencillo script, se conecte simplemente indicando la dirección IP y puerto...
  

En Pastebin podemos encontrar un fantástico ejemplo de cada uno de los scripts, tanto para TCP como para UDP: 

#TCPserver.py
#!/usr/bin/python          
 
import socket              
 
s = socket.socket()        
port = 11111  
             
s.bind(('', port))        
 
s.listen(5)  
               
while True:
   c, addr = s.accept()
   data=c.recv(1024)    
   print ('Address:',addr,'Data:',data)
   
   mylist=list(data.split(':'))
   intlist=list()
   for i in range(0,len(mylist)):
       intlist.append(int(mylist[i]))
   intlist.sort()
   c.send(str(intlist))
   c.close()
#TCPclient.py
#!/usr/bin/python          
import sys
import socket              
 
arglen=len(sys.argv)
if arglen<3:
    print('please run as python TCPclient.py <ip_address> <numbers>')
    exit()
data=str()
data=data+str(sys.argv[2])
for i in range(3,arglen):
    data=data+':'+str(sys.argv[i])
 
s = socket.socket()        
 
port = 11111          
 
s.connect((sys.argv[1], port))
s.send(data)
print s.recv(1024)
s.close 
#UDPserver.py
#!/usr/bin/python
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(('',22222))
while True:
    data,addr=s.recvfrom(1024)
    print('Address:',addr,'Data:',data)
    mylist=list(data.split(':'))
    intlist=list()
    for i in range(0,len(mylist)):
        intlist.append(int(mylist[i]))
    intlist.sort()
    s.sendto(str(intlist),addr)
#UDPclient.py
#!/usr/bin/python
import socket
import sys
 
arglen=len(sys.argv)
if arglen<3:
    print('please run as python UDPclient.py <ip_address> <numbers>')
    exit()
 
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
port=22222
addr=sys.argv[1]
data=str()
data=data+sys.argv[2]
for i in range(3,len(sys.argv)):
    data=data+':'+sys.argv[i]
s.sendto(data,(addr,port))
data,addr=s.recvfrom(1024)
print data

miércoles, 14 de agosto de 2013

BREACH o cómo romper HTTPS en sólo 30 segundos

BREACH (Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) es una nueva herramienta que utiliza una técnica mediante la cual es posible extraer tokens de logins, IDs de sesión y otra información sensible a partir de tráfico web cifrado SSL/TLS y en ¡sólo 30 segundos!.

Esto significa que podría permitir a un atacante descifrar fácilmente un canal HTTPS de un banco o de un sitio de venta online }:)



Fue presentada en la última conferencia Black Hat y se aprovecha varias vulnerabilidades de forma similar a lo que hacía CRIME con deflate, es decir, ataca al algoritmo de compresión aunque en las respuestas HTTP. Eso sí, como comentamos la información sensible ha de estar en las respuestas HTTP, el servidor por supuesto ha de utilizar compresión HTTP y el exploit requiere que la víctima visite primero un enlace malicioso.

Más información en: http://breachattack.com

Paper: http://www.iacr.org/cryptodb/archive/2002/FSE/3091/3091.pdf

Presentación: http://breachattack.com/resources/BREACH%20-%20BH%202013%20-%20PRESENTATION.pdf

Demo:


 

sábado, 3 de agosto de 2013

Janicab.A y el truco del carácter U+202E

Estaba leyendo acerca de una nueva familia de malware que puede propagarse tanto en Windows como en OS X. A parte de eso, me llamó también la atención que Janicab.A, como se conoce al troyano, también utiliza un viejo truco para engañar al usuario: el carácter especial Unicode U+202E conocido como una anulación de derecha a izquierda para hacer que el archivo malicioso aparezca como un documento PDF en lugar de un archivo ejecutable potencialmente peligroso.

Nada más fácil de realizarse. Por ejemplo, imagina que nuestro server es cmd.exe:

1. Abrimos el mapa de caracteres de Windows (inicio, ejecutar, charmap)


2. Buscamos y copiamos el carácter Unicode U+202E. Fijaros que en la parte inferior izquierda se muestra el valor ASCII de los caracteres.



3. Pegamos (Ctrl+V) el carácter justo antes del punto de la extensión: cmd[[Unicode U+202E]].exe


4. Escribimos la extensión que queremos pero al revés, por ejemplo, si queremos "doc" escribiremos "cod" o si queremos "pdf" escribiremos "fdp".

Y al final el resultado visual será cmdexe.doc:



Por último para "endulzar" el vector de infección simplemente tendríamos que cambiar el icono con reshack u otro y utilizar un nombre algo más disimulado teniendo en cuenta que el "exe" o la extensión original debe permanecer. Por ejemplo:


viernes, 31 de mayo de 2013

Anonimiza tus ataques con AttackVector, la nueva distro que integra Kali y TAILS


AttackVector Linux es una nueva distribución cuyo objetivo es proporcionar la capacidad de anonimizar ataques y advertir al usuario cuando realiza acciones que pueden comprometer el anonimato.

Integra Kali y TAILS (como sabras ambas basadas en Debian) lo que le proporciona unas características más que interesantes:

  • El anonimato que proporciona TAILS
  • La privacidad de SRWare Iron
  • La recuperación de contraseñas de hashkill
  • La criptorgrafía de DaKaRand
  • Las herramientas de intrusión de Kali

Puedes descargar y usar directamente la ISO o instalarlo bajo Kali:

[ distro / build / kali_coms.txt ]

Pre-requisitos:

apt-get install git live-build cdebootstrap kali-archive-keyring
cd /tmp
git clone git://git.kali.org/live-build-config.git
apt-get remove libdebian-installer4
apt-get install libdebian-installer4Paste your text here.

Copia del repostisotio git [ distro / kali / config ]:

git clone git://github.com/ksoona/attackvector.git
cp attackvector/distro/kali/config /tmp/live-build-config/config
cd /tmp/live-build-config

Live build:

lb clean --purge
dpkg --add-architecture amd64
lb config --architecture amd64 --mirror-binary 
http://http.kali.org/kali --mirror-binary-security 
http://security.kali.org/kali-security --apt-options "--force-yes --yes"
lb build

Más información y página del proyecto: https://github.com/ksoona/attackvector

viernes, 26 de abril de 2013

Haciendo trampas en TriviaDos


No suelo gastar mucho tiempo con juegos en el móvil pero he de reconocer que siempre acabo enganchándome a alguno. En esta ocasión tengo bastante vicio con TriviaDos, un trivial de toda la vida por turnos para jugar en línea contra un contrincante remoto, ya sea conocido o aleatorio. Así que, aparte de jugar, gano algo de culturilla general... ;)

Hace unos días me llamó la atención el anuncio del primer torneo de TriviaDos que ofrece premios a los ganadores, ¡los dos primeros valorados en 1000€!. 


Por un momento pensé en apuntarme pero, vistas las estadísticas de los jugadores top durante los primeros días, sus porcentajes de acierto en cada categoría y el número de partidas de cada uno, simplemente se me quitaron las ganas...


Sabía que un ser humano con un coeficiente intelectual normal y el tiempo limitado no podría si quiera soñar con clasificarse entre los 100 primeros. Pero, ¿alguien que tuviera conocimientos de seguridad informática podría "hacer trampas" y ganar el concurso?. Después de un vistazo a la aplicación de Android parece que sí...

...Un Quesito para atraerlos a todos y atarlos en las tinieblas.     
Lo que os voy a mostrar en esta entrada es simplemente cómo modificar TriviaDos para ganar unos segundos de tiempo para responder a cada pregunta. Os dará una ligera ventaja pero no será determinante para que superéis a todos los rivales.. o eso espero. No me hago responsable de su uso ni de cualquier otra modificación derivada. Sólo espero que los dos chicos de Pandereta refuercen la seguridad de su aplicación. Vamos a ello...

Lo primero que haremos será descargar el APK de la aplicación desde el Google Play, por ejemplo con Real APK Leecher:


Para los no iniciados, decir que el Formato APK es una variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la plataforma Android. Básicamente es un comprimido ZIP que puede ser abierto con herramientas como 7-Zip, Winzip, WinRAR o Ark. En nuestro caso abrimos el fichero TriviaDos.apk con 7-zip y extraemos el fichero classes.dex:

 
En Android, el código fuente de Java también se compila en archivos .class, pero después mediante la herramienta “dx“ son convertidos a un único archivo dex (Dalvik Executable) que se ejecuta en la máquina virtual Dalvik.  Este fichero se puede descompilar por ejemplo con las utilidades del proyecto smali:



java -jar tools/baksmali.jar -o decompiled/classout/ input/classes.dex
 
Ahora toca revisar la estructura de directorios y ficheros .smali con los opcodes de Dalvik. Si lo prefieres puedes transformar el fichero ejecutable de Dalvik a un Jar y descompilar los .class a .java para ver un poco a más alto nivel. Para nuestro objetivo bastará con buscar constantes relacionadas con funciones como CountDownTimer y variables bautizadas con la palabra "tiempo" o similar. Si nos centramos en el diálogo de las preguntas daremos con ello. Simplemente, en los ficheros TrivialPreguntnasDialog*.smali sustituiremos:



    .local v6, tiempoFinal:D
    const-wide/high16 v0, 0x4034
 
por


    .local v6, tiempoFinal:D
    const-wide/high16 v0, 0x7530 
 
Y


    .line 29
    const/16 v0, 0x3a98

    iput v0, p0, Laul/irm/triviados/dialogos/TrivialPreguntasDialog;->tiempoPregunta:I
 
por


    .line 29
    const/16 v0, 0x7FFF

    iput v0, p0, Laul/irm/triviados/dialogos/TrivialPreguntasDialog;->tiempoPregunta:I



 

Es decir, sin ni siquiera modificar el tipo hemos cambiado el valor de tiempoPregunta al doble y el valor de tiempoPregunta por el máximo posible para 16 bits. Por tanto hemos pasado 15 a 30 segundos para responder cada pregunta.

Una vez modificado el valor de las variables tendremos que recompilar todo el código con smali y generar un nuevo fichero classes.dex:



java -Xmx512M -jar tools/smali.jar -o output/classes.dex decompiled/classout/

Después con 7-zip volveremos a añadir o sustituir el fichero dentro del paquete TriviaDos.apk:

   
 
No obstante, para instalar el apk con el nuevo classes.dex, tendremos que firmarlo pues recordemos que los archivos (apk, zip) tanto actualizaciones como aplicaciones y firmwares solo pueden instalarse en los móviles Android si han sido previa y debidamente firmados. Es una medida de seguridad que otorga validez al archivo aunque en la práctica es más un requisito que una garantía.

Eso sí, necesitaremos antes generar un par de claves pública/privada mediante OpenSSL. En Windows simplemente descargamos el paquete y lo descomprimimos, por ejemplo en c:\openssl. Dentro del directorio ejecutaremos:



openssl genrsa -out key.pem 1024
openssl req -new -key key.pem -config c:\openssl\openssl.cf -out request.pem
openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem
openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

Ahora para firmarlo usaremos la herramienta SignApk.jar incluida en el Android platform source bundle, y ejecutaremos:



java -jar signapk.jar certificate.pem key.pk8 TriviaDos.apk TriviaDos_modificado.apk

Por último desinstalamos el apk original e instalamos el nuestro. Y comprobamos el tiempo observando la barra de progreso ;) 



martes, 16 de abril de 2013

¿Es posible tomar el control de un avión mediante un teléfono móvil?

El miércoles, el investigador de seguridad español Hugo Teso hizo una presentación en la conferencia Hack in the Box en Amsterdam en el que aseguraba que había desarrollado una aplicación para Android que podría permitirle tomar el control de un avión debido a los defectos en sus sistemas de comunicaciones de a bordo... ¡y la que se ha montado!, hasta ha sido noticia de impacto en la CNN (saluda Hugo):

Durante años hackers e investigadores de seguridad están avisando acerca de vulnerabilidades en la próxima generación de protocolos de control de tránsito aéreo. Pero Hugo se centró en un protocolo diferente llamado Aircraft Communications Addressing and Report System (ACARS), un sistema de intercambio de datos simple que ha evolucionado a lo largo de décadas y ahora se incluye en todo, desde los datos meteorológicos hasta la programación de los horarios del sistema de gestión de vuelo del avión (FMS).
 
Cabina de un avión, incluyendo el sistema de gestión de vuelo de Honeywell supuestamente vulnerable.
El principal problema es que ACARS prácticamente no tiene elementos de seguridad para evitar comandos falsos. Hugo pasó tres años trabajando en la ingeniería inversa del software de navegación de vuelo que recibe señales ACARS para encontrar errores que le permitieron enviar sus propios comandos a los sistemas, ya sea desde una radio por software que se puede ajustar para utilizar ACARS o desde un sistema de aerolíneas comprometido. En su charla, Hugo mostró una aplicación para Android que le permitió redirigir un avión virtual con sólo un toque en un mapa de su teléfono Samsung Galaxy. "ACARS no tiene ninguna seguridad en absoluto. El avión no tiene medios para saber si los mensajes que recibe son válidos o no", dice. "Así que los acepta y se puede utilizar para cargar los datos en el avión y provocar estas vulnerabilidades. Y entonces se acabó el juego"
.

Las aerolíneas operan sus comunicaciones ‘AOC’ sobre ACARS
Y todo ésto sólo mediante hardware y software de simulación FMS que compró en eBay y que supuestamente contiene el mismo código que los sistemas reales. Imaginaros de lo que estamos hablando, podría tomar el control del piloto automático de un avión en pleno vuelo y cambiar de ruta o enviar señales y datos falsos para confundir a los pilotos humanos... o apagar las luces y expulsar las mascarillas de despresurización. "Se puede utilizar este sistema para modificar aproximadamente todo lo relacionado con la navegación del avión", comentaba Hugo en una entrevista. "Eso incluye un montón de cosas desagradables".

Evidentemente Hugo no ha detallado las vulnerabilidades en el código. Ya ha contactado con la US Federal Aviation Administration (FAA) y la European Aviation Safety Administration (EASA) y está trabajando con las compañías aeroespaciales afectadas (Honeywell, Thales, Rockwell Collins) para solucionar el problema. Estas entidades aseguran que estas vulnerabilidades sólo pueden explotar en un entorno de simulación y nunca en un sistema real certificado con los niveles más altos de redundancia y seguridad. Desde la perspectiva de N.Runs la consultora para la que trabaja Hugo comentan: "... esto debería funcionar con un mínimo de adaptación". 


Sea como fuere, se trata de un toque de atención a todas las compañías involucradas en el tráfico aéreo para mejorar la seguridad de todos los que con ellos viajamos. Ganamos todos.

Presentación:


Aircraft Hacking Practical Aero Series

Fuentes: 


Researcher Says He's Found Hackable Flaws In Airplanes' Navigation Systems (Update: The FAA Disagrees)
FAA: 'No, you CAN'T hijack a plane with an Android app'
Hijacking airplanes with an Android phone

Un 'hacker' demuestra que puede derribar un avión con un móvil Android

jueves, 11 de abril de 2013

El ataque DDoS a Spamhaus y la amenaza de los reenviadores DNS abiertos

Los ataques contra Spamhaus iniciados el pasado 19 de marzo al parecer se iniciaron por un grupo de CyberBunker que se opone al trabajo de Geneva, una organización suiza de voluntarios contra el spam. Varias empresas de seguridad describieron los ataques a la organización como el más grande DDoS nunca antes conocido (con mucho).

En los ataques DDoS, los atacantes suelen tratar de "acabar" con un servicio o una red dirigiendo grandes volúmenes de tráfico inútil. El tráfico suele ser generado utilizando grandes botnets de ordenadores comprometidos. 


En los ataques DDoS más grandes el tráfico generado suele estar entre 4 y 10 Gbps, en el ataque a Spamhaus se llegó a alcanzar asombrosamente los 300 Gbps, se dice que tres veces más que el mayor DDoS visto hasta la fecha.

Los autores detrás del ataque emplearon un método conocido pero no usado frecuentemente de reflexión y amplificación DNS para generar un flujo enorme de tráfico DDoS dirigido contra Spamhaus.


Los servidores DNS se utilizan principalmente para buscar y resolver nombres de dominio como hackplayers.com y sus correspondientes direcciones IP. Si un servidor DNS no tiene la información del dominio en su base de datos o caché consulta a otros servidores DNS cercanos.
Lo ideal sería que los servidores DNS estén configurados sólo para responder a solicitudes procedentes de dentro de un determinado dominio o de un rango de direcciones IP. Sin embargo, la realidad es que millones de servidores DNS públicos en Internet están configurados por defecto como DNS abiertos y responden a cualquiera...

Las personas detrás del ataque a Spamhaus enviaron consultas con direcciones IP de origen falsa a decenas de miles de servidores DNS abiertos (se cree que unos 100.000), haciendo parecer que las solicitudes de resolución venían de Spamhaus. Así que las respuestas a las peticiones de decenas de miles de servidores DNS fueron enviadas a Spamhaus, lo que generó un gran volumen de tráfico contra ellos. 


Además, para aumentar el volumen de tráfico, los atacantes modificaron las peticiones UDP de tal manera que cada servidor respondió con volúmenes de datos mucho mayores de lo normal. Por ejemplo, enviando peticiones recursivas a dominios "." (root hint) se generan respuestas 20 veces mayores que el paquete de solicitud inicial, irónicamente en parte debido a DNS-SEC que incluye datos que certifican la validez de los servidores DNS que responden.

Lo peor es que la solución se antoja difícil y para nada inmediata. Por ejemplo, Open DNS Resolver Project, el esfuerzo de un grupo de expertos en seguridad para arreglar esto, estima que actualmente existen 27 millones de "Open Recursive Resolvers", y 25 millones de ellos son una amenaza significativa, latente, esperando a desatar su furia de nuevo contra un nuevo objetivo...

Fuente: Spamhaus attacks expose huge open DNS server dangers