Ejecuté un escáner de malware en mi sitio, y marcó un montón de archivos EXE comprimidos como archivos de riesgo potencial (estos archivos fueron cargados por los usuarios). Como puedo descomprimir los archivos en mi Mac, supongo que estos son archivos ZIP reales y no solo algo así como archivos PHP renombrados.
Entonces, el archivo ZIP no debería ser un riesgo para mi servidor web, ¿verdad?
security
anti-virus
malware
Xavin
fuente
fuente
file foo.zip
, o incluso probar si son válidos7z t foo.zip
para probarlo (es decir, descomprimir y verificar las sumas de verificación CRC, sin extraer archivos locales en el disco). (7z
usa una sintaxis algo similar atar
). Ounzip -l foo.zip
para enumerar los contenidos. De todos modos, pensé que era extraño que hablaras de revisar los archivos en otra computadora cuando podrías haberlos revisado fácilmente en el servidor.Respuestas:
Si realmente están comprimidos archivos exe de Windows, deberían ser inofensivos para su sistema Linux, a menos que tenga algo como Wine en su lugar que podría intentar ejecutarlos.
Pero si están en su ruta web, podrían ser malware y representar un gran riesgo para los visitantes de sus sitios web (y usted, a su vez, si termina siendo marcado como fuente de malware y los usuarios reciben advertencias feas cuando intentan visitar su sitio web). sitio).
fuente
.zip
archivos mal formados que intentan detectar fallas en implementaciones específicas de descompresión.Si bien es probable que tenga razón en este caso, su suposición no siempre es válida. Un archivo ZIP sigue siendo válido incluso si antepone datos arbitrarios , por lo que es muy posible crear un archivo que sea simultáneamente un archivo ZIP válido que contenga datos inocentes y también un script PHP malicioso. Ni siquiera es particularmente difícil; simplemente concatene el código PHP y el archivo ZIP, y asegúrese (por ejemplo, usando
__halt_compiler()
) que PHP no intentará analizar los datos de archivo ZIP adjuntos.Este truco se usa legítimamente para crear archivos ZIP autoextraíbles, pero es perfectamente posible anteponer cualquier otro dato oculto o código ejecutable en un archivo ZIP de la misma manera. Algunos programas pueden negarse a abrir dichos archivos ZIP modificados (pero si es así, están violando técnicamente la especificación del formato ZIP), o pueden identificar el archivo como algo diferente de un archivo ZIP de forma predeterminada, pero en general, si alimenta un archivo de este tipo archivo en el código que espera un archivo ZIP, probablemente será aceptado como uno.
Un uso malicioso más común de tales trucos es disfrazar el código de explotación en un contenedor basado en ZIP (por ejemplo, un archivo JAR) como algo inofensivo (como una imagen GIF, como en la explotación GIFAR ), pero no hay razón para que no pueda serlo. también se usa en la otra dirección, por ejemplo, para omitir un filtro de carga de archivos ingenuo que prohíbe cargar scripts PHP pero permite archivos ZIP, sin verificar si el archivo cargado podría ser ambos al mismo tiempo.
fuente
Hay al menos dos consideraciones notables que debe tener en cuenta:
Entonces, dependiendo de lo que haga su servidor, el archivo podría ser potencialmente dañino para su servidor u otros usuarios. Dado que desconfío de los EXE descargados de Internet, diría que los posibles descargadores son los usuarios más potenciales en riesgo aquí.
fuente
Puede verificar si los archivos pueden ejecutarse en su servidor Linux simplemente verificándolos con el
file FILENAME.exe
comando. Los archivos binarios de Elf (el formato ejecutable utilizado en Linux) se pueden nombrar con.exe
extensión para confundir a un administrador de Linux desprevenido, por lo que probablemente sea una buena idea hacer esa comprobación antes de confiar ciegamente en que estos archivos no son ejecutables.fuente
Me sorprende que nadie haya mencionado que cualquier dato pueda ser (o hacerse ser) dañino para cualquier programa (con errores). Esa es la base del difuso. Por ejemplo, podría tener un archivo JPEG (o similar a JPEG) que provoque un desbordamiento del búfer en los decodificadores JPEG (¿específicos?), Causando desde una denegación de servicio hasta la ejecución de código arbitrario. Se trata de subvertir un programa de procesamiento de datos existente; ¡no es necesario traer un nuevo ejecutable! Y esta es la razón por la cual se necesitan sandboxing, desinfección de entrada y principios de privilegios mínimos.
Entonces, en su caso, podría tener un archivo ZIP que causa problemas en los motores de decodificación ZIP (¿específicos?). No es necesario que el archivo ZIP contenga un ejecutable nativo para que sea dañino.
Dicho esto, su escáner está funcionando a otro nivel más grueso. Si el tipo de riesgo del que estoy hablando existía en esos archivos, ya te golpearon en el momento en que los procesaste :).
fuente
Ha habido ataques que incrustan datos y aún presentan archivos como válidos. En un servidor configurado incorrectamente o en una aplicación codificada incorrectamente, esto podría hacer que el código se ejecute en su servidor.
Entonces, cuidado con eso también.
fuente
Una verificación adicional que idealmente debería poner en práctica es el método php finfo para verificar si los archivos que están cargando los usuarios son realmente lo que usted permitió, y no algo que los usuarios cambiaron el nombre de los archivos solo para engañar al sistema.
fuente
El .exe descomprimido también es inofensivo para los servidores Linux.
fuente
.exe
no es más que parte del nombre del archivo y esto también podría elegirse como el nombre para un binario ELF.