¿Cómo puedo evitar los ataques de carga útil de código de barras?

2

Recientemente, encontré una herramienta que puede inyectar cargas útiles en un código de barras . ¿Cómo puedo evitar este tipo de ataques?

Escenario de ataque :

  • El atacante imprime un código de barras vulnerable / me envía un código de barras vulnerable
  • Escaneo el código de barras vulnerable y la carga útil ataca mi sistema
  • El atacante obtiene acceso

Posibles escenarios preventivos :

  • Nunca escanee códigos de barras, pero no es fácil en términos de tiendas departamentales o áreas de almacenamiento de la compañía (donde la lectura de códigos de barras es importante)

¿Aparte de lo anterior, cualquier posible solución preventiva para prevenir este tipo de ataques?

    
pregunta BlueBerry - Vignesh4303 23.06.2016 - 14:18
fuente

3 respuestas

8

Después de revisar el código, no estoy seguro de que deba explotar o atacar nada. Parece que su único propósito es codificar una carga útil utilizando códigos de barras. Sería una buena manera de importar código en un sistema usando un lector de código de barras cuando todas las demás rutas pueden estar bloqueadas. Después de localizar una vulnerabilidad en un sistema, puede "cargar" una carga útil utilizando uno de estos códigos de barras.

Como tal, no hay nada contra lo que defenderse. Es hacer que el escáner de códigos de barras haga exactamente lo que se supone que debe hacer: convertir un código de barras en texto.

    
respondido por el schroeder 23.06.2016 - 14:44
fuente
7

Esto es notablemente similar a ataques como SQLi, y la remediación es la misma.

  • Siempre que permita que un código de barras se escanee como entrada, valide en el escáner y solo permita la entrada que cumpla con los requisitos.

Si espera un campo de 20 dígitos, solo permita 20 dígitos y elimine todo después de 20. Si espera 8 caracteres alfanuméricos, limítelo a eso.

Esto solía ser un problema de vuelta, pero incluso a principios de los 90, esto se resolvió. (Solía hacer muchas pruebas tempranas para escáneres de Telxon, Symbol, etc., y esto fue antes de que se resolviera el problema de SQLi. Tuvimos que resolverlo para varios casos de uso, incluidos los códigos de terminal 5250 y 3270 también). antes de que lleguen al sistema que están diseñados para explotar, elimina el problema por completo.

    
respondido por el Rory Alsop 23.06.2016 - 14:36
fuente
2

Los códigos de barras pueden ser explotados debido al hecho de que la mayoría de los códigos de barras contienen no solo caracteres numéricos y alfanuméricos, sino también caracteres ASCII completos (incluidos los especiales) según el protocolo que se utilice.

Los escáneres de código de barras son esencialmente emuladores de teclado y, si son compatibles con protocolos como Code128 (que admite caracteres de control ASCII), un atacante podría crear un código de barras que, cuando se lee, abre un indicador de shell en la computadora de destino a la que se envían los comandos.

O, los comandos Ctrl + se pueden enviar a través del código ASCII y se pueden usar para activar teclas de acceso rápido, que se registran con el prefijo Ctrl +. Aquellos a su vez iniciarían diálogos comunes como OpenFile, SaveFile, etc. Un atacante podría usar esas teclas de acceso rápido para explorar el sistema de archivos de la computadora, iniciar un navegador o ejecutar programas de destino.

Entonces, si desea protegerse de este tipo de ataque, haga que sus lectores lean solo caracteres estándar y excluya todos los especiales ASCII de ser procesados / interpretados. Muchos escáneres admiten varios protocolos, por lo que la selección de uno que sea numérico y alfanumérico solo solucionará este problema.

    
respondido por el Overmind 23.06.2016 - 14:46
fuente

Lea otras preguntas en las etiquetas