Nella divulgazione popolare di Linux, viene presentato questo sistema operativo come il piú sicuro, talvolta immune ai virus. In realtà, la sicurezza non riguarda solo i virus, ma ingegnosi sfruttamenti di bug, spyware o in generale malware (categoria che include tutto).
È probabile che l’utente comune è già sufficientemente protetto dalle nuove versioni di Windows o di Linux (salvo comportamenti negligenti dovuti allo stesso utente).
Quello che mi chiedo è come si fa a gestire un codice lungo milioni di righe di codice. Una singola persona non può controllare (nemmeno semplicemente leggere) tutto. Quindi è necessario un esteso team di programmatori di cui devi aver fiducia: selezionare le abilità e anche lo stile (o quanto meno insegnarlo). Ognuno si occuperà di pochi moduli di questo grande progetto, quindi deve essere estremamente modulare.
Compilato tutto il programma, la sicurezza è data, non solo dalle abilità dei programmatori scelti, ma dall’utilizzo degli utenti e dalla segnalazione di bug. È solo empiricamente che si può maturare l’affidabilità di un “codice gigante”. Naturalmente non basta che il s.o. sia molto diffuso e molto utilizzato, per essere considerato sicuro, serve anche la qualità del team e la prontezza di intervento nel risolvere i bug.
Non credo che contorti sistemi di sicurezza (es. operazioni random sugli indirizzi di memoria per prevenire certe categorie di attacchi) sia auspicabile. Dipende anche qual è il livello di sicurezza che serve, ma raramente c’è un bisogno cosí elevato. L’approccio empirico, sarà relativamente lento, sfruttabile nel frattempo, ma alla fine porta alla sicurezza mantenendo comprensibilità e pulizia delle operazioni.
Ritengo che non è in crisi il modello open source, al massimo non è adatto in contesti dove serve la massima sicurezza e non puoi basarti sulla fiducia in un codice molto grande e complesso. In tali casi, servono semplici dispositivi basati su complesse password o possibilmente non connettersi affato su Internet (magari si passano i dati con una chiavetta (fisicamente) dai PC connessi a quelli che vanno super protetti). Insomma, dove la sicurezza deve essere massima servono strategie diverse, non tentare imprese impossibili sul codice dei sistemi operativi.