SE099/rule-based-auth-log-detection
GitHub: SE099/rule-based-auth-log-detection
一款基于规则的轻量级入侵检测原型系统,用于分析 Linux 认证日志并检测暴力破解等安全相关事件,专为本科学士论文而开发。
Stars: 0 | Forks: 0
# 基于规则的认证日志检测系统
## 概述
本仓库包含了一个轻量级基于规则的入侵检测系统的实现,该系统是作为信息安全领域学士学位论文的一部分而开发的。
该系统通过将预定义的检测规则应用于结构化日志数据,分析 Linux 认证日志并检测安全相关事件。其主要目标是演示如何使用基于规则的检测机制来识别常见的与认证相关的攻击模式,同时保持透明度、可解释性和较低的计算复杂度。
该实现遵循模块化架构,包括:
* 日志解析器
* 事件标准化组件
* 规则引擎
* 告警生成模块
该系统是作为概念验证原型开发的,旨在用于教育和研究目的。
## 已实现的检测规则
当前版本实现了四种检测机制:
### 1. 暴力破解攻击检测
检测来自同一 IP 地址的多次失败登录尝试。
**触发条件:**
* 5 次失败的登录尝试
* 在 60 秒内
* 来自同一源 IP
### 2. 重复失败认证检测
检测针对同一用户账户的重复认证失败。
**触发条件:**
* 3 次失败的登录尝试
* 在 120 秒内
* 针对同一用户名
### 3. 可疑登录行为检测
检测在预期登录时间范围之外发生的成功登录尝试。
**触发条件:**
* 成功登录
* 在 06:00–22:00 之外
### 4. 基于 IP 的登录分析
检测来自同一源 IP 地址针对多个用户账户的认证尝试。
**触发条件:**
* 针对至少 3 个不同用户名的认证尝试
* 在 120 秒内
* 来自同一源 IP
## 项目结构
```
detection-system/
│
├── main.py
│
├── parsers/
│ └── auth_parser.py
│
├── engine/
│ └── rule_engine.py
│
├── logs/
│ ├── auth.log
│ ├── test1_bruteforce.log
│ ├── test2_repeated_failed_auth.log
│ ├── test3_suspicious_login.log
│ ├── test4_ip_analysis.log
│ └── test5_legitimate_authentication_activity.log
│
└── README.md
```
## 前置条件
本项目的开发和测试环境为:
* Python 3.11+
* Windows 11
* PyCharm Community Edition
无需外部 Python 包。
仅使用了 Python 标准库:
* datetime
* re
* collections
* sys
## 安装说明
克隆仓库:
```
git clone
cd detection-system
```
验证 Python 安装:
```
python --version
```
预期输出:
```
Python 3.x.x
```
## 运行检测系统
该系统接受日志文件作为命令行参数。
通用语法:
```
python main.py
```
示例:
```
python main.py logs/auth.log
```
## 评估场景
本仓库包含五个预定义的测试场景,这些场景在学士学位论文的评估中使用。
### 测试 1 – 暴力破解攻击
```
python main.py logs/test1_bruteforce.log
```
预期结果:
* 暴力破解检测告警
* 重复失败认证告警
### 测试 2 – 重复失败认证
```
python main.py logs/test2_repeated_failed_auth.log
```
预期结果:
* 重复失败认证告警
### 测试 3 – 可疑登录行为
```
python main.py logs/test3_suspicious_login.log
```
预期结果:
* 可疑登录告警
### 测试 4 – 基于 IP 的登录分析
```
python main.py logs/test4_ip_analysis.log
```
预期结果:
* 基于 IP 的登录分析告警
### 测试 5 – 合法认证活动
```
python main.py logs/test5_legitimate_authentication_activity.log
```
预期结果:
* 未生成告警
## 检测输出示例
```
[ALERT] Brute-force attack detection |
Time: 2026-01-10T12:00:40 |
User: root |
IP: 192.168.1.10 |
Event: ssh_failed_login |
Description: 5 failed login attempts from the same IP within 60 seconds
```
每个告警包含:
* 时间戳
* 用户名
* 源 IP 地址
* 事件类型
* 触发的检测规则
* 告警描述
## 检测工作流
检测过程遵循以下工作流:
```
Authentication Log
↓
Log Parser
↓
Structured Event Object
↓
Rule Engine
↓
Rule Evaluation
↓
Alert Generation
```
## 局限性
当前的原型有意将重点放在有限的范围内。
目前的局限性包括:
* 仅支持 Linux 认证日志
* 静态规则阈值
* 不支持跨多个日志源进行关联
* 不具备机器学习能力
* 基于受控测试场景进行评估
## 未来工作
未来可能的扩展包括:
* 额外的日志源
* 基于 YAML 的规则定义
* 事件关联引擎
* 威胁情报集成
* 机器学习辅助检测
* 实时日志监控
## 学术背景
本仓库附属于学士学位论文:
**“认证日志数据中安全相关事件的基于规则检测”**
该实现作为概念验证原型,演示了如何使用透明的基于规则的检测机制对认证日志进行处理、分析和评估。
## 许可证
本项目仅供学术和教育目的使用。
标签:云计算, 安全, 红队行动, 规则引擎, 超时处理, 逆向工具