Les analyseurs d'empreintes réseau
Avertissement : article en cours d'élaboration.
De quoi s'agit-il ?
On pourrait définir un analyseur d'empreintes réseau comme un outil capable d'identifier un logiciel serveur (par exemple, un système d'exploitation, un serveur SMTP, etc.), par détermination d'une "empreinte" caractéristique de celui-ci (grâce aux réponses retournées à un jeu de tests) et rapprochement avec une base d'empreintes des différents logiciels de ce type (au contraire donc des "collecteurs de bannières" ne se fiant qu'aux déclarations de leurs cibles).
Selon les outils et protocoles considérés, l'identification peut porter sur l'éditeur, le modèle, la version et parfois certaines options de configuration des logiciels testés !
Bien que rarement perçus comme une famille d'outils à part entière, il existe - comme on le verra dans cet article - de nombreux outils de ce type, sans parler des projets en préparation.
Toujours dans le domaine de la sécurité, on trouve d'autres familles d'outils reposant sur des bases d'empreintes (on parle également de signatures), tels que les anti-virus (bases de virus), les systèmes de détection d'intrusion (bases d'attaques logiques), etc.
Objectifs de cet article
Outre une tentative de recensement, notre ambition est d'essayer de qualifier ces différents logiciels en les analysant suivant quatre axes constituant souvent leurs points faibles :
Il manque à cela une analyse plus directe de l'efficacité de ces outils en termes de reconnaissance d'un échantillon représentatif des logiciels serveurs du domaine considéré, mais faute de temps libre je réalise que ce travail est pour moi hors de portée...
De nombreux champs restent également à remplir (ceux contenant un "?") donc si vous voulez contribuer (ou simplement signaler une erreur), n'hésitez pas à vous manifester !
Vitalité des projets
Malgré une offre relativement riche, beaucoup d'outils ne sont plus activement développés, voire n'ont jamais dépassé le stade de la preuve de concept.
Richesse de la base d'empreintes
Ce point est un facteur clé de succès pour les outils de ce type. Personne ne pouvant disposer de tous les serveurs possibles pour un protocole donné, l'existence d'une communauté soumettant de nouvelles empreintes est essentielle.
Légende :
Modèles identifiés : le nombre de modèles (exemple : Apache, IIS) de logiciels identifiés.
Versions identifiées : le nombre de versions de logiciels identifiées, tous modèles confondus.
Empreintes : le nombre d'empreintes référencées. Le fait qu'il y en ait parfois plus que de versions identifiées peut indiquer la présence de collisions.
Infrastructure communautaire : les outils en ligne permettant l'interaction avec la communauté des utilisateurs, au delà du mél. de l'auteur et de sa page Web personnelle.
Stabilité du jeu de tests
Beaucoup d'analyseurs d'empreintes réseau sont encore des outils jeunes. En cas d'instabilité du jeu de tests utilisé pour identifier les logiciels serveurs, les empreintes obtenues risquent d'être remises en question.
Outil | Tests | Invariants ? | Collisions ? | Dépendance conditions locales ? | Dépendance conditions distantes ? | Evolutivité ? | Commentaires |
ftpmap 0.4 | 148 x2 | non | oui | ? | ? | non | Je suppose que le premier jeu de tests est pour les connexions anonymes et le second pour les connexions authentifiées ? Le jeu de tests est peu évolutif car imbriqué dans le code source de l'outil |
smtpmap 0.8 (SMTP) | 73 | oui (les 5 tests sur RSET) | oui | oui | oui | non | Le jeu de tests est peu évolutif car imbriqué dans le code source de l'outil. L'outil tient notamment compte des messages retournés par les serveurs (en plus des codes) mais n'exclut malheureusement pas les parties dépendantes de conditions locales dans le calcul de condensat correspondant. Les actions intermédiaires sont comptées comme des tests à part entière |
smtpmap 0.8.195β (FTP) | ? | ? | ? | ? | ? | ? | ? |
smtpscan 0.3.1 | 15 | non | oui | ? | ? | non | L'auteur indique qu'il n'exclut pas de faire évoluer son jeu de tests (certains tests sont d'ailleurs commentés). |
Légende :
Tests : le nombre de tests...
Invariants : on a un invariant lorsque le résultat d'un test est commun à tous les produits identifiés. Ceci dénote généralement un test superflu.
Collisions : on a une collision lorsqu'il existe plusieurs empreintes pour la même version d'un produit. Ceci dénote généralement un nombre de tests insuffisant.
Dépendances par rapport à des conditions locales : on a une dépendance de ce type lorsque la machine utilisée pour réaliser le test influe sur le résultat de celui-ci (exemple : echo du nom ou de l'adresse de la machine pris en compte dans l'empreinte).
Dépendances par rapport à des conditions distantes : on a une dépendance de ce type lorsque le résultat d'un test dépend d'une configuration distante (exemple : echo du nom ou de l'adresse de la machine pris en compte dans l'empreinte, existence ou absence d'un compte particulier).
Evolutivité : un jeu de tests est dit évolutif si les empreintes de la base font référence à quelque chose identifiant celui-ci.
Sensibilité aux contre-mesures
Exploitant des caractéristiques atypiques des logiciels cibles, les analyseurs d'empreintes réseau sont eux-mêmes souvent très facilement détectables, ce qui, au-delà de la journalisation de leur utilisation, permet éventuellement de les contrer par blocage ou intoxication.
Légende :
Actif ou passif : on parle de mode actif en cas de sollicitation de la machine cible et de mode passif en cas de simple écoute (capture) du réseau.
Sensibilité à l'authentification : l'outil est dit sensible s'il nécessite la connaissance d'un couple identifiant / authentifiant pour déterminer une empreinte (même si un mode "anonymous" est possible).
Signature caractéristique : la signature est caractéristique à partir du moment où le jeu de tests utilisé entraîne des erreurs ou des non conformités par rapport aux spécifications.
Quelques projets en préparation
Aucun des projets apparaissant ci-dessous ne propose pour le moment de code à télécharger.
Projet | Protocoles supportés | Dernier signe de vie |
--
Hubert Tournier, le 15 janvier 2003.
(Merci à Nicob, du groupe de discussion fr.comp.securite pour m'avoir fourni la motivation d'écrire cet article)
|