返回市场
Azure哨兵MCP

Azure哨兵MCP

作者:jmstar856 星标更新:2025-11-03

项目介绍

高级微软Sentinel威胁分析与自动化响应系统

🎯 主要特性

1. 威胁情报分析师 🔍

对威胁事件进行深入分析和情报收集

  • MITRE ATT&CK框架映射:自动将警报/事件映射到MITRE框架
  • 威胁行为者画像生成:基于战术、技术和程序(TTP)生成攻击者画像
  • 指示器提取与分析:自动提取并丰富威胁指标(如IP地址、域名、哈希值等)
  • 威胁上下文提供:杀伤链阶段、威胁严重性、响应优先级

主要工具:

  • threat_event_analysis:深入威胁事件分析
  • mitre_attack_mapping:MITRE ATT&CK框架映射
  • ioc_extraction:指示器提取与丰富
  • threat_actor_profiling:威胁行为者画像生成

2. 攻击路径预测器 🎯

基于机器学习的攻击路径预测和杀伤链分析

  • 下一阶段TTP预测:根据观察到的技术预测下一攻击阶段
  • 杀伤链分析:分析当前攻击进展和完成情况
  • 攻击时间线重建:通过事件关联可视化攻击路径
  • 攻击速度分析:估计攻击进展速度和影响时间

主要工具:

  • next_ttp_prediction:基于ML的下一TTP预测
  • kill_chain_analysis:杀伤链进度分析
  • attack_timeline_reconstruction:攻击时间线重建

3. 响应协调员 📋

业务影响评估和响应资源优化

  • 业务影响评估:量化事件对业务的影响
  • 响应计划生成:自动生成响应剧本匹配和计划
  • 资源优先级确定:确定多个事件的响应优先级
  • SLA管理:按严重性设置响应时间目标

主要工具:

  • business_impact_assessment:业务影响评估
  • response_plan_generation:自动生成响应计划
  • resource_prioritization:资源优先级确定

4. 自动化执行器 ⚙️

自动化响应行动执行和审批工作流

  • 自动化响应行动:主机隔离、IP封锁、账户禁用等
  • 审批工作流:基于风险的审批过程管理
  • 剧本执行:自动执行预定义的响应剧本
  • 行动跟踪和回滚:跟踪执行历史并在需要时回滚

主要工具:

  • execute_response_action:执行响应行动
  • approve_response_action:批准行动
  • list_available_playbooks:列出可用剧本
  • execute_playbook:执行剧本
  • rollback_action:回滚行动

🏗️ 架构

sentinel-advanced-mcp/
├── server.py                      # MCP服务器主程序
├── tools/                         # MCP工具
│   ├── base.py                    # 工具基类
│   ├── threat_analyst_tools.py   # TI分析工具
│   ├── attack_predictor_tools.py # 攻击预测工具
│   ├── response_coordinator_tools.py  # 响应协调工具
│   └── automation_executor_tools.py   # 自动化执行工具
├── ml_models/                     # 机器学习模型
│   ├── ttp_predictor.py          # TTP预测引擎
│   └── attack_graph.py           # 攻击图分析
├── intelligence/                  # 威胁情报
│   ├── mitre_attck.py            # MITRE ATT&CK框架
│   └── ioc_enrichment.py         # 指示器丰富
├── playbooks/                     # 响应剧本
│   └── executor.py               # 剧本执行引擎
└── utilities/                     # 实用工具
    ├── task_manager.py           # 异步任务管理
    └── cache.py                  # 缓存

🚀 安装与执行

1. 要求

  • Python 3.10或更高版本
  • Azure Sentinel工作区
  • Azure身份验证(Azure CLI或服务主体)

2. 安装

# 创建虚拟环境
python -m venv .venv

# 激活虚拟环境(Windows)
.venv\Scripts\activate

# 激活虚拟环境(Linux/Mac)
source .venv/bin/activate

# 安装依赖
pip install -r requirements.txt

3. 环境设置

# 复制环境变量文件
cp .env.example .env

# 编辑.env文件(输入Azure信息)
vi .env

所需环境变量:

AZURE_SUBSCRIPTION_ID=your-subscription-id
AZURE_RESOURCE_GROUP=your-resource-group
AZURE_WORKSPACE_NAME=
AZURE_WORKSPACE_ID=your-workspace-guid

4. Azure身份验证

选项A:Azure CLI(推荐用于开发/测试)

az login
az account set --subscription your-subscription-id

选项B:服务主体(推荐用于生产)

# 设置在.env中
AZURE_TENANT_ID=your-tenant-id
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret

5. 服务器执行

python server.py

📚 使用示例

示例1:威胁事件分析

# 深入事件分析
{
  "tool": "threat_event_analysis",
  "parameters": {
    "incident_number": 12345,
    "timespan": "24h"
  }
}

# 结果:
# - MITRE ATT&CK映射
# - 提取的IoC列表
# - 威胁总结和建议

示例2:下一攻击阶段预测

# 基于观察到的TTP预测
{
  "tool": "next_ttp_prediction",
  "parameters": {
    "observed_tactics": ["TA0001", "TA0002", "TA0003"],
    "observed_techniques": ["T1566", "T1059", "T1053"],
    "time_elapsed_minutes": 120,
    "top_k": 5
  }
}

# 结果:
# - 下一预期战术(带概率)
# - 下一预期技术(带概率)
# - 攻击可能性分析
# - 防御建议

示例3:响应计划生成

# 自动生成响应计划
{
  "tool": "response_plan_generation",
  "parameters": {
    "incident_number": 12345,
    "auto_match": true
  }
}

# 结果:
# - 匹配的剧本
# - 执行计划(行动列表)
# - 审批要求
# - 预期影响

示例4:剧本执行

# 执行勒索软件响应剧本
{
  "tool": "execute_playbook",
  "parameters": {
    "playbook_id": "pb_ransomware_001",
    "incident_data": {
      "host": "DESKTOP-001",
      "account": "user@company.com",
      "severity": "Critical"
    },
    "auto_approve": false,
    "execute_immediately": false
  }
}

# 结果:
# - 生成的行动列表
# - 待审批的行动
# - 自动批准的行动
# - 下一步指南

🛡️ 安全注意事项

⚠️ 重要提示:仅限测试环境

此MCP服务器仅设计用于测试/开发环境

生产使用额外考虑:

  1. 行动执行权限:自动化执行器需要强权限——严格的RBAC配置至关重要
  2. 审批工作流:关键行动必须实施多阶段审批流程
  3. 审计日志:在独立的日志系统中记录所有行动执行历史
  4. 数据暴露:Sentinel数据可能包含敏感信息——考虑数据遮罩
  5. 网络隔离:MCP服务器应在安全网络段运行

权限需求

Azure Sentinel:

  • Microsoft.OperationalInsights/workspaces/read
  • Microsoft.OperationalInsights/workspaces/query/*/read
  • Microsoft.SecurityInsights/*/read

自动化执行(可选):

  • Microsoft.SecurityInsights/incidents/write
  • Microsoft.Logic/workflows/run/action

🔧 扩展与定制

添加新剧本

# 添加到playbooks/executor.py

custom_playbook = ResponsePlaybook(
    playbook_id="pb_custom_001",
    name="自定义响应剧本",
    description="特定场景的响应",
    trigger_conditions={
        "severity": ["Critical"],
        "techniques": ["T1234"]
    },
    actions=[
        ResponseAction(
            action_id="act_custom_001",
            action_type=ActionType.BLOCK_IP,
            target="恶意IP",
            requires_approval=False
        )
    ],
    execution_mode="semi_auto"
)

添加新工具

# tools/custom_tools.py

from tools.base import MCPToolBase

class MyCustomTool(MCPToolBase):
    name = "my_custom_tool"
    description = "自定义分析工具"

    async def run(self, ctx: Context, **kwargs) -> Dict:
        # 实现
        return self.wrap_result({"data": "结果"})

def register_tools(mcp: FastMCP):
    MyCustomTool.register(mcp)

📊 性能优化

  • 缓存:频繁访问的数据使用TTL缓存(默认10分钟)
  • 并行处理:独立查询并行执行
  • 查询优化:KQL查询选择必要的列

🐛 故障排除

认证错误

# 重新认证Azure CLI
az logout
az login
az account set --subscription your-subscription-id

查询超时

# 在task_manager.py中增加超时
timeout=120.0  # 默认60秒

模块导入错误

# 检查Python路径
export PYTHONPATH="${PYTHONPATH}:$(pwd)"

📝 许可证和版权

版权所有 (c) 2025 jmstar85. 保留所有权利。

本软件及其相关文档文件(以下简称“软件”)是jmstar85的专属财产。软件的所有权利、所有权和利益均归jmstar85所有。

使用条款

本项目仅供教育和研究目的使用。

版权保护

  • 未经授权复制、分发、修改或使用本软件,无论整体还是部分,均严格禁止,除非获得版权所有者的明确书面许可。
  • 违反这些条款可能导致法律行动,您可能会因违反适用的版权法而受到民事和刑事处罚
  • 所有知识产权,包括但不限于版权、专利和商业秘密,均归jmstar85所有。

免责声明

软件按“现状”提供,不附带任何形式的保证,无论是明示的还是暗示的。在任何情况下,版权所有者均不对因使用软件而产生的任何索赔、损害或其他责任负责。

如有许可咨询或请求,请联系仓库所有者。

🤝 贡献

欢迎功能改进和错误修复。

⚡ 发展路线图

  • 实时威胁监控仪表板
  • 高级ML模型集成(LSTM、Transformer)
  • 外部威胁情报源集成(VirusTotal、AbuseIPDB等)
  • 实际Azure逻辑应用集成
  • Slack/Teams通知集成
  • SIEM数据可视化(Grafana)

构建日期:2025 版本:1.0.0