VrtxOmega/veritas-opensearch-incident-proofpack
GitHub: VrtxOmega/veritas-opensearch-incident-proofpack
一个为 OpenSearch Agent Skills 设计的非执行式工作流工具,将遥测数据转化为确定性、可验证的事件证据包,用于事件调查中的证据保全与矛盾检测。
Stars: 0 | Forks: 0
# OpenSearch 事件证明包
一个与 Agent Skills 兼容的非执行式工作流,用于将 OpenSearch 日志、追踪、告警和指标转化为确定性的事件证据包。
它专为以下危险时刻之间的情景而设计:
以及:
该技能会分别保留支持性和反驳性的遥测数据,将相关联的数据源折叠为依赖组,检测过期或超出时间窗口的证据,绑定精确的修复预览,并逐字节地重新计算整个数据包。
## 它证明了什么
- 数据包与声明的案例相匹配;
- 源查询和响应与其记录的摘要相匹配;
- 相同的证据产生相同的证据状态;
- 修复预览在评估后未发生改变;
- 相关联的数据源未被计为独立投票。
## 它不能证明什么
- 数据源陈述的是真相;
- 事件声明在事实上是正确的;
- 修复方案是安全或有效的;
- 操作员批准了任何事情;
- 可以执行任何操作。
每个数据包包含:
```
{"execution_authorized": false}
```
## 快速演示
```
uv run python skills/investigate-opensearch-incidents/scripts/incident_proofpack.py \
build \
--case skills/investigate-opensearch-incidents/assets/payment-api-case.json \
--out /tmp/payment-api-proofpack.json
uv run python skills/investigate-opensearch-incidents/scripts/incident_proofpack.py \
verify \
--case skills/investigate-opensearch-incidents/assets/payment-api-case.json \
--packet /tmp/payment-api-proofpack.json
uv run python skills/investigate-opensearch-incidents/scripts/incident_proofpack.py \
hostile-check \
--case skills/investigate-opensearch-incidents/assets/payment-api-case.json \
--packet /tmp/payment-api-proofpack.json
```
预期证据状态:`CONFLICTED`。日志和追踪支持数据库连接池饱和的观点,而独立收集的指标源反驳了这一点。修复预览被阻止。
## 五分钟带字幕演示
[](https://github.com/VrtxOmega/veritas-opensearch-incident-proofpack/releases/download/v0.1.0/veritas-opensearch-incident-proofpack-demo-v0.1.0.mp4)
这段 4:55 的演示带有完整的字幕,并且是由真实的 `build`、`verify` 和 `hostile-check` 输出生成的。它的[机器可读清单](https://github.com/VrtxOmega/veritas-opensearch-incident-proofpack/releases/download/v0.1.0/veritas-opensearch-incident-proofpack-demo-v0.1.0.manifest.json)记录了测量的持续时间、媒体摘要、确切的包结果、五个被拒绝的变更以及实时 OpenSearch 集成证据。重新构建说明在 [`demo/README.md`](demo/README.md) 中。
## 为什么选择 OpenSearch
OpenSearch 是证据平面:
- PPL 和 Query DSL 检索有时间限制的日志和指标;
- 追踪索引将 span 连接到同一个事件;
- 告警和部署索引提供独立的证伪数据;
- 存储的案例和数据包保持可搜索和可重放;
- 任何自管理、Docker、Kubernetes 或托管的 OpenSearch 发行版都可以提供证据。
确定性数据包构建器没有专有依赖项,并且可以离线对保存的 OpenSearch 响应进行工作。在进行重放时,实时集群是可选的;仅在收集新证据时,才是强制性的。
## 从实时集群读取
内置的收集器仅暴露 OpenSearch 读取端点。它要求远程主机使用 HTTPS,仅允许在 loopback 上使用 HTTP,拒绝嵌入在 URL 中的凭据,限制请求和响应大小,并写入规范的 JSON。小数 JSON 数字被解析为精确的小数并保持为数字类型;它们绝不会被静默转换为二进制浮点数或字符串。
```
export OPENSEARCH_USERNAME='reader'
export OPENSEARCH_PASSWORD='...'
uv run python skills/investigate-opensearch-incidents/scripts/read_opensearch.py \
--endpoint https://opensearch.example \
--mode search \
--index 'logs-*' \
--query query.json \
--out response.json
```
该账户应具有只读访问权限。该收集器没有更新、批量、删除、索引管理或任意路径选项。
## 仓库布局
```
skills/investigate-opensearch-incidents/
SKILL.md
scripts/
references/
assets/
tests/
docs/
```
## 测试
```
uv sync --extra test
uv run ruff check .
uv run mypy
uv run pytest --cov=incident_proofpack --cov=normalize_opensearch --cov=read_opensearch
uv run python /home/rage/.codex/skills/.system/skill-creator/scripts/quick_validate.py \
skills/investigate-opensearch-incidents
```
一个可选的集成测试仅在明确配置的 loopback 集群上创建和删除 `veritas-proofpack-integration`:
```
OPENSEARCH_INTEGRATION_URL=http://127.0.0.1:19200 \
uv run pytest -m integration tests/test_live_opensearch.py
```
该测试拒绝非 loopback 端点。它插入两个带有小数延迟值的文档,使用内置的限制收集器发出 `POST /veritas-proofpack-integration/_search` 请求,验证这两个精确值,并在 `finally` 块中删除其测试索引。
## 状态
这是一个公开的比赛候选项目,已发布经过验证的 v0.1.0 版本:
- 源码:
- 发布:
它尚未提交给比赛,也没有任何独立验证、OpenSearch 验收、奖励、付款或生产授权。它不是经过认证的控制措施、独立审计、生产执行器或已接受的 OpenSearch 贡献。
标签:告警运维, 子域名突变, 安全规则引擎, 确定性工作流, 证据链管理, 请求拦截, 逆向工具