Sicurezza e GNU/Linux (11): l’hardening, ovvero come a livello di sistema si prevengono le vulnerabilità – 1
Riprendo il discorso Sicurezza e GNU/Linux con un post riassuntivo sulle misure che permettono di prevenire le vulnerabilità dei programmi. Per capire di che parliamo, prima è necessario rileggere i primi post di questa categoria: 1 e 2 .
Riassumendo: un programma vulnerabile è un software che, a causa di un mancato controllo sui dati in ingresso, permette ad un malintenzionato di confezionare un insieme di dati (ad esempio in un file oppure in un pacchetto spedito via rete) che inducono il programma a comportamenti non previsti. Leggi tutto…
Sicurezza e GNU/Linux (parte 3): vulnerabilità/2
Vulnerabilità “by design”
E’ piuttosto difficile definire una vulnerabilità “by design”, cioè un “errore di progettazione”. Prendendo alla lettera l’espressione, praticamente tutti i programmi e i sistemi operativi, se considerati dal punto di vista della sicurezza, contengono svariati “errori” di progettazione. In realtà questo dipende molto da due principi della sicurezza informatica: a) la sicurezza è inversamente proporzionale alla facilità d’uso; b) la sicurezza è un concetto relativo. Leggi tutto…
Sicurezza e GNU/Linux (parte 1): tipologie di attacco
Un viaggio a puntate sulle tematiche legate alla sicurezza, ai sistemi Unix e al software libero.
Le tipologie di attacco
Prima di parlare di come proteggere un software, è bene capire da cosa un software va protetto. Possiamo distinguere grossolanamente i tipi di attacco informatico in tre categorie:
1. Attacchi che sfruttano la “buona fede” dell’utente (social engineering);
2. Attacchi che sfruttano una falla (vulnerabilità) involontaria del software;
3. Attacchi che sfruttano un difetto di progettazione del software, di un protocollo di comunicazione o di un formato dati (by design);
4. Attacchi che sfruttano una configurazione debole (o persino del tutto errata) del software.
La prima tipologia parte dall’assunto che l’utente è l’anello più debole di un sistema informatico. Sebbene a prima vista possa sembrare una banalità, in realtà si tratta di una vera filosofia, il cui postulato (corretto, ma non scontato) è che l’utente fa parte del sistema informatico stesso. Oggi l’ingegneria sociale è senza dubbio la metodologia preferita negli attacchi informatici a causa della larghissima diffusione dei computer presso utenti del tutto privi di ogni nozione fondamentale sulla sicurezza informatica. Inoltre, dal punto di vista tecnico, sfruttare l’ingenuità dell’utente è decisamente più semplice di studiare in modo approfondito un software per scoprire i suoi punti deboli.
La seconda tipologia di attacco si basa invece proprio sulla scoperta di errori di programmazione all’interno del software.
La terza tipologia invece non si appoggia su un vero e proprio errore di programmazione, ma su un errore di progettazione. La differenza a volte è sottile, ma ha (in certi casi) delle conseguenze pratiche molto rilevanti. Mentre una falla dovuta ad un errore di programmazione può essere facilmente corretta nelle versioni successive del programma, una falla dovuta ad un difetto di progettazione può voler dire dover riscrivere parti molto consistenti del software, disattivare funzionalità o realizzarle in modo differente, perdendo a volte la compatibilità verso il passato. Nel casi peggiori, la falla non potrà mai venire corretta, ma eventualmente si dovranno tamponare le conseguenze. Si tratta quindi di un caso più grave rispetto alla tipologia 2.
Per capire la differenza, possiamo fare questo esempio: in una partita di calcio, l’allenatore decide di usare lo schema 4-4-2. La partita va bene ma ad un certo punto un giocatore dà un pugno in faccia ad un avversario in area: il giocatore viene espulso, la sua squadra subisce un rigore e perde il confronto. Questo non significa che lo schema 4-4-2 sia errato: semplicemente un fattore contingente ha determinato la sconfitta. Nelle partite successive l’allenatore eviterà di schierare il giocatore troppo violento per risolvere il “bug”.
Un altro allenatore invece decide di adottare lo schema (assurdo, si intende) 1-1-8. La squadra perde tutte le partite allo stesso modo. In questo secondo caso, c’è poco da cambiare giocatori o intimare loro di adottare il fair play: è lo schema ad essere totalmente sbagliato, chi deve andarsene è semmai l’allenatore.
Vulnerabilità relative ad una cattiva progettazione possono riguardare anche protocolli o formati di dati. In questo caso, qualsiasi implementazione software, dovendo rispettare le specifiche del protocollo o del formato di dati, può potenzialmente essere affetta dalla vulnerabilità.
Infine, è frequente in caso di attacchi rivolti a sistemi la cui configurazione in termini di sicurezza è debole o errata. Il caso più comune è quello di assegnare permessi eccessivi a script o eseguibili binari, contravvenendo alla regola aurea dei “permessi minimi”.
Bisogna sottolineare che spesso gli attacchi vengono condotti con tecniche miste: ad esempio, sapendo che un browser ha una certa falla, si deve però indurre l’utente a visitare il sito appositamente creato per sfruttarla. Per farlo tornano quindi utili le tecniche di social engineering.
Nella prossima puntata vedremo cos’è concretamente una vulnerabilità, analizzando le più comuni tipologie.
Niente di serio…
Cito testualmente da punto-informatico.it:
Adobe e Microsoft insieme per la sicurezza
il che mi fa venire nuovi e divertenti titoli:
Erode e Annamaria Franzoni insieme per l’infanzia
Jack lo squartatore e Rodney Alcala insieme per le donne
Berlusconi e Verdini insieme per la legalità
Buone notizie, un altro trojan per GNU/Linux :)
La notizia è di quelle che faranno davvero discutere.
Gli utenti GNU/Linux (o forse dovrei dire, gli amministratori di server) che, da novembre del 2009, hanno installato UnrealIRCd (un server di chat IRC molto diffuso) si sono beccati insieme ad esso un trojan. Il trojan nel caso specifico è anche piuttosto pericoloso, perché permette l’esecuzione, da remoto, di qualsiasi comando con i privilegi dell’utente che esegue il demone. I bravi amministratori creano un utente apposta, come si deve sempre fare in questi casi. I dementi invece usano root. Nel caso migliore insomma, il massimo che potrebbe succedere è che l’attaccante remoto cambi la configurazione del demone o legga i log delle connessioni e, probabilmente, possa acquisire informazioni sugli utenti. Nel caso peggiore, l’attaccante potrebbe fare qualsiasi cosa su quel server.
Mac OS avrà un antivirus integrato. Ma non proprio un vero antivirus
Ebbene sì, anche Mac avrà il suo antivirus. Di fabbrica. E’ una delle novità di Mac OS X versione 10.6 in uscita a brevissimo.
Ma come, avevi detto che non esistono virus per Mac e GNU/Linux!
Sì, infatti non è un vero antivirus 😀
Sicurezza: ma davvero il problema è l’utente?
Spesso leggo: “il maggiore problema di sicurezza è tra il monitor e la sedia”. Ma è davvero così?
Windows fa male anche a te che non sei un utente Windows
Chi è utente GNU/Linux o Mac Os X crede di non avere nulla a che fare con i problemi di sicurezza legati a Windows. Su Mac OS e su GNU/Linux non esistono virus, i trojan te li devi andare proprio a cercare, gli spyware sono al limite i cookie traccianti, e lì basta usare qualche piccola precauzione.
Purtroppo però, nella Rete, un nodo insicuro rende insicura tutta la Rete. E considerando la preponderanza dei client Windows rispetto agli altri sistemi, il problema è davvero enorme.
Vediamo di capire perché.
Microsoft cerca di mettere una pezza all’autoelevazione dei privilegi di Windows 7. Ma non ci riesce
Nuova puntata nella saga dell’insicurezza di Windows 7. Ricordate che tempo fa è stato rilasciato un piccolo tool per sfruttare malevolmente l’autoelevazione dei privilegi di Windows 7? Se non lo ricordate ne ho parlato in questi post: 1, 2 e 3
Microsoft ha sempre negato che l’autoelevazione dei privilegi sia un problema di sicurezza. Eppure un nuovo strumento di sicurezza di Windows 7, chiamato Microsoft Security Essential (MSE: una sorta di successore di Windows Defender) segnala proprio quel tool come malevolo, bloccandolo.
“Bene!” grideranno subito i Windows-fan. Purtroppo l’entusiasmo dura poco.
Microsoft non correggerà i problemi di sicurezza di Windows 7
Ormai è ufficiale. Microsoft ha deciso di non correggere i problemi di sicurezza legati all’elevazione automatica dei privilegi, di cui ho già parlato qui. Il motivo è che non considera questo un problema. Leggi tutto…
Commenti recenti