Il malware di Windows può danneggiare un computer Linux quando viene eseguito con Wine?

25

Sono un utente Linux (Ubuntu). A volte, devo usare Wine per eseguire gli eseguibili di Windows.

Vorrei sapere se il malware di Windows (virus, trojan, worm, ...), ovvero il malware che non era destinato a causare danni durante l'esecuzione con Wine su Linux, può danneggiare il mio sistema Linux. Io uso un'installazione standard di Wine. Il vino non viene mai eseguito come superutente.

Suppongo che potrebbe leggere / scrivere / eliminare file dalla mia cartella e connettersi a Internet.

Penso, ma non sono abbastanza sicuro, che non possa installare software. Potrebbe installare plugin dannosi (Firefox)?

    
posta Martin Thoma 10.07.2011 - 13:49
fonte

3 risposte

16

Hai ragione sull'accesso al file system e a Internet, soprattutto perché la cartella home è mappata con i permessi di scrittura per impostazione predefinita. Ciò significa che può pasticciare con i tuoi documenti , ad esempio aggiungendo macro ai documenti Open Office, eliminando i tuoi file mp3 o inviando file interessanti a qualcuno su Internet.

E sì, può scrivere sul tuo profilo Firefox e installare un componente aggiuntivo .

Connessione a Internet significa che può recuperare i comandi da un server C & C per trasformare il tuo computer in un drone.

Suppongo che alcuni malware non riescano a trovare quelle posizioni al di fuori delle cartelle standard di Windows. Ma altri eseguono solo la scansione di tutte le unità per luoghi interessanti.

    
risposta data 10.07.2011 - 15:14
fonte
15

In teoria, sì.

In primo luogo, un po 'di background su Wine. Wine fornisce un loader eseguibile per l'esecuzione di file eseguibili di Windows. Anche installato o utilizzato facoltativamente è un gestore binfmt descritto qui , che è come il kernel di Linux deduce cosa loader da eseguire - ad esempio, da qualche parte nel kernel è un gestore binfmt per i file ELF per Linux. Le chiamate di funzione da questi eseguibili vengono quindi tradotte dal runtime Wine nelle loro equivalenti chiamate di sistema Linux. Le Domande frequenti sul vino riguardano la domanda sul vino come emulatore .

Quindi, tornando alla tua domanda - il malware di Windows potrebbe infettare una scatola Linux? Ho detto teoricamente sì - ecco le varie minacce che affronti:

  • Bug nei gestori di formato. Se un eseguibile appositamente predisposto fa sì che Wine carichi in modo errato il file PE, potresti essere in grado di sfruttarlo.
  • Bug nella traduzione delle funzioni di Wine. È come dire "bug nell'API di Windows", se lo desideri - se alcune funzioni tradotte in Wine sono suscettibili di buffer overflow ecc, allora possono essere sfruttate.
  • Il fatto che le chiamate di funzione sono tradotte. Questo fatto di per sé significa che possono verificarsi attività dannose.
  • La configurazione e i limiti dell'installazione di Wine. Quali file system hai mappato? L'eseguibile può sfuggire a questo "chroot"?

C'è una condizione fondamentale qui - essere consapevoli o pianificare per infettare il vino. Se il malware viene scritto con l'aspettativa che possa essere eseguito su Wine, allora può iniziare a utilizzare exploit specifici di Wine, probabilmente rilevando che Z: è mappato a / ed esegue azioni appropriate. I punti precedenti nella mia lista sopra sono i meno probabili, ma anche i più dannosi se si verificano.

Tuttavia, la maggior parte dei malware non è scritta per Wine. Si può pensare a Wine come a un target di compilazione separato, dal momento che il modo in cui implementa l'API di Windows è diverso da come Windows implementa l'API. La maggior parte dei malware è puntata direttamente su Windows, quindi mi aspetterei che il danno si verifichi solo con l'installazione di "Windows". Infatti alcuni malware potrebbero non funzionare, dove gli sviluppatori di Wine hanno assunto un uso rigoroso di una funzione API e dove Windows consente qualcosa di diverso.

Quindi, per farla breve, Wine aumenta la superficie di attacco di una quantità considerevole, consentendo di eseguire programmi Windows arbitrari. Le stesse regole generali si applicano a Wine valide per qualsiasi software:

  • Ne hai bisogno? In caso contrario, non installarlo.
  • È aggiornato? In caso contrario, aggiornalo.
  • Stai attento a ciò che usi. Non è un sostituto per essere attento a ciò che scarichi, acceda ed esegui.
risposta data 10.07.2011 - 15:15
fonte
3

Sono passati molto tempo da quando ho fatto eccezioni strutturate in C (specifico MS ma emulato su Wine), ma la sintassi è vicina a questo. Qualcuno che lo utilizza potrebbe divertirsi molto anche se Z non è mappato.

bool isLinux = 0;
__try {
    asm {
        mov AL, 172
        int 80h
    }
    isLinux = 1;
} __except {}
if (isLinux)
   asm {
      /* Linux shellcode here */
   }
    
risposta data 24.07.2014 - 20:11
fonte