常见问题
它会发起攻击或发送数据包吗?
不会。仅用于防御。演示 pcap 只会生成为磁盘上的文件而不会发送,合成攻击生成器(defend simulate)同样只生成文件。
恶意软件扫描器会执行我的文件吗?
不会。它只读取字节。行为分析使用 Cuckoo/CAPE 等外部沙箱的 JSON 报告;样本在单独的隔离虚拟机中运行,而不是由本工具运行。
我的文件会被发送到 VirusTotal 吗?
不会上传文件,只查询 SHA-256 哈希。即便如此,向外发送哈希仍可能与内部政策冲突,因此可以用 --no-vt 关闭。没有 VT_API_KEY 环境变量时会自动跳过查询。“not_found”并不代表安全。
什么是“dry-run”?如何真正封禁?
默认情况下引擎只记录要做的事。要执行,命令行的 --enforce 和配置中的 defense.enforcement.allow: true 必须同时具备;只有其一时仍保持 dry-run,并会告知原因。
我或管理员会被封吗?
私有网段、网关、DNS 和正在连接的 SSH 客户端默认受保护。如果您从公网 IP 连接,请把它加入 allowlist.cidrs。紧急情况下在控制台运行 defend rollback。请始终先用 dry-run 观察。
支持哪些操作系统?
已验证的平台是 Linux x86_64(用真实 nft / iptables 验证了封禁)。Windows 与 macOS 可做 pcap 分析和文件扫描,但 Windows netsh 封禁只做过模拟,macOS 没有防火墙后端(只有 dry-run)。
没有互联网也能工作吗?
可以。NSL-KDD 下载失败时会改用合成数据(也可手动把文件放入 data/nsl_kdd/),没有密钥时 VirusTotal 会被跳过,仪表盘不使用 CDN,测试可离线运行。
可以使用哪些数据集?
合成数据、NSL-KDD、自有正常 pcap 基线、UNSW-NB15 与 CIC-IDS2017(仅离线基准)、EMBER 与 SOREL-20M(静态恶意软件特征)、自有 PE 文件夹、沙箱报告。
准确率如何?
在合成数据上,由于模式简单,数值非常高。在官方 NSL-KDD 测试集上,精确率为 96~98%,召回率为 60~66%。这些是实验室数值;请在用您的流量训练基线并测量之后再信任。详见技术页面。
能检测 HTTPS/TLS 内的攻击吗?
不能。它查看的是流统计和头部,而不是载荷。对于 TLS 内的 SQL 注入、XSS 等 Web 攻击,需要配合 WAF / EDR。
会生成哪些报告和日志?
JSON Lines 告警(可接入 SIEM)、哈希链审计日志,以及日报、周报、自定义期间报告(HTML、JSON、CSV、可选 DOCX),全部位于同一个 logs_dir 下并带有轮转和保留策略。
AegisMind 是老牌厂商吗?
不是。AegisMind 是一家新成立的公司。因此本网站没有客户名称、认证或统计数据。所有技术内容都来自产品文档,并标注为实验室结果。
常用命令
aisec <命令> 等同于 python main.py <命令>。退出码:0 正常,1 错误,2 发现告警 / 可疑或恶意。
| 命令 | 说明 |
|---|---|
demo [--quick] [--no-nslkdd] | 完整流水线的端到端演示(--quick --no-nslkdd 离线约 1 分钟) |
nids gen-pcap [--benign-only] | 生成演示 pcap(+ 真值 CSV)— 仅写入文件 |
nids train --dataset … --models … | 训练 NIDS 模型(synthetic、nslkdd、pcap、unsw、cicids) |
nids detect --pcap F | --iface IF | 从 pcap 文件或实时网卡检测 |
hids gen-logs | train | detect | 生成示例日志 / 训练 / 检测 |
malware train-static | train-dynamic | 训练静态(XGBoost)或行为(RandomForest)模型 |
malware scan TARGET [--behavior R] [--no-vt] | 扫描文件或目录并生成 JSON 报告 |
malware vt-lookup HASH… | VirusTotal 哈希查询 |
defend run | 运行防御引擎:--iface --pcap --authlog --watch --conn、--enforce、--duration N、--rollback-on-exit、--no-ml |
defend list-blocks | unblock | rollback | gc | prune-logs | 查看与还原动作,清理过期条目和旧日志 |
defend list-quarantine | restore <id> --yes | 隔离文件列表 / 恢复(请在知道其可能是恶意文件的前提下使用) |
defend verify-audit | self-test | simulate --out DIR | 验证审计链 / 16 项自检 / 生成合成攻击文件 |
ui(= monitor) · report [daily|weekly|custom] | 仪表盘与报告 |
主要配置项 (config/config.yaml)
| 键 | 默认值 | 说明 |
|---|---|---|
logs_dir | logs | 所有运行数据的根目录(相对于安装目录) |
defense.enforcement.allow | false | 真实动作需要 true 并且有 --enforce |
defense.enforcement.backend | auto | auto / nft / iptables / netsh / fake / none |
defense.enforcement.max_blocks | 200 | 并发封禁上限 |
defense.allowlist.cidrs | [] | 管理员 IP / 网段 — 务必添加 |
defense.logs.* | 10 MiB · 备份 5 · 30 天 · 报告 365 天 | 轮转与保留 |
defense.ui.host / port / token / allow_actions | 127.0.0.1 / 8765 / 空 / false | 空令牌仅允许回环;其他地址必须有令牌 |
nids.feature_set | common | common(33)或 extended(53) |
malware.virustotal.* | 启用,间隔 15 秒 | 密钥只通过 VT_API_KEY 环境变量提供 — 不要写进文件 |
常见问题处理
| 现象 | 原因 / 解决 |
|---|---|
| defend 只显示“DRY-RUN” | 这是预期行为。执行需要 --enforce 和 enforcement.allow: true。 |
--iface 报权限错误 | 原始套接字需要 root 或 CAP_NET_RAW。请使用 sudo,或使用普通用户可用的输入(--conn、--authlog、--watch)。 |
| “无后端” — 什么都没有被封禁 | 没有 nft/iptables 或没有权限。检查 which nft iptables 和是否为 root,并指定 enforcement.backend。 |
| 误报很多 | 用正常 pcap / 日志重新训练基线,提高百分位或 min_votes,调整 detectors.packet.*,加入允许列表,然后用 dry-run 观察。 |
| 解除后马上又被封禁 | 引擎仍然把它视为攻击。如果是正常对象,请加入 allowlist.cidrs。 |
verify-audit FAIL | audit.jsonl 被修改、截断或部分删除。请与备份比对并检查日志目录权限。 |
| 界面报 401 /“不允许的 Host”400 | 先通过 /?token=… 访问,或发送 Bearer 头。请使用到 127.0.0.1 的 SSH 隧道,而不是反向代理。 |
dropped 计数器增加 | 输入速度超过处理速度。用 --bpf 缩小范围,或用 --no-ml 关闭 ML。 |
术语
| 术语 | 含义 |
|---|---|
| NIDS / HIDS | 网络 / 主机入侵检测系统 |
| 流 (Flow) | 把一个连接(五元组)的数据包双向汇总 |
| Dry-run | 只记录决定,不改变系统 |
| TTL | 封禁在自动解除前保持的时间 |
| 允许列表 | 绝不封禁的对象 |
| YARA | 用于匹配文件模式的规则语言 |
| SHAP | 解释模型输出的逐特征贡献度 |
| 隔离 | 把文件移动到受限文件夹(不是删除) |
| 哈希链 | 每条记录带有上一条记录的哈希,使篡改可被发现的结构 |
| MSP | 托管服务提供商 |