writer/aperio

GitHub: writer/aperio

Aperio 是一款开源的 SaaS 安全态势管理工具,能够检测主流 SaaS 应用的配置风险与 OAuth 影子 IT,并将标准化安全发现实时流式传输到现有 SIEM 平台中。

Stars: 0 | Forks: 0

# Aperio **面向 SIEM 原生时代的 SaaS 安全态势管理。** Aperio 是一个开源的 SSPM,它连接到你的 SaaS 资产,暴露态势风险和 OAuth 授权,并将标准化的调查结果推送到你已经在运营的 SIEM 中。当前的 `main` 分支提供了一个由 Prisma/Postgres 数据支持的 Go/ConnectRPC API、一个 Next.js 操作员控制台、一个 stdio MCP broker、一个摄取 worker、一个可选的 NATS JetStream 事件总线,以及一个带有 Splunk HEC、Panther、Panopticon、Elasticsearch、Datadog Logs、通用 webhook 和 JSON Lines 文件适配器的持久 SIEM 调度器。 实际上,Aperio 会摄取 connector 事件,评估检测规则,跟踪用户授权的 OAuth 应用(影子 IT)和全域委托,开启并去重调查结果,并将标准的 `aperio.finding.v1` 信封分发到你的 SIEM 目标。 ![Node](https://img.shields.io/badge/Node-20%2B-green?style=flat&logo=node.js) ![Next.js](https://img.shields.io/badge/Next.js-16-black?style=flat&logo=next.js) ![Prisma](https://img.shields.io/badge/Prisma-5-2D3748?style=flat&logo=prisma) ![License](https://img.shields.io/badge/License-MIT-blue.svg) ## 当前功能 - **Connector 目录** — 内置支持 GitHub、Slack、Google Workspace、Okta、1Password、Microsoft 365 和 Atlassian(Jira 和 Confluence),带有加密凭据存储(AES-256-GCM)和按检查项切换的功能。 - **态势检测** — 公开仓库检测、MFA 禁用检测,以及深入的 Google Workspace 检测包,涵盖外部共享、管理员态势(超级管理员 2SV、恢复电子邮件)、Gmail 自动转发/委派/代发,以及全域委托白名单。 - **影子 IT** — 按用户的 `users.tokens.list` 扫描,对用户授权的每个第三方 OAuth 应用进行分类,采用针对 Google scope 敏感度校准的分级风险评分(CRITICAL/HIGH/MEDIUM/LOW)。 - **Findings 生命周期** — 当底层信号消失时,在下一次同步时自动解决、证据持久化、严重性评分、通过稳定 key 去重,以及带有补偿控制的风险例外。 - **SIEM 扇出** — 持久化 outbox,带有适用于 Splunk HEC、Panther、Panopticon、Elasticsearch、Datadog Logs、通用 webhook 和 JSON Lines 文件接收器的适配器。标准信封 `aperio.finding.v1`。 - **事件契约** — 基于 protobuf 的 Aperio 生命周期信封,封装在兼容 Cerebro 的 `EventEnvelope` 消息中,带有可选的 NATS JetStream 发布功能,用于摄取、finding 生命周期和声明扇出事件。 - **修复** — 针对 Okta(暂停、重置 MFA)和 Slack(撤销 OAuth 应用)的真实处理程序;其余为存根且可插拔。 - **操作员控制台** — 带有仪表板、findings、应用、影子 IT、安全图谱、connectors、SIEM 目标和管理页面的 Next.js 应用。全文命令面板、感知角色的导航、MFA 注册。 - **Agents 和 MCP** — 租户范围内的 agent 运行时,它创建 `AgentProposal` 行,要求在执行任何 provider 端写入之前必须经过人工批准。一个 stdio MCP broker 通过 JSON-RPC 为 MCP 原生客户端镜像核心任务和 SIEM 操作。 - **默认多租户** — 每个实体都限定在一个 `Organization` 中。租户隔离在路由、存储库和集成层强制执行,并在 `internal/bootstrap/tenant_isolation_test.go` 中具有跨租户测试覆盖率。 ## 架构 ``` Operator console (Next.js) MCP clients (stdio) | | v v Go/ConnectRPC API MCP broker (cmd/aperio, internal) (cmd/mcp-broker, internal/mcpbroker) | +-----------------------------+ | | | v v v Connectors Detection SIEM dispatcher (GitHub, rules + (outbox worker) Slack, findings | Google, lifecycle v Okta, | Splunk / Panther / 1Pass, v Panopticon / Elastic / M365, Postgres Datadog / Webhook / JSONL Atlassian) (state) | v Optional NATS JetStream (Cerebro-compatible events) ``` Go API 是 connector、finding、管理员、身份验证和 SIEM 工作流的单一事实来源。摄取 worker 将审计日志事件拉入同一个 Postgres 状态存储中。SIEM 调度器读取 `SiemDelivery` outbox,并通过重试/退避机制将每个 finding 发送到每个已启用的目标。当配置为 `APERIO_EVENT_BUS=nats` 时,Go 和 worker 进程还会将已验证的 protobuf 生命周期事件发布到 JetStream;否则,发布操作是一个安全的无操作。凭据通过 `packages/security` 使用 AES-256-GCM 进行静态加密。 ## 快速开始 ### 前置条件 - Node.js 20+(仓库目标为活跃的 LTS 版本)。 - Go 1.25+(用于 `cmd/aperio` 中的 ConnectRPC API)。 - Docker(用于通过 `docker-compose.yml` 运行本地 Postgres 和 NATS)或任何可访问的 Postgres 15+。 - npm 10+(随 Node 20 一起提供)。 - GNU Make(预装在 macOS 和大多数 Linux 发行版上)以使用下文的 `make` 目标。 ### 首次运行 最快的方法是使用 Makefile;运行 `make help` 查看所有目标。 ``` git clone https://github.com/writer/Aperio.git cd Aperio make setup # .env, deps, Postgres, migrations, and seed data make dev # Go API on :4100 + Next.js console on :3000 ``` `.env` 中的 `DATABASE_URL` 是本地 Postgres 端口的单一事实来源:`make` 在其中嵌入的端口上发布 docker-compose 数据库,并自动向 Go 服务器传递兼容 pgx 的 DSN(Prisma 的 `?schema=public` 被剥离,并为本地连接添加了 `sslmode=disable`)。 想自己运行每一个步骤?手动流程是等效的: ``` git clone https://github.com/writer/Aperio.git cd Aperio docker compose up -d # local Postgres on :5432 npm install cp .env.example .env # fill in local secrets before sharing npm run db:generate npx prisma migrate dev --schema packages/db/prisma/schema.prisma # 创建你的本地 .env (完整参考请参阅下方的 Configuration) cat > .env <
标签:EVTX分析, Go, Ruby工具, SaaS安全态势管理, SIEM集成, SSPM, 影子IT检测, 日志审计, 测试用例, 请求拦截