Sie können die NetScaler-Konsole mit Microsoft Sentinel integrieren, um die folgenden Analysen von der NetScaler-Konsole nach Microsoft Sentinel zu exportieren:
Microsoft Sentinel bietet eine zentralisierte Datenerfassung, die Daten aus verschiedenen Quellen wie Anwendungen, Servern usw. sammelt. Als Administrator können Sie Daten anzeigen und Entscheidungen treffen, nachdem die Erkenntnisse oder Verstöße in Microsoft Sentinel gemeldet wurden.
Stellen Sie für eine erfolgreiche Integration sicher, dass Sie über ein aktives Azure-Abonnement verfügen, und befolgen Sie dann die Anweisungen in den einzelnen Abschnitten:
Zum Speichern und Analysieren der gesammelten Daten ist ein Log Analytics-Arbeitsbereich erforderlich.
Melden Sie sich bei Azure an.
Klicken Sie auf Ressource erstellen.
Geben Sie in der Suchleiste „Log Analytics Workspace“ ein und klicken Sie auf Erstellen unter Log Analytics Workspace.
Klicken Sie auf der Hauptseite des Log Analytics-Arbeitsbereichs auf Erstellen.
Im Log Analytics-Arbeitsbereich erstellen:
Wählen Sie das aktive Abonnement und die Ressourcengruppe aus.
Notiz:
Sie können auch auf „Neu erstellen“ klicken, um eine Ressourcengruppe hinzuzufügen, wenn Sie über die entsprechende Berechtigung verfügen.
Geben Sie einen Namen Ihrer Wahl an.
Wählen Sie Ihre Region aus der Liste aus.
Klicken Sie auf Überprüfen + Erstellen.
Es wird die Meldung „Validierung erfolgreich“ angezeigt. Klicken Sie auf Erstellen , um den Arbeitsbereich bereitzustellen.
Sie können die Meldung „Bereitstellung läuft“ sehen. Wenn die Meldung „Bereitstellung abgeschlossen“ angezeigt wird, klicken Sie auf Gehe zu Ressource.
Der Arbeitsbereich wurde erfolgreich erstellt.
Sie müssen eine mit Ihrem Azure-Abonnement verknüpfte Entra-Anwendung erstellen, um im Namen von Log Analytics Workspace zu kommunizieren. Nachdem Sie die Anwendung erstellt haben, müssen Sie auch die Berechtigung mit der Rolle „ Microsoft Sentinel Contributor “ erteilen. Die Anwendung stellt auch Details bereit, wie z. B. Client-ID, Tenant-IDund Client-Geheimnis. Wir empfehlen Ihnen, sich diese Angaben zu notieren. Diese Angaben werden benötigt, wenn Sie in der NetScaler-Konsole ein Abonnement erstellen, um den Integrationsprozess abzuschließen.
Geben Sie in Ihrem Azure-Portal das Schlüsselwort in die Suchleiste ein.
Klicken Sie auf Microsoft Entra ID.
Klicken Sie auf Hinzufügen und wählen Sie App-Registrierungaus.
Geben Sie einen Namen für die App an, wählen Sie die Standardoption unter Unterstützte Kontotypenund klicken Sie dann auf Registrieren.
Nachdem Sie die Anwendung registriert haben:
Notieren Sie sich Client-ID und Tenant-ID.
Erstellen Sie eine geheime ID für Ihre Anwendung. Klicken Sie auf Zertifikate & Geheimnisse und unter Clientgeheimnisseauf Neues Clientgeheimnis. Geben Sie eine Beschreibung und Gültigkeit ein und klicken Sie dann auf Hinzufügen , um eine geheime ID für Ihre Anwendung zu erstellen.
Die Details werden Ihnen zu Ihrer Bewerbung angezeigt. Stellen Sie sicher, dass Sie sich die unter Wert angezeigte ID unmittelbar nach der Erstellung des Geheimnisses notieren. Dieser Wert wird ausgeblendet, wenn Sie zu einer anderen GUI-Option navigieren.
Microsoft Entra ID-Protokolle bieten umfassende Informationen zu Benutzern, Anwendungen und Netzwerken, die auf Ihren Entra-Mandanten zugreifen. Weitere Informationen finden Sie unter Senden von Daten an Microsoft Sentinel mithilfe des Microsoft Entra ID-Datenconnectors.
Sie müssen einen Endpunkt zur Datenerfassung erstellen, um die Endpunkt-URL zu erhalten. Dies ist erforderlich, wenn Sie ein Abonnement in der NetScaler-Konsole erstellen.
Wählen Sie in Ihrem Azure-Portal unter Azure-Dienstedie Option Datensammlungsendpunkte aus oder geben Sie das Schlüsselwort in die Suchleiste ein.
Klicken Sie auf der Seite Datenerfassungsendpunkte auf Erstellen.
In Datenerfassungsendpunkterstellen:
Geben Sie einen Endpunktnamen Ihrer Wahl an
Wählen Sie das Abonnement , die Ressourcengruppeund die Region **aus.
Klicken Sie auf Überprüfen + Erstellen.
Wenn die Meldung „Validierung erfolgreich“ angezeigt wird, klicken Sie auf Erstellen.
Sie müssen sich die Endpunkt-URL notieren. Wählen Sie auf der Hauptseite des Datenerfassungsendpunkts den erstellten Endpunkt aus, klicken Sie auf JSON-Ansichtund notieren Sie sich die Endpunkt-ID.
Sie müssen eine Tabelle erstellen und die JSON-Informationen für jede Erkenntnis angeben, die Sie von der NetScaler-Konsole nach Microsoft Sentinel exportieren möchten. Sie können sich auf die folgenden Details zu den Tabellenanforderungen für jede Erkenntnis beziehen:
Einblicke | Gesamtzahl der benötigten Tabellen |
---|---|
SSL-Einblicke | 3 |
WAF | 1 |
Bot | 1 |
Gateway-Einblicke | 5 |
Veranstaltungen | 1 |
Metriken | 1 |
Überwachungsprotokolle | 1 |
Sie können maximal 10 Tabellen für jede Datenerfassungsregel (DCR) erstellen. Bei mehr als 10 Tabellen müssen Sie einen weiteren DCR erstellen.
Navigieren Sie im Azure-Portal zu Ihrem Arbeitsbereich und klicken Sie unter Einstellungenauf Tabellen .
Klicken Sie auf Erstellen und wählen Sie Neues benutzerdefiniertes Protokoll (DCR-basiert)
Erstellen Sie in ein benutzerdefiniertes Protokoll:
Geben Sie einen Tabellennamen an. Der Tabellenname muss das Format console_insightnamehaben. Zum Beispiel: console_ns_sslvserver, console_ns_ssl_certkey. Sie können sich auf Schritt 4 beziehen, um die für jede Erkenntnis geltenden Tabellennamen zu erhalten.
Geben Sie eine Beschreibung ein, um weitere Informationen zum Tabellennamen hinzuzufügen. Dies ist optional.
Erstellen Sie eine neue Datenerfassungsregel und fügen Sie sie hinzu.
Wählen Sie den Endpunkt der Datenerfassung aus der Liste aus.
Klicken Sie auf Weiter.
Auf der Registerkarte „ Schema und Transformation “ müssen Sie die JSON-Beispielprotokolle für die Erkenntnisse hochladen, die Sie exportieren möchten. Sie können für jede Erkenntnis das folgende Beispiel-JSON verwenden und eine JSON-Datei zum Hochladen erstellen:
Einblicke | JSON | Zu verwendender Tabellenname |
---|---|---|
SSL (1) | {"id": "3eb05733-c326-493c-9aa0-f7db3a6b4277", "ns_ip_address": "10.106.186.141", "name": "zeta_192_168_110_250", "vsvr_ip_address": "", "vsvr_port": -1, "vsvr_type": "", "state": "", "partition_name": "", "display_name": "10.106.186.141", "poll_time": 1716539986, "managed": "f", "ssl2": "f", "ssl3": "t", "tls10": "t", "tls11": "t", "tls12": "t", "dh": "f", "ersa": "t", "sslprofile": "", "tls13": "f", "dhkeyexpsizelimit": "DEAKTIVIERT", "pushenctriggertimeout": 1, "sessionticket": "", "includesubdomains": "f", "sessionticketkeyrefresh": "", "ssllogprofile": "", "serverauth": "", "ssltriggertimeout": 100, "ersacount": 0, "strictcachecks": "NEIN", "dhfile": "", "sessreuse": "AKTIVIERT", "redirectportrewrite": "DEAKTIVIERT", "skipclientcertpolicycheck": "", "tls13sessionticketsperauthcontext": 1, "cipherredirect": "DEAKTIVIERT", "dropreqwithnohostheader": "NEIN", "sessionticketlifetime": -1, "maxage": 0, "pushenctrigger": "Immer", "strictsigdigestcheck": "f", "sslredirect": "DEAKTIVIERT", "sessionkeylifetime": -1, "alpnprotocol": "", "clientauthuseboundcachain": "", "sesstimeout": 120, "clientcert": "", "snihttphostmatch": "CERT", "preload": "NEIN", "prevsessionkeylifetime": -1, "sessionticketkeydata": "", "encrypttriggerpktcount": 45, "cleartextport": "", "ssliocspcheck": "", "hsts": "f", "sslinterception": "", "commonname": "", "sslireneg": "", "ocspstapling": "DEAKTIVIERT", "quantumsize": 8192, "insertionencoding": "Unicode", "sslimaxsessperserver": -1, "cipherurl": "", "pushflag": 0, "zerorttearlydata": "DEAKTIVIERT", "allowextendedmastersecret": "", "dhekeyexchangewithpsk": "NEIN", "clientauth": "DEAKTIVIERT", "denysslreneg": "NICHT SICHER", "sendclosenotify": "JA", "dhcount": 0, "snienable": "DEAKTIVIERT", "table_name": "ns_sslvserver"} |
console_ns_sslvserver |
SSL (2) | {"id": "a6673ab2-0b59-47b9-b530-bc30fb2b937c", "ssl_certificate": "/nsconfig/ssl/ca-cert.pem", "ssl_key": "/nsconfig/ssl/ca-key.pem", "certkeypair_name": "athul-ca", "cert_format": "PEM", "days_to_expiry": 281, "ns_ip_address": "10.106.186.141", "status": "Gültig", "device_name": "10.106.186.141", "file_location_path": "", "certificate_data": "", "key_data": "", "poll_time": 1717434335, "no_domain_check": "f", "version": 3, "Seriennummer": "7B34B6A6A1A79E0FF168242D7BCFF78F04C9EE66", "Signaturalgorithmus": "sha256WithRSAEncryption", "Aussteller": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "Gültig ab": "12. März 08:51:11 2024 GMT", "Gültig bis": "12. März 08:51:11 2025 GMT", "Betreff": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "Public_Key_Algorithmus": "rsaEncryption", "Public_Key_Größe": 4096, "Anzahl gebundener Entitäten": 0, "Partitionsname": "", "Anzeigename": "10.106.186.141", "Hostname": "athulsadc", "Schlüsselname": "", "Subjaltname": "", "verwaltet von": "", "Zertifikat-DN": "", "Linkcertkeyname": "", "Tabellenname": "ns_ssl_certkey"} |
console_ns_ssl_certkey |
WAF | [{"ip_address": "10.106.185.156", "ctnsappname": "vserver_1", "severity": 2, "violation_type": 19, "violation_type_desc": "Start-URL", "block_flags": 1, "transformed_flags": 0, "not_blocked_flags": 0, "country_code": "-NA-", "region_code": "-NA-", "city": "-NA-", "latitude": 200.0, "longitude": 200.0, "signature_category": "", "attack_category": 2, "attack_category_desc": "Beschädigte Authentifizierung und Sitzungsverwaltung", "total_attacks": 1, "rpt_sample_time": 1704783773, "source_ip_address": 174766492, "attack_time": 1704783538, "Profilname": "appfw_cs_lb_prof", "Sitzungs-ID": "", "http_req_url": "https://10.106.192.54/csrf_ffc/ffc.html?field10=asfasd", "Verletzungsname": "-NA-", "Verletzungswert": "-NA-", "Verletzungsstandort": 4, "Verletzungsbedrohungsindex": 5, "App-Threat-Index": 5, "http_Methode": 0, "Verletzungsaktion": 3, "Verletzungsaktion_desc": "Blockiert", "Schweregrad": 2, "Schweregrad_Typ_desc": "Mittel", "iprep_Score": 0, "iprep_Kategorie": 0, "Zählerwert": 0, "App-Name": "vserver_1_10.106.185.156_lb", "violation_category": 12, "violation_category_desc": "Start-URL", "source_ipv6_address": "", "true_client_ip": "\\N", "backend_vserver": "", "backend_appname": "", "transactionId": "0", "table_name": "af_threat_exporter_data_l2"}] |
console_af_threat_exporter_data_l2 |
Bot | {"ip_address": "10.106.186.122", "ctnsappname": "secure_gateway", "bot_type": "2", "bot_type_desc": "Schlecht", "action_type": "6", "action_type_desc": "Protokoll", "country_code": "0.0", "region_code": "0.0", "city": "0.0", "bot_severity": "0", "bot_severity_desc": "Kritisch", "latitude": "0", "longitude": "0", "bot_detection_mechanism": "6", "bot_detection_mechanism_desc": "BlackList", "bot_category": "0", "bot_category_desc": "Nicht kategorisiert", "source_ip_address": "174758625", "bot_signature_category": "Benutzerdefinierter Richtlinienausdruck", "appname": "secure_gateway_10.106.186.122_lb", "backend_vserver": "", "backend_appname": "", "total_attacks": "2", "rpt_sample_time": "1718783216", "table_name": "af_bot_attack_details_l2"} |
console_af_bot_attack_details_l2 |
Gateway-Einblick (1) | {"adc_ip_address": "10.106.186.141", "auth_server": "", "client_ip": 174766732, "epa_method_type": 0, "error_count": 14, "error_details": "Ungültige Anmeldeinformationen übergeben", "error_type": 1, "gateway_name": "vpn_vserver_142_6", "req_url": "", "resource": "", "rpt_sample_time": 1713505215, "sso_method_type": 0, "sta_ip": "", "table_name": "af_vpn_error_details", "username": "John"} |
console_af_vpn_error_details |
Gateway-Einblick (2) | {"adc_ip_address": "10.102.71.166", "display_name": "10.102.71.166", "gateway_name": "firsthop", "ip_address": "10.102.71.168", "rpt_sample_time": "1718812158", "state": "Up", "table_name": "ns_vpnvserver"} |
console_ns_vpnvserver |
Gateway-Einblick (3) | {"adc_ip_address": "10.106.186.141", "gateway_name": "vpn_vserver_141_7", "rpt_sample_time": 1702011308, "sessions": 1, "table_name": "af_vpn_session_details", "users": 1} |
console_af_vpn_session_details |
Gateway-Einblick (4) | {"active_sessions": 59, "active_users": 1, "adc_ip_address": "10.106.186.136", "gateway_name": "vpnathul2", "rpt_sample_time": 1698919848, "table_name": "af_vpn_active_session_1"} |
console_af_vpn_active_session_1 |
Gateway-Einblick (5) | {"adc_ip_address": "10.106.186.136", "entity_type": 3, "gateway_name": "vpnathul2", "hits": 3, "rpt_sample_time": 1698052438, "table_name": "af_vpn_error_reports"} |
console_af_vpn_error_reports |
Veranstaltungen | {"rpt_sample_time": -1, "category": "HealthMonitoring", "entity": "10.106.186.148:HealthMonitoring:System Disk Usage", "counter_threshold_value": "", "id": "0f2607cf-f97d-4f71-9162-11e580262e93", "timestamp": 1712927472, "message": "Festplattenauslastung hoch: 63,24 %", "severity": "Kritisch", "user_name": "", "device_entity_type": "", "device_type": "", "counter_actual_value": "", "cmd_auth_status": "", "source": "10.106.186.148", "history": "Update Time= Fri, 12 Apr 2024 06:32:49 UTC, Vorheriger Schweregrad = Kritisch, Neuer Schweregrad = Kritisch, Quelle = 10.106.186.148\nAktualisierungszeit = Fr., 12. April 2024 06:27:46 UTC, Vorheriger Schweregrad = Kritisch, Neuer Schweregrad = Kritisch, Quelle = 10.106.186.148\nAktualisierungszeit = Fr., 12. April 2024 06:22:44 UTC, Vorheriger Schweregrad = Kritisch, Neuer Schweregrad = Kritisch, Quelle = 10.106.186.148\nAktualisierungszeit = Fr., 12. April 2024 06:17:41 UTC, Vorheriger Schweregrad = Kritisch, Neuer Schweregrad = Kritisch, Quelle = 10.106.186.148\nAktualisierungszeit= Fr, 12. Apr. 2024 06:12:38 UTC , Vorheriger Schweregrad= Kritisch , Neuer Schweregrad= Kritisch, Quelle= 10.106.186.148\nAktualisierungszeit= Fr, 12. Apr. 2024 06:07:36 U", "config_cmd": "", "failureobj": "System Disk Usage", "operation_type": "undefined", "device_entity_name": "", "cmd_exec_status": "", "device_family": "", "source_event_id": -1, "source_system_ip": "10.106.186.148", "trap_id": 35, "table_name": "event"} |
Konsolenereignis |
Metriken | {"memory_free": 28830060544.0, "disk_used": 81248694272.0, "disk_free": 29632114688.0, "node_type": "", "memory_total": 34355544064.0, "cpu_usage": 0.49, "disk_total": 120522616832.0, "disk_usage": 73.28, "node_id": "", "id": "1be15a09-d078-469c-868a-bfbfcffe5ef1", "disk_total_capacity": 0.0, "page_size": 4096.0, "memory_usage": 16.08, "table_name": "mps_health"} |
console_mps_health |
Überwachungsprotokolle | {"system_gmt_time":1721868291, "source":"XXXX", "severity":"INFO", "module":"DEVICECONFIG", "event_type":"CMD_EXECUTED", "message":"Beispielnachricht", "instance_ip":"XXXX", "app_name":""} |
console_syslog_messages |
Nach dem Hochladen des JSON können Sie die folgenden Details anzeigen:
Klicken Sie auf Transformationseditor, geben Sie die folgende Abfrage ein, die für die entsprechende Erkenntnis gilt, und klicken Sie auf Ausführen , um die Daten ab der Abfragezeit in der NetScaler-Konsole zu akzeptieren.
SSL - Quelle | Erweitern Sie TimeGenerated = todatetime(Umfragezeit) | Projektumbenennung sslvserver_id = ID
WAF und Bot - Quelle | erweitern TimeGenerated = todatetime(rpt_sample_time)
Gateway Insight - Quelle | erweitern TimeGenerated = todatetime(rpt_sample_time)
Klicken Sie auf Weiter und klicken Sie zum Abschließen auf Erstellen .
Navigieren Sie zu Datenerfassungsregelnund klicken Sie auf die DCR, die Sie erstellt haben.
Klicken Sie unter Konfigurationauf Datenquellen , um die erstellte Tabelle anzuzeigen.
Die DCR (Datenerfassungsregel) erfordert Zugriff auf die Rolle „ Monitoring Metrics Publisher “.
Navigieren Sie zu Ihrem DCR, auf den Sie über Ihr Azure-Portal unter Recentszugreifen können.
Klicken Sie auf Ihrer DCR-Seite auf Zugriffskontrolle (IAM) und klicken Sie auf Rollenzuweisung hinzufügen.
Geben Sie in der Suchleiste das Schlüsselwort „Monitor“ ein, um „ Monitoring Metrics Publisher “ auszuwählen, und klicken Sie auf „ Weiter“.
Klicken Sie auf der Registerkarte „ Mitglieder “ auf „ Mitglieder auswählen “ und wählen Sie die von Ihnen erstellte Entra-App aus.
Klicken Sie auf Überprüfen +zuweisen.
Sie müssen sich die ID der Datenerfassungsregeln notieren. Navigieren Sie zur Seite „Regeln zur Datenerfassung“, wählen Sie Ihren DCR aus und klicken Sie auf die JSON-Ansicht, um sich die ID zu notieren.
Sie haben jetzt alles bereit. Der letzte Schritt besteht darin, die NetScaler-Konsole zu konfigurieren, indem Sie ein Abonnement erstellen und die erforderlichen Details hinzufügen. Um ein Abonnement in der NetScaler-Konsole zu erstellen, benötigen Sie die folgenden Angaben, die Sie notiert haben:
Melden Sie sich bei der NetScaler-Konsole an.
Navigieren Sie zu Einstellungen > Observability-Integration.
Klicken Sie auf der Seite Integrationen auf Hinzufügen.
Geben Sie auf der Seite „ Abonnement erstellen “ die folgenden Details an:
Geben Sie im Feld „Abonnementname“ einen Namen Ihrer Wahl ein.
Wählen Sie NetScaler-Konsole als Quelle und klicken Sie auf Weiter.
Wählen Sie Microsoft Sentinel und klicken Sie auf Konfigurieren. Geben Sie auf der Seite Endpunkt konfigurieren alle Details ein und klicken Sie auf Senden.
Klicken Sie auf Weiter.
Klicken Sie auf Erkenntnisse hinzufügen und wählen Sie auf der Registerkarte Funktion auswählen je nach den Tabellen, die Sie in Microsoft Azure hinzugefügt haben, die Funktionen aus, die Sie exportieren möchten, und klicken Sie auf Auswahl hinzufügenund klicken Sie auf Weiter.
Auf der Registerkarte Instanz auswählen können Sie entweder Alle Instanzen auswählen oder Benutzerdefiniert auswählenauswählen und dann auf Weiterklicken.
Alle Instanzen auswählen – Exportiert Daten aus allen NetScaler-Instanzen nach Microsoft Sentinel.
Benutzerdefinierte Auswahl – Ermöglicht Ihnen, die NetScaler-Instanzen aus der Liste auszuwählen. Wenn Sie bestimmte Instanzen aus der Liste auswählen, werden die Daten nur aus den ausgewählten NetScaler-Instanzen nach Microsoft Sentinel exportiert.
Klicken Sie auf Senden.
Nachdem Sie alles konfiguriert haben, empfehlen wir Ihnen, 30 Minuten zu warten, um Details in Microsoft Azure anzuzeigen.
Navigieren Sie in Ihrem Azure-Portal zu Ihrem Log Analytics-Arbeitsbereich.
Klicken Sie auf Logs, geben Sie den Tabellennamen ein und klicken Sie auf Run , um die Ergebnisse anzuzeigen.
Sie können auch Fehler beheben und die Protokolle zum Überprüfen der Konfigurationen verwenden. Verwenden Sie beispielsweise die Option „Jetzt abfragen“ in der NetScaler-Konsolen-GUI für die konfigurierte Einsicht und:
Verwenden Sie den folgenden Befehl, um Protokolle anzuzeigen:
tail -f /var/mps/log/nbs/nbs_api.log
Die folgenden Beispiele helfen Ihnen bei der Analyse der möglichen Fehler zur Fehlerbehebung:
Dieses Protokoll zeigt an, dass Sie in der NetScaler-Konsole eine ungültige Client-ID für das Microsoft Sentinel-Abonnement angegeben haben (Einstellungen > Observability-Integrationen).
Problemumgehung: Stellen Sie sicher, dass Sie die richtige Client-ID kopiert haben, und bearbeiten Sie das Abonnement, indem Sie die richtige Client-ID angeben. Weitere Informationen finden Sie unter Erstellen einer Microsoft Entra-Anwendung.
Dieses Protokoll zeigt an, dass Sie die erforderliche SSL_Certkey-Tabelle in Ihrem Microsoft Azure nicht konfiguriert haben.
Problemumgehung: Konfigurieren Sie eine Tabelle für ssl_certkey in Microsoft Azure. Weitere Informationen finden Sie unter Erstellen von Tabellen zum Exportieren von Daten.