Der Trend Threat Intelligence-Feed liefert Echtzeit-Bedrohungsinformationen über eine
TAXII 2.1-konforme Representational State Transfer (REST) Anwendungsprogrammierschnittstelle (API).
Diese API ermöglicht die Integration von kuratierten, strukturierten Bedrohungsdaten
in Ihre Sicherheitsabläufe und -werkzeuge.
Prozedur
- Stellen Sie sicher, dass Sie ein Trend Vision One API-Token haben. Siehe Einrichten der API für den Trend Threat Intelligence Feed.
- Identifizieren Sie Ihre regionale TAXII 2.1 Discovery-URL.RegionTAXII-Feed-URLUSAhttps://api.xdr.trendmicro.com/v3.0/threatintel/feeds/taxii2Europäische Unionhttps://api.xdr.trendmicro.com/v3.0/threatintel/feeds/taxii2Singapurhttps://api.sg.xdr.trendmicro.com/v3.0/threatintel/feeds/taxii2Japanhttps://api.xdr.trendmicro.co.jp/v3.0/threatintel/feeds/taxii2Australienhttps://api.au.xdr.trendmicro.com/v3.0/threatintel/feeds/taxii2Indienhttps://api.in.xdr.trendmicro.com/v3.0/threatintel/feeds/taxii2Vereinigte Arabische Emiratehttps://api.mea.xdr.trendmicro.com/v3.0/threatintel/feeds/taxii2
- Stellen Sie sicher, dass Anfragen diese erforderlichen Header enthalten:
-
Authorization: Bearer <yourvisiononeapitoken>
-
Akzeptieren: application/taxii+json; version=2.1
-
- Abfrage von Server- und API-Root-Endpunkten mithilfe der regionalen TAXII 2.1-URL-Tabelle oben. Die Sammlungs-ID zielt auf ein spezifisches Bedrohungsdatenobjekt ab.
-
GET <TAXII_DISCOVERY_URL>
-
API-Stamminformationen abrufen:
GET <TAXII_DISCOVERY_URL>/api/collections
-
Sammlungen auflisten:
GET <TAXII_DISCOVERY_URL>/api/collections
ZweckAPI-PfadURL-ParameterDatentypParameterbeschreibungServer-ErkennungGET /taxii2/
API-Stamminformationen abrufenGET /taxii2/api/
Sammlungen abrufenGET /taxii2/api/collections/
Sammlung erhaltenGET /taxii2/api/collections/91a7b528-80eb-42ed-a74d-c6fbd5a26116
STIX-Objekte abrufenGET /taxii2/api/collections/91a7b528-80eb-42ed-a74d-c6fbd5a26116/objekte/
nach_hinzugefügtString, ISO8601-ZeitstempelNur Objekte mitdate_added
zurückgeben, die größer als der angegebene Wert sindBegrenzungZeichenfolgeAnzahl der Objekte pro SeiteStandard: 1.000Min: 1.000Max: 10.000Übereinstimmung[id]ZeichenfolgeNach spezifischer Objekt-ID filternÜbereinstimmung[type]ZeichenfolgeNach Objekttyp filternweiterZeichenfolgeSeitentoken zum Abrufen der nächsten ErgebnisseiteSTIX-Objekt abrufenGET /taxii2/api/collections/91a7b528-80eb-42ed-a74d-c6fbd5a26116/objekte/{object_id}
nach_hinzugefügtString, ISO8601-ZeitstempelNur Objekte mitdate_added
zurückgeben, die größer als der angegebene Wert sindObjektmanifeste abrufenGET /taxii2/api/collections/91a7b528-80eb-42ed-a74d-c6fbd5a26116/manifest/
nach_hinzugefügtString, ISO8601-ZeitstempelNur Objekte mitdate_added
zurückgeben, die größer als der angegebene Wert sindBegrenzungZeichenfolgeAnzahl der Objekte pro SeiteStandard: 1.000Min: 1.000Max: 10.000Übereinstimmung[id]ZeichenfolgeNach spezifischer Objekt-ID filternÜbereinstimmung[type]ZeichenfolgeNach Objekttyp filternweiterZeichenfolgeSeitentoken zum Abrufen der nächsten Ergebnisseite -
- Beziehen Sie sich auf das folgende Python-Beispiel, um Objekte zu authentifizieren und zu zählen.Pakete:
import requests from taxii2client.v21 import Server DISCOVERY_URL = "<your regional TAXII discovery URL>" TOKEN = "<your Vision One API token>" class BearerAuth(requests.auth.AuthBase): def __init__(self, token): self.token = token def __call__(self, r): r.headers["Authorization"] = f"Bearer {self.token}" return r # Get server server = Server(DISCOVERY_URL, auth=BearerAuth(TOKEN)) print(f'Server title: {server.title}') print(f'API Roots: {server.api_roots}') # Get API root api_root = server.api_roots[0] print(f'\nAPI Root title: {api_root.title}') # Get collections collections = api_root.collections print('\nCollections:') for col in collections: print(f'- {col.title} (id: {col.id})') # Get collection collection = collections[0] # or collection = Collection(f'{DISCOVERY_URL}/api/collections/91a7b528-80eb-42ed-a74d-c6fbd5a26116/, auth=BearerAuth(TOKEN)) print(f'\nCollection Info:\nID: {collection.id}\nTitle: {collection.title}') # Get manifest manifest = collection.get_manifest() print(f'\nManifest:\n{json.dumps(manifest, indent=2)}') # Get a STIX Object try: empty_object = collection.get_object('object-id') print(f'\nSTIX Object (empty):\n{json.dumps(empty_object, indent=2)}') except Exception as error: print(f'Object is not found: {error}') # Get STIX objects, single page objects = collection.get_objects() print('\nSTIX Objects:') for obj in objects['objects']: print(json.dumps(obj, indent=2)) # Get STIX objects with match["id"] objs_by_id = collection.get_objects(id='campaign--8e3e4a78-1b6c-4b4c-97c0-d90f5fcbdc12') print(f'\nSTIX Objects (with match["id"]):\n{json.dumps(objs_by_id, indent=2)}') # Get STIX objects with match["type"] objs_by_type = collection.get_objects(type='campaign') print(f'\nSTIX Objects (with match["type"]):\n{json.dumps(objs_by_type, indent=2)}') # Get STIX objects with as_pages print('\nSTIX Objects (as_pages):') yesterday = datetime.datetime.now() - datetime.timedelta(days=1) for i, bundle in enumerate(as_pages(collection.get_objects, added_after=yesterday, per_request=1000), 1): print(f'Page {i}: {len(bundle["objects"])} {bundle["objects"][-1]["created"]}')
Nächste Schritte
Integrieren Sie den Trend Threat Intelligence-Feed in OpenCTI mithilfe des TAXII2-Connectors. Siehe Fügen Sie den Trend Threat Intelligence-Feed in OpenCTI mithilfe von TAXII2-Konnektoren
hinzu.