¿Vulnerabilidad de una computadora detrás de un puerto serial?

2

Consideremos estas 4 computadoras:

Ubicación de la costa este:

  • la computadora East1 está conectada a Internet.
  • la computadora East2 está conectada a East1 a través de un cable serie RS232.

Ubicación de la costa oeste:

  • la computadora West1 está conectada a Internet.
  • la computadora West2 está conectada a West1 a través de un cable serie RS232.

East2 y West2 tienen una copia del mismo pad de una vez.
Su única conexión a otra computadora es el cable serie.
Utilizan un software escrito personalizado para transmitir mensajes (cifrados) en el puerto serie.
Tienen otro software escrito personalizado que puede cifrar / descifrar un mensaje con el teclado de una sola vez.

East1 y West1 tienen otro software personalizado que puede:

  • envíe y reciba los mensajes cifrados a través del cable serial
  • enviar y recibir los mensajes cifrados entre sí a través de Internet (correo electrónico, FTP, SSH ...)

No tienen el pad de una sola vez, por lo que no pueden descifrar los mensajes. Solo están actuando como transmisores.

Escenario de ejemplo:

Bob está en la costa este y desea enviar un mensaje cifrado a Jane, que vive en la costa oeste.
- Bob escribe el mensaje en East2.
- East2 encripta el mensaje con el pad de una sola vez
- East2 envía el mensaje a East1 a través del cable serie
- East1 recibe el mensaje y lo reenvía a West1 a través de internet
- West1 recibe el mensaje y lo transmite a West2 a través del cable serie
- West2 descifra el mensaje
- Jane lee el mensaje en West2
...
- ella decide contestar
- West2 cifra su nuevo mensaje y pasa el mensaje a West1 a través del cable serie
- West1 envía el mensaje a East1 a través de internet
- East1 recibe el mensaje y lo envía a East2 a través del cable serie
- East2 descifra el mensaje y Bob lee la respuesta de Jane

Hagamos algunas suposiciones:
- el pad de una vez es verdaderamente aleatorio (lo que significa que es irrompible)
- East2 y West2 no se comprometieron antes de conectarse con el cable serie
- Bob y Jane son de confianza
- y también lo es el desarrollador que escribió los softwares personalizados utilizados para comunicarse a través del puerto serie
- los posibles atacantes no pueden acceder físicamente a East2 y West2 (ni con tempestad, etc.)

Y finalmente, aquí está mi pregunta:
¿Puede un atacante que obtuvo el control de East1 y / o West1 acceder al pad de una sola vez en East2 y / o West2?

Entiendo que el atacante puede:
- intercepta los mensajes codificados (que no puede leer si el pad de una vez es aleatorio)
- Detener las comunicaciones entre todas las computadoras. - enviar mensajes falsos (que deberían ser incomprensibles una vez decodificados)

¿Pero puede hacer algo más si su objetivo está detrás de un cable serial?

Más preguntas:
- ¿Cambia algo si, en lugar de puertos seriales verdaderos, se usan convertidores de serie a USB?
- Si la solución es segura, ¿el sistema operativo de East2 y West 2 tiene algún papel que desempeñar o incluso un Windows 95 sin parches no cambiaría nada (recuerde que el atacante no puede acceder físicamente a las computadoras)?

Gracias de antemano por tus aportaciones.

    
pregunta jmn 18.07.2012 - 16:52
fuente

2 respuestas

4

Pregunta teórica interesante, así que te daré una respuesta teórica :).

Supongamos que East1 y West1 están comprometidos (están conectados a Internet y ejecutan el software COTS, por lo que no es una suposición demasiado irrazonable).

La interfaz con el código que se ejecuta en East / West2 es el software que realiza la conexión en serie y transmite los mensajes cifrados. Al igual que cualquier software, tendrá errores y estos errores pueden ser relevantes para la seguridad.

Si el software que ejecuta la comunicación a través del puerto serie tiene un problema de desbordamiento del búfer, por ejemplo, es posible que un atacante transmita un mensaje que permitiera la ejecución del código en la computadora de serie solamente.

En ese punto, el sistema operativo en uso en los sistemas conectados en serie podría ser relevante, ya que las mitigaciones a nivel del sistema operativo (por ejemplo, ASLR) podrían ser relevantes en cuanto a si es posible explotar la vulnerabilidad hipotética en el software que se ejecuta a través de la conexión en serie.

Suponiendo que el software que ejecuta la conexión en serie tiene un desbordamiento de búfer explotable o similar, es posible obtener una ejecución remota de comandos en la máquina conectada en serie y, por lo tanto, obtener acceso al pad de una sola vez.

Por supuesto, en el mundo real es una cadena de eventos bastante improbable y es probable que sea más fácil para el atacante tomar un camino alternativo para acceder a la información :)

    
respondido por el Rоry McCune 18.07.2012 - 19:28
fuente
1

Sí, tienes razón, esta es una forma poderosa de reducir el nivel de riesgo.

No elimina completamente toda posibilidad de compromiso. Por ejemplo, si hay alguna vulnerabilidad en el código en East2 / West2 que escucha el puerto serie y actúa sobre los bytes que ingresan a través del puerto serie, entonces se encuentra en una página. Si existe alguna vulnerabilidad en los controladores de dispositivo del sistema operativo para el puerto serie, es posible que tenga una conexión.

Pero, esto sigue siendo una mejora significativa. La cantidad de código que es crítica para la seguridad se ve muy disminuida. Y, si escribe el código que maneja los bytes que llegan a través del cable serial con mucho cuidado, y un grupo de expertos en seguridad lo revisan y auditan, puede reducir la probabilidad de vulnerabilidades allí. Por lo tanto, el enfoque que esbozó es una forma razonable de reducir el riesgo, en general.

En resumen: no es perfecto, no elimina completamente todos los riesgos, pero hace que sea menos probable que un atacante pueda comprometerse y tomar el control de East2 / West2.

Ahora vamos a hablar de la criptografía. El pad de una sola vez no es una elección tan maravillosa en la práctica. La gestión de claves es difícil y, a menudo, se estropea. Además, el teclado de una sola vez proporciona solo confidencialidad pero no autenticación de mensajes. El uso del cifrado sin autenticación de mensajes es uno de los errores de cifrado más comunes que las personas cometen, y puede tener consecuencias catastróficas.

En resumen: todavía necesitas hacer el cripto correctamente, y creo que todavía no tienes el cripto correcto. Sin embargo, la pregunta de cómo hacer el derecho de criptografía es una pregunta ortogonal, separable que ha sido bien tratada en otros lugares, y no creo que sea realmente el punto de lo que está preguntando de todos modos. Por lo tanto, voy a dejar eso a un lado por ahora.

Esperamos que esto le ayude a tener una mejor idea de los riesgos a los que está expuesto y con los que no está expuesto, con su propuesta.

    
respondido por el D.W. 19.07.2012 - 20:43
fuente

Lea otras preguntas en las etiquetas