1 / 55

Sicurezza degli host: Unix e Microsoft

Sicurezza degli host: Unix e Microsoft. Davide Vergni (IAC – CNR) Fulvio Bartoloni (Collaboratore IAC – CNR). Sicurezza degli host: Unix e Microsoft. 1 Sicurezza host: livelli di sicurezza, Orange book, RFC 2 Sicurezza host Microsoft Introduzione Autenticazione Sicurezza locale

walda
Download Presentation

Sicurezza degli host: Unix e Microsoft

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sicurezza degli host: Unix e Microsoft Davide Vergni (IAC – CNR) Fulvio Bartoloni (Collaboratore IAC – CNR)

  2. Sicurezza degli host: Unix e Microsoft 1 Sicurezza host: livelli di sicurezza, Orange book, RFC 2 Sicurezza host Microsoft Introduzione Autenticazione Sicurezza locale Sicurezza in Internet Sicurezza ai virus Problemi di sicurezza Configurazioni consigliate per la sicurezza 3 Sicurezza host Unix Introduzione Autenticazione Sicurezza locale Sicurezza in Internet Sicurezza ai virus Problemi di sicurezza Configurazioni consigliate per la sicurezza 4 Il progetto Security Enhaced Linux 5 Glossario termini 6 Bibliografia-Sitografia

  3. Introduzione Fattori per migliorare la protezione delle macchine • No al falso senso di sicurezza • Conoscenza dei problemi di sicurezza • Tenere le macchine aggiornate • Disattivare ciò che non serve • Passa solo ciò che è esplicitamente permesso • Formulazione di Politiche di Sicurezza • Hardening dei Sistemi

  4. Standard di sicurezza Il primo standard che stabilisce i diversi livelli di sicurezza utilizzati per proteggerel’hw, il sw e le informazioni memorizzate in un sistema èrappresentato dalTrusted Computer System Evaluation Criteria (TCSEC) redatto dal Dipartimento della Difesa degli Stati Uniti: il famosoOrange Book.B I criteri di valutazione TCSEC dividono in quattrocategorie il tipo di protezione assicurato da ogni livello: • D: nessuna protezione • C: protezione discrezionale • B: protezione obbligatoria • A: protezione certificata

  5. Definizione delle Politiche di Sicurezza Un aspetto fondamentale della realizzazione di un Piano per la Sicurezza è la definizione delle Politiche di Sicurezza che la struttura intende adottare. È importante citare le RFC (Request For Comment: richiesta di osservazioni) serie di documenti iniziata nel 1969 che descrive la famiglia di protocolli Internet e relativi esperimenti. Tutti gli standard Internet vengono diffusi sotto forma di RFC. Per esempio, un buon riferimento sulle politiche di sicurezza si trova in RFC 1244 (“Site Security Handbook”). Le Politiche di Sicurezza devono essere approvate ed emanate dai vertici della struttura e applicate aTUTTI i dipendenti. Il personale deve percepire le politiche di sicurezza come una componente del lavoro quotidiano finalizzata alla protezione delle informazioni e delle apparecchiature.

  6. Cosa può accadere? L’informazione sui nostri sistemi può essere compromessa • Gen. 2000, un hacker penetra nei sistemi della CD Universe, sottrae 300,000 numeri di carta di credito e informazioni sui clienti; altri hackers ottengono accesso ai dati della Egghead.com. • Luglio 2001, un hacker riesce ad sottrarre i dati sui guadagni della JDS earnings prima che vengano rilasciati. • Gen. 2002, un hacker penetra nei sistemi della Online Resources (software finanziario); usa questi sistemi per accedere ad una banca di NY che viene ricattata

  7. Cosa può accadere? La comunicazione può essere compromessa • Nel XVI secolo, Maria Stuarda fu decapitata dopo che i suoi messaggi segreti furono decifrati (dimostrando che complottava contro Elisabetta I). • Nella seconda guerra mondiale, molti U-boat tedeschi furono distrutti dopo che gli Inglesi riuscirono a decifrare i messaggi che utilizzavano la macchina Enigma. • Oggi, il sistema Carnivore analizza milioni di messaggi di email al giorno.

  8. Cosa può accadere? I nostri sistemi possono essere compromessi • Febbraio 2000, ICQ userid, PIN hijacked per un riscatto • Agosto 2001, Code Red infetta 359.000 server in 14 ore • Scandisce la rete alla ricerca di server IIS vulnerabili; rallenta i server; lascia backdoor per gli hacker • Molti altri virus prendono il controllo del sistema operativo, inviano messaggi. I sistemi compromessi possono essere utilizzati per attaccare altri siti sensibili

  9. Cosa può accadere? I nostri dati possono essere alterati. • Settembre 1999, i siti del NASDAQ e dell’AMEX vengono violati; gli hacker aprono dei propri account di email. • Ottobre 1999, un Worm svuota interi archivi al Pentagono. • Ottobre 2000, hacker Pro-Israeliani e pro-Palestinesi (e-Jihad) violano decine di siti; i visitatori del sito di Hamas sono dirottati su un sito porno. • Aprile 2001, il sito della British Telecom è violato due volte in tre giorni • gli hacker protestano contro la sospensione del servizio ADSL • Luglio 2001, un gruppo di hacker viola 679 siti in un minuto

  10. Cosa può accadere? Il nostro servizio può essere interrotto. • Settembre 1996: Panix, un ISP di NY , subisce un attacco di tipo Denial of Service (DoS) basato su SYN flooding • Maggio 1999, il virus Melissa virus manda in crash molti servers di e-mail • si diffonde replicandosi verso i primi 50 contatti di Outlook • Febbraio 2000: attacco Mafiaboy di tipo Distributed Denial of Service (DDoS): Yahoo, CNN, eBay, Amazon non disponibili per più di 3 ore. • Attacchi vari a siti istituzionali (Ministero della Giustizia).

  11. Altre informazioni sugli attacchi • Numero degli attacchi • gli USA sono i primi nel mondo per il numero assoluto • Israele è in testa per il numero di attacchi per abitante • circa il 45% degli attacchi sono critici. • Gran parte delle maggiori società sono attaccate continuamente (specialmente le società finanziarie). • Molti attacchi sono semplici scansioni alla ricerca di nodi vulnerabili • Molti utenti sono sempre connessi (ad esempio tramite ADSL) da sistemi altamente insicuri • i dispositivi wireless iniziano ad essere interessati da virus

  12. Autenticazione Verifica dell’identità dell’utente attraverso: · Possesso di un oggetto (es., smart card) · Conoscenza di un segreto (password) · Caratteristica personale fisiologica (impronta digitale, venature retina) Problema della mutua autenticazione Autenticazione ¹ Autorizzazione Politica delle tre AAA Authentication: identità degli utenti che richiedono un servizio Authorization: specifica dettagliata delle operazioni consentite Accounting: tracciamento delle azioni compiute durante il collegamento

  13. Politica di autenticazione L’autenticazione deve essere: Robusta: Deve essere molto difficile ingannare Rapida: Non deve far perdere tempo all’utente autorizzato Economica: Non può incidere sul costo del servizio Semplice • Aggiungere o eliminare utenti deve essere facile • L’utente deve apprendere la procedura in poco tempo • Devono esserci pochi segreti condivisi

  14. Password Il modo più semplice per autenticare un utente è utilizzare il binomio Username/Password Problemi Se queste informazioni passano in chiaro sulla rete possono essere intercettate. Questo sistema di autenticazione può subire un reply-attack, cioè un attacco con una ripetizione di pacchetti

  15. Microsoft La domanda tipica: • <<ma esiste una sicurezza su Windows?>> L’affermazione tipica: • <<che ci vuole a parlare di sicurezza su sistemi Microsoft: tanto non esiste!>> • La risposta da dare è <<esiste, basta non improvvisarsi sistemisti Windows, esattamente come non ci si può improvvisare sistemisti Unix>>

  16. La strategia • accurata pianificazione ed amministrazione "umana" • software sicuro Rafforzare ogni windows server che può essere esposto ad un potenziale attacco proveniente da Internet. Realizzare un host "sicuro" Realizzare e mantenere servizi sicuri con sistemi operativi Microsoft impone una serie di operazioni ed accorgimenti molto più complessi di quello che può realizzare un’istallazione “tipica”, in più la sicurezza di un sito e' costituita da due "ingredienti fondamentali":

  17. Perche’ molti usano OS Microsoft? • E' semplice istallarlo e non necessita di conoscere "profondamente" il sistema operativo. • Molte delle componenti che vengono istallate e inizializzate automaticamente in Windows NT, Windows 2000, WindowsXP sono simili se non uguali alle applicazioni che l'utente comune puo' trovare su W95/W98/WME/WXPHE. • Queste caratteristiche sono molto comode, per es. per la gestione della condivisione dei file e per la condivisione di stampanti in reti interne • Mentre per un server internet esterno rappresentano un limite grave proprio perche’ ci si può improvvisare system manager pensando che sia tutto molto “semplice”

  18. Bastione • Un server microsoft esterno che fornisce un insieme minimo di servizi ben configurati garentendo un buon livello di sicurezza è definito: Bastione Un bastione e' quindi una macchina (NT o W2000) che ha un ruolo critico nell'ambito della rete perche' esposto ad attacchi provenienti dall'esterno tipicamente via internet. Parliamo quindi di server quali Web Server, FTP server, DNS, Firewall e/o gateway. Ma anche, più semplicemente, di comuni PC utente.

  19. Fortificare un bastione Quando si vuole fortificare un bastione bisogna porsi due domande: • Quali sono i servizi che potenzialmente possono portare ad un attacco? • In che modo il bastione protegge se stesso dagli attacchi ?

  20. Istallazione “sicura” di NT server Ingredienti iniziali: • un disco completamente “pulito” • una macchina disconnessa dalla rete durante l'istallazione (o almeno che l'istallazione avvenga in una zona della rete sicura!) • non istallare altri sistemi operativi sulla Macchina • usare solo formattazione NTFS (permette attributi di utenza e protezione per i file)

  21. Custom Install Selezionare “Custom Install” e selezionare solo le seguenti componenti • Microsoft Data Access Components 1.5 • Data Sources • MDAC: ADO, OBDC, and OLE DB • Remote Data Service 1.5 • RDS Core Files • Microsoft Management Console • NT Option Pack Common Files (o equivalente) • Transaction Server • Transaction Server Core Components

  22. Altri accorgimenti iniziali • Non istallareIIS server !! • Istallare comunque l'ultima service pack ossia la versione 6a per Windows NT(che contiene inoltre tutti gli "hotfixes" alla versione 6), la service pack2 per Windows2000 infine per XP autorizzare sempre il download degli aggiornamenti automatici • Istallare solo il tcp/ip e nessun altro protocollo di rete addizionale • Utilizzando il pannello di controllo rimuovere tutti i servizi non utilizzati tranne l’RPC che rappresenta la configurazione per il port mapper di NT (RpcSs) . In ogni caso dare sempre un “occhiata” a: http://microsoft.com/technet/security/bulletin/(Tutte le notizie!!) http://www.puntoinformatico.it/news/(Solo le più gravi!!)

  23. Le due schermate!

  24. Rimuovere i servizi di rete inutili • Da notare che tra i servizi rimossi c‘è il servizio Workstation e questo comporterà ad ogni accensione del server un alert di sistema • Un altra "scocciatura" è che lo user manager dei domain in NT (usrmgr.exe) non lavora in assenza del servizio workstation; rimpiazzatelo con lo user manager (musrmgr.exe) di NT workstation.

  25. Eliminare il NetBios Disabilitare l'interfaccia Netbios: Netbios e’ il maggior colpevole di quasi tutti gli attacchi a sistemi NT • è infatti facile fare scan di “range” ip alla ricerca di pc con netbios (Legion http://rhino9.ml.org) • e poi ancora più facile individuare le risorse condivise ed appropiarsene

  26. Come si fa? • Uno scan con Legion in un range di ip per trovare pc con netbios attivo • si sceglie un ip_number • nbtstat -Aip_number • trovo il pc_name • edit c:\winnt\lmhosts “ip_number pc_name #PRE” • nbtstat -R • net view\\pc_name • ora conosco tutte le risorse condivise!!

  27. Disabilitare i servizi superflui Disabilitare tutti i servizi inutili eccetto i seguenti : • EventLog (Registro degli Eventi) • NT LM Security Support Provider (provider supporto protezione NT LM) • Plug and Play • Protected Storage • Remote Procedure Call (RPC) Service (Servizio Chiamata Procedura Remota)

  28. Attivare il filtro TCP/IP Configurare le porte abilitate "in entrata" per il TCP e l'UDP Nell'esempio proposto e' abilitata la porta 80 tcp ma disabilitata l'udp essendo individuato l'IP protocols 6 (TCP), ma non il 17 (UDP!)

  29. Controllare i processi attivi I processi attivi a questo punto devono risultare: • smss.exe (il manager delle sessioni) • csrss.exe (il Client Server Subsystem) • winlogon.exe (il processo di logon!) • services.exe • pstores.exe (il protected storage ) • lsass.exe (la Local Security Authority) • rpcss.exe (l’RPC mapper) • explorer.exe, loadwc.exe, nddeagnt.exe (Explorer ed i suoi sottoprocessi!)

  30. Criptare il database degli accounts • Per effettuare questa operazione (irreversibile!) bisogna lanciare la syskey.exe, il programma si trova nella directory %SystemRoot%\system32 • Tra le altre cose questa procedura garantisce protezione rispetto allo “L0pht Crack” o meglio: “LC3 - The Password Auditing and Recovery Application” (http://www.atstake.com/research/lc3/)

  31. Microsoft Security Configuration Editor A questo punto vanno definite le politiche di sicurezza utilizzando il programma secedit.exe: • Questo tool è presente dalla service pack 4 e "permane" in Windows 2000 ed XP! • Il file bastion.infrealizzato dalla HP e raccomandato da Microsoft (e’ nel CD) viene dato in "pasto" al tool • Il comando da utilizzare • C:> secedit /configure /cfg bastion.inf /db %TEMP%\secedit.sdb /verbose /log %TEMP%\scelog.txt

  32. Secedit Permette di gestire con un unico file di configurazione: • Criteri account: protezione per criteri password, di blocco di account e Kerberos • Criteri locali: diritti utente e registrazione degli eventi di protezione • Gruppi di restrizione: amministrazione dell'appartenenza a gruppi locali • Registro di sistema: protezione per le chiavi di registro locali • File System: protezione per il file system locale • Servizi di sistema: protezione e modalità di avvio per i servizi locali

  33. Un esempio di parametri settati dal file bastion.inf • Applica l'unicità della password memorizzando le ultime 6 password • Consenti archiviazione password con crittografia reversibile per tutti gli utenti del dominio Disabilitato • Le password devono essere conformi ai requisiti di complessità Attivato • Lunghezza minima password 10 Caratteri • Validità massima password 42 Giorni • Validità minima password 2 Giorni • Limite di blocchi dell'account 5 (tentativi) • Reimposta blocco account dopo 720 (minuti)

  34. Altri cambiamenti • Le regole rinominano anche l'account di administrator a root: cosa che andrebbe sempre e comunque fatta!! (XP lo fa in automatico!!) • Una parte degli script si occupa di disinstallare i sottosistemi del sistema operativo relativi a DOS, Win16, OS/2 e Posix • In ogni caso le variazioni si possono visualizzare e variare in: criteri di protezione locali • sul sito: “http://www.shebeen.com/iis4_nt4sec.htm#Table%203” il file bastion.inf e’ spiegato “riga per riga”!

  35. Servizi Tutti i servizi a cui la macchina è predisposta possono essere abilitati o eliminati facendo riferimento a Servizi da Strumenti di Amministrazione. Da lì si possono vedere tutti i servizi attivati sulla macchina, quelli che partono in automatico, e quelli ad avviamento manuale. Log File Sempre daStrumenti di Amministrazione c’è il visualizzatore di eventi che contiene tutti gli output dei servizi del sistema. Guardare gli output insegna molto sul tipo di attività sommerse della nostra macchina.

  36. Le principali fonti di informazione • Mailing List • NT BugTraq, i cui archivi sono disponibili al sito Web www.ntbugtraq.com; • le mailing list, più specifiche, accessibili per iscrizione al sito www.ntsecurity.net; • www.netspace.org, nel quale vengono anche segnalati problemi riguardanti altri sistemi operativi.

  37. Le principali fonti di informazione • Siti Web con programmi di test/attacco e aggiornamenti software • www.microsoft.com, e in particolare le sezioni sulla sicurezza (www.microsoft.com/security) e su Windows NT Server (www.microsoft.com/ntserver); • FBI CyberNotes, un bollettino quindicinale sui principali problemi di sicurezza di sistemi operativi e applicazioni;

  38. Le principali fonti di informazione • Cybermedia Software, sul quale vengono offerti tra l'altro i codici sorgenti per implementare programmi di test e debug; • www.bugnet.com, con notizie, test di applicazioni, ecc. • www.insecure.org, un sito di notizie e programmi sorgente per hackers; • www.L0pht.com, un sito di notizie e programmi sorgente, con patch e tool di analisi.

  39. Open Source: buono per la sicurezza • L’accesso al codice sorgente non è un ostacolo alla sicurezza • §Reverse engineering • §Black Box analysis • Chi sa interpretare un codice sorgente • §Sa anche scrivere un exploit • §Sa disassemblare un codice oggetto • Sa usare un emulatore hardware/software Software Open Source • §Più facile esaminare il codice • §Più facile correggere il codice Esempio: Open BSD deriva da Unix Berkely Software Distribution § È orientato alla sicurezza § È frutto del lavoro di decine di anni-uomo § Non ha exploit remoti riconosciuti da oltre 4 anni

  40. Open Source: buono per la sicurezza Continui miglioramenti al prodotto • Supporto (gratis) di valenti programmatori – Sviluppatori conosciuti e raggiungibili – Accesso a newsgroup – Accesso a mailing-list • Maggiore facilità a supporto di terze parti – Security extensions (progetto OpenWall) – Patch frequenti – Tools e Addons

  41. Open Source: buono per la sicurezza L’acquisto di un Sw non ne dà la proprietà Bisogna acquistare buon HARDWARE Il SOFTWARE si preleva alla fonte (Internet) Il SW fa lavorare l’HW L’HW fa il lavoro pesante Conviene utilizzare SW Open Source L’utente ha la piena disponibilità del codice e ne ha il controllo completo (buon sistemista)

  42. Ping of Death • Ha provocato il crash di quasi tutti i S.O. • È un attacco ICMP con ‘oversized packet’ • Ping usa pacchetti di 64 byte • Ping con pacchetti > 65507 à OVERFLOW !! • RFC 792 - ICMP header 8 byte • RFC 791 - max 65535 byte (IP header 20 byte) LINUX la correzione è arrivata dopo 2 ore e 35 minuti

  43. Linux Hardening • Disabilitazione di tutti i servizi di rete (ps e netstat –nl) • Disinstallazione di tutti i programmi non necessari (rpm –e) • Syslog remoto • Disk Partitioning (chroot – cache – var - chattr) • Login limitato in SSH2 (public key) • Login ristretto alla console e/o solo ttySx • RamDisk (LinuxRouter, LinuxFloppy, Trinux) • Firewall (netfilter, fwtk, t.rex, sinus) • IDS (snort, shadow, lids, logcheck, tripwire)

  44. Il nostro cervello come miglior difesa Il modo migliore per garantire la sicurezza di una macchina e` quello di padroneggiare pienamente tutto quello che avviene su di essa. Questo implica alcune riflessioni: • avere la coscienza di come vengono avviati e gestiti tutti i servizi dal sistema operativo • controllare che effettivamente ci siano tutti e solo i processi che servono e che sono consentiti • saper interagire con il software utilizzato in modo da poterlo adattare ad hoc per ogni nostra esigenza

  45. Processi e porte Gli aspetti piu` importanti nell'ambito della sicurezza di rete sono le porte che vengono utilizzate dal sistema per comunicare con l'esterno. Appena terminata l'installazione bisogna controllare che i processi in esecuzione e le porte che questi eventualmente bindano siano effettivamente quelle di cui necessitiamo, imponendo gia` delle policy di sicurezza di rete (firewall, wrapper, binding su interfacce multiple). PROGRAMMI:ps, netstat, fuser, ipchains/iptables

  46. Startup della macchina È molto importante individuare le procedure di startup del sistema (normalmente identificare in una serie di rcfiles), e di modificare questi script in modo da far eseguire loro solamente quello che e` necessario per portare il sistema dalla condizione di boot (appena viene lanciato il demone init), alla configurazione ottimale che abbiamo raggiunto con le nostre personalizzazioni. In questo modo avremo un boot ottimizzato sia dal punto di vista della velocità che da quello della sicurezza di rete.

  47. Init per iniziare Per capire il funzionamento del sistema analizziamo la procedura di avvio partendo dall'inizio. Il demone che si occupa di caricare gli script e` init, il quale viene lanciato dal kernel subito dopo il boot (a meno che non si specifichi diversamente); la divisione in runlevel ci permette di specificare diversi stati nel quale il nostro sistema si puo` trovare, e configurare un comportamento adeguato dei servizi. Il contenuto del file /etc/inittab ci identifica per ogni runlevel come agire, fornendo servizi base come la gestione delle tty, e definendo gli script da eseguire ad ogni cambio di stato.

  48. Eliminazione dei servizi di rete La prima cosa da fare una volta installata una qualunque distribuzione è quella di eliminare i servizi di rete che sono inutili nel contesto in cui stiamo configurando la macchina. I servizi di rete rappresentano quasi sempre un potenziale punto di accesso per l'attacco del sistema da parte di un cracker. Il comando per controllare il numero dei servizi di rete presenti su una macchina è netstat; con l'opzione -t si vedranno tutte le porte tcp che permettono un accesso al vostro sistema con l'opzione -u si vedranno invece i servizi udp attivi sulla macchina.

  49. Eliminazione dei servizi di rete Per disattivare i servizi basta digitare il seguente comando: /etc/init.d/nome-servizio stop Dobbiamo inoltre eliminare il servizio al boot della macchina rimuovendo il link dello script relativo al runlevel di partenza; il runlevel di partenza si trova nel file di configurazione di init /etc/innitab. Nel caso di un server gestito da inetd abbiamo un file di configurazione unico, inetd.conf. In questo file ci sono dei campi per ogni servizio che deve essere gestito. Se all'inizio della riga troviamo il # vuol dire che il servizio è disabilitato. Se vogliamo disabilitare un server dobbiamo quindi porre un # all'inizio della riga del servizio.

  50. Filtrare i servizi di rete Sotto linux è possibile creare una lista di accesso per gli host che possono usare un certo servizio e una lista di quelli che non possono accedervi. I file di configurazione sono due: /etc/hosts.allow e /etc/hosts.deny. Vediamo un esempio che ne chiarirà l'uso: /etc/hosts.allow ftp: 192.168.200.2, 192.168.200.3 telnet: 192.168.200.3 /etc/hosts.deny ALL:ALL Questa semplice configurazione rappresentata dai file /etc/host.allow e /etc/host.deny segue una filosofia che è bene sempre seguire nel campo della sicurezza e cioè: tutto ciò che non è espressamente concesso viene negato. Inoltre, nel file /etc/hosts.deny si può inserire la direttiva ALL:PARANOID, negando cosi il servizio alle macchine i cui indirizzi IP non vengono risolti.

More Related