Home > Networking & NetSecurity, Sicurezza, Windows > Windows TCP/IP Stack Hardening

Windows TCP/IP Stack Hardening

Mi sembra doveroso ribadire, dopo aver spesso dato risposta in giro sui vari forum, che un metodo per proteggere il proprio pc sia proprio l’irrobustimento del sistema stesso e quindi anche delle varie aree che lo caratterizzano e che sono esposte a pericoli e bugs
Proprio in quest’ottica ci viene in aiuto l’hardening, ovvero l’insieme di tutte quelle procedure di irrobustimento di un sistema operativo,  che comprende anche l’hardening dello stack TCP/IP  che spesso viene lasciato configurato di default esponendo comunque la nostra macchina a pericoli e insidie.

Lo stack TCP/IP è il responsabile del trasporto di pacchetti di dati da una sorgente (identificata da un indirizzo IP) ad una destinazione (identificata da un altro indirizzo IP). Se necessario, questo livello del protocollo si occupa di spezzettare i pacchetti troppo grandi in pacchetti di dimensione adatta alla rete da utilizzare.

Sostanzialmente tutte le applicazioni che fanno uso di Internet e tutte le applicazioni tradizionali che si riferiscono a LAN utilizzano IP, benché teoricamente siano possibili altre soluzioni.
Il protocollo IP è per impostazione predefinita privo di protezione. Tuttavia con l’uso e la configurazione di vari parametri nel registro di Windows è possibile aumentare il livello di protezione della rete da attacchi di tipo Denial of Service, inclusi attacchi SYS, ICMP e SNMP. Le chiavi del Registro di sistema possono essere configurate per:

– Attivare la protezione dagli attacchi di tipo SYN quando viene rilevato un attacco
– Impostare valori limite utilizzati per determinare ciò che costituisce un attacco.

Alcune chiavi e valori cui si fa riferimento in questa procedura potrebbero non essere disponibili per impostazione predefinita, in questi casi è necessario creare chiavi, valori e dati valore.

Gli interventi che ci apprestiamo a compiere potrebbero essere, se non eseguiti nel modo corretto, dannosi, per cui è importantissimo, prima di compiere qualunque azione sul registro, premunirsi di farne una copia completa.

Iniziamo : Entriamo in regedit e posizioniamoci alla seguente chiave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip\parameters

Valore: EnableDeadGWDetect – Valore consigliato: 0 [Valori validi: 0 (disabilitato), 1 (abilitato)]

1 : se si imposta EnableDeadGWDetect su 1, il protocollo TCP può rilevare i gateway inattivi. Quando il rilevamento dei gateway inattivi è abilitato, TCP può chiedere al protocollo IP (Internet Protocol) di passare a un gateway di backup se per alcune connessioni ci sono dei problemi. I gateway di backup possono essere definiti nella sezione Avanzate della finestra di dialogo di configurazione del protocollo TCP/IP tramite lo strumento Rete nel Pannello di controllo.

0 : è consigliabile impostare il valore di EnableDeadGWDetect su 0, in caso contrario un eventuale attacco potrebbe obbligare il server a cambiare gateway imponendogli di passare a un gateway indesiderato.

Valore: SynAttackProtect – Valore consigliato: 1 [Valori validi: 0 – 2]
Questo valore del Registro di sistema fa sì che il protocollo TCP regoli la ritrasmissione di SYN-ACKS. Quando lo si configura, le risposte di connessione scadono più rapidamente durante un attacco SYN (un tipo di attacco “Denial of Service”).

I seguenti parametri possono essere utilizzati con questo valore del Registro di sistema:
– 0 (valore predefinito): nessuna protezione dagli attacchi SYN
– 1: impostare SynAttackProtect su 1 per una migliore protezione dagli attacchi SYN.

Questo parametro fa sì che il protocollo TCP regoli la ritrasmissione di SYN-ACKS. Se si imposta SynAttackProtect su 1, il timeout delle risposte di connessione è più veloce qualora il sistema rilevi un attacco SYN in corso. Per determinare se è in corso un attacco, Windows utilizza i valori seguenti:
– TcpMaxPortsExhausted
– TCPMaxHalfOpen
– TCPMaxHalfOpenRetried

Nome valore: TcpMaxPortsExhausted – Valore consigliato: 0 [Valori validi: 0 – 65535]
specifica il limite di richieste di connessione TCP che deve essere superato prima di attivare la protezione dagli attacchi SYN.

Nome valore: TcpMaxHalfOpen – Valore consigliato: 64 [Valori validi: 100 – 65535]
quando SynAttackProtect è attivato, questo valore specifica il limite di connessioni TCP nello stato SYN_RCVD. Al superamento del valore SynAttackProtect viene attivata la protezione dagli attacchi di tipo SYN.

Nome valore: TcpMaxHalfOpenRetried – Valore consigliato: 400 [Valori validi: 80 – 65535]
quando SynAttackProtect è attivato, questo valore specifica il limite di connessioni TCP nello stato SYN_RCVD per cui è stata inviata almeno una ritrasmissione. Al superamento del valore SynAttackProtect viene attivata la protezione dagli attacchi di tipo SYN.

Nome valore: TcpMaxConnectResponseRetransmissions
– Valore consigliato: 2 [Valori validi: 0 – 255]
controlla il numero di ritrasmissioni di un SYN-ACK prima di annullare il tentativo di risposta a una richiesta SYN.

Nome valore: TcpMaxDataRetransmissions – Valore consigliato: 3 [Valori validi: 0 – 65535]
specifica il numero di volte in cui TCP ritrasmetterà un singolo segmento di dati (non di connessione) prima di annullare la connessione

Nome valore: EnablePMTUDiscovery – Valore consigliato: 1 [Valori validi: 0, 1]
se questo valore è impostato su 1 (valore predefinito), il protocollo TCP deve individuare l’unità massima di trasmissione o il pacchetto con la dimensione maggiore nel percorso di un host remoto. Un pirata informatico può forzare la frammentazione del pacchetto e quindi sovraccaricare lo stack. Specificando il valore 0, verrà imposta la MTU di 576 byte per le connessioni da host non inclusi nella subnet locale.

Nome valore: KeepAliveTime – Valore consigliato: 300000 [Valori validi: 80 – 4294967295]
specifica la frequenza con cui il protocollo TCP tenta di verificare se una connessione inattiva è ancora intatta inviando un pacchetto keep-alive

Nome valore: NoNameReleaseOnDemand – Valore consigliato: 1 [Valori validi: 0, 1]
specifica che il computer non deve rivelare il nome NetBIOS quando riceve una richiesta di rilascio dei nomi.

Nome Valore: DisableIPSourceRouting – Valore consigliato: 1 [Valori validi: 0, 1, 2]
disattiva l’origine routing IP, che consente a un mittente di determinare la route che un datagramma deve seguire attraverso la rete.

Nome Valore: EnableFragmentChecking – Valore consigliato: 1 [Valori validi: 0 (disabilitato), 1 (abilitato)]
impedisce allo stack IP di accettare pacchetti frammentati

Nome Valore: EnableMulticastForwarding – Valore consigliato: 0 [Intervallo valido: 0 (false), 1 (true)]
il servizio di routing si basa su questo parametro per determinare se i pacchetti multicst IP debbano essere inoltrati o meno. Questo parametro viene creato dal servizio Routing e accesso remoto.

Nome Valore: IPEnableRouter – Valore consigliato: 0 [Intervallo valido: 0 (false), 1 (true)]
l’impostazione di questo parametro su 1 (true) consente al sistema di inoltrare i pacchetti IP alle reti a cui è connesso.

Nome Valore: EnableAddrMaskReply – Valore consigliato: 0 [Intervallo valido: 0 (false), 1 (true)]
questo parametro stabilisce se il computer deve rispondere a una richiesta di maschera indirizzo ICMP.

Ora rechiamoci alla chiave:

HKLM\System\CurrentControlSet\Services\AFD\Parameters

Nome Valore: EnableICMPRedirect – Valore consigliato: 0 [Valori validi: 0, 1]
se si modifica questo valore su 0, viene impedita la creazione di route host dispendiose in seguito alla ricezione di un pacchetto di reindirizzamento ICMP.

Nome Valore: EnableDynamicBacklog – Valore consigliato: 1 [Valori validi: 0 (disabilitato), 1 (abilitato)]
specifica che la funzionalità AFD.SYS dovrà gestire un numero elevato di connessioni SYN_RCVD in modo efficace.

Nome valore: MinimumDynamicBacklog – Valore consigliato: 0 [Valori validi: 0 – 4294967295]
specifica il numero minimo di connessioni disponibili consentito per un endpoint in ascolto. Se il numero di connessioni disponibili risulta inferiore a questo valore, viene inserito un thread nella coda per creare altre connessioni disponibili.

Nome valore: MaximumDynamicBacklog – Valore consigliato: 20 [Valori validi: 0 – 4294967295]
specifica il numero totale delle connessioni disponibili e di quelle in stato SYN_RCVD.

Nome valore: DynamicBacklogGrowthDelta – Valore consigliato: 0 [Valori validi: 0 – 4294967295]
quando sono necessarie altre connessioni, specifica il numero di connessioni disponibili che devono essere create.

Articolo formatted by:  PIANETAPC.IT

  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: