ms-sentinel-mcp-server

by dstreefkerk
MIT License
1
  • Linux

Integrations

  • Supports environment variable configuration for authentication and server settings through .env files, allowing secure storage of Azure credentials and server configuration.

  • Enables access to source control information for Sentinel resources, including listing and viewing repository details for security content managed through source control.

  • Referenced as the repository hosting location for the MCP server, allowing users to clone and install the server from GitHub.

Microsoft Sentinel MCP Server

Ein Model Context Protocol (MCP)-Server für Microsoft Sentinel. Dieser Server ermöglicht schreibgeschützten Zugriff auf eine Microsoft Sentinel-Instanz, einschließlich erweiterter Abfragen, Vorfallanzeige und Ressourcenerkundung für Azure Sentinel-Umgebungen. Er bietet eine modulare und erweiterbare Plattform für reine Beobachtungssicherheitsvorgänge und -analysen.


⚠️ WICHTIGER SICHERHEITSHINWEIS ⚠️

NUR TESTUMGEBUNGEN : Dieser Microsoft Sentinel MCP-Server unterstützt nur schreibgeschützte Vorgänge und ist ausschließlich für TEST-Umgebungen vorgesehen. Er ist nicht für die Verbindung mit Sentinel-Produktionsinstanzen vorgesehen.

DATENSCHUTZHINWEIS : Durch die Verbindung dieses Servers mit einer Microsoft Entra ID (Azure AD)- oder Sentinel-Produktionsumgebung können vertrauliche Benutzer- und Verzeichnisdaten gegenüber LLM-Betreibern oder öffentlichen LLMs offengelegt werden. Nur mit Nicht-Produktions-/Testmandanten oder einem privaten LLM mit MCP-Unterstützung verwenden.

SICHERHEITSHINWEIS : Das Verbinden einer Microsoft Sentinel-Produktionsinstanz mit einem öffentlichen LLM birgt erhebliche Datenschutz- und Sicherheitsrisiken. Verwenden Sie für Produktionssicherheitsvorgänge nur private, sichere Umgebungen.


✨ Funktionen

  • KQL-Abfrageausführung : Ausführen und Validieren von KQL-Abfragen, Testen mit simulierten Daten
  • Log Analytics-Verwaltung : Arbeitsbereichsinformationen, Tabellenlisten und Schemata
  • Sicherheitsvorfälle : Auflisten und Anzeigen detaillierter Vorfallinformationen
  • Analytics-Regeln : Auflisten, Anzeigen und Analysieren mit MITRE-Taktiken/-Techniken
  • Regelvorlagen : Zugriff auf und Analyse von Vorlagen über das MITRE-Framework
  • Suchabfragen : Auflisten, Details anzeigen und nach Taktik analysieren
  • Datenkonnektoren : Konnektordetails auflisten und anzeigen
  • Beobachtungslisten : Verwalten Sie Beobachtungslisten und deren Elemente
  • Bedrohungsinformationen : Domänen-WHOIS und IP-Geolokalisierungssuche
  • Metadaten und Quellcodeverwaltung : Repository-Details auflisten und anzeigen
  • ML Analytics : Zugriff auf ML Analytics-Einstellungen
  • Autorisierung : RBAC-Rollenzuweisungen anzeigen
  • Entra ID-Benutzer und -Gruppen : Zeigen Sie Benutzer- und Gruppendetails von Microsoft Entra ID an

🚀 Schnellstart

1. Authentifizieren mit Azure CLI

Bevor Sie den MCP-Server verwenden, müssen Sie sich bei Azure mit einem Konto authentifiziert haben, das Zugriff auf einen Microsoft Sentinel-Arbeitsbereich hat:

az login

2. Klonen Sie das Repository

git clone https://github.com/dstreefkerk/ms-sentinel-mcp-server.git cd ms-sentinel-mcp-server

3. Installation mit PowerShell-Skript (empfohlen)

Verwenden Sie das bereitgestellte PowerShell-Installationsskript, um den MCP-Server einzurichten:

# Run from the repository root directory .\install.ps1

Das Skript wird:

  • Überprüfen Sie, ob eine Python-Installation vorhanden ist.
  • Erstellen Sie eine virtuelle Umgebung und installieren Sie Abhängigkeiten
  • Generieren Sie eine Claude Desktop-Konfigurationsdatei
  • Kopieren Sie die Konfiguration in Ihre Zwischenablage

Nachdem Sie das Skript ausgeführt haben, können Sie die Konfiguration direkt in Ihren MCP-Client (Claude Desktop, Cursor usw.) einfügen.

4. Verwenden Sie den MCP-Server

Der MCP-Server ist einsatzbereit, nachdem Sie Ihre MCP-Clientkonfiguration mit den relevanten Arbeitsbereichsinformationen konfiguriert haben.

Denken Sie daran, dass Sie AZURE_CLIENT_ID und AZURE_CLIENT_SECRET aus Ihrer MCP-Clientkonfiguration entfernen müssen, wenn Sie die Azure CLI-Authentifizierung verwenden.


🧰 Werkzeugreferenz

Nachfolgend sind die verfügbaren Tools aufgeführt. Die vollständige Dokumentation finden Sie im Verzeichnis resources/tool_docs/ . Toolnamen und -beschreibungen werden mit der Tool-Registrierung des MCP-Servers synchronisiert, sodass der MCP-Client sie abrufen kann.

WerkzeugKategorieBeschreibung
entra_id_list_usersEntra-IDAlle Benutzer in Microsoft Entra ID (Azure AD) auflisten
entra_id_get_userEntra-IDHolen Sie sich einen Benutzer per UPN oder Objekt-ID von der Entra-ID
entra_id_list_groupsEntra-IDAlle Gruppen in Microsoft Entra ID (Azure AD) auflisten
entra_id_get_groupEntra-IDHolen Sie sich eine Gruppierung nach Objekt-ID von der Entra-ID
sentinel_logs_searchKQLAusführen einer KQL-Abfrage für Azure Monitor-Protokolle
sentinel_query_validateKQLLokale Validierung der KQL-Abfragesyntax
sentinel_logs_search_with_dummy_dataKQLTesten einer KQL-Abfrage mit simulierten Daten
sentinel_logs_tables_listProtokollanalyseAuflisten der verfügbaren Tabellen im Log Analytics-Arbeitsbereich
sentinel_logs_table_details_getProtokollanalyseAbrufen von Details zu einer Log Analytics-Tabelle
sentinel_logs_table_schema_getProtokollanalyseAbrufen des Schemas für eine Log Analytics-Tabelle
sentinel_workspace_getProtokollanalyseAbrufen von Arbeitsbereichsinformationen
sentinel_incident_details_getVorfälleErhalten Sie detaillierte Informationen zu einem bestimmten Sentinel-Vorfall
sentinel_incident_listVorfälleAuflisten von Sicherheitsvorfällen in Microsoft Sentinel
sentinel_analytics_rule_listAnalytics-RegelnAlle Analyseregeln mit Schlüsselfeldern auflisten
sentinel_analytics_rule_getAnalytics-RegelnAbrufen von Details zu einer bestimmten Analyseregel
sentinel_analytics_rules_count_by_tacticAnalytics-RegelnZählen Sie Sentinel-Analyseregeln nach Taktik
sentinel_analytics_rules_count_by_techniqueAnalytics-RegelnCount Sentinel-Analyseregeln mit der MITRE-Technik
sentinel_analytics_rule_templates_listRegelvorlagenAlle Sentinel-Analyseregelvorlagen auflisten
sentinel_analytics_rule_template_getRegelvorlagenAbrufen einer spezifischen Sentinel-Analyseregelvorlage
sentinel_analytics_rule_templates_count_by_tacticRegelvorlagenZählen Sie Sentinel-Analyseregelvorlagen nach Taktik
sentinel_analytics_rule_templates_count_by_techniqueRegelvorlagenCount Sentinel Analytics-Regelvorlagen mit der MITRE-Technik
sentinel_hunting_queries_listJagdListen Sie alle Sentinel-Hunting-Abfragen mit optionaler Filterung auf
sentinel_hunting_query_getJagdErhalten Sie alle Details einer Sentinel-Hunting-Abfrage nach Name oder ID
sentinel_hunting_queries_count_by_tacticJagdZählen Sie Sentinel-Jagdabfragen nach Taktik
sentinel_connectors_listDatenkonnektorenDatenkonnektoren auflisten
sentinel_connectors_getDatenkonnektorenAbrufen eines bestimmten Datenconnectors anhand der ID
sentinel_watchlists_listBeobachtungslistenAlle Sentinel-Beobachtungslisten auflisten
sentinel_watchlist_getBeobachtungslistenHolen Sie sich eine bestimmte Sentinel-Beobachtungsliste
sentinel_watchlist_items_listBeobachtungslistenAlle Elemente in einer Sentinel-Beobachtungsliste auflisten
sentinel_watchlist_item_getBeobachtungslistenHolen Sie sich ein bestimmtes Element aus einer Sentinel-Beobachtungsliste
sentinel_domain_whois_getBedrohungsinformationenWHOIS-Informationen für eine Domain abrufen
sentinel_ip_geodata_getBedrohungsinformationenAbrufen von Geolokalisierungsdaten für eine IP-Adresse
sentinel_metadata_listMetadatenAlle Sentinel-Metadaten im aktuellen Arbeitsbereich auflisten
sentinel_metadata_getMetadatenAbrufen von Details zu bestimmten Sentinel-Metadaten nach ID
sentinel_source_controls_listQuellcodeverwaltungListen Sie alle Sentinel-Quellcodeverwaltungen im aktuellen Arbeitsbereich auf
sentinel_source_control_getQuellcodeverwaltungAbrufen von Details zu einer bestimmten Sentinel-Quellcodeverwaltung nach ID
sentinel_ml_analytics_settings_listML-AnalyseAlle Sentinel ML-Analyseeinstellungen auflisten
sentinel_ml_analytics_setting_getML-AnalyseAbrufen einer bestimmten Sentinel ML-Analyseeinstellung nach Namen
sentinel_authorization_summaryGenehmigungZusammenfassen der Azure RBAC-Rollenzuweisungen für den Sentinel-Zugriff
log_analytics_saved_searches_listGespeicherte SuchenAuflisten aller gespeicherten Suchvorgänge in einem Log Analytics-Arbeitsbereich
log_analytics_saved_search_getGespeicherte SuchenAbrufen einer bestimmten gespeicherten Suche aus einem Log Analytics-Arbeitsbereich

🛠️ Verwendung

Installation in Claude Desktop oder ähnlichen Umgebungen

Verwenden Sie das bereitgestellte PowerShell-Installationsskript, um den MCP-Server für Claude Desktop oder andere MCP-kompatible Clients einzurichten:

# Run from the repository root directory .\install.ps1

Das Skript wird:

  1. Überprüfen Sie, ob eine Python-Installation vorhanden ist.
  2. Erstellen Sie eine virtuelle Umgebung und installieren Sie Abhängigkeiten
  3. Ausführen der Schritte nach der Installation
  4. Generieren Sie eine Claude Desktop-Konfigurationsdatei
  5. Kopieren Sie die Konfiguration in Ihre Zwischenablage

Nach dem Ausführen des Skripts können Sie die Konfiguration direkt in Ihren MCP-Client (Claude Desktop, Cursor usw.) einfügen. Das Skript generiert eine Claude-kompatible MCP-Serverkonfiguration. Beachten Sie dies, wenn Sie einen anderen MCP-Client verwenden.

Erweiterte Installationsoptionen

Manuelle Umgebungseinrichtung

Wenn Sie die Umgebung lieber manuell einrichten möchten:

  1. Konfigurieren von UmgebungsvariablenKopieren Sie die bereitgestellte Vorlage und geben Sie Ihre Azure-Anmeldeinformationen ein:
    cp .env.example .env # Edit .env and set: # AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID, AZURE_RESOURCE_GROUP, AZURE_WORKSPACE_NAME, AZURE_WORKSPACE_ID
  2. Abhängigkeiten installieren (mit uv)
    uv venv uv pip install -e .
  3. Alternative Server-AusführungsoptionenVerwenden der MCP-CLI:
    mcp run wrapper.py
    Entwicklung und Hot Reload:
    mcp dev wrapper.py
    SSE-Modus (für IDEs):
    python wrapper.py --sse

Inspector-Benutzeroberfläche

Die MCP Inspector-Benutzeroberfläche ist unter http://127.0.0.1:6274 verfügbar, wenn sie im Entwicklermodus ausgeführt wird ( mcp dev wrapper.py ).


🧩 Entwicklung

  • Ressourcen: Fügen Sie Python-Dateien zu resources/ hinzu und implementieren Sie eine register_resources(mcp) -Funktion.
  • Tools: Fügen Sie Python-Dateien zu tools/ hinzu und implementieren Sie eine Funktion register_tools(mcp) . Tools müssen der in docs/tool-architecture-and-implementation-requirements.md definierten Struktur folgen.
  • Eingabeaufforderungen: Fügen Sie prompts/ für LLM-gesteuerte Arbeitsabläufe hinzu.

Alle Komponenten in den Verzeichnissen resources/ , tools/ und prompts/ werden beim Serverstart automatisch erkannt und registriert. Es sind keine manuellen Importe erforderlich.


🔐 Authentifizierung und Umgebungsvariablen

Der MCP-Server unterstützt jede Authentifizierungsmethode, die von DefaultAzureCredential des Azure Python SDK unterstützt wird.

Dienstprinzipalauthentifizierung anstelle der Azure CLI

Richten Sie eine App-Registrierung in Azure ein und weisen Sie die folgenden Rollen zu:

  • Log Analytics Reader
  • Microsoft Sentinel Reader

Wenn Sie mutig sind, können Sie der App-Registrierung auch die folgenden Microsoft Graph-Berechtigungen erteilen:

  • User.Read.All
  • Group.Read.All

Verwenden Sie dann die folgenden Umgebungsvariablen in Ihrer .env Datei oder MCP-Serverkonfiguration:

  • AZURE_TENANT_ID
  • AZURE_CLIENT_ID
  • AZURE_CLIENT_SECRET
  • AZURE_SUBSCRIPTION_ID
  • AZURE_RESOURCE_GROUP
  • AZURE_WORKSPACE_NAME
  • AZURE_WORKSPACE_ID

Eine Vorlage finden Sie unter .env.example .

Azure CLI-Authentifizierung

az login

Wenn Sie die Azure CLI-Authentifizierung verwenden, können Sie AZURE_CLIENT_SECRET und AZURE_CLIENT_ID aus Ihrer Konfiguration weglassen.


🐛 Debuggen

Aktivieren Sie den Debug-Modus, indem Sie die Umgebungsvariable MCP_DEBUG_LOG in Ihrer .env Datei auf true setzen:

MCP_DEBUG_LOG=true

Protokolle werden als sentinel_mcp_server.log in Ihr temporäres Verzeichnis geschrieben.


📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.

Related MCP Servers

View all related MCP servers

ID: q516csqe5y