Tecnologie di Sicurezza in Internet APPLICAZIONI Commonly used proxies and SSH AA Ingegneria Informatica e dell’Automazione
Tecnologie di Sicurezza in Internet: applicazioni – AA – C50/2 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 – C50/3 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 – C50/4 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 – C50/5 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 – C50/6 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 – C50/7 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 C= S= (rnd port) Call > listen on port 21 User username > < enter password PASS > < guest login OK C crea rnd port P=11* PORT 1,2,3,4,11, > < port OK < open port 11* local port 20 STOR file > < conn. Established (file contents) > < transfer done C= S= Call > listen on port 21 User username > < enter password PASS > < guest login OK PASV > S crea rnd port P=11* < PASSIVE 5,6,7,8,11,22 (rnd port) open port 11* > listen on port 11* STOR file > < conn. Established (file contents) > < transfer done normalepassivo
Tecnologie di Sicurezza in Internet: applicazioni – AA – C50/8 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: 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 – C50/9 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 – C50/10 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
Tecnologie di Sicurezza in Internet: applicazioni – AA – C50/11 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 – C50/12 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 – C50/13 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 – C50/14 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 – C50/15 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 delegate SSL listener SSL client non-SSL client SSL connector SSL server non-SSL server
Tecnologie di Sicurezza in Internet: applicazioni – AA – C50/16 SSL wrappers Esempio di circuito protetto con due SSL wrapper delegate non-SSL client SSL connector non-SSL server SSL listener delegate Rete pubblica
Tecnologie di Sicurezza in Internet: applicazioni – AA – C50/17 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]# Esempio 1 accept = :10023# ind. esterno connect = :23# AS/400 … [local-imap]# Esempio 2 accept = imaps# ind. esterno exec = /usr/sbin/imapd Esempi di utilizzo per accesso da remoto a servizi interni configurazioni punto-punto configurazioni hub
Tecnologie di Sicurezza in Internet: applicazioni – AA – C50/18 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 – C50/19 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 – C50/20 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 – C50/21 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 – C50/22 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 – C50/23 Riferimenti Firewall Toolkit website Delegate website Stunnel website OpenSSH website SSH Techniques William Stearns