Token导航 LogoToken导航TokenDH.com
Slack MCP Cve logo
安全风控stdio官方级别未说明来源级核验

Slack MCP Cve

MCP Server

一个基于Slack的CVE研究机器人,提供漏洞检测、分类和参考信息,适用于安全研究和漏洞管理。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
安全工具Python团队协作

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ddamme05

提供方

ddamme05

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

Python Formatter

详细介绍

演示

https://github.com/user-attachments/assets/6b7763a1-6a5e-45d1-992c-0647ba3e4471

*演示显示确切的CVE查询、关键字搜索、资源链接和CVE概述*

Slack CVE Bot-MCP实现

一个使用模型上下文协议(MCP)、Docker、Redis和Python进行CVE研究的生产就绪Slack机器人。

主要特点

🚨 即时漏洞检测和NVD数据质量解决方案

高级参考分类 -使用基于URL的启发式分类处理不完整的NVD数据:

  • 🚨 利用:可用的公开漏洞利用(直接威胁)
  • 🔧 修补/修复:供应商补丁、修复和缓解措施
  • 📰 咨询:安全建议(供应商+第三方)
  • 🚨 CISA-KEV:已知的漏洞(在野外被积极利用)
  • 🔗 自动分类:NVD标签缺失时的启发式分类(约85%的准确率)

主要特点:

  • Slack块套件用户界面:具有标题、部分和格式化块的丰富交互式消息
  • 精细分类:基于URL的启发式方法将漏洞利用与警告区分开来(不再有误报)
  • NVD订单保存:按时间顺序显示的参考文献(尊重NVD的语义顺序)
  • URL净化:正确转义的URL可防止Slack链接格式问题
  • 多类别支持:引用可以属于多个类别
  • CWE显示器:显示漏洞弱点类型(CWE-79:XSS、CWE-89:SQLi等)
  • NVD危机抵御能力:适用于60-70%的标签不完整的新CVE(自2024年2月以来)
  • 透明度:自动分类参考标记清晰,显示数据质量警告
  • 稳健的输入处理:针对无效类型标志的优美错误消息

示例 (Slack块套件格式):

🔴 CVE-2021-44228
CRITICAL (CVSS 10.0) • 🚨 ACTIVELY EXPLOITED (CISA KEV)

Description
Apache Log4j2 2.0-beta9 through 2.15.0 JNDI features do not protect...

Weakness Types
CWE-20, CWE-400, CWE-502

Published: 2021-12-10

🚨 CISA Known Exploited Vulnerability
Added to KEV: 2021-12-10
Remediation Due: 2021-12-24
Ransomware Use: Known

🚨 Exploits & PoCs (showing 5 of 47)
• packetstormsecurity.com/files/165270/...Remote-Code-Execution.html (inferred)
• github.com/christophetd/log4shell-vulnerable-app (inferred)
...

🔧 Patches & Fixes (showing 5 of 6)
• msrc-blog.microsoft.com/2021/12/11/microsofts-response...
• oracle.com/security-alerts/cpuapr2022.html
...

📰 Security Advisories (showing 5 of 28)
• nvd.nist.gov/vuln/detail/CVE-2021-44228
• github.com/advisories/GHSA-jfh8-c2jp-5v3q
...

💻 GitHub Resources (475 found)
• fullhunt/log4j-scan (3433 ⭐)
• NCSC-NL/log4shell (1892 ⭐)
...

Risk Assessment
🚨 Critical severity. Immediate patching required.

过滤:使用 --type poc, --type fix,或 --type advisory 按类别筛选结果

______________________________________________________________________

建筑

Slack User → Slack Bot (Socket Mode)
         ↓
    Redis Queue (FIFO)
         ↓
    Worker Service (2 replicas)
         ↓
    MCP Server (rate-limited, sandboxed)
         ↓
    External APIs (NIST NVD, GitHub)
         ↓
    Python Formatter
         ↓
    Slack Webhook Response

服务

  • 松弛机器人:套接字模式处理程序、斜线命令处理器
  • 瑞迪斯:具有持久性的作业队列
  • 工人 (2x):MCP客户端的工作消费者
  • mcp服务器:带3个工具的FastMCP+速率限制

特性

  1. Slack机器人 (松螺栓1.27.0)

- Socket模式用于实时事件处理 - /cve-search 斜杠命令 - @提及对CVE查询解析的支持 - 当@没有查询时,默认的帮助命令 - 支持@sentences中的--type过滤器 - Redis作业队列集成 - 自动捕获webhook传递的response_url

  1. MCP服务器 (FastMCP 2.13.0.2)

- 4个异步工具: - lookup_cve_details:具有启发式分类的NVD数据 - search_github_cve_repos:GitHub PoC/漏洞利用仓库 - search_cve_by_keyword:NVD关键字搜索 - check_cisa_kev_details:CISA KEV目录元数据(可选) - 端口8080上的流式HTTP传输(/mcp 端点) - API速率限制:基于API密钥存在的自动节流 - NVD:50个要求/30s(带钥匙)或5个要求/3os(不带钥匙) - GitHub:5000请求/小时(有令牌)或60请求/小时 - GitHub速率限制监控:剩余请求少于10个时发出主动警告 - 精细启发式分类:路径感知漏洞检测 - 将漏洞利用代码与同一平台上的咨询页面区分开来(例如PacketStorm) - 咨询URL排除可防止误报 - 不再将合法的安全公告过滤为漏洞利用 - NVD订单保存:按原始NVD顺序返回所有引用 - URL重复数据删除:防止来自不同NVD源的重复引用 - CISA KEV检测:检查所有引用中的活动漏洞利用指标(准确率95%以上) - CWE显示器:显示漏洞弱点类型 - 安全性:非root用户(uid 1000),只读文件系统,功能下降

  1. 工人服务 (2个复制品)

- 具有指数回退重试的Redis作业消费者 - 弹性Redis连接(1秒、2秒、4秒、8秒、16秒重试延迟) - 查询调度程序(自动检测CVE ID与关键字) - 支持流式HTTP的FastMCP客户端 - 纯Python格式(确定性,无AI API) - Slack块套件格式化:具有标题、部分和分隔符的丰富交互式消息 - URL净化:转义的特殊字符可防止Slack链接问题 - 参考文献分类:每个CVE最多显示5个漏洞、5个补丁和5个警告 - NVD订单保存:按时间顺序显示的参考文献 - 即时威胁评估 通过参考类型表情符号(🚨 利用,🔧 补丁,📰 咨询) - CISA KEV元数据显示 (添加日期、到期日期、勒索软件使用) - 双输送系统:Webhook(斜杠命令)+Slack Web API(@提及) - 针对CISA API故障和无效用户输入的优雅错误处理

  1. 瑞迪斯 (版本7-alpine)

- 持久性已启用(仅附录是) - 已配置健康检查 - 后端网络隔离

  1. Docker基础架构

- 3个隔离网络: frontend (Slack机器人), backend (Redis), mcp-isolated (MCP服务器) - 资源限制:256-512MB RAM,每次服务0.25-0.5 CPU - 安全策略:无新权限,功能下降 - 对所有关键服务进行健康检查

入门指南

1.启动所有服务:

docker-compose up -d

2.检查服务状态:

docker-compose ps
docker-compose logs mcp-server worker redis slack-bot

3.在Slack中使用:

/cve-search CVE-2021-44228
/cve-search apache log4j
@CVE Research Bot help

4.手动作业测试(可选):

docker exec slack-mcp-redis-1 redis-cli LPUSH mcp_jobs \
  '{"query": "CVE-2021-44228", "user_id": "test", "response_url": "http://test.com/webhook"}'

5.查看员工日志:

docker logs slack-mcp-worker-1 --tail 50
docker logs slack-mcp-worker-2 --tail 50

输出示例

CVE查找(CVE-2021-44228):

🔴 **CRITICAL**: CVE-2021-44228 🚨 *ACTIVELY EXPLOITED (CISA KEV)*

📋 **Summary**
Apache Log4j2 2.0-beta9 through 2.15.0 JNDI features do not protect...

📊 **Details**
• CVSS Score: 10.0
• Weakness: CWE-20, CWE-400, CWE-502
• Published: 2021-12-10
• Last Modified: 2025-10-27

⚠️ *CISA KEV Details*
• Added to KEV: 2021-12-10
• Remediation Due: 2021-12-24
• Ransomware Use: Known
• Action Required: Apply updates per vendor instructions

🔗 **References**
• 🚨 Exploit: http://packetstormsecurity.com/files/165261/Apache-Log4j2-2.14.1-Information-Disclosure.html
• 🚨 Exploit: http://packetstormsecurity.com/files/165270/Apache-Log4j2-2.14.1-Remote-Code-Execution.html
• 🚨 Exploit: http://packetstormsecurity.com/files/165371/VMware-Security-Advisory-2021-0028.4.html
• 🚨 Exploit: http://packetstormsecurity.com/files/165532/Log4Shell-HTTP-Header-Injection.html
• 🚨 Exploit: http://packetstormsecurity.com/files/165642/VMware-vCenter-Server-Unauthenticated-Log4Shell-JNDI-Injection-Remote-Code-Execution.html

🐙 **GitHub Resources** (474 total)
• fullhunt/log4j-scan (3434 ⭐)
• NCSC-NL/log4shell (1892 ⭐)

⚠️ **Risk Assessment**
🚨 Critical severity. Immediate patching required.

🔍 Full details: https://nvd.nist.gov/vuln/detail/CVE-2021-44228

关键字搜索(apache log4j):

🔍 **CVE Search Results**: `apache log4j`
Found 16 CVEs (showing top 10):

🔴 **CVE-2021-44228** (CVSS: 10.0)
   Apache Log4j2 2.0-beta9 through 2.15.0...

🟠 **CVE-2021-45046** (CVSS: 9.0)
   Fix to address CVE-2021-44228 was incomplete...

💡 Use `/cve-search CVE-2021-44228` for detailed info

环境变量

复制 .env.example.env:

cp .env.example .env

所需(第一阶段):

  • REDIS_URL=redis://redis:6379
  • MCP_SERVER_URL=http://mcp-server:8080
  • TEST_MODE=true (控制台输出)或 false (Slack webhooks)

对于生产(Slack集成):

  • SLACK_BOT_TOKEN=xoxb-... (来自api.llack.com/apps的Bot用户OAuth令牌)
  • SLACK_APP_TOKEN=xapp-... (带连接的应用级令牌:写入作用域)
  • SLACK_SIGNING_SECRET=... (基本信息中的签名秘密)
  • NVD_API_KEY=... (NIST NVD API密钥用于更高的速率限制)
  • GITHUB_TOKEN=... (GitHub个人访问令牌用于更高的速率限制)

设置Slack Bot

组件技术版本
语言Python3.11
松弛SDK松弛螺栓1.27.0
MCP框架FastMCP2.13.0.2
MCP SDK(工作程序)FastMCP客户端2.13.0.2+
HTTP客户端httpx0.28.1
Redis客户端Redis-py7.0.1
作业队列Redis7-alpine
容器化Docker Compose3.8
CVE数据源NIST NVD API2.0
代码搜索GitHub REST APIv3
传输流式HTTP/Socket模式-

安全功能

集装箱安全和装箱

  • 网络隔离:三层网络架构(前端、后端、mcp隔离)

- 隔离网络中的MCP服务器,没有直接的外部访问 - Redis后端网络与Slack bot前端隔离 - 服务间通信的最小特权原则

  • 集装箱硬化:

- 所有容器中的非root用户(uid 1000) - MCP服务器上的只读根文件系统 - 能力下降(cap_drop: [ALL]) - no-new-privileges 安全选项已启用 - 最小的阿尔卑斯山/超薄基础图像,减少攻击面

  • 资源控制:内存(256-512MB)和CPU(0.25-0.5核)限制可防止资源耗尽

应用安全

  • 输入验证和消毒:

- CVE ID格式验证(CVE-YYYY-NNNN+ 图案) - URL净化可防止Slack注入攻击 - 用户控制内容的Markdown转义处理

  • 秘密管理:

- 代码或Dockerfiles中没有硬编码凭据 - 基于环境变量的配置 - .gitignore 保护 .env 文件

  • API安全:

- 具有自动节流功能的速率限制(NVD:50需求/30s,GitHub:5000需求/hr) - Slack请求签名验证 - 具有速率限制监控的GitHub令牌身份验证 - NVD API关键支持增强的速率限制

MCP服务器隔离(OWASP MCP最佳实践)

  • 沙盒执行:MCP服务器在隔离的Docker网络中运行,出口受限
  • 最小特权原则:只读文件系统、丢弃功能、非根执行
  • 无外壳访问权限:基于Python的服务器,不执行shell命令
  • 受控的外部API访问:只有NIST NVD和GitHub API(没有任意HTTP请求)
  • 无状态设计:无持久存储要求,容器生命周期短暂

附加安全措施

  • 错误处理:巧妙的失误会阻止信息泄露
  • 日志记录:所有CVE查找和API调用的审核跟踪
  • 健康检查:自动服务监控和故障重启
  • Redis持久性:仅附加具有数据持久性的文件(AOF)

设置Slack Bot

  1. 创建Slack应用程序 在https://api.slack.com/apps

- 点击“创建新应用”→ “从头开始” - 将其命名为“CVE研究机器人”并选择您的工作区

  1. 启用套接字模式

- 转到侧栏中的“套接字模式” - 启用套接字模式 - 生成应用级令牌 connections:write 范围 - 将此另存为 SLACK_APP_TOKEN

  1. 配置OAuth和权限

- 转到“OAuth和权限” - 添加Bot令牌范围: - chat:write -发送消息 - commands -使用斜线命令 - app_mentions:read -阅读@提及 - 将应用程序安装到工作区 - 将“Bot用户OAuth令牌”复制为 SLACK_BOT_TOKEN

  1. 获取签名密钥

- 转到“基本信息” - 将“签名密钥”复制为 SLACK_SIGNING_SECRET

  1. 创建Slash命令

- 转到“Slash Commands” - 创建命令 /cve-search - 请求URL可以是任何东西(套接字模式不使用它) - 描述:“搜索CVE信息” - 使用提示: CVE-2021-44228apache log4j

  1. 更新.env文件
   SLACK_BOT_TOKEN=xoxb-your-token
   SLACK_APP_TOKEN=xapp-your-token
   SLACK_SIGNING_SECRET=your-secret
   TEST_MODE=false  # Enable webhook delivery
  1. 启动所有服务
   docker-compose up -d

Slack中的用法:

/cve-search CVE-2021-44228
/cve-search apache log4j
@CVE Research Bot help

测试

单元测试

该项目包括一个全面的测试套件,涵盖了关键的启发式方法和格式化程序:

cd tests
pip install -r requirements.txt
pytest

测试覆盖范围:

  • 启发式分类 (18个测试):漏洞检测、建议URL排除、补丁检测
  • URL净化 (17个测试):松弛逃逸、XSS预防、标记注入
  • 块套件格式化程序 (18个测试):参考过滤、重复数据删除、块生成
  • 总计:54项测试,全部通过✅

关键测试:

# Test PacketStorm advisory filtering (Round 8 bug fix)
pytest tests/test_heuristics.py::TestExploitDetection::test_packetstorm_advisory_urls_excluded -v

# Test URL sanitization
pytest tests/test_sanitization.py::TestURLSanitization -v

# Test reference filtering by type
pytest tests/test_formatters.py::TestReferenceFiltering -v

发展

构建所有服务:

docker-compose build

以分离模式启动:

docker-compose up -d

查看日志:

docker-compose logs -f worker

停止所有服务:

docker-compose down

清洁体积:

docker-compose down -v

许可证

麻省理工学院

归因

NVD API使用:本产品使用NVD API,但未经NVD认可或认证。

NVD API旨在用于开发从NVD数据中搜索、显示、分析、检索、查看和以其他方式“获取”信息的服务。使用或访问NVD API的服务被要求在应用程序中突出显示上述通知。

目录标签

目录标签

安全工具Python团队协作漏洞研究本地部署Slack机器人CVE分类漏洞管理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP