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** 捕获的实时网络流量。 # 技术栈






# 功能
## 日志收集
- 实时监控 `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
```
# 截图
## 告警检测

## 打开自定义日志文件

## 导入日志视图

## 实时 journalctl 监控

## 网络监控

### 类别
- 身份验证
- 网络
- 恶意软件
- 完整性
- 侦察
- 系统
## 网络监控
使用 **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, 安全运维, 客户端加密, 网络流量分析, 请求拦截