vadage/signalytics
GitHub: vadage/signalytics
一个从 HTTP 日志中采集并聚合 TLS 指纹信号的微服务,帮助用户分析访问客户端的 TLS 特征趋势。
Stars: 0 | Forks: 0
# Signalytics
一个用于从 HTTP 日志中收集聚合 TLS 指纹的微服务。
用于获取访问您服务器的 TLS 信号/指纹的分析洞察,以便您可以根据趋势在防火墙上采取相应措施。
## 功能
* 聚合 TLS 指纹:密码套件、扩展和 ClientHello 长度。
* 这些字段可以由 Cloudflare 免费版提供。[查看他们的文档](https://developers.cloudflare.com/rules/transform/request-header-modification/reference/fields-functions/)。
* 批量写入 MySQL 以实现高效存储。
* 包含 [Caddy](conf/Caddyfile) 和 [Nginx](conf/nginx.conf) 的示例集成。
* 通过 UDP 端口 ``9000`` 接收日志。
* 通过 JSON 格式可轻松扩展以支持其他 Web 服务器。
* 同时支持 RFC 3164 和 RFC 5424 的 Syslog。
## 入门指南
### 前置条件
* Docker / Docker Compose
### 本地开发
```
git clone https://github.com/vadage/signalytics.git
cd signalytics
docker compose up -d
```
使用 cURL 测试的示例:
```
curl 'http://localhost:8080/' \
--header 'X-TLS-Client-Ciphers-SHA1: GXSPDLP4G3X+prK73a4wBuOaHRc=' \
--header 'X-TLS-Client-Extensions-SHA1: OWFiM2I5ZDc0YWI0YWYzZmFkMGU0ZjhlYjhiYmVkMjgxNTU5YTU2Mg==' \
--header 'X-TLS-Client-Hello-Length: 508'
```
### 生产环境
确保仅转发来自受信任来源的值。
```
docker run \
-e DATABASE_URL="mysql://user:password@host:port/dbname" \
ghcr.io/vadage/signalytics:latest
```
**附加选项**
| 选项 | 默认值 | 描述 |
|-------------|---------|--------------------------------------------------------------------------------------|
| `LOG_LEVEL` | info | 设置日志的详细程度。可以是 `off`、`trace`、`debug`、`info`、`warn`、`error`。 |
### JSON 日志格式
日志必须至少包含此结构。建议使用较小的 payload 以获得更高的吞吐量和可靠性。
```
{
"tls_client_ciphers_sha1":"GXSPDLP4G3X+prK73a4wBuOaHRc=",
"tls_client_extensions_sha1":"OWFiM2I5ZDc0YWI0YWYzZmFkMGU0ZjhlYjhiYmVkMjgxNTU5YTU2Mg==",
"tls_client_hello_length":"508"
}
```
## 许可证
[MIT 许可证](LICENSE)
标签:Radare2, TLS指纹, 命令控制, 数据采集, 版权保护, 请求拦截, 通知系统, 防火墙集成