Hace aproximadamente un año, Censys empezó a escanear direcciones IPv4 públicas en 2.000 puertos efímeros, además de los puertos con servicios populares asignados por la IANA. Hemos descubierto que un número asombroso de servicios se ejecutan en puertos no asignados. También descubrimos que muchos protocolos se ejecutan en puertos asignados a otros servicios.
En respuesta, hemos cambiado nuestro enfoque de escaneo para no hacer suposiciones sobre qué protocolos se ejecutan en cada puerto. En su lugar, tratamos de detectar el protocolo y cambiar dinámicamente el tipo de apretón de manos que completamos. Como resultado, nuestro Conjunto Universal de Datos de Internet ha crecido significativamente y, en la actualidad, la mayoría de los servicios del conjunto se encuentran en puertos no estándar. Sin embargo, al investigar servicios inesperados, hemos descubierto que muchos de los servicios en puertos efímeros no son servicios "reales", que tratamos de forma diferente.
Cómo evitar el ruido de las anomalías en Internet
En esencia, Censys rastrea los servicios que se ejecutan en cada dirección IPv4 pública. Como puede verse más arriba, la inmensa mayoría de las IP alojan sólo un pequeño número de servicios. De hecho, el 60% de las IP de nuestro conjunto de datos sólo tienen un puerto abierto y sólo el 1% de los hosts tienen más de 15 puertos con servicios a la escucha. Sin embargo, a pesar de ello, observamos que casi el 40% de los servicios que descubrimos se ejecutan en el 0,2% de los hosts con más de 100 puertos de respuesta.
Inicialmente, pensamos que estos hosts podrían ser honeypots de red: software que simula ser un host legítimo que ejecuta servicios falsos con el fin de detectar y registrar escáneres, intentos de conexión, intrusiones, etc. Sin embargo, descubrimos que los servicios de estos "super" hosts no son únicos. Más bien, los servicios tienden a ejecutar todos el mismo protocolo. En la mayoría de los casos, responden con un contenido HTTP idéntico o casi idéntico. ¿Qué son estos hosts?
Pseudoservicios
Comenzamos nuestra exploración en BigQuery, una herramienta que nos permite ejecutar consultas SQL en el Conjunto Universal de Datos de Internet. Los investigadores pueden reproducir nuestros resultados a través del programa Censys Research Access.
Empecemos por analizar estos "super" hosts en relación con la red a la que pertenecen.
La siguiente consulta extrae todos los servicios activos de Internet de una instantánea del 2 de febrero de 2021 y los agrupa por Sistema Autónomo (SA) de origen; a continuación, compara el número de servicios de cada SA con el número total de servicios. Por último, compara el número de pseudoservicios de cada AS con el número total de pseudoservicios de la instantánea.
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;
Inmediatamente, vemos algunos resultados interesantes. Un único AS, Incapsula (AS 19551), es responsable de más del 20 por ciento de todos los servicios que Censys cataloga en Internet. Además, los servicios de su red representan más del 60% de todos los pseudoservicios.
Tomamos como muestra algunas direcciones IP de la red de Incapsula para investigar más a fondo. En el conjunto de datos Censys , 107.154.205.231, 45.223.40.145 y 103.28.250.98 tienen 1346, 1060 y 1402 puertos abiertos respectivamente. En todos los puertos abiertos, excepto en uno o dos, cada IP sirve la siguiente página web.
La documentación de errores de Imperva indica que este código se genera cuando un cliente intenta conectarse a una IP sin utilizar un nombre válido. Rápidamente ejecutamos un experimento para intentar validar este comportamiento.
❯ 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
Cargando la dirección IP 45.60.0.60 directamente en un navegador presenta la familiar página de Error 22, validando que el error es por la ausencia de un nombre. Llegamos a la conclusión de que estos hosts forman parte del Web Application Firewall de Imperva.
De ellos, la investigación de Izhikevich et al. [1] sugiere que se componen principalmente de middleboxes y cortafuegos de espacio de usuario. A menudo, estos middleboxes y cortafuegos responden en cientos o incluso miles de puertos en un esfuerzo por frustrar los intentos de escaneo o ataque.
Tomamos muestras aleatorias de un puñado de direcciones IP del conjunto de "super" hosts identificados anteriormente y vemos contenido familiar. Por ejemplo, la IP 194.87.63.167 responderá con un código de error 400 y el siguiente contenido html en casi todos los puertos.
Se observan variaciones similares en otros hosts, como 4.205.40.185.
Incluso fuera de la red de Incapsula, la gran mayoría de los "super" hosts parecen estar formados por servidores caché que responderán a peticiones HTTP a través de muchos puertos no estándar.
Sin embargo, encontramos otros tipos de pseudoservicios. Otra clase se parece más a los honeypots. Por ejemplo, la IP 94.130.57.50 parece estar ejecutando Portspoof: un software que emula servicios reales que se ejecutan en los 65.535 puertos TCP.
Portspoof y otros programas similares se utilizan para que a los atacantes les resulte costoso realizar un reconocimiento e identificar los servicios que ejecuta realmente un host. En su documentación, afirman que los escáneres pueden tardar hasta 8 horas en completar un único escaneo de puertos de 65.000 contra un host. Mientras que la seguridad a través de la oscuridad es una técnica rechazada desde hace mucho tiempo, Portspoof obliga a las entidades maliciosas a gastar recursos significativos para averiguar lo que realmente se está ejecutando en un host.
Independientemente de su implementación, los pseudoservicios plantean un problema en nuestros datos porque representan un gran porcentaje del total de servicios y, sin embargo, sólo pertenecen al 0,2% de los hosts. Además, como hemos visto con Portspoof, los pseudoservicios pueden no reflejar un servicio real que se esté ejecutando en un host.
Cómo gestiona Censys los pseudoservicios
Los pseudoservicios generan un ruido excesivo para la cantidad de valor que aportan. Por ejemplo, el recuento del número total de servicios HTTP que observamos en Internet puede variar en más de un 50% en función de si se incluyen o no en la consulta.
Para ayudar a los clientes a filtrar los pseudoservicios, hemos añadido un indicador denominado truncated
a nuestros registros de servicio. Esta bandera indica que el servicio ha tenido algunos de sus datos estructurados truncados y se está ejecutando en un "super" host.
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';
Además, los pseudoservicios se actualizan a un ritmo más lento que otros servicios de mayor valor. De este modo, Censys puede dedicar más recursos a descubrir y actualizar los activos que más interesan a nuestros clientes.
Censys Conjunto universal de datos de Internet
Censys Universal Internet Dataset (UIDS) es el principal conjunto de datos del sector sobre hosts y servicios en Internet. Las organizaciones utilizan UIDS para rastrear amenazas sofisticadas y defender superficies de ataque complejas. Acceda a Universal Internet DataSet y descubra "super" hosts y mucho más. Póngase en contacto con nosotros y solicite una demostración hoy mismo.
¿Le interesa investigar? También ofrecemos acceso a investigadores. Compruebe aquí si cumple los requisitos.
Referencias
[1] LZR: Identificación de servicios de Internet inesperados. Liz Izhikevich, Renata Teixeira, Zakir Durumeric. Simposio de Seguridad USENIX 2021.
---
Hudson Clark es ingeniero de software en Censys. Se centra en la creación de sistemas a escala y le apasiona ofrecer valor y conocimientos a los clientes. Natural de Ann Arbor, es licenciado en Informática por la Universidad de Michigan.