ABTYxD/log-sentinel
GitHub: ABTYxD/log-sentinel
基于规则检测 SSH/sudo 日志中的可疑活动并结合 GPT 生成事件响应建议的安全演示工具。
Stars: 0 | Forks: 0
# Log Sentinel
Log Sentinel 是一个适合初学者的网络安全演示项目,用于扫描 SSH 和 sudo 身份验证日志以查找可疑活动。它使用透明规则来寻找模式,然后调用 GPT-5.6 将每个发现转化为通俗易懂的英语诊断、严重性标签和三个响应操作。
## 问题所在
在发生安全事件时,身份验证日志通常充满噪音且难以阅读。初学者可以发现单独的登录失败,但很难察觉协调一致的密码攻击、登录源的快速切换,或是敏感管理员命令的密集执行。Log Sentinel 在一个小型 Web 界面中展示了这些模式,并解释了它们之所以重要的原因。
## 工作原理
### 1. 可解释的检测规则
`detector.py` 会解析支持的 SSH 和 sudo 日志行,并应用三条确定性规则:
- **可能的暴力破解**:5 分钟内来自同一 IP 的失败密码尝试达到 8 次或以上。它还会记录此后不久来自同一 IP 的成功登录。
- **登录 IP 快速变化**:某个用户在 15 分钟内从两个不同的 IP 成功登录。这里刻意表述为 IP 变化,而不是证明地理位置上的“不可能的旅行”,因为仅凭 IP 地址无法确定物理位置。
- **可疑的 sudo 密集操作**:在深夜(00:00–04:59)或涉及 `/etc/shadow`、`usermod` 或密码更改等敏感目标时,15 分钟内出现 3 次或以上的 sudo 命令。
每条规则都包含触发它的证据。AI 不决定是否产生警报;它只解释已经被检测到的规则结果。
### 2. GPT-5.6 响应指导
`ai_recommendations.py` 会将每个发现发送到 Responses API,并附带谨慎的系统提示词和严格的 JSON Schema。该模型会准确返回:
- 一段通俗易懂的英语诊断;
- 严重性:`Low`、`Medium` 或 `High`;
- 三个具体的建议操作。
GPT-5.6 模型支持 Responses API 和结构化输出,这使得 UI 响应比解析自由格式文本更可靠。[OpenAI 模型文档](https://developers.openai.com/api/docs/models/gpt-5.6-sol)
### 3. Streamlit 界面
`app.py` 接受上传的 `.log`/`.txt` 文件或粘贴的文本。点击 **Run scan** 即可查看发现结果表格和可展开的详细信息。在设置了 API 密钥的情况下,它还会显示带有颜色编码的严重性徽章和 GPT 生成的操作。
## 设置与运行
环境要求:Python 3.10+ 以及具有 GPT-5.6 访问权限的 OpenAI API 密钥。
```
cd log-sentinel
python -m venv .venv
```
激活环境:
```
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
```
```
pip install -r requirements.txt
Copy-Item .env.example .env
```
打开 `.env`,在 `OPENAI_API_KEY=` 后添加您的 API 密钥,然后运行:
```
streamlit run app.py
```
如需进行无需密钥的演示,请取消勾选 **Generate GPT-5.6 recommendations**。基于规则的扫描仍然有效。预填的文本区域包含安全的示例数据,您可以直接使用。
## 支持的日志格式
本项目特意支持一种简单、一致的格式,以确保黑客松演示的可靠性:
```
2026-07-20 01:10:00 sshd: Failed password for admin from 203.0.113.44 port 22
2026-07-20 02:02:00 sudo: alex : TTY=pts/0 ; PWD=/home/alex ; USER=root ; COMMAND=/bin/cat /etc/shadow
```
生产环境的 Linux 发行版可能会使用不同的时间戳和日志格式。支持这些格式是合理的未来扩展方向,但不属于这个透明演示项目的范围。
## 演示要点
1. “检测器是刻意设计为基于规则的:每个警报都有明确的证据。”
2. “AI 不做检测决定;它让警报变得易于理解,并建议响应措施。”
3. “我避免夸大其词:快速的 IP 变化是可疑的,但这并不能证明发生了物理位置移动。”
4. “这使得该工具足够可靠,能够进行现场演示,并且便于分析师审计。”
标签:cybersecurity, DLL 劫持, Kubernetes, SSH监控, sudo审计, 大语言模型, 异常检测, 红队行动, 逆向工具