One-Click Cloudflare Edge Sensor: Detect & Enforce
Deploy WebDecoy's edge sensor to Cloudflare in one click. Detect the crawlers a JavaScript tag can't see, and enforce before they hit your origin.
integrationSend enriched bot detections to Splunk, Elastic, CrowdStrike, Syslog, or CEF. See the event schema, setup steps, dashboards, and alert examples.
SIEM bot detection starts by sending labeled, enriched automation events—not raw access logs—into Splunk, Elastic Security, CrowdStrike Falcon LogScale, Syslog, or CEF. Without that context, credential stuffing, scraping, and automated probing often look like ordinary authentication failures and HTTP requests.
That credential stuffing attack hitting your login page at 3 AM? It looks like normal authentication failures. That AI scraper exfiltrating your pricing data? Just another HTTP 200. That vulnerability scanner probing your API endpoints? Lost in the noise of legitimate traffic.
WebDecoy changes this. Our native SIEM integrations deliver enriched bot detection events directly into your existing security workflows in under 100 milliseconds. No blind spots. No manual correlation. Every bot attack becomes actionable intelligence in the tools your analysts already use.
Traditional SIEMs are built to correlate known threats: malware signatures, CVE exploits, suspicious login patterns. They excel at connecting dots when the dots are labeled.
Bot attacks create unlabeled dots.
A sophisticated scraper does not trigger your IDS. It does not match a malware hash. It generates legitimate-looking HTTP requests that your WAF waves through. By the time you notice the damage (stolen content, inventory depletion, credential compromise), the attacker is long gone.
Consider what your SIEM sees during a typical bot attack:
2025-11-27T03:14:22Z web-01 nginx: 192.168.1.100 - - "POST /api/login HTTP/1.1" 401 0.023s
2025-11-27T03:14:22Z web-01 nginx: 192.168.1.101 - - "POST /api/login HTTP/1.1" 401 0.019s
2025-11-27T03:14:23Z web-01 nginx: 192.168.1.102 - - "POST /api/login HTTP/1.1" 401 0.021sThree failed logins from three IPs. Could be a botnet cycling through a credential list. Could be three users who forgot their passwords. Your SIEM cannot tell the difference because it lacks the context that only bot detection can provide.
Now imagine those same events enriched with WebDecoy intelligence:
{
"timestamp": "2025-11-27T03:14:22Z",
"src_ip": "192.168.1.100",
"threat_score": 94,
"bot_classification": "credential_stuffing",
"ja3_fingerprint": "e7d705a3286e19ea42f587b344ee6865",
"ja3_match": "python-requests/2.28",
"geo": { "country": "RU", "asn": "AS12345", "isp": "HostingProvider LLC" },
"mitre_attack": ["T1110.001", "T1110.003"],
"honeypot_triggered": true,
"user_agent_mismatch": true
}Now your analysts have actionable intelligence. Now your correlation rules can fire. Now your SOAR playbooks can respond.
WebDecoy delivers bot detection events through five integration paths, ensuring compatibility with every SIEM on the market:
| Method | Best For | Latency | Protocol |
|---|---|---|---|
| Splunk HEC | Splunk Enterprise/Cloud | <50ms | HTTPS |
| Elasticsearch | Elastic Security, ELK | <50ms | HTTPS |
| CrowdStrike LogScale | Falcon ecosystem | <100ms | HTTPS |
| Syslog (RFC 5424) | Universal SIEM compatibility | <100ms | TCP/TLS or UDP |
| CEF | ArcSight, QRadar, legacy SIEMs | <100ms | Syslog transport |
All integrations include the same enriched event data. The only difference is the format and transport mechanism.
Every bot detection event includes:
Threat Intelligence
threat_score (0-100): Composite risk score based on multiple signalsbot_classification: Attack type (credential_stuffing, scraping, vulnerability_scan, inventory_hoarding, etc.)confidence: Detection confidence percentageverdict: Block, challenge, monitor, or allow recommendationTLS Fingerprinting
ja3_fingerprint: JA3 hash of the TLS handshakeja4_fingerprint: JA4 extended fingerprintja3_match: Known bot tool match (curl, python-requests, scrapy, etc.)tls_version: TLS protocol versioncipher_suite: Negotiated cipherGeolocation and Network
country, city, region: Geo-IP dataasn, isp, org: Network ownershipis_datacenter: Datacenter/hosting provider flagis_proxy, is_vpn, is_tor: Anonymization detectionBehavioral Signals
honeypot_triggered: Boolean indicating honeypot interactionuser_agent_mismatch: UA does not match TLS fingerprintrequest_velocity: Requests per minute from this sourcesession_anomalies: Abnormal session patterns detectedMITRE ATT&CK Mapping (see our MITRE ATT&CK honeypot mapping guide)
mitre_attack: Array of applicable technique IDs (T1110, T1595, T1589, etc.)mitre_tactics: Applicable tactics (Credential Access, Reconnaissance, etc.)Splunk is the gold standard for enterprise security operations. WebDecoy’s Splunk integration delivers bot detection events directly to Splunk via HTTP Event Collector (HEC), with pre-built dashboards and saved searches ready for immediate deployment.
Step 1: Enable HTTP Event Collector in Splunk
Settings → Data Inputs → HTTP Event Collector → New TokenCreate a token with the following settings:
_jsonwebdecoy (create this index first)Step 2: Configure WebDecoy
In your WebDecoy dashboard, navigate to Integrations → SIEM → Splunk:
{
"integration": "splunk",
"hec_endpoint": "https://splunk.yourcompany.com:8088/services/collector",
"hec_token": "your-hec-token",
"index": "webdecoy",
"source": "webdecoy:bot_detection",
"sourcetype": "_json",
"enable_acknowledgment": true,
"batch_size": 100,
"flush_interval_ms": 1000
}WebDecoy sends events in Splunk-native JSON format:
{
"time": 1732691662,
"host": "webdecoy-edge-01",
"source": "webdecoy:bot_detection",
"sourcetype": "_json",
"index": "webdecoy",
"event": {
"timestamp": "2025-11-27T08:14:22Z",
"event_type": "bot_detection",
"threat_score": 87,
"verdict": "block",
"bot_classification": "credential_stuffing",
"src_ip": "192.168.1.100",
"dst_host": "app.yourcompany.com",
"dst_path": "/api/v1/auth/login",
"http_method": "POST",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0",
"ja3": "e7d705a3286e19ea42f587b344ee6865",
"ja3_match": "python-requests/2.28",
"ja4": "t13d1516h2_8daaf6152771_b0da82dd1658",
"tls_version": "TLSv1.2",
"geo": {
"country": "RU",
"city": "Moscow",
"asn": "AS12345",
"isp": "Cloud Hosting Ltd"
},
"signals": {
"honeypot_triggered": true,
"user_agent_mismatch": true,
"datacenter_ip": true,
"velocity_anomaly": true
},
"mitre_attack": ["T1110.001", "T1110.003"],
"request_id": "req_abc123xyz"
}
}WebDecoy provides a Splunk app with ready-to-use dashboards:
Bot Attack Overview Dashboard
Credential Stuffing Dashboard
MITRE ATT&CK Coverage Dashboard
Deploy these saved searches to power alerts and reports:
High-Confidence Credential Stuffing
index=webdecoy sourcetype=_json
| where threat_score >= 80 AND bot_classification="credential_stuffing"
| stats count by src_ip, geo.country, ja3_match
| where count > 10
| sort -countHoneypot Triggered Alerts
index=webdecoy sourcetype=_json signals.honeypot_triggered=true
| stats count, values(dst_path) as endpoints by src_ip
| where count > 1Bot Tool Detection
index=webdecoy sourcetype=_json ja3_match=*
| timechart span=1h count by ja3_matchWebDecoy events trigger Splunk SOAR playbooks automatically:
Automated Response Workflow
threat_score >= 90# Splunk SOAR Playbook Snippet
def on_bot_detection(container, **kwargs):
if container['artifact']['threat_score'] >= 90:
# Block at perimeter
phantom.add_firewall_rule(
src_ip=container['artifact']['src_ip'],
action='block',
duration='24h'
)
# Notify SOC
phantom.send_slack(
channel='#soc-alerts',
message=f"High-confidence bot blocked: {container['artifact']['src_ip']}"
)Elastic Security provides powerful visualization and detection capabilities. WebDecoy integrates natively with Elasticsearch for seamless data ingestion and includes Kibana dashboards for bot attack visualization.
Step 1: Create Elasticsearch Index
PUT /webdecoy-bot-detections
{
"mappings": {
"properties": {
"@timestamp": { "type": "date" },
"threat_score": { "type": "integer" },
"bot_classification": { "type": "keyword" },
"src_ip": { "type": "ip" },
"geo": {
"properties": {
"location": { "type": "geo_point" },
"country": { "type": "keyword" },
"asn": { "type": "keyword" }
}
},
"ja3": { "type": "keyword" },
"ja4": { "type": "keyword" },
"mitre_attack": { "type": "keyword" }
}
}
}Step 2: Configure WebDecoy
{
"integration": "elasticsearch",
"hosts": ["https://elasticsearch.yourcompany.com:9200"],
"api_key": "your-api-key",
"index_pattern": "webdecoy-bot-detections-{YYYY.MM.DD}",
"pipeline": "webdecoy-enrichment",
"bulk_size": 500,
"flush_interval_ms": 5000
}Deploy these detection rules for automated alerting:
High-Volume Credential Stuffing
{
"name": "WebDecoy: Credential Stuffing Attack",
"risk_score": 85,
"severity": "high",
"query": "bot_classification:credential_stuffing AND threat_score >= 80",
"threshold": {
"field": "src_ip",
"value": 50,
"cardinality": []
},
"interval": "5m"
}TLS Fingerprint Mismatch
{
"name": "WebDecoy: Bot Tool Detected via TLS Mismatch",
"risk_score": 70,
"severity": "medium",
"query": "signals.user_agent_mismatch:true AND ja3_match:*",
"actions": ["slack-notify", "create-case"]
}WebDecoy provides importable Kibana dashboards:
Elastic ML can detect anomalies in bot patterns:
{
"job_id": "webdecoy-attack-velocity-anomaly",
"analysis_config": {
"detectors": [{
"function": "high_count",
"partition_field_name": "bot_classification"
}],
"bucket_span": "15m"
},
"data_description": {
"time_field": "@timestamp"
}
}For organizations using CrowdStrike’s security ecosystem, WebDecoy integrates with Falcon LogScale (formerly Humio) to correlate bot activity with endpoint telemetry.
{
"integration": "crowdstrike_logscale",
"ingest_endpoint": "https://cloud.humio.com/api/v1/ingest/raw",
"ingest_token": "your-ingest-token",
"repository": "webdecoy",
"parser": "webdecoy-bot-detection",
"tags": {
"source": "webdecoy",
"environment": "production"
}
}Real-Time Attack Dashboard
#source=webdecoy
| threat_score >= 70
| timeChart(bot_classification, function=count)Correlate with Falcon Endpoint Data
#source=webdecoy threat_score >= 80
| join({#source=falcon_endpoint}, field=src_ip, include=[endpoint_name, os_version])
| table(@timestamp, src_ip, endpoint_name, bot_classification, threat_score)Top Attack Sources
#source=webdecoy
| groupBy(geo.country, function=[count(), avg(threat_score)])
| sort(_count, order=desc, limit=20)Automate response with Falcon Fusion:
threat_score >= 90For maximum compatibility, WebDecoy supports standard Syslog output compatible with any SIEM that accepts syslog input.
TCP with TLS (Recommended)
{
"integration": "syslog",
"protocol": "tcp",
"tls": {
"enabled": true,
"verify_certificate": true,
"ca_cert": "/path/to/ca.pem"
},
"host": "siem.yourcompany.com",
"port": 6514,
"facility": "local0",
"severity_mapping": {
"high": "alert",
"medium": "warning",
"low": "notice"
},
"app_name": "webdecoy",
"structured_data": true
}UDP for High-Volume Scenarios
{
"integration": "syslog",
"protocol": "udp",
"host": "siem.yourcompany.com",
"port": 514,
"facility": "local0",
"structured_data": true,
"max_message_size": 65507
}WebDecoy generates RFC 5424-compliant messages with structured data:
<134>1 2025-11-27T08:14:22.000Z webdecoy-edge-01 webdecoy - bot_detection
[webdecoy@52000 threat_score="87" verdict="block" bot_classification="credential_stuffing"
src_ip="192.168.1.100" ja3="e7d705a3286e19ea42f587b344ee6865"
mitre_attack="T1110.001,T1110.003"] Bot detection event: credential_stuffing attack blockedStructured Data Elements
| SD-ID | Description |
|---|---|
webdecoy@52000 | Primary bot detection data |
geo@52000 | Geolocation information |
tls@52000 | TLS fingerprint data |
signals@52000 | Behavioral signal flags |
WebDecoy maps threat scores to syslog severities:
| Threat Score | Syslog Severity | Numeric |
|---|---|---|
| 90-100 | Alert | 1 |
| 70-89 | Warning | 4 |
| 50-69 | Notice | 5 |
| 0-49 | Informational | 6 |
For ArcSight, QRadar, and other CEF-compatible SIEMs, WebDecoy outputs events in standard CEF format.
CEF:0|WebDecoy|BotDetection|1.0|BOT_DETECTED|Bot Detection Event|8|
src=192.168.1.100 dst=app.yourcompany.com dpt=443
request=/api/v1/auth/login requestMethod=POST
cs1Label=bot_classification cs1=credential_stuffing
cs2Label=ja3_fingerprint cs2=e7d705a3286e19ea42f587b344ee6865
cs3Label=ja3_match cs3=python-requests/2.28
cs4Label=mitre_attack cs4=T1110.001,T1110.003
cn1Label=threat_score cn1=87
cn2Label=confidence cn2=95
flexString1Label=verdict flexString1=block
flexString2Label=country flexString2=RU
deviceCustomDate1Label=detection_time deviceCustomDate1=2025-11-27T08:14:22Z| CEF Field | WebDecoy Data |
|---|---|
src | Source IP address |
dst | Target hostname |
request | Targeted URI path |
cs1 | Bot classification |
cs2 | JA3 fingerprint |
cs3 | Known tool match |
cs4 | MITRE ATT&CK techniques |
cn1 | Threat score (0-100) |
cn2 | Detection confidence |
flexString1 | Verdict (block/challenge/monitor/allow) |
flexString2 | Source country |
{
"integration": "cef",
"transport": "syslog_tcp",
"host": "arcsight.yourcompany.com",
"port": 514,
"device_vendor": "WebDecoy",
"device_product": "BotDetection",
"device_version": "1.0",
"severity_mapping": {
"high": 8,
"medium": 5,
"low": 3
}
}The true power of SIEM integration emerges when you correlate bot detections with other security data.
Timeline of Attack
Without WebDecoy Integration
Your SIEM sees:
No alert fires. Fraud discovered days later during reconciliation.
With WebDecoy Integration
Your SIEM correlates:
index=webdecoy bot_classification=credential_stuffing threat_score>=80
| stats values(src_ip) as bot_ips by _time span=1h
| join type=inner [
search index=auth action=login_success
| eval attack_window=relative_time(now(), "-2h")
| where _time > attack_window
]
| where src_ip IN (bot_ips)
| alert title="Account Compromised During Bot Attack"Alert fires at 03:26. SOC responds immediately:
Estimated savings: $50,000 in prevented fraud, 47 hours of investigation time.
WebDecoy’s MITRE mappings enable threat-centric correlation:
index=webdecoy mitre_attack=*
| mvexpand mitre_attack
| join type=outer mitre_attack [
search index=endpoint mitre_technique=*
| rename mitre_technique as mitre_attack
]
| stats count as web_count, count(eval(index="endpoint")) as endpoint_count by mitre_attack
| where web_count > 0 AND endpoint_count > 0
| sort -web_countThis query identifies attack techniques observed both in bot traffic AND endpoint telemetry - a strong indicator of multi-stage attack campaigns.
Deploying WebDecoy SIEM integration takes under 30 minutes:
Navigate to WebDecoy Dashboard → Integrations → SIEM and select your SIEM platform.
Enter your SIEM endpoint URL, authentication credentials, and target index/repository.
Click Test Connection to verify WebDecoy can reach your SIEM. A sample event will be sent.
Download our pre-built dashboards and saved searches for your platform. Import via your SIEM’s management interface.
Set up alerting rules based on the examples above. Start with high-confidence detections (threat_score >= 80) and tune from there.
Connect WebDecoy events to your SOAR platform for automated response workflows.
For SOC Analysts: WebDecoy eliminates bot blind spots. Every detection includes the context you need - threat scores, TLS fingerprints, geo-IP, behavioral signals, and MITRE mappings. No more guessing whether those failed logins are a botnet or forgetful users.
For Security Engineers: Native integrations with Splunk, Elastic, CrowdStrike, and universal formats mean deployment in minutes, not months. Pre-built dashboards and detection rules accelerate time-to-value.
For Security Leaders: WebDecoy provides the audit trail compliance requires. Every bot interaction is logged with full context, mapped to MITRE ATT&CK, and retained in your SIEM for forensic analysis.
Bot attacks do not happen in isolation. Neither should your detection. WebDecoy plus your SIEM equals complete visibility.
Ready to eliminate bot blind spots in your SOC? Review the supported WebDecoy integrations, then start your free trial and see enriched bot detections flowing into your SIEM within the hour.
Questions about integration? Contact our security engineering team or join our Discord for live support.
Deploy WebDecoy's edge sensor to Cloudflare in one click. Detect the crawlers a JavaScript tag can't see, and enforce before they hit your origin.
integrationFrom one script tag to a rotation-proof lockout: the setup, the visitor experience, and the closed loop across a Cloudflare Worker and AWS WAF.
integrationWebDecoy closes the loop from detection to enforcement. Pushing composite, auto-expiring rules to your Cloudflare or AWS WAF. Challenge first, block last.
integrationLike this post? Share it with your friends!
Get a personalized demo from our team.