mcpField
D
detecting-ransomware-encryption-behavior

detecting-ransomware-encryption-behavior

github.com/mukul975安全35.2k56 次安装8 周前更新
代码仓库

关于 detecting-ransomware-encryption-behavior

面向安全团队的勒索软件行为检测技能,通过文件熵、进程 I/O 和重命名模式组合判断批量加密活动。它还介绍行为评分与响应阈值,强调不能仅凭熵值判断。

主要功能

  1. 01建立文件类型熵基线
  2. 02实时监测文件熵变化
  3. 03跟踪进程级文件 I/O
  4. 04组合信号进行行为评分
  5. 05按风险等级配置响应

适用场景

  1. 01发现绕过特征码检测的加密行为
  2. 02监测文件服务器批量文件变更
  3. 03调整 EDR 勒索软件检测规则
  4. 04在隔离沙箱中验证检测效果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill detecting-ransomware-encryption-behavior

安装后在 Claude Code 中输入/detecting-ransomware-encryption-behavior确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
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