Ir al contenido
Nuevo informe: Consiga su copia del Informe sobre el estado de Internet 2024. | Descargar hoy
Blogs

Facilitar la gestión de la superficie de ataque con Python

Censys tiene profundas raíces en el software de código abierto, originándose en el proyecto de código abierto Zmap. Desde entonces, Censys ha seguido apoyando proyectos de código abierto y contribuyendo a nuestros repositorios públicos, que pueden consultarse aquí.

Uno de nuestros proyectos de código abierto más populares es nuestra biblioteca censys-python. La biblioteca se creó originalmente para Censys Search y es una envoltura de API fácil de usar y ligera, que actualmente se utiliza en 180 proyectos en todo GitHub. Con su reciente lanzamiento(v1.1.0), esta biblioteca incluye ahora una segunda API para la Plataforma de Gestión de Superficies de Ataque (o Plataforma ASM). La API Censys ASM permite a los usuarios interactuar mediante programación con los recursos de nuestra plataforma ASM, incluidas las semillas, los activos y los eventos del libro de registro.

  • seeds - Proporciona gestión programática de semillas en la plataforma ASM.
  • activos - Devuelve datos de activos para hosts, certificados y dominios. Esta opción también permite al usuario gestionar etiquetas y comentarios sobre los activos.
  • eventos - Devuelve los eventos del diario. Se puede utilizar para realizar búsquedas específicas de eventos basadas en el identificador o la fecha de inicio y en filtros de tipo de evento.

Como cliente de la plataforma ASM, esta actualización permite a los usuarios automatizar sus interacciones con sólo unos pocos comandos, como la adición de nuevos datos de semillas a la plataforma y la obtención de activos asociados, como direcciones IP y nombres de dominio. Los usuarios pueden incluso realizar un seguimiento de su historial de activos de ASM utilizando los puntos finales de registro y sus objetos de evento.

Por ejemplo, ahora es aún más fácil añadir nuevas semillas a la plataforma ASM Censys :

de censys.asm.seeds importar Semillas

s = Semillas()

# Add a list of seeds. To add a single seed, just pass a list containing one seed.
# Here, we add two ASN seeds.
seed_list = [
{“type”: “ASN”, “value”: 99998, “label”: “seed-test-label”},
{“type”: “ASN”, “value”: 99999, “label”: “seed-test-label”}
]
s.add_seeds(seed_list)

# Add a list of seeds, replacing existing seeds with a specified label
# Here, all seeds with label=”seed-test-label” will be removed and then
# Seeds 99996 and 99997 will be added.
seed_list = [
{“type”: “ASN”, “value”: 99996},
{“type”: “ASN”, “value”: 99997}
]
s.replace_seeds_by_label(“seed-test-label”, seed_list)

En cuanto a los activos, existen tres tipos (hosts, certificados y dominios), cada uno de los cuales comparte la misma interfaz API. Un ejemplo de cómo podría ver sus activos en la plataforma ASM Censys es:

de censys.asm.activos importar Activos

h = Activos("hosts")

# Obtener un generador que devuelva hosts
hosts = h.get_assets()
print(next(hosts))

# Obtener un único host por ID (aquí obtenemos host con ID="0.0.0.0″)
host = h.get_asset_by_id("0.0.0.0")
print(host)

Los eventos son cambios en la superficie de ataque del usuario, como por ejemplo que un usuario añada un nuevo certificado, que un usuario abra un nuevo puerto, etc. He aquí un ejemplo de lo rápido que se puede obtener el logbook, o lista de todo este tipo de eventos en orden cronológico, desde la plataforma ASM:

de censys.asm.eventos importar Eventos

e = Eventos()

# Obtener un generador que devuelva todos los eventos
eventos = e.get_events()
print(next(eventos))

# Obtener eventos basados en las especificaciones del cursor
eventos = e.get_events(cursor)
print(next(eventos))

Si tiene algún problema o desea contribuir a la biblioteca, envíe su solicitud de extracción y nos pondremos en contacto con usted con cualquier pregunta. Para obtener más información sobre la API de ASM y cómo aprovecharla en sus flujos de trabajo actuales, consulte nuestra documentación.

Soluciones de gestión de la superficie de ataque
Más información