Scene 01 — Case · Bachelor thesis · 2025—26
SHIELD
Spectral Hybrid Interference Elimination LiDAR Defense
Detecting LiDAR spoofing from a single frame, while the vehicle is standing still.
Every published defence I could find asks the same question: what changed between this frame and the last one? SHIELD asks a different one — what does a single revolution look like in the frequency domain? That question still has an answer when nothing is moving.
- STFT
- Random Forest
- CFAR
- Point clouds
- Signal processing
- Kind
- Bachelor thesis, 48 pp.
- Title
- Detection of Spoofing Attacks in LiDAR Sensors via Frequency-Domain Analysis
- Advisor
- Doç. Dr. Fatih Kılıç
- Institution
- Adana Alparslan Türkeş Science and Technology University
- Authentic returns
- Injected returns
- Sweep — one revolution
The defence that stops when the car stops
Almost every published LiDAR spoofing defence leans on motion. The detector compares consecutive frames and asks whether a return behaves the way a real object should as the vehicle advances. It is a reasonable question, and it has a fatal precondition: something has to be moving.
A vehicle at a junction is not moving. A vehicle in traffic is not moving. A vehicle waiting for a pedestrian is not moving. In exactly the moments where a wrong perception decision is most expensive, the frame-to-frame signal these methods depend on goes to zero — and an attacker holding a false return steady across frames looks, to that test, indistinguishable from a parked car.
So the problem was not to make the existing test more sensitive. It was to find a question that a single frame can answer.
The literature
A systematic review across IEEE Xplore, the ACM Digital Library and arXiv, 2017 to 2025, looking for time–frequency analysis applied to LiDAR security.
No prior work found.
Spectral methods are standard in radar and in acoustics. In LiDAR security the shelf was empty — which is a risk and an opening at the same time.
01Range(t−1)
02Range(t)
03|Δ| — anomaly score
Ask the frequency domain instead
The detection primitive is the Short-Time Fourier Transform of the raw sensor returns. That single choice makes detection motion-independent, and it makes detection possible from one frame.
A spoofed return is not just wrong about distance. Injecting it forces a spatial discontinuity into the range signal and a burst of interference into the intensity signal, and both of those are visible as energy in frequencies where a physical surface simply does not put energy. Nothing about that argument requires a previous frame, so nothing about it requires the vehicle to move.
Borrowing STFT from radar was not a matter of importing a function. LiDAR data breaks two assumptions the transform is built on, and both had to be solved before a single spectrogram was worth looking at.
- Circular angular boundary conditions. A revolution is a closed loop: 359° is adjacent to 0°. A naive window treats the two ends as the far edges of a finite signal and manufactures an artificial discontinuity at exactly the seam — a false positive on every single frame.
- Sparse point cloud resampling. The STFT wants a uniformly sampled signal. A LiDAR return series is sparse and unevenly spaced, and it gets sparser with distance. Resampling it without inventing structure that was never measured is the whole difficulty.
Architecture
single frame- Raw returns of one revolution
- STFT — range channel and intensity channel
- Dual spectrogram, 9 extracted features
- Random Forest classifier
- CFAR adaptive thresholding
- Safety clamp and hysteresis
- Frame verdict — clean or spoofed
Recall
fixed vs. adaptiveSame features, same classifier. The difference is entirely in how the decision boundary is drawn — and it is the difference between a detector that misses two attacks in three and one that catches almost all of them.
The first result was a lie
97.1% in simulation. Then 8.2% on data from a real sensor, with more than nine out of ten alarms false. The model had not learned to detect spoofing. It had learned what a simulator looks like.
There was an easy way out of that number and I did not take it: keep training on synthetic data, report the simulation figure, put the real-world result in a footnote. Instead the collapse became the finding, and the question turned into where exactly the gap between the two worlds lives.
- Simulation only97.1%
Synthetic scenes, synthetic attacks. Nothing in this number had ever met a physical sensor.
- Real sensor data8.2%
The same model, unchanged, on authentic captures — with over 90% false positives. Not a weak result. A collapse.
- Hybrid dataset79.3%
Trace-based injection: synthetic attacks placed onto authentic UGV captures. 3,836 samples.
- Final system81.6%
Full pipeline — dual spectrogram, CFAR thresholding, safety clamp, hysteresis — on authentic captures.
Diagnose the gap, do not paper over it
A simulator produces returns that are too clean, too regular and too complete. Real captures carry dropouts, reflectivity variation, multipath and a noise floor that moves with the scene. A classifier trained only on the first kind learns the simulator's regularity as its notion of "normal", so every ordinary imperfection in a real capture reads as an anomaly. Hence 90% false positives: the model was not broken, it was answering a question nobody had asked it.
The fix had to keep the realism and still provide labelled attacks, which no real capture contains. So the attacks were moved instead of the data: synthetic spoofing signatures are injected directly onto authentic UGV recordings, at the trace level, before any feature is computed. The noise floor, the dropouts and the reflectivity behaviour stay exactly as the sensor recorded them; only the attack is synthetic, and because it was placed deliberately, its ground truth is exact.
That produced a 3,836-sample hybrid dataset and took real-world accuracy from 8.2% back to 79.3% — before any of the thresholding work that finished the system.
Turning point
The honest number was the one worth having. Tuning the model until simulation looked good would have produced a better thesis figure and a detector that fails on the first real sensor it meets.
Measured on authentic captures
Every figure below comes from the hybrid dataset built on real sensor recordings, not from simulation. That is the whole point of the number being what it is.
81.6%
Accuracy on authentic UGV captures, full pipeline.
94.1%
Precision — of everything flagged, this much really was an attack.
87.3%
Recall — of every attack present, this much was caught.
3.1%
False positives on clean frames, with no attack present.
Frame budget
10 Hz sensorA 10 Hz LiDAR delivers a frame every 100 ms. Detection takes 38.8 ms of that, so the verdict for a frame is ready long before the next one arrives — the detector runs in the loop rather than beside it, and nothing has to be dropped to make room.
On the headline numbers
Published methods report higher figures than these. They are also, almost without exception, validated in simulation — the same condition under which this system scored 97.1% before meeting a real sensor.
81.6% on authentic captures is the number I can defend. I would rather hand over a detector whose reported accuracy survives contact with hardware than one whose accuracy was measured in the only place it works.
| Metric | Value | Measured under |
|---|---|---|
| Accuracy | 81.6 % | Authentic UGV captures, full pipeline |
| Precision | 94.1 % | Of everything flagged, this much was really an attack |
| Recall | 87.3 % | Of every attack present, this much was caught |
| False positives | 3.1 % | On clean frames, with no attack present |
| Latency | 38.8 ms | Per frame — a 10 Hz LiDAR allows 100 ms |
| Dataset | 3,836 | Hybrid samples — synthetic attacks injected onto authentic captures |
| Features | 9 | Extracted from the range and intensity spectrogram pair |
| Frames needed | 1 | Detection is motion-independent — a stationary vehicle is covered |
What this case is evidence of
I work on measurement, and on what depends on it.Ali Batuhan Özsürmeli
The technical content is signal processing. The transferable part is what happened between 97.1% and 81.6%: a result that looked finished, a decision not to report it, and a method built to find out what the first number had actually measured.
Techniques
applied- STFT
- Random Forest
- CFAR
- Point clouds
- Signal processing
- Programme
- B.Sc. Software Engineering, 09/2021 — 15 June 2026
- Metric
- 81.6% accuracy · 38.8 ms/frame