astoralab/astorasoc

GitHub: astoralab/astorasoc

AstoraSOC 是一款开源的 SOC 与事件响应平台,为安全团队提供从 SIEM 告警分诊、案件管理到专业报告输出的完整工作流。

Stars: 1 | Forks: 0

# AstoraSOC AstoraSOC 是由 Astora Lab 开发的开源 SOC 和事件响应平台,专为需要清晰、现代化工作流的团队而构建,涵盖告警分诊、案件管理、IOC 情报、证据处理、资产上下文、封堵治理以及可直接提交给管理层的报告。 ## 核心功能 - 支持与供应商无关的告警 webhook,带有 API key 验证并保留原始 JSON。 - 标准化的告警卡片,包含来源、检测名称、严重程度、主机、用户、源 IP、目的 IP、MITRE 以及关联的资产上下文。 - 告警转为案件前的负责人/管理员审核工作流。 - 案件工作区,包含任务、笔记、证据、IOC 情报、时间线、相关活动、封堵请求和结案审核。 - 资产情报,包含资产所有者、部门、业务职能、关键性、风险评分、关联告警和关联案件。 - Playbook 引擎,支持基于 SIEM 规则 ID、来源类别、MITRE 战术、告警类型、案件类型和通用兜底工作流。 - 专业的 DOCX/PDF 报告,包含管理层影响评估、修复详情、证据登记表、图表、审核批准以及可选的 AI 增强叙述。 - 审计日志、基于角色的访问控制、会话超时控制、安全上传和加密设置。 ## 快速开始 AstoraSOC 是容器优先的。使用 Docker 是在 Windows、Linux 或 macOS 上运行它的最简单方法。 ### 步骤 1:安装 Docker 在 Windows/macOS 上安装 Docker Desktop,或在 Linux 上安装 Docker Engine。 ### 步骤 2:打开项目文件夹 Windows PowerShell: ``` cd AstoraSOC ``` Linux/macOS 终端: ``` cd AstoraSOC ``` ### 步骤 3:创建并编辑 `.env` Windows PowerShell: ``` copy .env.example .env notepad .env ``` Linux: ``` cp .env.example .env nano .env ``` macOS: ``` cp .env.example .env open -e .env ``` 至少修改以下值: - `SECRET_KEY` - `MYSQL_PASSWORD` - `MYSQL_ROOT_PASSWORD` 使用以下命令生成 `SECRET_KEY`: ``` python -c "import secrets; print(secrets.token_urlsafe(48))" ``` 首次登录后,前往管理员设置查看或重新生成供 SIEM 集成使用的 Webhook API Key。 ### 步骤 4:启动 AstoraSOC Windows PowerShell、Linux 和 macOS: ``` docker compose up --build -d ``` ### 步骤 5:初始化数据库 ``` docker compose exec web flask --app run.py init-db docker compose exec web flask --app run.py upgrade-db docker compose exec web flask --app run.py seed-admin ``` ### 步骤 6:打开 AstoraSOC ``` http://localhost:5000 ``` 如果需要从其他设备进行局域网访问: ``` http://:5000 ``` 对于生产环境部署,请将 AstoraSOC 置于 Nginx 或 Apache 之后,并将流量转发到端口为 `5000` 的 AstoraSOC 容器。 `deployment/nginx` 和 `deployment/apache` 中提供了反向代理配置示例。 默认登录信息: - 用户名:`admin` - 密码:`ChangeMeNow123!` 默认管理员在首次登录后将被强制要求更改密码。 ## 部署端口和真实客户端 IP AstoraSOC 可以直接通过 Docker 运行,但 Windows 上的 Docker Desktop 可能会在审计日志中显示 Docker 网桥 IP,例如 `172.18.0.1`。要获取真实的管理员/分析师 IP,请将 AstoraSOC 置于转发客户端 IP header 的主机代理或反向代理之后运行。 默认 Docker 布局: ``` User browser -> http://HOST-IP:5000 -> AstoraSOC Docker web container ``` Docker Compose 暴露 AstoraSOC 的端口为: ``` host:5000 -> container:5000 ``` 如果您部署在 Nginx、Apache、Traefik、Cloudflare 或其他反向代理之后,请确保其转发真实的客户端 IP header: ``` X-Forwarded-For: X-Real-IP: X-Forwarded-Proto: http ``` 在具有管理员权限的 PowerShell 中,允许 Windows 防火墙放行端口 `5000`: ``` netsh advfirewall firewall add rule name="AstoraSOC 5000" dir=in action=allow protocol=TCP localport=5000 ``` Linux/Nginx 部署应转发到 Docker 后端并保留 header。示例配置可在以下位置找到: ``` deployment/nginx/astorasoc.conf ``` 更多部署细节位于: ``` deployment/README.md ``` ## Webhook 将告警发送至 `POST /api/webhook/alert`,并附带 header `X-API-Key: `。 AstoraSOC 与 SIEM/SOAR 无关。任何能够通过 HTTP 发送 JSON、调用 webhook、运行桥接脚本或通过 SOAR 工具转发的平台,都可以将告警发送到 AstoraSOC。常见的来源包括 Wazuh、Splunk、Microsoft Sentinel、QRadar、Elastic Security、Security Onion、Graylog、Chronicle/SecOps、Shuffle 和自定义 API 客户端。 ## 集成示例 ### 通用 SIEM/SOAR webhook 推荐模式: ``` POST /api/webhook/alert Header: X-API-Key: Content-Type: application/json ``` 尽可能使用源字段,例如 `source`、`integration`、`event_id`、`title`、`severity`、`rule_id`、`affected_host`、`affected_user`、`source_ip`、`destination_ip`、`mitre_tactic`、`mitre_technique` 和 `raw_alert`。 AstoraSOC 还会标准化常见的供应商字段变体,例如 `src_ip`、`source.ip`、`data.srcip`、`event.source_ip`、`SourceIP`、`dst_ip`、`destination.ip`、`user.name`、`agent.name`、`host.name`、`rule.description`、`event.action` 和 `detection.name`。 ### Wazuh 自定义集成 AstoraSOC 包含一个无依赖的 Wazuh 集成脚本,位于: ``` SIEM Integrations/Wazuh/custom-astorasoc.py ``` 它仅使用 Python 内置库,因此无需安装 `requests` 即可在最小化的 Wazuh Docker 容器中运行。 典型的 Wazuh 管理器放置位置: ``` cp SIEM Integrations/Wazuh/custom-astorasoc.py /var/ossec/integrations/custom-astorasoc chmod 750 /var/ossec/integrations/custom-astorasoc chown root:wazuh /var/ossec/integrations/custom-astorasoc ``` 该脚本需要: ``` custom-astorasoc ``` 示例 URL: ``` http://astorasoc-web:5000/api/webhook/alert ```
标签:Docker, 威胁情报, 安全合规, 安全运营, 安全防御评估, 库, 应急响应, 开发者工具, 扫描框架, 版权保护, 网络代理, 请求拦截, 逆向工具