World News

How do you know a missile hit 700 miles away?

Ukraine claims a strike on a defense plant deep inside Russia. The interesting part isn't the politics — it's the sensor fusion, satellite imagery pipelines, and open-source intelligence systems that confirmed it within hours. This is what modern battlefield damage assessment actually looks like under the hood.

How do you know a missile hit 700 miles away?

Ukraine says it hit a military plant in Alabuga, roughly 700 miles from the front line. That claim was public within hours. Here's the wild part: it wasn't Russian officials who confirmed it. It was a bunch of people with internet access and the right tools.

That's the story I care about. Not the geopolitics. The data pipeline that turned a missile strike into confirmed intelligence faster than most companies ship a hotfix.

The OSINT stack is basically a distributed sensor network

When something blows up deep inside Russia, here's what actually happens in the first 30 minutes:

Seismic sensors pick up the blast signature. Flight tracking aggregators like Flightradar24 log airspace closures and military transponder anomalies in the region. Telegram channels run by locals post videos — geotagged, timestamped, often with enough background detail to place them within 100 meters using tools like GeoSpy or manual cross-referencing in Google Earth.

Then the satellite guys wake up.

Planet Labs has somewhere around 200 small satellites doing daily imaging of basically the entire Earth. Maxar's WorldView constellation gives sub-half-meter resolution when tasked correctly. Analysts at Bellingcat, Brady Africk at AEI, and random accounts on X are querying these APIs — or just watching for new imagery to drop — and running pixel-level comparisons against pre-strike baselines.

It's diffing. Literally just image diffing. Except at scale, across a dozen sources, with crowdsourced verification.

The confirmation pipeline moves faster than you'd think

In 2022 I was running a real-time data ingestion system for a logistics startup — about 800k events per day — and we thought we were moving fast with 15-minute lag on anomaly detection. These OSINT workflows are doing multi-source fusion on a novel event in under two hours. With no budget. With volunteers.

The toolchain is genuinely interesting. Sentinel Hub gives you programmatic access to Copernicus satellite data — that's the EU's open satellite program, and yes it's actually free for a lot of use cases. You write a Python script, pass a bounding box and a date range, get back multispectral imagery. Run a simple change detection algorithm — normalized difference, pixel threshold, connected component labeling — and you've got a damage footprint.

That's not classified. That's a Saturday afternoon project.

The infrastructure confirming this stuff is embarrassingly scrappy

Most of the serious OSINT work happens in Discord servers, shared Google Sheets, and Notion databases. No Datadog. No SLAs. No on-call rotation. Analysts are literally pasting coordinates into what3words and cross-checking building shadows to estimate time-of-day for video verification.

The shadow angle thing blew my mind when I first saw it. You can infer when a video was recorded — and therefore whether it matches the claimed event timeline — by calculating sun azimuth from visible shadows and the known GPS location. There are open-source tools for this. SunCalc.org is one. It's a free website.

Big defense contractors charge millions for systems that do this slower.

What this actually means for anyone building data systems

The Alabuga confirmation happened the way it did because the data was already out there, the tools are open, and the community knew how to pipe them together fast. No central authority needed.

That's the same reason your users find bugs before your monitoring does. Distributed eyes on real data beat centralized dashboards every time. Build systems that let outside observers see signal, and you'll catch things your internal tooling misses completely.

The satellites don't lie. Neither do your logs — you're just not reading them right.

OPEN IN REEDL_ FEED →← Back to feed