Come avevo già accennato in un mio precedente articolo Linux è immune da virus!

sia chiaro un Virus è un programma, e un virus si può quindi creare per Linux, e ne esiste anche qualcuno!

L’affermazione “Linux è immune dai virus” è quindi da prendere con le pinze… Il sistema è progettato e strutturato in modo da permettere un immunità pressoché totale da virus e qualche tipo di malware.. Qui cercherò di spiegare COME, e tenterò di ricordare agli utenti che il sistema SICURO per definizione non esiste, “l’unico sistema sicuro è quello spento“, come mi suggeriscono nei commenti.. Però Linux se usato con un briciolo di attenzione (aggiornare il sistema e non fare cose “stupide”, qui elencate) vi permette di scordarvi di Virus e Malware🙂

Tanti dicono che l’unico motivo per cui i virus per Linux non ci sono sia la poca diffusione.. Il che è vero per l’utenza Desktop (utenti “normali”) ed è assolutamente falso negli ambienti Server.. ma questo è un altro discorso!

Occorre poi fare una piccola distinzione: un Virus è un Malware, software malevolo, esistono poi altri tipi di malware come i Worm..

Un Worm è un virus che sfrutta una falla di sicurezza di un sistema operativo per eseguirsi ed infettare una macchina, quindi si replica attraverso la rete..

Storicamente i sistemi Linux hanno meno falle di sicurezza dei sistemi Windows, e quindi meno falle da sfruttare per i Worm, inoltre le falle hanno tempi di correzione di 2-3 giorni, talvolta poche ore… un Worm avrebbe vita decisamente breve quindi!

Ma vediamo di capire perché un sistema Linux è più resistente, talvolta immune, ai Virus!

Elencherò dei punti, alcuni banali.. altri più importanti

  • Più utenti di Linux significa anche più Utenti che guardano il codice sorgente, ovviamente non tutti lo faranno, ma gli utenti più esperti o più curiosi possono farlo! La possibilità di scoprire falle aumenta!
  • Perché un file venga eseguito gli vanno assegnati MANUALMENTE i permessi di esecuzione! Oppure va scompattato (con i permessi già corretti) ed eseguito.. non basta cliccarci su 2 volte🙂
  • L’utente lavora sempre come “Utente”, e se non mette la password di amministratore (root) il virus non può far gravi danni, l’utente deve solo imparare a non digitare la password ogni volta che viene richiesta in modo cieco.. E la password non viene richiesta spesso, solo quando si vuole installare qualcosa (vedere prossimo punto) o modificare qualche configurazione! Se non si sta facendo nessuna di queste 2 cose la password non serve🙂

    Su Linux l’utente “normale” può fare praticamente tutto.. il sistema è fatto in modo tale da non creare alcuna limitazione che non sia necessaria.. una volta configurato e avendo tutti i programmi che ci occorrono installati ci possiamo dimenticare della password di root (meglio di no), salvo per fare gli aggiornamenti al sistema🙂

  • Il motivo principe dell’immunità ai Virus di Linux: i Repository!!

    I Repository sono delle raccolte di software (programmi) sia di sistema che per l’uso comune, in genere accessibili via internet! E’ qualcosa di simile al Windows Update, ma su Linux ci sono per qualunque programma..

    Se volete installare un programma su windows lo cercate su internet, lo scaricate e lo installate (con nessuna garanzia che quel programma sia esente da virus o di software malevolo)

    Su Linux aprite il programma di gestione dei Repository, cercate il programma che vi interessa e lo installate da lì🙂 Ogni distribuzione ha un suo Repository con un team di mantenitori che se ne occupano! Quando si fa un aggiornamento vengono aggiornati TUTTI i programmi installati nel sistema, non solo quelli del sistema operativo in se🙂

    l’uso dei repository garantisce che qualunque programma decidiamo di installare sia esente da Virus, i casi in cui qualche programma che ci serve non sia presente nei repository sono abbastanza rari, quindi il rischio di installare programmi malevoli è pressoché nullo

  • Niente Crack, gli utenti Linux sono spinti a non installare Crack ma ad utilizzare software Libero (e spesso gratuito), soprattutto grazie all’uso dei repository citati sopra! Ed è risaputo che spesso i crack contengono software malevolo🙂
  • Se anche qualche utente non sta attento è molto difficile che siano in molti a non fare attenzione, quindi la diffusione dei Virus è un fenomeno assai difficile su Linux🙂

Come avrete quindi capito: se installate il software dai repository non installerete mai alcun virus..

se riceveste un’email con un virus dovreste effettuare diverse operazioni per riuscire ad infettarvi (mettere i permessi di esecuzione, eseguirlo manualmente, dare la password di root per fargli fare danni gravi) insomma… non è proprio un procedimento “automatico” o che si possa eseguire senza riflettere…

Restano i Worm, quei programmi che sfruttano le falle del sistema per auto-installarsi.. Per questi non c’è garanzia assoluta.. se non quella di aggiornare il sistema periodicamente e prendere altre misure di sicurezza, come un firewall, che su Linux funziona decisamente bene!😀

Il firewall Linux, iptables, è un firewall gratuito e molto potente, in pochi minuti può essere configurato per rendere la macchina connessa ad internet INVISIBILE dall’esterno (stealth) e senza impedimenti a nessuno dei programmi comunemente utilizzati su internet
L’utente non è annoiato da continui e più o meno comprensibili pop-up che “chiedono” se bloccare o meno un programma.. per capirci.. una volta che avete configurato il firewall ( script, firestarter, guardog ) potete scordarvi che esista🙂
La limitazione dei firewall Windows è che sono costretti ad appoggiarsi allo stack di rete di Windows.. rallentano quindi il sistema e sono più complessi da configurare! Per trovare poi un firewall con le stesse caratteristiche di iptables occorre cercare a lungo e difficilmente se ne troverà uno gratuito

Nonché la consapevolezza che le falle sono molte meno e risolte in modo molto più rapido che sugli altri sistemi; ancora una volta questo significa che la diffusione di un Worm verrà stroncata in breve tempo e resterà limitata a pochi casi.

ATTENZIONE: Avere più sicurezza non è un buon motivo per abbassare la guardia

Una frase che si sente spesso quando si parla di sicurezza è la seguente:

“Il maggior pericolo per la sicurezza si trova tra la tastiera e la sedia!”

Siete VOI i pericoli maggiori per la sicurezza! Dopo tutti questi discorsi, se voi scaricate un eseguibile da internet, gli date i permessi di esecuzione, e gli date la password di root… beh..😀 Non si può esattamente parlare di un problema del vostro sistema operativo😉

Ci sono altre minacce che sono indipendenti dai sistemi operativi, come il phishing

il phishing è un tipo di attacco che si dice di “social engeneering”, sono e-mail o messaggi che invitano l’utente a fornire dati di accesso ad una particolare banca o altro ente da cui è possibile prelevare VOSTRI soldi, se voi seguite il link che c’è nel “finto” messaggio finirete su una pagina che SEMBRA quella della vostra banca, ma non lo è! Se a quel punto inserite la vostra password e nome utente le state REGALANDO a qualcuno il cui scopo non è esattamente quello di fare dei versamenti nel vostro conto😉 E a questo nessun sistema operativo può ovviare.. esistono programmi di posta che vi avvertono quando pensano che si tratti di un email di frode.. ma non sono infallibili!🙂

È bene, su qualunque sistema, imparare alcune cose del mondo della rete o diffidare di messaggi di posta che potrebbero essere phishing (cos’è un URL? come si verifica il certificato di un sito internet protetto, SSL? ecc..)! Potete sempre telefonare alla vostra banca chiedendo conferma, ma NESSUNA banca mai vi inviterà a fornire i vostri dati via mail.. Per stare al sicuro basta comunque accedere inserendo manualmente il nome del sito della vostra banca, invece di seguire i link nelle e-mail!

Avvertimento/approfondimento sui Repository

i repository utilizzano (quasi tutti) un sistema di certificati che vi garantisce la provenienza dei dati che state scaricando! (Debian/Ubuntu con APT ad esempio)

Il certificato è un sistema che permette ai distributori di firmare ogni pacchetto, e a voi di verificarne la provenienza. In altre parole vi garantisce che quei pacchetti che state scaricando e installando arrivano realmente dal team di sviluppo di quel repository e che sono da loro approvati!

Le firme vengono verificate grazie a delle copie dei certificati pubblici¹ che vengono tenute sul vostro computer; se volete AGGIUNGERE un repository che contiene software più aggiornato o in più rispetto a quelli che già avete è necessario scaricarsi un nuovo certificato pubblico, il certificato di QUEL particolare repository.. solo DOPO che avrete il certificato il sistema vi permetterà di utilizzare quel repository.

Quando voi aggiungete un nuovo certificato quel che state facendo è FIDARVI di quel repository, questa è una cosa importante da capire!

Creare un repository non è difficile, e crearsi una coppia di certificati (pubblico/privato) è altrettanto semplice.. Voi stessi potreste creare un vostro repository domani, studiandovi un po’ di cose! Il che significa che prima di aggiungere un repository dovreste sapere quel che state facendo, di chi è quel repository? è una persona affidabile? avete un recapito, un nome? qualche garanzia? potete fidarvi?

Nel caso di repository molto utilizzati come il debian-multimedia, (addirittura consigliato nelle guide di ubuntu) non ci sono problemi.. c’è un intera comunità che vi garantisce che quel repository è affidabile.. ma nel caso dei singoli o di sconosciuti?

NOTA: alcuni repository NON hanno alcun certificato, il sistema vi permetterà comunque di utilizzarli ma vi informerà del fatto che “non può verificare la provenienza dei pacchetti” e quindi vi chiederà se intendete comunque procedere o meno

Ora vi faccio un esempio di qualcosa che sta succedendo in questi giorni..

Felipe, autore del blog pollycoke che molti di voi conosceranno, ha recentemente creato un repository per ubuntu Feisty che contiene dei back-port di programmi per Ubuntu Gutsy Gibbon (il prossimo Ubuntu, in costruzione)

Fare un backport significa semplicemente creare nuovi pacchetti di programmi di una versione successiva perché funzionino nella versione precedente.. così potete ad esempio avere l’ultimissima versione di un software, altrimenti disponibile solo per Gutsy Gibbon, anche su Feisty Fawn.

Come ha evidenziato Cimi, l’autore (italiano) del gtk-engine murrine (uno dei migliori engine per gnome), Felipe si è preso la libertà di MODIFICARE i sorgenti di gtk-engines senza farne menzione alcuna! E li ha quindi distribuiti nel suo repository..

Quest’azione vi fa capire chiaramente cosa significava la domanda: “potete fidarvi?”

Adesso sia chiaro: queste modifiche non erano nulla di grave per la sicurezza.. mi servono solo come esempio per farvi capire che nel repository di un singolo potrebbero esserci differenze talvolta marginali (come in questo caso), talvolta pericolose rispetto al codice originale.

Una cosa è reimpacchettare del codice, un altra modificarlo “secondo proprie logiche” e ridistribuirlo senza dir nulla delle modifiche! Il codice è libero e Felipe, o chiunque gestisca un repository, può farci quel che vuole sia chiaro! Ma ha l’obbligo (se non altro morale) di segnalare che ha fatto delle modifiche, e quali esse siano! Ancor meglio se in seguito a delle modifiche si cambiasse nome al pacchetto!

Le modifiche di Felipe introducevano solo dei problemi minori a cui felipe, non conoscendo a dovere il progetto, non aveva pensato.. Inoltre peggioravano l’estetica del tema di Cimi (secondo Cimi).. ma il punto non è questo, e se le modifiche che il mantenitore di un repository fa ai suoi pacchetti introducessero (anche involontariamente) delle falle di sicurezza? Gli utenti andrebbero a segnalarle ai creatori del pacchetto originale che non capirebbero dove sta il problema.. perché nel loro codice non ci sono quei problemi!

Felipe era certamente in buona fede quando ha fatto le modifiche, ciò nonostante l’utilizzo di repository non ufficiali è pericoloso, soprattutto se in futuro, aumentando l’utenza Linux, dovesse aumentare anche il numero dei repository “personali” come questo.

Attenti quindi quando decidete di fidarvi di qualcuno in questo modo…

AGGIORNAMENTO:

Il post di Felipe è stato rimosso rimesso, evidentemente era stato scritto con un po’ troppa emotività e poco riflettere🙂 gli chiedo quindi scusa se gli ho mancato di rispetto, uno sfogo senza riflettere può capitare a tutti, così come uno sbaglio come quello che ha fatto, Felipe ha chiarito le cose in un suo post successivo.

Voglio chiarire una cosa, leggendo tutta questa faccenda avevo intuito che le modifiche effettuate sul repository di Pollycoke fossero volontarie e decisamente più evidenti di quelle che sono poi risultate essere. Chiedo quindi scusa pubblicamente per aver attaccato Felipe accusandolo di comportamento scorretto nei confronti di Cimi e pericoloso verso la comunità.

¹ Certificato pubblico: attraverso tecniche di crittografia si creano 2 certificati, uno pubblico e l’altro privato, quello privato resta in mano al possessore del certificato (il repository, o l’ente che vuole firmare qualcosa), dev’essere mantenuto segreto! La coppia di certificati è fatta in modo che se io firmo un messaggio con la chiave privata SOLO la chiave pubblica può verificarne l’autenticità, e viceversa! Questo perché la firma è “criptata” e solo il certificato duale può decriptarla, e quindi verificare che tutto il messaggio provenga da qualcuno che aveva l’altra chiave🙂