Firewall Flashcards
Descrivere le differenze tra stateless e stateful firewall fare degli esempi.
I firewall stateful sono in grado di riconoscere le connessioni e le trasmissioni e, ispezionandole, sono in grado di decidere cosa fare in base a molteplici parametri.
Mantengono inoltre un log storico del traffico, con i dettagli quali indirizzi di origine e destinazione, numeri di porta, sequenze TCP e con questo sono in grado di aprire o chiudere dinamicamente delle porte per consentire o bloccare il traffico. Le policy su un firewall, unite al modulo di log inspection di un firewall utilizzato tendenzialmente in infrastrutture mediamente complesse fornisce questo genere di funzionalità in maniera integrata, ma c’è bisogno di un tecnico esperto per configurarle, in quanto si possono causare diversi problemi al traffico sia interno che verso l’esterno, se si sbaglia a inserire policy.
I firewall stateless invece bloccano o consentono una comunicazione soltanto sulla base delle caratteristiche di quest’ultima. In pratica i pacchetti sono bloccati in base a delle regole statiche (ad es. l’indirizzo sorgente o quello di destinazione, la porta utilizzata) e di ciò non viene tenuta memoria.
Un FW Stateless opera implementando le regole in base agli header dei singoli pacchetti in transito in isolamento ovvero operando scelte sulla base del matching di una ACL su in\out indirizzo\porta senza occuparsi del traffico pregresso su tale sessione. Un firewall stateful, l’inspection dei pacchetti non avviene in isolamento ma su base di sessione: ogni connessione autorizzata viene salvata in una state table. Ogni pacchetto viene analizzato verificando a priori se appartiene ad una connessione già stabilita
Cosa è possibile fare con uno stateful filtering che non si riesce ad ottenere con lo stateless? Fare un esempio concreto.
Diciamo subito che la differenza principale tra stateful filtering e stateless filtering sta nel fatto che il primo tiene traccia della storia dei pacchetti mentre il secondo prende in considerazione il singolo pacchetto in modo isolato quindi con lo stateful filtering possiamo andare a prendere in considerazione le connessioni in corso/stabilite sulla rete e permettere il filtraggio dei pacchetti solo con le connessioni attive un esempio è il fatto che possiamo accettare un pacchetto solo se è la chiusura di un Threeway Handshake oppure con la deep packet inspection possiamo filtrare i pacchetti andando ad analizzare il contenuto del payload(l’insieme dei pacchetti che indica il flusso effettivo) e filtrarlo attraverso pattern matching di stringhe (non faccio passare i pacchetti che contengono la parola cocaina) ciò non puo essere fatto con lo stateless filtering ??
FW Illustrare le caratteristiche principali di un firewall e descrivere come è possibile gestire i principali protocolli applicativi (SSH, FTP, posta elettronica). Utilizzare esempi
FW: hw, appliance o software utilizzato garantire la sicurezza di una rete attraverso l’autorizzazione o la negazione di traffico di rete da e/o per una determinate rete. Il controllo e l’autorizzazione avviene attraverso l’implementazione di regole per o blocchi. Mentre un FW basato su appliance offre performance e robustezza ma di contro ha costi elevati di norma, una implementazione SW si fa preferire in contesti limitati e ha costi molto limitati. Nella accezione attuale un FW di fascia Enterprise è un oggetto ibrido basato su una appliance con possibilità di scalare verticalmente e orizzontalmente attraverso l’aggiunta di nodi e la virtualizzazione e dotato di fertures di signature per pattern recognition, deep packet inspection, IPDS\IDS e web filtering a livello applicativo (NGFW, UTM). Ma anche un banale host con Linux che che usa Netfilter\Iptables, BSD\PF o il personal firewall di Windows sono implementazioni di un FW. Di base opera su matching IP source\destination – port – action. L’analisi avviene attraverso la verifica dell’header del pacchetto e puo prevedere su alcune versioni (Deep packet inspection) anche operatività a livello applicativo mediante la verifica del payload. Stateless\Static analizza i pacchetti in isolamento, StateFul\Dynamic su base sessione pregressa per ogni sessione di tipo TCP e ottimizzazione delle risorse.
Le connessioni UDP sono invece sempre stateless essendo sessionless. La sua posizione predefinita è a protezione della rete dietro in border router. Alcuni dei protocolli detti FW Friendly, ovvero dove il ruolo di client e server è chiaramente definito, richiedono una configurazione basica del FW con l’assegnazione di regole ingress ed egress statiche es telnet e ssh, http.
In altri contesti come SMTP (protocollo per la trasmissione dei messaggi di posta) benche i ruoli sono definiti le posizioni si invertono: un MS opera come client per la ricezione e come server per la trasmissione ed infine deve recapitare la posta ai client pertanto sono necessarie regole aggiuntive.
FTP (protocollo per il trasferimento efficiente dei dati tra due host) prevede l’utilizzo di due porte distinte: una per la comunicazione client\server e una per lo scambio effettivo dei dati. In modalità attiva un server FTP, quella di default, richiederebbe che tutte le non wellknow ports fossero aperte in Ingresso sul FW in quanto il server utilizza una porta casuale > 1024 per la trasmissione dei dati. Per evitare questa grave vulnerabilità (le porte >1024 sono usati da moltissimi processi e da moltissimi trojan) si utilizza la modalità passive. Qui il server negozia la porta > 1024 e sarà il client a dover aprire quella determinata porta in ingresso così che il verso della connessione sia invertito e la regola FW possa prevedere di aprire tutte le porte > 1024 ma solo in uscita. In linea di principio la configurazione di un firewall può diventare molto complicata in ogni contesto in cui il ruolo di client e server non sia definito.
Differenza tra dynamic e static packet filtering
Il Dynamic packet filter e un metodo di filtraggio che consiste nell’aprire e chiudere le porte sul firewall in base alle informazioni dell’header dei pacchetti che transitano attraverso esso. Una volta che una serie di pacchetti ha transitato attraverso la porta, verso la sua destinazione, il firewall richiude la porta.
Lo static packet filtering invece utilizza delle ACL per confrontare il contenuto del header dei pacchetti in transito per capire se questi sono da far passare o da scartare. Ogni pacchetto viene quindi esaminato singolarmente, indipendentemente dal fatto che quello precedente fosse uguale.
Come vengono gestite le comunicazioni TCP in un firewall stateful? E le connessioni UDP?
Vedi sopra, in aggiunta: uno stateful non valuta i pacchetti e il match alle ACL in isolamento ma in ambito di pregresso. Parla di dynamic packet filtering e ottimizzazione delle risorse. UDP, viceversa, è un protocollo non orientato alla connessione: ogni volta che un nodo vuole comunicare con un altro nodo tramite protocollo UDP prepara un datagramma e lo invia in rete, senza che venga stabilita una connessione o mantenuto uno stato fra le due parti. Ciò significa che per applicare filtri su protocolli che usano UDP, come ad esempio DNS, è sufficiente applicare sul firewall delle regole stateless, specificando indirizzi IP di sorgente e destinazione, numeri di porta, la relativa chain e il target da applicare.
Ad esempio: $ iptables -A FORWARD -d 192.168.1.53 -p udp –dport 53 -j DROP
Descrivi tutti i tipi di firewall che conosci associando I diversi livelli ISO/OSI che sono in grado di analizzare.
Firewall di tipo stateless: forniscono packet filtering di tipo stateless, quindi un semplice controllo dei pacchetti in transito, basandosi su alcune regole preimpostate, principalmente legate a indirizzi di sorgente e destinazione (livello 3 ISO/OSI – Network).
Firewall di tipo stateful: forniscono packet filtering di tipo stateful, in cui vengono analizzate più informazioni del pacchetto, comprese le porte utilizzate, i protocolli e viene tenuta traccia tramite log delle azioni. Inoltre si ricordano se una sessione TCP era attiva, così da far passare i pacchetti successivi (livello 4 ISO/OSI – Transport).
Application Gateway: esaminano il contenuto dei pacchetti a livello applicativo, fornendo un livello di sicurezza maggiore (livello 7 – ISO/OSI – Application).
Descrivere uno stateful packet filter e le differenze rispetto ad un application gateway.
Uno stateful firewall analizza ogni pacchetto che lo attraversa singolarmente e in più tiene traccia delle connessioni e del loro stato, grazie a una tabella dello stato interna al firewall nella quale ogni connessione TCP e UDP viene rappresentata da due coppie formate da indirizzo IP e porta, una per ciascun endpoint della comunicazione.
Un application-level gateway è composto da una serie di proxy che esaminano il contenuto dei pacchetti a livello applicativo, fornendo un livello di sicurezza maggiore (es. contro attacchi di buffer overflow): posizionandosi tra client e server, impedisce la comunicazione diretta e può offrire anche servizi di load balancing del traffico.
Descrivere come funziona un firewall stateful
Uno stateful firewall analizza ogni pacchetto che lo attraversa singolarmente e in più tiene traccia delle connessioni e del loro stato, grazie a una tabella dello stato interna al firewall nella quale ogni connessione TCP e UDP viene rappresentata da due coppie formate da indirizzo IP e porta, una per ciascun endpoint della comunicazione.
Cosa si intende per deep packet inspection? Come si applicano a scenari di encrypted threats?
La deep packet inspection è una tecnica di packet filtering che va a controllare il contenuto dei pacchetti in transito in maniera approfondita, per identificare codice malevolo, grazie all’intelligenza artificiale che sfrutta l’analisi di determinati pattern in memoria. In sostanza è un tipo di filtraggio applicativo e il suo funzionamento può essere paragonato a quello di un antivirus.
In scenari di encrypted threats, la deep packet inspection può mettersi in mezzo a una comunicazione criptata in quanto è possibile abilitare la possibilità di far verificare un traffico cryptato per poter capire se è presente un man in the middle che sta sfruttando un canale cifrato per attaccare una rete: la procedura consiste nell’inviare i pacchetti su un server in cloud che fa analisi e mi dice se la connessione è “pulita” o se sono presenti minacce. La decisione su cosa fare poi spetta a me.
a. Consideriamo il problema di filtrare il traffico da e verso un server FTP attraverso un firewall. Usereste FTP attivo o passivo?
b. Ammesso di aver impostato correttamente il firewall quali problemi di sicurezza permangono insiti nel protocollo FTP? Come si potrebbero risolvere? Sarebbe utile un IDS in tal senso o no? Motivare le risposte
Per il punto a non ci sono problemi (ovviamente la risposta è FTP passive mode con tutte le argomentazioni sul perché presenti nella lezione)
La ragione per cui passive FTP è particolare è che in “passive transfer mode” il server comunica al client di aprire una nuova connessione verso una porta arbitraria (> 1024). Supponendo di configurare un firewall sulla macchina del server FTP, dobbiamo fare in modo che il traffico in questa particolare porta venga accettato. Se accettassimo il traffico diretto a tutte le porte ovviamente il server sarebbe troppo vulnerabile. Questo era un classico problema dei vecchi software firewall e packet filter (es., ipchains, ipfwadm, …).
Comunque iptables fornisce alcuni strumenti per tracciare le connessioni tipo “conntrack”:
1) dobbiamo assicurarci che i moduli “ip_conntrack” e “ip_conntrack_ftp” siano caricati nel Kernel;
2) aggiungiamo le seguenti regole sul firewall lato server
Per il punto b, partendo dalle regole di filtering generali di FTP passive mode che allego, a mio avviso i problemi che permangono sono:
1. Per permettere la connessione dati dobbiamo permettere una connessione da client a server verso una porta qualsiasi >1023 e analogamente dobbiamo permettere il rientro dell’ack quindi una connessione da server a client (da una porta >1023 ad una porta sempre >1023). Quindi diciamo che restano queste due “brecce” nel nostro firewall. Potremmo risolvere “mettendoci d’accordo” con il server e fissando una porta per la connessione dati (non sempre fattibile ovviamente)
2. Resta possibile l’FTP bounce, eliminabile con un proxy firewall che “conosce” FTP e quindi in grado di rilevare le richieste tipiche dell’FTP bounce L’IDS lo metterei dietro al firewall per apprezzare l’efficacia delle configurazioni e con delle regole ad hoc per rilevare eventualmente FTP Bounce
Se poi parliamo di IPS possiamo magari impostare delle azioni automatiche per bloccare lo scan…
b. Cosa è una honey pot? A cosa serve?
Un honeypot è un sistema hardware o software utilizzato come “esca” per attirare potenziali attaccanti e studiare i loro comportamenti; a tal fine dovrà avere caratteristiche che lo rendano appetibile ad un attaccante (es. difese irrisorie, finti contenuti sensibili).
Tipico utilizzo di un honeypot è quello di costruire una rete esca, accessibile pubblicamente e senza alcuna risorsa davvero critica, che possa fare da bersaglio per gli attacchi di potenziali avversari, al fine di monitorare e studiare gli attacchi così da identificare e risolvere eventuali falle di sicurezza.
Utilizzando dei NIDS (Network Intrusion Detection System) in accoppiata con un honeypot è possibile generare nuove firme con le quali istruire i dispositivi a protezione della rete.
Cosa è un IDS? Descrivere una possibile integrazione tra IDS e firewall.
L’IDS è un sistema di monitoraggio utilizzato per identificare accessi non autorizzati a pc o reti locali. Ha tecniche e metodi realizzati per rilevare pacchetti dati sospetti a livello di rete, trasporto e applicazione.
Un IDS non può bloccare o filtrare i pacchetti in ingresso ed in uscita, né può modificarli.
Una possibile integrazione con i firewall possono essere i NIDS (network intrusion detection system) che consistono in IDS configurati sul firewall e integrati con le policy di gestione e filtraggio del traffico.
Nel concreto, quindi, viene utilizzato un Intrusion Detection System (IDS), sistema di monitoraggio del traffico di rete con lo scopo di evidenziare eventi critici per la sicurezza. Esso può essere visto come un’estensione dei log di sistema e può collaborare con il firewall in sinergia. Può infatti decidere di prevedere una risposta a fronte di un evento di intrusione per esempio chiudendo il firewall.
Come è fatto un NIDS?
Siccome hanno bisogno di ispezionare il traffico, sarà presente un gruppo di sensori posizionati in punti strategici della rete e che ha il compito di analizzare il traffico di rete e scatenare eventi di sicurezza quando rileva qualcosa. Il sensore può inoltre interagire direttamente con l’ACL del firewall, chiedendo a quest’ultimo di compiere delle azioni come il reset della connessione TCP. Tutti i sensori comunicano con un loro gestore, il director ossia il sistema di coordinamento dei sensori stessi. Esso è in grado di costruire dei pattern e capire, in base alle attività dei sensori, se una certa serie di eventi è riconducibile ad un certo pattern di attacco e agire quindi di conseguenza. Infine è fondamentale anche la presenza di un sistema di comunicazione dei messaggi tra i sensori, il quale deve essere sicuro e affidabile per permettere il corretto funzionamento dell’IDS. NB: quest’ultimo può essere un target degli attaccanti i quali, per prima cosa. punteranno a neutralizzarlo.
Cosa si intende per IDS? Dove andrebbe posizionato in una rete che avesse due accessi a internet?
Un IDS (intrusion detection system) è un sistema di monitoraggio utilizzato per identificare dei comportamenti malevoli, rilevando attacchi o altre violazioni alla sicurezza e fornendo informazioni su intrusioni avvenute, grazie all’uso di sonde posizionate sugli host, oppure in certi punti della rete.
Ci sono due tipologie di IDS: passivi, che fanno un controllo di firme, e attivi, che apprendono i dati del sistema e “imparano” dall’analisi statistica del funzionamento del sistema.
Supponendo che i due accessi a internet siano tramite due diversi firewall, le sonde di un IDS andrebbero posizionate, oltre a prima del firewall, sugli host in DMZ e sulla LAN, anche oltre i due firewall, esposto su internet: in questo caso si parla di NIDS (network intrusion detection system), ma è molto utile in questa posizione per prevenire eventuali falsi positivi all’interno della rete, perché si andrebbe a fare un confronto con ciò che effettivamente arrivava dall’esterno o verso l’esterno, con quello che le sonde interne hanno rilevato.
Come funziona un IDS e quali sono le differenze rispetto ad un IPS?
Un IDS (intrusion detection system) è un sistema di monitoraggio utilizzato per identificare dei comportamenti malevoli, rilevando attacchi o altre violazioni alla sicurezza e fornendo informazioni su intrusioni avvenute, grazie all’uso di sonde posizionate sugli host, oppure in certi punti della rete.
Ci sono due tipologie di IDS: passivi, che fanno un controllo di firme, e attivi, che apprendono i dati del sistema e “imparano” dall’analisi statistica del funzionamento del sistema.
Esistono due principali tipologie di IDS:
● passivi, sono in grado di effettuare controlli basati su signature passive ossia che vengono scaricate. Si può quindi dire che sono in grado di fare quello che fa un antivirus però sul traffico di rete;
● attivi, sono in grado di “imparare” mediante analisi statistiche del funzionamento del sistema e utilizzare ciò che hanno imparato per effettuare un monitoraggio in time-series ossia nel tempo. Sono infatti in grado di collegare eventi che arrivano in sequenze temporali anche molto lasche. Infine sono anche in grado di reagire sulla base di alcuni parametri statistici, in particolare tale reazione scatta al superamento di una certa soglia.
Un IPS (intrusion prevention system) invece è comunemente considerato l’accoppiata tra firewall e IDS, cioè si parla di una tecnologia, che cerca di bloccare attacchi alle fasi preliminari, facendo analisi predittiva sulla base di informazioni precedenti ricevute, al fine di velocizzare ed automatizzare la risposta alle intrusioni. Il nome infatti potrebbe ingannare, questi dispositivi non sono in grado di prevenire un’intrusione; non sono ancora molto utilizzati poiché c’è il pericolo che la macchina prenda la decisione sbagliata e blocchi del traffico innocuo: chi dovrebbe prendersi la responsabilità in questo caso?