Deploys canary files, honeypot shares, and decoy systems to detect ransomware activity at the earliest possible stage. Configures canary tokens embedded in strategic file locations that trigger alerts when ransomware attempts encryption, uses honeypot network shares that mimic high-value targets, and deploys Thinkst Canary appliances for comprehensive deception-based detection. Activates for requests involving ransomware honeypots, canary files, deception technology for ransomware, or early ransomware alerting.
Do not use as the sole ransomware detection mechanism. Honeypots are a high-confidence supplementary layer, not a replacement for EDR, network monitoring, and backup protection.
Place canary files in strategic locations that ransomware will encounter during encryption:
# Deploy canary files across all file shares
# Files are named to appear early in alphabetical and directory order
# Ransomware typically encrypts alphabetically or by directory traversal
$shares = @("\\fileserver01\finance", "\\fileserver01\hr", "\\fileserver01\engineering")
$canaryNames = @(
"!_IMPORTANT_DO_NOT_DELETE.docx",
"000_Budget_2026_FINAL.xlsx",
"_Confidential_Employee_Records.pdf",
"AAAA_Quarterly_Report.docx"
)
foreach ($share in $shares) {
foreach ($name in $canaryNames) {
$targetPath = Join-Path $share $name
# Create a legitimate-looking file with canary content
# The file contains a unique token that triggers on access
$content = "This document contains confidential financial data.`n"
$content += "Q4 2025 Revenue: $42.3M | Q1 2026 Forecast: $45.1M`n"
$content += "Prepared by: Finance Department`n"
Set-Content -Path $targetPath -Value $content
# Set file as hidden system to avoid user interaction
$file = Get-Item $targetPath
$file.Attributes = [System.IO.FileAttributes]::Hidden
}
}
# Also deploy in subdirectories (ransomware traverses recursively)
$subDirs = Get-ChildItem -Path "\\fileserver01\finance" -Directory -Recurse | Select-Object -First 20
foreach ($dir in $subDirs) {
$canaryPath = Join-Path $dir.FullName "!_Budget_Summary.xlsx"
Set-Content -Path $canaryPath -Value "Canary file for ransomware detection"
(Get-Item $canaryPath).Attributes = [System.IO.FileAttributes]::Hidden
}
Windows FSRM approach:
# Configure FSRM to monitor for ransomware file extensions
# and canary file modifications
Install-WindowsFeature -Name FS-Resource-Manager -IncludeManagementTools
# Create file screen for known ransomware extensions
$ransomExtensions = @(
"*.encrypted", "*.locked", "*.crypto", "*.crypt",
"*.locky", "*.cerber", "*.zepto", "*.thor",
"*.aesir", "*.zzzzz", "*.wallet", "*.onion",
"*.wncry", "*.wcry", "*.lockbit", "*.BlackCat",
"*.ALPHV", "*.rhysida", "*.play"
)
# Create file group for ransomware extensions
New-FsrmFileGroup -Name "Ransomware_Extensions" -IncludePattern $ransomExtensions
# Create file screen template
New-FsrmFileScreenTemplate -Name "Ransomware_Screen" `
-IncludeGroup "Ransomware_Extensions" `
-Active:$false # Passive mode: alert without blocking
# Apply to all monitored shares
$monitoredPaths = @("D:\Shares\Finance", "D:\Shares\HR", "D:\Shares\Engineering")
foreach ($path in $monitoredPaths) {
New-FsrmFileScreen -Path $path -Template "Ransomware_Screen"
}
Canary file modification monitoring with PowerShell FileSystemWatcher:
# Real-time canary file monitoring service
$canaryPaths = @(
"D:\Shares\Finance\!_IMPORTANT_DO_NOT_DELETE.docx",
"D:\Shares\HR\000_Budget_2026_FINAL.xlsx",
"D:\Shares\Engineering\_Confidential_Employee_Records.pdf"
)
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "D:\Shares"
$watcher.Filter = "*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
$action = {
$path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
$timestamp = $Event.TimeGenerated
# Check if modified file is a canary
$isCanary = $false
foreach ($canary in $canaryPaths) {
if ($path -eq $canary) { $isCanary = $true; break }
}
if ($isCanary -or $changeType -eq "Renamed") {
$alertMsg = "RANSOMWARE ALERT: Canary file modified! Path: $path | Change: $changeType | Time: $timestamp"
# Log to Windows Event Log
Write-EventLog -LogName Application -Source "RansomwareCanary" `
-EventID 9999 -EntryType Error -Message $alertMsg
# Send SIEM alert via syslog
# Trigger automated containment
}
}
Register-ObjectEvent $watcher "Changed" -Action $action
Register-ObjectEvent $watcher "Deleted" -Action $action
Register-ObjectEvent $watcher "Renamed" -Action $action
Create decoy file shares that appear to contain high-value data:
# Create honeypot share on dedicated server
# This server monitors ALL file access and alerts on any activity
New-Item -Path "D:\HoneypotShares\Executive_Compensation" -ItemType Directory
New-Item -Path "D:\HoneypotShares\M&A_Documents" -ItemType Directory
New-Item -Path "D:\HoneypotShares\Board_Meeting_Notes" -ItemType Directory
New-Item -Path "D:\HoneypotShares\Customer_Database_Exports" -ItemType Directory
# Share with broad read access (enticing to attackers)
New-SmbShare -Name "Executive_Compensation" `
-Path "D:\HoneypotShares\Executive_Compensation" `
-FullAccess "DOMAIN\Domain Users" `
-Description "Executive Compensation Files - Restricted"
# Populate with realistic-looking but fake documents
# Use document templates that look legitimate
$docContent = @"
CONFIDENTIAL - Executive Compensation Summary
FY 2026 Base Salary and Bonus Structures
CEO: [REDACTED] | CFO: [REDACTED] | CTO: [REDACTED]
Total Compensation Package: See Appendix A
"@
Set-Content -Path "D:\HoneypotShares\Executive_Compensation\FY2026_Comp_Summary.txt" -Value $docContent
# Enable detailed audit logging on honeypot share
$acl = Get-Acl "D:\HoneypotShares"
$auditRule = New-Object System.Security.AccessControl.FileSystemAuditRule(
"Everyone", "ReadAndExecute,Write,Delete", "ContainerInherit,ObjectInherit",
"None", "Success,Failure"
)
$acl.AddAuditRule($auditRule)
Set-Acl "D:\HoneypotShares" $acl
# Enable object access auditing via GPO
auditpol /set /subcategory:"File System" /success:enable /failure:enable
For organizations using Thinkst Canary or the free canarytokens.org service:
# Generate canary tokens via API (Thinkst Canary)
# These trigger alerts when documents are opened or URLs are accessed
# Word document token
curl -X POST "https://CONSOLE.canary.tools/api/v1/canarytoken/create" \
-d "auth_token=YOUR_API_TOKEN" \
-d "memo=Finance_Share_Canary" \
-d "kind=doc-msword" \
-o /tmp/canary_budget_report.docx
# PDF document token
curl -X POST "https://CONSOLE.canary.tools/api/v1/canarytoken/create" \
-d "auth_token=YOUR_API_TOKEN" \
-d "memo=HR_Share_Canary" \
-d "kind=pdf-acrobat-reader" \
-o /tmp/canary_employee_handbook.pdf
# Windows folder token (alerts when folder is browsed)
curl -X POST "https://CONSOLE.canary.tools/api/v1/canarytoken/create" \
-d "auth_token=YOUR_API_TOKEN" \
-d "memo=Executive_Folder_Browse" \
-d "kind=windows-dir"
# Deploy Canary appliance (emulates a file server)
# Configure via web console to appear as:
# - Windows file server with SMB shares
# - Contains realistic-looking directories
# - Any access triggers immediate alert with source IP and activity details
# siem_integration.py - Forward honeypot alerts to SIEM and trigger containment
import json
import requests
import logging
from datetime import datetime
SIEM_WEBHOOK = "https://siem.company.com/api/alerts"
NAC_API = "https://nac.company.com/api/v1/quarantine"
EDR_API = "https://edr.company.com/api/v1/isolate"
def send_ransomware_alert(source_ip: str, canary_path: str, action: str):
"""Send high-priority alert to SIEM and trigger automated containment."""
alert = {
"timestamp": datetime.utcnow().isoformat(),
"severity": "CRITICAL",
"category": "Ransomware - Canary File Triggered",
"source_ip": source_ip,
"canary_file": canary_path,
"action_detected": action,
"automated_response": "Host isolation initiated",
"mitre_technique": "T1486 - Data Encrypted for Impact",
}
# Send to SIEM
try:
requests.post(SIEM_WEBHOOK, json=alert, timeout=5)
except requests.RequestException as e:
logging.error(f"SIEM alert failed: {e}")
# Automated containment - isolate host via NAC
try:
requests.post(f"{NAC_API}/{source_ip}",
json={"action": "quarantine", "reason": "Ransomware canary triggered"},
timeout=5)
except requests.RequestException as e:
logging.error(f"NAC quarantine failed: {e}")
# Automated containment - isolate host via EDR
try:
requests.post(EDR_API,
json={"ip": source_ip, "action": "isolate"},
timeout=5)
except requests.RequestException as e:
logging.error(f"EDR isolation failed: {e}")
logging.critical(f"RANSOMWARE CANARY ALERT: {source_ip} modified {canary_path} ({action})")
| Term | Definition |
|---|---|
| Canary File | A decoy file placed in strategic locations that triggers an alert when modified, renamed, or deleted by ransomware |
| Honeypot Share | A decoy network share designed to attract attackers, where any access is suspicious and triggers alerts |
| Canary Token | A trackable token embedded in a document or URL that reports back when accessed, revealing the accessor's IP and time |
| FSRM | File Server Resource Manager - Windows Server role that monitors file operations and can screen for ransomware extensions |
| Deception Layer | Security architecture layer using decoy assets to detect threats with near-zero false positive rates |
| File System Watcher | System service that monitors real-time file system changes (creation, modification, deletion, rename) |
Context: A retail company deploys canary files across 200 file shares and 3 honeypot shares. At 3:00 AM on a Saturday, the canary monitoring system generates 47 alerts in rapid succession as canary files across 12 shares are modified within 90 seconds.
Approach:
Pitfalls:
## Ransomware Honeypot Deployment Report
**Organization**: [Name]
**Deployment Date**: [Date]
### Canary File Deployment
| Share | Files Deployed | Naming Convention | Alert Method |
|-------|---------------|-------------------|--------------|
| [Share path] | [Count] | [Pattern] | [FSRM/Watcher/Token] |
### Honeypot Shares
| Share Name | Location | Apparent Content | Monitoring |
|-----------|----------|-----------------|------------|
| [Name] | [Server] | [Description] | [Audit/Canary] |
### Alert Integration
- SIEM: [Connected/Not Connected]
- Automated Containment: [EDR Isolation/NAC Quarantine/None]
- Alert SLA: [Expected response time]
### Testing Results
| Test Date | Test Type | Canary Triggered | Alert Received | Containment Executed | Time to Alert |
|-----------|----------|-----------------|----------------|---------------------|---------------|