Skip to content

审计日志 (audit)

Headless 命令 — 不依赖桌面 GUI,直接使用核心包运行。适用于服务器、CI/CD、容器化等无桌面环境。

核心特性

  • 📋 8 种事件类型: auth、data_access、data_modify、system、security、export、import、admin
  • ⚠️ 4 个风险级别: low、medium、high、critical 自动评估
  • 🔒 敏感数据脱敏: 自动屏蔽密码、API Key、私钥、Token
  • 🔍 日志搜索: 按关键词和事件类型搜索
  • 📤 多格式导出: 支持 JSON 和 CSV 格式导出
  • 🧹 自动清理: 按时间范围清理旧日志

概述

ChainlessChain CLI 提供完整的操作审计日志系统,支持风险评估和敏感数据脱敏。

  • 8 种事件类型: auth, data_access, data_modify, system, security, export, import, admin
  • 4 个风险级别: low, medium, high, critical
  • 自动风险评估: 根据操作类型自动判定风险等级
  • 敏感数据脱敏: 自动屏蔽密码、API Key 等敏感信息

命令参考

audit log — 查看最近事件(默认)

bash
chainlesschain audit log
chainlesschain audit log -n 50           # 最近50条
chainlesschain audit log --type security # 按类型过滤
chainlesschain audit                     # 等同于 audit log

显示最近的审计事件列表。

audit search — 搜索事件

bash
chainlesschain audit search <keyword>
chainlesschain audit search "delete"
chainlesschain audit search "login" -n 100

按关键字搜索审计日志。

audit stats — 统计信息

bash
chainlesschain audit stats

显示审计日志统计:总事件数、按类型分布、高风险事件数等。

audit export — 导出日志

bash
chainlesschain audit export
chainlesschain audit export --format csv    # CSV 格式
chainlesschain audit export --format json   # JSON 格式(默认)
chainlesschain audit export -o audit.json   # 指定输出路径

导出审计日志为 JSON 或 CSV 格式。

audit purge — 清理旧日志

bash
chainlesschain audit purge --before 90     # 清理90天前的日志

删除指定天数前的审计日志(需确认)。

audit types — 列出事件类型

bash
chainlesschain audit types

显示所有可用的事件类型及其说明。

事件类型

类型说明默认风险
auth认证事件medium
data_access数据访问low
data_modify数据修改medium
system系统操作low
security安全事件high
export数据导出medium
import数据导入low
admin管理操作high

风险级别

级别含义触发条件
low低风险只读操作
medium中等风险数据修改
high高风险安全相关、管理操作
critical严重风险删除操作、权限变更

敏感数据脱敏

审计日志自动脱敏以下敏感信息:

  • password***
  • apiKeysk-***...xxx (保留前3后3位)
  • privateKey***
  • secret***
  • token***

系统架构

CLI 命令执行 → audit-logger.js (自动拦截)

        ┌────────────┼────────────┐
        ▼            ▼            ▼
   事件分类      风险评估     数据脱敏
   (8 types)   (4 levels)  (password/key/token)
        │            │            │
        └────────────┼────────────┘

              SQLite audit_logs 表

        ┌────────────┼────────────┐
        ▼            ▼            ▼
    log/search    stats       export (JSON/CSV)

安全考虑

  • 审计日志自动脱敏敏感信息(密码、API Key、私钥、Token)
  • purge 操作不可恢复,建议先 export 备份
  • export 导出的文件可能包含操作记录,注意保管
  • 高风险和严重风险事件应定期检查

故障排查

问题解决方案
log 为空审计日志在 CLI 操作时自动记录,需先执行其他命令
search 无结果尝试更宽泛的关键词,或指定 --type 过滤
export 文件过大使用 purge --before 90 清理旧日志后重新导出
脱敏后数据无法识别脱敏不可逆,原始值需从其他途径获取

关键文件

  • packages/cli/src/commands/audit.js — 命令实现
  • packages/cli/src/lib/audit-logger.js — 审计日志库

相关文档

基于 MIT 许可发布