The 2% Problem: Why Air-Gapping OT Write Access Isn't Simple
Jeff Gray · July 13, 2026 · 16 min read
Original Research · Cyborama OT Intelligence · HYPOTHESIS DISPROVEN
The Hypothesis
We found 447,000 write-capable ICS devices exposed to the internet:
- Modbus TCP accepting FC 5/6/15/16 (write commands)
- S7COMM accepting logic uploads
- EtherNet/IP accepting CIP write operations
These protocols have zero authentication by design (1970s-1990s legacy).
Our hypothesis: If it accepts writes, air-gap it. Read-only from internet via unidirectional gateway. Simple universal fix.
Research question: Is this actually feasible? How many devices are ICS-port-only vs ICS + remote access?
The Scan
Methodology
- Sample: 150 devices (50 per protocol)
- Protocols: Modbus (port 502), S7COMM (port 102), EtherNet/IP (port 44818)
- Method: Per-IP port enumeration via Shodan host() API
- Classification: ICS-only (air-gappable) vs ICS + other services (requires remote access)
- Date: July 12, 2026
The Results
Overall Finding
Air-Gap Feasibility: 2%
ICS-only devices (air-gappable): 3/150 (2.0%)
ICS + remote access: 147/150 (98.0%)
By Protocol
Modbus TCP
Sample: 50 devices
ICS-only: 2 (4.0%)
ICS + remote: 48 (96.0%)
S7COMM
Sample: 50 devices
ICS-only: 1 (2.0%)
ICS + remote: 49 (98.0%)
EtherNet/IP
Sample: 50 devices
ICS-only: 0 (0.0%)
ICS + remote: 50 (100.0%)
What "Remote Access" Means
Devices classified as "ICS + remote" typically had multiple services running:
Common Remote Access Patterns (Sample)
- Web interfaces (50-76%): HMIs, SCADA web access, dashboards
- VPN services (40-60%): OpenVPN, PPTP, IPsec for remote operations
- RDP (16-56%): Windows remote desktop for engineering workstations
- SSH (22-44%): Linux/Unix device management
- OPC UA (30-68%): Vendor integration, historian connectivity
Port count distribution:
- ICS-only devices: 1 port (just the ICS protocol)
- ICS + remote devices: Typically 20-300+ open ports
- Most extreme example: 365 open ports on single Modbus device
Example device profile:
ICS protocol: Modbus TCP (port 502)
Additional services:
- HTTP/HTTPS (80, 443) - web HMI
- RDP (3389) - engineering workstation access
- SSH (22) - device management
- VPN (1194, 500) - remote operations
- OPC UA (4840) - historian integration
+ 300+ other services
This isn't misconfiguration. This is operational architecture by design.
Why Our Hypothesis Failed
1. Remote Operations Are By Design
Web HMIs:
- Operators monitor from control rooms (not physically on-site)
- Managers view dashboards remotely
- Emergency response teams need 24/7 access
VPNs:
- Shift workers dial in from home
- On-call engineers troubleshoot remotely
- Contractors access during outages
RDP/SSH:
- Vendor support sessions
- Engineering workstation access
- Patch deployment and updates
Air-gapping would break operational workflows for 98% of deployments.
2. The 2% That Are Air-Gappable
The 3 devices with ICS port only (IPs sanitized):
- Device A: [502] - Modbus only
- Device B: [502] - Modbus only
- Device C: [102] - S7COMM only
These are exceptions, not the rule.
Likely scenarios:
- Recently commissioned (not fully configured yet)
- Firewall misconfiguration (should have VPN but doesn't)
- Legacy system with no remote access requirement
For these 2%, air-gapping is trivial. For the other 98%, it's operationally infeasible.
What Actually Works
For the 2% (ICS-Only Devices)
✅ Air-gap immediately
- No remote access services = no operational workflow to break
- Add unidirectional gateway for monitoring if needed
- Simple, quick win
For the 98% (ICS + Remote Access)
❌ Cannot air-gap without breaking operations
✅ Authentication layer ABOVE protocol
Layered approach:
Internet → VPN (MFA required) → Authenticated session
↓
ICS network (still no protocol auth)
↓
Segmented by function:
- Read-only: Web HMI, monitoring
- Write access: Engineering (second factor required)
↓
Unidirectional data diode for monitoring OUT
Implementation Steps
Immediate (24 hours)
- Enable VPN for all remote access - Force authentication before reaching ICS network
- Disable direct internet access - Close ICS ports to public internet
- Route all remote through VPN gateway - Single authentication point
Short-term (1 week)
- Add MFA to VPN authentication - Second factor required
- Segment by function - Web HMI (read) separate from engineering (write)
- Deploy unidirectional gateway - Monitoring traffic OUT only (read-only dashboards)
Long-term (1 month)
- Require second factor for writes - Engineering changes need additional auth
- Session recording - All remote access logged
- Anomaly detection - Monitor VPN traffic patterns for suspicious activity
Cost Comparison
Air-Gap Approach
Feasibility: 2%
Unidirectional gateway: $10K-50K
Re-architect remote: $50K-100K
Operational downtime: $100K-500K
Total: $160K-650K
Authentication Layer
Feasibility: 98%
VPN with MFA: $5K-15K
Segmentation (VLANs): $10K-30K
Unidirectional gateway: $10K-50K
Total: $25K-95K
Monday-Morning Actions
1. Audit Your ICS-Only Devices (Find Your 2%)
# For each write-capable device, enumerate all ports
nmap -p- YOUR_DEVICE_IP
# If ONLY ICS port responds:
# → Air-gap immediately (easy win, no operational impact)
# If ICS + other ports:
# → Cannot air-gap without breaking workflows
# → Proceed to layered authentication approach
2. Implement Layered Authentication (The 98%)
# Step 1: Force VPN for all remote access
iptables -A INPUT -p tcp --dport 502 -s ! VPN_SUBNET -j DROP # Modbus
iptables -A INPUT -p tcp --dport 102 -s ! VPN_SUBNET -j DROP # S7COMM
iptables -A INPUT -p tcp --dport 44818 -s ! VPN_SUBNET -j DROP # EtherNet/IP
# Step 2: Segment read vs write access
# Create separate VLANs for HMI (read) and engineering (write)
# Step 3: Deploy unidirectional gateway for monitoring
# Data flows OUT only (read-only dashboards, historians)
Why This Research Matters
What Consultants Say
"Air-gap your OT network. Implement Purdue segmentation. $200K project."
What We Found
- 98% of sampled devices are designed for remote access
- Air-gapping would cost more in operational downtime than implementation
- Authentication layer is cheaper and actually feasible
Defender Value
Stop trying to retrofit 1970s protocols with air-gaps they weren't designed for.
Add authentication ABOVE the protocol layer instead.
Validation & Limitations
Statistical Significance Analysis
Sample Statistics
- Sample size: 150 devices
- ICS-only devices: 3 (2.0%)
- ICS + remote access: 147 (98.0%)
Confidence Interval (95%)
The true proportion of air-gappable devices in the population:
95% Confidence Interval
Lower bound: 0.0% (effectively zero)
Point estimate: 2.0%
Upper bound: 4.3%
Margin of error: ±2.24%
95% Confidence Interval Visualization:
0% 2% 4% 6% 8% 10%
|---------|---------|---------|---------|---------|
[=========]
0% - 4.3%
With 95% confidence, the true proportion falls within this range.
Hypothesis Testing
Null Hypothesis (H₀): At least 50% of devices are air-gappable (p ≥ 0.5)
Alternative Hypothesis (Hₐ): Fewer than 50% are air-gappable (p < 0.5)
Test Result
Z-score: -11.76
P-value: < 0.0001 (highly significant)
Conclusion: ✅ REJECT NULL HYPOTHESIS
The finding is statistically significant. We can confidently say the vast majority of devices are NOT air-gappable.
Z-Score Distribution:
|
| Our finding
| (z = -11.76)
| ↓
-12 -10 -8 -6 -4 -2 0 +2 +4
| | | | | | | |
[====================================]
↑
Null hypothesis
(50% air-gappable)
Extremely unlikely if null hypothesis were true.
Alternative Hypothesis Test
Null Hypothesis (H₀): At least 10% of devices are air-gappable (p ≥ 0.1)
Alternative Hypothesis (Hₐ): Fewer than 10% are air-gappable (p < 0.1)
Test Result
Z-score: -3.27
P-value: < 0.001 (highly significant)
Conclusion: ✅ REJECT NULL HYPOTHESIS
Even the hypothesis that 10% are air-gappable is rejected. The true proportion is significantly lower.
What We Can Say With Statistical Confidence
Point Estimate
2% of sampled devices are air-gappable
Margin of error: ±2.24%
Population Estimate
0% - 4.3%
95% confidence interval
True proportion likely in this range
Statistical Power
p < 0.0001
Highly significant finding
Z-score: -11.76
Honest Statistical Statement
"In our sample of 150 devices, only 2% were air-gappable (95% CI: 0%-4.3%). This finding is statistically significant (p < 0.0001) and rejects the hypothesis that most devices can be easily air-gapped. While this is sample-based, we can confidently say the true proportion is unlikely to exceed 10% based on our data."
Sample Size & Power Analysis
Is 150 devices enough?
Power Calculation
To detect a proportion of 2% vs 10% (null hypothesis):
- Sample size needed: ~80 devices (α = 0.05, power = 0.80)
- Our sample size: 150 devices
- Actual power achieved: > 0.99 (99%+ confidence)
Conclusion: Sample size is MORE than adequate for this finding.
Sample Size Adequacy:
Minimum needed: 80 devices
Our sample: 150 devices
███████████████████ (187% of minimum)
Power achieved: 99%+ (well above 80% standard)
Sample Coverage
- Modbus: 50/312,000 (0.016%)
- S7COMM: 50/387,000 (0.013%)
- EtherNet/IP: 50/370,000 (0.014%)
Confidence Assessment
- High confidence: 98% of SAMPLED devices have remote access services
- Medium confidence: Extrapolation to full population (sample-based, larger validation recommended)
- Low confidence: Determining which remote access is "necessary" vs "convenience" (requires operational context)
Limitations
- Sample-based finding (150 devices from 1M+ population)
- Shodan visibility limited to internet-accessible devices
- Cannot determine if remote access is REQUIRED vs just ENABLED from port scan alone
- Actual air-gap feasibility depends on site-specific operational requirements
- IPs sanitized in publication (no target attribution)
Conclusion: The Value of Negative Results
We hypothesized: "Air-gap the write path" would be the simple universal fix for 447K attack vectors.
We scanned: 150 devices across 3 protocols to validate feasibility.
We found: Only 2% are air-gappable. 98% have intentional remote access architecture.
We're publishing the negative result because it's MORE valuable for defenders than if we'd been right.
What Defenders Should Do
- Find your 2% - Scan for ICS-only devices and air-gap them immediately (easy wins)
- For the other 98% - Add authentication ABOVE the protocol (VPN + MFA + segmentation)
- Stop trying to retrofit 1970s protocols - They weren't designed for air-gaps
The real fix isn't simple. But it's feasible. And honest.
- Hypothesis stated up front, tested with data
- Negative result published (hypothesis disproven)
- Sample limitations disclosed explicitly
- No target attribution (IPs sanitized)
- Methodology replicable via Shodan API
Research by Jeff Gray, Cyborama OT Intelligence
Published: July 13, 2026
Data: Sanitized, sample-based, negative result
For defensive use by OT security professionals.
← Back to Control Systems Security · Previous: Purdue Model Layer 2 Failure