Verwenden Sie die REST-Ereignis-Abfrage-API von FortiSIEM. Senden Sie eine XML-Abfrage an /phoenix/rest/query/eventQuery, die eine Abfrage-ID zurückgibt; überprüfen Sie den Fortschritt, bis er 100 erreicht, und holen Sie dann die Ereignisse ab. Die Ergebnisse werden als XML zurückgegeben. Die ursprüngliche Protokollzeile jedes Ereignisses befindet sich im Attribut rawEventMsg, sodass ein paar Zeilen Python das Ergebnis in Rohprotokolle umwandeln. Exporte vom Analytics-Bildschirm werden in Formaten ausgegeben, die LogTotal heute nicht liest.
FortiSIEM ist überall dort verbreitet, wo Fortinet das Netzwerk betreibt, und es speichert oft weit mehr als Firewall-Protokolle. Prime Core hat 19.692 Erkennungsregeln für FortiSIEM, die 664 MITRE ATT&CK Techniken zugeordnet sind. Unten wird gezeigt, wie man Ereignisse extrahiert, sie bereinigt und kostenlos in LogTotal untersucht.
Bevor Sie anfangen
Ein API-Nutzer. Verwenden Sie ein Konto mit Rechten zur Durchführung von Analytics-Abfragen. Die API authentifiziert sich mit Basic Auth, wobei die Organisation im Benutzernamen angegeben wird: super/<user> bei einer Enterprise-Installation, <org>/<user> für eine bestimmte Organisation bei einer Dienstanbieterinstallation.
Aufbewahrung. Der Online-Ereignisspeicher ist begrenzt. Ältere Ereignisse können sich in einem Archivspeicher befinden, der zusätzliche Schritte erfordert.
Attributnamen. FortiSIEM-Abfragen verwenden eigene Attributnamen, wie z. B. reptDevName (Meldendes Gerät), reptDevIpAddr, eventType und phRecvTime. Erstellen Sie den Filter zunächst in Analytics.
Exportieren mit der Ereignis-Abfrage-API
Speichern Sie die Abfrage als query.xml:
<?xml version=“1.0″ encoding=“UTF-8″?>
<Reports><Report><Name>LogTotal-Export</Name><Description/>
<SelectClause><AttrList>phRecvTime,reptDevIpAddr,eventType,rawEventMsg</AttrList></SelectClause>
<ReportInterval><Low>1792368000</Low><High>1792454400</High></ReportInterval>
<PatternClause><SubPattern id=“1″ name=“Filter“>
<SingleEvtConstr>reptDevName = „web-03″</SingleEvtConstr>
</SubPattern></PatternClause>
</Report></Reports>
Das Intervall sind Epochensekunden von 2026-10-19 00:00 UTC bis 2026-10-20 00:00 UTC. Führen Sie es dann aus:
FSM=“https://fortisiem.example.com“
AUTH=“super/apiuser:$FSM_PASS“
QID=$(curl -sS -u „$AUTH“ -X POST -H ‚Content-Type: text/xml‘ –data @query.xml „$FSM/phoenix/rest/query/eventQuery“)
bis [ „$(curl -sS -u „$AUTH“ „$FSM/phoenix/rest/query/progress/$QID“)“ = „100“ ]; do sleep 5; done
curl -sS -u „$AUTH“ „$FSM/phoenix/rest/query/events/$QID/0/1000“ > fsm_web03_1019.xml
Die letzten beiden Pfadsegmente sind der Startoffset und die Anzahl. Durchlaufen Sie große Ergebnisse in Schritten von 1.000. Ziehen Sie dann die Rohmeldungen heraus:
import xml.etree.ElementTree as ET
root = ET.parse(„fsm_web03_1019.xml“).getroot()
with open(„fsm_web03_1019.log“, „w“) as out:
for attr in root.iter(„attribute“):
if attr.get(„name“) == „rawEventMsg“ and attr.text:
out.write(attr.text.strip() + „n“)
Hochladen, bereinigen und in LogTotal überprüfen
- Hochladen. Öffnen logtotal.com und die Datei ablegen.
- Reinigen.
- Überprüfen.
Wie das mit echten Daten aussieht.
Wenn es schiefgeht
| Symptom | Wahrscheinliche Ursache | Fix |
|---|---|---|
| 401 | Organisation im Benutzernamen fehlt | Verwenden Sie super/<user> oder <org>/<user> |
| Abfrage gibt einen Fehler zurück statt einer ID | XML-Syntax oder ein unbekannter Attributname | Testen Sie den Filter in Analytics; überprüfen Sie die Attributnamen |
| Fortschritt erreicht nie 100 | Abfrage zu breit | Zeitbereich und Filter eingrenzen |
| rawEventMsg leer | Das Attribut wurde nicht ausgewählt | rawEventMsg zur AttrList hinzufügen |
| Alte Ereignisse fehlen | Sie befinden sich in einem Archivspeicher | Archivoptionen prüfen |
FAQ
Warum XML?
Das ist die Sprache, die diese FortiSIEM-API spricht. Der Python-Schritt wandelt sie in die ursprünglichen Rohzeilen um, was normalerweise genau das ist, was Sie hochladen möchten.
Kann ich stattdessen Vorfälle exportieren?
Vorfälle haben ihre eigenen API-Aufrufe. Für LogTotal exportieren Sie die dahinterliegenden Ereignisse.