¿Podría escribir datos personalizados en un archivo de una extensión específica y usarlos para hackear un programa una vez que abra el archivo?

16

Por lo que entiendo, las extensiones de archivo no afectan en absoluto a los datos que contienen. Simplemente le dan a su computadora una pista de lo que son los datos, cómo está estructurada y su computadora encuentra el mejor programa para tratar con ese tipo de archivo específico.

Entonces, mi pregunta es: si pudiera escribir datos personalizados, por ejemplo, en un archivo .png que realmente contenga valores diferentes de los que se componen en un archivo normal .png , y luego abrir un programa, ¿podría ¿Hacer que haga algo malicioso?

    
pregunta Edward Severinsen 06.04.2016 - 00:18
fuente

2 respuestas

29

Extensiones de archivo

La extensión del archivo en realidad no tiene absolutamente nada que ver con los datos en el archivo o cómo se estructuran esos datos. A Windows le gusta hacerte pensar que la extensión es de alguna manera mágica; no lo es, es solo parte del nombre del archivo, y le dice a Windows qué programa iniciar cuando abres el archivo. (Linux / Android y MacOS / iOS aún usan extensiones de archivo un poco, pero no en la misma medida que Windows).

Es completamente correcto que puede volcar algunos datos en un archivo, llámelo virus.png y un visor de imágenes lo abrirá. Llámelo virus.docx y MS Word lo abrirá.

Datos inesperados

Si toma un programa bien escrito y lo alimenta con archivos que no están esperando, no debería ocurrir nada interesante. El programa debe dar un error sobre un "archivo dañado" o algo similar y continuar con su vida útil. El problema ocurre cuando el programa no está bien escrito, generalmente debido a un pequeño error, como un programador, que se olvidó de verificar los límites de una matriz, se olvidó de verificar los punteros nulos o se olvidó de poner las llaves { } en una if instrucción.

Incluso si hay un error, 99.999 ...% de los datos mal formados obtendrán el error "archivo dañado". Solo si construye los datos muy con cuidado puede hacer que suceda algo malicioso. Para un ejemplo concreto, consulte la sección sobre StageFright a continuación.

(Gracias a comentario de @ octern para esto).

Cargas útiles maliciosas en archivos que parecen inocentes

Sí, lo que estás describiendo es en realidad un vector de ataque común, de ahí el temor general de abrir archivos adjuntos de correo electrónico desconocidos.

Como atacante, si sabe que existe una vulnerabilidad en un programa específico, diga el visor de imágenes de Windows predeterminado, entonces puede construir un archivo malicioso diseñado para explotar esto. Por lo general, esto significa que usted sabe que cierta línea de código en el visor no comprueba los límites de una matriz, por lo que crea un .png malformado específicamente diseñado para hacer un ataque de desbordamiento de búfer y que el programa ejecute el código que insertó.

Explosiones PNG

Por ejemplo, aquí hay un informe de vulnerabilidad sobre la biblioteca de código abierto libpng [CVE -2004-0597] .

  

Los múltiples desbordamientos de búfer en libpng 1.2.5 y anteriores, tal como se usan en múltiples productos, permiten que los atacantes remotos ejecuten código arbitrario a través de imágenes PNG mal formadas en las que (1) la función png_handle_tRNS no valida correctamente la longitud del fragmento de transparencia (tRNS ) los datos, o las funciones (2) png_handle_sBIT o (3) png_handle_hIST no realizan una verificación de límites suficiente.

Aparte: un Vulnerabilidades y exposiciones comunes (CVE) es una forma de rastrear vulnerabilidades conocidas en software público. La lista de vulnerabilidades conocidas se puede buscar aquí: enlace

Si busca "png" en los CVE, encontrará cientos de vulnerabilidades y ataques como el que imaginó en su pregunta.

Android StageFright

La StageFright vulnerabilidad de Android de abril de 2015 fue muy similar: había una vulnerabilidad de desbordamiento de búfer en el núcleo de Android biblioteca multimedia, y al enviar un archivo de audio / video con formato incorrecto por MMS (mensaje multimedia), un atacante podría obtener el control completo del teléfono.

La vulnerabilidad original para esta vulnerabilidad era que un atacante enviara un archivo de audio / video 3GPP en el que parecía como un archivo de audio / video válido, excepto que uno de los campos de enteros en los metadatos era anormalmente grande, causando un desbordamiento de enteros . Si el "entero" grande realmente contenía código ejecutable, esto podría terminar de ejecutarse en el teléfono, por lo que este tipo de vulnerabilidad se denomina "vulnerabilidad de ejecución de código arbitrario".

Explosiones de PDF y MS Word

Si busca en el CVE "pdf" o "word", encontrará un montón de vulnerabilidades de ejecución de código arbitrario que las personas han podido explotar con esos tipos de archivos (wow, algunos de ellos muy recientes para Word también, limpio). Es por eso que .pdf y .docx se usan comúnmente como archivos adjuntos de correo electrónico que contienen virus.

    
respondido por el Mike Ounsworth 06.04.2016 - 00:45
fuente
5

Bueno, esta pregunta es bastante amplia. Pero en resumen:

Extensión de archivo

Una gran cantidad de virus simplemente utiliza la característica de Windows con gran capacidad para ocultar las extensiones de archivo. P.ej. el archivo someimg.jpg.exe aparecería como someimg.jpg al usuario, lo que lo abriría sin saber que ejecutó código malicioso.

Hacks más específicos

Ha habido (probablemente hay) algún virus drive-by, que utilizó un error en la biblioteca de imágenes de Windows que era capaz de ejecutar código que estaba oculto dentro del jpg. Se sabe que Flash también es propenso a los ataques de desbordamiento de búfer. Al insertar un marco que era más grande de lo especificado, se podría provocar un desbordamiento del búfer que permitía la ejecución del código. Los archivos PDF en adobe permiten la incorporación de código javascript, que también se puede usar maliciosamente, y AdobeReader tenía un error que permitía la ejecución de ejecutables incrustados desde el archivo pdf. La lista se podría llevar a cabo sin cesar.

Este tipo de hacks requiere un conocimiento preciso de software específico y sus puntos débiles. Pero no hay opción para simplemente cambiar el nombre de .exe a .jpg y esperar que la imagen-lib lo ejecute, o algo parecido.

    
respondido por el Paul 06.04.2016 - 00:44
fuente

Lea otras preguntas en las etiquetas