Sicurezza informatica

30 07 2010

Abbiamo già parlato di software libero e software proprietario, adesso voglio spostare l’argomento  più sulla sicurezza, e vedere un poco quali vantaggi e svantaggi vi sono per i programmi aperti e quali per i programmi chiusi. In realtà voglio approffittare di un paragone tra il software libero e chiuso per fare un discorso più generico sulla sicurezza, in quanto non dipende soltanto dal fatto che il codice sia liberamente disponibile. Inoltre, visto che l’argomento sicurezza è molto importante, voglio spiegare anche come funzionano alcuni programmi, come ad esempio l’antivirus (ho visto molti computer con due antivirus che andavano in contemporanea o non aggiornati…) e tenere quindi in considerazione non solo Gnu/Linux e sistemi liberi, ma anche e sopratutto Windows (ma solo perché è il sistema più usato), e di conseguenza un sistema proprietario, cercando però di usare soltanto programmi liberi, di cui il codice sorgente è disponibile!

Pertanto, essendo questo un argomento che va guardato sotto diversi aspetti per poterlo comprendere meglio,per farsi una idea dei fattori che determino la sicurezza di un software, penso sia opportuno suddividere questo argomento in una serie di articoli, di cui questo dovrebbe essere l’indice, o altrimenti si otterrebbe un post fin troppo lungo e poco comprensibile:

1) Vantaggi e svantaggi di programmi liberi e aperti
2) La buona organizzazione
3) Il malware
4) Esempi sulla sicurezza
5) I virus per Gnu/linux degli ultimi anni
6) Il vero problema di qualsiasi sistema
7) Quando e come usare un antivirus (o più di uno) e altri strumenti dediti alla sicurezza
8 ) Ci sarà bisogno di un antivirus per Gnu/Linux?
9) Perché è importante per tutti avere un sistema sicuro!

Ognuno (come sempre) è libero di esprimere la propria opinione, fornire altri esempi, mostrare alcuni fatti che non ho procurato io…

Purtroppo alcuni esempi potranno rivelarsi un poco ripetitivi, alcuni pezzi di articoli potrebbero sembrarvi riciclati più volte, questo non è perché non esistano altri esempi, ma per non rendere troppo complicato l’intero discorso e anche perché non ho conoscenze illimitate su questo argomento. Ovviamente ci sono molto cose che non conosco bene e dovrei approfondire a mia volta, e questa raccolta di articoli non vuole infatti costituire in nessun modo una guida completa e perfetta. Questa è un riassunto di quello che ho potuto leggere su forum, documentazioni e quindi a mia volta testare, osservare e ragionarci su.

Per questo motivo sono sempre ben accetti i commenti e critiche costruttive, (ovviamente anche complimenti ;) ), perché ognuno, io compreso, possa imparare nuove cose, come anche tutti i lettori. Non è leggendo un articolo che si scopre tutto, una volta che ho scoperto che esistono i virus e l’antivirus, non potevo di certo dire di aver capito come rendere sicuro un sistema, come nemmeno quando si scopre che esiste anche il Firewall per evitare molte intrusioni e aumentare la sicurezza. Nemmeno dopo aver scoperto che esistono account con permessi amministrativi differenti, oppure sistemi di gestione come ad esempio UAC, in quanto ad ogni misura di sicurezza che viene creata si scoprono nuovi modi di attacare il sistema, un nuovo tipo di attacco.
La sicurezza totale non esiste, e quindi vi è una continua ricerca in un sistema più sicuro, come vi è anche una continua ricerca nel come eludere le misure di sicurezza.





Sicurezza informatica, software libero e chiuso

30 07 2010

In questo post riporterò molti fatti, di conseguenza non sono da commentare più di tanto. Non voglio dire di conseguenza quali saranno i programmi più sicuri, perchè non esiste una regola generale. Questo elenco tiene conto soltanto del fatto che il codice sorgente è disponibile di alcune immediate conseguenze, molti altri fattori non sono tenuti in considerazione, vedremo che infatti non basta essere un programma libero per essereautoamticamente più sicuro.

Programma aperto, vantaggi:
- tutti possono vedere il codice sorgente, tutti possono contribuire a renderlo più sicuro
- bug vengono corretti più veloccemente, patch rilasciate con altrettanta velocità
- comunità scientifiche sono partecipi all’evoluzione di programmi aperti, alla sua creazione partecipano quindi esperti nel settore e vi si possano trovare moolte idee innovative
- nuovi programmatori/studenti imparano dai sorgenti di programmi aperti, portando sempre idee nuove e fresche alla creazione dei programmi
- l’esclusione di backdoors diminuisce i problemi legati alla sicurezza
- l’esclusione di servizi e impostazioni nascoste diminuiscono il rischio di ottenere configurazione poco adatte
- molti programmatori sono professionisti, spesso anche pagati.
- è possibile “convertire” gli attaccanti, sia Mozilla, sia Google,se non ricordo male anche Canonical, hanno messo in palio dei premi in soldi per chi trova dei bug di sicurezza nei propri programmi, per poterli correggere e trovare più velocemente
- ci si può sentire parte di una comunità, se non si è in grado divedere il codice sorgente, è comunque possibile dare una mano, semplicemente proponendo idee iscrivendosi ai forum dedicati, oppure aiutando a risolvere dei bug scoprendo degli effetti indesiderati di un programma. (insomma, facendo da tester)
- avendo la possiblità di vedere l’intero codice (e non solo alcune parti) è più facile capire in quali parti si possono celare delle falle di sicurezza capendo come funziona l’intero programma e come poterli risolvere nel migliore dei modi.
- Una riscrittura completa del codice è più semplice per eliminare problemi legati alla struttura del programma.

Programma aperto, svantaggi
- È vero che se il numero di programmatori è alto è allora più probabile che i bug vengano trovati più velocemente, ma non è vero che la probabilità che i bug vengano scoperto si cresca in modo linera.
Se p (numero compreso tra 0 e 1) è la probabilità che un programmatore scopra un bug, allora la probabilità che un programmatore non scopra un bug è di 1-p, e che d programmatori non scoprano un bug è di (1-p)^p. Se vogliamo quindi sapere le probabilità che ci sono che un programmatore scopra un bug, allora esse sono 1-(1-p)^d. Di conseguenza all’inizio se cresce il numero di programmatori allora molto velocemente vengono corretti e trovati molti bug, cosa che poi si assesta da un certo numero di programmatori in poi. La differenza tra 10 e 20 programmatori è molta, ma tra 500 e 600 probabilmente non più di tanta. (guardate il grafico per capire di cosa parlo….esso rappresenta la probabilità di trovare un bug al crescere del numero di programmatori)
- Abbiamo detto che tutti possono aiutare, ma è anche vero che molti utenti non guardano il codice sorgente, anche perchè non hanno le competenze adatte, di conseguenza potrebbero non esserci in fondo così tanti aiutanti volenterosi a correggere i bug

Programma chiuso, vantaggi
- un bug esiste soltanto quando viene scoperto da cracker, prima no
- il codice sorgente non è disponibile per gli attaccanti
- gli attaccanti non possono avvalersi dei bug report per tentare di aggirare le protezioni del programma
- i programmatori sono normalmente professionisti pagati

Programma chiuso, svantaggi
- si può aiutare soltanto in modo limitato (attraverso i bug report, ma come potete ad esempio suggerire soluzioni?)
- potrebbero esserci impostazioni non accessibili all’utente finale che limitano la sicurezza
- anche i programmatori interni potrebbero non conoscere l’intero codice, avranno quindi accesso soltanto ad un area limitata del codice.
- ci si deve fidare ciecamente di chi produce il programma

Tutti gli svantaggi e vantaggi che ho elencati andrebbero pesati con misure diverse in ogni caso, inoltre nessun programma è uguale ad un altro (anche due browser sono “diversi”, nel senso che fanno lo stesso lavoro, ma non per forza nello stesso modo), l’elenco serve solo ad avere una vaga idea di cosa tenere conto quando si vuole tentare di capire cosa succede quando i programmatori e gli attaccanti lavorano per trovare falle di sicurezza.
Il più grande svantaggio dei programmi liberi è quello che i cracker hanno a disposizione tutti gli strumenti di chi scrive il programma, mentre dai programmi proprietari hanno meno strumenti a disposizione. D’altra parte se scegliamo di usare un programma chiuso dobbiamo fidarci di chi scrive il programma, cosa che è sempre meglio evitare di fare, sopratutto in ambito informatico.
(A mio parere se devo scegliere tra un programma libero e un programma chiuso in base a questi svantaggi/vantaggi sceglierei un programma libero, ma posso (credo) capire che non tutti possano essere della stessa opinione.)

Clicca sul link per tornare alla pagina principale sulla Sicurezza Informatica





Sicurezza informatica, l’organizzazione

30 07 2010

Ovviamente la nostra analisi non deve fermarsi a valutare il fatto che possiamo vedere il codice sorgente o meno. Ci sono ancora molti altri aspetti da verificare.
Ad esempio è completamente inutile trovare i bug e non risolverli, sopratutto se i cracker sanno come sfruttarli!
Ci troviamo quindi di fronte a tre fattori da considerare una volta scoperto il bug
- Prima di tutto la velocità con la quale i programmatori correggono i bug
- In secondo luogo quanto velocemente vengono rilasciati gli aggiornamenti
- In terzo luogo quanto è difficile è applicare gli aggiornamenti o se sono disponibili per tutti

Detto questo dovreste capire subito che non vuol dire nulla il numero di vulnerabilità scoperte e quanto critiche fossero. Se non sono state scoperte, non vuol dire che non ci sono, se sono state corrette, non vuol dire chela gente le abbia applicate, e anche se ne sono state corrette tante e applicate non vuol dire che non si possono aggirare. A volte si leggono statistiche in internet senza nessun significato, eppure viene commentata la sicurezza dei programmi in base al numero di bug di sicurezza trovati, ma se ci fate caso non verrà quasi mai accenata nessuna parola su quanto velocemente sono stati chiusi (se non prima che venissero scoperti da eventuali attacc anti) e quanto critici sono quelli ancora in circolazione.
Supponiamo di avere due ipotetici programmi, uno con 100 bug, tutti corretti poco prima che venissero scoperti da eventuali attaccanti oppure corretti in un paio di giorni, e un secondo programma, con soltanto 10 problemi di sicurezza, di cui ancora due non risolti.
Cosa possiamo dire di questo paragone? Che il secondo è migliore del primo perchè sono state trovate meno vulnerabilità? Giammai, se non sono state trovate non vuol dire che non esistono (e che non ne verranno scoperti duecento nella prossima settimana), inoltre molto dipende da quanto importanti sono i due problemi di sicurezza. Se sono sfruttabili in qualsiasi occasione, o soltanto con configurazioni improbabili e assai complesse e se, peggio ancora, sono problemi di tipo strutturale e per correggerli è necessario riscrivere da 0 l’intero programma.

Una volta corretto il bug rimane il problema di rendere l’aggiornamento disponibile agli utenti finali. Per questo è sempre importante aggiornare i propri programmi, sopratutto se il nostro computer ha spesso “contatti” con programmi e file “esterni” (provenienti dalla rete, chat, chiavette usb, cd…).
Ad esempio trovo che sia sempre un gran problema reinstallare windows da zero, immaginate di dover reinstallare su un computer Windows, del quale avete il cd d’installazione originale, ad esempio Windows XP (o anche Vista nel frattempo) con SP1 e nient’altro.
Per fare gli aggiornamenti ci vuole una intera giornata se non di più, e nel frattempo un sacco di bug scoperti (e anche corretti) sono disponibili ad un sacco di cracker per poter entrare nel sistema operativo appena installato. Ovviamente questo discorso vale anche per Mac OS e ogni programma di cui abbiamo comprato un cd (perché difficilmente si può poi scaricare da internet una versiona più nuova).
Nel caso dovessi invece reinstallare un programma/sistema operativo gratuito (attenzione, non libero, ma gratuito, c’è una bella differenza), allora posso facilmente ottenere l’ultima versione disponibile, evitando così lunghi aggiornamenti.
Spesso invece per risparmiare risorse si disattivano gli aggiornamenti automatici. Infatti sia su Windows, sia su Mac non esistono i repository (oddio, si può implementare qualcosa del genere, ma attualmente non gli ho mai provati…), e quindi sarebbero magari addirittura più di una decina di programmi in esecuzione a cercare sulla rete il proprio aggiornamento, rallentando l’intero sistema e consumando in parte la banda di rete. Questo problema non si presenta invece su quasi tutte le distribuzioni, che grazie i package manager gli aggiornamenti vengono gestiti tutti insieme, evitando così un sacco di processi ridondanti.

Altrettanto importante è l’organizzazione.
Un gruppo ben organizzato può svolgere lo stesso lavoro in modo più veloce e efficente di un grande gruppo disorganizzato. Si possono evitare molte riscritture inutili, ottenere un codice più pulito…
È importante stabilire severe guide da rispettare, come ad esempio considerare l’importanza di ogni bug report, a cosa dare precedenza, a non litigare per feature di seconda importanza, aggiornare costantemente la documentazione per i futuri nuovi arrivati…
Purtroppo questo accadrà più difficilmente se i programmatori conosceranno soltanto una parte del codice e d’altra parte più facilmente se non tutti possono contribuire e dare consigli (in altre parole: in una società chiusa ci può essere meno materiale magari ridondante da gestire), è anche vero però che conoscendo l’intero ambiente in cui si lavora, è più facile valutare come programmare, per evitare alcuni controlli inutili e bug sciocchi, in un ambiente chiuso può darsi che tutto il codice deve venir testato a scatola chiusa per vedere se è coerente con se stesso e con il resto del sistema, in un ambiente aperto è un aspetto che viene già tenuto conto durante la scrittura del programma.
Grazie a Google Code e a Launchpad, come anche a SourceForge, è possibile organizzare “facilmente” il proprio lavoro, queste piattaforme di sviluppo aiutano a gestire i bug, le traduzioni, la documentazione e molto altro per molti progetti
In un ambiente chiuso purtroppo non so come venga gestito il lavoro normalmente, se qualcuno ha quindi qualche informazione è pregato di farsi avanti ;)

Clicca sul link per tornare alla pagina principale sulla Sicurezza Informatica





Sicurezza informatica, il malware

30 07 2010

Quando la gente parla di virus, in realtà sta parlando di malware, cioè programmi malevoli. (A mio parere, se qualcuno stesse parlando di virus e non di malware, conviene allora precisarlo, per essere sicuro di evitare ambiguità.)
Ovviamente i virus fanno parte dei programmi malevoli, ma esistono molte differenze, che magari sono insignificanti per chi non sa usare il computer, ma costituiscono una reale differenza per la sicurezza di un sistema operativo.
Il fatto che la gente confonda la parola virus con malware nasce dal fatto che molti antivirus oggigiorno non difendono l’utente soltanto dai virus, ma anche da altri tipi di malware, come ad esempio i rootkit, oppure addirittura dallo spam e altro ancora…

Vediamo alcuni esempi di malware, in questa lista ne includerò alcuni che probabilmente riprenderò nei prossimi articoli, se volete approfondire l’argomento potete dare una occhiata qua.

Virus:
Sono parti di codice che si diffondono copiandosi all’interno di altri programmi (esattamente come fanno i virus biologici con le cellule, da cui il nome).

Trojan:
(Il nome deriva da cavallo di Troia) È un programma che fa credere all’utente di essere utile (come ad esempio un codec multimediale, oppure un driver…), ma in realtà contiene istruzioni dannose.

Worm: un worm (verme) è un programma malevolo che può riprodursi senza bisogno di farsi veicolare da un altro programma, modifica l’intero sistema operativo per venir eseguito automaticamente sfruttando dei bug.

Rootkit: i rootkit solitamente sono composti da un driver e, a volte, da delle copie modificate di programmi normalmente presenti nel sistema. Hanno la funzione di nascondere, sia all’utente che ai programmi (tra cui gli antivirus), la presenza di particolari file o impostazioni del sistema. Possono venir quindi utilizzati per mascherare spyware e trojan.

Adware:
Programma che presente all’utente delle pubblicità, possono causare danni quali rallentamenti del pc e rischi per la privacy oltre al fatto che sono elementi di disturbo.

Spyware:
Software che raccoglie informazioni dal sistema su cui sono installati e per trasmetterle ad un destinatario interessato. Le informazioni carpite possono andare dalle abitudini di navigazione fino alle password e alle chiavi crittografiche di un utente.

Adesso che abbiamo fatto questo veloce elenco vedremo da quali malware non siamo realmente protetti su Gnu/Linux.
Perché sicuramente avrete letto che Gnu/Linux è immune ai virus, ma è anche vero che nel 99% dei casi avrete pensato a malware, e non a virus, nel senso della definizione.

Comunque è vero, Gnu/Linux è immune ai virus (nel senso della definizione scritta sopra) per il semplicissimo fatto che per modificare un programma (!) noi abbiamo bisogno dei permessi di amministratore e quindi dobbiamo conoscere la password, e la stessa cosa vale per ciò che viene eseguito sul nostro computer. Quindi se un virus dovesse voler modificare un programma si troverebbe a dover inserire la password. E come farebbe senza saperla?
Dai virus siamo quindi al sicuro.
Ovviamente un virus può sfruttare un bug nel sistema che gli può permettere di bypassare la richiesta della password. Ed è per questo motivo che è importante tenere il proprio sistema aggiornato. Usare distribuzioni famose, come Debian, Fedora, Opensuse…. che aggiornano continuamente i propri sistemi non appena viene scoperto e risolto un bug (!!!!!!!!) è un ottima scelta dal punto di vista della sicurezza.

Potremmo affermare che Gnu/Linux è anche immune ai trojan, dal momento che i programmi che installiamo (inclusi i codec e i driver) provengono dai repository e non sono mai dei file trovati in giro per la rete di dubbia provenienza). Ovviamente se ci mettiamo ad installare codec e driver esterni senza una vera necessità un poco ce la stiamo cercando.

Ragionamenti analoghi (che si ha bisogno dei permessi e che il 99% dei programm voluti si trovano nei repo tramite i package manager) ci portano a dire che il nostro sistema è immune a tutti il malware (e altro) che vi ho elencato, se ovviamente utilizziamo il computer in modo opportuno.
Naturalmente è possibile creare virus, toolkit e alti malware per Gnu/Linux, i bug esistono (ma quando questi vengono corretti il nostro malware che li sfrutta non funzionerà più), gli utenti davanti al computer si possono trarre in inganno, ma è anche vero che i livelli di sicurezza sono molto alti, esistono anche AppArmor e Selinux, ambedue servono a limitare le azioni dei singoli programmi, così anche se un malware dovesse riuscire a intrufolarsi nel nostro sistema, verrebbe comunque limitato. Con questi software si è ad esempio scoperto che Skype tenta di accedere alle password di Firefox, e ovviamente gli è stato impedito.

Clicca sul link per tornare alla pagina principale sulla Sicurezza Informatica





Sicurezza informatica, esempi

30 07 2010

Fino ad ora non abbiamo fatto molti esempi, e non abbiamo ancora detto che cosa è meglio o peggio; programmi a pagamento o gratuiti? Liberi o proprietari?
Personalmente preferirei che ognuno giungesse alla propria conclusione, che sicuramente varierà. Perché la sicurezza di un codice non dipende soltanto dal fatto che sia libero o meno(!) ma anche da chi lo sta programmando e come, che naturalmente non è sempre possibile verificare (si può nei programmi liberi vedere quanto velocemente vengono corretti i bug nei bug report, oppure vedere quanto velocemente vengono rilasciati gli aggiornamenti e che problemi correggono…)

Attualmente(!) l’esperienza sta dicendo che i programmi liberi sembrano essere più sicuri proprio per il fatto che il codice è liberamente disponibile. È lo stesso motivo che ha portato al successo Wikipedia, nonostante ognuno possa malvagiamente modificare qualcosa (che equivale un poco a trovare una falla di sicurezza e sfruttarla) oramai ha raggiunto un livello di affidabilità molto buono, grazie ovviamente alla buona organizzazione e alla partecipazione di tutti. Questo perché nonostante siano molti coloro che aiutano senza essere esperti nel settore, ci sono anche coloro che lo sono, e attraverso severe linee di guida è possibile organizzare e fare bene il lavoro.

Ovviamente tutto questo potrebbe anche cambiare (il fatto che i programmi liberi sembrino essere più sicuri dei proprietari), una maggiore trasparenza da parte dei programmatori proprietari aiuterebbe sicuramente a rendere più sicuri i loro programmi, come ad esempio non includere troppe feature nascoste, impostazioni non personalizzabili, oppure una documentazione migliore. Insomma, sto in parte dicendo che rendendo un poco più liberi i programmi si possono portare molti miglioramenti, ma è anche vero che nascondendo alcune parti di codice si nascondono molti problemi. La soluzione sta pertanto nel mezzo, ma a questo punto ci troviamo di fronte ad un dilemma, cioè quello di affidarci di chi ci vende il programma e (spesso) accettare una licenza molto restrittiva. Il secondo problema, quello di accettare a licenza, non è però un argomento inerente a quello dell’articolo, mentre il primo, cioè quello di affidarci a chi produce il programma senza vedere cosa fa (oppure vedendo in parte cosa fa), lo è e anche tanto. Infatti una delle più importanti regole per chi naviga sul web è, non a caso, proprio quella di non fidarsi di nessuno.

Vediamo qualche esempio (notate, queste non sono regole, sono solo esempi, ovvio che esistono anche controesempi!)
1) Microsoft Windows,nonostante tutti gli impegni stia dando a rendere più sicura la propria piattaforma, ha dei gravi problemi di sicurezza, non a caso è l’unico sistema che ha bisogno di un antivirus. Tali problemi sono spesso legati alla gestione dei permessi, che sono stati implementati a posteriori, mentre nei sistemi Gnu/Linux, Unix e altri sono implementati a priori, diventando così più difficile aggirarli.

2) Nei sistemi liberi normalmente gli aggiornamenti, sopratutto quella relativi alla sicurezza vengono rilasciati non appena sono possibili, evitando così molto danni. Nei sistemi Mac normalmente viene rilasciato un grosso aggiornamenti di dimensioni che possono arrivare fino a 300-400 mb (contro i pochi kilobyte nei sistemi liberi), dando così ai compratori 2 problemi:
1°) grossi file da scaricare implicano occupare quasi tutta la banda di rete, e non tutti hanno una tariffa flat
2°) Spesso apple tralascia molti dettagli sugli aggiornamenti di sicurezza, dando così la falsa impressione che il loro sistema sia più che sicuro anche quando sono in giro grosse vulnerabilità

3) Spesso in internet si possono trovare pubblicità di falsi programmi dediti alla sicurezza, come ad esempio macsweeper, winfixer e molti altri che disabilitano i servizi di sicurezza che abbiamo impostato e tentano di accedere ai nostri dati personali. Rimuoverli può rivelarsi molto più complicato del previsto dal momento che gli abbiamo dato tutti i permessi necessari per intrufolarsi comodamente nel nostro computer.
Ovviamente se il loro codice fosse visibile sarebbe possibile prevenire i danni, prima di aspettare le prima vittime o dare la colpa al sistema operativo pensando avesse problemi sin da prima.

4) “Di virus ne esistono così tanti solo per Windows unicamente perché è il sistema operativo più diffuso.”
Le banche, la polizia francese, i cellulari (si pensi ad android, meego, palm webOS, Maemo…), google, novell, suse, canonical (abbastanza ovvie, no?) wikipedia (la fondazione che ci lavora), la borsa di new york ), il CERN, molte università, la stragrande maggioranza dei server, dipartimento di difesa americano, Monaco, Spagna, Bolzano, molti supercomputer… tutti loro e molti altri usano sistemi linux-based…
Forse Windows è ancora il sistema più usato dagli utenti finali, ma se guardiamo oltre l’ambiente desktop Gnu/Linux sembra vincere su tutti i fronti, non è per niente vero quindi che Windows è la piattaforma più diffusa. (oltre al fatto che esistono bocconi molto più appetibili per i cracker se non guardate soltanto l’ambito desktop).
Inoltre, se avete letto i miei articoli precedenti, ci sareste dovuti arrivare da soli che esistono molti altri motivi che determinano la sicurezza oltre alla diffusione di un determinato software (che è indubbiamente un fattore importante, come molti altri però).

5) A chi non è mai sorto il dubbio che siano le software house stesse a creare i virus in modo da vendere i loro prodotti? Oppure a chi non è mai passato per la mente che Microsoft lasci aperti dei bug causa contratti con le case produttrici di antivirus?
Sinceramente a me il dubbio sembra lecito, nonostante Microsoft si stia impegnando ad aumentare la sicurezza del proprio sistema operativo è impressionante la mole di virus che esiste per il suo sistema operativo. In fondo per essi (Microsoft e software house che crea l’antivirus) è tutto guadagno essendo quasi impossibile comprare un computer senza windows (anche se i tempi stanno cambiando), infatti l’utente finale si trova costretto ad usare un antivirus, ed è probabile che usi la versione a pagamento per avere una protezione in più.
Questa però è destinata a rimanere una leggenda metropolitana (chi ci può dire cosa succede all’interno di una software house dietro alle quinte?), ogni tanto si viene a scoprire chi ha scritto determinati virus, ma si tratta sempre di persone che non lo hanno fatto con il fine di far guadagnare soldi a delle software house o altro, ma per mostrare le propria bravura (nel caso di cracker) oppure giusto per dare fastidio (nel caso dei lamer). Qui potete trovare un articolo molto interessante, di come sono nati alcuni tra i virus più devastanti!

Notate inoltre, che non sempre tutto quello che sembra è come è!
Ad esempio se impostate una password al vostro account di Gnu/Linux per impedire ai vostri parenti/colleghi d’ufficio di poter effettuare il login, potreste rimanere male quando scoprirete che basta quasi qualsiasi livecd oppure un programma più specifico, come ad esempio konboot per rimuovere le password, o che spesso non è nemmeno necessario usare programmi esterni. Qui ad esempio è scritta la procedura per rimuovere la password da un account mac.
Come si spiega questo? È quindi inutile impostare una password? E quindi insicuro il sistema operativo?
Certo che no, la password che protegge il vostro account è stata pensata in primo luogo a proteggervi non da chi sta vicino a voi (il che è praticamente impossibile, come vedremo più avanti, anche se alla fine lo fa, visto che sono pochi quelli che sanno che è possibile rimuoverla), ma da chi si trova di fronte ad un altro schermo, che tenta di impossessarsi, in particolar modo via web, del vostro computer.

Clicca sul link per tornare alla pagina principale sulla Sicurezza Informatica





Sicurezza informatica, virus su Gnu/Linux

30 07 2010

Probabilmente alcuni di voi negli ultimi anni avranno sentito parlare di virus in circolazione che infettano sistemi Gnu/Linux, alcuni dicono che i virus esistono, ma nessuno ha mai scritto una documentazione, e per questo ne sono conosciuti pochissimi…beh allora è ora che sappiate la verità, perché vi hanno raccontato un sacco di cose false.

Supponiamo che stiate leggendo un articolo che dice che è stato scoperto un nuovo virus.
In primo luogo probabilmente non si tratta di virus, ma di altro tipo di malware, in secondo luogo probabilmente dovrete procurarvi appositamente il file infetto ed eseguirlo esplicitamente. Come vedete ci vuole quindi un certo impegno per prendere il “virus” (che virus non è).
Un caso che ha fatto molto “rumore” è stato quello di gnome-look. Un file si dichiarava di essere uno screensaver, mente in realtà era uno script che attaccava continuamente un sito.
Sappiate che non esiste metodo sicuro per difendersi da questo tipo di malware (nel caso specifio, un trojan), se voi lo eseguite volontariamente, allora la colpa è vostra, e non del sistema. C’è una differenza con i virus: essi vengono eseguiti senza(!) una azione volontaria di chi sta seduto davanti al computer, ed è per questo che è importante sottolineare che non si tratta di un virus.

Semmai sentirete mai parlare di altri presunti virus (che nel 99% di casi saranno un altro tipo di malware) prima di pensare “ah, anche Linux è insicuro” leggete bene l’articolo, e scoprirete che sarà successo uno dei seguenti fatti:
- non è stato usato un sistema aggiornato.
- non è stato usato un programma proveniente dai repository, ma esterni/ di terze parti.
- ci si è ingenuamente fidato di un file esterno
e di conseguenza segnatevi il nome di chi ha scritto l’articolo e mettetelo nella vostra lista nera :P

Molti di voi potrebbero adesso dire che questi problemi di sicurezza sono presenti su qualsiasi sistema operativo… beh è vero, commettere questi errori (insieme o singolarmente, non cambia…) può portare all’intrusione di malware nei nostri computer.

È però anche vero che in questi casi gli utenti che si sono beccati il malware sono stati particolarmente sciocchi, perché non hanno la scusante: “ho dimenticato di aggiornare il…”, perché in un colpo solo viene aggiornato l’intero sistema, mentre su altri sistemi, dopo aver aggiornato vari programmi diversi, ci si potrebbe dimenticare di controllare gli aggiornamenti di un specifico programma.

I programmi che ci servono sono presenti nella maggior parte dei repository, scaricare una versione esterna è quindi un rischio inutile.
Se siamo intenzionati a correre questi rischi dobbiamo prendere qualche precauzione, no?
Cosa possiamo fare (e non saremo comunque al sicuro al 100%):
- controllare di scaricare un file da un sito attendibile
- se stiamo scaricando uno script, dare una occhiata al codice, nella maggior parte dei casi questi eseguibili dovrebbero essere di facile comprensione se si conoscono un poco i comandi da terminale.
- controllare il md5sum per essere sicuri di aver scaricato il file giusto (qualcuno potrebbe aver sostituito sul sito il file “buono” con uno “cattivo” tanto per intenderci)

Riprendendo l’esempio di gnome-look:
La maggior parte dei temi non contiene un file eseguibile, a molti sarebbero già dovuti venire dei dubbi se avessero dovuto eseguir uno script. È risaputo che per installare un tema basta trascinare i file in un paio di cartelle oppure nelle preferenze dell’aspetto. È anche vero che esistono delle eccezioni, come ad esempio il tema “mac4lin”, in quanto installa automaticamente i font, le icone, gli sfondi e quant’altro faccia parte del tam di un sistema operativo mac in un sol colpo. In ogni caso, è un file esterno, quindi prima di tutto dobbiamo diffidare, quindi avremmo potuto dare una occhiata a cosa stesse facendo lo script. Basta conoscere veramente poco di bash per capire che probabilmente c’era qualcosa che non andava, oppure chiedere aiuto sui numerosi forum.

In ogni caso è anche vero che questi errori dati dai gestori del sito non sono sempre accettabili. Gnome-look è un sito affidabile, quindi non ci si aspetta di trovare programmi malevoli (che non sono appunto dei virus…come hanno scritto in molti), è purtroppo vero che dall’altra parte se i gestori dovessero controllare in continuazione tutto quanto passerebbe molto tempo prima che vengano caricati nuovi file, ed è per questo che per offrire di più si chiede aiuto ai visitatori (ie: i visitatori se vedono qualcosa di sospetto sarebbero pregati di segnalarlo, non di lasciar perdere).
In conclusione dobbiamo ammettere che questo problema non era del sistema, ma dell’utente e dei gestori dei siti. In ogni caso è vero: nessun sistema operativo è inaffondabile, basta l’utente nella maggior parte dei casi per compromettere tutto.

Non per rigirare il coltello nella piaga, ma vorrei farvi notare un aspetto positivo; una sorta di magra consolazione.
Spesso per rimuovere il malware è necessario un antivirus perché può darsi che debba tentare di riparare il registro di sistema…oppure a volte siamo obbligati a installare un terzo programma, disabilitare l’antivirus e rimuovere il malware in questione.
Grazie al terminale invece è bastato un solo semplice comando da eseguire per rimuovere il  trojan installato e ripulire il sistema, per i più pigri è stato messo a disposizione dopo pochissimo tempo uno script, così da non dover nemmeno fare copia-incolla.

Clicca sul link per tornare alla pagina principale sulla Sicurezza Informatica





Sicurezza informatica, l’utente

30 07 2010

Lo dovreste già sapere, ma torna utile ricordarlo una volta in più…

Per quanto sicuro possa essere qualcosa nell’informatica basta l’utente (o chiunque abbia accesso fisico alla macchina) per compromettere la sicurezza di qualsiasi sistema.

Facciamo un paio di esempi…

- Immaginate un utente completamente ignorante (ma che vuole fare tutto da solo), che vuole avere la completa sicurezza di non aver un virus o altro malware nel proprio computer, cosa fa? Una affrettata ricerca in internet lo porta ad un forum o ad un tutorial, in cui c’è scritto di installare un programma che controlla l’intero sistema. C’è anche una nota che dice di stare attenti, perché dal momento che tocca alcune chiavi di registro e altri file importanti del sistema l’antivirus installato potrebbe erroneamente riconoscerlo come virus, pertanto è consigliato disattivarlo.
Potrebbe anche esserci scritto di dargli permessi di connettersi alla rete (e quindi di sorpassare il firewall) perché così si può connettere a internet e consultare un database online sempre aggiornato per poter riconoscere qualsiasi tipo di minaccia.
E a questo punto il gioco è fatto. L’utente ignaro segue tutti gli indizzi, evitando gli avertimenti dell’antivirus, del firewall e eventualmente anche qualche programma di terze parti che chiede se dare ad un programma il permesso di modificare alcune chiavi del registro o file importanti, e installa fieramente il suo programma. Mentre l’utente guarda il nuovo programma a fare la scansione del sistema non sa che in realtà questo sta scaricando virus di tutti i tipi dalla rete, sta inviando a terzi i suoi dati personali e chissà cosa altro.
Magari alla fine della scansione vi segna anche qualche problema e vi chiede di scaricare la versione a pagamento (e se vuole fare anche lo sbruffone vi dice che antivirus avete installato e che non è molto sicuro).
Ovviamente la versione a pagamento non farà un lavoro molto diverso da quello gratuito, magari farà qualche altra finta scansione e cancellazione e vi dirà anche di aver eliminato tutti i virus, lasciandovi però installati quelli che inviano le vostre informazioni a terzi.
Non è un bello scenario vero?
E non pensate che non esistano utenti così, perché la maggior parte ha la brutta abitudine per prendere per oro colato quello che c’è scritto su qualsiasi sito, senza controllare in modo approfondito le fonti o senza. Purtroppo online esistono molte “truffe”, alcune anche molto semplici, altre più o meno pericolose. Sapevate che ad esempio potete comprare blender (anche chiamato 3dmagix sul sito) per soli 26$? Ovviamente bastava una velocissima ricerca per scoprire che blender è opensource e gratuito e che non dovete sborsare niente. Da un certo punto di vista non c’è niente di male, il tizio vi offre in cambio del pagamento un cd (o almeno così è scritto), la cosa veramente triste è che la blender foundation non ci guadagnerà niente e non viene fatto nessun riferimento ad essa, come se il programma non appartenesse a loro.
Nonostante la pagina in cui lo presentano è molto triste e fin troppo semplice (Si vede lontano un miglio che potrebbe essere una truffa) c’è gente che lo ha comprato senza porsi problemi, scoprendo magari solo più tardi la truffa. Non che 26$ siano tanti, ma se li devo spendere per Blender allora li do’ alla Blender Foundation che lavora per quel programma e non ad un tizio che ha creato solo una pagina truffaldina!
Esistono infatti svariati esempi di gente che ha commercializzato falsi antivirus per prendere il controllo di svariate macchine, prodotto programmi non funzionanti che rovinavano irreparabilmente il registro di sistema o modificavano senza il consenso dell’utente importanti impostazioni…perché tali programmi prendano il controllo del computer serve il consenso dell’utente, senza di esso non si installano di certo da soli.

Se pensate che una soluzione possa essere quella di non dare all’utente la possibilità di installare programmi sconosciuti, allora sappiae che qualcosa del genere esiste gia, come ad esempio l’iPhone e i suoi fratelli. Però, come possiamo notare, alla fine l’utente può mettere a rischio anche quel sistema operativo, sopratutto dopo aver eseguito il jailbreak per installare le applicazioni gratuitamente (se facesse il jailbreak per avere un cellulare più libero o per installare programmi suoi (e non quelli a pagamento gratuitamente) non capisco perché allora non prenda un cellulare veramente più libero, che monta ad esempio maemo, meego, android…). Personalmente non la trovo in ogni caso una buona soluzione, prima di tutto perché essendo il computer mio (lo ho comprato) ho il diritto di eseguire quello che voglio (compresi programmi fatti da me al momento, che non saranno mai su una lista di eseguibili da poter lanciare, per quanto completa), in secondo luogo perché vuol dire che c’è qualcuno che controlla che applicazioni posso usare, e in base a questo può discriminarne ingiustamente altre.

- Supponiamo di avere un computer e non vogliamo che nessuno oltre a noi lo possa usare per evitare danni.
Bene, sappiate che avete persona in partenza se dobbiamo considerare che questo fantomatico utilizzatore abbia accesso al computer…
Infatti potete inserire tutti i blocchi che volete, password differenti ad ogni singolo file, per l’accesso del sistema, e tutto questo non servirà a niente. Basta usare un cd-live, montare l’hard disk e sostituire cancellare tutti i file senza nessun problema…
Dobbiamo quindi impedire che si possa far partire un cd-live, quindi settiamo opportunamente il bios e proteggiamo il suo accesso con una password.
A questo punto abbiamo due strade….a questo punto abbiamo due strade….o effettuiamo un jump, o cancelliamo la password dal bios oppure sostituiamo semplicemente l’hard disk con uno con un altro sistema operativo e lo colleghiamo come hard disk esterno, in questo modo possiamo nuovamente fare quello che vogliamo con il sistema operativo del computer, cancellare o modificare file a piacimento.
Altre soluzioni sarebbero quelle di togliere i cavi di alimentazioni, eventualmente, nel caso dei portatili, le batterie, oppure la ram, con questi modi i computer non si accenderebbe nemmeno…ma tutto questo non impedisce ancora ad un malintenzionato si sostituire i pezzi a piacimento…
Quindi dobbiamo impedire un accesso fisico all’hard disk o al bios, nonostante i computer portatili sono un poco difficili da smontare non è impossibile, mentre quelli fissi sono normalmente molto semplici….e anche adesso non sarei troppo sicuro sul fatto che il computer sia al sicuro (usando una calamita dovreste essere in grado di rovinargli il disco rigido…)…in ogni modo anche il computer è diventato poco utilizzabile da parte vostra…, notate che questo esempio ricorda un poco il fatto che ho scritto prima sull’iPhone: per quanti blocchi si mettano, si possono aggirare abbastanza facilmente se si ha un accesso fisico al calcolatore, altrimenti se non si ha accesso fisico alla macchina basta quindi convincere l’utente e si ha gia forzato qualsiasi sistema.

Possiamo quindi concludere che niente salva il computer che si possa utilizzare da un utente ignaro o da un accesso fisico!

Clicca sul link per tornare alla pagina principale sulla Sicurezza Informatica