¿Evita que se carguen malware en el servidor cambiando todas las extensiones a PNG?

1

Bien, tengo mi propio sitio web, y puedes usar la carga del archivo bastante, y es muy importante para el sitio. Sin embargo, he escuchado que los clientes aún pueden omitir las restricciones de extensión de un archivo (solo permito PNG y JPG), y luego pueden inyectar malware en el sitio.

Por lo tanto, estaba pensando en una forma de prevenir esto, sin embargo no estoy seguro de si funcionaría completamente. Entonces, estaba pensando que después de subir un archivo, por defecto establecí la extensión a un PNG.

¿Esto evitaría que se ejecutara algún código si hubiera una carga de un archivo con malware que pasara por alto el filtro de extensión?

    
pregunta UnderMyWheel 08.05.2016 - 04:55
fuente

1 respuesta

4

Cargar un virus no infectará algo. Al interpretar el virus en el intérprete, el virus estaba destinado a explotar la voluntad (es decir, Acrobat abriendo un PDF; el sistema operativo lanza un binario x86_64; etc.). Esto es algo en lo que debe pensar cuando evalúa su modelo de amenaza.

La importancia de las extensiones

Las extensiones de archivo son solo sugerencias para las instrucciones de manejo. Solo Windows tiene una relación tan fuerte entre la extensión del archivo y la identidad del archivo.

Hay dos problemas diferentes aquí:

  • El archivo es un virus. Pueden llamarse virus.exe o virus.png , no importa. Lo que importa es:

  • El intérprete que el virus debe explotar interpreta el archivo. Esto significa que alguien abre un archivo PDF contaminado con Acrobat o un archivo ejecutable contaminado ejecutándolo, después de posiblemente cambiarle el nombre.

Nota: "interpretado con el intérprete que el virus debe explotar" no es un error tipográfico. Es una explicación pedante. Por ejemplo: el procesador no es una aplicación, pero es un intérprete y puede ser explotado.

Si alguien carga virus.exe y reemplaza la extensión con virus.png , la computadora de alguien puede ir "Oye, eso no es un PNG, pero se ve como un ejecutable" y lo ejecuta de todos modos , eso no ayudó.

Si alguien carga virus.png , puede suceder lo mismo.

Obviamente, es es más probable que la computadora de alguien interprete a virus.exe como ejecutable que a interpretar a virus.png como ejecutable, por lo que existe cierta validez. Sin embargo, simplemente cambiar el nombre de las cosas no cambia mucho, solo molesta a las personas más adelante cuando obtienen un archivo png 'dañado'.

¿Qué debes hacer?

Mi sugerencia: Haga que su servidor ejecute algún programa [de confianza] en cada imagen cargada y pídale que lo convierta en PNG o JPG. Si no lo hace, entonces las cargas no fueron imágenes. Si tiene éxito, también logró eliminar cualquier virus que pudiera haber sido oculto en el mismo archivo .

Otra sugerencia, que es más fácil de hacer de inmediato, pero en realidad es más una técnica de mitigación de riesgos de primer paso: rechazar las subidas que no terminan en PNG o JPG - no simplemente cambia el nombre de ellos.

    
respondido por el iAdjunct 08.05.2016 - 06:28
fuente

Lea otras preguntas en las etiquetas