返回市场
攻击-mcp-服务器

攻击-mcp-服务器

作者:alex-llm2 星标更新:2025-10-01

项目介绍

attAck-mcp-server

此项目是一个用于查询ATT&CK(对抗性策略、技术和通用知识)技术和策略的MCP(模型上下文协议)服务器。它提供了一种访问和检索有关各种攻击技术和策略的方法,这些技术和策略由对手使用。

工具

服务器提供了以下工具:

  • query_technique: 此工具允许您通过ID或名称查询ATT&CK技术。
    • 参数:
      • technique_id (字符串,可选): 要查询的技术ID。
      • tech_name (字符串,可选): 要查询的技术名称(或部分名称)。支持名称模糊搜索。
    • 示例:
      • 按ID查询:
      {
        "technique_id": "T1059.001"
      }
      
      • 按名称模糊搜索:
      {
        "tech_name": "phishing"
      }
      
  • search_technique_full: 通过技术ID或名称查询攻击技术的所有详细信息,返回的数据包含ID、名称、描述、适用平台、Kill Chain阶段、参考资料、子技术和缓解措施。名称搜索返回格式为 { "results": [...], "count": N } 的字典,其中 results 为匹配技术完整数据列表。
    • 参数:
      • technique_id (字符串,可选): 要查询的技术ID。
      • tech_name (字符串,可选): 技术名称关键字,支持模糊匹配。
    • 示例:
      • 按ID查询:
      {
        "technique_id": "T1059.001"
      }
      
      • 按名称模糊搜索:
      {
        "tech_name": "phishing"
      }
      
  • query_mitigations: 查询技术的缓解措施
    • 参数:
      • technique_id (字符串,必填): 要查询的技术ID
    • 示例:
      {
        "technique_id": "T1059.01"
      }
      
  • query_detections: 查询技术的检测方法
    • 参数:
      • technique_id (字符串,必填): 要查询的技术ID
    • 示例:
      {
        "technique_id": "T1059.001"
      }
      
  • list_tactics: 此工具允许您检索所有ATT&CK战术的列表。
    • 参数:
  • server_info: 返回服务与数据集的版本、维护者和Git信息。
    • 参数:
    • 示例:
      {}
      

使用方法

要使用此MCP服务器,您需要配置一个MCP客户端来连接它。一旦连接成功,您可以使用提供的工具查询ATT&CK技术和策略。

MCP客户端配置说明

1. 本地stdio方式(推荐 Smithery/本地集成)

  • 直接运行:
    python main.py
    
  • 程序会自动选择stdio模式(默认或 ATTACK_MCP_MODE=stdio),适用于Smithery、Cursor等支持本地MCP stdio的客户端。
  • MCP客户端配置服务类型为"local/stdio",无需指定端口。
  • 适用场景:Smithery自动化、CI/CD、本地AI Agent集成。

2. HTTP/Streamable方式(远程/开发/调试)

  • 使用CLI参数切换模式:

    python main.py --mode http --host 0.0.0.0 --port 8081 --log-level info
    
  • 或通过环境变量控制:

    export ATTACK_MCP_MODE=http
    export ATTACK_MCP_HOST=0.0.0.0   # 可选,默认 0.0.0.0 或 $HOST
    export ATTACK_MCP_PORT=8081      # 可选,默认 8081 或 $PORT
    export ATTACK_MCP_LOG_LEVEL=info # 可选,默认 info
    python main.py
    
  • 运行后服务以streamable HTTP方式暴露,可在客户端配置服务类型为 "http",地址如 http://127.0.0.1:8081/mcp

  • 远程部署(如Smithery Cloud)通常会提供 PORTMCP_TRANSPORT 环境变量,可直接运行 python main.py 即使用HTTP。对于值为 streamingstreamablestreamable-httpstreamable HTTP transportstdioNotSupported 等新枚举的运行环境,程序会自动回退到HTTP模式,无需额外配置。

  • Smithery等容器平台会通过 PORT(默认为 8081)告知监听端口;程序会自动读取该值并监听在 0.0.0.0:$PORT

  • 工具名称query_techniquesearch_technique_fullquery_mitigationsquery_detectionslist_tacticsserver_info

  • 参数示例

    • 按ID查询技术:
      {
        "technique_id": "T1059.001"
      }
      
    • 按名称模糊搜索技术:
      {
        "tech_name": "phishing"
      }
      
    • 使用 search_technique_full 获取技术的完整详细信息:
      {
        "tech_name": "phishing"
      }
      
    • 查询技术缓解措施:
      {
        "technique_id": "T1059.001"
      }
      
    • 查询技术检测方法:
      {
        "technique_id": "T1059.001"
      }
      
    • 查询战术列表:
      {}
      
    • 查询服务与数据集信息:
      {}
      

具体的客户端配置方式请参考您的MCP客户端文档,将上述服务地址和工具名称填入对应位置即可。

安装

  1. 克隆此仓库。
  2. 使用 pip install -r requirements.txt 安装所需的依赖项。
  3. 在您的MCP客户端中配置MCP服务器。

ATT&CK

ATT&CK是一个精心策划的知识库和模型,用于描述网络攻击者的攻击行为,反映了攻击者攻击生命周期的不同阶段以及他们已知的目标平台。ATT&CK有助于理解针对特定技术和组织的安全风险。

快速启动

方式一:直接用Python脚本运行(开发/调试推荐)

  1. 安装依赖(建议在虚拟环境中):
    pip install -r requirements.txt
    
  2. 确保enterprise-attack.json数据集在项目根目录。
  3. 启动服务(默认stdio模式,适用于本地客户端集成):
    python main.py
    
  4. 如果需要以HTTP方式提供服务,请显式选择模式:
    python main.py --mode http --host 127.0.0.1 --port 8081
    

方式二:生产环境推荐(Docker部署)

Docker

  1. 构建镜像:
    docker build -t attack-mcp-server .
    
  2. 运行容器:
    docker run -p 8081:8081 attack-mcp-server
    

API说明

  • /query_technique 通过ID或名称查询攻击技术详情(支持名称模糊搜索)
  • /search_technique_full 通过ID或名称查询攻击技术的完整详细信息(名称搜索返回匹配技术列表,包含子技术与缓解措施)
  • /query_mitigations 查询指定技术的缓解措施
  • /query_detections 查询指定技术的检测方法
  • /list_tactics 获取所有ATT&CK战术分类
  • /server_info 返回服务版本、数据集版本和Git信息

如有问题请联系维护者。