网络安全风险监控代理

一个用于实时监控和评估网络安全风险的自决策代理系统,采用机器学习评估风险并使用MCP工具进行持久化、报告和警报。

  • by Vedant-Git-dev
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Vedant-Git-dev/RiskMonitor-mcp

使用说明

使用MCP工具的实时风险监控代理

用于网络安全风险评估的自主人工智能代理系统


概述

这是一个自主决策代理,它:

  • 监控实时网络安全新闻推送
  • 使用机器学习评估风险
  • 应用确定性控制逻辑(MCP风格)
  • 使用MCP工具进行持久化、报告和警报
  • 通过实时仪表板呈现可操作的决策

MCP集成

基于文件系统的MCP工具 在免费主机上工作(渲染):

  • ✅ 决策记录:每个决定都坚持使用JSON
  • ✅ 警报文件:自动升级/警报文件生成
  • ✅ CSV报告:可导出的电子表格格式
  • ✅ Markdown报告:人类可读的文档
  • ✅ JSON快照:完成状态捕获
  • ✅ 无外部API:100%免费且可部署

MCP工具架构

graph TB
    subgraph Agent[Risk Monitor Agent Core]
        Fetch[Fetch News]
        Eval[ML Evaluation]
        Policy[Policy Decision]
        Memory[Memory Check]
    end
    
    subgraph MCP[MCP Toolkit]
        Log[Decision Logger]
        Alert[Alert Generator]
        CSV[CSV Report]
        MD[Markdown Report]
        JSON[JSON Snapshot]
    end
    
    subgraph Storage[Filesystem Storage]
        Logs[mcp_outputs/logs/]
        Alerts[mcp_outputs/alerts/]
        Reports[mcp_outputs/reports/]
    end
    
    Fetch --> Eval
    Eval --> Policy
    Policy --> Memory
    Memory --> Log
    Memory --> Alert
    Memory --> CSV
    Memory --> MD
    Memory --> JSON
    
    Log --> Logs
    Alert --> Alerts
    CSV --> Reports
    MD --> Reports
    JSON --> Reports
    
    Logs --> UI[Streamlit UI]
    Alerts --> UI
    Reports --> UI
    
    style MCP fill:#ffe1e1
    style Storage fill:#e1f0ff
    style UI fill:#e1f5e1

更新项目结构

risk_monitor_agent/
│
├── fetchers/
│   └── news_fetcher.py          # RSS feed ingestion
│
├── llm/
│   └── evaluator.py             # ML risk scoring
│
├── policy/
│   └── risk_policy.py           # MCP-style decision rules
│
├── memory/
│   ├── state.json               # Persistent memory
│   └── memory_store.py          # Duplicate detection
│
├── mcp/                         # NEW: MCP TOOLKIT
│   └── mcp_toolkit.py          # Filesystem-based tools
│
├── mcp_outputs/                 # NEW: MCP OUTPUTS
│   ├── logs/                    # Decision logs (JSON)
│   ├── alerts/                  # Alert files (TXT)
│   └── reports/                 # Reports (CSV, MD, JSON)
│
├── ui/
│   └── app.py                   # Streamlit dashboard
│
├── orchestrator.py              # Agent control loop
├── start.sh                     # Render deployment
└── requirements.txt

MCP工具详解

1.决策记录器

目的:将每个决定都保存到磁盘上 格式:JSON 位置: mcp_outputs/logs/decision_TIMESTAMP.json

{
  "title": "Critical Zero-Day in Windows Kernel",
  "action": "ESCALATE",
  "reason": "Critical incident detected (score: 0.89)",
  "scores": {...},
  "timestamp": "2025-01-31T10:30:45"
}

2.警报生成器

目的:为关键/高优先级项目创建文本文件 格式:纯文本 位置: mcp_outputs/alerts/escalate_TIMESTAMP.txt

================================================================================
RISK MONITOR ALERT - ESCALATE
Generated: 2025-01-31T10:30:45
Total Items: 3
================================================================================

1. Critical Zero-Day in Windows Kernel
   Source: The Hacker News
   Reason: Critical incident detected (score: 0.89)
   Link: https://...

3.CSV报告

目的:将所有决策导出为电子表格格式 格式:CSV 位置: mcp_outputs/reports/report_TIMESTAMP.csv

列:时间戳、动作、标题、来源、原因、分数、链接

4.Markdown报告

目的:人类可读的文档 格式:Markdown 位置: mcp_outputs/reports/report_TIMESTAMP.md

按优先级和完整上下文组织。

5.JSON快照

目的:使用元数据完成状态捕获 格式:JSON 位置: mcp_outputs/reports/snapshot_TIMESTAMP.json

包括所有决策+内存统计信息。


使用MCP工具

自动执行

MCP工具在每个监测周期后自动运行:

  1. 点击“获取实时风险反馈”
  2. 代理处理文章
  3. MCP工具自动执行:
    • 记录个人决策
    • 为ESCALATE/Alert创建的警报文件
    • 生成的报告(CSV、Markdown、JSON)

查看MCP文件

访问 MCP文件 Streamlit UI中的选项卡:

  • 报告:下载CSV、Markdown或JSON快照
  • 警报:查看/下载升级和警报文件
  • 日志:浏览个人决策日志

手动工具执行

from mcp.mcp_toolkit import MCPToolkit

mcp = MCPToolkit()

# Generate specific reports
csv_path = mcp.generate_csv_report(decisions)
md_path = mcp.generate_markdown_report(decisions)

# Create alert file
alert_path = mcp.create_alert_file(critical_decisions, 'ESCALATE')

渲染部署(免费层)

步骤1:准备存储库

chmod +x start.sh

步骤2:创建渲染Web服务

  1. 首选 渲染仪表板
  2. 点击 新 → 网络服务
  3. 连接你的Git仓库
  4. 配置:
    • 名字:风险监测代理
    • 环境:Python 3
    • 生成命令: pip install -r requirements.txt
    • 开始命令: ./start.sh
    • 实例类型:免费

步骤3:持久磁盘(可选)

对于跨部署的持久MCP文件:

  1. 在渲染服务设置中→ 磁盘
  2. 添加磁盘: /opt/render/project/src/mcp_outputs
  3. 大小:1GB(免费层)

备注:如果没有持久磁盘,MCP文件将在每次部署时重置。它们仍然致力于基于会话的监控。


运作原理

MCP代理循环

FETCH → EVALUATE → DECIDE → REMEMBER → MCP TOOLS → PRESENT

新MCP阶段:

  • 分别记录每个决策
  • 为关键项目生成警报文件
  • 创建全面的报告
  • 所有输出均可通过UI获得

为什么选择这些MCP工具?

基于文件系统=免费且可部署:

  • 无API成本(与Slack、电子邮件服务不同)
  • 不要求进行验证
  • 适用于渲染自由层
  • 可在不同环境之间移动

生产效益:

  • 审计跟踪(记录的每个决策)
  • 导出功能(CSV用于分析)
  • 警报文档(可共享文本文件)
  • 状态快照(JSON用于备份)

MCP工具配置

更改输出目录

# In orchestrator.py
agent = RiskMonitorAgent(enable_mcp=True)

# Custom output directory
from mcp.mcp_toolkit import MCPToolkit
agent.mcp = MCPToolkit(output_dir="custom_outputs")

清理旧文件

# Remove files older than 7 days
agent.mcp.cleanup_old_files(days=7)

禁用MCP工具

# Initialize without MCP
agent = RiskMonitorAgent(enable_mcp=False)

技术栈

组件 技术 目的
UI框架 Streamlit 实时仪表板
ML模型 DistilBERT-MNLI 零样本分类
数据源 RSS源 实时网络安全新闻
策略引擎 Python 确定性决策
记忆 JSON文件 持久状态
MCP工具 文件系统 报告、警报、日志
部署 渲染 免费层托管

MCP与传统代理框架

功能 此代理 LangChain AutoGPT
控制 基于代码的规则 基于提示 基于提示
工具 文件系统MCP API-重型 API-轻型
成本 $0 $$(API) $$$(APIs)
决定论 100% ~60% ~40%
可解释性 完整跟踪 有限 黑盒
部署 免费套餐 需要付费 需要付费

局限性

  • 仅限文件系统:没有云存储集成(设计用于免费部署)
  • 无实时通知:文件已生成,未推送
  • 手动下载:用户必须从UI下载报告
  • 基于会话的无持久磁盘:重新部署时重置文件(除非使用渲染磁盘)

贡献

分叉并适应您的需求**


致谢

  • 拥抱脸:变压器库
  • 溪流:UI框架
  • 黑客新闻与Bleeping计算机:RSS源
  • MCP社区:工具设计的灵感