Sei sulla pagina 1di 61

Corso avanzato di Reti e sicurezza

informatica
http://www.glugto.org/

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 1


DISCLAIMER

L'insegnante e l'intera
associazione “GlugTo” non si
assumono alcuna responsabilità
sull'utilizzo lecito o meno delle
informazioni e dei concetti che
verranno spiegati nelle seguenti
lezioni

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 2


Indice – Lezione 1

➔ Cos'è una rete – cos'è ➔ Comandi di rete –


internet modalità CLI
➔ Cos'è l'indirizzamento ➔ Virus – malware
➔ Breve elenco degli ➔ (x)inetd
apparati di rete ➔ Tcp_wrappers
➔ Accenno sui servizi di
rete: DNS, DHCP, mail,
web

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 3


Cos'è una rete

Una rete è un insieme di pc o calcolatori messi in


comunicazione tra di loro

➔LAN (Local area network)


➔MAN (Metropolitan area network)

➔WAN (Wide area network)

➔ Internet (la “rete delle reti”)

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 4


LAN -> rete locale circoscritta a un ambiente di
lavoro relativamente piccolo

MAN -> rete locale composta da una serie di LAN

WAN -> rete geografica di grosse dimensioni che


collega host distanti anche centinaia di KM

Internet -> rete “mondiale” ad accesso pubblico


composta da LAN MAN e WAN interconnesse tra
di loro
GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 5
Storia delle reti – momenti
fondamentali
●Primi anni '60 – primi dubbi su come poter unire
più calcolatori insieme e farli dialogare

●3 gruppi di lavoro: MIT (vd. ARPAnet) – Rand


institute – National Physical laboratory

●1969 – Installato presso UCLA primo IMP


(Interface Message Processor)

2 settembre 1969 – primo messaggio tra host da


UCLA a Stanford Research Institute


GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 6
...ma cos'è un “host”?

E' definito Host ogni terminale collegato a una


rete, sia esso un pc fisso, laptop, palmare, thin
client, …

Client Server

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 7


● 1972 – ARPAnet con 15 nodi

●1970 – nasce ALOHAnet (prima rete con


protocollo ad accesso multiplo)

● Fine anni '70: nascita IP, UDP, TCP

●1° Gennaio 1983 – TCP/IP diventa il protocollo


standard per la rete ARPAnet

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 8


●1989 – 1991 – nascita del Web

●1991 – ARPAnet smette di essere una rete


“chiusa” per diventare “commerciale”

1994 – fondazione Netscape Communications


Corporation

●1995 – nascita dei provider Internet

●1996 – Nascita Internet Explorer


GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 9
...ma come si “trovano” gli host su
una rete?

Gli host posseggono tutti un indirizzo IP

Pubblico Privato

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 10


...cos'è l'indirizzamento IP?

L'indirizzamento è l'insieme dei “dati” necessari a


qualunque host per potersi collegare e
comunicare con successo con una determinata
rete

→ indirizzo IP
→ subnet mask
→ gateway
→ DNS

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 11


Cos'è l'indirizzo IP?

L'indirizzo IP è come l'indirizzo di casa di una


persona...

...o meglio...

È un “numero” che identifica in modo univoco un


dispositivo collegato a una rete informatica che
utilizza lo standard IP

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 12


Indirizzi Privati → es. 192.168.0.1
10.0.0.1

Indirizzo Pubblico → es. 69.131.24.144

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 13


...cos'è una subnet mask?

E' un altro “numero” che, abbinato all'indirizzo IP,


serve all'host per stabilire se il dispositivo con cui
intende comunicare è all'interno della sua stessa
rete o meno

es. 255.255.255.0

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 14


...che cos'è una gateway?
Il gateway è la “porta di uscita” di un host verso le
reti esterne

Reti “casalinghe” → modem ADSL (router,


modem 56k,...)

Computer
Gateway
Internet

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 15


Cos'è un DNS?

DNS = Domain Name System


Domain Name Server

E' il servizio (o il server) che traduce gli indirizzi


comprensibili dalle persone (es. www.glugto.org)
in indirizzi IP (es. 213.254.1.52)

www.glugto.org → 213.254.1.52

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 16


Altri servizi di rete

→ DHCP (Dinamic Host Configuration Protocol)

→ Web (World Wide Web)


→ Mail

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 17


Come si configura la rete

1 – Conoscere l'indirizzamento della propria rete

→ configurata da noi o da altri

2 – Configurare le opportune interfacce di rete

→ appositi comandi

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 18


Comandi CLI

ifconfig → mostra la configurazione di tutte le


interfacce
ifconfig ethX (wlanX, athX) → mostra la
configurazione dell'interfaccia selezionata

route (-n) → mostra l'indirizzo del gateway (e dei


path)

cat /etc/resolv.conf → mostra i DNS configurati

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 19


Modificare indirizzo Ip

In presenza di DHCP → sudo dhclient ethX

Indirizzi statici → sudo ifconfig ethX 192.168.0.2


(netmask 255.255.255.0)

O altro indirizzo di rete, a


Può essere omesso nostra scelta

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 20


Gateway - DNS

In presenza di DHCP → operazione automatica

Indirizzi statici

Gateway → sudo route add default gw


192.168.0.1 ethX

DNS → vi (nano) /etc/resolv.conf


Editare il file

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 21


Troubleshooting

Ping → testa la connettività tra 2 host

Tracert → mostra il path completo tra 2 host

Netstat → mostra i servizi e i demoni in


esecuzione

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 22


comandi

Ping → ping www.glugto.org

Tracert → tracert www.glugto.org

Netstat → netstat
netstat -tan
netstat -peanut

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 23


Apparati di rete

●Hub

●Switch

●Router

●Access Point

●Firewall

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 24


Sicurezza

Nessun host è mai realmente e


definitivamente sicuro

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 25


●Conoscenza del sistema da proteggere

●Conoscenza dei servizi in esecuzione

●Conoscenza della struttura della rete

●Conoscenza dei principali attacchi

●Conoscenza delle vulnerabilità

●Aggiornamento continuo
GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 26
Risorse

secunia.com

http://www.sans.org

...e altri siti “specialistici” →

www.ubuntu.com/usn
www.slackware.com/security
...

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 27


Hacker

Colui che studia metodi per eludere blocchi


imposti dal sistema, password e sistemi di
protezione in genere, utilizzando le proprie
capacità per scopi personali e per accedere ai
computer connessi in rete

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 28


Hacker

Persona appassionata di informatica, curiosa di


sapere come funziona un sistema, che sfrutta le
proprie capacità per migliorare una tecnologia o
per realizzare funzionalità non ancora
implementate

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 29


Cracker (da Richard Stallman)

Colui che studia metodi per eludere blocchi


imposti dal sistema, password e sistemi di
protezione in genere, utilizzando le proprie
capacità per scopi personali e per accedere ai
computer connessi in rete

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 30


Tipologie

Hackers (White Hat) Crackers (Black Hat)

Phreakers

Lamers Script kiddies Spammers

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 31


Codice malevolo

●Diverse tipologie

●Diversi metodi di diffusione

●Diversa pericolosità

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 32


Virus → Non si diffondono senza l'aiuto umano, si
“attaccano” a files puliti e vanno in esecuzione
quando l'utente lancia il suddetto file

Worm → Simile a virus ma si replica in rete da


solo, generando copie di se stesso

Trojan Horse → Programma finalizzato a rubare


informazioni sensibili come dati, password,
keystrokes

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 33


Logic bomb → Pezzo di codice “dormiente”, che
si attiva in certe condizioni o dopo un certo
periodo temporale

Bacteria → Codice malevolo che si replica


all'infinito, “rubando” risorse alla CPU, Ram,...

Minacce composte → Combinano una o più


caratteristiche, utilizzano le vulnerabilità per
diffondersi

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 34


Bersagli di un attacco

●Bersaglio “prestabilito” → viene attaccata una


macchina in particolare per i servizi che essa offre
(es. Mail server, web server, ....)

●Bersaglio “libero” → si attacca una macchina tra


molte cercando quella meno difesa (es. Client di
una rete Wifi)

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 35


Fasi di un attacco
●Foot Printing

●Port Scanning

●Banner Grabbing

●Ricerca Vulnerabilità

●Accesso

●Privileges escalation
GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 36
●Foot printing → raccolta di tutte le informazioni
possibili su un sistema

●Port scanning → lista di tutti i demoni e servizi in


esecuzione su una macchina

●Banner grabbing → dato un servizio, raccolta del


software e della versione in uso

●Ricerca vulnerabilità → ricerca di tutti i possibili


buchi di sicurezza che affliggono un programma
GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 37
●Accesso → login non autorizzato alla macchina
(con o senza l'aiuto di exploit)

●Privileges escalation → tentativo di elevare i


propri privilegi da regular user a root

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 38


Contromisure in sintesi
●Foot Printing → nessuna (*)

●Port Scanning → firewall, tcp_wrappers

●Banner Grabbing → nessuna (*)

●Ricerca Vulnerabilità → aggiornamenti continui

●Accesso → tcp_wrappers, firewall, /etc/passwd

●Privileges escalation → controllo files con SUID


GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 39
Bersaglio dell'attacco

●Foot Printing

●Port Scanning → servizi

●Banner Grabbing → servizi

●Ricerca Vulnerabilità → servizi

●Accesso → files

●Privileges escalation → files


GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 40
...alcune contromisure...

(x)inetd
Firewall “filtri”
Tcpwrappers

/etc/passwd
SUID “accorgimenti”
chroot

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 41


Cosa “proteggere”

●Punto di accesso alla rete (vd. Firewall)

●Server

●Singoli client

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 42


/etc/passwd

● Utilizzare shadow password

●Controllare che i demoni non abbiano la


password
X → /etc/shadow
* → nessuna password

● Impostare /bin/false quando possibile

● Disabilitare accesso Root

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 43


Monitoraggio degli accessi

Uso frequente di

Comando who syslog

Comando w

Comando ps faux

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 44


Controllo files SUID e SGID

Modo più facile per avere un privileges escalation

Continuo monitoraggio

Impostarlo solo quando strettamente necessario


GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 45
SUID → find / -perm -4001

SGID → find / -perm -2001

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 46


inetd (internet services daemon)

●Super server

●In ascolto su tutte le porte

Utile per servizi lanciati poco frequentemente (vd.


Carico sul sistema)

●Utile per la sicurezza (soprattutto con l'aiuto di


tcp_wrappers)

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 47


Esempio di file

Servizio socket protocollo flags user path_servizio

# inetd.conf
# ftp stream tcp nowait root /usr/sbin/tcpd vsftpd
ssh stream tcp nowait root /usr/sbin/sshd -i

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 48


...cioè...
● Servizio → nome del servizio

● Socket → tipo di socket (TCP o UDP)


TCP → stream
UDP → dgram

● Protocollo → tipo di protocollo (TCP o UDP)

● User → UserID assegnato da inetd al servizio

● Path_servizio → percorso del servizio da avviare


GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 49
Xinetd (extended inetd)

●Differisce da inetd per la configurazione

●Permette di configurare le istanze di un processo


e quando (eventualmente) disabilitarlo

●Filtra le connessioni attraverso tcp_wrappers

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 50


Esempio di file

service ssh
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/sshd
server_args = -i
disable = no
}

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 51


xconv.pl

●Converte sintassi di inetd in xinetd

●Contenuto nel pacchetto xinetd

●Sintassi

xconv.pl < /etc/inetd.conf > /etc/xinetd.conf

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 52


Tcp_wrappers

●“Filtro” alle connessioni tramite (x)inetd

●Filtra soltanto le connessioni TCP (vedi


/etc/services)

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 53


→ /etc/hosts.allow

IN QUESTO ORDINE
(La sintassi tra i due files
è uguale)
→ /etc/hosts.deny

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 54


●Se una regola è “compatibile” in hosts.allow
viene consentito l'accesso

●Se una regola è “compatibile” in hosts.deny


viene negato l'accesso

● Se nessuna regola viene verificata, viene dato


l'accesso di default

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 55


Sintassi

daemon_list : client_list

Ad esempio

ALL : ALL
Sshd: 192.168.1.15
Telnetd: .example.com

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 56


client_list – sintassi supportata

192.168.1.15 → indirizzo IP

.example.com → tutti i client appartenenti al


dominio specificato

172.16 → tutti i client con indirizzo 172.16.X.Y

ALL → tutti i client

user@linux.example.com → specifica l'utente su


un deteminato client
GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 57
attenzione!

SI! 192.168.0.1/255.255.255.0

NO! 192.168.0.1/24

LA NOTAZIONE CIDR NON E' SUPPORTATA


DA TCP_WRAPPERS

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 58


Per aggiungere una eccezione si usa EXCEPT

es. sshd : 192.168.0.1/255.255.255.0 EXCEPT


192.168.0.37

Per stampare un messaggio si usa twist

es. sshd : .crack.org : twist /bin/echo Spiacente


%c ma l'accesso è vietato

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 59


Operatori di twist

%a → indirizzo IP del client

%c → informazioni sul client

%d → nome del processo

%h → nome del client

%p → ID del processo

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 60


Differenze con firewall

●Può essere usato solo su macchine “periferiche”

●Filtra i demoni ma non le porte

●Non gestisce il NAT

GNU/Linux User Group Torino Rilasciato sotto licenza CC-by-nc-sa. 61