Alessandro Bottoni

Marzo 24, 2009

Come creare un virus per Linux in 5 facili mosse (forse)

Archiviato in: Linux, sicurezza, windows — alessandrobottoni @ 11:53 pm
Tags: ,

Se siete abbastanza fanatici da seguire l’annosa questione Windows/Linux con la dovuta attenzione, avrete sicuramente già letto questo interessante articolo di Geekzone:

How to write a Linux virus in 5 easy steps

Siamo di fronte alla tanto attesa (e sperata?) fine dell’invulnerabilità di Linux? Vediamo.

Una morte annunciata (un po’ troppo in anticipo ed un po’ troppo spesso)

Leggete questo articolo:

Virus: è giunta l’ora Linux

Convincente, non è vero?

Peccato però che questo articolo sia del 2001 (duemilauno, cioè otto anni fa)! Sono passati otto anni, otto, e siamo ancora qui. Windows e le sue applicazioni continuano ad affondare sotto i colpi di Conficker e noi utenti Linux (e Unix in generale) continuamo a ridere sotto i baffi.

Volete qualche altro esempio? Questo articolo di Punto Informatico, altrettanto allarmistico, è del 2005 (duemilacinque, cioè quattro anni fa):

Virus, Linux il prossimo bersaglio?

Più in generale, la ricerca di “linux virus” su Google fornisce la bellezza di 4.950.000 risultati (quattro milioni novecento cinquantamila), il più “antico” dei quali è del 1996 (quattro anni dopo la nascita di Linux).

La prima volta che io, personalmente, ho sentito parlare di virus per Linux è stato nel 1995, poco dopo il rilascio di XFree86 per Linux. Qualcuno, su una mailing list sosteneva che l’arrivo dell’interfaccia grafica avrebbe aperto la strada ai virus che erano stati sviluppati per motivi di studio allo Xerox PARC su Workstation Unix SVR4 di AT&T, cioè il famoso “giochino” “Crabs”, recensito a suo tempo da Scientic American.

Sto ancora aspettando.

(Alcuni di questi articoli erano stati così convincenti che nel 2000 io stesso ho cominciato a chiedere in giro se esistevano o sarebbero stati sviluppati degli antivirus per Linux. Anche gli “esperti” a volte si fanno condizionare…)

Tentativi andati a vuoto

Leggete questa scheda:

Linux.Simile

Si, avete letto bene: questa è proprio la scheda descrittiva di un virus per Linux. Un virus vero, reale, rilasciato “in the wild”, rintracciato e descritto da Symantec (che è uno dei principali punti di riferimento mondiali in fatto di virus).

Infatti, esistono i virus per Linux. Finora ne sono già stati sviluppati circa un migliaio. Potete farvi un’idea della situazione corrente leggendo questa pagina della Wikipedia Americana:

Linux malware

Quindi NON È AFFATTO VERO CHE LINUX NON È COLPITO DAI VIRUS SOLO PERCHÈ I VIRUS WRITER NON LO CONSIDERANO APPETIBILE E NON SCRIVONO I VIRUS!!!!!!!!!!!!!!

Non fatemi mai più sentire una cazzata del genere. Oltre la metà dei server Internet girano su Linux, compresi quelli delle banche. Non riesco ad immaginare NULLA di più appetibile di questo per un virus writer e, infatti, di virus per Linux ne esistono parecchi.

Stranamente, però nessuna epidemia di virus, worm od altre schifezze degli ultimi 15 anni (cioè da quando esiste Linux) ha mai coinvolto Linux. Cercare su Google per credere.

L’invulnerabilità di Linux

Com’è possibile che Linux resista così bene ai Virus e ad altre forme di infezione?

La ragione è semplice: il codice malevolo, per propagarsi e fare danni, ha bisogno di punti di aggancio. Deve potere sfruttare i meccanismi del software installato sulla macchina. Da questo punto di vista, Linux offre molti meno agganci ai programmi malvagi e, viceversa, offre molti più strumenti di difesa agli utenti.

Il suo software è più “corretto” e “sicuro” perchè è ispezionato e collaudato più spesso e più a fondo.

Inoltre, gli strumenti di controllo e di difesa, su Linux, sono spesso a portata di mano mentre su Windows sono nascosti all’utente o sono completamente assenti. Le configurazioni sono più chiare ed i default sono concepiti per favorire la sicurezza, non per favorire una discutibile idea di “facilità d’uso” e di comodità.

La vulnerabilità dei Desktop Manager

La vulnerabilità che descrive Foobar su Geekzone però è assolutamente reale. La tecnica che Foobar descrive funziona davvero e rappresenta davvero un serissimo pericolo per gli utenti Linux (almeno quelli che usano Linux sul desktop, come me).

Questa vulnerabilità nasce dalla necessità di automatizzare alcuni compiti findamentali all’interno dell’ambiente grafico (il desktop manager, come KDE o Gnome). Praticamente tutti i desktop manager dispongono al loro interno di un interprete di linguaggio (uno “scripting engine”) che viene utilizzato per automatizzare certe operazioni ripetitive e per sviluppare delle estensioni. Ad esempio, KDE 4 usa Python al suo interno per dare vita ai Plasmoidi. Inoltre, quasi tutti gli ambienti grafici devono eseguire operazioni (cioè codice) sotto una identità diversa da quella dell’utente corrente (magari quella di “root”) e/o devono accedere a risorse delicate (come la directory autostart e simili).

Questa vulnerabilità, infatti, affligge tutti i desktop manager esistenti, compresi quelli non legati a Linux, come l’interfaccia grafica di Windows, che è generata, dietro le quinte, da Internet Explorer.

I motori di scripting delle applicazioni

Più in generale, questa vulnerabilità affligge tutte le applicazioni che contengono al loro interno un interprete di linguaggio usato per compiti di automazione e per lo sviluppo di estensioni. Al giorno d’oggi, questo significa praticamente tutte le applicazioni esistenti di un certo peso, da Firefox ad OpenOffice passando per MS Otlook e MS Office.

È proprio grazie alle vulnerabilità di questi interpreti che i worm riescono a diffondersi. Il software Microsoft è tradizionalmente molto vulnerabile a questi tipo di infezioni sin dai tempi del primo motore di “macro” installato su Excel 4.0 e su Word 4.0 (1995). MS però è in ottima compagnia. Anche prodotti molto “quotati” in termini di sicurezza come Firefox, OpenOffice, KDE e Gnome sono sensibili a questo tipo di attacchi.

User e Root sono uguali

Come fa notare Foobar, un worm che sfrutti queste funzionalità del desktop manager e delle applicazioni non ha nessun bisogno di accedere all’identità di amministrazione (“root” su Unix) per fare danni. Questi motori di scripting forniscono già tutti gli strumenti necessari e la grande quantità di informazioni presenti nella directory “home” dell’utente fornisce il materiale su cui lavorare.

Cura 1: chiedere conferma

La cura più ovvia a questa vulnerabilità consiste nel non eseguire codice alla cieca. In generale, i desktop manager e le applicazioni non dovrebbero mai eseguire codice senza aver prima controllato che si tratti di qualcosa di già noto e collaudato e/o proveniente da una fonte sicura.

Questo è ciò che fanno già, in parte, sia Windows, con le sue diaboliche finestrelle, che Linux, con “sudo”. Questo però non è ancora sufficiente e, più in generale, questo meccanismo non può essere portato molto più avanti di così.

Come ben sanno gli utenti Windows, infatti, non si può pretendere che sia l’utente a sapere se una certa operazione è sicura o non lo è.

Cura 2: controllare il codice

L’altra cura, sempre abbastanza ovvia, consiste nel controllare e ricontrollare il codice. Da questo punto di vista, il software Open Source fornisce delle garanzie molto più solide di quello commerciale. È soprattutto per questa ragione che Linux, BSD, OpenSolaris, Firefox, Thunderbird e OpenOffice sono tradizionalmente più sicuri dei loro omologhi commerciali.

Anche questo però non può bastare. Ci sono comunque certe operazioni che devono essere possibili e che possono comunque essere usate a fini malvagi. Questo è il caso, ad esempio, delle funzionalità dei browser (tutti i browser) che vengono sfruttate a danno dell’utente.

Cura 3: Singularity

La soluzione più avanzata (ma comunque non definitiva) ai problemi di sicurezza sarebbe una piattaforma in “managed code”, come MS Singularity e MS Midori. È proprio su questo terreno che Microsoft si prende una bella rivincita sui suoi concorrenti. Nessun’altro ha pensato a niente di simile. Anche il mondo Open Source è riuscito solo a copiare parzialmente Singularity, con i progetti SharpOS e CosmOS.

Quando Midori arriverà sul mercato (forse solo sui server) il termine “sicurezza” acquisirà davvero un nuovo significato.

Ma allora, perchè Linux è invulnerabile?

A questo punto, dovrebbe essere chiaro che Linux NON è invulnerabile ai Virus (e nemmeno a tutte le altre forme di infezione o di attacco). Linux però può vantare i seguenti due grandi punti di forza rispetto a Windows.

Innanzitutto, Linux e tutto il software open source che gira su di esso viene sviluppato da dei volontari, senza scopo di lucro, con il solo scopo di creare un ambiente di lavoro flessibile e potente per i suoi utenti. Di conseguenza, non c’è ragione di non intervenire per risolvere un problema quando il problema è noto.

Questa potrebbe sembrare una cosa ovvia ma non lo è affatto. Per anni Microsoft si è rifiutata di rimuovere o modificare certe “features” dai suoi programmi per ragioni strettamente commerciali, che nulla avevano a che fare con le necessità reali degli utenti. Questo è esattamente quello che è successo quando è stato chiesto a MS di rinuovere o modificare gli script engine di Office, di Internet Explorer o di Outlook. La resistenza di MS è stata tale che persino lo US CERT, nel 2004, si è visto costretto a consigliare gli utenti di abbandonare il software MS ed adottare qualcosa di meno virus-friendly. Leggetevi questa notizia: “Goverment Recommends “Use a Different Browser” to Combat Internet Explorer’s Security Vulnerabilities”. L’advisory originale del CERT è questo: “Vulnerability Note VU#713878”. E non illudetevi nemmeno per un istante che questi siano ricordi del passato: “Pwn2Own 2009, Safari e IE8 cedono in pochi secondi” e “Il worm Conficker continua la sua corsa”. La storia degli ultimi 20 anni parla chiaro: MS coltiva i suoi business, non la sicurezza degli utenti (o la loro libertà).

Inoltre, l’intero ambiente di lavoro di Linux (Kernel Linux, “strato” software GNU, Desktop Manager KDE e Gnome, programmi applicativi come OpenOffice) è Open Source. Tutto questo codice viene continuamente visto, ispezionato, controllato, studiato e modificato da migliaia e migliaia di persone. Nessun segreto può resistere a lungo in queste condizioni. Viceversa, solo Microsoft sa cosa combina il suo software. Il fatto che non esistano vulnerabilità (o, peggio, backdoor) nel software proprietario è difficile da stabilire. Spesso si è costretti a fidarsi del produttore (che è come chiedere all’oste com’è il vino che vende).

In realtà, a voler essere precisi, non è l’ambiente GNU/Linux ad essere più sicuro di quello Microsoft: è l’ambiente Microsoft ad essere un colabrodo in confronto a qualunque altro ambiente operativo esistente (e lo è a causa di ben precise scelte aziendali di MS). Non a caso, Windows è l’unico ambiente per cui è necessario l’antivirus. Su Apple MacO X, per esempio, questi problemi di sicurezza sono sconosciuti esattamente come sono sconosciuti su Linux, su BSD e su Solaris.

Ma non si può rilasciare il codice sorgente di un programma commerciale “solo” per renderlo più sicuro!

E chi l’ha detto?!

Per anni, i programmi CAD/CAE/CAM del mondo Unix sono stati rilasciati ed installati in formato sorgente (perchè era più pratico) e non per questo non hanno avuto il loro mercato.

L’apertura dei sorgenti e la gratuiticità del software sono cose diverse.

Si può benissimo rilasciare come software Open Source un programma, in modo che possa essere verificato e collaudato a fondo, e riservarsi comunque il diritto di venderlo ad un certo prezzo. Questo è quello che fanno, tuttora, diversi produttori di CAD per Unix.

Far rispettare le licenze è un problema diverso dal “pacchettizzare” il codice e dovrebbe essere trattato separatamente da questo, proprio per non costringere l’utente a subire tutti i limiti di un sistema chiuso e non ispezionabile.

Alessandro Bottoni

alessandro.bottoni@infinito.it

www.alessandrobottoni.it

Qualche approfondimento:

Linux vs. Windows Viruses” a The Register

The short life and hard times of a Linux virus” a Librenix

The virus threat to Linux” a desktopLinux.com

How to Write a Linux Virus” a Cheap Hack

ed una sana risata:

Why GNU/Linux Viruses are fairly uncommon

Febbraio 27, 2009

Sulla sicurezza di Linux (ancora!)

Archiviato in: Linux, sicurezza, windows — alessandrobottoni @ 1:19 am
Tags: , , ,

Il mio articolo dell’altro ieri sulla sicurezza di Linux ha scatenato la solita, accesissima discussione tra i sostenitori di Linux, quelli di Windows e quelli degli altri sistemi operativi. Tra i commenti che mi sono arrivati, ce n’è stato uno che mi segnalava questo articolo di Geekzone:

How to write a Linux virus in 5 easy steps

Qui di seguito trovate le mie osservazioni su questo tema.

La gallina domani (e la pagliuzza nell’occhio degli altri)

Resto sempre molto perplesso di fronte alle contestazioni che vengono mosse a Linux ed al suo software in tema di sicurezza.

Circa il 96% della popolazione mondiale usa una delle varie versione di Windows e se ne lamenta in continuazione. Sono proprio gli utenti Windows a lamentarsi della scarsissima sicurezza di Windows, dei suoi continui problemi, della necessità di riavviare il sistema uno o due volte al giorno, della necessità di reinstallare tutto quanto una volta o due all’anno e via dicendo. Nonostante tutto questo, questi stessi fanatici di Windows sono sempre pronti a sottolineare che esiste, in fondo, una vulnerabilità nascosta da qualche parte dentro Linux e che, in fondo, l’immunità di Linux è destinata a terminare quando Linux sarà diffuso quanto Windows.

In altri termini, questa gente preferisce tenersi per anni un sistema operativo che costa loro una novantina di euro ad edizione, che non funziona, che si pianta in continuazione, che costringe l’utente a ripartire da zero un paio di volte l’anno, che è responsabile del 99% delle infezioni solo perchè il principale concorrente (che è gratuito) potrebbe, un giorno, chissà quando, forse avere l’1% dei problemi che ora affliggono Windows.

Francamente, mi sembra che questi “analisti” abbiamo davvero bisogno di farsi vedere da uno psichiatra. Voi che ne dite?

Non vi sembrerebbe più logico godersi Linux (“aggratis”) fintanto che è sicuro ed affidabile e pensare all’eventuale, fosco futuro di Linux se e quando ce ne sarà bisogno?

Da StarBasic ai Launcher

Comunque, la questione sollevata dall’articolo di Geekzone è una cosa già nota da tempo (e non è mai stata sottovalutata). In realtà, fa parte di una intera categoria di “sfighe” che può essere cataloga sotto il nome di “script eseguibili” o di “interpreti di linguaggio incapsulati nei programmi”. Si tratta della stessa vulnerabilità che si trova alla base dei “virus di macro” o “worm”, che dir si voglia. Questa vulnerabilità è già nota da tempo ed è già stata affrontata in vari casi.

Quando è arrivato sul mercato OpenOffice (ex StarOffice), alla fine degli anni ‘90, ci si è subito accorti della presenza di StarBasic al suo interno. StarBasic è una implementazione “open source” di un interprete basic molto, molto simile a Visual Basic di Microsoft. Siccome Visual Basic era già allora (come adesso) il responsabile del 70% delle epidemie, si è subito temuto il peggio.

A causa di queste preoccupazioni, l’implementazione di StarBasic è stata eseguita tenendo conto delle lezioni imparate da Visual Basic. L’esecuzione degli script in OpenOffice è normalmente disabilitata e l’interprete stesso impone dei limiti molto seri a cosa può fare il codice che proviene dall’esterno.

Questo stesso approcio è stato adottato con gli interpreti di linguaggio interni di Mozilla Firefox e Thunderbird, come pure di molti altri programmi.

Le vulnerabilità citate dall’articolo (i “launcher” di Gnome e KDE) sono anch’esse note da tempo, come dimostra questo articolo: “.desktop files and security”. Non so se verranno risolte nel modo suggerito dall’autore ma sono assolutamente sicuro del fatto che verranno tenute nella dovuta considerazione.

Se lo esegui, lo esegui…

Il problema di fondo è che se si riesce a convincere l’utente ad eseguire un programma, in pratica si può fare qualunque cosa. Dato che un programma è, per sua stessa definizione, una collezione organizzata di “azioni”, si può “agire” in qualunque modo.

A questo non c’è rimedio. Perchè sia utilizzabile, un computer deve eseguire delle azioni. Se è l’utente ad autorizzare l’esecuzione di queste azioni, il computer deve eseguirle. Né il sistema operativo né l’antivirus possono arrogarsi il diritto di “sovrascrivere” la volontà dell’utente con la propria.

Voi accettereste di guidare un’automobile che gira agli incroci come ritiene più opportuno, infischiandosene della vostra volontà?

Trojan Vs Virus

La differenza fondamentale tra il tipo di attacco descritto in questo articolo (“How to write a Linux virus in 5 easy steps”) e gli attacchi che subisce Windows sta nella collaborazione dell’utente.

Per attaccare un sistema Linux (come è ampiamente dimostrato in quell’articolo) è necessario convincere l’utente ad eseguire un programma. In altri termini si deve usare un Trojan Horse e/o fare uso della famosa “ingegneria sociale”. Di conseguenza, se l’utente sa come comportarsi ed è cauto, è molto probabile che riesca ad evitare il contagio.

Per attaccare un sistema Windows, invece, non è necessaria la collaborazione dell’utente. Conficker, per esempio, è riuscito ad infettare nove o dieci milioni di computer senza mai avere bisogno della collaborazione dei loro utenti.

Questa, infatti, è la differenza fondamentale tra un Trojan Horse ed un Worm: i worm si propagano da soli, sfruttando le falle del sistema. Non hanno bisogno della collaborazione degli utenti.

In altri termini, su Windows nemmeno un utente esperto, cauto e preparato può realmente difendersi dalle infezioni. Anche se sa come comportarsi, non può ugualmente imporre al suo sistema operativo ed ai suoi programmi di comportarsi in modo “sicuro”. La sua sicurezza non dipende da lui. Dipende da Microsoft.

Se vi sembra una differenza da poco…

ActiveX Vs Java

Una delle principali falle di sicurezza di Windows deriva dalla pessima abituzione di Microsoft di esporre su Internet dei servizi che possono eseguire codice senza prendersi cura in modo adeguato della loro sicurezza.

Questo è ciò che è avvenuto, per esempio, con gli ActiveX di Internet Explorer. Il motore che gestisce gli ActiveX esegue del codice (C++) che proviene dal mondo esterno (dai siti web) e lo fa sulla macchina dell’utente. I rischi per l’utente sono piuttosto evidenti anche per un occhio non esperto.

Incredibilmente, tutto quello che ha saputo fare Microsoft per garantire la sicurezza dell’utente è stato imporre un meccanismo di firma digitale agli ActiveX e consigliare gli utenti di non installare ActiveX non firmati. Un sistema del genere non poteva funzionare ed infatti nel giro di pochi mesi gli ActiveX sono diventati la principale fonte di infezione di Internet.

Cose simili sono avvenute anche in seguito, a causa dei vari interpreti di linguaggio presenti all’interno di Internet Explorer, Outlook e dei programmi Office.

A fronte della sostanziale irresponsabilità di Microsoft, si può vedere cosa ha fatto Sun per garantire la sicurezza della sua virtual machine Java. Java implementa un suo modello di sicurezza, basato sull’isolamento del programma dal mondo esterno (“sandboxing”). Questo sistema viene ritenuto valido ancora oggi, a quasi 15 anni di distanza, ed è stato adottato, ad esempio, per Google Android.

Se anche questa vi sembra una differenza da poco….

Sicurezza Vs Mercato

Il problema di fondo è che per Microsoft ciò che conta davvero è il mercato. Se una funzionalità torna utile agli operatori commerciali (che condizionano il suo mercato), deve essere lasciata dove si trova anche se rappresenta un rischio per gli utenti. Questo è quello che è avvenuto con gli ActiveX e con molte funzionalità pericolose di IE e di Outlook. Molti utenti e molti specialisti hanno chiesto di rimuoverle o di riprogettarle ma non c’è stato nulla da fare. Quelle funzionalità sono rimaste dov’erano per decenni, senza nessun riguardo per la sicurezza degli utenti.

Lo stesso avviene quando una funzionalità è “cool” ed aiuta a vendere. Non c’è modo di cavarsela dai piedi.

Sistemi operativi (davvero) sicuri

Neanche Linux, BSD, OpenSolaris e MacOS X sono invulnerabili, ovviamente. Ma tra essere “vulnerabili” ad alcune, rare forme di attacco ed essere un vero terreno di cultura per virus e batteri di ogni sorta, passa ancora una bella differenza. Non è certamente un caso che praticamente tutte le epidemie degli ultimi 10 o 15 anni abbiano colpito solo Windows.

Linux, BSD, OpenSolaris e MacOS X non sono invulnerabili e non potranno diventarlo. Non importa cosa si faccia.

Per avere sistemi operativi “invulnerabili” occorre ripartire da zero, con un approccio progettuale e “politico” completamente diverso. Su questo terreno, Microsoft è molto, molto più avanti di tutti gli altri produttori. Basta guardare Midori (derivato da Singularity).

Ambienti operativi sicuri

Quando si aggiunge una interfaccia grafica ad un programma, le sue dimensioni decuplicano (aumentano di dieci volte). Questo è anche ciò che è successo a Microsoft nel passaggio da MS/DOS a Windows. Questo è ciò che è successo a GNU/Linux con il passaggio dalla shell (a caratteri) a Gnome e KDE.

Con la complessità aumenta il numero di bug e di vulnerabilità.

La categoria più ampia e più pericolosa di bug e di vulnerabilità riguarda, ancora una volta, gli interpreti di linguaggio interni ai programmi e le funzionalità di esecuzione del codice. La questione dei file .desktop citata nell’articolo “How to write a Linux virus in 5 easy steps” fa parte di questa categoria.

Per avere dei desktop manager sicuri bisogna rinunciare a queste funzionalità (come fanno i desktop manager più vecchi) oppure bisogna implementarle con una attenzione maniacale alla sicurezza.

L’inserimento di interpreti di linguaggio (Python) all’interno di Gnome e KDE è certamente una fonte di preoccupazione. Va affrontata con onestà e con coraggio.

Programmi applicativi sicuri

Un discorso simile vale per gli interpreti che si trovano all’interno di Firefox, di Thunderbird e di OpenOffice. Tutti questi “script engine” sono delle potenziali fonti di problemi e vanno implementati con la massima cura.

Utenti sicuri

Solo eliminando le falle che permettono di scavalcare l’utente si può concentrare il discorso della sicurezza sull’elemento che dovrebbe essere fondamentale per essa: l’Uomo.

In un mondo perfetto, l’unico modo di eseguire un programma dovrebbe essere quello di farlo eseguire esplicitamente ad un utente che sa che cosa sta facendo. Niente automatismi.

A quel punto, davvero la sicurezza sarebbe nelle mani dell’utente.

Per il momento, resta ancora per il 99% nelle mani di Microsoft, di McAfee, di Norton e di Kaspersky (quando si è fortunati). Finchè le cose resteranno in questo modo, Windows resterà molto meno sicuro di molti altri sistemi operativi.

Alessandro Bottoni

alessandro.bottoni@infinito.it

Febbraio 24, 2009

Sulla sicurezza di Linux

Archiviato in: Linux, sicurezza, windows — alessandrobottoni @ 11:55 pm
Tags: , ,

Eppure, c’è sempre qualcuno che non ci vuole credere (o che non vuole capire):

Alessandro Bottoni:

“Molti sistemi sono immuni dalle infezioni. Linux, BSD, MacOS X, OpenSolaris ed altri sistemi operativi sono immuni da virus, worm ed altri tipi di malware. Firefox, Thunderbird, OpenOffice e molti altri programmi applicativi di uso comune sono immuni da virus ed altri tipi di infezione. L’unico modo di propagare una simile infezione in modo affidabile consiste quindi nell’usare il client stesso dell’applicazione VoIP (cioè il programma installabile di Skype ed i suoi concorrenti).”

bubba:

“Le grosse sparate sono quelle di Bottoni (quelle di maroni neanche le calcolo), e precisamente:

- Questo perchè le reti P2P possono essere indipendenti da Internet e dalle reti telefoniche, come avviene per(..)

- Molti sistemi sono immuni dalle infezioni. Linux, BSD, MacOS X, OpenSolaris ed altri sistemi operativi sono immuni da virus, worm ed altri tipi di malware(..)”

blackshard:

“Per il discorso delle infezioni, detta come sta nell’articolo si, è abbastanza una idiozia. Più che immuni (niente è “immune”), diciamo che per ora sono pressochè esenti da infezioni.

Del resto la cosa che rende linux e macos più solidi è il fatto che di default girano in modalità utente limitato e non amministratore come windows xp.”

[Dai commenti a “La forza del VoIP è il P2P”]

Ed invece è proprio così: l’unico sistema operativo al mondo (a parte MS/DOS) che abbia mai avuto bisogno di un antivirus per riuscire a girare in modo ragionevolmente sicuro è Microsoft Windows (tutte le versioni, incluse Vista e Windows 7). È ora che qualcuno ve lo dica apertamente ed è ora che ve ne rendiate conto.

Che Windows abbia ancora bisogno del “pannolone” ve lo dice Microsoft stessa sul suo sito web. A maggiore dimostrazione di questo, Microsoft ha persino sviluppato i suoi sistemi anti-sfiga interni, come Microsoft Defender.

Che gli altri sistemi non ne abbiano bisogno ve lo dice il mercato. Provate a trovare un antivirus destinato ad un sistema operativo diverso da Windows e capirete.

Gli altri sistemi operativi (tutti gli altri sistemi operativi) non hanno bisogno di un antivirus perchè sono davvero sostanzialmente immuni dalle infezioni. Tenete solo presente che circa il 60% dei server web di Internet (che sono ormai centinaia di milioni) è basato su Linux. Se ci fosse un problema di virus, qualcuno avrebbe creato un antivirus per questo ricco mercato. Non vi pare?

La leggenda che vuole tutti i sistemi operativi “fallati” almeno quanto Windows è, appunto, una leggenda. È dovuta alla diffusissima e pessima abitudine di confondere le infezioni (che non richiedono l’intervento umano) con gli attacchi da remoto (i cosiddetti exploit, che invece sono sempre condotti in maniera esplicita da un esser umano, anche se in modo automatizzato). Un virus può infettare qualunque tipo di programma, purchè sia eseguibile (in un modo o nell’altro). Un attacco (“exploit”), invece, può essere rivolto solo contro un programma che si trovi “in ascolto” su una porta (cioè un “servizio”, noto anche come “demone” in ambito Unix).

La differenza tra vulnerabilità alle infezioni e vulnerabilità agli attacchi non è una questione di lana caprina. Un sistema desktop normalmente non espone sulla rete dei servizi (come un server web, per intenderci) e quindi è intrinsecamente insensibile alla quasi totalità degli attacchi (semplicemente perchè non c’è nessun bersaglio da attaccare). In ogni caso, per difendersi dagli attacchi condotti attraverso Internet, di solito basta un firewall (come quello presente nel router che usate per collegarvi ad Internet). Se però il sistema operativo ed i programmi applicativi non sono costruiti nel modo corretto, il sistema resta vulnerabile alle infezioni. Le infezioni hanno sempre un possibile bersaglio (i programmi che girano sul computer, di qualunque tipo siano) e per difendersi da una infezione ci vuole un antivirus. Questo fa la differenza tra la vita tranquilla che fanno gli utenti Linux e MacOS X e la vita “spericolata” a cui sono abituati da sempre gli utenti Windows (almeno sul desktop).

Non sono io a dire che Windows è praticamente il solo sistema operativo da desktop vulnerabile alle infezioni: lo dicono chiaramente le statistiche. Provate a cercare su Google qualche traccia di un qualunque virus, worm o altre schifezze di questo tipo che abbia contagiato dei sistemi operativi diversi da Windows e che, magari, sia anche riuscito a produrre un’epidemia. Vi renderete conto che, a parte casi rarissimi di worm che attaccano i servizi di rete (come lo “Internet Worm” che nel 1988 ha attaccato il servizio Sendmail) non c’è nessuna traccia di epidemie dovute a sistemi non-Windows. Soprattutto non c’è nessuna traccia di infezioni che abbiano colpito i sistemi usati dagli utenti finali (i desktop). I rari casi di infezione nota hanno sempre colpito dei servizi di rete che giravano solo su dei server (e che erano gestiti da degli amministratori di rete adeguatamente preparati o che si ritenevano tali).

In realtà, dovrebbe bastare la vostra memoria a confermarvelo: quante epidemie ricordate che abbiano colpito sistemi Linux negli ultimi anni (circa 100 milioni di utenti nel mondo)? E quante epidemie che hanno colpito sistemi MacIntosh (circa 500 milioni di utenti)? E BSD? E Solaris? Ed adesso, quante epidemie ricordate che hanno coinvolto Windows? Così, senza consultare Wikipedia, ve ne posso citare subito tre: conficker, il trojan/worm “anna kournikova” che ha colpito OutLook nel 1999/2000 ed il worm RedCode che ha colpito Internet Information Server nel 2000/2001.

Con Google potrete trovare su Internet anche le tracce di migliaia di attacchi di vario tipo che hanno colpito sistemi Windows e non-Windows, dagli exploit più tradizionali, basati su buffer overflow o cose simili, fino ai DDoS. Ma si tratta appunto di attacchi che, per loro natura, riguardano quasi esclusivamente i server. Come ho già detto, gli unici casi noti di infezione tra i sistemi non-Windows sono stati alcuni worm che attaccavano dei servizi di rete, come Sendmail e Samba. Anche in questo caso, quindi, si trattava di qualcosa che riguardava gli amministratori di rete, non gli utenti.

A dispetto di quello che si crede, la resistenza dei sistemi operativi non-Windows alle infezioni non è affatto temporanea, dovuta allo scarso interesse dei virus writer, e non è dovuta solo al fatto che i sistemi operativi non-Windows operano da sempre in modalità compartimentata (admin/user). La loro resistenza alle infezioni è dovuta soprattutto alla maggiore cura posta nella realizzazione del software. Questa maggiore cura è spesso una conseguenza del diverso modo di analizzare e correggere il software che esiste tra il mondo “Closed Source” (MS) e quello “Open Source” (Linux). Il software Open Source, proprio perchè viene distribuito in formato sorgente, viene continuamente analizzato, studiato e verificato da migliaia di analisti indipendenti. Le falle di vulnerabilità o, peggio, le backdoor vengono immediatamente scoperte ed eliminate.

A conferma di questo, sappiate che da almeno cinque o sei anni diversi ricercatori e diversi “virus writer” stanno tentando con tutte le loro forze di creare dei virus in grado di attaccare Linux, MacOS X ed altri sistemi operativi derivati da Unix e non ci sono mai riusciti.

Questi “cattivi” si sono scontrati con due difficoltà:

  1. I sistemi Unix-based operano sempre in modalità compartimentata. Se anche si riesce ad infettare un utente, resta poi sostanzialmente impossibile estendere l’infezione al resto del sistema ed ai servizi veramente cruciali. Di conseguenza, è sostanzialmente impossibile propagare il virus da una macchina all’altra. Windows, invece, è arrivato ad usare questo approcio (nel modo corretto) solo con Vista e Windows 7.

  2. Il software che gira su questi sistemi operativi per tradizione non espone gli stessi servizi che si trovano sui programmi Windows, come certi interpreti di linguaggi. Anche quando questi servizi sono disponbili, viene posta molta più attenzione a non renderli utilizzabili per scopi malvagi. Basta confrontare l’implementazione di Visual Basic for Application che gira dentro i programmi Microsoft (Internet Explorer, Outlook, Office, etc.) con quella di StarBasic su OpenOffice o con i linguaggi di automazione presenti in Firefox e Thunderbird per rendersene conto.

Questa maggiore cura nella realizzazione del software è chiaramente visibile in tutto il software open source, dal kernel Linux ai desktop manager Gnome e KDE e su fino a OpenOffice, Firefox e Thunderbird. Questa maggiore cura nella realizzazione del software è appunto la ragione per cui questo tipo di software è molto più resistente di quello commerciale alle infezioni (Virus e Worm) ed agli effetti deleteri del malware (Trojan Horse, SpyWare, AdWare, etc.).

Quindi, lo ripeto: Linux e MacOS X, come BSD e OpenSolaris, sono davvero quasi del tutto immuni alle infezioni (anche se restano sensibili ad altri tipi di attacco che però riguardano quasi solo le applicazioni server). Se decidete di passare a Linux od a MacOS X potete davvero lasciarvi tutti i problemi di sicurezza di Windows dietro le spalle. Per sempre.

Uso solo Linux sui miei computer dal 2002 (anche se ho cominciato ad affiancarlo a Windows nel 1996) e vi posso garantire che è proprio così: niente più virus e niente più malware (almeno nel normale uso desktop).

Alessandro Bottoni

alessandro.bottoni@infinito.it

www.alessandrobottoni.it

PS: Per quello che riguarda le reti P2P, posso riportare la risposta di blackshard:

“Guarda il discorso sulle reti p2p non è una idiozia. Le reti p2p non sono quello che pensi tu (emule, bittorrent, etc…), o almeno non sono solo quello.

Esistono framework (tipo jxta) per creare reti p2p su altri protocolli come bluetooth, per esempio, e servono per condividere qualunque tipo di risorsa, non solo file.”

È proprio così: ci sono anche reti P2P indipendenti da Internet, come CuWIN, FON, Netsukuku e via dicendo. Si tratta di sistemi che usano connessioni Wi-Fi per creare reti che non hanno nessun punto di contatto con Internet.

Pagina Successiva »

Blog su WordPress.com.