yorjjeartemitt/SIEM

GitHub: yorjjeartemitt/SIEM

一款使用 C 语言和 GTK3 开发的轻量级 Linux 桌面端 SIEM 原型,通过手动实现日志解析、规则告警和网络数据包捕获来帮助理解安全监控系统的底层原理。

Stars: 0 | Forks: 0

# SIEM

# GTK3 安全信息与事件管理原型 一款完全使用 **C** 语言为 Linux 编写的桌面端 SIEM 应用程序。 旨在通过从头实现日志收集、告警关联、数据包检查和协议解析,来理解现代安全信息与事件管理(SIEM)系统的内部工作原理。

## 关于 本项目是一个轻量级 SIEM 的教育性实现。 目标是不依赖 Splunk、Wazuh 或 Elastic 等企业级平台,而是手动实现其核心组件: - 日志收集 - 日志解析 - 告警检测 - 规则引擎 - 数据包捕获 - 协议解析 - SQLite 持久化 - GTK3 桌面界面 本项目将真实的 Linux 系统日志作为数据源,并结合通过 **libpcap** 捕获的实时网络流量。 # 技术栈
![C](https://img.shields.io/badge/C-00599C?style=for-the-badge&logo=c&logoColor=white) ![GTK3](https://img.shields.io/badge/GTK3-215732?style=for-the-badge&logo=gtk&logoColor=white) ![SQLite](https://img.shields.io/badge/SQLite-003B57?style=for-the-badge&logo=sqlite&logoColor=white) ![libpcap](https://img.shields.io/badge/libpcap-Network-blue?style=for-the-badge) ![CMake](https://img.shields.io/badge/CMake-064F8C?style=for-the-badge&logo=cmake&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
# 功能 ## 日志收集 - 实时监控 `journalctl` - 增量解析 `auth.log` - 增量解析 `pacman.log` - 导入自定义日志文件 - 增量读取,无需重新处理整个文件 ## 检测引擎 - 基于规则的告警引擎 - 约 35 条检测规则 - 全词关键字匹配 - 自动严重性分类 - 自动类别分类 - 使用日志级别进行基线检测 - 减少常规 pacman 操作的误报 ### 严重性级别 - CRITICAL - HIGH - MEDIUM - LOW ## 依赖项 **Arch Linux:** ``` sudo pacman -S gtk3 cmake pkgconf ``` **Ubuntu/Debian:** ``` sudo apt install libgtk-3-dev cmake pkg-config ``` ## 构建与运行 ``` git clone https://github.com/yorjjeartemitt/SIEM.git cd SIEM ./run gcc # build with gcc and run ./run cmake # build with cmake and run ./run docker # run in docker ``` # 截图 ## 告警检测 ![告警检测](https://static.pigsec.cn/wp-content/uploads/repos/cas/df/df87045a2be36844d2b219b1a7ab6722388593c5b1df6676e1a0d394ab479ca1.png) ## 打开自定义日志文件 ![打开日志文件](https://static.pigsec.cn/wp-content/uploads/repos/cas/9c/9cce0c397991c51f13cba64b0e640023845e206c725c97cc3beadc69047ae908.png) ## 导入日志视图 ![导入日志视图](https://static.pigsec.cn/wp-content/uploads/repos/cas/5e/5e8b99140bb8947cf6c51810bfaea36952eb32e8012f6f68f5382ca1f6d056ab.png) ## 实时 journalctl 监控 ![journalctl](https://static.pigsec.cn/wp-content/uploads/repos/cas/2a/2a27efe695be4e253eccff8ee01e9f5deac633467bd08a0b854e937c77a81007.png) ## 网络监控 ![网络监控](https://static.pigsec.cn/wp-content/uploads/repos/cas/4a/4a662fa1f497d64cfcb92c98b400e40c8eddb8d94e724847fbaf9c6f9a95c436.png) ### 类别 - 身份验证 - 网络 - 恶意软件 - 完整性 - 侦察 - 系统 ## 网络监控 使用 **libpcap** 进行实时数据包捕获。 支持的协议: - HTTP - HTTPS - DNS - DHCP - FTP - SMTP - POP3 - IMAP - LDAP - LDAPS - MySQL - PostgreSQL - MongoDB - SMB - ICMP - ARP 功能包括: - 实时数据包捕获 - 协议识别 - 基础应用层解析 - 检测不安全的明文协议 - TLS ClientHello / SNI 解析 - DNS 查询与响应解析 ## 数据库 SQLite 存储: - 告警 - TP / FP(真阳性 / 假阳性)判定 - 应用程序设置 - 用户偏好 - UI 状态 ## 用户界面 GTK3 桌面应用程序,具备以下特性: - 实时监控 - 可展开的事件详情 - CSV 导出 - 分页 - 深色 / 浅色主题 - 全屏模式 - 可切换的侧边栏 - 可切换的列 - 多种日志源 - 告警过滤
标签:Bash脚本, GTK3, PB级数据处理, WSL, 安全运维, 客户端加密, 网络流量分析, 请求拦截