Token导航 LogoToken导航TokenDH.com
calseta (31cfd6) logo
安全风控未说明官方级别未说明来源级核验

calseta (31cfd6)

MCP Server

Calseta是一个开源的安全代理数据层,用于从任何SIEM接收安全警报,并通过威胁情报和身份上下文对其进行丰富处理,最终将干净、结构化的负载交付给安全代理,以便代理专注于推理而非数据处理。

工具数

0

提示词数

0

GitHub Stars

5

资源数

0
开源PythonClaudeClaude

安装说明

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

作者 / 组织

calseta

提供方

calseta

最后核验

2026/5/17 20:20

快速接入

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

详细介绍

卡尔塞塔

安全代理的开源数据层。

Calseta接收来自任何SIEM的安全警报,用威胁情报和身份上下文丰富它们,并向您的安全代理提供干净、结构化的有效载荷——因此代理将令牌用于推理,而不是管道。

v1.0.0已发布。 Calseta已经上线,可以使用了。自助主机 docker compose up,连接您的SIEM,并开始构建代理。标记此回购以跟踪开发。

______________________________________________________________________

问题

为警报调查构建人工智能代理的安全团队一直遇到同样的问题:

  • 背景差距 --代理无法访问检测规则文档、运行手册、IR计划和SOP。没有组织背景,代理会产生通用输出。
  • 整合负担 --调查单个警报需要调用5个以上的外部API。每个集成都是定制代码,构建起来很昂贵,维护起来很脆弱。
  • 代币浪费 -原始API响应冗长且无结构。将它们填充到上下文窗口中的代理会燃烧令牌并产生更差的输出。
  • 无确定性层 --富集和警报路由是确定性任务,不应使用LLM令牌。如今,代理自己这样做是因为没有专门构建的基础设施。

Calseta在您的代理看到单个字节之前处理所有这些。

______________________________________________________________________

运作原理

每个警报都经过五个确定的步骤:

Alert Source → Ingest → Normalize → Enrich → Contextualize → Dispatch
                                                                   │
                                                    Your AI Agent ←──┘
                                                    (webhook or MCP)
  1. 摄取 --警报通过webhook从Sentinel、Elastic、Splunk或任何兼容源到达
  2. 规范化 --映射到干净的、代理可读的模式;源特定字段保存在 raw_payload
  3. 丰富 --通过VirusTotal、AbuseIPDB、Okta和Entra并行丰富的指标(IP、域、哈希、帐户)
  4. 情境化 --通过目标规则附加的检测规则文档、运行手册、IR计划、SOP和工作流文档
  5. 派遣 -通过webhook传递给注册代理的富集有效载荷,或通过REST API或MCP提取

您的代理收到一个结构化对象,其中包含调查和响应所需的一切。

______________________________________________________________________

为什么不是OCSF?

OCSF是为数据生产者(EDR供应商、网络设备、身份提供者)设计的,可以将他们的字段映射到一个通用模式,这样安全团队就可以从不同的来源摄取到SIEM中。设计选择反映了这一目标:数字类ID、纪元时间戳和 unmapped 针对机器索引和SIEM存储进行了优化的存储桶。

这对人工智能代理来说是错误的权衡。

Calseta标准化为自己的代理原生模式:人类可读的字段名,作为一级输出而非事后补充的丰富数据,以及每个有效载荷中都包含的组织上下文。指标也存在于按以下方式键入的关系表中 (type, value) --一个全局实体模型,以一种不适合OCSF扁平结构的方式跟踪警报中的IOC历史。

目标是让代理将令牌用于推理,而不是解析。

______________________________________________________________________

快速入门

git clone https://github.com/calseta/calseta
cd calseta
cp .env.local.example .env
docker compose up

三个服务启动:API服务器(localhost:8000),MCP服务器(localhost:8001),PostgreSQL(localhost:5432).管理用户界面位于 localhost:8000 如果你跑过 make ui-build.

# Bootstrap your first admin API key
docker compose exec api python -m app.cli.create_api_key \
  --name my-admin --scopes admin

# Save the printed key (cai_...) — it's shown once, never again

API参考文件可在 http://localhost:8000/redoc 一旦堆栈运行。

完整设置指南,请访问 docs/architecture/DEVELOPMENT.md.生产部署 docs/guides/HOW_TO_DEPLOY.md.

______________________________________________________________________

您的代理人会收到什么

每个警报上都有一个富集的有效载荷:

{
  "event": "alert.enriched",

  "alert": {
    "uuid": "9f2a-b3c1-...",
    "title": "Impossible Travel Detected",
    "severity": "High",
    "source": "elastic",
    "status": "Open",
    "created_at": "2025-01-15T03:42:18.441Z"
  },

  "indicators": [
    {
      "type": "ip",
      "value": "185.220.101.47",
      "first_seen": "2024-08-12T00:00:00.000Z",
      "last_seen": "2025-01-15T03:42:18.441Z",
      "geo": { "country": "Germany", "city": "Frankfurt am Main" },
      "virustotal": { "malicious": 14, "suspicious": 2, "score": "47/94" },
      "abuseipdb": { "score": 97, "categories": ["hacking", "vpn"] },
      "greynoise": { "classification": "malicious", "name": "TOR Exit Node", "noise": true }
    },
    {
      "type": "ip",
      "value": "67.180.201.3",
      "first_seen": "2022-03-05T00:00:00.000Z",
      "last_seen": "2025-01-15T01:10:42.000Z",
      "geo": { "country": "United States", "city": "San Francisco" },
      "virustotal": { "malicious": 0, "suspicious": 0, "score": "0/94" },
      "abuseipdb": { "score": 4, "categories": [] }
    },
    {
      "type": "account",
      "value": "nick.hathaway@calseta.com",
      "okta": {
        "status": "ACTIVE",
        "profile": {
          "full_name": "Nick Hathaway",
          "title": "Senior Software Engineer",
          "department": "Engineering",
          "employee_type": "employee",
          "location": "San Francisco, CA, US",
          "manager": "Emily Rhodes",
          "manager_email": "emily.rhodes@calseta.com"
        },
        "account_created": "2022-03-14T09:00:00.000Z",
        "last_login": "2025-01-14T22:31:05.000Z",
        "last_password_change": "2024-10-01T11:23:44.000Z",
        "mfa_factors": [
          { "type": "push", "provider": "OKTA", "status": "ACTIVE" },
          { "type": "totp", "provider": "GOOGLE", "status": "ACTIVE" }
        ],
        "group_membership": ["Engineering", "VPN-Users", "github-org-members"]
      }
    }
  ],

  "detection_rule": {
    "name": "Impossible Travel",
    "rule_id": "impossible-travel-v1",
    "severity": "High",
    "priority": "High — likely credential compromise or session hijacking",
    "mitre_tactics": ["TA0001 - Initial Access", "TA0005 - Defense Evasion", "TA0006 - Credential Access"],
    "mitre_techniques": ["T1078 - Valid Accounts"],
    "false_positive_tags": ["vpn", "corporate_proxy", "executive_travel"],
    "blind_spots": ["same-region cross-state travel", "VPN or proxy exit nodes"],
    "goal": "Detect credential compromise or session hijacking via geo-velocity analysis.",
    "documentation": "## Overview\nCorrelates sign-in timestamps and geolocation to flag logins from two countries within a short window — physically impossible without credential theft or session hijacking.\n\n## Responses\n1. Confirm travel or VPN activity with user\n2. Force sign-out and reset credentials\n3. Review concurrent risky sign-in alerts\n4. Notify SOC team of potential compromise"
  },

  "past_alerts": [
    {
      "uuid": "3c1d-a2f4-...",
      "title": "Impossible Travel Detected",
      "status": "closed",
      "classification": "true_positive_suspicious_activity",
      "closed_at": "2024-11-03T14:22:00.000Z",
      "indicators": ["91.108.56.130", "nick.hathaway@calseta.com"],
      "analyst_notes": "Confirmed malicious. Sessions revoked. Password reset. INC-2847."
    }
  ],

  "context_documents": [
    {
      "title": "Company Incident Response Plan",
      "type": "ir_plan",
      "content": "## Incident Response Plan\n1. Detect & triage\n2. Contain affected accounts\n3. Notify security lead\n4. Preserve evidence\n5. Remediate & recover..."
    },
    {
      "title": "Account Compromise Runbook",
      "type": "runbook",
      "content": "## Account Compromise Response\n1. Isolate account\n2. Revoke active sessions\n3. Force password reset\n4. Re-enroll MFA..."
    }
  ],

  "workflows": [
    { "name": "Revoke User Sessions", "description": "Terminate all active sessions for the affected account across all providers." },
    { "name": "Force Password Reset", "description": "Expire current credentials and require the user to set a new password on next login." },
    { "name": "Request User Attestation", "description": "Send the user a confirmation request to verify whether the activity was theirs." },
    { "name": "Notify Security Team", "description": "Page the on-call analyst and open a P1 incident ticket for human review." }
  ]
}

______________________________________________________________________

特性

特性描述
警报摄入基于插件。附带Sentinel、Elastic、Splunk和通用webhook
浓缩发动机异步、并行、缓存。VirusTotal、AbuseIPDB、Okta、Entra
检测规则库摄入时自动创建。MITRE用标记文件绘制
上下文文档运行手册、IR计划、SOP——通过目标规则附加到警报中
工作流目录SOC剧本作为结构化降价,作为背景出现在代理人面前
REST API所有实体的完整CRUD。包含OpenAPI规范
MCP服务器端口8001上的本地MCP。可与任何MCP兼容的代理或工具配合使用
指标API警报量、MTTD、假阳性率——可通过REST和MCP访问
API密钥验证用于代理访问的作用域API密钥
管理用户界面内置深色主题管理面板,用于分类、配置和监控

______________________________________________________________________

管理用户界面

Calseta附带了一个内置的管理面板,该面板由同一个FastAPI容器提供服务,不需要额外的基础设施。

用户界面提供:

  • 仪表盘 -指标API的KPI卡和图表
  • 警报 --带过滤器的分页列表,带指标、发现、上下文、活动时间线和原始有效载荷查看器的深入查看
  • 工作流 --列表、创建、代码编辑器、测试沙盒、运行历史和审批管理
  • 设置 -检测规则、上下文文档、源集成、代理注册和API密钥

身份验证使用与REST API相同的API密钥。粘贴a cai_ 登录键。

UI是用Vite构建的React SPA。在生产环境中,它被编译为静态文件,并由根路径上的FastAPI提供服务。在开发过程中,Vite的开发服务器在端口5173上运行,带有热重载,并将API调用代理到后端。

# Development (hot reload)
make ui-dev          # http://localhost:5173

# Production build (served at http://localhost:8000)
make ui-build

______________________________________________________________________

沙盒模式

沙盒模式允许您使用模拟丰富数据和预反馈警报来探索完整的平台,不需要真正的API密钥。

启用它 通过设置两个env变量:

ENRICHMENT_MOCK_MODE=true
SANDBOX_MODE=true

然后正常启动:

docker compose up

您将获得:

  • 4个模拟富集提供者(VirusTotal、AbuseIPDB、Okta、Entra)——确定性响应,无HTTP调用
  • 来自Sentinel、Elastic和Splunk的5个预种子警报,具有现实场景(暴力破解、恶意软件、不可能的旅行、数据泄露、编码的PowerShell)
  • 带有MITRE映射和调查文档的检测规则
  • 通过目标规则将上下文文档(运行手册、SOP、IR计划)与警报相匹配
  • 公共只读API密钥: cai_sandbox_demo_key_not_for_production
  • UTC午夜每日自动重置——用户创建的数据被擦除,赛程重新播种

手动种子/重置:

# Seed sandbox data on an existing database
docker compose exec api python -m app.cli.seed_sandbox

# Or via Make
make seed-sandbox

禁用它 通过删除或将env变量设置为 false。使用相同的Docker镜像——没有单独的沙盒构建。

______________________________________________________________________

技术栈

Python 3.12·FastAPI·PostgreSQL 15·SQLAlchemy 2.0异步·Pydantic v2·Alembic·delay·httpx·MCP Python SDK·Docker·React 19·Vite·顺风CSS·TanStack查询/路由器

______________________________________________________________________

项目状态

v1.0.0已经发布。所有核心系统都经过构建和测试:

  • \[x\] 架构和API设计
  • \[x\] 项目脚手架和Docker Compose
  • \[x\] 数据库模式和迁移
  • \[x\] 警报接收(Sentinel、Elastic、Splunk、通用webhook)
  • \[x\] 富集引擎(VirusTotal、AbuseIPDB、Okta、Entra)
  • \[x\] 上下文文档系统
  • \[x\] 带有审批门的工作流引擎
  • \[x\] 代理注册和webhook调度
  • \[x\] REST API(完整的CRUD,OpenAPI规范)
  • \[x\] MCP服务器(12个资源,6个工具)
  • \[x\] 管理UI
  • \[x\] 代理示例
  • \[x\] 1200+次测试

______________________________________________________________________

贡献

欢迎捐款。目前最有价值的领域:

  • Bug报告和反馈
  • 其他警报源集成
  • 额外的富集提供程序(通过CRUD API无代码,或社区JSON配置)
  • 示例代理和工作流脚本

CONTRIBUTING.md 关于如何开始。阅读 CLAUDE.mdPRD.md 在打开PR之前,它们涵盖了架构决策、编码理念和扩展模式。

该平台是为扩展而设计的。警报源使用干净的插件接口——添加新源是一个文件,不需要进行核心更改。扩展提供程序是数据库驱动的-添加新的提供程序只需一个API调用或JSON配置,不需要更改代码,也不需要重新启动。社区提供程序以JSON文件共享,并与一个 curl 命令。完整的操作指南(docs/guides/HOW_TO_ADD_ALERT_SOURCE.md, docs/guides/HOW_TO_ADD_ENRICHMENT_PROVIDER.md, docs/project/COMMUNITY_INTEGRATIONS.md)v1版本附带了可运行的示例代理。

______________________________________________________________________

链接

______________________________________________________________________

*Calseta不是AI SOC产品。它不构建、托管或运行AI代理。正是数据基础架构使您的代理快速、准确且经济高效。*

目录标签

目录标签

开源PythonClaude安全代理本地部署威胁情报数据丰富SIEM集成

支持客户端

Claude

接入字段

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

未说明

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

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明api-key部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP