veddegre/signaltrace

GitHub: veddegre/signaltrace

一款轻量级自托管蜜罐遥测工具,通过自定义 token 追踪访问交互并生成可集成的威胁情报源。

Stars: 0 | Forks: 0

# SignalTrace ![PHP](https://img.shields.io/badge/PHP-8.1%2B-blue) ![SQLite](https://img.shields.io/badge/Database-SQLite-lightgrey) ![License](https://img.shields.io/badge/License-MIT-green) ![Status](https://img.shields.io/badge/Status-Active-success) SignalTrace 是一个轻量级、自托管的追踪和分析工具,用于观察与自定义路径的交互并生成可操作的遥测数据。 它实时捕获交互,并可以选择将这些数据公开为简单的威胁情报源,供其他安全工具使用。 ## SignalTrace 的功能 SignalTrace 允许您创建自定义 token(路径),以便: 1. 捕获详细的请求数据 2. 对交互进行分类(人工、可疑或机器人) 3. 重定向到目标地址 它适用于任何您希望了解实际交互对象的场景。 常见用例: - 钓鱼模拟 - 蜜罐 - 侦察检测 - 链接追踪 ## 功能特性 - 支持重定向的自定义 token - 详细的请求日志记录(IP、headers、user agent 等) - 分类系统(人工、可能为人工、可疑、机器人) - 访客指纹识别 - 按 token、IP 和访客进行筛选 - 跳过模式以抑制噪音 - 直接从 UI 将 token 添加到跳过模式 - 追踪像素支持 - 威胁情报源生成(`/feed/ips.txt`)以便与其他工具集成 - 使用 MaxMind 进行 GeoIP 丰富化 - SQLite 后端,无需外部数据库 - 极简且快速,无框架依赖 ## 截图 [![SignalTrace Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/15deda53e7044105.png)](docs/images/dashboard.png) ## 最低要求 SignalTrace 专为在非常小型的系统上运行而设计。 推荐的最低配置: - 1 vCPU - 1 GB RAM - 1 GB swap - 5 到 10 GB 磁盘 已在启用 1 GB RAM 和 1 GB swap 的小型 VM 上测试。 如果您启用 GeoIP 或保留更长时间的数据,可能需要更多内存。 ## 安装说明 (Ubuntu + Apache) ### 1. 安装依赖项 安装 Apache、PHP、SQLite、Composer 和所需的软件包。 ``` sudo apt update sudo apt install -y apache2 php php-sqlite3 php-mbstring php-xml php-curl sqlite3 composer unzip ``` ### 2. 安装 PHP 依赖项 ``` composer install ``` ### 3. 创建数据目录 ``` sudo mkdir -p /var/www/signaltrace/data sudo chown -R www-data:www-data /var/www/signaltrace/data sudo chmod -R 775 /var/www/signaltrace/data ``` ### 4. 初始化数据库 ``` sqlite3 /var/www/signaltrace/data/database.db ``` 然后运行: ``` .read db/schema.sql ``` ### 5. 可选:加载样本数据 ``` sqlite3 /var/www/signaltrace/data/database.db ``` 然后运行: ``` .read db/seed.sql ``` ## 配置 SignalTrace 使用本地配置文件存储机密信息和凭据。 ### 创建本地配置 ``` cp includes/config.local.php.example includes/config.local.php ``` ### 编辑配置 ``` vi includes/config.local.php ``` 示例: ``` ServerName yourdomain.example DocumentRoot /var/www/signaltrace/public AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/signaltrace_error.log CustomLog ${APACHE_LOG_DIR}/signaltrace_access.log combined ``` 启用: ``` sudo a2enmod rewrite sudo a2ensite signaltrace.conf sudo a2dissite 000-default.conf sudo systemctl restart apache2 ``` ## .htaccess 将其放置在 `public/.htaccess` 中。 此配置允许 Let's Encrypt 验证并正确路由应用流量。 ``` RewriteEngine On RewriteRule ^\.well-known/acme-challenge/ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [QSA,L] ``` ## HTTPS (Let's Encrypt) ``` sudo apt install -y certbot python3-certbot-apache sudo certbot --apache sudo certbot renew --dry-run ``` ## 管理员访问 ``` https://yourdomain.example/admin ``` ## 威胁情报源 SignalTrace 可以根据观察到的交互生成轻量级的基于 IP 的威胁情报源。 端点: ``` /feed/ips.txt ``` ### 包含内容 - 被归类为可疑或机器人活动的 IP - 仅包含具有评分数据的事件(不包括旧的未分类数据) - 去重输出(每行一个 IP) ### 用途 此情报源旨在供其他工具使用,例如: - 防火墙(阻止列表) - SIEM 丰富化 - 检测管道 - 临时拒绝列表 ### 配置 可以在 UI 中调整情报源行为: - IP 在情报源中保留的时长 - 最低分类阈值 - 包含和过滤行为 ### 注意事项 这是有意设计的简单功能。它不是一个完整的威胁情报平台。 其目标是获取 SignalTrace 观察到的内容,并使其能在其他地方立即使用。 ## 项目结构 ``` signaltrace/ ├── LICENSE ├── README.md ├── composer.json ├── composer.lock ├── data/ │ └── database.db ├── db/ │ ├── schema.sql │ └── seed.sql ├── docs/ │ └── images/ │ └── dashboard.png ├── includes/ │ ├── admin_actions.php │ ├── admin_view.php │ ├── auth.php │ ├── config.local.php.example │ ├── config.php │ ├── db.php │ ├── helpers.php │ └── router.php ├── public/ │ └── index.php └── vendor/ ``` ### 这些目录的用途 - `public/` — Web 根目录(唯一公开的目录) - `includes/` — 应用逻辑和路由 - `db/` — Schema 和种子文件 - `data/` — 运行时数据库存储 - `docs/images/` — 文档资源 - `vendor/` — Composer 依赖项 ## 界面概览 ### 仪表板 - 实时活动视图 - 可展开的请求详情 - 按 token、IP 和访客筛选 - 分类标签 - 清理工具 ### Token - 创建和管理 token - 配置重定向目标 - 启用或禁用 token - 像素追踪 URL ### 设置 - 应用名称 - Base URL - 默认重定向 - 未知路径行为 - 像素开关 - 噪音过滤器开关 - 威胁情报源配置 ### 跳过模式 - 忽略扫描器噪音 - 模式类型: - 精确匹配 - 包含 - 前缀匹配 ## 安全说明 - `config.local.php` 不会被提交 - 密码以哈希形式存储 - 只有 `/public` 应该可通过 Web 访问 - 内部目录不应可通过 Web 访问 - 管理员使用 HTTP Basic Auth ## 生产环境清单 - 启用 HTTPS - 设置强管理员凭据 - 生成唯一的访客哈希盐值 - 验证目录暴露情况 - 配置跳过模式 - 配置威胁情报源设置 ## 使用场景 - 钓鱼模拟追踪 - 蜜罐遥测 - 侦察检测 - 链接追踪 - 安全研究 - 从观察到的活动生成轻量级威胁情报源 ## 技术栈 - PHP - SQLite - Apache - MaxMind GeoIP2 ## 免责声明 SignalTrace 旨在用于安全测试和可见性。 它通过公开端点并记录交互来工作。这意味着它会吸引自动流量、扫描器和其他系统。这是预期行为。 请在使用时了解您正在公开的内容以及部署位置。如果您计划在生产环境中运行它,请确保它符合您的环境、策略和风险承受能力。 ## 许可证 MIT License ## 贡献 欢迎提交 Pull request。 ## 结语 大多数工具试图隐藏噪音。 SignalTrace 将其可视化。
标签:ffuf, IP 地址批量处理, IP 地理位置, LangChain, OpenVAS, PHP, SQLite, 令牌追踪, 侦察检测, 威胁情报, 威胁源生成, 密码管理, 开发者工具, 网络安全, 自托管, 蜜罐, 访客指纹, 证书利用, 请求分类, 轻量级, 追踪像素, 遥测分析, 链接追踪, 防御监视, 隐私保护