Badhackerboyqr/SentinelAI
GitHub: Badhackerboyqr/SentinelAI
一个基于 Python 和 Streamlit 构建的 AI 驱动 SOC 分析师仪表盘,利用机器学习从安全日志中检测网络异常、网络钓鱼等威胁并提供可视化告警管理。
Stars: 0 | Forks: 0
# SentinelAI – AI 驱动的 SOC 分析师与威胁检测仪表盘
## 项目概述
SentinelAI 是一个 AI 驱动的安全运营中心 (SOC) 平台,旨在模拟真实世界的威胁监控和事件检测工作流。该项目结合了网络安全、机器学习和数据可视化技术,从安全日志中识别可疑活动,并通过交互式仪表盘展示可操作的洞察。
该平台分析网络流量、登录活动和电子邮件数据,以检测潜在威胁,例如端口扫描、暴力破解攻击、网络钓鱼尝试和异常网络行为。检测到的事件会被自动分类、确定优先级,并显示在 SOC 风格的仪表盘中,以协助安全分析师进行调查。
该项目的构建旨在实际展示蓝队 (Blue Team) 操作、安全监控、威胁检测工程以及网络安全中的应用机器学习。
## 架构
```
+-------------------+
| Security Logs |
| Network / Email |
| Authentication |
+---------+---------+
|
v
+-------------------+
| Data Ingestion |
| Log Collection |
+---------+---------+
|
v
+-------------------+
| Preprocessing |
| Feature Extraction|
+---------+---------+
|
v
+-------------------+
| AI Detection |
| Isolation Forest |
| Logistic Regression|
+---------+---------+
|
v
+-------------------+
| Alert Engine |
| Severity Scoring |
+---------+---------+
|
v
+-------------------+
| SQLite Database |
+---------+---------+
|
v
+-------------------+
| Streamlit SOC |
| Dashboard |
+-------------------+
```
## 功能
### 威胁检测
* 使用 Isolation Forest 进行网络异常检测
* 检测异常流量模式
* 端口扫描识别
* 登录失败监控
* 网络钓鱼邮件分类
* 自动威胁评分
### 告警管理
* 实时告警生成
* 告警严重程度分类
* 置信度分数计算
* 威胁分类
* 历史告警追踪
### SOC 仪表盘
* 高管安全概览
* 告警监控面板
* 威胁分析仪表盘
* 事件调查界面
* 威胁分布可视化
* 交互式过滤和搜索
### 机器学习
* 无监督异常检测
* 用于网络钓鱼检测的文本分类
* 特征工程 pipeline
* 模型评估指标
* 误报 (False-positive) 监控
### 数据存储
* 基于 SQLite 的告警数据库
* 历史事件保留
* 支持调查的查询功能
## 技术栈
### 编程语言
* Python 3.12
### 机器学习
* Scikit-Learn
* Joblib
### 数据处理
* Pandas
* NumPy
### 仪表盘
* Streamlit
* Plotly
### 数据库
* SQLite
* SQLAlchemy
### 开发工具
* Git
* GitHub
* VS Code
## 数据集
### 网络流量数据集
该项目使用模拟的安全日志和公开可用的网络流量数据集来训练异常检测模型。
示例特征:
* 源 IP
* 目标 IP
* 源端口
* 目标端口
* 协议
* 数据包数量
* 发送字节数
* 接收字节数
* 连接持续时间
### 网络钓鱼邮件数据集
使用自然语言处理 (NLP) 技术处理电子邮件样本。
示例特征:
* 邮件主题
* 发件人域名
* URL 数量
* 可疑关键词
* 邮件正文内容
### 合成数据生成
出于演示和测试目的,可以生成合成日志来模拟:
* 端口扫描
* 暴力破解攻击
* 数据泄露尝试
* 可疑登录活动
* 网络钓鱼电子邮件
## 检测模型
### 1. 网络异常检测
#### 算法
Isolation Forest
#### 目的
通过识别网络流量中的统计异常值来检测以前未知的恶意行为。
#### 输入特征
* 发送字节数
* 接收字节数
* 连接持续时间
* 数据包量
* 端口使用情况
#### 输出
* 正常
* 可疑
* 恶意
### 2. 网络钓鱼邮件检测
#### 算法
TF-IDF 向量化 + 逻辑回归 (Logistic Regression)
#### 目的
将收到的电子邮件分类为网络钓鱼或合法邮件。
#### 处理 Pipeline
电子邮件 → 清洗 → TF-IDF → 分类 → 告警
#### 输出
* 网络钓鱼
* 合法
### 3. 告警严重程度引擎
严重程度是使用模型置信度分数计算的。
| 置信度分数 | 严重程度 |
| ---------------- | -------- |
| > 90% | 严重 |
| 75–90% | 高 |
| 50–75% | 中 |
| < 50% | 低 |
## 仪表盘截图
### 高管概览
显示:
* 告警总数
* 严重告警
* 今日检测到的威胁
* 检测准确率
示例:
```
Total Alerts: 132
Critical Alerts: 12
High Alerts: 34
Detection Accuracy: 94.1%
```
### 威胁时间线
随时间推移检测到的威胁的可视化表示。
特征:
* 威胁趋势
* 事件激增
* 历史比较
### 告警监控
显示:
* 告警 ID
* 时间戳
* 严重程度
* 威胁类型
* 置信度分数
### 威胁分布
可视化细分:
* 端口扫描
* 暴力破解
* 网络钓鱼
* 恶意软件
* 网络异常
### 事件调查
详细的调查视图,包括:
* 源 IP
* 目标 IP
* 威胁类型
* 检测原因
* 模型置信度
* 建议的操作
## 安装说明
### 克隆仓库
```
git clone https://github.com/YOUR_USERNAME/SentinelAI.git
cd SentinelAI
```
### 创建虚拟环境
```
python -m venv venv
```
### 激活环境
Windows:
```
venv\Scripts\activate
```
Linux / macOS:
```
source venv/bin/activate
```
### 安装依赖项
```
pip install -r requirements.txt
```
### 训练模型
```
python models/train_network.py
```
```
python models/train_phishing.py
```
### 启动仪表盘
```
streamlit run dashboard/app.py
```
### 访问仪表盘
```
http://localhost:8501
```
## 未来改进
### 短期
* 实时日志摄取
* 改进的网络钓鱼检测
* 威胁情报丰富
* 自动化事件报告
### 中期
* MITRE ATT&CK 映射
* 用户和实体行为分析 (UEBA)
* 风险评分引擎
* 多模型集成检测
### 高级功能
* SIEM 集成
* Elastic Stack 集成
* Splunk 集成
* AI 驱动的调查助手
* LLM 生成的事件摘要
* Docker 部署
* Kubernetes 支持
* 云原生监控
## 商业价值
SentinelAI 展示了人工智能如何通过自动化威胁检测、减少告警疲劳和加速事件响应来协助 SOC 分析师。该平台提供了现代安全运营工作流的实际示例,同时展示了机器学习在网络安全中的应用。
## 作者
DK
网络安全爱好者 | 有志成为 SOC 分析师 | AI 安全研究员
旨在展示在安全运营、威胁检测工程、机器学习和网络安全分析方面的实践经验。
标签:AMSI绕过, Kubernetes, Python, Scikit-Learn, Streamlit, 威胁检测, 异常检测, 无后门, 访问控制, 逆向工具, 钓鱼分析