Risponderò a questa domanda da una prospettiva piuttosto teorica.
"I've heard that websites that download malicious data onto the user's
computer without their consent do exist, but is this possible on an
iMac[...]?"
Sì. Come altri hanno sottolineato, questo è indipendente dal sistema operativo.
Una pagina web contiene o si riferisce a - e quindi fa caricare il browser - dati in vari formati. Come ha spiegato Serge, la prima cosa caricata è un semplice HTML. Potrebbe avere estensioni moderne come i fogli di stile. L'HTML può incorporare o fare riferimento a supporti di vario tipo come immagini, file audio, video, script o animazioni flash che possono essere scaricati e aperti (cioè decodificati e quindi riprodotti o visualizzati) dal browser senza alcuna interazione dell'utente oltre all'apertura della pagina originale .
Il problema è che in linea di principio qualsiasi decodificatore per un formato di dati, incluso HTML semplice, può avere bug che possono essere sfruttati. (1) Questo include dati che sono normalmente totalmente "passivi" come immagini (per un esempio con immagini JPEG vedi questa sicurezza Microsoft bollettino dal 2004 ). Un esempio banale di 20 anni fa era un file GIF (formalmente corretto) che si espandeva in un'enorme bitmap. Un tentativo di visualizzarlo in un browser del visualizzatore ha semplicemente fatto crashare il computer, il che è un attacco di tipo denial of service. Per un exploit, i dati presentati nella pagina sarebbero creati appositamente per produrre un comportamento scorretto del decodificatore specifico che alla fine consente all'autore dell'attacco di inserire codice eseguibile nella memoria del computer che verrà poi eseguito. Il codice originale può essere piccolo, ad esempio un salto a una routine del sistema operativo che inizia una shell.
L'ovvia strategia di mitigazione consiste nel disabilitare quanti più formati di dati possibile nel browser. Nessun video, nessun suono, nessuna immagine, nessuno script.
Può valere la pena ripetere il mantra del blogger tedesco e esperto di sicurezza, Felix von Leitner. È irremovibile che gli scanner di virus offrono solo protezione falsa (li chiama olio di serpente). Una ragione è che non sono mai perfetti e quindi necessitano comunque di un utente responsabile. La seconda ragione, rilevante qui, è che lo stesso virus scanner è un'enorme superficie di attacco! Pensaci. I moderni scanner aprono e analizzano una miriade di formati di file - lo stesso processo che abbiamo stabilito come il target di attacco principale. Felix è stato recentemente collegato a un progetto di Tavis Ormandy. Ha scritto un framework per caricare ed eseguire DLL Windows sotto Linux. La sua motivazione, come scrive nel README, è stato quello di testare il motore principale di sicurezza di MS:
MsMpEng is the Malware Protection service that is enabled by default
on Windows 8, 8.1, 10, Windows Server 2016, and so on. Additionally,
Microsoft Security Essentials, System Centre Endpoint Protection and
various other Microsoft security products share the same core engine.
The core component of MsMpEng responsible for scanning and analysis is
called mpengine. Mpengine is a vast and complex attack surface,
comprising of handlers for dozens of esoteric archive formats,
executable packers, full system emulators for various architectures
and interpreters for various languages. All of this code is accessible
to remote attackers.
Il motivo per cui tieni presente che anche se il tuo browser gestisce tutto bene, il tuo programma antivirus può, ironicamente, tradirti, perché apre tutti i file per te.
(1) leethax0r1337fawkes ha un punto sebbene i
bug noti di questo tipo siano rari e vengano risolti al più presto, per ovvi motivi.