| name | deploying-ransomware-canary-files |
| description | 使用 Python watchdog 库在关键目录中部署并监控勒索软件诱饵文件(Canary File),实现实时文件系统事件检测。 将策略性命名的诱饵文件(模拟高价值目标,如财务记录、凭据、数据库导出)放置在勒索软件通常优先枚举的 目录中,监控对诱饵文件的任何读取、修改、重命名或删除操作,并在检测到交互时通过 Email、Slack Webhook 或 Syslog 触发即时告警,在完整加密开始前提供早期预警。
|
| domain | cybersecurity |
| subdomain | ransomware-defense |
| tags | ["ransomware","canary-files","watchdog","detection","early-warning","deception","defense"] |
| version | 1.0.0 |
| author | mahipal |
| license | Apache-2.0 |
部署勒索软件诱饵文件
适用场景
- 在文件服务器、NAS 设备或终端系统上部署主动勒索软件检测
- 构建早期预警系统,在勒索软件加密关键业务数据前完成检测
- 在无法部署 EDR Agent 的系统上,使用轻量级诱饵文件监控补充 EDR 解决方案
- 通过模拟诱饵文件触发来测试勒索软件应急响应流程
- 监控共享驱动器、Home 目录和备份卷中的未授权文件操作
不适用场景:不可替代终端保护、备份策略或网络分段。诱饵文件仅为检测层,并非预防机制。
前置条件
- Python 3.8+ 及 pip
- watchdog 库(
pip install watchdog)
- 对诱饵文件部署目录的写入权限
- 用于告警的 SMTP 服务器凭据或 Slack Webhook URL
- 在系统目录中放置诱饵文件所需的管理员权限
工作流程
步骤 1:生成诱饵文件
创建具有真实文件名和内容的诱饵文件,以吸引勒索软件扫描器。文件名应使用 Passwords.xlsx、Financial_Report_2026.docx、backup_credentials.csv 等格式,内容为看似合理的虚假数据。将文件放置在勒索软件通常优先攻击的目录中:用户桌面、Documents 文件夹、网络共享根目录和备份路径。
步骤 2:部署文件系统监控
使用 Python watchdog 库结合自定义 FileSystemEventHandler,监控诱饵文件路径。Handler 针对诱饵文件触发 on_modified、on_deleted、on_moved 和 on_created 事件。任何合法用户或进程都不应接触这些文件,因此任何交互都是勒索软件或未授权访问的高可信度指示器。
步骤 3:配置告警管道
将文件系统监控器连接到多个告警渠道:通过 SMTP 发送邮件、发送 Slack Webhook POST、转发 Syslog 到 SIEM,以及写入本地日志文件。告警有效载荷中应包含触发事件类型、文件路径、时间戳和进程信息(如可获取)。
步骤 4:验证与测试
通过程序化方式修改、重命名和删除诱饵文件,模拟勒索软件行为,验证检测管道是否正常触发。测量告警响应时间,并验证所有配置渠道的告警投递情况。
核心概念
| 术语 | 定义 |
|---|
| 诱饵文件(Canary File) | 放置在受监控目录中的诱骗文件,当被访问、修改或删除时触发告警 |
| Watchdog | Python 文件系统监控库,使用操作系统原生 API(Linux 的 inotify、macOS 的 FSEvents、Windows 的 ReadDirectoryChangesW) |
| 蜜罐文件(Honey File) | 诱饵文件的别名;用于吸引和检测恶意活动的虚假文档 |
| 熵值检测(Entropy Check) | 通过测量文件内容的随机性来检测加密行为(勒索软件加密后产生高熵值输出) |
工具与系统
- watchdog:Python 文件系统监控库,使用操作系统原生事件 API
- smtplib:Python 标准库,用于 SMTP 邮件告警
- requests:HTTP 库,用于 Slack Webhook 集成
- hashlib:SHA-256 哈希,用于诱饵文件完整性验证
- psutil:检测诱饵文件访问时的进程信息采集
输出格式
RANSOMWARE CANARY ALERT
========================
Timestamp: 2026-03-11T14:23:07Z
Event: FILE_MODIFIED
Canary File: /srv/shares/finance/Passwords.xlsx
Directory: /srv/shares/finance
SHA-256 Before: a3f2...8b4c
SHA-256 After: 7e91...2d3f
Alert Channels: [email, slack, syslog]
Action: Investigate immediately - potential ransomware activity