| name | implementing-network-deception-with-honeypots |
| description | Deploy and manage network honeypots using OpenCanary, T-Pot, or Cowrie to detect unauthorized access, lateral movement, and attacker reconnaissance. Use when deploying and manage network honeypots using opencanary, t-pot, or cowrie. |
| domain | cybersecurity |
| tags | ["deception","honeypot","opencanary","cowrie","t-pot","detection","lateral-movement","network-security"] |
| subdomain | deception-technology |
| version | 1.0 |
| author | oyi77 |
| license | Apache-2.0 |
| nist_csf | ["DE.CM-01","DE.AE-06","PR.IR-01"] |
Implementing Network Deception With Honeypots
Overview
Cybersecurity skill for implementing network deception with honeypots. Follows industry best practices and security standards.
When to Use
Trigger phrases:
-
"implementing network deception with honeypots"
-
"Deploy and manage network honeypots using OpenCanary, T-Pot, or Cowrie to detect"
-
When deploying deception technology to detect lateral movement
-
To create early warning indicators for network intrusion
-
During security architecture design to add detection depth
-
When monitoring for unauthorized internal scanning or credential theft
-
To gather threat intelligence on attacker techniques and tools
When NOT to Use
- When you lack proper authorization for testing
- For production systems without change management
- When the task requires legal or compliance expertise beyond technical scope
Prerequisites
- Linux server or VM for honeypot deployment (Ubuntu 22.04+ recommended)
- Python 3.8+ with pip for OpenCanary installation
- Docker for T-Pot or containerized deployment
- Network segment with appropriate VLAN configuration
- SIEM integration for alert forwarding (syslog, webhook, or file-based)
- Firewall rules allowing inbound connections to honeypot services
Workflow
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}