U heeft een Q-Feeds API-sleutel en feed-URL's nodig. Zie Uw threat feeds ophalen. Exabeam accepteert alleen CSV, voeg dus altijd &type=csv toe aan de Q-Feeds-URL. Poll niet vaker dan elke 20 minuten.
Beschikbare indicatorlijsten (CSV)
- Malware IPs:
feed_type=malware_ip&type=csv - Malware domains:
feed_type=malware_domains&type=csv - Phishing URLs:
feed_type=phishing_urls&type=csv
URL-parameters: feed_type, optioneel limit, api_token en type=csv. Voorbeeld:
https://api.qfeeds.com/api?feed_type=malware_ip&api_token=YOUR_TOKEN&limit=130000&type=csv
Test met:
curl -v -u api_token:YOUR_TOKEN "https://api.qfeeds.com/api?feed_type=malware_ip&limit=1000&type=csv"
Maak een context table
- Ga naar Context Management en kies New table.
- Kies Add Custom, geef een naam en zet het tabeltype op Other.
- Kies Add attributes → Add Custom Attribute (bijvoorbeeld
bad_ips,bad_domainsofbad_urls). - Wijs dat attribuut toe als de key attribute.
Maak een Exabeam API-sleutel
- Open de admininstellingen → API keys en maak een nieuwe sleutel.
- Geef de rechten manage context.
- Gebruik het driepuntsmenu op de nieuwe sleutel → Generate and copy token. Bewaar het token veilig.
Haal metadata van de context table op
- Open de Exabeam developers reference voor het oplijsten van tabellen (
GET /context-management/v1/tables). - Plak uw Exabeam access token, selecteer de juiste regionale base URL en probeer het verzoek.
- Zoek uw custom table in het antwoord en kopieer de table ID en de attribute ID van de key attribute. Beide heeft u nodig in de volgende stap.
Records toevoegen vanuit CSV
- Gebruik de Exabeam API
POST …/tables/{id}/addRecordsFromCsv. - Zet de path/table ID op uw context table ID.
- Zet
sourceAttributesopIP,domainofurl, afhankelijk van de feed. - Zet
targetAttributeIdsop de attribute ID uit de metadata. - Zet
operationopreplace. - Upload de CSV-body van Q-Feeds (pipe of download met
type=csv).
De API explorer van Exabeam kan clientsnippets in meerdere talen genereren. Plan dezelfde call elke 20 minuten in om de tabel actueel te houden.
Voorbeeld: shell
curl --request POST \
--url "https://api.eu.exabeam.cloud/context-management/v1/tables/<your-table-id>/addRecordsFromCsv" \
--header 'accept: application/json' \
--header 'authorization: Bearer <your-exabeam-token>' \
--header 'content-type: multipart/form-data' \
--form 'sourceAttributes=IP' \
--form 'targetAttributeIds=<your-attribute-id>' \
--form operation=replace \
--form file=@<(curl "https://api.qfeeds.com/api.php?feed_type=malware_ip&api_token=<yourtoken>&type=csv")
Pas de regionale Exabeam base URL en de placeholders aan voor uw tenant.
Voorbeeld: Python
import io
import requests
qfeed_url = "https://api.qfeeds.com/api.php?feed_type=malware_ip&api_token=<yourtoken>&type=csv"
qfeed_csv = requests.get(qfeed_url).content
url = "https://api.eu.exabeam.cloud/context-management/v1/tables/<your-table-id>/addRecordsFromCsv"
payload = {
"sourceAttributes": "IP", # or domain / url
"targetAttributeIds": "<your-attribute-id>",
"operation": "replace",
}
files = {"file": ("feed.csv", io.BytesIO(qfeed_csv), "text/csv")}
headers = {
"accept": "application/json",
"authorization": "Bearer <your-exabeam-token>",
}
print(requests.post(url, data=payload, files=files, headers=headers).text)