Verbinde Splunk mit der WeTransfer Activity Events API und sende die Ereignisse deines Arbeitsbereichs an dein SIEM.
Was du brauchst
- Ein Activity API-Token — siehe Generate an API token im Haupt‑Activity‑Log‑Leitfaden
- Eine Splunk Enterprise‑Instanz (Cloud oder selbst gehostet), Version 9.x oder neuer
Schritt 1 — Installiere das REST API Modular Input‑Add‑on
Die Integration verwendet das REST API Modular Input Add‑on von BaboonBones Ltd (Damien Dallimore), das auf Splunkbase verfügbar ist.
- Öffne in der Splunk‑Web‑UI Apps → Find More Apps
- Suche nach REST API Modular Input und installiere es von Splunkbase
- Starte Splunk neu, wenn du dazu aufgefordert wirst
Schritt 2 — Konfiguriere einen neuen REST‑Input
Gehe zu Settings → Data inputs → REST → New und fülle das Formular mit den untenstehenden Werten aus. Die Feldnamen entsprechen den vom Add‑on angezeigten Bezeichnungen.
Feld | Wert |
|---|---|
| Endpoint-URL | https://wetransfer.com/api/external/v1/activity-events |
| HTTP‑Methode | GET |
| Authentifizierungstyp | none — das Bearer‑Token wird stattdessen über einen benutzerdefinierten Header gesendet |
| HTTP‑Header‑Eigenschaften | Authorization=Bearer <YOUR_TOKEN> |
| URL‑Argumente | since=YYYY-MM-DDTHH:MM:SSZ — setze dies auf den ISO‑8601‑Zeitstempel, ab dem du beginnen möchtest. Alles, was älter als 1 Jahr ist, wird abgelehnt, da Ereignisse nur 1 Jahr aufbewahrt werden. |
| Antworttyp | json |
| Abfrageintervall | 60 Sekunden (empfohlen). Die API unterstützt bis zu 1 Anfrage/Sekunde, aber 60 s sind für SIEM‑Einsatz mehr als ausreichend. |
| Response Handler | WTActivityEventHandler — wir fügen das in Schritt 3 hinzu. |
| Sourcetype | Auf Manual setzen und wetransfer:activity eingeben |
| Index | Wähle den Index, in den Ereignisse geschrieben werden sollen, oder lasse die Voreinstellung. |

Schritt 3 — Füge den benutzerdefinierten Response‑Handler hinzu
Der WeTransfer‑Endpunkt liefert ein einzelnes JSON‑Objekt mit einem events[]‑Array und einem next_cursor. Standardmäßig indexiert das REST‑Add‑on die gesamte Antwort als ein einziges Splunk‑Event. Um ein Splunk‑Event pro WeTransfer‑Aktivitätsereignis zu erhalten, füge einen kleinen benutzerdefinierten Response‑Handler hinzu.
Bearbeite $SPLUNK_HOME/etc/apps/rest_ta/bin/responsehandlers.py und füge Folgendes hinzu:
class WTActivityEventHandler:
"""Splits the WeTransfer activity-events response (dict with events[]) into one Splunk event per WT event."""
def __init__(self, **args):
pass
def __call__(self, response_object, raw_response_output, response_type, req_args, endpoint, oauth2=None):
if response_type == "json":
output = json.loads(raw_response_output)
for entry in output.get("events", []):
print_xml_stream(json.dumps(entry))
else:
print_xml_stream(raw_response_output)Starte Splunk nach dem Bearbeiten der Datei neu.
Schritt 4 — Überprüfung der Aufnahme
Gib in der Splunk‑Suchleiste Folgendes ein:
index=<your-index> sourcetype=wetransfer:activity | head 20Du solltest pro WeTransfer‑Aktivitätsereignis ein Splunk‑Event sehen, mit den sichtbaren Feldern: event_id, event_type, actor_email, actor_id, ip_address, country_code, created_at, target.* und data.*.

Schritt 5 — Hinweise zur Paginierung
- Das REST‑Add‑on folgt dem
next_cursornicht automatisch. Zum Nachfüllen großer historischer Bereiche führe ein einmaliges Skript aus, das über dennext_cursorpaginiert, bishas_morefalseist, und richte das Add‑on anschließend auf die Gegenwart aus. - Für die laufende Ingestion ist ein Abfrageintervall von 60 s für typische Arbeitsbereiche ausreichend — Ereignisse pro Minute passen normalerweise auf eine Seite, sodass das Folgen des Cursors nicht nötig ist. Für Arbeitsbereiche mit höherem Volumen siehe die obenstehende Notiz zum Nachfüllen.
- Der Endpunkt liefert maximal 100 Ereignisse pro Antwort (Standard 50).
Alarme erstellen
Sobald Ereignisse eingehen, kannst du Alarme auf Basis der wetransfer:activity-Daten mit Splunks integrierten gespeicherten Suchen und Alert‑Funktionen erstellen. Das Erstellen von Erkennungsregeln ist arbeitsbereichs‑ und richtlinienabhängig, daher solltest du Splunks eigene Dokumentation zu den in deiner Version verfügbaren Alarmoptionen konsultieren.
Fehlerbehebung
Die meisten Splunk‑seitigen Probleme mit dieser Integration erscheinen in $SPLUNK_HOME/var/log/splunk/restmodinput*.log — prüfe dort zuerst, wenn etwas nicht stimmt.
Symptom | Was passiert / Lösung |
|---|---|
| Jede Abfrage wird als ein einziger großer JSON‑Blob indexiert | Der benutzerdefinierte Response‑Handler aus Schritt 3 wird nicht angewendet. Prüfe, ob das Feld Response Handler in der REST‑Input‑Konfiguration genau WTActivityEventHandler lautet, ob die Klasse an responsehandlers.py angehängt wurde und ob Splunk nach der Änderung neu gestartet wurde. |
| Ereignisse erscheinen, aber es werden keine Felder extrahiert | Gleiche Ursache wie oben — der Handler ist dafür verantwortlich, jedes WeTransfer‑Ereignis in ein separates JSON‑Dokument zu teilen, das Splunk dann automatisch extrahiert. Überprüfe den Handler‑Namen und den Code, und starte dann neu. |
| Duplizierte Ereignisse bei jedem Abfragezyklus | Der since‑Parameter in URL Arguments ist statisch — das Add‑on holt bei jeder Abfrage dieselben Ereignisse erneut. Duplikate werden in den Index geschrieben; entferne sie zur Suche mit | dedup event_id. Um dies bei der Aufnahme zu vermeiden, verwende die Response‑Substitution des Add‑ons, um bei jeder Abfrage den Cursor vorzurücken (erweitert). |
401 errors in restmodinput*.log | Das Bearer‑Token in HTTP Header Properties fehlt, ist fehlerhaft oder wurde widerrufen. Überprüfe die Zeile Authorization=Bearer <token> und generiere bei Bedarf ein neues Token im WeTransfer‑Admin‑Panel. |
Timeouts oder Verbindung verweigert zu wetransfer.com | Problem mit ausgehendem Netzwerkverkehr. Dein Splunk‑Host kann wetransfer.com nicht direkt erreichen — wahrscheinlich eine Unternehmensfirewall oder ein HTTP‑Proxy. Konfiguriere Splunks ausgehenden Proxy in den Input‑Einstellungen oder systemweit und überprüfe die Konnektivität mit einem curl vom Splunk‑Host. |