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 请求, 威胁检测, 安全开发, 安全引擎, 安全测试, 开源安全工具, 恶意软件扫描, 攻击性安全, 文件监控, 种子框架, 端点保护, 系统加固, 网络安全, 逆向工具, 逆向工程平台, 防御工具, 隐私保护