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, 哈希校验, 无后门, 端点安全, 补丁管理, 逆向工具, 防勒索软件