Sie haben Recht mit dem Zugriff auf das Dateisystem und das Internet, insbesondere weil der Home-Ordner standardmäßig mit Schreibrechten zugeordnet ist. Dies impliziert, dass es Ihre Dokumente durcheinander bringen kann auch, zum Beispiel das Hinzufügen von Makros zu Open Office-Dokumenten, das Löschen Ihrer MP3-Dateien oder das Versenden interessanter Dateien an jemanden im Internet.
Und ja, es kann in Ihr Firefox-Profil schreiben und ein Add-on installieren .
Eine Verbindung zum Internet bedeutet, dass es Befehle von einem C&C-Server abrufen kann um Ihren Computer in eine Drohne zu verwandeln.
Ich vermute, einige Malware wird diese Speicherorte außerhalb der Standard-Windows-Ordner nicht finden. Aber andere werden nur alle Laufwerke scannen für interessante Orte.
Theoretisch ja.
Zunächst ein wenig Hintergrundwissen zu Wine. Wine bietet einen ausführbaren Lader zum Ausführen von ausführbaren Windows-Dateien. Ebenfalls installiert oder optional verwendet wird ein hier beschriebener binfmt-Handler, aus dem der Linux-Kernel ableitet, welcher Loader ausgeführt werden soll - zum Beispiel ist irgendwo in den Kernel ein binfmt-Handler für ELF-Dateien für Linux eingebaut. Funktionsaufrufe von diesen ausführbaren Dateien werden dann von der Wine-Laufzeitumgebung in ihre entsprechenden Linux-Systemaufrufe übersetzt. Die Wine FAQ befasst sich mit der Frage, ob Wine ein Emulator ist.
Also zurück zu Ihrer Frage – könnte Windows-Malware eine Linux-Box infizieren? Ich sagte theoretisch ja – hier sind die verschiedenen Bedrohungen, denen Sie gegenüberstehen:
- Fehler in den Format-Handlern. Wenn eine speziell gestaltete ausführbare Datei dazu führt, dass Wine die PE-Datei falsch lädt, können Sie sie möglicherweise ausnutzen.
- Fehler in der Funktionsübersetzung von Wine. Das ist dasselbe wie "Fehler in der Windows-API", wenn Sie so wollen - wenn bestimmte in Wine übersetzte Funktionen anfällig für Pufferüberläufe usw. sind, dann können sie ausgenutzt werden.
- Die Tatsache, dass Funktionsaufrufe übersetzt werden. Allein diese Tatsache bedeutet, dass böswillige Aktivitäten stattfinden können.
- Das Setup und die Einschränkungen der Wine-Installation. Welche Dateisysteme hast du gemappt? Kann die ausführbare Datei diesem "chroot" entkommen?
Hier gibt es eine wichtige Bedingung – sich bewusst zu sein oder zu planen, Wine zu infizieren. Wenn Malware mit der Erwartung geschrieben wird, dass sie auf Wine ausgeführt werden kann, kann sie anfangen, Wine-spezifische Exploits zu verwenden, möglicherweise erkennen, dass Z:auf / abgebildet ist, und entsprechende Aktionen ausführen. Die früheren Punkte in meiner obigen Liste sind am unwahrscheinlichsten, aber auch am schädlichsten, wenn sie auftreten.
Die meiste Malware wurde jedoch nicht für Wine geschrieben. Sie können sich Wine fast als separates Build-Ziel vorstellen, da die Implementierung der Windows-API anders ist als die Implementierung der API durch Windows. Die meiste Malware zielt direkt auf Windows ab, daher würde ich erwarten, dass der Schaden nur bei der „Windows“-Installation auftritt. In der Tat wird manche Malware möglicherweise nicht ausgeführt, wenn die Wine-Entwickler davon ausgegangen sind, dass eine API-Funktion strikt verwendet wird und Windows etwas anderes zulässt.
Um es kurz zu machen, Wine vergrößert Ihre Angriffsfläche um einen beträchtlichen Betrag, indem es Ihnen erlaubt, beliebige Windows-Programme auszuführen. Für Wine gelten die gleichen allgemeinen Regeln wie für jede Software:
- Brauchen Sie es? Wenn nicht, installieren Sie es nicht.
- Ist es aktuell? Wenn nicht, aktualisieren Sie es.
- Seien Sie vorsichtig, was Sie damit fahren. Es ist kein Ersatz dafür, sorgfältig darauf zu achten, was Sie herunterladen, darauf zugreifen und was Sie ausführen.
Es ist lange her, dass ich C-strukturierte Ausnahmen gemacht habe (MS-spezifisch, aber auf Wine emuliert), aber die Syntax kommt dieser nahe. Jemand, der dies verwendet, könnte viel Spaß haben, auch wenn Z nicht zugeordnet ist.
bool isLinux = 0;
__try {
asm {
mov AL, 172
int 80h
}
isLinux = 1;
} __except {}
if (isLinux)
asm {
/* Linux shellcode here */
}