Drittanbieter-SIEM-Integration
Übersicht
Session Recording bietet die Möglichkeit, verschiedene Ereignisse in aufgezeichneten Sitzungen zu erfassen. Sie können eine ausgewählte Menge der Ereignisdaten in den Session Recording-Dienst hochladen und zur weiteren Analyse an ein Drittanbieter-System für Sicherheitsinformationen und Ereignismanagement (SIEM) weiterleiten. Der Session Recording-Dienst unterstützt derzeit die Integration mit Splunk (sowohl Splunk Cloud als auch Splunk Enterprise) und Microsoft Sentinel.
Die Integration mit einer Drittanbieter-SIEM-Plattform verbessert die Sicherheitslage Ihres Unternehmens durch die Nutzung fortschrittlicher Analyse- und Korrelationsfunktionen, um potenzielle Bedrohungen effektiver zu erkennen und darauf zu reagieren.
Konfiguration
-
SIEM-Integration aktivieren.
-
Wählen Sie Konfiguration > SIEM-Integration aus der linken Navigation des Session Recording-Dienstes.

-
Aktivieren Sie Microsoft Sentinel, Splunk oder beides nach Bedarf. Klicken Sie dann auf das Symbol Konfigurieren neben dem Umschalter, um das Ziel und die Datenquelle zu konfigurieren.
Um Daten an Microsoft Sentinel zu senden, geben Sie die Arbeitsbereichs-ID und den Schlüssel für das Microsoft Sentinel-Ziel an und wählen Sie die Ziel-Sites als Datenquelle aus, die gesendet werden sollen. Nur Sites mit Session Recording Version 2411 und höher werden für die SIEM-Integration unterstützt.


Um Daten an Splunk zu senden, richten Sie einen HTTP Event Collector in Splunk ein. Anweisungen finden Sie in der Splunk-Dokumentation: Einrichten und Verwenden des HTTP Event Collectors in Splunk Web. Der Session Recording-Dienst unterstützt sowohl Splunk Cloud als auch Splunk Enterprise. Wenn Sie Splunk Enterprise verwenden, stellen Sie sicher, dass die eingehende Konnektivität vom Session Recording-Dienst (derzeit auf Microsoft Azure gehostet) zu Ihrem Splunk Enterprise konfiguriert ist.
Geben Sie die URL, den Token-Wert an und legen Sie den Index fest, in dem die Daten gespeichert werden sollen, zusätzlich zum Quelltyp und der Quelle. Wählen Sie dann, ähnlich wie bei Microsoft Sentinel, die Ziel-Sites als Datenquelle aus, die gesendet werden sollen. Nur Sites mit Session Recording Version 2411 und höher werden für die SIEM-Integration unterstützt.


-
-
Ereignisse zur Weiterleitung angeben.
Sie müssen die Ereignistypen angeben, die in den Session Recording-Dienst hochgeladen und an die zuvor angegebenen SIEM-Plattformen weitergeleitet werden sollen. Führen Sie dazu die folgenden Schritte aus:
-
Gehen Sie zu Siteeinstellungen für jede der Sites, die Sie zuvor als Datenquelle ausgewählt haben. Zum Beispiel:

-
Wählen Sie Ereignisdaten in den Session Recording-Dienst hochladen und wählen Sie dann Datenexport an SIEM-Plattformen aktivieren. Geben Sie im Abschnitt Bereich die weiterzuleitenden Ereignistypen an. Zum Beispiel:

-
-
Testen Sie die Integration.
Nach der Konfiguration der Integration testen Sie diese, um sicherzustellen, dass Ereignisse korrekt an die angegebenen SIEM-Plattformen weitergeleitet werden.
-
Überwachen und anpassen.
Überwachen Sie die Integration kontinuierlich, um sicherzustellen, dass sie wie erwartet funktioniert. Passen Sie die Konfiguration bei Bedarf an, um die Ereignisweiterleitung zu optimieren und die Genauigkeit der Warnmeldungen zu verbessern.
-
Ereignisdaten visualisieren.
Sie können Ereignisdaten in Microsoft Sentinel und Splunk visualisieren. Im Folgenden sind Beispielansichten aufgeführt:


Um Ereignisdaten in Microsoft Sentinel zu visualisieren, wenden Sie sich an den technischen Support von Citrix.
Um Ereignisdaten in Splunk schnell zu importieren und zu visualisieren, verwenden Sie die folgende Dashboard-Vorlage, indem Sie die Suchabfragen und Visualisierungen an Ihre Daten anpassen:
<form version="1.1" theme="light"> <label>Session Recording Events Analysis</label> <fieldset submitButton="false"> <input type="time" token="time_field"> <label></label> <default> <earliest>-24h@h</earliest> <latest>now</latest> </default> </input> <input type="dropdown" token="Server"> <label>Server</label> <default>*</default> <initialValue>*</initialValue> <fieldForValue>Server</fieldForValue> <search> <query>index= sourcetype= source= | table dvc | rename dvc as Server | dedup Server | sort Server</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> </search> </input> <input type="dropdown" token="Site"> <label>Site</label> <default>*</default> <initialValue>*</initialValue> <fieldForValue>Site</fieldForValue> <search> <query>index="" sourcetype= source= | table tenant.srSiteId | rename tenant.srSiteId as Site | dedup Site | sort Site</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> </search> </input> <input type="dropdown" token="VDA"> <label>VDA</label> <default>*</default> <initialValue>*</initialValue> <fieldForValue>VDA</fieldForValue> <search> <query>index= sourcetype= source= | table payload.deviceId | rename payload.deviceId as VDA | dedup VDA | sort VDA</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> </search> </input> <input type="dropdown" token="User"> <label>User</label> <default>*</default> <initialValue>*</initialValue> <fieldForValue>User</fieldForValue> <search> <query>index= sourcetype= source= | table payload.user | rename payload.user as User | dedup User | sort User</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> </search> </input> </fieldset> <row> <panel> <table> <title>Web Browsing - Top visisted Websites</title> <search> <query>index= sourcetype= source= | search type=Citrix.EventMonitor.WebBrowsing | spath payload.ExtEventData1 | stats count by payload.ExtEventData1 | sort count desc | rename payload.ExtEventData1 as WebSites</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="dataOverlayMode">none</option> <option name="drilldown">none</option> <option name="percentagesRow">false</option> <option name="rowNumbers">false</option> <option name="totalsRow">false</option> <option name="wrap">true</option> <format type="color" field="FunctionFailed"> <colorPalette type="list">[#118832,#D41F1F]</colorPalette> <scale type="threshold">1</scale> </format> </table> </panel> <panel> <chart> <title>Web Browsing - Browsers Distribution</title> <search> <query>index= sourcetype= source= | search type=Citrix.EventMonitor.WebBrowsing | spath payload.ExtEventData3 | stats count by payload.ExtEventData3|sort count desc</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="charting.chart">pie</option> <option name="charting.drilldown">none</option> <option name="refresh.display">progressbar</option> </chart> </panel> <panel> <table> <title>Screen Time (mins)</title> <search> <query>index= sourcetype= source= | spath "payload.type" | search "payload.type"="Citrix.EventMonitor.TopMost" | rename payload.ExtEventData1 as AppName, payload.deviceId as DeviceId | eval time=strptime(st, "%Y-%m-%dT%H:%M:%S.%7N") | sort DeviceId time | streamstats current=f window=1 last(time) as last_time by DeviceId | eval time_diff = if(isnull(last_time), null(), time - last_time) | table time, DeviceId, AppName, time_diff |eval time_diff = time_diff/60 | stats sum(time_diff) by AppName |sort by sum(time_diff) desc |rename sum(time_diff) as ScreenTime</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="dataOverlayMode">none</option> <option name="drilldown">none</option> <option name="percentagesRow">false</option> <option name="refresh.display">progressbar</option> <option name="rowNumbers">false</option> <option name="totalsRow">false</option> <option name="wrap">true</option> <format type="color" field="FunctionFailed"> <colorPalette type="list">[#118832,#D41F1F]</colorPalette> <scale type="threshold">1</scale> </format> </table> </panel> </row> <row> <panel> <table> <title>Application - Top started Application</title> <search> <query>index= sourcetype= source= | search type=Citrix.EventMonitor.AppStart | spath payload.ExtEventData2 | stats count by payload.ExtEventData2 | sort count desc | rename payload.ExtEventData2 as AppName</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="dataOverlayMode">none</option> <option name="drilldown">none</option> <option name="percentagesRow">false</option> <option name="rowNumbers">false</option> <option name="totalsRow">false</option> <option name="wrap">true</option> <format type="color" field="FunctionFailed"> <colorPalette type="list">[#118832,#D41F1F]</colorPalette> <scale type="threshold">1</scale> </format> </table> </panel> <panel> <table> <title>Application - Top unexpceted exit application</title> <search> <query>index= sourcetype= source= | search type=Citrix.EventMonitor.UnexpectedAppExit | spath payload.ExtEventData2 | stats count by payload.ExtEventData2 | sort count desc | rename payload.ExtEventData2 as AppPath | eval AppNameSplit = split(AppPath, "\\") | eval AppName = mvindex(AppNameSplit, -1) | table AppName|stats count by AppName</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="dataOverlayMode">none</option> <option name="drilldown">none</option> <option name="percentagesRow">false</option> <option name="refresh.display">progressbar</option> <option name="rowNumbers">false</option> <option name="totalsRow">false</option> <option name="wrap">true</option> <format type="color" field="FunctionFailed"> <colorPalette type="list">[#118832,#D41F1F]</colorPalette> <scale type="threshold">1</scale> </format> </table> </panel> <panel> <table> <title>Application - Top no responding application</title> <search> <query>index= sourcetype= source= | search type=Citrix.EventMonitor.AppNotResponding | spath payload.ExtEventData2 | stats count by payload.ExtEventData2 | sort count desc | rename payload.ExtEventData2 as AppPath | eval AppNameSplit = split(AppPath, "\\") | eval AppName = mvindex(AppNameSplit, -1) | table AppName|stats count by AppName</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="dataOverlayMode">none</option> <option name="drilldown">none</option> <option name="percentagesRow">false</option> <option name="refresh.display">progressbar</option> <option name="rowNumbers">false</option> <option name="totalsRow">false</option> <option name="wrap">true</option> <format type="color" field="FunctionFailed"> <colorPalette type="list">[#118832,#D41F1F]</colorPalette> <scale type="threshold">1</scale> </format> </table> </panel> </row> <row> <panel> <table> <title>File Transfer - Top transfered in file count</title> <search> <query>index= sourcetype= source=type="Citrix.EventMonitor.FileTransfer" | spath payload.ExtEventData3 | search payload.ExtEventData3 = "Host:*" | rename payload.ExtEventData3 as filePath | eval fileSplit = split(filePath, "\\") | eval FileName = mvindex(fileSplit, -1) | table FileName | stats count by FileName | sort bv count desc</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="dataOverlayMode">none</option> <option name="drilldown">none</option> <option name="percentagesRow">false</option> <option name="rowNumbers">false</option> <option name="totalsRow">false</option> <option name="wrap">true</option> <format type="color" field="FunctionFailed"> <colorPalette type="list">[#118832,#D41F1F]</colorPalette> <scale type="threshold">1</scale> </format> </table> </panel> <panel> <table> <title>File Transfer - Top transfered in file size by user</title> <search> <query>index= sourcetype= source=type="Citrix.EventMonitor.FileTransfer" | spath payload.ExtEventData3 | search payload.ExtEventData3 = "Host:*" | rename payload.ExtEventData4 as filesize | eval filesize_mb = case( like(filesize, "% B"), tonumber(replace(filesize, " B", "")) / 1024 /1024, like(filesize, "% KB"), tonumber(replace(filesize, " KB", "")) / 1024, like(filesize, "% MB"), tonumber(replace(filesize, " MB", "")), like(filesize, "% GB"), tonumber(replace(filesize, " GB", "")) * 1024, like(filesize, "% TB"), tonumber(replace(filesize, " TB", "")) * 1024 * 1024 ) | table payload.user, filesize_mb | stats sum by payload.user |rename sum(filesize_mb) as FileSize(MB), payload.user as User</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="dataOverlayMode">none</option> <option name="drilldown">none</option> <option name="percentagesRow">false</option> <option name="refresh.display">progressbar</option> <option name="rowNumbers">false</option> <option name="totalsRow">false</option> <option name="wrap">true</option> <format type="color" field="FunctionFailed"> <colorPalette type="list">[#118832,#D41F1F]</colorPalette> <scale type="threshold">1</scale> </format> </table> </panel> <panel> <table> <title>File Transfer - Top transfered out file count by user</title> <search> <query>index= sourcetype= source=type="Citrix.EventMonitor.FileTransfer" | spath payload.ExtEventData2 | search payload.ExtEventData2 = "Host:*" | table payload.user, payload.ExtEventData2 | stats count by payload.user | rename payload.user as User</query> <earliest>$time_field.earliest$</earliest> <latest>$time_field.latest$</latest> <sampleRatio>1</sampleRatio> </search> <option name="dataOverlayMode">none</option> <option name="drilldown">none</option> <option name="percentagesRow">false</option> <option name="rowNumbers">false</option> <option name="totalsRow">false</option> <option name="wrap">true</option> <format type="color" field="FunctionFailed"> <colorPalette type="list">[#118832,#D41F1F]</colorPalette> <scale type="threshold">1</scale> </format> </table> </panel> </row> </form> <!--NeedCopy-->