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 서버

Microsoft Sentinel용 모델 컨텍스트 프로토콜 (MCP) 서버입니다. 이 서버는 Azure Sentinel 환경에서 고급 쿼리, 인시던트 보기, 리소스 탐색 등 Microsoft Sentinel 인스턴스에 대한 읽기 전용 액세스를 제공합니다. 관찰 전용 보안 작업 및 분석을 위한 모듈식 확장 가능 플랫폼을 제공합니다.


⚠️ 중요 보안 공지 ⚠️

테스트 환경 전용 : 이 Microsoft Sentinel MCP 서버는 읽기 전용 작업만 지원하며 테스트 환경 전용입니다. 프로덕션 Sentinel 인스턴스에 연결하도록 설계되지 않았습니다.

개인정보 보호 경고 : 이 서버를 프로덕션 Microsoft Entra ID(Azure AD) 또는 Sentinel 환경에 연결하면 민감한 사용자 및 디렉터리 데이터가 LLM 운영자 또는 공개 LLM에 노출될 수 있습니다. 프로덕션/테스트용이 아닌 테넌트 또는 MCP를 지원하는 비공개 LLM에만 사용하세요.

보안 경고 : 프로덕션 Microsoft Sentinel 인스턴스를 퍼블릭 LLM에 연결하면 심각한 개인 정보 보호 및 보안 위험이 발생할 수 있습니다. 프로덕션 보안 작업에는 비공개 보안 환경만 사용하십시오.


✨ 특징

  • KQL 쿼리 실행 : KQL 쿼리 실행 및 검증, 모의 데이터로 테스트
  • 로그 분석 관리 : 작업 공간 정보, 테이블 목록 및 스키마
  • 보안 사고 : 자세한 사고 정보를 나열하고 확인하세요
  • 분석 규칙 : MITRE 전략/기술별 목록, 보기 및 분석
  • 규칙 템플릿 : MITRE 프레임워크를 통해 템플릿에 액세스하고 분석합니다.
  • 사냥 쿼리 : 전술별 목록, 세부 정보 보기 및 분석
  • 데이터 커넥터 : 커넥터 세부 정보 나열 및 보기
  • 관심 목록 : 관심 목록 및 해당 항목 관리
  • 위협 인텔리전스 : 도메인 WHOIS 및 IP 지리적 위치 조회
  • 메타데이터 및 소스 제어 : 리포지토리 세부 정보 나열 및 보기
  • ML 분석 : ML 분석 설정에 액세스
  • 권한 부여 : RBAC 역할 할당 보기
  • Entra ID 사용자 및 그룹 : Microsoft Entra ID에서 사용자 및 그룹 세부 정보 보기

🚀 빠른 시작

1. Azure CLI로 인증

MCP 서버를 사용하려면 먼저 Microsoft Sentinel 작업 영역에 액세스할 수 있는 계정으로 Azure에 인증해야 합니다.

지엑스피1

2. 저장소 복제

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

3. PowerShell 스크립트로 설치(권장)

제공된 PowerShell 설치 스크립트를 사용하여 MCP 서버를 설정하세요.

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

스크립트는 다음을 수행합니다.

  • Python 설치 확인
  • 가상 환경을 생성하고 종속성을 설치합니다.
  • Claude Desktop 구성 파일 생성
  • 구성을 클립보드에 복사합니다.

스크립트를 실행한 후 구성을 MCP 클라이언트(Claude Desktop, Cursor 등)에 직접 붙여넣을 수 있습니다.

4. MCP 서버를 사용하세요

관련 작업 공간 정보로 MCP 클라이언트 구성을 구성하면 MCP 서버를 사용할 수 있습니다.

Azure CLI 인증을 사용하는 경우 MCP 클라이언트 구성에서 AZURE_CLIENT_IDAZURE_CLIENT_SECRET 제거해야 한다는 점을 기억하세요.


🧰 도구 참조

사용 가능한 도구는 다음과 같습니다. 전체 설명서는 resources/tool_docs/ 디렉터리를 참조하세요. 도구 이름과 설명은 MCP 서버의 도구 레지스트리와 동기화되어 MCP 클라이언트에서 검색할 수 있습니다.

도구범주설명
entra_id_list_users엔트라 IDMicrosoft Entra ID(Azure AD)의 모든 사용자 나열
entra_id_get_user엔트라 IDEntra ID에서 UPN 또는 개체 ID로 사용자 가져오기
entra_id_list_groups엔트라 IDMicrosoft Entra ID(Azure AD)의 모든 그룹 나열
entra_id_get_group엔트라 IDEntra ID에서 객체 ID로 그룹화 가져오기
sentinel_logs_searchKQLAzure Monitor 로그에 대해 KQL 쿼리 실행
sentinel_query_validateKQL로컬에서 KQL 쿼리 구문 검증
sentinel_logs_search_with_dummy_dataKQL모의 데이터로 KQL 쿼리 테스트
sentinel_logs_tables_list로그 분석Log Analytics 작업 공간에서 사용 가능한 테이블 나열
sentinel_logs_table_details_get로그 분석Log Analytics 테이블에 대한 세부 정보 가져오기
sentinel_logs_table_schema_get로그 분석Log Analytics 테이블에 대한 스키마 가져오기
sentinel_workspace_get로그 분석작업 공간 정보 가져오기
sentinel_incident_details_get사건특정 Sentinel 사건에 대한 자세한 정보를 얻으세요
sentinel_incident_list사건Microsoft Sentinel에서 보안 사고 나열
sentinel_analytics_rule_list분석 규칙주요 필드가 포함된 모든 분석 규칙 나열
sentinel_analytics_rule_get분석 규칙특정 분석 규칙에 대한 세부 정보 가져오기
sentinel_analytics_rules_count_by_tactic분석 규칙전술별 Count Sentinel 분석 규칙
sentinel_analytics_rules_count_by_technique분석 규칙MITRE 기술을 통한 Count Sentinel 분석 규칙
sentinel_analytics_rule_templates_list규칙 템플릿모든 Sentinel 분석 규칙 템플릿 나열
sentinel_analytics_rule_template_get규칙 템플릿특정 Sentinel 분석 규칙 템플릿 가져오기
sentinel_analytics_rule_templates_count_by_tactic규칙 템플릿전술별 Count Sentinel 분석 규칙 템플릿
sentinel_analytics_rule_templates_count_by_technique규칙 템플릿MITRE 기술을 사용한 Count Sentinel 분석 규칙 템플릿
sentinel_hunting_queries_list수렵선택적 필터링을 사용하여 모든 Sentinel 헌팅 쿼리를 나열합니다.
sentinel_hunting_query_get수렵이름이나 ID로 Sentinel 사냥 쿼리에 대한 전체 세부 정보를 얻으세요
sentinel_hunting_queries_count_by_tactic수렵전술별 센티넬 사냥 쿼리 카운트
sentinel_connectors_list데이터 커넥터데이터 커넥터 목록
sentinel_connectors_get데이터 커넥터ID로 특정 데이터 커넥터 가져오기
sentinel_watchlists_list관심목록모든 Sentinel 관심목록 나열
sentinel_watchlist_get관심목록특정 Sentinel 관심목록 가져오기
sentinel_watchlist_items_list관심목록Sentinel 관심 목록에 있는 모든 항목을 나열합니다.
sentinel_watchlist_item_get관심목록Sentinel 관심 목록에서 특정 항목 가져오기
sentinel_domain_whois_get위협 정보도메인에 대한 WHOIS 정보 가져오기
sentinel_ip_geodata_get위협 정보IP 주소에 대한 지리적 위치 데이터 가져오기
sentinel_metadata_list메타데이터현재 작업 공간의 모든 Sentinel 메타데이터 나열
sentinel_metadata_get메타데이터ID로 특정 Sentinel 메타데이터에 대한 세부 정보를 가져옵니다.
sentinel_source_controls_list소스 제어현재 작업 공간에 있는 모든 Sentinel 소스 컨트롤을 나열합니다.
sentinel_source_control_get소스 제어ID로 특정 Sentinel 소스 제어에 대한 세부 정보 가져오기
sentinel_ml_analytics_settings_listML 분석모든 Sentinel ML 분석 설정 나열
sentinel_ml_analytics_setting_getML 분석이름으로 특정 Sentinel ML 분석 설정 가져오기
sentinel_authorization_summary권한 부여Sentinel 액세스를 위한 Azure RBAC 역할 할당 요약
log_analytics_saved_searches_list저장된 검색Log Analytics 작업 공간에 저장된 모든 검색 나열
log_analytics_saved_search_get저장된 검색Log Analytics 작업 공간에서 특정 저장된 검색 가져오기

🛠️ 사용법

Claude Desktop 또는 유사한 환경에 설치

제공된 PowerShell 설치 스크립트를 사용하여 Claude Desktop 또는 기타 MCP 호환 클라이언트를 위한 MCP 서버를 설정하세요.

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

스크립트는 다음을 수행합니다.

  1. Python 설치 확인
  2. 가상 환경을 생성하고 종속성을 설치합니다.
  3. 설치 후 단계 실행
  4. Claude Desktop 구성 파일 생성
  5. 구성을 클립보드에 복사합니다.

스크립트를 실행한 후 구성을 MCP 클라이언트(Claude Desktop, Cursor 등)에 직접 붙여넣을 수 있습니다. 이 스크립트는 Claude와 호환되는 MCP 서버 구성을 생성합니다. 다른 MCP 클라이언트를 사용할 경우 이 점을 유의하세요.

고급 설치 옵션

수동 환경 설정

환경을 수동으로 설정하려면 다음을 수행하세요.

  1. 환경 변수 구성제공된 템플릿을 복사하고 Azure 자격 증명을 입력하세요.
    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. 종속성 설치(uv 사용)
    uv venv uv pip install -e .
  3. 대체 서버 실행 옵션MCP CLI 사용:
    mcp run wrapper.py
    개발 및 핫 리로드:
    mcp dev wrapper.py
    SSE 모드(IDE용):
    python wrapper.py --sse

검사기 UI

MCP Inspector UI는 개발 모드( mcp dev wrapper.py )에서 실행할 때 http://127.0.0.1:6274 에서 사용할 수 있습니다.


🧩 개발

  • 리소스: Python 파일을 resources/ 에 추가하고 register_resources(mcp) 함수를 구현합니다.
  • 도구: tools/ 에 Python 파일을 추가하고 register_tools(mcp) 함수를 구현합니다. 도구는 docs/tool-architecture-and-implementation-requirements.md 에 정의된 구조를 따라야 합니다.
  • 프롬프트: LLM 기반 워크플로에 대한 프롬프트 템플릿을 prompts/ 에 추가합니다.

resources/ , tools/ , prompts/ 디렉터리의 모든 구성 요소는 서버 시작 시 자동으로 검색되어 등록됩니다. 수동으로 가져올 필요가 없습니다.


🔐 인증 및 환경 변수

MCP 서버는 Azure Python SDK의 DefaultAzureCredential 지원하는 모든 인증 방법을 지원합니다.

Azure CLI 대신 서비스 주체 인증

Azure에서 앱 등록을 설정하고 다음 역할을 할당합니다.

  • Log Analytics Reader
  • Microsoft Sentinel Reader

용기가 있다면 앱 등록에 다음과 같은 Microsoft Graph 권한을 부여할 수도 있습니다.

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

그런 다음 .env 파일이나 MCP 서버 구성에서 다음 환경 변수를 사용하세요.

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

템플릿은 .env.example 참조하세요.

Azure CLI 인증

az login

Azure CLI 인증을 사용하는 경우 구성에서 AZURE_CLIENT_SECRETAZURE_CLIENT_ID 생략할 수 있습니다.


🐛 디버깅

.env 파일에서 MCP_DEBUG_LOG 환경 변수를 true 로 설정하여 디버그 모드를 활성화합니다.

MCP_DEBUG_LOG=true

로그는 sentinel_mcp_server.log 라는 이름으로 임시 디렉토리에 기록됩니다.


📄 라이센스

이 프로젝트는 MIT 라이선스 에 따라 라이선스가 부여되었습니다.

Related MCP Servers

View all related MCP servers

ID: q516csqe5y