Sulla sicurezza di Linux

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.

Annunci
Comments
4 Responses to “Sulla sicurezza di Linux”
  1. Guidus ha detto:

    Ciao,

    gradirei un tuo commento (forse un articolo al proposito ci potrebbe stare) su questo inquietante tutorial che mi ha tolto qualche certezza:

    http://www.geekzone.co.nz/foobar/6229

    intitolato, “How to write a Linux virus in 5 easy steps”. Mi sembra scritto con competenza.

    Come te, uso solo Linux da molti anni; sono seppellito di lavoro e non ho il tempo materiale di mettere alla prova quanto descritto, ma mi sembra che il comportamento dei launcher di Gnome e KDE sia proprio quello (demenziale) descritto dall’autore.

    Ciao e grazie per i tuoi sempre interessanti articoli.

    Guido Gonzato

    • alessandrobottoni ha detto:

      Guidus says:
      “gradirei un tuo commento (forse un articolo al proposito ci potrebbe stare) su questo inquietante tutorial che mi ha tolto qualche certezza:

      http://www.geekzone.co.nz/foobar/6229

      Pronti! Come puoi vedere dall’articolo che mi hai segnalato, si tratta di un banalissimo Trojan Horse (un messaggio di posta elettronica che installa un frammento di codice eseguibile, in questo caso uno script). Una volta installato, lo script si diffonde in uno dei vari modi disponibili. Questo script può persino tentare una scalata all’utenza “root” usando uno dei molti modi documentati in letteratura.

      Come fa notare l’autore, si tratta di una minaccia sicuramente molto concreta e dalle potenzialità molto serie. Anche senza infettare l’intero sistema operativo ed anche senza uscire dall’utenza corrente si possono fare cose molto gravi. Questo è sicuramente vero (ed è la ragione dei miei “quasi immune” e “quasi sicuro” nell’articolo)

      Nota però due cose:
      1) Resta necessaria la “collaborazione” involontaria dell’utente per infettare una macchina. L’utente deve comunque aprire un allegato ad un messaggio di posta. Non stiamo quindi parlando di un virus o di un worm. I virus ed i worm si arrangiano da soli a fare queste cose (ed è questa la ragione per cui sono così pericolosi).
      2) Il sistema operativo in quanto tale resta indenne. Si può tranquillamente cancellare e ricreare l’utenza contaminata senza dover reinstallare il sistema operativo (dopo aver fatto i backup del caso, ovviamente). Questa è la maggiore differenza tra i sistemi Unix e Windows.

      Per avere un “vero” virus/worm, dello stesso tipo di quelli che fanno bestemmiare gli utenti Windows ci vorrebbero due cose:
      1) Una falla adeguata in uno dei programmi che risultano raggiungibili dall’esterno (cioè il browser web, il client di posta e simili) in modo da potere eseguire codice senza il consenso dell’utente. Questo permetterebbe di installare qualcosa anche senza la collaborazione dell’utente. Questo è esattamente quello che fanno molti malware diretti a Internet Explorer (ed alcuni diretti verso Firefox) su Windows. Questo è ciò che hanno fatto alcuni worm di Outlook, sfruttando la presentazione automatica di anteprime di messaggi DHTML nel client di posta.
      2) Una falla adeguata nel sistema operativo od in uno dei programmi per riuscire a superare la barriera rappresentata dall’utenza corente.

      Le ragioni per cui i virus/worm su Linux non funzionano, sono proprio queste due:
      1) Non ci sono “servizi” che possono essere utilizzati per eseguire del codice senza la collaborazione degli utenti. Questo è dovuto sia al fatto che questi servizi non ci sono proprio o sono disabilitati, sia al fatto che, anche quando esistono, sono progettati in modo tale da non essere utilizzabili per scopi malvagi. La differenza tra IE e FF da un lato, e OL e TB dall’altro, è eclatante da questo punto di vista: i vari interpreti di linguaggio presenti nei programmi MS vengono spesso attivati in modo automatico (alla ricezione di un messaggio, per esempio). Questo non avviene quasi mai su Linux (proprio per una maggiore attenzione alla sicurezza). Inoltre, nei programmi e nei linguaggi MS sono presenti funzionalità e bug adatti allo scopo, che su moltissimi programmi non MS non sono invece disponibili.
      2) In ogni caso, non ci sono le falle “di sistema” necessarie per uscire dall’utenza corrente ed infettare l’intero sistema.

      L’assenza di queste falle è la conseguenza della migliore progettazione (meno legata a ragioni commerciali) e della migliore implementazione (più verifiche e più correzioni) dei programmi Open Source in genere.

      Si noti che, sebbene sia possibile, eseguire una scalata utentecomune->root su Unix è tutt’altro che facile. Le distro più diffuse, se tenute aggiornate, sono praticamente immuni da falle di questo genere.

      Linux, MacOS X, OpenSolaris e BSD sono sicuramente vulnerabili a degli attacchi (di vario tipo) ma restano sistemi operativi pensati per essere il più sicuri possibile (compatibilmente con l’usabilità). La loro sicurezza è dovuta soprattutto a questa (ovvia e doverosa) attenzione per la sicureza.

      Windows, invece, si è dimostrato molto spesso un sistema operativo pensato soprattutto per rendere possibili delle “pratiche” altamente discutibili. Ad esempio, MS si è rifiutata a lungo di disabilitare delle funzionalità usate dai “virus writer” perchè erano usate anche dai suoi partner commerciali o perchè le riteneva “cool”. Si pensi alla esecuzione automatica di codice proveniente dal mondo esterno tipica di IE e Outlook. Oppure si pensi agli ActiveX, la cui sicurezza è affidata al buon cuore di chi li scrive. MS ha anche assecondato a lungo i suoi utenti in comportamenti pericolosissimi, come l’uso dell’utenza “admin” per il lavoro quotidiano. Questa “disattenzione” cronica per la sicurezza è alla base della scarsissima sicurezza di Windows (almeno “out-of-the-box” ed almeno fino a Vista).

  2. Guidus ha detto:

    Grazie!

  3. Simone ha detto:

    Ciao, sono un utente prevalentemente Windows, ma spesso uso Linux per lavoro e anche per “cambiare” ogni tanto. Ti sorprenderà sapere che pur usando Windows da tantissimo, non ho mai avuto problemi alcuno di sicurezza! Mai un’infezione da virus dai tempi di Window 3.1! Ammetto di non essere un utente poco esperto, poichè lavorando col pc tutti i giorni e sviluppando software non ho la consoscenza base che può avere un utente medio, ma per farti capire che se un utente è poco prudente lo è con qualsiasi SO.
    Hai ragione nel dire che Linux in un certo senso è più sicuro poichè non esistendo virus per Linux/Unix, automaticamente lo è.
    Il problema principale però non sta nella vulnerabilità del SO (TUTTI i SO sono vulnerabili poichè TUTTO il software è intrisicamente fallato), ma nel chi lo usa a mio parere. Non entro in merito nel discorso server o nel discorso del caso di attacchi condotti da umani, la cui analisi è molto più complessa.
    Tieni conto che attualmente Windows Vista – Windows 7 ha fatto passi da gigante dal punto di vista della vulnerabilità. Microsoft ha “imitato” il sistema dei permessi di Unix: cosicchè il vantaggio di Unix nella gestione degli accessi ai processi/file attualmente non esiste più. Il vantaggio del fatto che Linux/Unix sia Open Source invece lo ritengo dubbio poichè secondo me non ha effetti concreti sulla sicurezza globale del SO.

    M2C
    Ciao

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: