Nella societa della comunicazione il valore e la riservatezza delle informazioni riveste un ruolo sempre piu importante. Di conseguenza la sicurezza dei dati, in tutte le sue forme, e un aspetto fondamentale per la gestione e lutilizzo di un Sistema Informativo.
Di particolare interesse, per l'enorme crescita delle reti Intranet e di Internet, e' la sicurezza in rete dei sistemi Unix.
In questo documento sono riportate una serie di verifiche per controllare i livelli di sicurezza presenti sui Sistemi Unix con particolare riferimento ad un loro utilizzo in rete.
La presenza di piu sistemi e la comunicazione di dati tra essi e una esigenza sempre piu diffusa ed importante. Per fornire tali funzionalita sono state create opportune apparecchiature hardware e protocolli di comunicazione.
Su una macchina Unix sono presenti di default una serie di servizi in rete che forniscono una serie molto ampia di funzionalita e diverse modalita di comunicazione (eg. TCP-IP, UUCP).
Il livello di sicurezza di tali servizi non e in genere elevato. Non vengono infatti utilizzati meccanismi di encription dei dati e sono presenti diverse funzioni che forniscono informazioni sui sistemi presenti in rete.
Per fornire un adeguato livello di sicurezza debbono essere bilanciati la facilita di comunicazione con il controllo degli accessi. E infatti possibile ottenere un maggior livello di sicurezza disabilitando alcuni servizi, effettuato in maniera esplicita la crittografazione dei dati, ...
Nei paragrafi successivi vengono esaminati i principali strumenti presenti per lutilizzo in rete.
I messaggi che attraversano una rete di comunicazione possono essere ascoltati. Per effettuare tali operazioni sono necessari strumenti hardware/software che tipicamente vengono utilizzate per effettuare la messa a punto o il debug di protocolli o sistemi di comunicazione. Per evitare tale problema e necessario provvedere alla sicurezza fisica della rete di comunicazione. Quando e possibile che un oggetto esterno si colleghi direttamente alla rete, la rete viene definita non sicura.
Alcuni protocolli inviano informazioni con messaggi non criptati e quindi di facile individuazione. Tra questi: telnet, ftp, rlogin, che oltre alle altre informazioni trasmettono login e password in chiaro.
Tali protocolli non debbono essere utilizzati su un canale di comunicazione non sicuro. Nel caso in cui questo avvenga e necessario cambiare immediatamente le password e riverificare la sicurezza del Sistema.
Nel caso sia necessario proteggere i dati che vengono trasmessi con tali protocolli e necessario provvedere alla crittografazione dei dati.
E lacronimo di File Transfer Protocol. Il protocollo ftp consente lo scambio di file tra macchine connesse in rete.
Per consentire luso del programma ftp e necessario collegarsi con una utenza valida Unix (conoscendone la relativa password).
Possono essere segnalate alcune note relative agli aspetti di sicurezza nellutilizzo di ftp:
Su Unix e presente una serie di programmi (rlogin, rsh, rcp, ...), comunemente chiamati r-program, che consentono lesecuzione remota di comandi. La validazione delle utenze/macchine abilitate a tali servizi si basa sugli IP Address. Con tale definizione gli utenti presenti sulle altre macchine non vengono ulteriormente validati sul Sistema corrente "fidandosi" (trust) quindi del Sistema di provenienza. Pertanto quando viene richiesto un servizio in remoto non e necessario indicare la password.
La configurazione delle abilitazioni avviene sui file /etc/hosts.equiv e sui file ~utente/.rhosts.
Tale meccanismo di validazione presenta pero un lato debole poiche lidentita di un host su rete TCP-IP e dichiarata, ma non validata. In sistemi che richiedano un certo livello di sicurezza e necessario limitare tale accessibilita ad utenti specifici o, meglio, non consentire lutilizzo dellequivalenza in rete.
Come massimo livello di sicurezza si possono escludere completamente i servizi r* (rlogin, rsh, rcp, ..) che utilizzano tale meccanismo per la validazione.
E lacronimo di Network File System. Con tale protocollo, implementato sulla pila TCP-IP (per essere pignoli UDP-IP) si puo accedere in maniera trasparente a file system di sistemi remoti.
Poiche lo stesso file system e acceduto sia localmente che in remoto e necessario porre attenzione ai diritti di accesso ai file presenti.
Per quanto riguarda i dischi utilizzati da remoto e necessario impedire lintroduzione di programmi con il SUID attivo (eg. mount -F nfs -o nosuid, bg remotehost:/remotedir /localdir). E inoltre necessario evitare di porre dati/programmi con contenuti riservati su tale disco remoto.
Per quanto riguarda i dischi forniti alla rete e necessario limitare laccessibilita ad hosts specifici e concedere il solo diritto di lettura. E inoltre opportuno evitare di condividere in rete dischi che contengano informazioni riservate.
Il programma di sendmail si occupa dello smistamento della posta in arrivo e partenza. Si tratta in effetti del piu diffuso e famigerato MTA per la gestione della posta. La sua complessita e elevata e sono note alcune anomalie del programma presenti nelle varie release.
Alcune indicazioni:
Sono disponibili diversi servizi che forniscono utilita di amministrazione e statistiche.
Il servizio fingerd offre, via rete, un servizio che consente di saper quali sono le utenze attive, da quanto tempo non si collegano, ... Benche tale funzione sia comoda per un amministratore offre informazioni sulle utenze presenti sul sistema, sulle attivita svolte, .. tali informazioni possono essere sfruttate da utenti non autorizzati per cercare di "indovinare" nuove utenze e password per tentare accessi sul Sistema.
Altri servizi vengono richiamati dal comando ruptime ed rwho che forniscono le informazioni tipiche dei comandi uptime ed who ma in ambiente di rete.
Laccesso delle utenze puo avvenire tramite terminali (o programmi di emulazione) connessi in maniera diretta, attraverso linea telefonica o su rete locale.
Le connessioni dirette avvengono su linea seriale su cui e attivo il programma getty.
Le connessioni in rete avvengono attraverso il servizio telnetd.
Per verificare in modo veloce quali siano le connessioni di rete locale attive e opportuno compilare in maniera completa il file di /etc/hosts riportando gli IP Address di tutti gli host/PC che possono accedere al Sistema.
Per accesso ad Internet si intende il collegamento fisico alla rete Internet (rete mondiale cui sono connessi milioni di calcolatori ed utenti).
Laccesso ad Internet pone particolari problemi di sicurezza poiche il numero di potenziali hacker e elevatissimo.
Nel caso di accesso ad Internet e necessario provvedere ad adeguati strumenti di sicurezza. E assolutamente necessario lutilizzo di TCP-wrapper e di FireWall a protezione delle proprie reti rispetto alle reti esterne.
Sotto tale nome sono impropriamente raccolti normali servizi di rete TCP-IP che vengono utilizzati in special modo su Internet. In particolare ci si riferisce ai servizi: httpd, wais, gopher, ..
Sono note alcune anomalie su tali programmi (eg. lhttpd NCSA v.1.3 non e "sicuro" ed e consigliato il passaggio ad una release successiva) e vi sono configurazioni che richiedono particolare attenzione per non aprire porte verso lesterno (eg. shell richiamate con cgi-bin).
UUCP e lacronimo di Unix to Unix CoPy. Con linsieme di programmi forniti da tale protocollo possono essere effettuati scambi di dati, invio di mail, file transfer tra sistemi Unix connessi su linee seriali dedicate o switched (caso piu comune). Tale protocollo ha avuto una notevole diffusione prima della diffusione di tecnologie (Internet) che hanno consentito velocita di trasferimento superiore. UUCP e distribuito su praticamente tutti i sistemi Unix. Le principali versioni di software sono due. Lutilizzo di uucp e piuttosto limitato.
Il file /usr/lib/L.sys contiene nomi di host e password in chiaro.
Altre ambienti: WEB Server, X Windows, Architetture di rete (e.g. Client-Server), Firewall, Proxy Server, Router, ... Tutti da mononitorare con opportuni Strumenti, ...
Trasmettendo i dati su reti non sicure e' opportuno provvedere alla loro crittografazione in modo da renderli inutilizzabili ad estranei.
I dati vengono alterati e sono leggibili solo utilizzando una speciale chiave (che e' naturalmente una stringa di caratteri).
Un metodo molto diffuso per la crittografazione e' quello a chiave pubblica. In realta' le chiavi sono due: una pubblica, nota a tutti, ed una privata, nota solo al proprietario. Per crittografare/decrittografare un messaggio e' necessario applicare entrambe le chiavi.
Per inviare un messaggio ad un utente in modo che nessun altro possa leggerlo e' sufficiente crittografarlo con la chiave pubblica di tale utente. Solo l'utente stesso, con la sua chiave privata potra' leggerlo.
Di converso un messaggio crittografato con la chiave privata di un utente sara' leggibile a tutti, utilizzando la chiave pubblica di tale utente, ma la sua provenienza ed integrita' e' certa: nessun altro utente avrebbe potuto generare o modificare tale messaggio.
Affinche' il meccanismo funzioni e' necessario assicurarsi che la chiave pubblica di un utente appartega veramente ad uno specifico utente e non ad un hacker che cerca di impersonare l'utente. Per accertarsi di tale corrispondenza vengono utilizzati i certificati. L'assegnazione dei certificati e' competenza dei Certificate Autority.
Esistono organizzazioni pubbliche che svolgono tale compito oppure e' possibile
Testo: Sicurezza su Unix in rete
Data: 15 Settembre 1997
Versione: 1.1.1
Autore: bbo@archesis.it