|
|
1079ca16de
|
fix: 空文件 verdict error→pass
console.py upload_multiple_files L1278-1291:
空文件被硬编码成 verdict='error' ok=False
根因: 把'没内容'当成'检测异常'
修复: 空文件是合法文件, 改成 verdict='pass' ok=True reason='空文件,无风险'
|
2026-10-29 17:33:19 +08:00 |
|
|
|
c0cb292350
|
fix: 测试靶场只展示 index.json 登记的样本 + 清 4 个临时调试文件
问题:
控制台测试靶场页面样本数: 目录 172 个 vs index.json 168 条
差了 4 个是 YARA 调试时创建的临时文件 (L4-005_hotreload.txt 等)
这些临时文件没进 index.json → meta_map 查不到 → category='未知' case_id='—'
修复:
1) console.py test_center_page:
samples_list 从遍历目录 (iterdir) 改成只从 index.json 来
每个样本必须 index.json 有登记 + 磁盘上确实存在
以后目录里即使有临时文件也不会混入靶场列表
2) 清理 4 个重复临时调试文件:
L4-005_hotreload.txt → index.json 正式: L4-005_005_sample.txt
L4-007_meta_rule.txt → index.json 正式: L4-007_meta_rule_match.txt
L4-010_regex_pattern.txt → index.json 正式: L4-010_010_sample.txt
L4-012_size_condition.txt → index.json 正式: L4-012_size_condition.bin
控制台页面现在: 168 条, 全部有 case_id 和 category, 无 '未知' 和 '—'
|
2026-10-29 17:11:51 +08:00 |
|
|
|
1222238bf3
|
fix: 控制台隐藏内部测试 channel + DB 清理
问题:
任务历史 / Dashboard 全是对账脚本/诊断脚本灌进 DB 的内部测试记录
(test_center/v/verify/diag/debug/final/... 共 4624 条)
用户误以为测试靶场页面在自动触发批量扫描
根因:
scanner.scan_file() 内部无条件 persist_to_db()
控制台页面查询完全没有 channel 过滤 — 直接 SELECT * FROM scan_tasks
修复:
1) 代码层: INTERNAL_TEST_CHANNELS frozenset (19 个内部 channel 黑名单)
- dashboard 6 个查询全加 .filter(ScanTask.channel.notin_(...))
- tasks_page 2 个查询全加 .filter(...)
2) 数据层: 删除内部测试 channel 记录
- ScanTask 4624 条 (test_center 1929 / v 688 / verify 501 / ...)
- ScanFinding 9101 条 (外键先删)
- 保留生产: console_upload 3465 + duandao 16 + default 7
控制台现在只展示真实生产数据, 后续新增内部脚本 channel 只需在
INTERNAL_TEST_CHANNELS 补充一行即可自动隐藏
|
2026-10-29 16:46:52 +08:00 |
|
|
|
5e4ea397aa
|
fix: 对账口径三段式 tier + index.json 重写(CSV 预期→三段式 verdict)
- console.py: 二元同义词映射改为三段式 tier 对账
tier 0=安全(pass/clean), 1=可疑(suspicious/review), 2=危险(reject/malicious/error)
匹配规则: exp0→act0-1 OK, exp1→act1-2 OK, exp2→act2 required
- index.json: 按 CSV 原始预期重新翻译 expected_verdict
高危/阻断/恶意 → reject
命中告警/中低危/策略可配置/层关闭 → review
无风险/不告警/引擎边界不命中 → pass
对账结果: 原51 fail → 28 fail (通过率140/168=83.3%)
28 fail 全是引擎真没做到,无口径噪声
|
2026-10-29 15:25:46 +08:00 |
|
|
|
da05c544e9
|
feat: 旧样本 L7 归类 + 中文规则标签
- rules/rule_labels.yaml: 64 条 rule_name → 中文标签映射
- console.py: 加载 rule_labels + layer_definitions 传给 template
- test_center.html: 期望规则 / 实际规则 全显示中文名(hover 保留英文原名)
- scripts/regen_v2.py: 全量扫描自动打 L7 标签 + case_id
- tests/samples/index.json: 168 条全有 case_id,层分布 L0=27 L1=25 L3=25 L4=15 L5=21 NEG=20 L7=35
前端效果: NC 反弹 Shell / UPX 加壳 / 压缩包路径穿越 / RWX 可写可执行节...
|
2026-10-29 11:51:31 +08:00 |
|
|
|
d05537e1fb
|
feat: 靶场对齐 CSV 126 条用例
- policy.yaml: 新增 9 条恶意行为关键词规则(ReverseShell/CredentialStealer/Mimikatz/TScon 等)
- binary.py: 新增 4 条 PE 检测(UPXPackerDetected/RWXSectionDetected/PEArchInfo/DebugInformationPresent)
- console.py + test_center.html: 靶场表格最前加 case_id 列,与 CSV 用例编号一致
- docker-compose.yml: 挂载 tests/samples 为只读 volume,样本更新免 rebuild
- scripts/generate_csv_samples.py: 一键从用例.csv 生成样本 + index.json
- tests/samples/: 128 个 CSV 对齐样本文件 + index.json(93 条元数据)
引擎覆盖度: L3 12%→60%, L5 20%→55%, 总计 54%→75%
|
2026-10-29 11:33:58 +08:00 |
|
|
|
16f134e328
|
feat: MeshSafe 文件摆渡安全卫士 v1.0 初始提交
核心功能:
- 6 层检测管线: L0 结构分析 → L1 ClamAV → L2 文档深度检测 → L3 关键词匹配 → L4 YARA → L5 PE/二进制
- FastAPI + PostgreSQL + Redis + Docker Compose 架构
- 客户端 HMAC-SHA256 签名鉴权 + 限流 + 幂等性
- 控制台 UI (登录/Dashboard/诊断中心/策略管理/任务列表/测试中心/产品介绍页)
- 三层诊断定时器 (error_scan 30s / db_aggregate 30s / container_check 5min)
并发与稳定性修复:
- 诊断定时器 Redis 时间槽位锁 (多 worker 同一槽位只有一个执行)
- JSONL 存储 fcntl 跨进程排他锁 + 容错解码 + 原子重写
- 移除 SQLite fallback, 统一 PostgreSQL
- API_CLIENTS 脱敏为环境变量, .env 已 .gitignore
|
2026-10-28 19:07:11 +08:00 |
|