AlperEnesErsu/LogSentry

GitHub: AlperEnesErsu/LogSentry

用 Ruby 从零构建的微型 SIEM 系统,实时监控 Web 日志并检测攻击模式,兼具防篡改归档和 Web 面板。

Stars: 0 | Forks: 0

# LogSentry [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/AlperEnesErsu/LogSentry/actions/workflows/ci.yml) [![Ruby](https://img.shields.io/badge/ruby-%3E%3D%203.0-CC342D?logo=ruby&logoColor=white)](https://www.ruby-lang.org) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Tests](https://img.shields.io/badge/tests-209%20passing-brightgreen.svg)](#测试) 一个实时监控 Web 服务器日志、检测攻击模式并发送 通知的微型 SIEM —— **从零开始,一步步,使用 Ruby 构建。** 这是 Splunk、Wazuh 或 TR7 等企业级系统底层逻辑的 一个可运行示例。其目的不是打造一个产品,而是**通过亲手构建 这些逻辑来学习**:流处理、状态管理、时间窗口、 daemonization、防篡改归档。 ``` access.log ─▶ TAILER ─▶ PARSER ─▶ ENGINE ─▶ NOTIFIERS ─▶ ekran / JSONL / Telegram canlı metin→ kayan hata │ izleme veri pencere yalıtımı ▼ STORE + ARCHIVER SQLite + hash zinciri │ ▼ WEB (Sinatra) dashboard + SSE ``` ![Web 界面](https://static.pigsec.cn/wp-content/uploads/repos/cas/26/26621ff4e0593a068b4c65c3fc12d72194544b91e3feb4b03da4561d9fdf90f9.gif) ## 它是如何工作的? Web 服务器会将收到的每一个请求写入 `access.log`。单独的一行 日志是无害的——可能只是某人输错了密码。但如果**同一个 IP 在 1 分钟内产生了 50 行** 这样的日志,那它就不再无害了。 LogSentry 实时监控日志文件,解析每一行,将其通过规则进行匹配,如果 发现可疑的模式,就会连同证据一起生成警报。 ### 检测到的模式 | 规则 | 测量内容 | 窗口 | 阈值 | 严重程度 | |---|---|---|---|---| | `brute_force` | 来自同一 IP 的 `401`/`403` 响应 | 60 秒 | 4 | high | | `credential_stuffing` | 访问同一 endpoint 的**不同 IP** 数量 | 300 秒 | 25 | high | | `flood` | 来自同一 IP 的所有请求 | 1 秒 | 100 | high | | `path_scan` | 来自同一 IP 的**不同**敏感目录数量 | 300 秒 | 3 | medium | | `sqli` | SQL 注入特征(`union select`、`information_schema`…) | 60 秒 | 0 | critical | | `xss` | XSS / 命令注入特征(`