dyussekeyev/jumal-mcp

GitHub: dyussekeyev/jumal-mcp

基于 MCP 协议的恶意软件静态分析编排服务器,将文件分类、PE 解析、YARA 扫描、字符串提取和 VirusTotal 查询等能力整合到隔离容器中,供 LLM 客户端调用。

Stars: 0 | Forks: 0

# MCP-Jumal — 初级恶意软件分析师 一个用于自动化基础静态恶意软件分析的 MCP (Model Context Protocol) 服务器。它向 LLM 客户端(例如 Claude Desktop)开放分析能力,同时将所有文件处理隔离在 Docker 容器内部。 ## 架构 ``` ┌─────────────────────────────┐ ┌──────────────────────────────────┐ │ Host Machine │ │ Docker Container │ │ │ │ │ │ LLM Client (Claude etc.) │ │ Analysis Worker (FastAPI) │ │ │ stdio │ │ │ │ ▼ │ HTTP │ POST /api/v1/triage │ │ bridge/bridge.py ────────┼───────►│ POST /api/v1/pe-info │ │ (FastMCP server) │ │ POST /api/v1/yara │ │ │ │ POST /api/v1/strings │ └─────────────────────────────┘ │ │ │ Reads from /samples (read-only) │ │ Reads from /rules (read-only) │ └──────────────────────────────────┘ ``` ## 前置条件 - [Docker](https://docs.docker.com/get-docker/) 和 [Docker Compose](https://docs.docker.com/compose/) - Python 3.11+ - [Claude Desktop](https://claude.ai/download) 或其他兼容 MCP 的客户端 - (可选)一个 [VirusTotal API key](https://www.virustotal.com/gui/my-apikey) 用于 `check_virustotal` 工具 ## 快速开始 ### 1. 克隆仓库 ``` git clone https://github.com/dyussekeyev/jumal-mcp.git cd jumal-mcp ``` ### 2. 准备目录 ``` mkdir -p malware_samples yara_rules # 将恶意软件样本放置在 malware_samples/ # 将 YARA 规则文件(*.yar 或 *.yara)放置在 yara_rules/ ``` ### 3. 启动分析 worker ``` docker compose up -d ``` ### 4. 安装桥接依赖 ``` pip install fastmcp requests ``` ### 5. 配置 Claude Desktop 编辑 `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) 或操作系统上的等效文件,并添加: ``` { "mcpServers": { "jumal-analyzer": { "command": "python", "args": ["/path/to/jumal-mcp/bridge/bridge.py"], "env": { "VT_API_KEY": "YOUR_VIRUSTOTAL_API_KEY", "WORKER_URL": "http://localhost:8000/api/v1" } } } } ``` 重启 Claude Desktop —— MCP 工具将自动出现。 ## 可用的 MCP 工具 | 工具 | 描述 | |------|-------------| | `analyze_file_triage(file_path)` | 哈希 (MD5/SHA1/SHA256/ssdeep)、MIME 类型、熵、imphash 和 DIE 扫描 | | `extract_pe_info(file_path)` | 深度 PE 结构分析:imphash、节 (sections)、熵异常、DLL/EXE 标志 | | `scan_yara(file_path)` | 使用 `/rules` 目录中的所有 YARA 规则进行扫描 | | `get_strings(file_path, min_length)` | 使用 FLARE FLOSS 提取字符串(静态、解码、堆栈、紧密)并筛选 IOC 候选项(IP、URL、邮箱、路径) | | `check_virustotal(file_hash)` | 在 VirusTotal 上查询文件哈希(需要 API key) | ## 安全特性 - 所有文件分析均在隔离的 Docker 容器内运行,具有: - 只读文件系统 (`read_only: true`) - 禁止获取新权限 (`no-new-privileges:true`) - 丢弃所有 Linux 权能 (`cap_drop: ALL`) - 内存限制:2 GB - CPU 限制:2 核 - 样本和规则以**只读**方式挂载 - worker API 中的目录遍历保护 ## 项目结构 ``` jumal-mcp/ ├── Dockerfile # Worker container image ├── docker-compose.yml # Container orchestration ├── requirements.txt # Worker Python dependencies ├── bridge/ │ ├── bridge.py # MCP Bridge (runs on host, stdio) │ └── claude_desktop_config.json # Example Claude Desktop config └── worker/ └── main.py # FastAPI analysis worker ``` ## 许可证 MIT
标签:AI安全, Ask搜索, AV绕过, Chat Copilot, Claude, CVE检测, DAST, DLL 劫持, DNS 反向解析, Docker, FastAPI, FTP漏洞扫描, IP 地址批量处理, LLM, MCP, Model Context Protocol, PE分析, Python, Unmanaged PE, VirusTotal, YARA, 云安全监控, 云资产可视化, 云资产清单, 大语言模型, 威胁情报, 字符串提取, 安全编排, 安全防御评估, 容器化安全, 开发者工具, 恶意软件分析, 文件筛选, 无后门, 沙箱, 网络信息收集, 自动化分类, 请求拦截, 逆向工具, 逆向工程, 配置审计, 静态分析