📦 当前策略:{{ policy_version or '-' }}
{% if last_run_at %}
🕐 上次运行:{{ last_run_at|bj_time("%m-%d %H:%M:%S") }}
{% else %}
⚠️ 从未运行过 —— 点「重新扫描」开始检测
{% endif %}
{% if rescan %}✅ 本次为实时全量扫描结果{% endif %}
{% if results[0].clamav_error %}
⚠️ ClamAV 引擎不可用(本地未起 clamd)—— 部分 verdict 显示为
{% endif %}
error (ClamAV 不可用),
但 YARA / structure / documents / keywords 引擎已正常工作。生产环境 docker compose 起 ClamAV 后会自动加载。
| # | 结果 | 样本文件 | 分类 | 期望裁决 · 规则 | 检测结论 · 规则 | 方向 | 规则 | Score | 耗时 | Findings | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ loop.index }} | {% if r.overall_ok %}✅{% else %}❌{% endif %} |
{{ r.filename }}
{{ r.description }}
|
{{ r.category }} |
{% set exp_v = r.expected_verdict or '' %}
{% if exp_v in ('reject', 'malicious') %}
拦截 {{ exp_v }}
{% elif exp_v == 'suspicious' %}
可疑
{% elif exp_v == 'pass' or exp_v == 'clean' %}
放行 {{ exp_v }}
{% else %}
{{ exp_v or '未设' }}
{% endif %}
{% if r.expected_rules %}
{% for rule in r.expected_rules %}
{{ rule }}
{% endfor %}
{% endif %}
|
{{ r.actual_verdict|cn_verdict }}
{% if r.clamav_error %} ClamAV 不可用 {% endif %}
{% if r.actual_rules %}
{% for rule in r.actual_rules %}
{{ rule }}
{% endfor %}
{% elif r.actual_verdict in ('pass', 'clean') %}
(无规则命中)
{% else %}
⚠️ 无规则
{% endif %}
|
{% if r.verdict_match %} ✅ {% else %} ❌ {% endif %} | {% if r.rule_hit %} ✅ {% else %} ❌ {% endif %} | {{ "%.0f"|format(r.score) }} | {{ r.duration_ms }}ms |
{{ r.findings_count }} 条{% if r.findings %}
|
测试样本目录不存在:
请运行:
{% endif %}
{{ samples_dir }}请运行:
python scripts/generate_test_samples.py