Inserisci Infobox

Introduzione alla sicurezza

Introduzione alle problematiche di sicurezza su Internet

Information Security: definizioni e contesti
Autore: al - Ultimo Aggiornamento: 2003-05-02 11:59:32 - Data di creazione: 2003-05-02 11:59:32
Tipo Infobox: DESCRIPTION - Skill: 1- NOVICE

La sicurezza informatica è un argomento vasto che può essere considerato da diversi punti di vista e richiede un approccio globale e sistematico.
La necessità di proteggere un sistema informatico ha le stesse motivazioni di quella richiesta per edifici, documenti, oggetti e presenta aspetti simili.

Il tipo di problematiche da fronteggiare, a prescindere dal valore e dalla natura di quanto si intende proteggere, sono raggruppabili in poche categorie:
- Accesso a dati, documenti, oggetti, edifici e informazioni da parte di persone non autorizzate a farlo (concorrenti, governi stranieri, nemici, curiosi...). In questi casi le problematiche a cui si va incontro riguardano il controllo degli accessi e la verifica dell'identità di chi è autorizzato.
- Integrità di dati o oggetti, per evitare la manomissione, la modifica o la distruzione degli stessi. Per garantirla si deve avere la fiducia nelle persone autorizzate alle modifiche e la protezione da parte di estranei o persone non autorizzate (che potrebbero al contempo avere diritti e necessità di consultazione o accesso).
- Disponibilità dei dati, delle strutture che li forniscono, degli oggetti e di qualsiasi cosa che per essere utilizzata deve essere, in primo luogo, disponibile. Per questi compiti ci si deve difendere anche da elementi naturali o accidentali (terremoti, incendi, inondazioni, black out...).

In campo informatico la sicurezza riguarda essenzialmente dati disponibili su computer. La capacità di leggerli, modificarli e lo stessa possibilità di accedere ad essi grazie alla funzionalità dei sistemi in cui sono tenuti.
Una prima basilare distinzione va fatta fra computer in rete e computer accessibili solo direttamente.
In entrambi i casi l'accesso fisico alla console dei computer è un punto importante ma su macchine non in rete è una conditio sine qua non. Per sistemi in rete le problematiche aumentano notevolmente e se questi sono su Internet diventano particolarmente estese e varie, in quanto si deve provvedere a difendersi da maggiori quantità e diverse qualità di minacce possibili.

Per sistemi su Internet, in particolare, le minacce e il tipo di ostilità da cui difendersi sono:
- Virus, worm e altri agenti automatici, che si diffondono autonomamente su sistemi non aggiornati, senza volontà e intervento umano e possono causari danni di entità variabili;
- Scan su larga scala alla ricerca indiscriminata di sistemi vulnerabili sfruttando buchi di sicurezza generalmente noti. Questi scan possono essere fatti da script kiddies (individui normodotati che usano programmi noti, non particolarmente complicati) o cracker più esperti allo scopo di individuare rapidamente sistemi da violare ed utilizzare per svariati scopi (deposito di warez, host di appoggio per attacchi o scan ad altri server, defacing di siti web...).
- Attacchi mirati determinati alla penetrazione di uno o più host di un entità specifica per modalità varie (spionaggio industriale, furto di numeri di carta di credito, rappresaglia politica, vendetta... ). Sono insidiosi e i più pericolosi, perchè se effettuati da cracker capaci e determinati possono compromettere anche sistemi ben protetti.

Le protezioni e quindi le policy di sicurezza da adottare hanno diversi livelli di complessità e approfondimento: se è relativamente semplice difendersi dai primi due tipi di minacce, impostando una struttura che espone solo i servizi strettamente necessari e tenendo aggiornato il software che gestisce questi servizi, diventa molto più impegnativo realizzare una struttura estremamente sicura, in grado di resistere agli attacchi più smaliziati, sia tramite Internet che per vie indirette, come la stessa manomissione da parte di personale autorizzato, a vari livelli, all'accesso ai sistemi.

Introduzione al design di una infrastruttura di rete sicura
Autore: al - Ultimo Aggiornamento: 2003-05-02 12:08:46 - Data di creazione: 2003-05-02 12:08:46
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Non esistono certezze nel campo dell'Information Security, non esiste un sistema in rete sicuro al 100%: di un software che oggi appare sicuro, domani potranno essere trovati buchi sfruttabili per intrusioni esterne; una rete per quanto protetta deve essere amministrabile e chi la amministra o la utilizza con privilegi particolari, può essere esso stesso una minaccia.
Per quanto le problematiche di sicurezza siano quindi vaste e abbiano fattori diversi (accesso fisico ai sistemi, livello di fiducia nelle persone che li amministrano, potenziale insicurezza dei software usati...) si possono definire alcune linee guida minime per disegnare una rete il più possibile protetta da quelle che di fatto sono le maggiori minacce: l'intrusione di ignoti da Internet.
L'accesso da remoto ad un sistema può avvenire quasi esclusivamente tramite una porta TCP o UDP aperta su un host in rete, per cui a livello di networking il controllo e l'attenzione vanno posti su quali porte lasciare accessibili e come.
Realizzare una rete con un design di base sicuro richiede l'applicazione di alcune semplici regole di base, che vanno adattate ai diversi contesti specifici:

- Chiudere le porte su IP pubblico non utilizzate
Ogni tentativo di intrusione remoto può avvenire solo tramite eventuali porte aperte su un host. La prima, fondamentale, comoda e utile procedura da adottare per iniziare a proteggere il proprio network è quella di non lasciare varchi inutili ai potenziali intrusori.
La chiusura delle porte può essere fatta sia a livello dei singoli host (consigliata in ogni caso), rimuovendo tutti i servizi che non servono, sia a livello di firewall perimetrale, con un rigoroso packet filtering.
Le due soluzioni non sono alternative, anzi possono tranquillamente coesistere: sull'host si rimuovono i servizi inutili, sul firewall si possono gestire quali indirizzi IP sorgenti possono accedere a determinati servizi.
Questo si ricollega al secondo punto chiave:

- Centralizzare i punti di controllo del traffico
Tipicamente una rete aumenta la sua complessità con la sua naturale crescita, ma se non viene strutturata dall'inizio in modo lungimirante, rischia di diventare una matassa di router e firewall su cui si deve intervenire in caso di problemi o "aperture di porte".
Centralizzare i punti di routing e firewalling aiuta a implementare più facilmente modifiche alle configurazioni esistenti e a dignosticare problemi di rete, oltre a ridurre i point of failure della nostra infrastruttura.
Il firewall perimetrale (lo trattiamo come entità unica, ma può essere tranquillamente una coppia o una "nuvola" di firewall in failover) dovrebbe, di default, bloccare ogni tipo di pacchetto dall'esterno e prevedere regole specifiche per ogni server in produzione. Queste regole possono essere di 2 tipi:
- regole che aprono una determinata porta di un dato host a tutta Internet. Queste sono quelle necessarie per i servizi pubblici in produzione (server web, server di posta, DNS ecc.) ed è bene che "aprano" sono le porte strettamente necessarie e non tutto un indirizzo IP (anche se su questo risponde una macchina con tutti i servizi inutili disattivati). Sui firewall che gestiscono regole di filtraggio in modo sequenziale (le catene di iptables, le ACL del Cisco IOS o del PIX...) è sempre meglio mettere per prime le regole che riguardano i flussi di traffico maggiori, per diminuire l'impatto sulle risorse evitando inutili controlli su regole di filtering poco usate.
- regole che aprono l'accesso a determinate porte e IP da specifici IP sorgenti. Possono essere necessarie per aprire l'accesso FTP a dei data feed provider o permettere l'accesso in VPN da una determinata sede o l'accesso ad un database da un server remoto. Queste tipicamente tendono a rendere più verbosa e complicata la configurazione di un firewall, dal momento che devono adattarsi a IP sorgenti specifici, ma visto che sono necessarie è opportuno centralizzarle.
Nell'applicare simili regole, che tendono per il loro numero ad appesantire il firewall, si consiglia buon senso e tendenza al raggruppamento: se ci sono più IP da "aprire" della stessa subnet, si può considerare l'apertura dell'intera subnet, se ci sono più porte da aprire (sopratutto porte che di fatto permettono l'accesso al sistema, come telnet e ssh) può aver senso aprire l'accesso all'intero IP dell'host di destinazione, senza specificarne le singole porte.

- Controllare tutti i punti di accesso
In termini di sicurezza informatica, l'anello debole, quello meno controllato e sicuro, riduce la sicurezza di tutta l'infrastruttura. Per questo motivo è fondamentale identificare e ponderare ogni punto di accesso ai nostri sistemi da remoto. Questo include router e linee di partner, clienti e fornitori, macchine per permettono l'accesso via modem alla rete da proteggere ma anche dipositivi meno comuni come gateway X25 per pagamenti elettronici.
A prescindere quindi da tutte le protezioni del caso da prendere sia a livello fisico, che a livello dei client degli utenti (sviluppatori, sistemisti, redattori ecc) che in qualche modo possono accedere in modo privilegiato alla nostra rete, vanno verificati anche tutti i punti di entrata accessibili pubblicamente.
Come sempre, se questi prevedono un accesso via password, la coppia login-password dovrebbe non essere facilmente intuibile e il relativo traffico dovrebbe essere criptato.

- Design multilayer in caso di reti complesse
Se la rete da gestire comprende decine di host, di diversi utilizzi (macchine in produzione di front-end, cioè che devono interagire direttamente con Internet, macchine di backend come database o sistemi di monitoring, macchine di stage e pre-produzione, macchine di sviluppo, client di sistemisti e sviluppatori ecc) è opportuno valutare una suddivisione della nostra rete in più livelli, cercando di proteggere quelli più interni e delicati (il backend) e limitando allo stretto necessario l'accesso a queste macchine da parte di altre macchine più esposte (per esempio i server pubblici di front-end, i server di sviluppo, i client vari).
In strutture complesse, inoltre, le macchine di frontend, se possibile, non dovrebbero avere accesso in scrittura ai dati: un web server per esempio non dovrebbe poter scrivere sulla directory in cui sono contenute le sue pagine web, eventualmente generate da un Content Management System sul backend.
Con reti più semplici è comunque buona norma cercare di limitare allo stretto necessario le possibilità di comunicazione di una macchina con qualciasi altra macchina del nostro network, in modo da limitare i potenziali danni su tutti i sistemi dopo l'intrusione in uno degli host.

- Diversificare le difese
Il Tipico Esperto di Sicurezza, per definizione, solleva una quantità di problematiche enormi, non del tutto ingiustificate invero, e arriva ad analizzare molteplici aspetti, dalla sicurezza fisica al training del personale, dal logging di ogni bit sospetto alla gestione di un verbosissimo IDS, che nella realtà spesso diventano di difficile attuazione.
Un'altra delle Tipiche Raccomandazioni del suddetto Esperto è la diversificazione delle difese: non basta il firewall, non basta l'IDS, non basta la password sul Bios: ogni possibile mezzo per rendere difficile la vita ad un cracker è un buon mezzo, anche se a volte rende la vita difficile anche ad un sysadmin.
Un esempio tipico è la rimozione di ogni programma non strettamente necessario da un server in produzione: nessun comando per scaricare un file da remoto (wget, ftp, lynk, irc, curl ecc), nessun compilatore che permetta ad un intrusore di compilarsi i suoi sorgenti maligni direttamente sul nostro sistema, sistema di Mandatory Access Control che impedisca ad un qualsiasi processo di fare qualcosa di diverso da quello che è stato configurato per fare.
Dal punto di vista della sicurezza sono tutti buoni mezzi che aumentano la solidità del sistema e al contempo ne aumentano la difficoltà di gestione.
Come al solito, nel mezzo e nelle nostre specifiche esigenze, sta la soluzione ideale.

A queste indicazioni generali, che si applicano considerando solo a livello di rete le nostre problematiche di sicurezza si affiancano tutte le altre procedure volte a rendere sicuri i servizi che si lasciano aperti in rete.
Questo è un argomento ben più complesso e articolato, che riguarda i singoli sistemi operativi, i software utilizzati e le proprie implementazioni specifiche.
Come si è potuto intravedere, quindi, realizzare un sistema estremamente sicuro è complicato e richiede sforzi e risorse notevoli, ma realizzare una struttura di rete "ragionevolmente" sicura, che ci possa proteggere dalla maggior parte delle insidie non è eccessivamente gravoso e si può riassumere, semplificando all'estremo, in tre principi fondamentali:
- ridurre al massimo le porte esposte a Internet;
- avere software aggiornati in ascolto sulle porte esposte;
- non configurare in modo scorretto i servizi pubblici.

Carte servizi "intelligenti" in ambito universitario
Autore: kbonasia - Ultimo Aggiornamento: 2006-02-10 13:46:35 - Data di creazione: 2005-09-23 18:07:14
Tipo Infobox: ARTICLES - Skill: 2- JUNIOR

Le università ricoprono un ruolo importante nella nostra società impegnando un elevato numero di personale e studenti. Ponendo sotto la prospettiva della qualità dei servizi, l'università deve essere vista come una qualsiasi azienda, attenta ad offrire un buon servizio ai suoi utenti-clienti, gli studenti e ai suoi dipendenti. Per aumentare la qualità dei servizi si deve intervenire sul processo di automazione.

Negli ultimi dieci anni sono aumentati notevolmente il numero dei docenti, dei corsi, la distribuzione sul territorio delle facoltà. Tutto questo per offrire maggiori servizi agli studenti che le università oggi si contendono come le aziende fanno con i propri clienti. Tuttavia la riorganizzazione ha un costo per le università.

Allargare i servizi per gli universitari è una fonte per ricavare finanziamenti da entità che hanno interesse ad averle, le banche ad esempio. Una gestione automatizzata e flessibile dell'apparato universitario può arricchire i servizi agli studenti, per esempio durante l'iscrizione agli esami o per l'accesso alla biblioteca o alla mensa, e migliorare le prestazioni didattiche, per esempio con l'erogazione di corsi di apprendimento on line o la disponibilità di materiale di studio on line. Un notevole risparmio in termini di impegno da parte dei docenti che potrebbero profiquamente occuparsi degli approfondimenti didattici e degli incontri con gli studenti.

Puntano in questa direzione, ad esempio, le iniziative per l'introduzione delle carte intelligenti a microprocessore (meglio note come smartcards) per offrire servizi di accesso e di pagamento. In attesa che si comprenda che una sola smartcard nazionale, del cittadino, ad esempio, la carta di identità elettronica, possa essere considerata come unico documento polivalente ai fini dell'identificazione in ambito civile, o sanitario, o bancario, le università italiane, come del resto molte altre P.A., si adeguano come possono, con progetti autonomi e spesso non "interoperabili".

In generale, la smartcard è dotata di banda magnetica e microprocessore, assolve le funzioni di identificazione per l'accesso alle strutture, sia in modo passivo, cioé apponendo sulla sua superficie la foto del titolare, e quindi usata alla stregua del tradizionale tesserino, sia in forma attiva, mediante la verifica delle informazioni in essa contenute (il certificato digitale), da parte di un sistema di autenticazione integrato con il sistema informativo d'ateneo.

Quindi verificare ed autorizzare l'accesso a biblioteche (magari gestendo il prestito in forma elettronica), l'accesso alla mensa e possibilmente consentire il pagamento di un solo pasto o di quelli previsti secondo i casi (e quindi ottimizzare la gestione contabile e la pianificazione delle attività delle opere universitarie), nonché l'accesso alle postazioni Internet, anche nel rispetto delle recenti norme sulla sicurezza emanate dal Governo.

I vantaggi sono evidenti, se l'integrazione a livello di sistema informativo d'ateneo è effettiva: snellimento del carico operativo degli sportelli di front-office; velocità nei pagamenti e ovviamente fidelizzazione della comunità studentesca.
Per ottimizzare i processi, anche le banche devono svolgere la loro parte, il valore aggiunto che si vuole offrire con le smartcard è proprio quello della possibilità di gestire i pagamenti degli studenti. Sia nella forma del cosiddetto "borsellino elettronico" che nella più affermata forma della carta prepagata.

Ovviamente come detto in precedenza sarebbe aspicabile che i servizi offerti allo studente potessero essere estesi anche al di fuori della struttura d'ateneo, ad esempio consentendo la fruizione di servizi urbani o di svago senza dover ricorrere ad una "collezione di rettangolini di plastica" più o meno affascinanti dal punto di vista meramente artistico.

La smartcard, conforme ai principali standard si presta quindi ad essere utilizzata in applicazioni ancora più avanzate che consentano, ad esempio, l'apposizione della firma elettronica su documenti ufficiali. Immagino lo snellimento delle procedure burocratiche per l'ottenimento di un alloggio: il contratto di affitto firmato elettronicamente sarebbe anche monitorabile ai fini del controllo sull'evasione fiscale.

La firma elettronica può essere apposta anche ai verbali d'esame, comprovandone l'autenticità e creando un documento elettronico conforme alle norme vigenti. I documenti completati vengono poi trasmessi in tempo reale al server amministrativo che, verificata l'autenticità delle firme digitali dei docenti e l'integrità dei documenti, provvede ad aggiornare le carriere degli studenti. È un altro scenario possibile che si è concretizzato come nel caso degli atenei di Bologna e di Udine, ad esempio, o che in altri casi rimane ancora allo stato di ipotesi alla deriva tra le beghe burocratiche e le difficoltà di recepimento dell'innovazione.

La sicurezza viene garantita attraverso una procedura di autenticazione che individua l'utente usando in modo incrociato due fattori, ovvero ciò che l'utente conosce e ciò che l'utente possiede. L'uso incrociato di password (ciò che l'utente conosce) e di smartcard (ciò che l'utente possiede) aumenta notevolmente il livello di sicurezza. L'accesso alle risorse sul web server è inoltre controllata da un meccanismo applicativo che permette di presentare l'intero sito sotto un unico URL e gestire la successione delle fasi di lavoro in modo completamente controllato. La predisposizione dei documenti avviene su un server, mentre ovviamente tutte le operazioni di firma digitale sono portate a termine localmente sul client.

Il punto debole è quindi rappresentato dalla necessità di dover interagire con la smartcard mediante l'apposito lettore. Sono rari i calcolatori che già utilizzano magari al posto dell'ormai in disuso floppy disk drive, un lettore di smartcard (mentre ce ne sono parecchi di più che già possiedono lettori multiformato per i supporti di memorizzazione digitale per file audio e video). La necessità di utilizzare un lettore di smartcard va di pari passo con l'esigenza di utilizzare l'apposito software per interpretare i dati e trattarli adeguatamente. Fortunatamente è possibile inserire questo componente tecnologico direttamente nell'applicazione acceduta mediante il browser, mentre per la parte "fisica" rimane l'esigenza di usare l'apposito lettore che a volte non è del tutto interscambiabile tra calcolatori con sistemi operativi differenti, oppure non è possibile utilizzare in condizioni di mobilità.

L'alternativa possibile, mantenendo uguale se non addirittura superiore il livello di sicurezza e la semplicità di funzionamento, è rappresentata dall'utilizzo di one-time-password. Oppure, utilizzare sistemi di autenticazione e micropagamento propri delle infrastrutture di telefonia mobile, per altro già adottate con successo nell'ambito di servizi come il pagamento dei titoli di viaggio per i mezzi urbani, piuttosto che i parcheggi, o l'acquisto di musica on line.

Qualunque sia l'architettura prescelta e la tipologia di servizi da offrire, è palese che essi saranno tanto più efficienti ed efficaci quanto maggiore sarà l'adozione di standard e di software a codice sorgente aperto, soprattutto in prospettiva di interoperabilità e integrazione con altri sistemi.

I vantaggi legati all'uso di one-time-password  sono legati al fatto che un'eventuale compromissione della password (ottenuta mediante key-logger, telecamera, occhio lungo, ecc...) non porta a nessun danno in quanto la password è valida per la sola sessione appena aperta. Questo permette di poter utilizzare anche postazioni pubbliche, per esempio internet-point di cui non si ha il controllo e quindi non se ne conosce il livello di sicurezza, con assoluta tranquillità.

Rimane il problema di come comunicare al legittimo utente l'elenco delle password. Se l'utente in questione è l'amministratore di sistema che occasionalmente deve poter accedere ai server da una postazione non sicura, una soluzione può essere quella di predisporre in fase di login la richiesta di inviare la password via SMS al numero di cellulare precedentemente inserito in un'apposita banca dati. La sicurezza in questo caso è legata ad una cosa che l'utente ha; per aumentare il livello di sicurezza si può aggiungere la richiesta di username-password in modo da avere anche una cosa che l'utente sa.

Per arrivare a compromettere un tale sistema è necessario che l'attaccante: riesca a scoprire la coppia username-password; rubi il cellulare e porti l'attacco nel lasso di tempo in cui il furto del cellulare non è stato ancora comunicato e quindi risulta attivo nella banca dati.

Un'alternativa a questo sistema è data dall'utilizzo di dispositivi hardware che generano a comando, la password da utilizzare. Tali dispositivi, a partire da un seme diverso per ogni utente, generano una sequenza pseudo-casuale di numeri; ogni volta che si pigia un tastino viene visualizzato un numero di cinque cifre sul display.

L'autenticazione avviene richiedendo all'utente di inserire il proprio codice identificativo una cosa che sa ed il numero visualizzato sul dispositivo una cosa che ha. Il server controlla per quel particolare codice identificativo qual'è stata l'ultima password utilizzata ed accetta come valide solo password successive nella sequenza pseudo-casuale (è possibile che l'utente pigi per errore il tastino di generazione delle password bruciandone qualcuna).

Il costo di questi dispositivi va da qualche euro a qualche decina di euro a seconda del numero di pezzi che si acquistano. Anche in questo caso un attaccante deve scoprire il codice identificativo dell'utente, rubare il dispositivo e portare l'attacco prima che l'utente blocchi il dispositivo. Una soluzione simile, ma più economica se si hanno migliaia di utenti, è data dall'uso  di un tesserino (di carta o di plastica) con stampata all'interno di una matrice una sequenza di numeri. Ogni numero è individuato dalle sue coordinate riga-colonna, proprio come nella battaglia navale. In fase di autenticazione dell'utente il sistema prima chiede username-password una cosa che l'utente sa poi genera casualmente un serie di coppie numero-riga:numero-colonna e chiede all'utente di immettere il corrispondente numero letto dalla sua tesserina una cosa che ha.

Un attaccante per compromettere il sistema deve scoprire la coppia username-password, rubare o copiare la tesserina e portare l'attacco prima che l'account venga bloccato. Come si vede in questo caso, rispetto ai due precedentemente illustrati, vi è una criticità in più: se la tesserina viene rubata l'utente se ne accorge e può quindi intraprendere delle azioni, ma se la tesserina viene sottratta per il breve lasso di tempo necessario a copiarla e poi viene rimessa a posto l'utente non si rende conto che il suo account è stato compromesso.

Nella scelta di un sistema di protezione bisogna quindi valutare il grado di sicurezza richiesto (l'accesso alla biblioteca necessita un controllo meno stringente rispetto al remote-banking), il costo del dispositivo, il costo dell'implementazione e di gestione dell'intero sistema (attenzione ai costi di help-desk legati a sistemi complicati da usare per l'utente), e la durata della soluzione che nel caso di dispositivo hardware vale per alcune migliaia di password prima che se ne renda necessaria la sostituzione.

A queste valutazione tecniche poi bisogna accompagnare valutazioni legali, in relazione ai dati trattati, ed organizzative interne.

Definizioni e termini comuni nell'information security
Autore: al - Ultimo Aggiornamento: 2003-05-02 12:25:44 - Data di creazione: 2003-05-02 12:25:44
Tipo Infobox: DESCRIPTION - Skill: 1- NOVICE

Quando si inizia a parlare di sicurezza il gergo informatico si fa particolarmente pittoresco e rigoglioso, al punto che può essere utile definire in modo chiaro alcuni termini comuni.

Quando si parla di minacce possibili, si possono incontrare termini quali:

Virus
Un pezzo di codice in grado di diffondersi e duplicarsi in modo autonomo, legandosi ad un programma, ad una libreria condivisa, ad un messaggio di posta elettronica ecc. Esistono migliaia di virus diversi, raggruppabili in alcune categorie base. In comune hanno la capacità di duplicarsi automaticamente, la possibilità di eseguire operazioni potenzialente dannose sui sistemi infetti, la possibilità di attivarsi in contesti o momenti determinati.
Un antivirus è un software in grado di intercettare un virus prima che entri sulla macchina locale (via posta elettronica, tramite un flopppy disk infetto, tramite una condivisione di rete...) e di controllare ed eventualmente riparare i file infetti presenti sul computer.

Worm
Un worm ha caratteristiche simili ad un virus: si duplica automaticamente e può farlo in modo estremamente rapido. A differenza di un virus non si attacca ad altri programmi ma tende a mantenersi autonomo e non necessariamente fa danni diretti (tipo cancellare dei file) ma con la sua esistenza può seriamente limitare banda e risorse a disposizione.
Tipicamente, inoltre, un worm si diffonde fra server in rete, sfruttando vulnerabilità note per penetrare in sistemi non protetti.

Trojan Horse
Il cavallo di Troia è un programma modificato che esegue funzioni particolari e potenzialmente nocive all'insaputa del possessore, a cui il programma appare funzionare normalmente. Lo scopo di un Trojan Horse, fedele al mito ellenico, è spesso quello di permettere dall'esterno un accesso, ovviamente non autorizzato, al sistema su cui viene eseguito.

Bomb
Una bomba può essere un virus, un worm o qualcosa di analogo che si attiva in un determinato momento, dando luogo all'azione nociva per cui è stata realizzata. I meccanismi di attivazione possono essere legati ad una data, un giorno della settimana o un'ora specifici (time bomb) o correlati a qualche evento specifico di varia natura (logic bomb).

Back door
Una back door (o trap door) è un meccanismo (incorporato dal momento della creazione in software esistente o introdotto in tempi successivi come un trojan horse su del software locale) con cui si permette l'accesso al sistema a prescindere dai metodi di accesso noti e conosciuti del possessore.
La backdoor può essere inserita dallo sviluppatore di un programma per operazioni di manutenzione o, in visione hollywoodiana, per ricattare chi ne fa uso, oppure, più comunemente di questi tempi, può essere predisposta su un sistema esistente da parte di un intrusore, che dopo aver violato la macchina sfruttando una vulnerabilità non protetta, vuole garantirsi la possibilità di rientrare sul sistema per vie autonome, senza dover riutilizzare la vulnerabilità usata la prima volta.

I personaggi che popolano l'underground informatico hanno nomi quali:

Hacker
Da sempre, in gergo informatico, l'hacker è lo smanettone ingenioso e curioso che affronta un oggetto o un problema da un punto di vista diverso da quello inizialmente previsto riuscendo a farne un utilizzo nuovo.
Meno estesamente, un hacker è un programmatore o tecnico informatico in grado di realizzare software particolarmente innovativo o valido.
Nonostante questa definizione tutt'altro che maligna, i media hanno spesso abusato del termine hacker per indicare un "pirata informatico", che penetra su sistemi remoti o sprotegge software protetto da diritti d'autore.
Un termine più corretto per questa definizione è cracker.

Cracker
Chi attacca sistemi remoti al fine di violarne le protezione e prenderne il controllo o chi rimuove le protezione di un software o, ancora, coerentemente con il significato della parola inglese, chi riesce a "rompere" e superare una qualsiasi forma di protezione informatica.

Script kiddie
Si definisce tale, con nemmeno molto velato spregio, il ragazzino (anagraficamente o mentalmente) che utilizzando strumenti e software comuni nell'ambiente underground attacca sistemi remoti in modo sistematico.
Tradizionalmente lo script kiddie (letteralmente ragazzino da script) non ha le capacità tecniche di un cracker esperto, ma può essere ugualmente pericoloso per il carattere sistematico su larga scala dei suoi "scan" automatizzati.

Lamer, loozer, l0zer...
Termini generici e molto soggettivi per indicare un "perdente", un ignorante o comunque una persona da poco. Il tutto ovviamente è strettamente relativo a chi utilizza il termine e alla sua scala di valori e metri di valutazione.
All'opposto di ciò che è lame c'è il cool, kewl o simili variazioni sintattiche sullo stesso fonema.
Anche in questo caso ciò che è "cool" per qualcuno può non esserlo per altri, ma a prescindere dal merito, "lame" è aggettivo con forte connotazione negativa e "cool" ha connotazione positiva.

Azioni tipiche da cracker sono:

Spoofing
L'atto di modificare una connessione o un passaggio di dati in modo da far credere al destinatario di comunicare con un'entità diversa da quella che crede. Tipicamente lo spoofing viene fatto sull'indirizzo IP sorgente, inviano pacchetti ad un dato destinatario che si presentano con un IP sorgente arbitrario o scelto appositamente per bypassare firewall e controlli di accesso. La risposta a simili IP, ovviamente, viene fatta all'IP sorgente "spoofato" per cui, per portare avanti una connessione, l'attaccante deve poter essere in grado di intercettare anche le risposte.

Sniffing
Il controllo e il monitoraggio del contenuto di pacchetti che transitano su una rete. Tramite lo sniffing tutte le informazioni che vengono inviate in plain text sono visibili, quindi se si tratta di informazioni sensibili come una login e una password, possono essere visualizzate.

Defacing
La modifica dell'home page, o di altre pagine, di un sito web, da parte di un cracker dopo un intrusione eseguita con successo. Può essere una azione dimostrativa volta a veicolare un messaggio di qualsiasi tipo o una semplice esibizione delle proprie capacità e di essere riusciti a craccare un sistema.

Scanning
L'analisi di un sistema remoto finalizzata all'individuazione di vulnerability note.
La forma di scanning più basilare è quella rivolta all'individuazione delle porte aperte sul sistema remoto, a sua volta, è possibile eseguire degli scanning più specifici alla ricerca di vulnerabilità sui servizi disponibili sulle porte aperte trovate.

Altri termini che si incontrano spesso quando si parla di sicurezza informatica:

Plaintext - cleartext
Un testo in chiaro, leggibile così come è stato scritto. Se qualcuno è in grado di accedere a questo testo è quindi in grado di leggerne il contenuto.

Cipher text
Un testo criptato, il cui contenuto deve essere decriptato per essere leggibile. In termini generici di sicurezza usare delle connessioni o dei messaggi cifrati è raccomandabile in quanto anche nel caso in cui il testo giunga ad occhi non autorizzati a leggerlo, questi non potranno decodificarlo senza le opportune chiavi di decriptazione.
La lunghezza delle chiavi di crittazione è direttamente proporzionale al tempo computazionale necessario per decriptare un file usando tentativi brutali e sistematici.

Access Control List - ACL
Un elenco di regole volte a individuare dei pacchetti secondo diverse caratteristiche (IP sorgente, porta di destinazione, IP destinazione ecc.) al fine di eseguire determinate azioni come permetterne il flusso o interromperlo. Vengono tipicamente implementate su dei firewall ma si possono riferire in ogni contesto in cui l'accesso ad una data risorsa è limitata in qualche modo.

Trusted
"Fidato". E' un aggettivo che si riferisce a qualsiasi elemento in rete (Indirizzo IP sorgente, host, network...) da cui ci si possono aspettare connessioni non ostili. Tipicamente da certe sorgenti fidate si permette l'accesso a servizi di un host che sono impediti a tutti gli altri indirizzi IP.

Vulnerability
Una vulnerability è un bug nell'implementazione di un protocollo o di un software che permette azioni ostili che possono intaccare la sicurezza di un sistema. Le vulnerabilità possono essere "note", cioè descritte in mailing list o su appositi archivi, oppure anche ignote, cioè non comunemente conosciute ma già scoperte ed eventualmente utilizzate da qualche cracker.
Molti prodotti di security scanning si basano proprio sugli archivi delle vulnerabilità note.

Buffer overflow
E' una tecnica di hacking che consiste nell'inserire, in qualsiasi contesto possibile (una GET http, il campo di un form html, le dimensioni di un pacchetto o di un campo della sua intestazione ecc) una grande quantità di caratteri in modo da cercare di mettere in difficoltà il programma che deve gestirli qualora non preveda meccanismi di controllo sulla lunghezza delle variabili che gestisce. Quello che può accadere è che, da un certo byte in poi, il testo in eccesso venga scritto in locazioni arbitrarie di memoria.
Questo può essere sfruttato in vari modi e può causare dal crash del software ad una intrusione vera e propria.

Rootkit
E' un insieme di tool e programmi che vengono utilizzati da un cracker dopo un intrusione allo scopo di cancellare le proprie tracce e assicurarsi la possibilità di ritornare sul sistema violato anche senza dover riutilizzare la vulnerability usata la prima volta.

Salvaguardarsi da SPAM e Virus codificando l'indirizzo e-mail
Autore: e4m - ( Revisione: al ) - Ultimo Aggiornamento: 2004-05-15 18:06:10 - Data di creazione: 2004-05-15 18:06:10
Tipo Infobox: TIPS - Skill: 3- INTERMEDIATE

Spam e virus, ogni giorno popolano milioni di caselle e-mail nel mondo.
Ricevere dello spam o ad esempio un virus, non è certamente gradito, pur se si utilizza un sistema invulnerabile come unix.

Un virus (worm) di ultima generazione, una volta infettato un utente windows, che magari ha visitato il vostro sito
(presente in cache: internet temporaney files), probabilmente procederà a scansionare tutte le pagine html che l'utente
ha nel HD. A quel punto si moltiplicherà inviando una copia di se stesso al vostro indirizzo, trovato nella pagina in cache.
Un ragionamento simile vale per gli SPAM-BOT: programmini che cercano tra le pagine html indirizzi e-mail validi.
Oggi si utilizzano tecniche valide per raggirare questo sistema.
Supponiamo che il vostro indirizzo e-mail sia: [email protected]

Potreste semplicemente cambiare il simbolo chiocciola (@) in (at), in maniera tale che il programma non riesca a
'comprendere' la sintassi della mail.Oppure utilizzare dei separatori speciali, vediamo degli esempi:
abc at tuodominio.org
abc (chiocciola) tuodominio.org
abc __at__ tuodominio.org

Putroppo ci sono casi in cui un programma, con un repertorio di sintassi forbito, riesca a catturare il vostro indirizzo.
I sistemi più sicuri sono:
1. Scrivere l'e-mail in un file immagine (ovviamente non visualizzabile da browser testuali, vedi links)
2. Codificare il vostro indirizzo utilizzando uno javascript.

Per realizzare il secondo basta una semplice tabella ASCII. Bisogna editare il seguente script ed inserirlo nelle vostre pagine:
<script language="JavaScript">
        document.write('<a href="mailto:&#97;&#98;&#99;' + '@' + 'tuodominio.org">' + '&#97;&#98;&#99;' + '@' + 'tuodominio.org</a>');
</script>


document.write è una funzione che stampa semplicemente dei caratteri. Se anteposto il simbolo '&', provvede a codificare anche caratteri ASCII.Insomma, simile al write del C.
Non dobbiamo fare altro che cercare i rispettivi caratteri ASCII della vostra e-mail e separarli con un puntoevirgola (;) (nel nostro caso: a = 97 , b = 98 , c = 99 ) e aggiungere la stringa '@tuodominio.org' (non c'è bisogno di codificarla).

Esempio: Network Exterior Firewall
Autore: al - Ultimo Aggiornamento: 2005-05-20 22:59:53 - Data di creazione: 2004-10-20 11:51:38
Tipo Infobox: SAMPLE - Skill: 3- INTERMEDIATE

In uno dei scenari di rete classici è previsto un firewall esterno, a proteggere gli host di una DMZ, e un eventuale separato firewall interno, con un IP sulla DMZ pubblica e una interfaccia verso una LAN interna.

Configurazione essenziale di un firewall esterno
La DMZ è routata e prevede host con IP pubblico (si è usata una rete d'esempio, la 217.56.217.0/255.255.255.240, arbitraria ma realistica).
Il firewall routa e filtra secondo logiche semplici e comode (permissive)
- Protegge un server di posta (SMTP e POP3) e DNS
- Protegge un secondo server web (HTTP e HTTPS)
- Permette libero traffico in uscita (outbound) sia dalla DMZ che da se stesso verso Internet
- Permette accesso SSH da un IP fidato (arbitrario) per gestione remota

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m tcp -p tcp --dport 22 -s 10.0.1.150 -j ACCEPT
-A FORWARD -d 217.56.217.2 -i eth0 -p tcp --dport 80 -j ACCEPT
-A FORWARD -d 217.56.217.2 -i eth0 -p tcp --dport 443 -j ACCEPT
-A FORWARD -d 217.56.217.3 -i eth0 -p tcp --dport 25 -j ACCEPT
-A FORWARD -d 217.56.217.3 -i eth0 -p tcp --dport 110 -j ACCEPT
-A FORWARD -d 217.56.217.3 -i eth0 -p tcp --dport 53 -j ACCEPT
-A FORWARD -d 217.56.217.3 -i eth0 -p udp --dport 53 -j ACCEPT
-A FORWARD -m tcp -p tcp -s 217.56.217.0/255.255.255.240 -i eth1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT

Privacy Policy