Censys hat tiefe Wurzeln in der Open-Source-Software und geht auf das Open-Source-Projekt Zmap zurück. Seitdem hat Censys weiterhin Open-Source-Projekte unterstützt und zu unseren öffentlichen Repositories beigetragen, die Sie hier finden.
Eines unserer beliebtesten Open-Source-Projekte ist unsere censys-python-Bibliothek. Die Bibliothek wurde ursprünglich für Censys Search erstellt und ist ein einfach zu bedienender und leichtgewichtiger API-Wrapper, der derzeit in 180 Projekten auf GitHub verwendet wird. Mit der jüngsten Veröffentlichung(v1.1.0) enthält diese Bibliothek nun eine zweite API für die Attack Surface Management Platform (oder ASM Platform). Die Censys ASM API ermöglicht es Benutzern, programmatisch mit Ressourcen auf unserer ASM-Plattform zu interagieren, einschließlich Seeds, Assets und Logbuch-Events.
- seeds - Bietet eine programmatische Verwaltung von Saatgut in der ASM-Plattform.
- Assets - Liefert Asset-Daten für Hosts, Zertifikate und Domains. Mit dieser Option kann der Benutzer auch Tags und Kommentare zu Assets verwalten.
- events - Liefert Logbuchereignisse. Kann für die gezielte Suche nach Ereignissen auf der Grundlage von Start-ID oder Datum und Ereignistyp-Filtern verwendet werden.
Als Kunde der ASM-Plattform ermöglicht dieses Update den Nutzern, ihre Interaktionen mit nur wenigen kurzen Befehlen zu automatisieren, z. B. das Hinzufügen neuer Seed-Daten zur Plattform und das Abrufen zugehöriger Assets wie IP-Adressen und Domänennamen. Benutzer können sogar ihre ASM-Asset-Historie mithilfe der Logbuch-Endpunkte und ihrer Ereignisobjekte verfolgen.
Zum Beispiel ist es jetzt noch einfacher, neues Saatgut zur Censys ASM-Plattform hinzuzufügen:
von censys.asm.seeds importieren Saatgut
s = Saatgut()
# 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) |
Bei den Assets gibt es drei Typen (Hosts, Zertifikate und Domains), die alle die gleiche API-Schnittstelle nutzen. Ein Beispiel dafür, wie Sie Ihre Assets auf der Censys ASM-Plattform anzeigen können, ist:
von censys.asm.assets importieren Vermögenswerte
h = Vermögenswerte("Hosts")
# Einen Generator holen, der Hosts zurückgibt
hosts = h.get_assets()
print(next(hosts))
# Holt einen einzelnen Host nach ID (hier erhalten wir Host mit ID="0.0.0.0″)
host = h.get_asset_by_id("0.0.0.0")
print(host) |
Ereignisse sind Änderungen in der Angriffsfläche des Benutzers, z. B. wenn ein Benutzer ein neues Zertifikat hinzufügt, einen neuen Port öffnet usw. Hier ist ein Beispiel dafür, wie schnell Sie Ihr Logbuch oder eine Liste all dieser Arten von Ereignissen in chronologischer Reihenfolge von der ASM-Plattform abrufen können:
von censys.asm.events importieren Veranstaltungen
e = Ereignisse()
# Einen Generator holen, der alle Ereignisse zurückgibt
events = e.get_events()
print(next(events))
# Ereignisse basierend auf den Cursor-Spezifikationen abrufen
events = e.get_events(cursor)
print(next(events)) |
Wenn Sie Probleme haben oder einen Beitrag zur Bibliothek leisten möchten, reichen Sie bitte einen Pull-Request ein, und wir werden uns mit Ihnen in Verbindung setzen! Weitere Informationen über die ASM-API und wie Sie die API in Ihren aktuellen Arbeitsabläufen nutzen können, finden Sie in unserer Dokumentation.