Skip to content
Rejoignez Censys le 10 septembre 2024 pour notre atelier sur la chasse aux menaces à San Francisco, CA | Inscrivez-vous maintenant
Blogs

Dépasser le bruit en filtrant les pseudo-services Internet

Il y a environ un an, Censys a commencé à analyser les adresses IPv4 publiques sur 2 000 ports éphémères, en plus des ports des services populaires attribués par l'IANA. Nous avons constaté qu'un nombre stupéfiant de services s'exécutent sur des ports non attribués. Nous avons également constaté que de nombreux protocoles s'exécutent sur des ports attribués à d'autres services.

En réponse, nous avons modifié notre approche de l'analyse afin de ne pas faire de suppositions sur les protocoles utilisés sur chaque port. Au lieu de cela, nous essayons de détecter le protocole et de modifier dynamiquement le type d'échange que nous effectuons. En conséquence, notre ensemble de données Internet universel s'est considérablement développé et, aujourd'hui, la majorité des services de l'ensemble de données se trouvent sur des ports non standard. Cependant, en étudiant des services inattendus, nous avons découvert que de nombreux services sur des ports éphémères ne sont pas de "vrais" services, que nous traitons différemment.

Dépasser le bruit des anomalies de l'internet

Nombre d'hôtes par ports - graphique à barres ouvert.

À la base, Censys suit les services qui fonctionnent sur chaque adresse IPv4 publique. Comme on peut le voir ci-dessus, la grande majorité des adresses IP n'hébergent qu'un petit nombre de services. En effet, 60 % des adresses IP de notre base de données n'ont qu'un seul port ouvert et seulement 1 % des hôtes ont plus de 15 ports avec des services en écoute. Malgré cela, nous avons remarqué que près de 40 % des services que nous avons découverts s'exécutent sur les 0,2 % d'hôtes disposant de plus de 100 ports d'écoute.

Dans un premier temps, nous avons pensé que ces hôtes pouvaient être des pots de miel de réseau : un logiciel qui prétend être un hôte légitime exécutant de faux services afin de détecter et d'enregistrer les scanners, les tentatives de connexion, les intrusions, etc. Cependant, nous avons constaté que les services de ces "super" hôtes ne sont pas uniques. Nous constatons cependant que les services de ces "super" hôtes ne sont pas uniques, mais qu'ils utilisent tous le même protocole. Dans la plupart des cas, ils répondent avec un contenu HTTP identique ou presque. Quels sont donc ces hôtes ?

Graphique à barres du nombre de services par type ; service normal contre pseudo-service.

Pseudo Services

Nous commençons notre exploration avec BigQuery, un outil qui nous permet d'exécuter des requêtes SQL sur l'ensemble de données Internet universel. Les chercheurs peuvent reproduire nos résultats grâce au programme d'accès à la rechercheCensys .

Commençons par analyser ces "super" hôtes par rapport au réseau auquel ils appartiennent.

La requête ci-dessous extrait tous les services en direct sur l'internet à partir d'un instantané du 2 février 2021 et les regroupe par système autonome (SA) d'origine ; ensuite, elle compare le nombre de services dans chaque SA au nombre total de services. Enfin, il compare le nombre de pseudo-services dans chaque AS au nombre total de pseudo-services dans l'instantané.

DECLARE total_services INT64;
DECLARE total_pseudo_services INT64;
 
SET total_services = (
   SELECT SUM(ARRAY_LENGTH(services))
   FROM `censys-io.universal_internet_dataset.universal_internet_dataset`
   WHERE DATE(snapshot_date) = "2021-02-01"
);
 
SET total_pseudo_services = (
   SELECT SUM(ARRAY_LENGTH(services))
   FROM `censys-io.universal_internet_dataset.universal_internet_dataset`
   WHERE DATE(snapshot_date) = "2021-02-01"
   AND ARRAY_LENGTH(services) >= 100
);
 
SELECT
   autonomous_system.asn AS asn,
   autonomous_system.name AS name,
   COUNT(*) AS total,
   COUNT(*) / total_services as percent_of_total,
   COUNT(*) / total_pseudo_services as percent_of_pseudo
FROM `censys-io.universal_internet_dataset.universal_internet_dataset`
JOIN UNNEST(services) AS service
WHERE DATE(snapshot_date) = "2021-02-01"
# service.truncated indicates the service belongs to a “super” host
AND service.truncated
GROUP BY asn, name
ORDER BY COUNT(*) DESC;

Nous obtenons immédiatement des résultats intéressants. Un seul AS, Incapsula (AS 19551), est responsable de plus de 20 % de tous les services catalogués par Censys sur l'internet ! En outre, les services de son réseau représentent plus de 60 % de tous les pseudo-services.

Nous prélevons quelques adresses IP sur le réseau d'Incapsula afin d'approfondir l'analyse. Dans l'ensemble de données Censys , 107.154.205.231, 45.223.40.145 et 103.28.250.98 ont respectivement 1346, 1060 et 1402 ports ouverts. Sur tous les ports ouverts, à l'exception d'un ou deux, chaque IP dessert la page web suivante.

Capture d'écran, erreur 22.

La documentation d' erreur d'Imperva indique que ce code est généré lorsqu'un client tente de se connecter à une IP sans utiliser un nom valide. Nous réalisons rapidement une expérience pour essayer de valider ce comportement.

❯ dig docs.imperva.com
;; ANSWER SECTION:
docs.imperva.com.       227     IN      CNAME   4xu3l6t.x.incapdns.net.
4xu3l6t.x.incapdns.net. 30      IN      A       45.60.0.60

Le chargement de l'adresse IP 45.60.0.60 directement dans un navigateur affiche la page familière Error 22, ce qui confirme que l'erreur provient de l'absence de nom. Nous en concluons que ces hôtes font partie du Web Application Firewall d'Imperva.

Tableau des services, total, pourcentage total, pourcentage pseudo.

Les recherches menées par Izhikevich et al [1] indiquent qu'ils sont principalement constitués de boîtes intermédiaires et de pare-feu dans l'espace utilisateur. Souvent, ces boîtes intermédiaires et ces pare-feu répondent sur des centaines, voire des milliers de ports, dans le but de contrecarrer les tentatives d'analyse ou d'attaque.

Nous prélevons au hasard une poignée d'adresses IP parmi l'ensemble des "super" hôtes identifiés précédemment et nous constatons un contenu familier. Par exemple, l'adresse IP 194.87.63.167 répondra avec un code d'erreur 400 et le contenu html suivant sur presque tous les ports.

Des variations similaires sont observées sur d'autres hôtes, comme 4.205.40.185.

Même en dehors du réseau d'Incapsula, la grande majorité des "super" hôtes semblent être constitués de serveurs de cache qui répondent aux requêtes HTTP via de nombreux ports non standard.

On trouve cependant d'autres types de pseudo-services. Une autre catégorie ressemble davantage à des pots de miel. Par exemple, l'adresse IP 94.130.57.50 semble utiliser Portspoof: un logiciel qui émule des services réels fonctionnant sur les 65 535 ports TCP.

Portspoof et d'autres logiciels similaires sont utilisés pour rendre coûteuse la reconnaissance des attaquants et l'identification des services qu'un hôte exécute réellement. Dans leur documentation, ils indiquent que les scanners peuvent mettre jusqu'à 8 heures pour effectuer un simple balayage de 65k ports sur un hôte ! Alors que la sécurité par l'obscurité est une technique rejetée depuis longtemps, Portspoof oblige les entités malveillantes à dépenser des ressources importantes pour découvrir ce qui fonctionne réellement sur un hôte.

Quelle que soit leur implémentation, les pseudo-services posent un problème dans nos données car ils représentent un pourcentage important du total des services, alors qu'ils n'appartiennent qu'à 0,2 % des hôtes. De plus, comme nous l'avons vu avec Portspoof, les pseudo-services peuvent ne pas refléter un service réellement en cours d'exécution sur un hôte.

Comment Censys gère les pseudo-services

Les pseudo-services génèrent un bruit excessif par rapport à la valeur qu'ils apportent. Par exemple, le nombre total de services HTTP observés sur l'internet peut varier de plus de 50 % selon qu'ils sont ou non inclus dans la requête.

Pour aider les clients à filtrer les pseudo-services, nous avons ajouté un indicateur appelé truncated à nos enregistrements de service. Ce drapeau indique que le service a vu certaines de ses données structurées tronquées et qu'il fonctionne sur un "super" hôte.

SELECT COUNT(*)
FROM `censys-io.universal_internet_dataset.universal_internet_dataset`
JOIN UNNEST(services) AS service
WHERE DATE(snapshot_date) = "2021-02-01"
# Filter out pseudo services
AND service.truncated = false
AND service.service_name = 'HTTP';

En outre, les pseudo-services sont rafraîchis à un rythme plus lent que les services de plus grande valeur. Ainsi, Censys peut consacrer davantage de ressources à la découverte et au rafraîchissement des actifs qui intéressent le plus nos clients.

Censys Ensemble de données universel sur l'internet

L'Universal Internet Dataset (UIDS) Censys est l'ensemble de données le plus important du secteur concernant les hôtes et les services sur l'internet. Les organisations utilisent l'UIDS pour traquer les menaces sophistiquées et défendre des surfaces d'attaque complexes. Accédez à l'Universal Internet DataSet et découvrez les "super" hôtes et bien plus encore. Contactez-nous et demandez une démonstration dès aujourd'hui!

Vous souhaitez faire de la recherche ? Nous offrons également un accès aux chercheurs. Voyez si vous remplissez les conditions requises ici.

Références

[1] LZR : Identification des services Internet inattendus. Liz Izhikevich, Renata Teixeira, Zakir Durumeric. Symposium de sécurité USENIX 2021.

---

Hudson Clark est ingénieur logiciel à Censys. Il se concentre sur la construction de systèmes à grande échelle et se passionne pour la valeur ajoutée et la connaissance des clients. Originaire d'Ann Arbor, il est titulaire d'une licence en informatique de l'Université du Michigan.

Solutions de gestion de la surface d'attaque
En savoir plus