Come imparare a creare virus per computer? Come posso ucciderli

Questo era originariamente in un commento a un'altra risposta, ma penso che sarebbe più adatto come risposta di primo livello.

Un *virus* per computer è un concetto molto semplice. Per scrivere un virus informatico, si può semplicemente scrivere un programma che copi se stesso su tutti i supporti disponibili (cioè tutte le unità di rete conosciute, unità flash, hard disk esterni, ecc). Questo è tutto. Questo è un virus. Un virus significa semplicemente "un programma che si propaga ad altri computer attraverso una combinazione di operazioni automatiche e manuali". Quindi, finché il programma copia se stesso in altri computer, è un virus. Non ha bisogno di eseguire se stesso sugli altri computer, poiché un virus si diffonde attraverso l'intervento manuale. Se la diffusione del programma è completamente automatizzata, e non richiede alcuna azione umana, non è un virus ma piuttosto un worm.

Ma forse l'interrogante intendeva invece "come posso costruire un malware?" a cui la risposta sarebbe scrivere un programma che mostra un popup ogni 10 minuti. Questo è fastidioso, e l'utente non vuole che venga eseguito, quindi è malware.

Più probabilmente intendeva "come posso costruire un malware all'avanguardia che sia effettivamente interessante dal punto di vista della sicurezza?" a cui la risposta più realistica è "Non puoi". Il malware moderno è estremamente complesso, ed è costruito da più persone specializzate. Qualcuno lavora all'xdev (sviluppo dell'exploit) per trovare e sfruttare una vulnerabilità per far girare uno shellcode sul computer della vittima e distribuire un dropper. Qualcun altro lavora sul dropper, che telefona al computer dell'attaccante dal computer della vittima e scarica il carico utile. Qualcun altro lavora sul packer per mantenere il payload offuscato fino a quando non è abbastanza sicuro che non venga eseguito in una sandbox anti-virus. Qualcun altro lavora sul payload stesso, che effettivamente fa le cose interessanti. Qualcun altro può lavorare su un rootkit per nascondere il payload una volta che è stato distribuito sul sistema della vittima. La maggior parte di questi passaggi potrebbe essere saltata in alcune circostanze, per esempio l'exploit e lo shellcode possono essere saltati se riesco a convincere l'utente a scaricare ed eseguire direttamente il malware. Il che non è molto difficile con la maggior parte degli utenti (basta promettere loro emoticon o porno gratis)

La maggior parte del malware moderno è una compilazione di molti componenti di molti autori. Alcuni di essi sono stati reingegnerizzati da altri malware, altri sono stati scritti su misura, altri ancora sono stati acquistati da un'azienda. In generale, una persona non scrive più malware interessanti. È un progetto troppo grande, che richiede troppe competenze, e francamente, fare tutto da zero è uno spreco di sforzi, perché significherebbe reinventare tante ruote.

Per quanto riguarda l'uccisione del malware? Non si fa. Se sai che il tuo computer è stato infettato, fai il backup di tutti i tuoi dati, cancella il disco rigido, installa un nuovo sistema operativo, e un paio di mesi dopo, esegui tutti i dati di backup attraverso diversi anti-virus utilizzando un sistema operativo forense come Kali (www.kali.org -- inoltre, vedi www.virustotal.com per una buona suite di scanner) prima di caricarli nuovamente nel tuo normale sistema operativo. Se ne avete bisogno prima di allora, accedete solo da un sistema operativo live. Anche dopo tutto questo, potreste essere ancora infetti, ma se lo siete, probabilmente non lo saprete mai e l'unica soluzione sicura sarebbe comunque quella di sostituire il computer.

Molte persone vi diranno che è un consiglio terribile, che è troppo rischioso e che io sono solo paranoico. Beh, io sono un analista di malware (solo per hobby, non professionista) e dal mio punto di vista, questo è l'unico consiglio solido da seguire dopo aver saputo di essere stati infettati. Fare qualcosa di meno richiede di fidarsi del fatto che il malware che avete preso non era davvero molto maligno, e questa vi sembra una mossa intelligente? Soprattutto perché, se ci pensate, tutto ciò che ottenete che non è molto pericoloso sta probabilmente andando a scaricare un sacco di roba che è molto pericolosa, perché le persone che fanno la roba veramente pericolosa sono disposte a pagare tutti gli altri per distribuire i loro payloads per loro.

Come nota finale, se volete davvero imparare come il malware è fatto e come funziona, vi consiglio di imparare il reverse engineering del software. Imparerete una *torta* di malware in questo modo, anche se non sapete già programmare. Imparerete anche una *torta* di informazioni sui computer in generale. È una buona cosa da imparare in qualsiasi circostanza. Divertitevi! 🙂