GoldenLazer/log_analyzer
GitHub: GoldenLazer/log_analyzer
一款零依赖的实时 Linux 日志监控工具,通过分析 auth.log 检测 SSH 攻击、权限提升和可疑系统活动。
Stars: 0 | Forks: 0
# log_analyzer
实时 Linux 日志监控工具,用于检测暴力破解攻击、权限提升和可疑系统活动 —— 旨在保护我自己的机器。
# Log Analyzer 🔍
一款实时 Linux 日志监控工具,用于监控系统日志中的可疑活动,并在检测到潜在威胁时立即触发警报。旨在防止 Linux 系统上的未授权访问、权限提升和恶意活动。
## 开发动机
几个月前,我注意到我的笔记本电脑运行异常缓慢,而且有些设置以我不记得的方式被更改了。我不知道是否有人访问了我的机器,是否在我不知情的情况下安装了什么,或者这只是巧合。我无法知道实际发生了什么,因为我当时没有记录任何日志。
## 检测内容
### SSH 攻击
- 暴力破解登录尝试(可配置阈值)
- 失败尝试后的成功登录 —— 可能是成功的暴力破解
- 无效用户名登录尝试
- Root 登录尝试
- 认证在会话中途被放弃
### 账户与认证活动
- 正在创建的新用户账户
- 用户被添加到 sudo 组
- 失败和成功的 su 到 root
- PAM 认证失败
- 密码更改
### 权限提升
- 敏感 sudo 命令(passwd、shadow 文件访问等)
- 重复的 sudo 认证失败
- 非 sudoers 用户的未授权 sudo 尝试
- Sudo root 会话被打开
### 系统与服务事件
- 服务崩溃和段错误 (segfaults)
- 服务启动失败
- 内存不足 (OOM) 杀手被触发
- 可疑的 cron 任务(wget、curl、反向 shell)
- 防火墙规则更改
- 新 USB 设备连接
- 系统重启
## 工作原理
该工具使用 Python 的文件寻址功能实时追踪 `/var/log/auth.log`。
日志中出现的每一行新内容都会经过四个检测器模块,每个模块专门针对不同的威胁类别。如果某一行匹配已知的可疑模式,警报会立即打印到终端并写入带有时间戳的日志文件。
```
[2026-02-27 19:21:00] BRUTE FORCE DETECTED — 3 failed login attempts from 192.168.1.100 (user: root)
[2026-02-27 19:21:03] SUCCESSFUL LOGIN after 3 failed attempts — IP: 192.168.1.100 — possible successful brute force
[2026-02-27 19:21:07] SENSITIVE SUDO COMMAND — user: unknown ran: /bin/cat /etc/shadow
```
## 安装
```
git clone https://github.com/GoldenLazer/log_analyzer.git
cd log_analyzer
```
无外部依赖 —— 仅使用 Python 3 标准库。
## 用法
```
# 监控默认 auth log
sudo python3 main.py
# 监控指定日志文件
sudo python3 main.py --log /var/log/syslog
# 将用户添加到 adm 组以运行无需 sudo
sudo usermod -aG adm $USER
python3 main.py
```
## 测试
模拟可疑活动以验证工具是否正常工作:
```
# 触发暴力破解检测
ssh wronguser@localhost # enter wrong password 3 times
# 触发 sudo 警报
sudo cat /etc/shadow
# 触发无效用户警报
ssh fakeuser@localhost
```
## 项目结构
```
log_analyzer/
├── main.py # entry point, watches logs in real time
├── config.json # thresholds and settings
├── detectors/
│ ├── ssh.py # brute force and SSH attack detection
│ ├── auth.py # account and authentication monitoring
│ ├── sudo_check.py # privilege escalation detection
│ └── services.py # service and system event monitoring
└── logs/
└── alerts.log # timestamped record of all alerts
```
## 需求
- Python 3.x
- Linux (Ubuntu/Debian)
- 对 /var/log/auth.log 的读取权限
标签:CSV导出, DevSecOps, Python, SQL, SSH暴力破解, syslog, 上游代理, 协议分析, 威胁情报, 实时分析, 开发者工具, 异常检测, 无后门, 服务器防护, 权限提升, 系统审计, 结构化查询, 网络安全, 自动化安全, 隐私保护