AmalGeorge-lab/THREATLENS
GitHub: AmalGeorge-lab/THREATLENS
一个面向 SOC 场景的日志分析与威胁检测平台,通过解析 Linux 身份验证日志并匹配检测规则来识别认证类攻击行为,生成带有 MITRE ATT&CK 映射的可操作安全告警。
Stars: 1 | Forks: 0
# SOC Analyst - 日志分析与威胁检测平台
## 概述
SOC Analyst 是一个专注于网络安全的 Security Operations Center (SOC) 模拟平台,旨在分析安全日志、检测可疑的身份验证活动,并生成可操作的安全警报。
# 功能
## Linux 身份验证日志解析
### 示例
```
May 27 10:15:01 ubuntu sshd[1234]: Failed password for root from 192.168.1.20 port 45522 ssh2
```
### 提取字段
- 时间戳
- 主机名
- 服务名称
- 进程 ID (PID)
- 事件类型
- 用户名
- 源 IP 地址
- 端口号
- 身份验证协议
## 支持的日志来源
| 日志来源 | 状态 |
|------------|--------|
| Linux 身份验证日志 | ✅ 支持 |
| Web 访问日志 | 🚧 计划中 |
| 防火墙日志 | 🚧 计划中 |
# 检测规则
| 规则 ID | 规则名称 | 描述 | 严重程度 |
|---------|-----------|-------------|----------|
| AUTH-001 | 暴力破解检测 | 检测在定义的时间窗口内,来自单个源 IP 针对同一用户的重复失败登录尝试。 | 高 |
| AUTH-002 | Root 登录尝试 | 检测针对本地 **root** 账户的登录尝试。 | 中 |
| AUTH-003 | 失败后成功 | 检测在多次身份验证尝试失败后的成功登录,表明账户可能已遭到入侵。 | 严重 |
| AUTH-004 | 无效用户扫描 | 检测使用不存在的用户名进行的重复身份验证尝试,表明存在用户名枚举或账户发现行为。 | 中 |
# 严重程度级别
| 检测规则 | 严重程度 |
|----------------|----------|
| 暴力破解检测 | 高 |
| Root 登录尝试 | 中 |
| 失败后成功 | 严重 |
| 无效用户扫描 | 中 |
# MITRE ATT&CK 映射
| 检测场景 | MITRE ATT&CK ID | 技术 |
|--------------------|-----------------|-----------|
| 暴力破解检测(失败尝试) | T1110 | Brute Force |
| 分布式暴力破解检测(失败尝试) | T1110 | Brute Force |
| 无效用户扫描 | T1087 | Account Discovery |
| Root 登录尝试 | T1078.003 | Valid Accounts: Local Accounts |
| 成功的暴力破解攻击(非 root 账户) | T1078 | Valid Accounts |
| 成功的暴力破解攻击(Root 账户) | T1078.003 | Valid Accounts: Local Accounts |
| 成功的分布式暴力破解攻击(非 root 账户) | T1078 | Valid Accounts |
| 成功的分布式暴力破解攻击(Root 账户) | T1078.003 | Valid Accounts: Local Accounts |
# 项目架构
```
Log File Upload
↓
Linux Authentication Parser
↓
Event Normalization
↓
Detection Engine
↓
Threat Correlation
↓
Alert Generation
↓
SOC Dashboard
```
# 解析事件示例
```
{
"raw_log": "May 27 10:15:01 ubuntu sshd[1234]: Failed password for root from 192.168.1.20 port 45522 ssh2",
"log_type": "LINUX_AUTH",
"timestamp": "May 27 10:15:01",
"timestamp_iso": "2026-05-27T10:15:01Z",
"host": "ubuntu",
"service": "sshd",
"pid": 1234,
"event": "FAILED_LOGIN",
"user": "root",
"source_ip": "192.168.1.20",
"port": 45522,
"protocol": "ssh2"
}
```
# 警报元数据示例
```
{
"key": "192.168.1.20",
"alert_id": "ALT-1001",
"alert_type": "BRUTE_FORCE_ATTACK",
"rule_id": "AUTH-001",
"rule_name": "Brute Force Detection",
"severity": "HIGH",
"risk_score": 85,
"status": "OPEN",
"source_ip": "192.168.1.20",
"user": "root",
"host": "ubuntu",
"service": "sshd",
"pid": 1234,
"port": 45522,
"protocol": "ssh2",
"mitre_technique": "T1110",
"mitre_name": "Brute Force",
"created_at": "2026-07-13T09:10:49Z",
"failed_attempts": 8,
"starting_time": "2026-07-13T09:10:01Z",
"ending_time": "2026-07-13T09:10:48Z"
}
```
### 警报字段
| 字段 | 描述 |
|-------|-------------|
| `key` | 检测引擎使用的关联键 |
| `alert_id` | 生成警报的唯一标识符 |
| `alert_type` | 检测到的安全事件类型 |
| `rule_id` | 检测规则标识符 |
| `rule_name` | 检测规则名称 |
| `severity` | 警报严重程度 |
| `risk_score` | 根据攻击特征计算得出的风险评分 |
| `status` | 当前警报状态 |
| `source_ip` | 攻击者 IP 地址 |
| `user` | 目标用户名 |
| `host` | 目标主机 |
| `service` | 产生事件的服务(例如 `sshd`) |
| `pid` | 进程 ID |
| `port` | 网络端口 |
| `protocol` | 身份验证协议 |
| `mitre_technique` | MITRE ATT&CK 技术 ID |
| `mitre_name` | MITRE ATT&CK 技术名称 |
| `created_at` | 警报创建时间戳 |
| `failed_attempts` | 失败的身份验证尝试次数 |
| `starting_time` | 攻击序列中首次观察到的事件 |
| `ending_time` | 攻击序列中最后观察到的事件 |
## 📸 截图
### 主页

### 登录页面

### 注册页面

### 仪表板

### 分析页面

### 警报

### 警报信息页面

# 路线图
## 第一阶段(当前)
- ✅ Linux 身份验证日志分析
- ✅ SSH 登录解析
- ✅ 身份验证事件标准化
- ✅ 暴力破解检测
- ✅ Root 登录检测
- ✅ 用户名枚举检测
- ✅ 分布式攻击检测
- ✅ MITRE ATT&CK 映射
## 第二阶段(计划中)
- 🚧 Web 访问日志解析
- 🚧 HTTP 请求标准化
- 🚧 Web 攻击检测
- 🚧 Web 安全仪表板
## 第三阶段(计划中)
- 🚧 防火墙日志解析
- 🚧 网络事件标准化
- 🚧 端口扫描检测
- 🚧 防火墙威胁检测
- 🚧 网络安全仪表板
# 使用的技术
## 后端
- Python
- FastAPI
- Node.js
- Express
- JWT 身份验证
- 正则表达式 (Regex)
- 检测引擎逻辑
- 事件关联
## 前端
- React
- React Router
- CSS
- Chart.js
- Lucide React
## 数据库
- MongoDB
# 学习成果
本项目有助于理解:
- SOC 运营工作流
- Linux 身份验证日志解析
- 事件标准化
- 身份验证攻击检测
- 检测工程
- 安全警报生成
- MITRE ATT&CK 映射
- 威胁狩猎基础
- 安全监控管道
# 免责声明
本项目仅出于教育和作品集目的而构建,不适用于生产环境。
**作者:** Amal George
标签:AMSI绕过, MITM代理, 威胁检测, 安全运营, 扫描框架, 红队行动, 网络安全, 自定义脚本, 逆向工具, 隐私保护