Introducción
El otro dÃa, encontré algo raro en Internet. Un clúster de hosts estaba ejecutando un servicio no reconocido - todos en el puerto 55555, todos en un sistema autónomo, y todos con el mismo crÃptico banner de servicio de dos caracteres.
Una extraña combinación de caracterÃsticas
Se trata de algo inusual -sobre todo por este singular mensaje-, pero no sorprendente. Internet es un lugar grande y extraño. A veces, indagando, encontramos cosas que parecen extrañas: un grupo de dispositivos que de repente se desconectan, paneles de control en Internet sin autenticación, software que dice ser una versión cuando en realidad es otra. A primera vista, es demasiado pronto para decir si estos fenómenos son benignos o algo preocupante. Por eso es fundamental contar con una herramienta que permita recabar rápidamente más información.
En este artÃculo te mostraré cómo hacerlo utilizando Censys Search.
Recapitulemos: ¿Qué hace Censys ?
Para refrescar la memoria, Censys es una plataforma lÃder en el descubrimiento de activos de Internet. Censys mantiene la visión más completa de la Internet pública en el mundo mediante el escaneo continuo de todo el espacio público de direcciones IPv4 a través de más de 3.592 puertos desde múltiples perspectivas globales. Utiliza la detección automática de protocolos para identificar los servicios que se ejecutan en cada puerto, como HTTP, SSH, etc. Consulte esta guÃa más detallada sobre cómo Censys escanea Internet.
Censys La búsqueda es una gran herramienta para descubrir artefactos de Internet. Ofrece una interfaz intuitiva para nuestros conjuntos de datos Hosts y Certificados, muy adecuada tanto para navegar a vista de pájaro como para profundizar en la búsqueda de una aguja en el pajar. En este artÃculo nos centraremos en el conjunto de datos Hosts.
Evaluación de la "rareza" de una observación
Vale, has encontrado algo raro. Como cualquier buen espeleólogo de Internet, necesitas una especie de mapa sobre cómo llevar a cabo tu investigación. Aquà tienes una lista rudimentaria de preguntas que podrÃan ayudarte a entender qué es esa cosa rara:
- ¿Hasta qué punto está extendida esta observación? ¿Cuántos huéspedes presentan estas caracterÃsticas?
- ¿En qué sistemas autónomos están distribuidos estos hosts?
- ¿En qué regiones geográficas se encuentran estos anfitriones?
- ¿Qué otros servicios están ejecutando estos hosts?
- ¿Hubo un pico en el número de hosts activos que mostraban estas caracterÃsticas en un dÃa determinado?
Mientras que las cuatro primeras preguntas pueden responderse utilizando Censys Search, la quinta requiere que ampliemos nuestro conjunto de herramientas. Necesitaremos acceder a instantáneas del Conjunto Universal de Datos de Internet en Google BigQuery. Vamos a abordar estas preguntas por orden en las siguientes secciones.
Evaluar el alcance
Censys La búsqueda facilita la determinación rápida de la huella pública de un fenómeno de Internet.
Cada host concreto de Censys Search contiene información detallada sobre su dirección IPv4, sistema autónomo, puertos abiertos, servicios que se ejecutan en esos puertos y mucho más. Estos atributos también son entidades en las que se pueden realizar búsquedas. Por ejemplo, podrÃamos buscar todos los hosts detectados ubicados en Irlanda que estén ejecutando SSH. (Véase la documentación de todos los campos busc ables que se rellenan para cada host).
Cuando nos enfrentamos a montones de datos, queremos centrarnos en los atributos que hacen que nuestro anfitrión observado sea "raro" para poder centrarnos en ellos. He aquà algunos que suelen ser útiles:
- puerto.servicio
- servicios.nombre_servicio
- servicios.banner
- sistema_autonomo.nombre
Volviendo a nuestra primera pregunta de investigación:
???? P1: ¿Cuántos anfitriones presentan estas caracterÃsticas?
Podemos hacer frente a esto escribiendo una consulta de búsqueda en Censys que obtendrá todos los hosts que coincidan con esas caracterÃsticas. Junto con los hosts coincidentes, la búsqueda también devolverá el número total de resultados, el tiempo que se tardó en obtenerlos y un desglose de los resultados por algunos filtros básicos.
En mi caso, querÃa filtrar los hosts con una combinación especÃfica de sistema autónomo, puerto, servicio y mensaje de banner. Mi consulta de búsqueda en Censys tenÃa este aspecto:
autonomous_system.asn=ASNx
AND same_service(service.port=PORTx
AND services.service_name='UNKNOWN'
AND services.banner=’BANNERx’
AND services.truncated=`false`)
(saltos de lÃnea añadidos para mayor claridad)
Si añade el práctico services.truncated=false al final de la consulta, excluirá cualquier host que esté ejecutando más de 100 servicios, lo que a menudo puede ser un marcador de honeypots o pseudo servicios. Para obtener más información sobre el campo truncado, consulta las Preguntas frecuentes sobre búsquedas.
Utilizar ":" en lugar de "=" es la sintaxis para ejecutar una búsqueda "difusa" que no requiere una coincidencia exacta. Es la mejor opción cuando sólo se dispone de una palabra clave o un fragmento de texto. Para obtener más información sobre cómo escribir consultas de búsqueda bien formadas en Censys , consulta la documentación de búsqueda y algunos ejemplos de consultas de host.
La consulta tardó 0,34 segundos y arrojó 303.311 resultados:
En el gran esquema de las cosas, no es un número enorme de hosts... pero tampoco es un número pequeño. Sigamos con nuestra lista de preguntas.
Caracterización de un espacio IP
Ahora que tenemos una lista fácilmente indexable de todos nuestros hosts "raros", podemos profundizar en sus otras caracterÃsticas utilizando la función Informes de la interfaz de búsqueda de Censys .
Los informes ofrecen una forma sencilla de ver un desglose de los resultados de búsqueda, lo que nos permite ver cómo se comparan entre sà los resultados de búsqueda en función de un atributo especÃfico. Para acceder a él, basta con hacer clic en la pestaña Informe situada en la esquina superior derecha de la página de resultados de búsqueda.
???? P2: ¿En qué sistemas autónomos están distribuidos estos hosts?
Podemos obtener fácilmente un desglose de nuestros hosts "raros" por sistema autónomo generando un informe y especificando el atributo autonomous_system.name o autonomous_system.asn como Campo de Desglose.
???? P3: ¿En qué regiones geográficas se encuentran estos hosts?
Idem a lo anterior, salvo que ahora podemos establecer nuestro campo de desglose en cualquiera de los atributos del campo de ubicación, dependiendo de si queremos investigar a escala de ciudades, paÃses, continentes, etc:
???? Q4: ¿Qué otros servicios están ejecutando estos hosts?
Cada servicio que se ejecuta en un host se captura mediante el atributo services.service_name. Genera un informe con este atributo establecido como campo de desglose para obtener más información, teniendo en cuenta que puede haber varios servicios ejecutándose en un host. Esté atento a cualquier servicio que sea particularmente conocido por ser explotado con frecuencia por los actores de amenazas, como SMB, RDP y FTP.
Aquà está nuestro informe:
En la parte superior, vemos que la friolera del ~99% de nuestros hosts raros están ejecutando algún servicio etiquetado como "UNKNOWN". ¿Qué significa eso?
Censys puede detectar 105 protocolos de Capa 7 (también conocidos como servicios). Aunque estas técnicas de detección automática de protocolos son bastante sofisticadas, a veces no son concluyentes, ya sea porque el servicio no se adhiere al protocolo de alguna manera o porque no tenemos un escáner especÃfico de protocolo escrito para él. Cuando el escáner no es capaz de reconocer el servicio que se ejecuta en un puerto concreto, lo clasifica como UNKNOWN. PodrÃa ser interesante profundizar en lo que estos UNKNOWNs podrÃan ser, pero la presencia de ellos normalmente no es un indicador de nada sospechoso por sà mismo.
Bajando por el informe, HTTP es el segundo servicio más comúnmente representado. Esto es lógico, ya que HTTP constituye la mayorÃa de los servicios que vemos en los datos de análisis de Censys.
Escaneando toda la lista, parece que hay un puñado de hosts ejecutando FTP, SMB y RDP. Esto justifica un poco más de investigación. Haz clic en cualquiera de las celdas del informe para ir a los resultados de la búsqueda en Censys de ese subconjunto de hosts. Examina varios de los resultados, buscando en sus cuerpos de respuesta HTTP, mensajes de banner, certificados TLS y versiones de software cualquier cosa que parezca rara. ¿Hay elementos JavaScript sospechosos? ¿Certificados caducados o autofirmados? ¿Software asociado a CVE conocidas? No se trata de un análisis exhaustivo, pero se ajusta a nuestro objetivo de hacernos una idea rápida de a qué nos enfrentamos.
En general, no he encontrado nada manifiestamente preocupante. Pasemos a la siguiente pregunta.
Análisis de tendencias históricas
Visualizar las fluctuaciones en el número de hosts activos que coinciden con estas caracterÃsticas a lo largo del tiempo es otra pieza clave de información. Un aumento o disminución significativo de hosts en un dÃa determinado podrÃa indicar una serie de eventos sospechosos, por ejemplo, el posible inicio de un incidente de amenaza.
???? P5: ¿Hubo un pico en el número de hosts activos que mostraban estas caracterÃsticas en un dÃa determinado?
Para responder a esta pregunta, tendremos que ir más allá de la API y la interfaz de usuario web de Censys Search. Las búsquedas ejecutadas en estas plataformas siempre se realizan en los hosts de la instantánea más reciente del conjunto de datos universal de Internet de Censys. Para obtener datos históricos, tenemos que ejecutar nuestra consulta en las instantáneas de varios dÃas.
En cualquier página de host de la interfaz de búsqueda, si navegas a la pestaña Historial verás una cronologÃa histórica de los eventos, pero las búsquedas que utilizan el historial no son compatibles actualmente. Los datos históricos pueden extraerse ejecutando consultas SQL a través de la interfaz BigQuery de Google. Los clientes empresariales que descarguen o accedan a instantáneas diarias en BigQuery pueden buscar en Internet tal y como se observó en Censys en un momento histórico.
La siguiente consulta SQL cuenta todas las direcciones IPv4 únicas con servicios que coinciden con nuestros criterios de búsqueda entre el intervalo de dos fechas, agrupadas por cada dÃa. La función LAG() calcula aquà la diferencia en el número de hosts de un dÃa a otro.
Los criterios de la cláusula WHERE de la consulta SQL tendrán una sintaxis similar a la de nuestra consulta anterior Censys Search.
WITH
active_hosts AS (
SELECT
DATE(snapshot_date) AS day,
APPROX_COUNT_DISTINCT(host_identifier.ipv4) AS ipcount
FROM
`censys-io.universal_internet_dataset.universal_internet_dataset`,
UNNEST(services) AS svc
WHERE
autonomous_system.asn=ASNx
AND svc.port=PORTx
AND svc.service_name = 'UNKNOWN'
AND SAFE_CONVERT_BYTES_TO_STRING(svc.unknown.banner)=’BANNERx’
AND svc.truncated=`false`
AND DATE(snapshot_date) BETWEEN '2022-05-01' AND '2022-06-14'
GROUP BY
day
ORDER BY
day
)
SELECT
day,
ipcount,
ipcount - LAG(ipcount) OVER (ORDER BY day ASC) AS delta
FROM
active_hosts
GROUP BY
day,
ipcount
ORDER BY
day
También puede ser útil comparar las tendencias de los hosts "raros" con las tendencias de un subconjunto más amplio de hosts, como el paÃs o la industria en general. En mi caso, querÃa analizar las tendencias en todos los hosts activos bajo este sistema autónomo en particular. Para ampliar el grupo de hosts de los que se extraen datos históricos, ajuste los filtros de la cláusula WHERE en la consulta SQL anterior:
WHERE
autonomous_system.asn=ASNx
AND DATE(snapshot_date) BETWEEN '2022-05-01' AND '2022-06-14'
Esta visualización no nos será muy útil hasta que sepamos atribuir un significado a los patrones que vemos.Â
Cuando observamos las fluctuaciones de los hosts de Internet, hay algunas cosas que deberÃan hacernos saltar las alarmas. Cualquier tipo de cambio grande y repentino en los datos es sospechoso, como un gran pico o caÃda en un dÃa concreto. El primero podrÃa indicar el escalamiento de algo malicioso, mientras que el segundo podrÃa representar problemas de conectividad como una interrupción, un mantenimiento programado o un incidente de seguridad. Además, presta atención a cualquier patrón en una lÃnea de tendencia que no se refleje en las demás. Estas anomalÃas podrÃan indicar que algo no intencionado está ocurriendo en esas máquinas.Â
Hagamos algunas observaciones iniciales de nuestro gráfico:
- Las tendencias de nuestros hosts "raros" son bastante similares a las de todos los hosts de este sistema autónomo.Â
- A principios de mayo se produce un bache en los datos, pero es relativamente pequeño (~50 000 de aumento) y gradual, ya que dura más de una semana.Â
- A continuación se producen dos descensos, pero ambos son bastante leves y tienen lugar a lo largo de varios dÃas.Â
- Obsérvese el aumento continuo de ambas lÃneas de tendencia a partir de mediados de mayo y hasta junio.
Conclusión: raro, pero no malicioso
A partir de este breve análisis, parece más probable que los hosts "raros" no sean nada explÃcitamente malicioso. La similitud entre las dos lÃneas de tendencia y el ritmo relativamente lento de los cambios en nuestra visualización de datos históricos sugieren que estos hosts pueden formar parte del escalado previsto de la infraestructura de esta red. TodavÃa existe la posibilidad de que se trate de algo malicioso, ¡pero ahora tenemos una hipótesis sólida sobre la que informar!Â
Recuerda que Internet es un lugar GRANDE, extraño y en constante cambio. Con unas pocas herramientas, hemos podido comprender una pequeña parte de este ciberespacio. Si se sabe qué preguntas hacer, los datos de búsqueda de Censys pueden ayudar a tender un puente hacia los conocimientos que las responden. Ahora disponemos de un valioso trampolÃn para explorar más a fondo este fenómeno.Â
Resumen
Censys La búsqueda es una herramienta inestimable tanto para investigadores de seguridad experimentados como para aficionados a la hora de investigar cuestiones sobre Internet. Consulte la GuÃa de inicio rápido de Search 2.0 para obtener información más detallada sobre la interfaz web de Búsqueda.
Recuerda: si ves algo raro, sigue el rastro. Nunca se sabe lo que se puede descubrir. ¡Feliz espeleologÃa!