Overview
SafeNetworking integrates with an external IoT honeypot database to identify and classify threats targeting Internet of Things devices. The system periodically retrieves threat intelligence, normalizes malware family names, and stores enriched data locally for correlation with firewall events.IoT processing is disabled by default. Enable it in
.panrc:How IoT Processing Works
Architecture Overview
The IoT threat processing pipeline consists of three stages:Query Honeypot Database
Connect to external IoT honeypot API to retrieve new threat observations since last update
Normalize Threat Data
Convert raw honeypot data into standardized format with Unit42 naming conventions
Database Synchronization
TheprocessIoT() function orchestrates the update cycle:
Honeypot API Integration
The system connects to an external IoT honeypot database service:__init__.py:
Family Name Normalization
Raw honeypot data uses inconsistent naming conventions. The__normalizeFamilyInfo() function standardizes malware family names to match Unit42 taxonomy:
Supported IoT Malware Families
The system recognizes and normalizes these common IoT threat families:Mirai
Unit42.ELFMirai - DDoS botnet targeting Linux IoT devices via default credentials
XorDDoS
Commodity.XorDDoS - Linux trojan for DDoS attacks, uses XOR-based encryption
Ganiw
Unit42.Ganiw - IoT worm spreading through SSH and Telnet brute force
DDoSTF
Unit42.DDoSTF - DDoS toolkit framework for compromised IoT devices
FRS Ransomware
Unit42.FRS_Ransomware - Ransomware targeting embedded Linux systems
Coinminer
Commodity.Coinminer - Cryptocurrency mining malware for IoT devices
Data Normalization Process
ThenormalizeIoTData() function transforms raw honeypot responses into structured threat records:
Raw vs. Normalized Data Example
Raw Honeypot Response:Local Database Updates
TheupdateLocalIoTDB() function stores enriched data in Elasticsearch:
Document Structure
IoT threat data is stored in thesfn-iot-details index:
Example Document
Scheduling and Updates
IoT processing runs on a configurable schedule:Update Cycle
Calculate Time Gap
Query
sfn-iot-details index for most recent threat observation timestamp. Calculate minutes elapsed since last update.Configuration Options
Configure IoT processing in.panrc:
Tuning Recommendations
High-Activity Environments
High-Activity Environments
If your honeypot database receives frequent updates:
- Reduce
IOT_POOL_TIMEto 300-600 seconds (5-10 minutes) - Monitor API endpoint performance
Low-Activity or Testing
Low-Activity or Testing
For environments with infrequent IoT threats:
- Increase
IOT_POOL_TIMEto 1800-3600 seconds (30-60 minutes) - Reduces unnecessary API calls
Custom Honeypot Sources
Custom Honeypot Sources
To use your own IoT honeypot database:
- Update
IOT_DB_URLto your API endpoint - Ensure API returns compatible format (see normalization section)
- May need to modify
__normalizeFamilyInfo()for custom family names
Event Correlation
IoT threat data can be correlated with firewall traffic logs to identify compromised IoT devices on your network:Query Example
Find firewall traffic from IPs in IoT threat database:Kibana Dashboard Integration
Create visualizations to:- Map IoT threat IPs to geographic locations
- Trend IoT malware families over time
- Identify internal devices communicating with known IoT threat sources
- Correlate DNS queries to domains associated with IoT C2 infrastructure
Troubleshooting
No updates from honeypot database
No updates from honeypot database
Check:
- Network connectivity to
IOT_DB_URL - API endpoint status (should return HTTP 200)
log/sfn.logfor connection errors
Family normalization errors
Family normalization errors
If you encounter unknown family names:
- Check
log/sfn.logfor the rawfamilyinfodata - Add new family mappings to
__normalizeFamilyInfo()inrunner.py - Restart SafeNetworking service
Elasticsearch indexing failures
Elasticsearch indexing failures
Common causes:
- Incorrect IP format in honeypot data
- Disk space exhaustion on Elasticsearch node
- Mapping conflicts in
sfn-iot-detailsindex
IoT processing disabled
IoT processing disabled
Verify configuration:Restart SafeNetworking:
Index Management
Thesfn-iot-details index grows over time. Consider implementing index lifecycle management:
Curator Configuration Example
Performance Considerations
IoT processing is lightweight compared to DNS enrichment:
- No AutoFocus API lookups per event (only tag metadata)
- Simple REST API call to honeypot database
- Minimal CPU/memory overhead
- Typical update contains 10-100 records
Resource Usage
| Component | Impact |
|---|---|
| Network bandwidth | ~1-10 KB per update cycle |
| CPU usage | < 1% (single-threaded) |
| Memory | < 50 MB |
| Elasticsearch storage | ~1 KB per threat record |
See Also
DNS Enrichment
Learn about DNS threat intelligence enrichment
GTP/SCTP Logging
Configure service provider protocol logging
