feat: A+B 缺口全补 + README 待办记录
A 结构层小缺口 (3/3): ✅ structure.py 加 LongFilename 告警 (>120 字符成员名) ✅ extractor.py _SAFE_NAME_RE 扩展 emoji 范围 (保留 emoji 文件名不崩) ✅ 重生成 L0-023_5layer_nested.zip (5 层真嵌套) B 白名单机制 (2/2): ✅ policy.yaml 加 keyword_whitelist (内网 IP/域名自动放行 RemoteDownloadUnix/PowerShell) ✅ policy.yaml 加 yara_hash_whitelist (MD5 在白名单跳过 YARA 告警) ✅ policy.py Property 类加两个 property 读取白名单 ✅ policy.py PolicyEngine.decide() 步骤 -1: 白名单过滤 (优先级最高) ✅ scanner.py decide() 调用补传 md5 外部资源缺口 (3 条,README 已记录): - L1-009/010 需真实签名 .cvd 文件 - L1-014 需压测脚本 stress_test.py 测试靶场: ✅ rules/test_rules.yar (7 条自动生成 YARA 规则) ✅ README 新增测试靶场待办 + 白名单机制说明 + 脚本清单
This commit is contained in:
@@ -398,6 +398,37 @@ keyword_rules:
|
||||
weight: 30
|
||||
severity: high
|
||||
|
||||
# ---------- 白名单(规则命中后二次放宽) ----------
|
||||
# 优先级:白名单 > 关键词规则 > YARA 规则 > 评分累加
|
||||
# 命中白名单的规则会从 findings 中过滤,不再进入裁决
|
||||
|
||||
keyword_whitelist:
|
||||
# ---- 内网合法运维地址/域名(白名单放行 curl/wget 下载)----
|
||||
- rule: RemoteDownloadUnix # curl/wget 下载特征
|
||||
allowed_keywords:
|
||||
- "192.168."
|
||||
- "10."
|
||||
- "172.16."
|
||||
- "172.17."
|
||||
- "172.18."
|
||||
- "172.19."
|
||||
- "172.2"
|
||||
- "172.3"
|
||||
- ".senmesh.com"
|
||||
- "repo.internal"
|
||||
- "mirror.internal"
|
||||
- rule: RemoteDownloadPowerShell # Invoke-WebRequest/BitsAdmin
|
||||
allowed_keywords:
|
||||
- "192.168."
|
||||
- "10."
|
||||
- ".senmesh.com"
|
||||
|
||||
yara_hash_whitelist:
|
||||
# YARA 命中后,文件 MD5 在此列表 → 跳过告警
|
||||
# 典型场景:已知安全的开源工具被 YARA 误匹配
|
||||
- md5: "00000000000000000000000000000000"
|
||||
note: "示例:占位,生产按需补充"
|
||||
|
||||
# ---------- 审计 ----------
|
||||
audit:
|
||||
# 记录扫描结果明细到审计日志
|
||||
|
||||
Reference in New Issue
Block a user