aquiles45/angel-guard
GitHub: aquiles45/angel-guard
一款用 Python 编写的实验性多层防勒索软件检测系统,通过哈希签名、熵分析、文件特征匹配和进程监控来识别威胁。
Stars: 0 | Forks: 0
# angel-guard 防勒索软件
# Angle Guard 检测系统
## 概述
Angle Guard 实现了一个多层威胁检测系统,将传统的基于签名的检测与高级分析和行为监控相结合。该系统在两种模式下运行
## 检测方法
### 1. 哈希签名检测
**机制:** 每个文件都会生成一个唯一的加密指纹(MD5 哈希),并与已知恶意软件签名数据库进行比对。
**流程:**
- 计算目标文件的 MD5 哈希
- 与已知恶意软件数据库进行比对
- 匹配成功则立即判定为威胁
- **置信度:** 100%(明确识别)
**数据库包含以下签名:**
- EICAR 测试签名
- 已知勒索软件家族(WannaCry、Ryuk、Locky 等)
- 常见木马及恶意软件变种
```
# hash 验证示例
MALWARE_SIGNATURES = {
"44d88612fea8a8f36de82e1278abb02f": "EICAR-Test-Signature",
"275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f": "WannaCry",
"7a828afd2abf153d840938090d498072b7e507c7021e4cdd8c6baf727cadf3e3": "Ryuk"
}
```
### 2. 文件扩展名分析
**机制:** 分析文件扩展名以识别潜在的危险文件类型。
**受监控的扩展名:**
- **可执行文件:** `.exe`, `.scr`, `.bat`, `.cmd`, `.vbs`, `.js`, `.ps1`
- **勒索软件指标:** `.crypted`, `.encrypted`, `.locked`, `.crypto`, `.locky`
- **系统文件:** `.reg`, `.msi`, `.cab`
**风险评分:**
- 检测到可疑扩展名:+60% 置信度
- 结合可疑文件名模式:额外 +30%
### 3. 文件名模式分析
**机制:** 检查文件名中是否包含通常与恶意软件相关的可疑关键字。
**检测到的模式:**
```
SUSPICIOUS_PATTERNS = [
'crack', 'keygen', 'patch', 'activator', 'loader', 'hack',
'trojan', 'virus', 'malware', 'bitcoin', 'crypto', 'miner',
'ransomware', 'encrypt', 'decrypt', 'wannacry', 'locky'
]
```
**流程:**
- 将文件名转换为小写
- 搜索可疑模式
- 找到则提高置信度评分
### 4. 熵分析(高级方法)
**机制:** 计算文件内容的熵(随机性),以检测勒索软件中常见的加密或压缩数据。
**理论:**
- 正常文件具有可预测的模式(低熵)
- 加密/压缩文件更加随机(高熵)
- 勒索软件经常加密数据 = 高熵
**熵阈值:**
```
ULTRA_ENTROPY_THRESHOLD = 6.8 # Suspeito
ULTRA_HIGH_ENTROPY_THRESHOLD = 7.2 # Muito suspeito
ULTRA_CRITICAL_ENTROPY_THRESHOLD = 7.6 # Crítico
FALLEN_ANGEL_ENTROPY_THRESHOLD = 6.5 # Modo Anjo Caído
```
**计算方式:**
```
def calculate_entropy(data: bytes) -> float:
byte_counts = Counter(data)
data_len = len(data)
entropy = 0.0
for count in byte_counts.values():
if count > 0:
probability = count / data_len
entropy += probability * math.log2(probability)
return -entropy
```
### 5. 位置分析
**机制:** 评估文件在系统中的位置,以检测恶意软件常用的路径。
**可疑位置:**
- 临时文件夹(`/tmp`, `%TEMP%`)
- 用户数据目录(`AppData\Roaming`)
- Downloads 文件夹
- 包含可疑名称的桌面
**评分:** 高风险位置增加 +15 个可疑点数
### 6. 实时进程监控
**机制:** 监控正在运行的进程以检测可疑行为(仅在堕落天使模式下激活)。
**受监控的进程:**
```
ULTRA_SUSPICIOUS_PROCESSES = [
"powershell.exe", "cmd.exe", "certutil.exe", "bitsadmin.exe",
"regsvr32.exe", "rundll32.exe", "mshta.exe", "wmic.exe",
"vssadmin.exe", "wbadmin.exe", "bcdedit.exe"
]
```
**进程评分系统:**
- 可疑进程名:+40 点
- 可疑位置:+15 点
- **清除阈值:** 10 点(堕落天使模式)
### 7. 综合置信度系统
**机制:** 将上述所有检查结合为一个单一的置信度评分。
**置信度公式:**
```
Confiança Total = MAX(
Hash_Match (100%),
Extensão (60%) +
Padrão_Nome (30%) +
Entropia (60%) +
Localização (40%)
)
```
**行动级别:**
- **50%+** → 可疑文件(警报)
- **60%+** → 中度风险(隔离)
- **70%+** → 高风险(强制隔离)
- **80%+** → 确认恶意软件(核武级行动)
- **90%+** → 严重威胁(立即响应)
## 操作模式
### 正常模式
- 默认检测阈值
- 自动隔离已确认的威胁
- 向用户发送弹窗警报
- 被动监控进程
### 堕落天使模式(极度激进)
- **降低阈值**(更敏感)
- **自动终止**可疑进程
- 主动且持续的监控
- 预防性隔离
- 实时行为分析
**堕落天使模式的区别:**
```
# 正常 Threshold vs Anjo Caído
NORMAL_KILL_THRESHOLD = 20 # Nunca mata automaticamente
FALLEN_ANGEL_KILL_THRESHOLD = 10 # Mata com suspeita menor
# 更敏感的 Entropia
if fallen_angel_mode:
if entropy > 6.5: # Mais baixo que modo normal (6.8)
threat_detected = True
```
## 检测流程
```
graph TD
A[Arquivo Detectado] --> B[Calcular Hash MD5]
B --> C{Hash Conhecido?}
C -->|Sim| D[MALWARE - 100% Confiança]
C -->|Não| E[Análise de Extensão]
E --> F[Análise de Nome]
F --> G[Análise de Entropia]
G --> H[Análise de Localização]
H --> I[Calcular Confiança Total]
I --> J{Confiança > 50%?}
J -->|Sim| K[Classificar Ameaça]
J -->|Não| L[Arquivo Limpo]
K --> M[Executar Ação]
M --> N[Alertar Usuário]
```
## 安全功能
### 智能隔离
- 文件被移动到加密的安全区域
- 保留元数据以供分析
- 需确认的恢复选项
- 在设定的期限后自动清理
### 警报系统
- 针对威胁的实时弹窗
- 进程终止通知
- 详细的检测报告
- 完整的审计日志
### 防误报保护
- 多层验证
- 已知文件白名单
- 执行操作前的上下文分析
- 用于微调的学习模式
## 高级配置
### 自定义灵敏度
```
# Sensibilidade 设置
ENTROPY_THRESHOLDS = {
'low': 7.5, # Menos sensível
'medium': 7.0, # Padrão
'high': 6.8, # Mais sensível
'paranoid': 6.5 # Modo Anjo Caído
}
```
### 排除项和白名单
- 免扫目录
- 进程白名单
- 受信任的文件扩展名
- 已知安全文件的哈希
## 性能指标
### 检测速度
- **哈希查找:** 每个文件 < 1ms
- **模式分析:** 每个文件 < 5ms
- **熵计算:** 10-50ms,取决于文件大小
- **全面扫描:** 每个文件 100-500ms
### 准确度
- **检测率:** 针对已知恶意软件 > 95%
- **误报率:** 正常模式下 < 2%
- **误报率:** 堕落天使模式下 < 5%
- **响应时间:** 自动响应 < 1 秒
## 使用的技术
- **Python 3.7+** - 主要语言
- **PyQt5/6** - 图形界面
- **psutil** - 进程监控
- **hashlib** - 哈希计算
- **sqlite3** - 数据存储
- **threading** - 异步处理
## 限制与注意事项
### 技术限制
- 熵分析极其消耗 CPU
- 终止进程需要管理员权限
- 对多态恶意软件的防护效果有限
- 依赖于签名数据库的质量
### 误报
- 压缩文件可能具有高熵
- 合法工具可能具有可疑名称
- 堕落天使模式可能过于激进
- 系统进程可能被标记为可疑
### 使用建议
- 日常使用请采用正常模式
- 仅在紧急情况下启用堕落天使模式
- 保持签名数据库更新
- 定期审查隔离区中的文件
- 为已知软件配置排除项
- 支持新型威胁
有关开发和贡献的更多信息,请参阅完整的项目技术文档。
标签:DNS 反向解析, Python, Qt, 哈希校验, 无后门, 端点安全, 补丁管理, 逆向工具, 防勒索软件