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

RESEARCH PRODUCT: Air-Gap Feasibility Assessment

CLASSIFICATION: SANITIZED – SAMPLE ANALYSIS

METHODOLOGY: Per-IP enumeration of 150 write-capable devices

DATA SOURCE: Shodan host() API, July 2026

SAMPLE SIZE: 150 devices (50 Modbus, 50 S7COMM, 50 EtherNet/IP)

RESULT: Hypothesis disproven – publishing negative result

Key Finding: We hypothesized that air-gapping devices accepting write commands would be the simple universal fix for 447K attack vectors. We scanned 150 devices to validate. Result: Only 2% are air-gappable (ICS port only). 98% have intentional remote access services. The "simple fix" doesn't work for the vast majority. This negative result is more valuable than if we'd been right.

The Hypothesis

We found 447,000 write-capable ICS devices exposed to the internet:

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

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)

Port count distribution:

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:

VPNs:

RDP/SSH:

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):

These are exceptions, not the rule.

Likely scenarios:

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

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)

Short-term (1 week)

Long-term (1 month)

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

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

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):

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)
        

Data Source: Shodan API, July 12-13 2026

Sample: 150 devices from 1,070,009 total write-capable population (0.014%)

Protocols: Modbus TCP (312K total), S7COMM (387K total), EtherNet/IP (370K total)

Method: Per-IP port enumeration via Shodan host() API

Rate limit: 1 request/second, ~10 minutes total scan time

Sample Coverage

Confidence Assessment

Limitations

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

  1. Find your 2% - Scan for ICS-only devices and air-gap them immediately (easy wins)
  2. For the other 98% - Add authentication ABOVE the protocol (VPN + MFA + segmentation)
  3. 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.

Research Notes:

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

OT Remote Access Playbook

Jump-host architecture, MFA, vendor access controls, session recording, and 9 Excel tools — the complete solution to the problem above.

View Playbook — $39