Tecnologie di Sicurezza in Internet APPLICAZIONI AA 2009-2010 Ingegneria Informatica e dell’Automazione Commonly used proxies and SSH FWTK The Firewall Toolkit Trusted Information Systems sviluppò FWTK per conto del DARPA e lo rese disponibile liberamente nell'ottobre 1993 in formato sorgente E' composto di un insieme di diversi programmi e di opportuni criteri di configurazione che permettono di costruire firewall applicativi Nella sua filosofia progettuale il toolkit prevede l'opportunità di verificare la sicurezza dell'intero sistema o di qualunque suo componente Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/2 FWTK In particolare • anche se si trova un difetto nella realizzazione di un componente, questo non deve compromettere l'intero sistema • i servizi devono essere realizzati con il minimo possibile di funzionalità e complessità • il codice sorgente deve essere sufficientemente semplice da permettere un'accurata e rapida ispezione • devono esistere metodologie che permettono di verificare il corretto funzionamento di un firewall Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/3 FWTK I componenti principali di FWTK sono • netacl (ip auth) • authd (auth daemon) • smap+smapd (mail relay) • ftp-gw (ftp gateway) • telnet-gw (gateway for telnet) • plug-gw (generic TCP circuit gateway) Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/4 Delegate Delegate è un software monolitico dotato di molteplici funzioni (è proxy applicativo e di circuito, è gateway capace anche di tunneling, converte fra diversi protocolli, converte i dati, fa caching, ecc.) • scritto con criteri di versatilità più che di sicurezza • esempio forse unico di "coltellino svizzero" per firewall di tipo Application Level Gateway • disponibile per varie piattaforme Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/5 Delegate I protocolli gestiti da Delegate sono molteplici • HTTP, FTP, SMTP, NNTP, POP, IMAP, LDAP • TCP, UDP • Socks, SSL, SSH • User defined filters Capace di funzionare da gateway tra molti protocolli e controllare gli accessi con varie forme di autorizzazione locali ed esterne Può essere eseguito in una chroot() jail Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/6 FTP proxy Un FTP proxy si comporta come FTP server per i sistemi all'interno del firewall e come FTP client per i sistemi di destinazione normale passivo C=1.2.3.4 S=5.6.7.8 C=1.2.3.4 S=5.6.7.8 (rnd port) Call ------------------------- > listen on port 21 Call ---------------------------------------- > listen on port 21 User username ------------------------ > User username -------------------------- > < --------------------- 331 enter password < --------------------- 331 enter password PASS me@mydomain ---------------- > PASS me@mydomain ------------------ > < ----------------------- 230 guest login OK < ----------------------- 230 guest login OK C crea rnd port P=11*256 + 22 PASV ------------------------------------- > PORT 1,2,3,4,11,22 ------------------- > S crea rnd port P=11*256 + 22 < ---------------------------- 200 port OK < ------------------ open port 11*256+22 < ------------- 227 PASSIVE 5,6,7,8,11,22 local port 20 (rnd port) open port 11*256+22 --------> STOR file ------------------------------- > STOR file --------------------------------- > < ------------------ 150 conn. Established < ------------------ 150 conn. Established (file contents) -------------------------- > (file contents) ----------------------------- > < ---------------------- 226 transfer done < ----------------------- 226 transfer done listen on port 11*256+22 Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/7 FTP proxy Con ftp-gw (il proxy FTP di FWTK) l'utente deve cambiare i comandi nel seguente modo ftp proxy Connected to FTP Proxy 220 Name: username@remoteftpserver 331-(connected to remoteftpserver) Password: password 230-Login OK ftp> Come misure di sicurezza, ftp-gw è eseguito senza privilegi di root e in una directory chrooted Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/8 FTP proxy Con Delegate è possibile usare anche una sintassi alternativa ftp proxy Connected to Delegate FTP Proxy 220 Name: username Password: password 230-Login OK ftp> cd //remoteftpsite[/path] Connected to remoteftpsite FTP Server ftp> Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/9 FTP proxy Un qualunque HTTP proxy supporta anche URL di tipo FTP ftp://ftp.remote.site/path/to/file Come per altri schemi di URL, è prevista (anche se sconsigliata) dalla RFC 2396 una sintassi che permette di passare informazioni sull'utente direttamente sull'URL ftp://user:[email protected]/path/to/file Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/10 Installazioni Packet Filter Il proxy FTP, per la complessità del protocollo, non è adatto all'installazione in bastion host su una DMZ Application Level Gateway Il proxy FTP si installa di solito nell'Application Level Gateway stesso Ridondanze Si possono utilizzare link multipli e DNS round-robin per distribuire gli accessi su ALG differenti Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/11 TCP e UDP proxy Sono proxy di circuito, dove il software non entra nei dettagli del livello applicativo, ma si limita a effettuare autorizzazione e logging sulla base dei livelli inferiori (indirizzi IP e porte) Quando la politica di sicurezza adottata impedisce l'uso di routing tra le reti (che sono cioè separate da firewall puramente Application Level Gateway), si adottano questi proxy di circuito in una molteplicità di casi (NNTP, POP, IMAP, ecc.) Il Firewall Toolkit (FWTK) non supporta proxy di circuito per UDP Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/12 TCP e UDP proxy FWTK fornisce plug-gw, configurabile con un parametro che specifica la porta su cui mettersi in ascolto; in /etc/netperm-table sono specificati, per ciascun plug-gw, un'ACL, un indirizzo e una porta di destinazione Delegate è configurabile con i parametri -Pport SERVER=tcprelay://destination:dport Vi sono anche altri modi di creare proxy di circuito Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/13 Internet NETwork Daemons inetd Internet Network Daemon originale delle distribuzioni BSD tcp_wrappers Sviluppato da W. Venema, aggiunge autenticazione IP e logging a inetd xinetd Versione evoluta di inetd, capace anche di forwarding di una connessione Molti proxy possono funzionare come demoni, ma anche come servizi sotto il controllo di [x]inetd Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/14 SSL wrappers Un SSL wrapper è un circuit proxy "evoluto", capace di incapsulare il circuito in una connessione SSL e viceversa • per fornire supporto SSL a protocolli qualunque o applicazioni non capaci di fornirlo • in coppia permettono di creare circuiti protetti fra sistemi comunicanti su reti pubbliche • per aggiungere autenticazione e confidenzialità alle applicazioni SSL client SSL listener SSL connector SSL server delegate non-SSL client non-SSL server Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/15 SSL wrappers Esempio di circuito protetto con due SSL wrapper non-SSL client delegate SSL connector Rete pubblica SSL listener delegate non-SSL server Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/16 Stunnel Delegate diventa un wrapper SSL richiamando un programma esterno sslway come filtro; Stunnel è invece un wrapper SSL specializzato, disponibile per Unix e Windows e costruito sulle librerie crittografiche di OpenSSL … [tn5250-as400] accept = 1.2.3.4:10023 connect = 192.168.45.40:23 … [local-imap] accept = imaps exec = /usr/sbin/imapd # Esempio 1 # ind. esterno # AS/400 # Esempio 2 # ind. esterno Esempi di utilizzo per accesso da remoto a servizi interni • configurazioni punto-punto • configurazioni hub Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/17 SSH SSH (secure sh) è nato per rimpiazzare i servizi telnet, rsh e rlogin La parte server del sistema è il demone sshd, cui si connettono i client ssh (o altre realizzazioni) e scp (secure cp); vi sono anche altre utility per effettuare file transfer, per la gestione delle chiavi e per semplifica l'uso dell'intera suite La versione non commerciale più diffusa è OpenSSH, realizzata dal team di sviluppo di OpenBSD e ora completamente libera da vincoli legati alla licenza d'uso o a brevetti sugli algoritmi crittografici; esistono versioni anche per Windows (es. putty), e Java (es. MindTerm) Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/18 OpenSSH Autenticazione OpenSSH fornisce differenti meccanismi di autenticazione • password (anche one-time) • host based + RSA • chiavi pubbliche RSA e DSA • Kerberos Confidenzialità Protocolli crittografici liberi da brevetti • Triple-DES • Blowfish Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/19 OpenSSH SSH2 protocol Vi sono tre componenti il protocollo SSH2 • Transport layer: negozia gli algoritmi crittografici, realizza lo scambio delle chiavi e l'autenticazione tra i sistemi; fornisce quindi un collegamento con crittografia e compressione • User authentication layer: usando il canale fornito dal Transport layer, permette di autenticare l'utente con diversi meccanismi • Connection layer: permette la creazione e il multiplexing di molteplici canali di comunicazione Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/20 OpenSSH Caratteristiche Gestione automatica del protocollo X11 Port forwarding Authentication agent Agent forwarding Interoperabilità SFTP client e server Compressione dei dati Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/21 OpenSSH Esempio d'uso XVNC + VNC client • Sistema remoto R: unix • Sistema locale L: qualunque Dopo avere effettuato il login con SSH al sistema remoto si esegue su R il server Xvnc, che non apre un display fisico, ma agisce come display proxy: è un server X per i programmi X lanciati da R, è invece un server VNC per il client VNC lanciato su L, con il quale si controlla la sessione grafica remota Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/22 Riferimenti • www.fwtk.org Firewall Toolkit website • www.delegate.org Delegate website • www.stunnel.org Stunnel website • www.openssh.org OpenSSH website • SSH Techniques William Stearns Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C50/23