Session Recording

SIEM-Integration von Drittanbietern

Übersicht

Die Sitzungsaufzeichnung bietet die Möglichkeit, verschiedene Ereignisse in aufgezeichneten Sitzungen festzuhalten. Sie können einen ausgewählten Satz der Ereignisdaten in den Sitzungsaufzeichnungsdienst hochladen und ihn zur weiteren Analyse an ein SIEM-System (Security Information and Event Management) eines Drittanbieters weiterleiten. Derzeit unterstützt der Sitzungsaufzeichnungsdienst die Integration mit Splunk (sowohl Splunk Cloud als auch Splunk Enterprise) und Microsoft Sentinel.

Durch die Integration mit einer SIEM-Plattform eines Drittanbieters verbessern Sie die Sicherheitslage Ihres Unternehmens durch die Nutzung erweiterter Analyse- und Korrelationsfeatures, um potenzielle Bedrohungen effektiver zu erkennen und darauf zu reagieren.

Konfiguration

  1. Aktivieren Sie die SIEM-Integration.

    1. Wählen Sie Konfiguration > SIEM-Integration aus der linken Navigation des Sitzungsaufzeichnungsdienstes.

      SIEM-Integration

    2. 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 Zielsites als Quelle der zu sendenden Daten aus. Für die SIEM-Integration werden nur Sites mit der Sitzungsaufzeichnungsversion 2411 und höher unterstützt.

      Microsoft Sentinel-Ziel

      Microsoft Sentinel-Datenquelle

      Um Daten an Splunk zu senden, richten Sie in Splunk einen HTTP-Event-Collector ein. Anweisungen finden Sie in der Splunk-Dokumentation: Einrichten und Verwenden des HTTP Event Collector in Splunk Web. Der Sitzungsaufzeichnungsdienst unterstützt sowohl Splunk Cloud als auch Splunk Enterprise. Wenn Sie Splunk Enterprise verwenden, stellen Sie sicher, dass die eingehende Verbindung vom Sitzungsaufzeichnungsdienst (derzeit auf Microsoft Azure gehostet) zu Ihrem Splunk Enterprise konfiguriert ist.

      Geben Sie die URL und den Token-Wert an und geben Sie neben dem Quelltyp und der Quelle den Index an, in dem die Daten gespeichert werden sollen. Wählen Sie dann ähnlich wie bei Microsoft Sentinel die Zielsites als Quelle der zu sendenden Daten aus. Für die SIEM-Integration werden nur Sites mit der Sitzungsaufzeichnungsversion 2411 und höher unterstützt.

      Splunk-Ziel

      Splunk-Datenquelle

  2. Geben Sie die weiterzuleitenden Ereignisse an.

    Sie müssen die Ereignistypen angeben, die zum Sitzungsaufzeichnungsdienst hochgeladen und an die zuvor angegebenen SIEM-Plattformen weitergeleitet werden sollen. Führen Sie hierzu die folgenden Schritte aus:

    1. Gehen Sie zu Site-Einstellungen für jede der Sites, die Sie zuvor als Datenquelle ausgewählt haben. Beispiel:

      Ereignisdatenanalyse

    2. Wählen Sie Ereignisdaten zum Sitzungsaufzeichnungsdienst hochladen und wählen Sie dann Datenexport zu SIEM-Plattformen aktivieren. Geben Sie im Abschnitt Bereich die Arten der weiterzuleitenden Ereignisse an. Beispiel:

      Angeben von weiterzuleitenden Ereignissen

  3. Testen Sie die Integration.

    Testen Sie die Integration nach der Konfiguration, um sicherzustellen, dass Ereignisse korrekt an die angegebenen SIEM-Plattformen weitergeleitet werden.

  4. Überwachen und anpassen.

    Überwachen Sie die Integration kontinuierlich, um sicherzustellen, dass sie wie erwartet funktioniert. Passen Sie die Konfiguration nach Bedarf an, um die Ereignisweiterleitung zu optimieren und die Genauigkeit der Warnungen zu verbessern.

  5. Visualisieren Sie Ereignisdaten.

    Sie können Ereignisdaten in Microsoft Sentinel und Splunk visualisieren. Nachfolgend sind Beispielansichten aufgeführt:

    Microsoft Sentinel-Dashboard

    Splunk-Dashboard

    Um Ereignisdaten in Microsoft Sentinel zu visualisieren, wenden Sie sich an den technischen Support von Citrix.

    Um Ereignisdaten schnell in Splunk zu importieren und zu visualisieren, verwenden Sie die folgende Dashboard-Vorlage, indem Sie die Suchanfragen wie ,und `` sowie die 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>
SIEM-Integration von Drittanbietern