# Gefälschte MAC-Adressen erkennen?

## Kermit_CPub

Ich würde gerne mittels iptables mit "ifconfig ether address" (ähnliches können auch manche router) gefälschte MAC-Adressen erkennen. 

Dafür gibt es irgendwo im IP(?) ein Bit, das geänderte MAC-Adressen anzeigt - Allerdings konnte ich dessen Bezeichnung nicht finden. Bzw. welche iptables module/optionen benötige ich um diese adressen zu erkennen.

----------

## rojaro

nope, sowas gibts nicht ... mac addressen sind sowieso schon doppelt vergeben da es mehr ethernet devices gibt als moegliche mac-addressen. bei den meisten neuen onboard ethernetkarten kann man die mac sogar im bios aendern.

----------

## Kermit_CPub

Soetwas scheint es zu geben. Manche Wireless-Accesspoints erkennen und blockieren Packete von gefälschte MAC-Adressen.

----------

## rojaro

nein, bei denen kann man nur angeben welche mac addressen man zulaesst und alle anderen werden logischerweise nicht zugelassen. security auf basis von mac addressen gibt es nicht.

----------

## blackwing

mac adressen doppelt vergeben? wär mir neu.

es gibt immerhin 2^48 (= 281.474.976.710.656 ) davon und damit 65536x mehr als es IP(v4) adressen gibt. ok, diese komischen win* ppp macs (i.e. 44:*) mögen doppelt vergeben sein, aber die anderen sind imho unique.

 *Quote:*   

> The IEEE manages MAC addresses. The hardware identification addresses that the IEEE distributes are unique. That makes the probability of matching MAC addresses zero.

 

und falsche (gespoofte) adressen zu erkennen is relativ unmöglich, da sich ja die karte exact wie normal verhält. viel sicherer ist es daher, port-security auf den switches zu fahren, die bei änderung der mac den port sperren.

achso, filtern via mac geht am einfachsten via "iptables" und dessen modul mac.

e.g. 

```
iptables -A FORWARD -i ${IF_INT} -o ${IF_OUT} -m mac --mac-source DE:AD:BE:EF:BA:BE -j ACCEPT
```

----------

## Kermit_CPub

btw. die ersten 6 byte sind einem hersteller bzw, verwendszweck zugewiesen.

zB: 00:d0:59:...... steht für Intel (im arpwatch-packet ist ein text-file mit den herstellern enthalten)

 *Quote:*   

> und falsche (gespoofte) adressen zu erkennen is relativ unmöglich, da sich ja die karte exact wie normal verhält. viel sicherer ist es daher, port-security auf den switches zu fahren, die bei änderung der mac den port sperren. 
> 
> 

 

Eben nicht ganz, da wenn die Karte/Treiber(?) korrekt implementiert ist auf einem der untersten Übertragunsgschichten ein Bit setzt, welches eine fake-MAC erkennen lässt. Ich hab das vor längerem in einer Vortrag gehört, nur leider finde ich die Unterlagen dazu nicht mehr.

----------

## blackwing

das mit dem vendor prefix is mir bekannt.

ah, jetzt weiss ich, worauf du raus willst :] das is natürlich ne trickreiche idee... ich war die ganze zeit am nachdenken wo im header denn so ein tainted-flag versteckt sein könnte...

das einzige was evtl. in die richtung gehen könnte is das u/l bit in der MAC.

das u/l-bit is das 2nd most significant bit in der mac.

(das most signifikant bit zeigt bekanntlich an, ob die mac multicast oder unicast is)

 *Quote:*   

> 
> 
> If logical addresses are set via the adapter's LAN driver, the second bit of the first byte of the source address is set to '1' (U/L bit).
> 
> U/L = 0
> ...

 

lange rede kurzer sinn: somit müsste bei gespoofter mac ein ethernet frame eine andere source mac haben als die eingestellte, wegen eben der | 0x02 operation.

ich habe mich eben mal ein wenig hingesetzt und ein bissel getestet.

bei ner 3com 905b-tx und c-tx, sowie eepro100 und eepro1000 is mir bei geänderter mac keine differenz zwischen eingestellter mac und empfangener source mac aufgefallen. folglich wurde da wohl kein u/l bit angepasst. also kann man sich in der praxis wohl net drauf verlassen.

----------

## Kermit_CPub

Ja. Das klingt sehr nach dem ich suche.

Vielleicht ist es in manchen Routern/WLAN-NICs korrekt(er) implementiert oder

Möglicherweise gibt es noch ein anderes Bit. Ich versuche mittlerweile den damaligen Vortragenden ausfindig zu machen und ihn danach zu befragen. Wenn ich genaueres weiß poste ich es hier.

(Das mit dem Vendor-Prefix war nur, als tipp für leute die zufällig über diesen thread stolpern)

----------

## blackwing

also, ich habe den mittag mit lesen von den specs der ieee verbracht... (die ja nun gott sei dank als pdf verfügbar sind... was man net so alles tut wenn man mit kaputtem bein im bett liegt  :Sad:  ) ausser dem u/l bit is da nix von wegen spoofing dabei...

dumm nur, dass das net alle beachten...

die grundfrage is wirklich ob es net effizienter is, an den switches wirklich mit port sec + static arp tables zu arbeiten und somit die möglichkeit zu eliminieren, dass fehlerhafte macs rumschwirren...

----------

## Kermit_CPub

Habe mittlerweile eine Antwort erhalten, welche im deine Experimente mit dem u/l Bit bestätigt.

Der Vollständigkeit halber:

 *Quote:*   

> ob dieses Bit beim Spoofing eingesetzt wird, ist fraglich. Sinn des 
> 
> Spoofens ist es ja, möglichst eine "echte" Adresse vorzutäuschen. 
> 
> Generell handelt es sich um folgendes: Man setzt das u/l bit auf 1, also 
> ...

 

----------

