Censys a de profondes racines dans les logiciels libres, qui trouvent leur origine dans le projet libre Zmap. Depuis lors, Censys a continué à soutenir des projets open source et à contribuer à nos dépôts publics qui peuvent être trouvés ici.
L'un de nos projets open source les plus populaires est notre bibliothèque censys-python. Créée à l'origine pour Censys Search, cette bibliothèque est un wrapper d'API léger et facile à utiliser, actuellement utilisé dans 180 projets sur GitHub. Avec la dernière version(v1.1.0), cette bibliothèque comprend désormais une deuxième API pour la plate-forme de gestion des surfaces d'attaque (ou plate-forme ASM). L'API ASM Censys permet aux utilisateurs d'interagir de manière programmatique avec les ressources de notre plateforme ASM, y compris les graines, les actifs et les événements du journal de bord.
- seeds - Assure la gestion programmatique des semences dans la plateforme ASM.
- assets - Renvoie les données des hôtes, des certificats et des domaines. Cette option permet également à l'utilisateur de gérer les étiquettes et les commentaires sur les actifs.
- events - Renvoie les événements du journal de bord. Peut être utilisé pour effectuer des recherches ciblées d'événements en fonction de l'identifiant ou de la date de début, et des filtres de type d'événement.
En tant que client de la plateforme ASM, cette mise à jour permet aux utilisateurs d'automatiser leurs interactions en quelques commandes courtes, telles que l'ajout de nouvelles données de semences à la plateforme et la récupération des actifs associés tels que les adresses IP et les noms de domaine. Les utilisateurs peuvent même garder une trace de l'historique de leurs actifs ASM en utilisant les points d'extrémité du journal et ses objets d'événement.
Par exemple, il est maintenant encore plus facile d'ajouter de nouvelles semences à la plateforme ASM de Censys :
de censys.asm.seeds l'importation Semences
s = Seeds()
# 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 ce qui concerne les actifs, il en existe trois types (hôtes, certificats et domaines), chacun partageant la même interface API. Voici un exemple de la manière dont vous pouvez visualiser vos actifs sur la plateforme ASM Censys :
de censys.asm.assets l'importation Actifs
h = Assets("hosts")
# Obtenir un générateur qui renvoie des hôtes
hosts = h.get_assets()
print(next(hosts))
# Obtenir un seul hôte par ID (ici nous obtenons l'hôte avec ID="0.0.0.0″)
host = h.get_asset_by_id("0.0.0.0")
print(host) |
Les événements sont des changements dans la surface d'attaque de l'utilisateur, comme l'ajout d'un nouveau certificat, l'ouverture d'un nouveau port, etc. Voici un exemple de la rapidité avec laquelle vous pouvez obtenir votre journal de bord, ou la liste de tous ces types d'événements dans l'ordre chronologique, à partir de la plate-forme ASM :
de censys.asm.events l'importation Evénements
e = Events()
# Obtenir un générateur qui renvoie tous les événements
events = e.get_events()
print(next(events))
# Obtenir des événements basés sur les spécifications du curseur
events = e.get_events(cursor)
print(next(events)) |
Si vous avez des problèmes ou si vous souhaitez contribuer à la bibliothèque, veuillez soumettre une demande de téléchargement et nous vous répondrons si vous avez des questions ! Pour plus d'informations sur l'API ASM et sur la façon de l'exploiter dans vos flux de travail actuels, veuillez consulter notre documentation.