关于 detecting-ransomware-encryption-behavior
面向安全团队的勒索软件行为检测技能,通过文件熵、进程 I/O 和重命名模式组合判断批量加密活动。它还介绍行为评分与响应阈值,强调不能仅凭熵值判断。
主要功能
- 01建立文件类型熵基线
- 02实时监测文件熵变化
- 03跟踪进程级文件 I/O
- 04组合信号进行行为评分
- 05按风险等级配置响应
适用场景
- 01发现绕过特征码检测的加密行为
- 02监测文件服务器批量文件变更
- 03调整 EDR 勒索软件检测规则
- 04在隔离沙箱中验证检测效果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill detecting-ransomware-encryption-behavior安装后在 Claude Code 中输入/detecting-ransomware-encryption-behavior确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
检测勒索软件加密行为
何时使用
- 构建或调优针对勒索软件的行为检测层,以捕获未知/零日变种
- 监控文件服务器和端点,发现绕过基于签名检测的大规模加密活动
- 实施基于熵的检测,以识别文件何时被替换为加密(高熵)内容
- 分析可疑进程行为模式:快速连续的打开文件、写入、重命名和删除
- 在红队演练期间,根据实际勒索软件加密模式验证 EDR 检测规则
不要将熵分析单独作为唯一的检测信号。压缩文件(ZIP、JPEG、MP4)天然具有高熵,会导致误报。始终将熵与 I/O 速率和文件重命名模式等行为信号结合使用。
前置条件
- Python 3.8+ 以及
watchdog和psutil库 - 用于进程监控和文件系统事件捕获的管理员权限
- 理解香农熵及其在文件内容分析中的应用
- Windows:安装 Sysmon,用于详细的进程和文件系统事件日志记录
- Linux:配置 auditd 用于文件访问监控,或基于 inotify 的监视器
- 受监控环境中常见文件类型的基线熵值
工作流
步骤 1:建立熵基线
计算环境中文件的正常熵范围:
Entropy Baselines by File Type:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
File Type Normal Entropy Encrypted Entropy
.docx 3.5 - 6.5 7.8 - 8.0
.xlsx 4.0 - 6.8 7.8 - 8.0
.pdf 5.0 - 7.2 7.8 - 8.0
.txt 2.0 - 5.0 7.8 - 8.0
.csv 2.0 - 5.5 7.8 - 8.0
.sql 2.5 - 5.0 7.8 - 8.0
.jpg/.png 7.0 - 7.9 7.9 - 8.0 (hard to distinguish)
.zip/.7z 7.5 - 8.0 7.9 - 8.0 (hard to distinguish)
Key insight: Text-based files show the largest entropy jump when encrypted,
making them the best candidates for entropy-based detection.
步骤 2:实施实时熵监控
监控文件写入并计算新内容的熵:
import math
from collections import Counter
def shannon_entropy(data):
"""Calculate Shannon entropy of byte data (0.0 to 8.0 scale)."""
if not data:
return 0.0
freq = Counter(data)
length = len(data)
return -sum((c / length) * math.log2(c / length) for c in freq.values())
def is_encryption_entropy(data, threshold=7.5):
"""Check if data entropy indicates encryption."""
entropy = shannon_entropy(data)
return entropy >= threshold, entropy
步骤 3:监控文件系统 I/O 模式
跟踪进程级文件操作以发现勒索软件模式:
Ransomware I/O Behavior Signatures:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Rapid sequential file modification:
- >20 files modified per minute by single process
- Read original → Write encrypted → Rename with new extension
- Pattern: CreateFile → ReadFile → WriteFile → CloseHandle → MoveFile
2. File extension changes:
- Original: report.docx → Encrypted: report.docx.locked
- Many extensions changed within short time window
3. Ransom note creation:
- Same text file (README.txt, DECRYPT.html) created in multiple directories
- Created immediately after file encryption in each directory
4. Shadow copy deletion:
- vssadmin.exe delete shadows /all /quiet
- wmic.exe shadowcopy delete
- PowerShell: Get-WmiObject Win32_Shadowcopy | Remove-WmiObject
5. Entropy spike pattern:
- File read: entropy 3.5 (normal document)
- File write: entropy 7.9 (encrypted content)
- Delta > 3.0 is strong ransomware indicator
步骤 4:实施行为评分
将多个信号组合成勒索软件综合评分:
def calculate_ransomware_score(process_metrics):
"""Score process behavior for ransomware likelihood (0-100)."""
score = 0
# High file modification rate
files_per_min = process_metrics.get("files_modified_per_minute", 0)
if files_per_min > 50:
score += 30
elif files_per_min > 20:
score += 15
# Entropy increase in written files
avg_entropy_delta = process_metrics.get("avg_entropy_delta", 0)
if avg_entropy_delta > 3.0:
score += 30
elif avg_entropy_delta > 2.0:
score += 15
# File extension changes
extension_changes = process_metrics.get("extension_changes", 0)
if extension_changes > 10:
score += 20
elif extension_changes > 3:
score += 10
# Ransom note creation
if process_metrics.get("ransom_note_created", False):
score += 20
return min(score, 100)
步骤 5:配置自动响应阈值
设置检测阈值和自动遏制操作:
Detection Thresholds:
━━━━━━━━━━━━━━━━━━━━
Score 0-25: INFORMATIONAL - Log only, no action
Score 25-50: LOW - Alert SOC for investigation
Score 50-75: HIGH - Alert SOC, suspend process, snapshot VM
Score 75-100: CRITICAL - Kill process, isolate endpoint, alert IR team
Automated Response Actions:
- Suspend/kill the encrypting process
- Disable network adapter to prevent lateral movement
- Create volume shadow copy snapshot before further damage
- Capture process memory dump for forensic analysis
- Send SIEM alert with process details, affected files, and timeline
验证
- 在隔离的沙箱环境中针对已知勒索软件样本测试检测
- 验证熵监控能够正确区分加密文件与压缩文件
- 确认行为评分在正常工作负载上产生低误报率
- 验证自动响应操作在可接受时间内执行(低于 5 秒)
- 使用多个勒索软件家族(LockBit、BlackCat、Conti)进行测试以验证覆盖范围
- 对监控开销进行基准测试,确保不会降低端点性能
关键概念
| 术语 | 定义 |
|---|---|
| 香农熵 | 数据随机性的数学度量(字节为 0-8);加密数据接近 8.0,而文本文件通常为 2-5 |
| 差分熵 | 文件原始内容与修改内容之间的熵变化;出现峰值表示加密 |
| I/O 速率异常 | 单个进程的文件读/写操作速率异常高,是大规模加密的特征 |
| 行为评分 | 将多个弱信号(熵、I/O 速率、文件重命名)组合为综合置信度评分 |
| 熵规避 | 高级勒索软件用于击败熵检测的技术,例如 Base64 编码输出或部分加密 |
工具与系统
- Sysmon:Windows 系统监视器,提供详细的文件系统和进程事件以进行行为分析
- watchdog (Python):跨平台文件系统监控库,用于实时文件变更检测
- psutil (Python):进程和系统监控库,用于跟踪每个进程的 I/O 统计信息
- Elastic Endpoint:商业端点保护,内置使用金丝雀文件的勒索软件行为检测
- Wazuh:开源安全平台,具备文件完整性监控和主动响应能力
评论
支持 Markdown