Repository navigation
Releases
Releases · QTATQ233/dsh-jingcha
v0.5.1
v0.5.0
(2026-10-06)判定规则可编排 · 会话维度过滤 · 迷你时间线 · 强停取证卡。自检 290 项(179 离线 + 111 挂件),全绿。
v0.4.3 的两路独立安全审查结论与逐条处置见 docs/SECURITY-REVIEW-0.4.3.md。
- 判定规则可编排:verdict 的长 if 链抽成规则表——内置 8 条(
inflight-calls/event-loop/memory-leak/no-progress/error-storm/failure-loop/agent-error-loop/plugin-error);第三方可用monitor.registerRule({ id, evaluate })注册,unregisterRule/setRuleEnabled/listRules管理;支持escalate升级语义(把 warn 级理由升到 stalled 等)与失败隔离(单条规则抛错只记账、不影响判定,同一规则 5 分钟最多报一次);新增配置disabledRules可按 id 停用内置规则; - 会话维度过滤:
GET /api/jingcha/status?session=<id>只看指定会话(sessionSummary/SESSION_SCOPED_KINDS);sessions汇总始终全局(否则挂件没法选会话),带过滤时理由标注scope: session|host;查询工具新增includeRules参数; - 迷你时间线:挂件面板新增最近 5 分钟 / 30 段的判定时间线——本地采样、内存有界(采样上限 150 点)、按级别上色、悬停看时间与理由、可折叠,轮询只改色不重建 DOM;
- 强停取证卡:强制停止成功时落一张
kill.forensics事件卡(工具 / 会话 / 参数摘要 / 耗时 / 静默时长 / 嵌套标记),事后能复盘「这次调用长什么样」; - install / uninstall 加固:删 junction 改用
cmd /c rmdir /q(只删链接本身,绝不-Recurse删到目标)+ 删失败显式报错;install 的备份目录只保留最新 10 份;两个脚本转纯 ASCII(Windows PowerShell 5.1 读无 BOM 的 UTF-8 中文会按 ANSI 解析); - 发布链:SSH 推送失败(受限沙箱里 Git for Windows 的
sh.exe起不来)自动回落到 HTTPS + GitHub App 会话 token(tools/gh-push.mjs);release.mjs的只读 git 查询改用文件重定向,绕开沙箱禁止 Node 开管道 stdio 的 EPERM。
v0.4.3
独立安全审查(两路:运行时 / 工具链)后的修复版。自检 229 项(125 离线 + 14 真 cordis + 90 挂件)。
运行时与宿主侧:
- 脱敏覆盖补齐:空格分隔的凭据(
--password hunter2、-p s3cret)、带引号的 JSON 键("password":"x")、裸键(pwd=/sig:/token=)现在都会变成[已脱敏](审查 M1); memoryLeakWindow夹紧到 [2,120]、采样数组上限 240 —— 配置写多大都不会无界增长(审查 M2);apiToken改为常量时间比较(各自 sha256 后timingSafeEqual),避免时序侧信道(审查 L1);- Host 白名单接受 IPv4-mapped 写法(
[::ffff:127.0.0.1]:port),避免把本机请求误判为外来(审查 L2); - 脱敏正则编译结果缓存,事件热路径不再反复
new RegExp(审查 L4); - 默认
toolEnabled: false:不再依赖仓库里的 patch 才是 0 token,编程加载也是 0 token(审查 B-Q5)。
工具链与供应链:
- 隐私针文件存在但读不出来时直接失败(此前脱敏与自检会一起静默失效);隐私针不存在时警告并用通用形态规则兜底(B-Q1);
- 隐私自检改为全文件扫描(不再受扩展名白名单限制),二进制也按字节找针,并把「每条规则替换了几次」打印出来,让脱敏可审计(B-Q1/Q2);
- 复制与扫描改用
lstatSync:符号链接 / junction 一律不跟随并告警(B-Q1); - 打包自检的敏感文件名改为大小写不敏感(
.PRIVACY-NEEDLES.JSON之类挡得住)(B-Q1); - CI 增加
permissions: contents: read(最小权限)(B-Q4); gh-app.mjs:请求加 20 秒超时、多安装时不再静默挑第一个、App 目录可用JINGCHA_GH_APP_DIR覆盖、去掉重复的异常钩子(B-Q3);- 契约文档同步:OpenAPI 版本与 PUT 语义、config schema 补
recentCalls/recentFindings/reportWindowMs、toolEnabled默认值改为 false、注明JINGCHA_API_TOKEN兜底(B-Q5)。
已知边界(设计取舍,非漏洞):未登记 controller 的调用会明确回 not-live 而不是乱杀;接口无速率限制(回环前提);同进程死循环只能中止信号。
v0.4.2
发布链加固与隐私清理(不影响运行时行为)
- 修复打包脚本会把本机私密文件(
.privacy-needles.json:含本机用户名 / 邮箱 / 路径)打进分发 zip 的问题:
tools/pack.mjs现在跳过点文件,并在打包前做「敏感文件名 + 本机路径」双重自检,命中即失败; - 分发 zip 改为从脱敏后的发布副本打包(与仓库内容一致),不再直接打包开发目录;
- 打包脚本不再清空整个
dist/(此前会误删dist/publish这个 git 仓库); - 修复 README 里 GitHub 用户名被脱敏规则误替换(
QTATQ233变成you233)导致的安装命令 / 徽章 / 链接失效; - 同期补齐:GIF 演示 + 4 张截图、
docs/ARCHITECTURE.md(架构图 + 状态机图)、docs/openapi.yaml、docs/config.schema.json、
docs/GLOSSARY.md、4 个示例、Issue/PR 模板、ROADMAP.md、CODE_OF_CONDUCT.md、Star History 与分享按钮、英文 README 本地化。