ramnezer/herodium

GitHub: ramnezer/herodium

Herodium 是一个模块化的 Linux 端点防御种子框架,将实时文件监控、进程检查、ClamAV 扫描、网络拦截和系统加固整合到一起,供安全开发者构建和测试自定义防御工具。

Stars: 29 | Forks: 7

# Herodium 安全系统 (开发者版) ## 概述 **Herodium** 是一个面向开发者的 Linux 安全项目,旨在作为一个**种子框架**,用于构建和测试更广泛的防御工具。 它作为特权后台引擎运行,将多个防御层组合到一个模块化系统中:实时文件监控、可移动媒体扫描、进程和命令行检查、可选的网络响应逻辑、可选的 AppArmor 策略应用、可选的系统加固、计划的防病毒扫描以及支持性操作工具。 本仓库的定位不是一个成熟的企业安全套件。其目的是提供一个实用、可扩展的基础,供开发者和安全研究人员检查、修改和扩展。 ## 当前范围 Herodium 目前侧重于以下领域: ### 实时文件监控 - 监视已配置的文件系统路径的文件创建、修改和移动事件。 - 使用排队扫描模型来减少在文件快速更改期间的重复扫描。 - 支持对缓存目录等嘈杂位置进行可选过滤。 ### USB / 外部媒体监控 - 检测标准 Linux 挂载位置下新挂载的可移动媒体。 - 自动将文件系统监控附加到新媒体。 - 将新检测到的媒体上的现有文件排队以进行初始扫描。 ### 内存 / 进程检查 - 遍历正在运行的进程并检查: - 可执行文件路径 - 基于文件的命令行参数 - 使用由 ClamAV 支持的扫描逻辑来识别受感染的二进制文件或加载的文件。 - 如果检测到受感染的可执行文件或相关文件,则终止该进程。 ### ClamAV 集成 - 连接到本地 `clamd` Unix 套接字。 - 支持对检测到的威胁执行可配置的操作: - `quarantine` - `delete` - `alert` - 在流扫描之前强制执行基于大小的预过滤。 ### 网络监控 - 与本地 Maltrail 日志集成。 - 可以在以下模式下运行: - 仅警报模式 - 主动拦截模式 - 在拦截模式下,恶意 IP 会被添加到 IP 集合中,并通过 `iptables` / `ip6tables` 强制执行。 - 支持计划的黑名单清理。 ### 系统加固与主机控制 - 具有多层级别的 AppArmor 配置文件处理。 - 可选的 `sysctl` 加固规则。 - 可选的 ZRAM 激活。 - 基于工作负载和散热条件的动态 ClamAV 资源限制。 - 可选的 Fail2Ban 激活,用于 SSH 暴力破解保护。 ### 计划任务 - 支持计划的 ClamAV 扫描。 - 支持可选的 Rkhunter 检查和更新。 - 安装程序通过 systemd 计时器单元配置计划的 ClamAV 扫描。 ## 项目结构 ``` . ├── herodium/ │ ├── config/ │ │ └── herodium.yaml │ ├── core/ │ │ ├── engine.py │ │ ├── logger.py │ │ └── __init__.py │ ├── modules/ │ │ ├── apparmor_manager.py │ │ ├── av_scanner.py │ │ ├── fs_monitor.py │ │ ├── ips_manager.py │ │ ├── memory_hunter.py │ │ ├── network_monitor.py │ │ ├── notifier.py │ │ ├── performance_manager.py │ │ ├── scheduler.py │ │ ├── sys_hardener.py │ │ ├── zram_manager.py │ │ └── __init__.py │ └── requirements.txt └── installer/ ├── bin/ │ ├── herodium-scan │ └── herodium-top ├── systemd/ │ ├── herodium.service │ └── maltrail-sensor.service ├── install.sh └── uninstall.sh ``` ## 支持的环境 Herodium 专为使用以下组件的 **基于 Debian 的 Linux 系统** 设计: - `apt` - `systemd` - AppArmor - ClamAV 当前的安装程序流程主要面向: - Debian - Ubuntu - Linux Mint - Kali Linux 以及类似的基于 Debian/Ubuntu 的发行版。 安装和正常运行时操作需要 Root 权限。 ## 资源预期 - 实时扫描器旨在实现 **高 CPU 效率**,在正常的日常活动中,通常只会消耗 **少量处理能力**。 - 在出现文件系统活动突发、可移动媒体扫描、手动扫描、计划扫描或繁重的进程检查工作负载期间,实际的 CPU 和内存使用量仍然可能增加。 - 计划分配 **大约 1500 MB 的 RAM** 以保证流畅运行。 - 推荐的最低硬件配置: - **4 个 CPU 核心** - **8 GB 内存** ## 安装说明 ### 前置条件 - 基于 Debian 的 Linux 发行版 - Root 访问权限 (`sudo`) - 用于安装包和初始特征库/依赖项的网络访问权限 - 开发或测试环境,例如虚拟机、实验室机器或沙箱 ### 克隆仓库 ``` sudo apt-get install git git clone https://github.com/ramnezer/herodium.git cd herodium ``` ### 运行安装程序 ``` cd installer chmod +x install.sh sudo ./install.sh ``` ### 安装流程 交互式安装程序目前将引导您完成: - Timeshift 快照创建 - ZRAM 设置 - 计划的 ClamAV 扫描偏好设置 - 实时监控启用/禁用 - 实时威胁操作选择 - Maltrail 安装与模式 - Fail2Ban 安装 - AppArmor 级别选择 - 可选的内核加固 - 可选的 Rkhunter 设置 ## 安装程序设置了什么 根据您的选择,安装程序可能会配置: - `/opt/herodium` 下的应用程序部署 - `/opt/herodium/venv` 下的 Python 虚拟环境 - 主服务: - `herodium.service` - 可选的 Maltrail 传感器服务: - `maltrail-sensor.service` - 计划的 ClamAV 扫描服务和计时器: - `herodium-scheduled-scan.service` - `herodium-scheduled-scan.timer` - 日志保存于: - `/var/log/herodium` - 计划扫描配置保存于: - `/etc/herodium/scheduled_scan.conf` ## 运行时路径 当前实现使用的常见路径: ``` /opt/herodium /opt/herodium/config/herodium.yaml /opt/herodium/quarantine /var/log/herodium/herodium.log /var/log/herodium/scheduled_scan.log /var/log/maltrail /etc/herodium/scheduled_scan.conf ``` ## 用法 ### 启动 / 停止 / 状态 ``` sudo systemctl status herodium.service sudo systemctl restart herodium.service sudo systemctl stop herodium.service ``` ### 检查计划扫描计时器 ``` sudo systemctl status herodium-scheduled-scan.timer ``` ### 检查可选的 Maltrail 传感器 ``` sudo systemctl status maltrail-sensor.service ``` ### 实时日志监控 ``` sudo tail -f /var/log/herodium/herodium.log ``` ### 实时仪表板 ``` sudo herodium-top ``` ### 手动扫描包装器 ``` sudo herodium-scan /path/to/scan ``` ## 配置 ### 主引擎配置 主要运行时配置存储于: ``` sudo nano /opt/herodium/config/herodium.yaml ``` 重要键名包括: - `live_monitor.enable` - `directories.watch_paths` - `directories.ignore_prefixes` - `directories.ignore_user_cache` - `clamav.socket_path` - `clamav.threat_action` - `memory_scan.interval_seconds` - `memory_scan.whitelist` - `maltrail.enable` - `maltrail.block_traffic` - `maltrail.log_path` - `maltrail.clean_interval_hours` - `performance.enable_zram` - `performance.cpu_limit_percent` - `hardening.enable` - `ips.enable` - `apparmor.level` 更改 YAML 文件后: ``` sudo systemctl restart herodium.service ``` ### 计划扫描配置 安装程序将计划扫描设置写入: ``` sudo nano /etc/herodium/scheduled_scan.conf ``` 更改计划扫描服务或计时器行为后: ``` sudo systemctl daemon-reload sudo systemctl restart herodium-scheduled-scan.timer ``` ## 默认行为 开箱即用,当前的默认配置包括: - 启用实时监控 - 默认监视路径: - `/home` - `/tmp` - `/etc` - `/var/www` - 隔离路径: - `/opt/herodium/quarantine` - ClamAV 操作: - `quarantine` - 启用内存猎手,循环间隔为 1 秒 - 由配置控制的可选网络拦截 - 由配置控制的可选系统加固 - AppArmor 默认级别: - `2` ## 日志 主要操作日志: - `/var/log/herodium/herodium.log` - `/var/log/herodium/scheduled_scan.log` 如果安装了 Maltrail,相关日志通常存储在: - `/var/log/maltrail/` ## 卸载 要移除 Herodium 并清理其已安装的文件和服务单元: ``` cd installer chmod +x uninstall.sh sudo ./uninstall.sh ``` 卸载程序将移除: - Herodium 服务单元 - 已部署的应用程序文件 - 日志目录 - 计划扫描单元 - 本地辅助脚本 - 由安装程序创建的可选 Fail2Ban jail - Herodium 特定的 IP 集合和防火墙规则(如适用) 它还可以选择移除由该项目安装的相关软件包。 ## 重要说明 - Herodium 是有意设计的强主张且需 Root 权限运行的程序。 - 它适用于受控的开发和研究用途。 - 它可能会以不适用于非托管环境的方式改变主机的安全态势。 - 在将其应用于真实系统之前,请先在虚拟机或一次性环境中测试更改。 - 如果您使用更高级别的 AppArmor 或其他主机加固功能,强烈建议采用优先备份的工作流。 ## 面向开发者 本项目最好被理解为以下方面的起点: - Linux 端点防御实验 - ClamAV 编排逻辑 - 可移动媒体扫描工作流 - AppArmor 自动化原型 - 主机级响应自动化 - 在基于 Debian 的系统上的安全监控研究 代码库有意设计为模块化,以便可以根据用例替换单个组件、对其进行扩展或精简。
标签:AMSI绕过, AppArmor, ClamAV, TLS, USB监控, Web 安全测试, XML 请求, 威胁检测, 安全开发, 安全引擎, 安全测试, 开源安全工具, 恶意软件扫描, 攻击性安全, 文件监控, 种子框架, 端点保护, 系统加固, 网络安全, 逆向工具, 逆向工程平台, 防御工具, 隐私保护