Frage Sind gepackte EXE-Dateien für Linux-Server unschädlich?


Ich habe einen Malware-Scanner auf meiner Website ausgeführt und eine Reihe gezippter EXE-Dateien als potenzielle Risikodateien markiert (diese Dateien wurden von Benutzern hochgeladen). Da ich die Dateien auf meinem Mac entpacken kann, nehme ich an, dass es sich um echte ZIP-Dateien handelt und nicht einfach um umbenannte PHP-Dateien.

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


49
2017-12-22 08:49


Ursprung


Klingt wie ein Müll-Malware-Scanner. - Nick T
Sie wissen, dass Sie testen können, ob sie im ZIP-Format vorliegen file foo.zipoder sogar testen, ob sie gültig sind 7z t foo.zip um es zu testen (d. h. dekomprimieren und verifizieren die CRC-Prüfsummen, ohne zu lokalen Dateien auf der Platte zu extrahieren). (7z verwendet Syntax ähnlich wie tar.) Oder unzip -l foo.zip um den Inhalt aufzulisten. Wie auch immer, ich fand es einfach komisch, dass Sie darüber reden, die Dateien auf einem anderen Computer zu überprüfen, wenn Sie sie einfach auf dem Server hätten überprüfen können. - Peter Cordes
Welche Art von Website hosten Sie? Es scheint keine gute Idee zu sein, von Nutzern eingereichte Inhalte und Ihren nach vorne gerichteten Webserver auf derselben Box zu platzieren. - oldmud0
@NickT Selbst extrahierende ZIP-Dateien könnten zusätzlichen schädlichen Code an den ausführbaren Teil angehängt haben. - chrylis


Antworten:


Wenn sie tatsächlich gezippte Windows-EXE-Dateien sind, sollten sie für Ihr Linux-System unschädlich sein, es sei denn, Sie haben etwas wie Wine an Ort und Stelle, das versuchen könnte, sie auszuführen.

Wenn sie sich jedoch in Ihrem Webpfad befinden, könnten sie Malware sein und eine groß Risiko für die Besucher Ihrer Website (und Sie wiederum, wenn Sie als Malware-Quelle markiert sind und Benutzer beim Besuch Ihrer Website hässliche Warnungen erhalten).


85
2017-12-22 08:55



Ich frage mich, ob Hosting solcher "Benutzer" hochgeladen Müll kann dazu führen, Google Ihre Website als "Diese Website möglicherweise gehackt", oder Auslöser Chrome eine riesige rote Warnseite zu brandmarken. "Harmlos" könnte dann ein bisschen irreführend sein. - Nick T
@NickT: Das kann es ganz sicher, und darauf habe ich mich in meinem zweiten Absatz bezogen. - Sven♦
Theoretisch könnte jemand auch missgebildet sein .zip Dateien, die versuchen, Fehler in bestimmten unzip-Implementierungen zu beheben. - jamesdlin
Mono wird wahrscheinlich auf einem Server als Wine installiert und kann CLR-EXE-Dateien ausführen. - Rhymoid


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

Während du bist wahrscheinlich In diesem Fall könnte Ihre Annahme nicht immer stimmen. Ein ZIP-Archiv bleibt gültig, auch wenn Sie ihm beliebige Daten vorgebenEs ist also durchaus möglich, eine Datei zu erstellen, die gleichzeitig ein gültiges ZIP-Archiv mit unschuldigen Daten und auch ein bösartiges PHP-Skript ist. Es ist nicht einmal besonders schwer; Einfach den PHP-Code und die ZIP-Datei verketten und sicherstellen (z. B. mit __halt_compiler()) dass PHP nicht versucht, die angehängten ZIP-Archivdaten zu parsen.

Dieser Trick wird zu Recht verwendet, um selbstextrahierende ZIP-Dateien zu erstellen, aber es ist durchaus möglich, alle anderen versteckten Daten oder ausführbaren Code auf dieselbe Weise in eine ZIP-Datei zu kopieren. Einige Programme weigern sich möglicherweise, solche modifizierten ZIP-Dateien zu öffnen (aber wenn dies der Fall ist, verstoßen sie technisch gegen die ZIP-Formatspezifikation), oder sie können die Datei standardmäßig als etwas anderes als eine ZIP-Datei identifizieren Datei in Code, der eine ZIP-Datei erwartet, wird sie wahrscheinlich als eine akzeptiert.

Eine häufigere bösartige Verwendung solcher Tricks besteht darin, Exploit-Code in einem ZIP-basierten Container (z. B. einer JAR-Datei) als etwas Harmloses (wie ein GIF-Bild, wie in der GIFAR nutzen), aber es gibt keinen Grund, warum es nicht auch in die andere Richtung verwendet werden könnte, z. um einen naiven Datei-Upload-Filter zu umgehen, der das Hochladen von PHP-Skripten verbietet, aber ZIP-Dateien erlaubt, ohne zu prüfen, ob die hochgeladene Datei gleichzeitig sein könnte.


62
2017-12-22 15:00



+1 für GIFAR, interessant zu wissen über ein bestimmtes Beispiel dieses Exploits in der Praxis. - caesay


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

  1. Wenn diese Dateien auf Ihrer Website veröffentlicht werden, können Sie dafür verantwortlich gemacht werden, wenn jemand Malware von Ihrer Website erhält. Zumindest könnte Ihre Website für Malware markiert werden. Wenn Sie sich dazu entschließen, Malware-Scanner-Warnungen zu ignorieren, sollten Sie dem Uploader und möglichen Downloadern zumindest mitteilen, dass die Datei möglicherweise schädlich ist (wie zum Beispiel EXEs, die aus dem Internet heruntergeladen werden).
  2. Nehmen Sie an diesen Dateien eine andere Verarbeitung als den Malware-Scan vor? Die automatische Verarbeitung von Anhängen oder anderen Uploads ist immer potentiell gefährlich, da der Dateiinhalt alles sein kann. Sie müssen nicht einmal die EXE-Datei ausführen, wenn Ihre Utility-Software für einen Exploit anfällig ist und die scheinbar nette zip / exe schädlichen Inhalt enthält, der auf Ihr Dienstprogramm abzielt. Ich würde meinen Server nichts verarbeiten lassen, was beim Scannen von Malware scheitert.

Also, abhängig davon, was Ihr Server tut, könnte die Datei möglicherweise schädlich für Ihren Server oder andere Benutzer sein. Da ich EXEs, die aus dem Internet heruntergeladen werden, ziemlich misstrauisch finde, würde ich sagen, dass mögliche Downloader die potentiell am meisten gefährdeten Benutzer sind.


11
2017-12-23 09:31





Da ich die Dateien auf meinem Mac entpacken kann, nehme ich an, dass es sich um echte ZIP-Dateien handelt und nicht einfach um umbenannte PHP-Dateien.

Es gab Angriffe, die Daten und noch vorhandene Dateien als gültig einbetten. In einem falsch konfigurierten Server oder in einer falsch codierten Anwendung könnten diese dazu führen, dass Code auf Ihrem Server ausgeführt wird.

Also, sei vorsichtig damit.


2
2017-12-24 03:03





Sie können überprüfen, ob die Dateien auf Ihrem Linux-Server lauffähig sind, indem Sie sie einfach mit aktivieren file FILENAME.exe Befehl. Elf Binaries (das unter Linux verwendete ausführbare Format) können mit benannt werden .exe Erweiterung, um einen ahnungslosen Linux-Administrator zu verwirren, daher ist es wahrscheinlich eine gute Idee, diese Prüfung durchzuführen, bevor blindlings darauf vertraut wird, dass diese Dateien nicht ausführbar sind.


2
2017-12-25 00:17





Ich bin überrascht, dass niemand erwähnt hat, dass irgendwelche Daten für irgendein (fehlerhaftes) Programm schädlich sein können (oder gemacht werden können). Das ist die Grundlage von Fuzzying. Zum Beispiel könnten Sie eine JPEG (oder JPEG-ähnliche) Datei haben, die einen Pufferüberlauf bei (spezifischen?) JPEG-Dekodierern verursacht, was von einem Denial-of-Service zu einer willkürlichen Codeausführung führt. Hier geht es darum, ein bestehendes Datenverarbeitungsprogramm zu unterlaufen; Keine Notwendigkeit, eine neue ausführbare Datei einzubringen! Aus diesem Grund werden Sandboxing, Eingabebereinigung und Least-Privilege-Prinzipien benötigt.

In Ihrem Fall könnten Sie also eine ZIP-Datei haben, die Probleme bei (spezifischen?) ZIP-Dekodierungs-Engines verursacht. Es ist nicht erforderlich, dass die ZIP-Datei eine native ausführbare Datei enthält, damit sie schädlich ist.

Allerdings arbeitet Ihr Scanner auf einer anderen, gröberen Ebene. Wenn die Art von Risiko, über das ich rede, in diesen Dateien existierte, warst du bereits in dem Moment betroffen, in dem du sie verarbeitet hast :).


2
2017-12-25 22:44





Eine zusätzliche Überprüfung, die Sie idealerweise vornehmen sollten, ist die PHP Finfo Methode um zu überprüfen, ob die Dateien, die von den Benutzern hochgeladen werden, tatsächlich sind, was Sie erlaubt haben, und nicht, dass die Benutzer die Dateien umbenannt haben, nur um das System zu täuschen.


0
2017-12-26 04:57





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


-6
2017-12-22 16:09



Nicht unbedingt so - .exe ist nicht mehr als ein Teil des Dateinamens und dies könnte auch als Name für eine ELF-Binärdatei gewählt werden. - Sven♦
Außerdem könnte WINE installiert sein. Zugegeben, die meisten Windows-Targeting-Malware würde unter WINE wahrscheinlich nicht richtig funktionieren, aber das Risiko ist vorhanden. Im besten Fall sind entpackte .exes unter Linux meist harmlos. - Ray
@Ray Hängt von der Konfiguration ab. Wenn aus irgendeinem Grund Mono oder Wine installiert sind, dann binfmt_misc möglicherweise so konfiguriert, dass .exe tatsächlich ausführbar ist. - Rhymoid