Malware Classification - Mappa Globale#
Concetto base#
Il malware (malicious software) e' qualsiasi codice creato per compromettere, danneggiare o accedere senza autorizzazione a sistemi e dati. La classificazione si basa su due assi distinti: il propagation method (come si diffonde) e il payload (cosa fa una volta dentro). Conoscere la differenza e' fondamentale per riconoscere gli indicatori di attacco e scegliere la risposta corretta.


Virus - richiede un host#
Un virus e' codice che si aggancia a un file eseguibile host e non puo' girare autonomamente: ha bisogno che l'utente esegua il file infetto per attivarsi e replicarsi.
Distinzione chiave: virus = ha bisogno di un host file. Il payload arriva dopo la replica massima, non subito.
| Tipo | Caratteristica discriminante | Keyword esame |
|---|---|---|
| Polymorphic | Cambia firma, cifra payload, struttura resta | "cambia codice ad ogni infezione" |
| Metamorphic | Riscrive l'intero corpo del virus | "riscrittura totale del codice" |
| Boot Sector | Si installa nel MBR, parte prima dell'OS | "infetta il processo di avvio" |
| Macro | Dentro documenti Office | "allegato Office con macro" |
| Hoax | NON e' malware: avviso falso che spinge l'utente a fare danni | "avviso di infezione inesistente" |
Worm - autonomo in rete#
Un worm e' malware self-replicating che si propaga senza host file e senza interazione utente: sfrutta vulnerabilita' nei servizi esposti (SMB, SQL, RDP) e si diffonde autonomamente da sistema a sistema.

WannaCry kill chain:
- Scanner di rete: cerca porta 445 (SMB) aperta
- EternalBlue (MS17-010): buffer overflow nel kernel Windows via SMBv1
- DoublePulsar: backdoor kernel-level invisibile all'AV
- Payload: cifra file + genera nuovi IP da scansionare
- Ransom note: $300 in Bitcoin con countdown 72h
Il kill switch era intenzionale: WannaCry controllava se un dominio fosse registrato prima di attivarsi (meccanismo anti-sandbox). Marcus Hutchins lo registro' per ~$10 e fermò la diffusione globale.
Trojan - inganno senza replica#
Un Trojan e' malware che si maschera da software legittimo e utile per convincere l'utente a installarlo volontariamente. A differenza del virus, non si replica autonomamente: la forza e' nell'inganno iniziale.

Backdoor C2 reverse beacon: il malware fa una connessione uscente verso il server dell'attaccante. Il firewall non la blocca perche' sembra traffico normale. L'attaccante non deve aprire porte: e' il malware che "telefona a casa".
RAT - controllo remoto live#
Un RAT (Remote Access Trojan) e' un sottoinsieme del Trojan il cui payload e' il controllo remoto interattivo completo: l'attaccante vede lo schermo, attiva webcam e microfono, accede ai file e usa le credenziali di rete della vittima come se fosse seduto davanti alla macchina.

Backdoor vs RAT: backdoor = porta lasciata aperta. RAT = l'attaccante si siede alla scrivania della vittima e controlla tutto in tempo reale.
Rootkit - kernel-level hiding#
Un rootkit e' malware che opera a livello kernel per ottenere accesso amministrativo e nascondere la propria presenza: usa hooking per intercettare le chiamate al sistema operativo, rendendo invisibili i propri processi anche all'antivirus.

Registry = database gerarchico di Windows (come /etc/ su Linux ma centralizzato). I rootkit modificano HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run per persistenza a ogni boot.
Come si rileva (difficile): scansione da media esterno pre-boot (rootkit non ancora caricato), analisi RAM, File Integrity Monitor (FIM). Un "tutto ok" dall'AV NON e' sufficiente.
Spyware, Adware e PUP#
Lo spyware e' malware che monitora silenziosamente l'attivita' utente e invia le informazioni raccolte a terzi senza consenso. L'adware mostra pubblicita' indesiderate. I PUP (Potentially Unwanted Program) sono borderline: tecnicamente "consensuali" ma con consenso ottenuto in modo ingannevole.

Drive-by download: il malware si installa automaticamente visitando un sito web compromesso, senza click. Non e' un tipo di malware - e' un canale di consegna (come phishing email o USB). Il sito sfrutta una vuln nel browser o plugin.
Tabella comparativa#
Il modo piu' rapido per distinguere i tipi di malware in una domanda d'esame:
| Tipo | Si replica | Richiede utente | Nasconde da OS | Payload principale | Keyword esame |
|---|---|---|---|---|---|
| Virus | Si (file) | Si | No | Danno locale, replica | "attaches to host", "requires execution" |
| Worm | Si (rete) | No | No | Spread + payload | "spreads automatically", "no user interaction" |
| Trojan | No | Si | No | Backdoor, C2 | "disguised as legitimate", "appears useful" |
| RAT | No | Si | No | Controllo remoto live | "remote control", "webcam", "keystrokes live" |
| Rootkit | No | No1 | Si | Persistenza invisibile | "hidden processes", "not visible to OS" |
| Spyware | No | No | No | Data harvesting | "collects data silently", "sent to third party" |
| Ransomware | Varia | No2 | No | Cifratura + estorsione | "files encrypted", "ransom demand" |
| Logic Bomb | No | No | No | Trigger su evento | "dormant until", "fires on condition" |
[Dev parallel] Un worm trova una porta SMB aperta e si copia esattamente come una dipendenza
npmmal configurata che sfrutta un path traversal per iniettarsi in produzione: zero click dall'utente, automazione totale. Un Trojan invece e' una dipendenza npm malevola che sembra legittima (npm install cool-lib) ma inpostinstalllancia uno script che apre un reverse shell. Il rootkit e' invece come un monkeypatching del kernel Node fatto da codice iniettato:require.loadintercettato, ogni chiamata aprocess.list()restituisce una lista ripulita.


