AdityaJadhav24/Sentinel

GitHub: AdityaJadhav24/Sentinel

一个基于 Wireshark Lua 的被动网络威胁检测插件,通过统计建模与熵分析识别异常行为。

Stars: 0 | Forks: 0

# Sentinel Sentinel 是一个用于被动网络威胁检测的模块化 Wireshark Lua 插件。它直接集成到 Wireshark 的后解析管道中,用于对实时捕获或 PCAP 文件应用统计启发式、行为画像和深度数据包检测。 ## 功能特性 * 无需主动网络交互的被动威胁检测。 * 带自动 TTL 垃圾回收的内存高效 Lua 状态管理。 * 支持快速集成自定义检测逻辑的组件化架构。 * 带有时间衰减趋势的高粒度威胁评分系统。 * 提取原生 Wireshark 解析协议(例如 DNS 查询、TCP 标志、原始负载字节缓冲区)。 ## 为何选择 Sentinel 传统 Wireshark 插件往往侧重于简单的协议提取,而非行为异常分析。Sentinel 通过数学化建模网络状态来弥合这一差距。它不依赖静态端口触发,而是计算统计偏差——例如用于探测可预测性的标准差以及用于负载加密的香农熵,从而在噪声中为操作员提供有效信号。 ## 架构 * `sentinel.lua`:根注册脚本。作为后置解析器挂钩到 Wireshark,管理 GUI 集成与顶层执行。 * `config.lua`:引擎阈值、模块开关、TTL 参数和可疑端口映射。 * `core/analyzer.lua`:中央管道。提取协议原语(TCP 标志、IP 地址、大小)并广播给活跃模块。 * `core/scoring.lua`:状态管理器。在滑动时间窗口内聚合各源 IP 的威胁评分,并应用垃圾回收以防止内存泄漏。 * `modules/`:包含独立的检测脚本(如端口扫描、洪水攻击、数据外泄等)。 ## 检测模块 ### 端口扫描检测 跟踪单一源 IP 所针对的唯一目标 IP 与唯一目标端口。标记横向扫描(子网探测)与垂直扫描(服务枚举)。提取 FIN 与 NULL 特定的 TCP 属性以识别规避防火墙的隐蔽扫描。 ### DNS 隧道检测 监控映射到各根域名的查询频率,以检测高速率分块突发传输。子域字符串被剥离并通过香农熵计算器处理。超过特定熵分布的查询将被标记为采用 Base64/十六进制 编码的负载,穿越标准 DNS 请求。 ### 信标检测 识别命令与控制(C2)回调例程。通过维护主机通信之间的时间间隔历史,Sentinel 计算连接时序的标准差(抖动)。在已建立窗口内极低方差标记为自动调度的合成行为。 ### 洪水攻击检测 按协议结构隔离数据包速率计算。动态计算每秒数据包数(PPS)限制,涵盖通用 UDP 阈值、TCP SYN 队列耗尽尝试以及微窗口内的 ICMP 反射峰值。 ### 数据外泄检测 监控端点之间的原始字节传输量。为对抗分片数据外泄,Sentinel 隔离超出典型负载大小的 UDP/OTHER 数据包,并应用 DPI 熵计算,识别强加密或高度压缩的外部分阶段数据块。 ### 行为启发式 维护已知内部到外部通信节点的本地内存缓存。实现预热基线阶段,随后标记任何与稀有或全新目标结构的绝对首次联系事件。 ## 威胁评分 各模块不会生成原始告警。相反,每个模块输出一个与异常程度成比例的离散分值。`core/scoring.lua` 会持续将这些分值聚合到源 IP 上。 * **低(30+)**:轻微偏差,可能为误配置。 * **中(70+)**:持续的可疑活动。 * **高(150+)**:高置信度对抗行为。 * **严重(>150)**:严重且快速的流量滥用。 ## 示例告警 ``` [⚠] Sentinel Alert Threat Level: HIGH Detection: portscan Reason: Horizontal Port Scan: 12 unique IPs targeted ``` ``` [⚠] Sentinel Alert Threat Level: MEDIUM Detection: beaconing Reason: C2 Beaconing Pattern: ~10.1 s interval (Low Jitter: 1.05) ``` ``` [⚠] Sentinel Alert Threat Level: CRITICAL Detection: exfil Reason: Encrypted/Encoded Outbound Payload (Entropy 6.85) ``` ## 安装 Sentinel 包含一个引导脚本,可直接集成到标准 Wireshark 环境中。 1. 克隆该仓库。 2. 针对你的环境执行提供的安装脚本(Windows 使用 `install.ps1`,Unix 使用 `install.sh`)。 3. 脚本将插件仓库链接至 Wireshark 的“个人 Lua 插件”目录。 4. 重启 Wireshark。 ## 要求 * Wireshark 3.0+ * Lua 5.2+(现代 Wireshark 安装原生打包) ## 限制 * **内存开销**:分析极高 IP 密度的巨型 PCAP 文件需要分配 CPU 与内存。即使有 TTL 跟踪,长时间会话仍可能耗尽系统内存。 * **误报**:NTP 同步与特定 STUN 协议可能自然触发低方差信标阈值。 * **基线预热**:稀有目标跟踪需要环境时间来了解拓扑结构。启动后立即处理数据包会在标准活动上产生告警。 ## 后续改进 * 企业基础设施的预配置例外列表。 * 用于字节传输的滑动 Z 分数实现,以根据特定子网动态扩展,而非硬编码阈值限制。 * PCRE(Perl 兼容正则表达式)集成,用于深度负载签名匹配。
标签:DNS隧道检测, Lua插件, PCAP分析, rizin, Shannon熵, TTL垃圾回收, Wireshark插件, 信标行为检测, 内存管理, 后解析引擎, 实时流量捕获, 数据外泄检测, 时间衰减, 标准差, 模块化架构, 深度包检测, 端口扫描检测, 组件化架构, 统计启发式, 网络威胁检测, 网络安全分析, 自定义检测逻辑, 被动检测, 高粒度威胁评分