Vous êtes ici : Accueil » Créations
>>DefendarpPrésentationLogiciel d’information reccueillant erreurs détectées dans la table ARP. Il permet d’avertir quand celle-ci est corrompue ou incorrecte. Le protocol ARPRappelons tout d’abord le principe le plus important dans le fonctionnement d’un réseau Ethernet. Lorsqu’une station émet une trame sur le support physique, toutes les stations y étant connectées la reçoivent. Par la suite, la station doit être capable de déterminer si cette trame lui est destinée. Ainsi, un premier filtre gérant les trames émises et reçues par le système agit au niveau de la pile TCP/IP. Il compare l’adresse MAC contenue dans une trame á celle associée á la carte réseau (nous sommes ici au niveau 2 du modèle OSI). Si ces deux adresses sont identiques, la partie données de la trame est remontée au niveau 3 pour traitement ultérieur. Pour information, passer une carte réseau en mode promiscuous revient simplement á annuler ce filtrage : même les paquets non destinés á ce système sont remontés, et donc lisibles. Dès lors, il est essentiel pour l’instigateur d’une communication de récupérer préalablement l’adresse MAC du destinataire. C’est lá qu’intervient le protocole ARP. Si les paquets ARP ont une construction très souple, leur emploi sur le LAN n’en est pas moins coûteux, tant pour le réseau (la demande est émise en diffusion) que pour le système (chaque paquet de demande reçu par une station doit être traité pour savoir s’il faut soit répondre, soit l’ignorer. Dans un cas extrême, l’émission de chaque paquet IP provoque l’émission de deux paquets ARP (une question en diffusion et la réponse correspondante). Un mécanisme de cache limite ces émissions ARP : chaque système dispose d’une table qui sauvegarde les correspondances (adresse MAC, adresse IP). Ainsi, une requête ARP est émise uniquement si le destinataire n’est pas présent dans la table. La commande "arp -a" affiche le contenu de la table, aussi bien sous Windows que sous les divers Unix. DefendarpDefendarp prévient l’attaque ’arp poisonning’ en réseau local. Il fonctionne sous Windows 98/Nt/2000/Xp. Il répertorie les relations MAC/IP Defendarp vous prévient quand une adresse IP change d’adresse MAC et vous informe si il trouve plus de 2 fois une adresse MAC. ![]() Exemple de code récupérant cette table : /* Taille limite fixée */ LONG nSize = 500; PMIB_IPNETTABLE pMib = (PMIB_IPNETTABLE)malloc(sizeof(MIB_IPNETTABLE)+sizeof(MIB_IPNETROW)*nSize); DWORD rresult; rresult = GetIpNetTable(pMib,&nSize,TRUE); if (NO_ERROR == GetIpNetTable(pMib,&nSize,TRUE)){ for (int i=0;i<(int)nSize;i++) { /* Contenu de la structure MIB_IPNETTABLE : DWORD dwIndex; Index de l'interface réseau DWORD dwPhysAddrLen; Longueur de l'adresse MAC BYTE bPhysAddr[MAXLEN_PHYSADDR]; Adresse MAC DWORD dwAddr; Adresse IP DWORD dwType; Type de l'entrée 'Statique, dynamique ...' */ /* Afficher l'adresse IP */ printf("%d.%d.%d.%d",( pMib->table[i].dwAddr&0x0000ff),((pMib->table[i].dwAddr&0xff00)>>8), ((pMib->table[i].dwAddr&0xff0000)>>16),(pMib->table[i].dwAddr>>24)); /* Afficher l'adresse MAC */ printf("%02X:%02X:%02X:%02X:%02X:%02X", pMib->table[i].bPhysAddr[0],pMib->table[i].bPhysAddr[1], pMib->table[i].bPhysAddr[2],pMib->table[i].bPhysAddr[3], pMib->table[i].bPhysAddr[4],pMib->table[i].bPhysAddr[5] ); ... .. } free(pMib); Dans le cas ou une machine IP change subitement d’adresse MAC et vice et versa, alors défendarp affiche cette anomalie. Il est capable également d’avertir si il trouve une adresse MAC pour deux adresses IP, ce qui n’est pas vraisemblable. ![]() Une des librairies utilisées est ’iphlpapi.dll’. Voici les principales fonctions utilisées :
Les principales structures :
Defendarp n’est pas distribué, néanmoins Seem récupère une grande partie des informations décrite dans ce logiciel : La liste de correspondance des adresses MAC avec leurs constructeurs respestifs est disponible en document lié. Pour terminer, il est conseillé de placer en ’statique’ les couples IP/MAC qui ne doivent pas changer dans un réseau. Cette méthode étant possible que sous Linux et sous Windows XP et supèrieur. |
Document(s) lié(s) |