You Are Browsing ‘Hardware’ Category

Aprender a programar un Terminator y a Bender de Futurama (o también como aprender a programar un MOS 6502)

by cybercaronte - on Ene 5th 2017 - No Comments

 

https://farm1.staticflickr.com/766/32125758245_2280c0cedb.jpg 

Link

Con el auge de la IA ya sabemos que Skynet está cerca y con ella los famosos Terminator. Como todos sabéis los Terminator están programados con este procesador así que es el momento perfecto para aprender a programar un MOS 6502 y así poder re-programarlo y convertirlo en un Roomba. También nos puede ayudar a programar a nuestro querido Bender de Futurama como podéis ver en la imagen que encabeza este post.

Ahora en serio, la primera pregunta que podemos hacernos es ¿por qué tendría que aprender a programar ensamblador con el microprocesador MOS 6502?. Primero, porque programar siempre es divertido 😉 y mucho más si es en ensamblador. Segundo, porque muchos ordenadores y video consolas clásicas fueron diseñadas utilizando este microprocesador como CPU, por ejemplo: BBC Micro, Atari 2600, Commodore 64, nuestro querido Apple II e incluso la famosa NES. Por otro lado este lenguaje ensamblador también es un buen comienzo para aprender a programar microprocesadores más potentes y además es perfecto para entender el funcionamiento en uno de los niveles más bajos de un ordenador (después del ensamblador sólo te queda el código máquina).

Este fantástico artículo está dividido en los siguientes apartados:

Además puedes practicar directamente en el página web ya que utiliza un simulador de 6502

Le he estado echando un vistazo y si tienes una base mínima de programación, llegarás a entenderlo y programarlo en una tarde (incluso como puedes observar en la lista de apartados, al final crearás un pequeño juego).

Enlace original:

https://skilldrick.github.io/easy6502/

Entradas relacionadas:

Cómo robar datos de un ordenador utilizando el sonido del ventilador

by cybercaronte - on Jun 26th 2016 - No Comments

Fans
  Foto: TechWorm

Pues sí, hasta ahora hemos visto muchos métodos no convencionales para acceder a la información de un ordenador totalmente aislado sin conexión a red (en inglés, “air-gapped“). Por ejemplo, a través de técnicas con cámaras térmicas, electromagnetismo, etc.  Pues ahora investigadores de la Universidad Ben-Gurion of the Negev han descubierto un nuevo método acústico para poder extraer información de un ordenador utilizando el ruido generado por los ventiladores. Para extraer la información sólo necesitan un teléfono móvil o un ordenador equipado con un micrófono.

Una de las características de este ataque es que no necesita que el ordenador tenga altavoces instalados (o tarjeta de audio). Esto es importante ya que existen otros tipos de ataques tipo acústicos que necesitan los altavoces. En este caso no es necesario, además la mayoría de los equipos críticos no suelen tener instalados altavoces o tarjetas de sonido.

La técnica de ataque lo explican los investigadores: “Nuestro método utiliza el sonido emitido por la CPU y los ventiladores del chasis, los cuales están presente en prácticamente todos los ordenadores hoy día. Mostramos un software que puede regular la velocidad de los ventiladores internos para controlar la forma de onda acústica emitida desde un ordenador. Los datos binarios se pueden modular y transmitir a través de estas señales de audio a un micrófono remoto (o un teléfono móvil)“.

Las pruebas que ha realizado demuestran que es posible conseguir contraseñas y cualquier otra información relevante (como llaves de cifrado) a través del ruido de los ventiladores y enviarlo a diferentes distancias a un micrófono. Además este método no se limita a ordenadores, se puede aplicar a cualquier dispositivo que tenga ventiladores, como por ejemplo una impresora, sistemas de control (ojo con esto), etc.

¿Y cómo funciona?, vamos a intentar resumirlo.

La base del ataque son los ventiladores del ordenador, como ya se ha comentado antes. Estos ventiladores utilizan entre tres o cuatro cables (tipo hembra) los cuales se conectan a sus respectivos pines en la placa base del ordenador:

  • Pin 1 (rojo). GROUND. Conexión a tierra
  • Pin 2 (negro). 12V. Energía para mover el ventilador
  • Pin 3 (negro). FAN_TACH. Señal de salida que indica la velocidad actual del ventilador
  • Pin4 (amarillo). FAN_CONTROL. Señal de entrada utilizada para ajustar la velocidad del ventilador.

El Pin 4 es el que nos importa. A través de él es posible controlar la velocidad del ventilador, de forma manual o automática (utilizando un controlador que lleva la placa base del ordenador). Para controlarlo manualmente sólo necesitamos el driver adecuado para cada placa base. Aumentando o disminuyendo las RPM podemos obtener diferentes formas de onda (sonido) según necesitemos. El código malicioso insertado en el ordenador infectado modular estas RPM del ventilador para transmitir un “0” o un “1”.

Cada ventilador, debido a su diseño (tendrá más o menos palas, aletas o “blades“) emitirá ruido a una frecuencia distinta. El término “blade pass frequency” (BPF) es el tono acústico principal producido por un ventilador cuando está girando.  El valor BPF se mide multiplicando el número de palas (n) por la velocidad de rotación en RPM: n * R/60.

Por lo tanto el valor BPF es importante ya que permite calcular con antelación el tono que será generado por el ventilador. Por ejemplo, un ventilador típico para el chasis de un PC tiene 7 aletas (“blades“), por lo tanto los valores BPF para los rangos R se pueden pre calcular, obteniendo los siguientes resultados:

  • Entre 1000 y 1600 RPM (R): BPF (Hz) 116-187
  • Entre 1600 y 3000 RPM (R): BPF (Hz) 187-350
  • Entre 2000 y 2500 RPM (R): BPF (Hz) 233-292
  • Entre 4000 y 4500 RPM (R): BPF (Hz) 466-525

El oído humano es capaz de detectar esta variaciones de sonido cuando están dentro del rango entre 100 y 600Hz (todas las que aparecen en la tabla). Por lo tanto esta técnica tiene que utilizar algunas otras técnicas para evitar que se detecte. La primera de estas técnicas es transmitir la información cuando no haya nadie trabajando en el ordenador, por ejemplo durante la noche. Otra técnica consiste en utilizar frecuencias bajas entre 140 y 170 Hz, ya que aparentemente son las que menos se pueden apreciar con el oído humano. Finalmente, es aconsejable utilizar menos de 100Hz de diferencia entre la modulación de un “1” y un “0”.

Para poder enviar la información a través del ruido del ventilador es necesario que los datos sean previamente modulados. Esto significa insertar la información binaria dentro de una onda portadora. Se utilizan dos esquemas de modulación llamados ASK (Amplitude Shift Keysing) y FSK (Frequency Shift Keying). Cada una tiene sus ventajas e inconvenientes, por ejemplo FSK se utiliza para transmitir la información cuando se conoce el ventilador y sus características y ASK cuando es desconocido.

A modo de ejemplo, en la siguiente imagen podemos ver cómo se modula una señal utilizando el método ASK, que contiene la cadena de bits “101010”, donde para transmitir un “0” las revoluciones son 3000 (R0) y para un “1” son 3500 (R1) durante un tiempo (T) de 5 segundos:

ASKModulation

Fuente

Para el experimento utilizaron un ordenador bastante común, un DELL Optiplex 9020 con un Intel Core i7 y como emisor un chip Intel Q87 (Lynx Point) que viene integrado en el chipset de la placa base. Como receptor, se utilizó un Galaxy S4 (I9500) con el micrófono de serie utilizando una frecuencia de sampleo de 44,1 KHz. El entorno donde se realizó la prueba era una habitación con el ruido habitual de fondo donde había otros siete ordenadores funcionando, varios switches y un sistema de aire acondicionado también funcionando.

Los resultados mostraron que utilizando frecuencias bajas (1000 RPM para “0” y 1600 para “1”) sobre una distancia de 1 metro, era posible transmitir 3 bits por minuto, lo que significa que para enviar 1 byte por cada caracter de la contraseña o la llave de cifrado harían falta 3 minutos. Se pueden mejorar los tiempos de transmisión aumentando la frecuencia, pero como se ha comentado antes, las variaciones de ruido más detectables para el oído humano. De todas formas con 2000 y 2500 RPM pudieron transmitir 10 bits por minuto a una distancia de 4 metros. Utilizando 4000 y 4250 RPM se pudo transmitir 15 bits por minuto a una distancia de 1 metro.

No dudéis en echar un vistazo al documento original: “Fansmitter: Acoustic data exfiltration from (speakerless) air-gapped computers

Por cierto, si tu ordenador tiene refrigeración líquida, no tienes que preocuparte 😉

Fuente: TechWorm

Entradas relacionadas: