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审计, 大语言模型, 异常检测, 红队行动, 逆向工具