Layer 1: RF emitter inventory
Detect RF devices that transmit. The most concrete, near-term layer. Scan for:- Unknown BSSIDs and hidden SSIDs
- Probe requests and probe responses from unrecognized MACs
- Beacon anomalies (unexpected intervals, vendor OUIs associated with sensing hardware)
- New MAC addresses appearing in the environment
- Channel hopping patterns inconsistent with normal WiFi clients
- Espressif devices operating in mesh or CSI-extraction modes
Layer 2: RF fingerprinting
Identify hardware, not just MAC addresses. MAC addresses are trivially spoofed. RF fingerprinting extracts hardware-intrinsic characteristics from the transmitted waveform:- IQ imbalance
- Carrier frequency offset
- Phase noise profile
- Power amplifier nonlinearity
- Clock skew
Layer 3: Environmental anomaly detection
Detect the effects of sensing, not the sensor. Instead of finding the attacker, monitor whether the RF environment itself behaves abnormally:- Sudden CSI variance spikes without corresponding occupancy
- Abnormal channel occupancy patterns
- Unexpected RSSI distribution shifts
- Multipath structure changes inconsistent with known activity
- Persistent low-amplitude RF perturbations (attacker’s body or equipment in the channel)
Layer 4: Distributed sensing mesh
Multiple nodes for triangulation, localization, and confidence. A single ESP32 sees one channel geometry. A mesh of nodes sees:- Spatial correlation of anomalies across locations
- Direction-of-arrival estimates from phase differences
- Confidence scores that increase with node agreement
- Source localization for active emitters
Layer 5: Behavioral baseline
Build normal RF behavior; alert on deviations. Long-term RF timeline for a space:- Expected WiFi clients and their traffic patterns
- Normal BLE, Zigbee, and IoT device inventory
- Typical beacon frequencies and channel usage
- Baseline CSI polling rates from legitimate sensing systems
- A new RF source appears that was never seen during baseline period
- Beacon frequency changes on a known device (firmware update vs. compromise)
- CSI extraction signatures appear (Espressif mesh coordination, rapid channel scans)
- Hidden network detected where none existed before
- Unusual timing patterns in management frame sequences
The passive sniffer problem
The hardest case: attacker with a monitor-mode NIC, receive-only, well-shielded, positioned outside the building. Can they be detected directly? Current research says probably not.- LO leakage exists but is microvolts at meters: indistinguishable from ambient noise in a WiFi-noisy office
- No management frames to capture: WIDS blind
- No RF fingerprint: nothing transmitted
- No channel perturbation if the receiver is outside the sensing mesh
- If they piggyback on your infrastructure (BFI from your clients), the attack leaves no local trace: the victim’s own devices generate the leaked signal
- If they deploy active sensing (ESP32 transmitter, rogue AP), Layers 1, 2, and 5 catch them
- If their body or equipment perturbs the local channel, Layer 3 may flag an anomaly
Recommended detection stack
For a practical RF privacy deployment, prioritize:
The fastest path to a demo: “RF timeline for a room” — every emitter that appeared, every anomaly in CSI polling or beacon behavior, with alerts like “Unknown WiFi observer signature detected on channel 6 for 47 minutes.”
RF Privacy Overview
Why RF privacy matters now and the converging trends making it urgent
WiFi Sensing Attacks
LeakyBeam, BFId, and how BFI side channels enable passive surveillance
RF Privacy Defenses
Obfuscation, metasurfaces, and the practical limits of each defense
802.11bf Privacy Gap
What the WiFi sensing standard enables and the privacy protections it omits
Further reading
- goop-veil: open-source detection and countermeasure research preview
- Awesome-WS-Security: full literature database
- RF privacy overview
- WiFi sensing attacks
- Defenses and limits
