nuclide-research/VisorLog

GitHub: nuclide-research/VisorLog

VisorLog:AI基础设施OSINT的生命周期发现账本。

Stars: 1 | Forks: 0

# 视觉日志 NuClide OSINT 工具链的 ECS 标准化、生命周期跟踪、只读的发现账本。 VisorLog 将 aimap、VisorGoose、VisorRAG 和 ollama-recon 的 AI 基础设施发现存储在单个 SQLite 数据库中(默认为 `visorlog.db`)。每个发现都经过六个阶段的生命周期。`ingest` 命令标准化三种扫描格式;`query` 通过部门、严重性、状态、标签、国家、来源、TLD 或日期范围进行筛选;`alert` 在过时或高严重性的开放发现上触发四个内置规则;`serve` 在 `127.0.0.1:8765` 上启动网络仪表板。所有命令都接受 `--db ` 以指向非默认数据库文件。 ## 安装 ``` go install github.com/nuclide-research/VisorLog@latest ``` 或者从源代码构建: ``` git clone https://github.com/nuclide-research/VisorLog cd VisorLog go build -o visorlog . ``` Go 1.22 或更高版本。 ## 使用 ``` visorlog [--db ] ``` | 命令 | 功能 | |------|--------| | `ingest` | 从 NDJSON 或 VisorGoose / ollama-recon 状态文件读取事件 | | `query` | 过滤并打印发现 | | `update` | 转变发现的生命周期状态 | | `status` | 严重性直方图和部门分解 | | `alert` | 运行内置警报规则 | | `report` | 编写 Markdown 报告 | | `add` | 手动插入发现 | | `serve` | 启动网络仪表板 | ### 摄取 ``` visorlog ingest # NDJSON from stdin visorlog ingest --from findings.ndjson # NDJSON from file visorlog ingest --from visorgoose-state.json --format visorgoose visorlog ingest --from ollama-gov-state.json --format ollama-recon visorlog ingest --from findings.ndjson --sector government --dedup ``` | 标志 | 默认 | 影响 | |------|---------|--------| | `--from ` | stdin | 从文件读取 | | `--format ` | `ndjson` | `ndjson`, `visorgoose`, `ollama-recon` | | `--sector ` | | 覆盖所有导入事件的部门 | | `--dedup` | true | 跳过数据库中已存在的 IP(NDJSON:通过来源+笔记对跳过) | ### 查询 ``` visorlog query --severity critical --status open visorlog query --sector government --country ID --json visorlog query --tags TAKEOVER,CLOUD --format csv visorlog query --since 2026-05-19 --until 2026-05-19T23:59:59Z ``` | 标志 | 影响 | |------|--------| | `--sector ` | government, university, healthcare, commercial, isp, military | | `--severity ` | critical / high / medium / low / info | | `--status ` | 生命周期阶段 | | `--tag ` | 单个标签子串 | | `--tags X,Y,Z` | 多标签 OR(任意匹配) | | `--country ` | ISO 3166 alpha-2 | | `--source ` | 发现工具 | | `--tld ` | 顶级域名 | | `--since ` | 时间戳 >=(YYYY-MM-DD 或 RFC3339) | | `--until ` | 时间戳 <=(YYYY-MM-DD 或 RFC3339) | | `--limit ` | 最大结果(默认 100) | | `--format ` | 表格 / json / csv / md | | `--json` | `--format json` 的快捷方式 | ### 更新 ``` visorlog update 4 --status disclosed --note "emailed cert@example.org" visorlog update 4 --status acknowledged visorlog update 4 --status remediated ``` ### 添加 ``` visorlog add --ip 203.0.113.10 \ --hostname ollama.example.gov \ --org "Example Agency" \ --country US --sector government --tld .gov \ --severity critical --tags TAKEOVER,CLOUD \ --source manual ``` ### 服务 ``` visorlog serve # dashboard at 127.0.0.1:8765 visorlog serve --addr 0.0.0.0:9000 # custom listen address ``` ## 数据库模式 一个表,`events`,包含五个索引列: | 列 | 类型 | 备注 | |----|------|-------| | `id` | INTEGER | 自增主键 | | `timestamp` | TEXT | RFC3339,UTC | | `event_category` | TEXT | `discovery`,`disclosure`,`remediation`,`regression`,`acknowledged` | | `event_type` | TEXT | `created`,`updated`,`closed` | | `event_severity` | TEXT | `critical`,`high`,`medium`,`low`,`info` | | `host_ip` | TEXT | | | `host_hostname` | TEXT | | | `org_name` | TEXT | | | `org_country` | TEXT | ISO 3166 alpha-2 | | `sector` | TEXT | `government`,`university`,`healthcare`,`commercial`,`isp`,`military` | | `tld` | TEXT | | | `tags` | TEXT | JSON 数组 | | `source` | TEXT | `visorgoose`,`aimap`,`ollama-recon`,`manual` 等 | | `vuln_ids` | TEXT | CVE ID 的 JSON 数组 | | `lifecycle_status` | TEXT | 当前阶段 | | `notes` | TEXT | 只读状态转换日志 | | `raw` | TEXT | 可选 JSON 有效负载 | 在 `host_ip`、`lifecycle_status`、`event_severity`、`sector`、`timestamp` 上建立索引。 ## 生命周期 ``` open -> disclosed -> acknowledged -> remediated -> verified -> archived ``` 每个 `update` 调用都会将一个带时间戳的笔记追加到 `notes` 列。记录永远不会被修改或删除。 ## 警报规则 `visorlog alert` 评估四个内置规则: | 规则 | 触发条件 | |------|-----------| | `new-takeover` | 任何标记为 `TAKEOVER` 的开放发现 | | `new-critical` | 任何开放的关键发现 | | `stale-critical` | 老于 7 天的开放关键发现 | | `stale-high` | 老于 14 天的开放高发现 | ## 示例 ``` $ visorlog --db nuclide.db status === OPEN FINDINGS === critical ██ 2 medium ██ 2 === BY SECTOR / SEVERITY / STATUS === SECTOR SEVERITY STATUS COUNT government critical open 2 government medium open 1 ``` ``` $ visorlog --db nuclide.db alert [new-takeover] TAKEOVER open: 203.0.113.10 (ollama.example.gov) [government] [stale-critical] STALE critical: 192.0.2.5 open for >7 days — disclose? ``` ## 相关工具 ``` VisorGoose --+ aimap --+--> visorlog ingest --> visorlog.db --> query / alert / report / serve ollama-recon--+ ``` VisorLog 输出为 VisorScuba 提供合规评分。 ## VisorLog 不是什么 VisorLog 是一个账本,不是一个扫描器。它不会探测目标或生成发现。它标准化其他工具产生的结果,跟踪生命周期状态,并触发警报。`raw` 列保留了原始扫描有效负载,但 VisorLog 不会对其进行解释。 ## 许可证 MIT。NuClide 工具链的一部分。联系:[nuclide-research.com](https://nuclide-research.com)
标签:AI基础设施, ESC4, EVTX分析, Go语言, OSINT, SQLite数据库, Web仪表盘, 内核监控, 威胁情报, 开发者工具, 数据去重, 数据合规, 数据审计, 数据导入, 数据导出, 数据报告, 数据更新, 数据格式转换, 数据检索, 数据监控, 日志审计, 生命周期管理, 程序破解, 网络安全, 隐私保护