Extracteur IP Texte

Extraire les adresses IP d'un texte libre

Contenu source
Traitement local (côté client)
Comprendre Extraction d'IP depuis du texte
TL;DR

L'extraction d'IP analyse du texte non structure (logs, configurations, e-mails) et identifie toutes les adresses IPv4 et IPv6 grace a la correspondance de motifs par expressions regulieres.

Qu’est-ce que l’extraction d’IP ?

L’extraction d’IP depuis du texte est le processus d’analyse de texte non structure — fichiers de logs, exports de configuration, e-mails, rapports d’incidents ou tout document en texte libre — pour identifier toutes les adresses IPv4 et IPv6 qui y sont integrees. Les adresses extraites peuvent ensuite etre validees, dedupliquees, triees ou transmises a d’autres outils pour une analyse approfondie.

C’est une tache courante dans les operations de securite, l’administration systeme et l’analyse de donnees. Lorsque vous recevez un journal d’acces de 10 000 lignes ou un rapport d’incident detaille, reperer manuellement chaque adresse IP est impraticable. Un outil d’extraction automatise cette tache en quelques millisecondes, produisant une liste propre de toutes les adresses trouvees dans le texte.

La technique de base repose sur la correspondance de motifs par expressions regulieres (regex). L’outil applique des motifs regex soigneusement elabores qui correspondent a la structure formelle des adresses IP, puis renvoie toutes les correspondances avec leurs positions dans le texte.

Motifs regex pour IPv4 et IPv6

Motif IPv4

Un regex IPv4 de base correspond a quatre groupes de 1 a 3 chiffres separes par des points :

\b(\d{1,3}\.){3}\d{1,3}\b

Ce motif capture des chaines comme 192.168.1.1, 10.0.0.255 et 0.0.0.0. Les ancres de limite de mot \b garantissent que la correspondance ne capture pas de chaines partielles integrees dans des nombres plus longs.

Un motif plus strict valide la plage d’octets (0-255) directement dans le regex :

\b(25[0-5]|2[0-4]\d|[01]?\d\d?)(\.(25[0-5]|2[0-4]\d|[01]?\d\d?)){3}\b

Celui-ci rejette les chaines comme 999.999.999.999 au niveau du regex plutot que dans une etape de validation separee.

Motif IPv6

L’extraction d’IPv6 est nettement plus complexe en raison des multiples representations valides :

  • Forme complete : 2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • Forme compressee : 2001:db8:85a3::8a2e:370:7334
  • Forme mixte (IPv4-mappee) : ::ffff:192.168.1.1
  • Loopback : ::1

Un regex IPv6 complet doit prendre en compte toutes ces variantes, ce qui le rend considerablement plus long que le motif IPv4. La plupart des outils d’extraction utilisent une combinaison de motifs ou une approche en plusieurs passes : d’abord extraire les candidats avec un motif permissif, puis valider la structure dans une seconde passe.

Faux positifs et comment les gerer

Le plus grand defi de l’extraction d’IP est celui des faux positifs — des chaines qui correspondent au motif regex mais ne sont pas de veritables adresses IP. Les cas les plus frequents incluent :

  • Numeros de version logicielle : OpenSSL 1.1.1.4, Python 3.9.7.1, v2.0.0.1
  • Numeros de section de document : Section 1.2.3.4, Figure 10.0.0.1
  • Donnees riches en decimales : lectures de capteurs, chiffres financiers ou coordonnees comportant quatre groupes separes par des points
  • Correspondances partielles : des chaines numeriques plus longues dont un sous-ensemble correspond par hasard (par exemple, un numero de telephone ou un numero de serie)

Strategies pour reduire les faux positifs :

  1. Validation de plage : apres l’extraction, verifier que chaque octet se situe entre 0 et 255. Cela elimine les correspondances comme 999.1.2.3.
  2. Analyse du contexte : examiner les caracteres avant et apres la correspondance. Les adresses IP dans les logs suivent generalement des motifs previsibles (debut de ligne, apres un espace, entre crochets).
  3. Deduplication et frequence : dans un fichier de log volumineux, les adresses IP reelles tendent a apparaitre plusieurs fois. Un « numero de version » comme 1.2.3.4 n’apparaissant qu’une fois n’est probablement pas une IP.
  4. Filtrage par plages connues : filtrer les resultats par rapport aux plages privees, de loopback et reservees connues, selon que vous vous attendez a les voir ou non.

Cas d’utilisation courants

  • Analyse de logs : extraction des IP clientes a partir des journaux d’acces de serveurs web (Apache, Nginx, IIS) pour l’analyse du trafic, la ventilation geographique ou la detection d’abus
  • Reponse aux incidents de securite : extraction de toutes les adresses IP d’une alerte de securite, d’un en-tete d’e-mail ou d’un rapport de renseignement sur les menaces pour verification par rapport aux listes de blocage et aux bases de donnees de reputation
  • Audit de pare-feu : extraction des IP a partir de configurations de pare-feu exportees pour verifier que les regles referencent des adresses valides et attendues
  • Planification de migration : analyse des fichiers de configuration, de la documentation et des scripts a la recherche d’adresses IP codees en dur qui doivent etre mises a jour lors d’une migration vers un nouveau reseau
  • Controles de conformite : identification des adresses IP dans les documents, les journaux de chat ou les tickets de support qui peuvent indiquer une exposition de donnees ou un acces non autorise
  • Inventaire reseau : extraction des IP a partir des resultats de scans de decouverte, de donnees SNMP ou de tables ARP pour constituer ou mettre a jour un inventaire d’actifs reseau

Essayez ces exemples

Ligne de log Apache Valide

Une entree au format combine standard d'Apache. L'extracteur identifie 203.0.113.42 comme l'adresse IP du client au debut de la ligne.

203.0.113.42 - frank [10/Oct/2024:13:55:36 -0700] "GET /index.html HTTP/1.1" 200 2326
Faux positif de numero de version Valide

Les chaines 1.2.3.4 et 3.1.0.5 correspondent au motif regex IPv4 (quatre nombres separes par des points) mais sont en realite des numeros de version logicielle. Cela illustre pourquoi les IP extraites doivent toujours etre validees.

Upgraded OpenSSL from version 1.2.3.4 to 3.1.0.5 on the production servers.