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


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


Archivio: openbsd@sikurezza.org
Soggetto: Re: misure di difesa anti-ARP poisoning (was: Re: DHCP options)
Mittente: David Coppa
Data: 8 Jun 2003 01:04:27 -0000
* Febs (spelta@linux.it) wrote:
> > Sta tranquillo, non e` nulla di grave :)
> 
> Ne ero certo (beh, al 99 e rotti % :) ); il problema e' la seccatura del 
> logging "a video" e nei file (vedi sotto)

Se vuoi disabilitare il logging a console edita /etc/syslog.conf e fai 
andare in un file tutto quello che viene mandato a "/dev/console" e 
a "root".

> Grazie mille per la risposta, anzi gia che ci sono rilancio.
> E' possibile indicare in maniera spiccia a OpenBSD di 
> 
> 1) Rifiutare tutte le ARP replies non richieste
> 2) Rilevare e registrare gli arrivi di DUE (o piu!) ARP replies - ovviamente 
> diverse - in risposta ad una ARP request - magari rifiutando di effettuare la 
> connessione?

La "rilevazione", OpenBSD la fa gia' di suo:

dai src del kernel di una 3.3 (in src/sys/netinet/if_ether.c): 

if (rt->rt_flags & RTF_PERMANENT_ARP) {
	log(LOG_WARNING,
	   "arp: attempt to overwrite permanent "
	   "entry for %s by %s on %s\n",
	   inet_ntoa(isaddr),
	   ether_sprintf(ea->arp_sha),
	   ac->ac_if.if_xname);
	goto out;
} else if (rt->rt_ifp != &ac->ac_if) {
        log(LOG_WARNING,
	   "arp: attempt to overwrite entry for %s "
	   "on %s by %s on %s\n",
	   inet_ntoa(isaddr), rt->rt_ifp->if_xname,
	   ether_sprintf(ea->arp_sha),
	   ac->ac_if.if_xname);
	goto out;
} else {
	log(LOG_INFO,
	   "arp info overwritten for %s by %s on %s\n",
    	   inet_ntoa(isaddr),
	   ether_sprintf(ea->arp_sha),
	   ac->ac_if.if_xname);
	rt->rt_expire = 1; /* no longer static */
  }
}

Se qualcuno sta poisonando (eg: ettercap) ti ritrovi i log pieni di 
questa roba:

Jun  7 13:31:32 caff /bsd: arp info overwritten for 192.168.1.2 by 00:30:65:19:68:f1 on xl0

ma l'entry nella arp table viene comunque sovrascritta...

Se vuoi bloccare brutalmente i tentativi di poisoning applica questa 
micro-patch (magari non proprio questa che fa alquanto schifo ;)) e 
ricompila il kernel:

--- sys/netinet/if_ether.c
+++ sys/netinet/if_ether.c
@@ -604,12 +604,12 @@
 				   ac->ac_if.if_xname);
 				goto out;
 			} else {
-				log(LOG_INFO,
-				   "arp info overwritten for %s by %s on %s\n",
+				log(LOG_WARNING,
+				   "arp: blocked attempt to overwrite arp info for %s by %s on %s (possible arp poisoning)\n",
 			    	   inet_ntoa(isaddr),
 				   ether_sprintf(ea->arp_sha),
 				   ac->ac_if.if_xname);
-				rt->rt_expire = 1; /* no longer static */
+				goto out;
 			}
 		    }
 		} else if (rt->rt_ifp != &ac->ac_if && !(ac->ac_if.if_bridge &&


Cheers,
-- 
David "caff" Coppa <caff AT openbeer DOT it> s/AT/@/ s/DOT/./

OpenBSD: enforcing your security policy from VAX to i386

Please avoid sending me Word or PowerPoint attachments
See http://www.fsf.org/philosophy/no-word-attachments.html
-- 

________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List




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

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