[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: Febbraio 2004 ml@sikurezza.org
Soggetto: Re: icmp o non icmp ?? questo ? il problema
Mittente: Marco d'Itri
Data: 15 Feb 2004 01:22:31 -0000
On Feb 11, sikurezza@xxxxxxxxx wrote:

 >A parte M.D. che sicuramente dira' che e' un sistema super complesso, il
 >che puo' anche essere vero, in questo modo mi sento abbastanza
 >rilassato.
Di nuovo, il punto è che non è stato definito un threat model in base a
cui progettare le proprie difese, cioè quali risorse di rete, quali
capacità e quanto tempo ha a disposizione l'attaccante.

Dal mio punto di vista il problema è che non è sano lasciare un demone
ssh a disposizione sulla porta 22, vista la sua storia di problemi di
sicurezza, e ritengo che sia una contromisura soddisfacente proteggerlo
con una ACL a livello di kernel (netfilter) o applicativo (tcpd).
A questo punto si presenta la necessità di aprire selettivamente questa
ACL da remoto usando un protocollo sufficientemente semplice da potere
essere ragionevolmente sicuri che il demone che lo implementa non abbia
buchi.
Il portknocking è una tecnica interessante se si suppone che
l'attaccante non sia molto furbo e non possa leggere il tuo traffico,
altrimenti è "inutile". Inoltre, a mio parere è utile solo quando è
possibile generare la sequenza con tool standard che ci si aspetta di
trovare su ogni sistema, per esempio ping e telnet. Se diventano
necessari tool specializzati allora tanto vale scrivere un protocollo
testuale ad hoc da usare con telnet, oppure semplicemente inviare
un'email.
Se invece si suppone che l'attaccante conosca il contenuto di ogni
pacchetto inviato e ricevuto allora si può risolvere facilmente il
problema usando il solito protocollo testuale ma autenticandosi con
OPIE (S/Key).
Se si fa attenzione a inviare autenticazione e comandi in un unico
pacchetto direi che si possono evitare tutti i soliti attacchi a TCP
(ma come verificarlo in user space in modo semplice? Una alternativa
simpatica a TCP è ping -p).
Una volta aperta l'ACL non credo che mettere in mezzo una VPN fornisca
più sicurezza, considerando che SSH consente già l'autenticazione e la
verifica dell'identità dell'host remoto tramite protocolli a chiave
pubblica.

Come esercizio lascio agli interessati il compito di implementare in
perl un demone con le seguenti caratteristiche:
- apra un socket TCP in ascolto e per ogni connessione faccia fork,
  chroot, imposti i limiti, cambi UID, legga quello che c'è da leggere
  dalla rete, ne faccia il parsing e lo invii tramite una pipe al
  processo padre (che starà ben attento a cosa legge...)
- verifichi la password con OPIE e se è corretta riscriva hosts.allow
  con l'IP giusto
- tolga l'IP dal file quando il processo figlio muore (cosa che può
  succedere quando viene chiusa la connessione o quando il padre lo
  uccide dopo un breve timeout)

Ci sono altri accorgimenti da usare per blindare il demone ma non mi
dilungherò a descriverli tutti.

-- 
ciao, |
Marco | [4578 al4slcYoaWFaI]

Attachment: signature.asc
Description: Digital signature




[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005