I file EXE compressi sono innocui per i server Linux?


49

Ho eseguito uno scanner di malware sul mio sito e ha contrassegnato un sacco di file EXE compressi come potenziali file di rischio (questi file sono stati caricati dagli utenti). Dal momento che sono in grado di decomprimere i file sul mio Mac presumo che si tratti di veri file ZIP e non solo di qualcosa come rinominare i file PHP.

Quindi il file ZIP non dovrebbe essere un rischio per il mio server web, giusto?


1
Sembra uno scanner di immondizia malware.
Nick T,

11
Sai che puoi testare se sono in formato ZIP con file foo.zip, o anche testare se sono validi 7z t foo.zipper testarlo (cioè decomprimere e verificare i checksum CRC, senza estrarre i file locali sul disco). ( 7zusa la sintassi in qualche modo simile a tar.) O unzip -l foo.zipper elencare i contenuti. Comunque, ho pensato che fosse strano parlare di controllare i file su un altro computer quando avresti potuto controllarli facilmente sul server.
Peter Cordes,

6
Che tipo di sito Web stai ospitando? Non sembra una buona idea mettere i contenuti inviati dall'utente e il tuo server web rivolto in avanti nella stessa casella.
oldmud0,

@NickT I file ZIP autoestraenti potrebbero avere un codice dannoso aggiuntivo collegato alla parte eseguibile.
Chrylis

Risposte:


84

Se sono effettivamente file exe di Windows compressi, dovrebbero essere innocui per il tuo sistema Linux, a meno che tu non abbia in atto qualcosa come Wine che potrebbe tentare di eseguirli.

Ma se si trovano sul tuo percorso Web, potrebbero essere malware e rappresentare un grosso rischio per i visitatori dei tuoi siti Web (e tu a sua volta, se finisci per essere contrassegnato come fonte di malware e gli utenti ricevono brutti avvisi quando provano a visitare il tuo posto).


3
Mi chiedo se l'hosting di tali rifiuti "utente" caricati possa causare a Google il marchio del tuo sito come "Questo sito potrebbe essere compromesso" o attivare Chrome che visualizza una pagina di avviso rossa gigante. "Innocuo" potrebbe essere un po 'improprio allora.
Nick T,

11
@NickT: Certamente può, ed è quello a cui mi riferivo nel mio secondo paragrafo.
Sven

4
In teoria qualcuno potrebbe anche creare .zipfile non validi che provano a individuare i difetti in specifiche implementazioni decompresse.
Jamesdlin,

3
È più probabile che Mono sia installato su un server rispetto a Wine e può eseguire file CLR .exe.
Rhymoid,

62

Dal momento che sono in grado di decomprimere i file sul mio Mac, presumo che si tratti di file zip reali e non solo di file php rinominati.

Anche se probabilmente hai ragione in questo caso, il tuo presupposto potrebbe non essere sempre valido. Un archivio ZIP rimane valido anche se si antepongono ad esso dati arbitrari , quindi è del tutto possibile creare un file che sia contemporaneamente un archivio ZIP valido contenente dati innocenti e anche uno script PHP dannoso. Non è nemmeno particolarmente difficile; basta concatenare il codice PHP e il file ZIP e assicurarsi (ad es. l'utilizzo __halt_compiler()) che PHP non proverà ad analizzare i dati dell'archivio ZIP allegato.

Questo trucco viene legittimamente utilizzato per creare file ZIP autoestraenti, ma è perfettamente possibile anteporre qualsiasi altro dato nascosto o codice eseguibile in un file ZIP allo stesso modo. Alcuni programmi potrebbero rifiutare di aprire tali file ZIP modificati (ma in tal caso, stanno tecnicamente violando le specifiche del formato ZIP) o potrebbero identificare il file come qualcosa di diverso da un file ZIP per impostazione predefinita, ma in generale, se si alimenta un tale file in codice che prevede un file ZIP, probabilmente verrà accettato come tale.

Un uso dannoso più comune di tali trucchi è mascherare il codice di exploit in un contenitore basato su ZIP (ad esempio un file JAR) come qualcosa di innocuo (come un'immagine GIF, come nell'exploit GIFAR ), ma non c'è motivo per cui non potrebbe essere utilizzato anche nell'altra direzione, ad esempio per bypassare un filtro di caricamento file ingenuo che proibisce il caricamento di script PHP ma consente i file ZIP, senza verificare se il file caricato potrebbe essere entrambi contemporaneamente.


+1 per GIFAR, interessante da sapere su un esempio specifico di questo exploit in pratica.
ca

11

Vi sono almeno due importanti considerazioni da tenere in considerazione:

  1. Se questi file sono distribuiti sul tuo sito Web, potresti essere ritenuto responsabile se qualcuno riceve malware dal tuo sito. Per lo meno il tuo sito potrebbe essere segnalato per malware. Se decidi di ignorare gli avvisi dello scanner di malware, dovresti almeno informare l'autore del caricamento e i possibili downloader che il file potrebbe essere dannoso (come talvolta accade per gli EXE scaricati da Internet).
  2. Esegui elaborazioni su questi file diversi dalla scansione malware? L'elaborazione automatica di allegati o altri caricamenti di questo tipo è sempre potenzialmente pericolosa, poiché il contenuto del file potrebbe essere qualsiasi cosa. Non è nemmeno necessario eseguire il file EXE se il software dell'utilità è vulnerabile a qualche exploit e l'apparente zip / exe contiene contenuti dannosi destinati all'utilità. Non permetterei al mio server di elaborare nulla che non riesca a scansionare il malware.

Quindi, a seconda di ciò che fa il tuo server, il file potrebbe essere potenzialmente dannoso per il tuo server o altri utenti. Dato che sono abbastanza diffidente nei confronti degli EXE scaricati da Internet, direi che i possibili downloader sono gli utenti più a rischio qui.


2

Puoi verificare se i file sono eseguibili sul tuo server Linux semplicemente controllandoli con il file FILENAME.execomando. I binari elf (il formato eseguibile usato su Linux) possono essere nominati con .exeestensione per confondere un amministratore Linux ignaro, quindi è probabilmente una buona idea fare quel controllo prima di fidarsi ciecamente che questi file non siano eseguibili.


2

Sono sorpreso che nessuno abbia menzionato il fatto che qualsiasi dato può essere (o essere reso) dannoso per qualsiasi programma (buggy). Questa è la base del fuzzying. Ad esempio, potresti avere un file JPEG (o simile a JPEG) che causa un overflow del buffer su decodificatori JPEG (specifici?), Causando qualsiasi cosa, da una negazione del servizio all'esecuzione di codice arbitrario. Si tratta di sovvertire un programma di elaborazione dati esistente; non c'è bisogno di portare un nuovo eseguibile! E questo è il motivo per cui sono necessari sandboxing, sanificazione dell'input e principi del privilegio minimo.

Quindi, nel tuo caso, potresti avere un file ZIP che causa problemi su (specifici?) Motori di decodifica ZIP. Non è necessario che il file ZIP contenga un eseguibile nativo perché sia ​​dannoso.

Detto questo, lo scanner funziona a un altro livello più grossolano. Se il tipo di rischio di cui sto parlando esisteva in quei file, sei già stato colpito nel momento in cui li hai elaborati :).


1

Dal momento che sono in grado di decomprimere i file sul mio Mac presumo che si tratti di veri file ZIP e non solo di qualcosa come rinominare i file PHP.

Ci sono stati attacchi che incorporano dati e presentano ancora file validi. In un server configurato in modo errato o in un'app con codice errato, questi potrebbero causare l'esecuzione di codice nel server.

Quindi, attento anche a quello.


0

Un ulteriore controllo che idealmente dovresti mettere in atto è il metodo php finfo per verificare se i file caricati dagli utenti sono effettivamente ciò che hai autorizzato e non qualcosa che gli utenti hanno rinominato i file solo per ingannare il sistema.


-6

I file zip decompressi sono anche innocui per i server Linux.


23
Non necessariamente, .exenon è altro che parte del nome del file e questo potrebbe anche essere scelto come nome per un binario ELF.
Sven

Inoltre, WINE potrebbe essere installato. Certo, la maggior parte dei malware con targeting per Windows probabilmente non funzionerebbe proprio sotto WINE, ma il rischio è presente. Nella migliore delle ipotesi, gli .exes decompressi su Linux sono per lo più innocui.
Ray,

@Ray Dipende dalla configurazione. Se, per qualche motivo, Mono o Wine sono installati, allora binfmt_misc potrebbe essere configurato in modo che .exe sia effettivamente eseguibile.
Rhymoid,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.