Sind komprimierte EXE-Dateien für Linux-Server ungefährlich?

49

Ich habe auf meiner Website einen Malware-Scanner ausgeführt, der eine Reihe von komprimierten EXE-Dateien als potenzielle Risikodateien kennzeichnete (diese Dateien wurden von Benutzern hochgeladen). Da ich die Dateien auf meinem Mac dekomprimieren kann, gehe ich davon aus, dass es sich um echte ZIP-Dateien handelt und nicht nur um umbenannte PHP-Dateien.

Die ZIP-Datei sollte also kein Risiko für meinen Webserver darstellen, oder?

Xavin
quelle
1
Klingt wie ein Müll-Malware-Scanner.
Nick T
11
Sie wissen, dass Sie testen können, ob sie im ZIP-Format vorliegen file foo.zip, oder sogar, ob sie 7z t foo.zipzum Testen gültig sind (dh, Sie können die CRC-Prüfsummen dekomprimieren und überprüfen, ohne sie in lokale Dateien auf der Festplatte zu extrahieren). ( 7zVerwendet eine ähnliche Syntax wie tar.) Oder unzip -l foo.zipum den Inhalt aufzulisten. Wie auch immer, ich fand es nur seltsam, dass Sie über das Überprüfen der Dateien auf einem anderen Computer sprechen, obwohl Sie diese auf dem Server problemlos hätten überprüfen können.
Peter Cordes
6
Was für eine Website hosten Sie? Es klingt nicht nach einer guten Idee, vom Benutzer eingereichte Inhalte und Ihren vorwärtsgerichteten Webserver auf dieselbe Box zu stellen.
oldmud0
@NickT Selbstentpackende ZIP-Dateien können zusätzlichen schädlichen Code enthalten, der an den ausführbaren Teil angehängt wird.
chrylis -on strike-

Antworten:

84

Wenn es sich tatsächlich um komprimierte Windows-Exe-Dateien handelt, sollten sie für Ihr Linux-System harmlos sein, es sei denn, Sie haben etwas wie Wine installiert, das versuchen könnte, sie auszuführen.

Wenn sie sich jedoch in Ihrem Webpfad befinden, können sie Malware sein und ein großes Risiko für die Besucher Ihrer Websites darstellen (und Sie wiederum, wenn Sie als Malware-Quelle gekennzeichnet werden und Benutzer beim Versuch, Ihre Website zu besuchen, hässliche Warnungen erhalten) Seite? ˅).

Sven
quelle
3
Ich frage mich, ob das Hosten eines solchen von "Nutzern" hochgeladenen Mülls dazu führen kann, dass Google Ihre Website als "Diese Website wird möglicherweise gehackt" markiert oder Chrome eine riesige rote Warnseite anzeigt. "Harmlos" könnte dann ein bisschen eine Fehlbezeichnung sein.
Nick T
11
@ NickT: Das ist mit Sicherheit möglich, und darauf habe ich in meinem zweiten Absatz Bezug genommen.
Sven
4
Theoretisch könnte jemand auch fehlerhafte .zipDateien erstellen , die versuchen, Fehler in bestimmten Dekomprimierungsimplementierungen zu beheben.
Jamesdlin
3
Mono wird mit größerer Wahrscheinlichkeit auf einem Server installiert als Wine und kann CLR-EXE-Dateien ausführen.
Rhymoid
62

Da ich in der Lage bin, die Dateien auf meinem Mac zu dekomprimieren, gehe ich davon aus, dass dies echte Zip-Dateien sind und nicht nur so etwas wie umbenannte PHP-Dateien.

Auch wenn Sie in diesem Fall wahrscheinlich Recht haben, ist Ihre Annahme möglicherweise nicht immer zutreffend. Ein ZIP-Archiv bleibt auch dann gültig, wenn Sie ihm beliebige Daten voranstellen. Daher ist es durchaus möglich, eine Datei zu erstellen, die gleichzeitig ein gültiges ZIP-Archiv mit unschuldigen Daten und einem schädlichen PHP-Skript ist. Es ist nicht einmal besonders schwer; Verketten Sie einfach den PHP-Code und die ZIP-Datei und stellen Sie (z. B. mithilfe von __halt_compiler()) sicher, dass PHP nicht versucht, die angehängten ZIP-Archivdaten zu analysieren.

Dieser Trick wird zu Recht verwendet, um selbstextrahierende ZIP-Dateien zu erstellen. Es ist jedoch durchaus möglich, andere versteckte Daten oder ausführbaren Code auf dieselbe Weise in eine ZIP-Datei einzufügen. Einige Programme lehnen es möglicherweise ab, solche geänderten ZIP-Dateien zu öffnen (in diesem Fall verstoßen sie jedoch technisch gegen die ZIP-Formatspezifikation), oder sie identifizieren die Datei standardmäßig als eine andere Datei als eine ZIP-Datei Datei in Code, der eine ZIP-Datei erwartet, wird es wahrscheinlich als eine akzeptiert.

Eine häufigere böswillige Verwendung solcher Tricks besteht darin, Exploit-Code in einem ZIP-basierten Container (z. B. einer JAR-Datei) als harmlos zu tarnen (z. B. ein GIF-Image wie im GIFAR- Exploit) Wird auch in der anderen Richtung verwendet, um z. B. einen naiven Datei-Upload-Filter zu umgehen, der das Hochladen von PHP-Skripten verbietet, aber ZIP-Dateien zulässt, ohne zu prüfen, ob die hochgeladene Datei möglicherweise beide gleichzeitig ist.

Ilmari Karonen
quelle
+1 für GIFAR, interessant, ein konkretes Beispiel für diesen Exploit in der Praxis zu kennen.
Caesay
11

Es gibt mindestens zwei wichtige Überlegungen, die Sie berücksichtigen sollten:

  1. Wenn diese Dateien auf Ihrer Website verbreitet werden, können Sie dafür verantwortlich gemacht werden, dass Ihre Website Malware enthält. In den wenigsten Fällen könnte Ihre Website für Malware gekennzeichnet sein. Wenn Sie sich dazu entschließen, Malware-Scanner-Warnungen zu ignorieren, sollten Sie zumindest den Uploader und mögliche Downloader darüber informieren, dass die Datei möglicherweise schädlich ist (wie dies bei aus dem Internet heruntergeladenen EXE-Dateien manchmal der Fall ist).
  2. Verarbeiten Sie diese Dateien anders als beim Malware-Scan? Die automatische Verarbeitung von Anhängen oder anderen derartigen Uploads ist immer potenziell gefährlich, da der Dateiinhalt alles Mögliche sein kann. Sie müssen die EXE-Datei nicht einmal ausführen, wenn Ihr Dienstprogramm für einen Exploit anfällig ist und die anscheinend ansprechende zip / exe schädliche Inhalte enthält, die auf Ihr Dienstprogramm abzielen. Ich würde nicht zulassen, dass mein Server etwas verarbeitet, bei dem das Scannen von Malware fehlschlägt.

Abhängig davon, was Ihr Server tut, kann die Datei möglicherweise schädlich für Ihren Server oder andere Benutzer sein. Da ich mit aus dem Internet heruntergeladenen EXE-Dateien ziemlich vorsichtig bin, würde ich sagen, dass mögliche Downloader die potenziellsten Benutzer sind, die hier einem Risiko ausgesetzt sind.


quelle
2

Sie können überprüfen, ob die Dateien auf Ihrem Linux-Server ausgeführt werden können, indem Sie sie einfach mit dem file FILENAME.exeBefehl überprüfen . Elf-Binärdateien (das unter Linux verwendete ausführbare Format) können mit einer .exeErweiterung benannt werden, um einen ahnungslosen Linux-Administrator zu verwirren. Daher ist es wahrscheinlich eine gute Idee, diese Prüfung durchzuführen, bevor Sie blindlings darauf vertrauen, dass diese Dateien nicht ausführbar sind.

Grovkin
quelle
2

Ich bin überrascht, dass niemand erwähnt hat, dass Daten für ein (fehlerhaftes) Programm schädlich sein können (oder werden können). Das ist die Basis der Unschärfe. Sie könnten beispielsweise eine JPEG-Datei (oder eine JPEG-ähnliche Datei) haben, die bei (bestimmten?) JPEG-Decodern einen Pufferüberlauf verursacht, der von einer Dienstverweigerung bis zur Ausführung von willkürlichem Code reicht. Hier geht es darum, ein vorhandenes Datenverarbeitungsprogramm zu untergraben. Keine Notwendigkeit, eine neue ausführbare Datei einzuspielen! Und dies ist der Grund, warum Sandboxing, Hygienisierung von Eingängen und Prinzipien mit den geringsten Rechten erforderlich sind.

In Ihrem Fall könnten Sie also eine ZIP-Datei haben, die Probleme mit (bestimmten?) ZIP-Dekodierungs-Engines verursacht. Die ZIP-Datei muss keine native ausführbare Datei enthalten, damit sie schädlich ist.

Allerdings arbeitet Ihr Scanner auf einer anderen, gröberen Ebene. Wenn die Art von Risiko, von dem ich spreche, in diesen Dateien vorhanden war, wurden Sie bereits getroffen, als Sie sie verarbeiteten :).

hmijail
quelle
1

Da ich die Dateien auf meinem Mac dekomprimieren kann, gehe ich davon aus, dass es sich um echte ZIP-Dateien handelt und nicht nur um umbenannte PHP-Dateien.

Es gab Angriffe, bei denen Daten eingebettet wurden und Dateien weiterhin als gültig angezeigt wurden. Auf einem falsch konfigurierten Server oder in einer falsch codierten App kann dies dazu führen, dass Code auf Ihrem Server ausgeführt wird.

Also auch damit vorsichtig.

Rubenvarela
quelle
0

Eine zusätzliche Prüfung, die Sie idealerweise durchführen sollten, ist die php finfo-Methode , um zu prüfen, ob die Dateien, die von den Benutzern hochgeladen werden, tatsächlich den von Ihnen zugelassenen entsprechen und nicht etwas, das die Benutzer umbenannt haben, nur um das System zu täuschen.

Kanuj Bhatnagar
quelle
-6

Entpackte .exe sind auch für Linux-Server harmlos.

aschfahl
quelle
23
Nicht unbedingt - .exeist nichts weiter als ein Teil des Dateinamens und kann auch als Name für eine ELF-Binärdatei gewählt werden.
Sven
Möglicherweise ist auch WINE installiert. Zugegeben, die meisten Malware-Programme, die auf Windows abzielen, funktionieren wahrscheinlich nicht unter WINE, aber das Risiko ist vorhanden. Im besten Fall sind entpackte .exes unter Linux zumeist harmlos.
Ray
@Ray Hängt von der Konfiguration ab. Wenn aus irgendeinem Grund Mono oder Wine installiert sind, ist binfmt_misc möglicherweise so konfiguriert, dass .exe tatsächlich ausführbar ist.
Rhymoid