Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

security(audit): 工具级审计元数据不构成企业审计日志——无 actor/认证/审批事件、可篡改、不可检索

Open
#101 11 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust

Research direction

Start by reading AuditMeta in src/tools/policy_domain/audit.rs:63-80 and the transcript overwrite path in src/transcript.rs:46-51 and src/atomic.rs. Inspect the plan approval handlers in src/http/handlers.rs:867-925, then map the missing actor, authentication, approval, integrity, retrieval, and export requirements. Done means the agreed audit model and interfaces cover those events without relying on transcript storage.

Written by the indexing model from the issue text.

Description

场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:depends-on: #85(未终态时 keeper 自动 hold)

基线 HEAD = 9165b9a0。

Summary

现有 AuditMeta(src/tools/policy_domain/audit.rs:63-80)每工具调用记录 step_id/起止时间/args_hash/副作用分类/退出状态——但没有调用者身份、没有权限判定结果;且它随 transcript 存储,transcript 是整文件覆写(temp+rename,src/transcript.rs:46-51 → src/atomic.rs),非 append-only、无签名/哈希链——文件系统任意写者可改写历史。plan approve/reject 端点连 tracing 日志都没有(src/http/handlers.rs:867-925);认证失败无审计事件;唯一外送通道是 opt-in OTel tracing(feature-gated),与安全审计事件模型无关。

缺口清单

① actor 维度(谁);② 认证事件(登录失败/凭据轮换);③ 管理操作(DELETE 会话/改配置);④ 审批决策(谁批了哪个 plan);⑤ append-only + 哈希链防篡改;⑥ 按用户/时间检索 API;⑦ 导出(SIEM 对接)。

影响

数据外带/误删事故后无法回答「谁在何时用哪个 key 让智能体做了什么、谁批的计划」——等保/ISO27001/SOC2 审计直接不过。

建议

独立 append-only 审计流(actor + session + tool + policy 决定 + 审批事件),BLAKE3 哈希链(AuditMeta 已用 BLAKE3,基建现成),提供时间范围/用户检索与导出端点;actor 依赖租户配套单的身份注入。

Dominant language
Rust
Stars
4
Forks
0
Avg merge
5h 32m
Merged PRs (30d)
7

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from jeffkit/recursive

All issues in jeffkit/recursive

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.