Les fichiers EXE compressés sont-ils inoffensifs pour les serveurs Linux?

49

J'ai exécuté un scanner de programmes malveillants sur mon site, qui marquait un groupe de fichiers EXE compressés comme des fichiers de risques potentiels (ces fichiers ont été téléchargés par les utilisateurs). Comme je suis capable de décompresser les fichiers sur mon Mac, je suppose que ce sont de vrais fichiers ZIP et pas seulement des fichiers PHP renommés.

Le fichier ZIP ne devrait donc présenter aucun risque pour mon serveur Web, n'est-ce pas?

Xavin
la source
1
Cela ressemble à un scanner de programmes malveillants.
Nick T
11
Vous savez que vous pouvez tester si elles sont au format ZIP file foo.zip, ou même si elles sont valides 7z t foo.zippour le tester (c'est-à-dire décompresser et vérifier les totaux de contrôle CRC, sans extraire dans des fichiers locaux sur le disque). ( 7zutilise une syntaxe quelque peu similaire à tar.) Ou unzip -l foo.zippour lister le contenu. Quoi qu'il en soit, j'ai juste trouvé bizarre que vous parliez de vérifier les fichiers sur un autre ordinateur alors que vous auriez facilement pu les vérifier sur le serveur.
Peter Cordes
6
Quel type de site hébergez-vous? Cela ne semble pas être une bonne idée de placer le contenu soumis par l'utilisateur et votre serveur Web orienté vers l'avenir sur le même boîtier.
oldmud0
@ NickT Les fichiers ZIP auto-extractibles peuvent avoir du code malveillant additionnel attaché à la partie exécutable.
Chrylis -on grève-

Réponses:

84

S'ils sont en fait des fichiers Windows exe compressés, ils devraient être inoffensifs pour votre système Linux, à moins que quelque chose comme Wine ne soit en place pour tenter de les exécuter.

Mais s’ils se trouvent dans votre chemin Web, ils pourraient être des logiciels malveillants et représenter un risque important pour les visiteurs de vos sites Web (et vous-même, si vous êtes marqué comme source de programmes malveillants et que les utilisateurs reçoivent des avertissements déplacés lorsqu'ils tentent de consulter votre site Web). site).

Sven
la source
3
Je me demande si l'hébergement de ces "utilisateurs" importés peut amener Google à marquer votre site comme "Ce site peut être piraté", ou à déclencher l'affichage d'une page d'avertissement géante par Chrome. "Inoffensif" pourrait être un peu un abus de langage alors.
Nick T
11
@ NickT: C'est certainement possible, et c'est ce à quoi je faisais référence dans mon deuxième paragraphe.
Sven
4
En théorie, une personne pourrait également créer des .zipfichiers mal formés qui tentent de cibler les failles dans des implémentations de décompression spécifiques.
jamesdlin
3
Mono est plus susceptible d'être installé sur un serveur que Wine et peut exécuter des fichiers CLR .exe.
Rhymoid
62

Depuis que je suis capable de décompresser les fichiers sur mon mac, je suppose que ce sont de vrais fichiers zip et pas seulement quelque chose comme des fichiers php renommés.

Bien que vous ayez probablement raison dans ce cas, votre hypothèse n’est peut-être pas toujours valable. Une archive ZIP reste valide même si vous y ajoutez des données arbitraires. Il est donc tout à fait possible de créer un fichier qui est simultanément une archive ZIP valide contenant des données innocentes et également un script PHP malveillant. Ce n'est même pas particulièrement difficile; concaténez simplement le code PHP et le fichier ZIP, et assurez-vous (par exemple, en utilisant __halt_compiler()) que PHP n'essaiera pas d'analyser les données d'archive ZIP ajoutées.

Cette astuce est légitimement utilisée pour créer des fichiers ZIP à extraction automatique, mais il est parfaitement possible de rajouter de la même manière toute autre donnée cachée ou code exécutable dans un fichier ZIP. Certains programmes peuvent refuser d’ouvrir ces fichiers ZIP modifiés (mais dans l’affirmative, ils violent techniquement les spécifications de format ZIP), ou ils peuvent identifier le fichier comme autre chose qu’un fichier ZIP par défaut, mais en général, si vous alimentez un tel fichier. fichier dans le code qui attend un fichier ZIP, il sera probablement accepté comme tel.

Une utilisation malveillante plus courante de telles astuces consiste à dissimuler le code d’exploitation dans un conteneur ZIP (par exemple, un fichier JAR) en quelque chose d’offensif (comme une image GIF, comme dans l’ exploit GIFAR ), mais rien ne l’ empêche de le faire. également utilisé, par exemple, pour contourner un filtre de téléchargement de fichier naïve qui interdit le téléchargement de scripts PHP mais autorise les fichiers ZIP, sans vérifier si le fichier téléchargé peut être les deux à la fois.

Ilmari Karonen
la source
+1 pour GIFAR, intéressant de connaître un exemple spécifique de cet exploit dans la pratique.
Caesay
11

Il y a au moins deux considérations notables à prendre en compte:

  1. Si ces fichiers sont distribués sur votre site Web, vous pourriez être tenu responsable si quelqu'un obtenait un logiciel malveillant sur votre site. À tout le moins, votre site pourrait être signalé comme un malware. Si vous décidez d'ignorer les avertissements du scanner de logiciels malveillants, vous devez au moins informer le programme de téléchargement et les téléchargeurs éventuels que le fichier peut être dangereux (comme le sont parfois les fichiers EXE téléchargés à partir d'Internet).
  2. Faites-vous des traitements sur ces fichiers autres que le scan du malware? Le traitement automatique des pièces jointes ou d'autres téléchargements de ce type est toujours potentiellement dangereux, car le contenu du fichier peut être n'importe quoi. Vous n'avez même pas besoin d'exécuter le fichier EXE si votre logiciel utilitaire est vulnérable à un exploit et que le fichier zip / exe, apparemment agréable, contient un contenu préjudiciable visant votre utilitaire. Je ne laisserais pas mon serveur traiter quoi que ce soit qui échoue à l'analyse des logiciels malveillants.

Ainsi, selon ce que votre serveur ne le fichier pourrait potentiellement être nocif pour votre serveur ou d' autres utilisateurs. Comme je me méfie des fichiers EXE téléchargés sur Internet, je dirais que les téléchargeurs potentiels sont les utilisateurs les plus à risque ici.


la source
2

Vous pouvez vérifier si les fichiers sont exécutables sur votre serveur Linux en les vérifiant simplement avec la file FILENAME.execommande. Les fichiers binaires Elf (le format exécutable utilisé sous Linux) peuvent être nommés avec une .exeextension pour gêner un administrateur Linux peu méfiant. Il est donc sage de le vérifier avant de vous assurer aveuglément que ces fichiers ne sont pas exécutables.

Grovkin
la source
2

Je suis surpris que personne ne mentionne que des données peuvent être (ou être faites pour être) nuisibles à tout programme (buggy). C'est la base du fuzzying. Par exemple, vous pouvez avoir un fichier JPEG (ou de type JPEG) provoquant un débordement de mémoire tampon sur des décodeurs JPEG (spécifiques?), Ce qui peut provoquer un déni de service ou une exécution de code arbitraire. Il s’agit de subvertir un programme de traitement de données existant; pas besoin d'apporter un nouvel exécutable! Et c’est la raison pour laquelle les principes du sandboxing, de la désinfection des entrées et du moindre privilège sont nécessaires.

Ainsi, dans votre cas, vous pourriez avoir un fichier ZIP causant des problèmes sur les moteurs de décodage ZIP (spécifiques?). Il n'est pas nécessaire que le fichier ZIP contienne un exécutable natif pour qu'il soit dangereux.

Cela dit, votre scanner fonctionne à un autre niveau, plus grossier. Si le type de risque dont je parle existait dans ces fichiers, vous avez déjà été touché au moment où vous les avez traités :).

Hmijail
la source
1

Comme je suis capable de décompresser les fichiers sur mon Mac, je suppose que ce sont de vrais fichiers ZIP et pas seulement des fichiers PHP renommés.

Il y a eu des attaques qui incorporent des données et présentent toujours des fichiers comme valides. Sur un serveur mal configuré ou dans une application mal codée, cela pourrait entraîner l'exécution du code sur votre serveur.

Alors, faites attention à cela aussi.

Rubenvarela
la source
0

Une vérification supplémentaire que vous devriez idéalement mettre en place est la méthode php finfo pour vérifier si les fichiers téléchargés par les utilisateurs sont réellement ceux que vous avez autorisés, et non quelque chose comme quoi les utilisateurs ont renommé les fichiers simplement pour tromper le système.

Kanuj Bhatnagar
la source
-6

Les fichiers .exe décompressés sont également inoffensifs pour les serveurs Linux.

asharsh
la source
23
Ce n'est pas nécessairement le cas - cela .exene fait pas plus partie du nom de fichier et cela pourrait également être choisi comme nom d'un fichier binaire ELF.
Sven
En outre, WINE peut être installé. Certes, la plupart des programmes malveillants ciblant Windows ne fonctionneraient probablement pas sous WINE, mais le risque est présent. Au mieux, les .exz décompressés sous Linux sont généralement inoffensifs.
Ray
@ Ray dépend de la configuration. Si, pour une raison quelconque, Mono ou Wine sont installés, binfmt_misc peut être configuré pour que .exe soit réellement exécutable.
Rhymoid