A joke domain purchase turned in geopolitical warfare
From a Prank Domain to Geopolitical Intelligence
Strap in: this is a tale involving cheese fortune tellers, the Department of War, and nearly every government agency in between.
🎈 The Accidental Beginning
Around 2017, I was introduced to the hobby of weather balloon hunting by Mark VK5QI. At the time, the community in Australia was quite niche. Most enthusiasts used a site called Habhub (High Altitude Ballooning Hub), though it was primarily designed for amateur projects rather than professional meteorological radiosondes.
As more people began tracking professional weather balloons on Habhub, the administrators implemented a default filter to hide them. However, this filter could be bypassed via a specific URL query parameter.
On May 12, 2018, sondehub.org was registered. Its sole purpose was a strategic business move a joke: it was simply a redirect to Habhub with the radiosonde filter disabled.
The Evolution of Infrastructure
By July 2018, Habhub was buckling under the volume of unique daily balloons. To alleviate this, we began proxying the ingestion data through SondeHub.
| Feature | Habhub (Original) | SondeHub (Evolution) |
|---|---|---|
| Primary Focus | Amateur Balloons | Meteorological Radiosondes |
| Data Handling | Direct Ingestion | Proxy OpenSearch S3 |
| Tracking | Partial/Filtered | Full path to ground |
| Infrastructure | Struggling Servers | AWS Scalable Architecture |
🛠️ Scaling Up and "Broken" Software
By 2019, both Habhub and aprs.fi were struggling. We realized we needed a standalone service. We began building new APIs and eventually a custom frontend.
Interestingly, we started receiving inquiries from government bodies. One specific case involved an insurance claim where a radiosonde hit a horse, causing it to bolt through a fence. Our system was valuable because, unlike official tools, we tracked the balloons all the way to the ground.
During this time, we encountered a strange phenomenon:
- We thought our software was broken.
- In reality, it was a GPS rollover issue affecting Vaisala equipment, which prevented launches.
Technical Milestones (2020-2021)
- Build backwards-compatible APIs for Habhub.
- Point Habhub frontend to SondeHub backend.
- Enable open data access via
S3. - Deploy a custom wind-based predictor.
🎯 The Discovery of "Reverse Predictions"
Mark developed a system for Reverse Predictions. Instead of predicting where a balloon will go, we used the wind model to calculate where it came from.
Mathematically, this is a simplification of:
This allowed us to identify undocumented launch sites and assign balloons to specific origins. This is where things got... complicated.
The First Warning: In 2021, we received an email stating that a specific site was a "sensitive military installation" and requesting its removal from our maps.
We realized that by tracking wind data, we were accidentally mapping artillery sites and military naval vessels in the open ocean. We decided to honor genuine removal requests but kept the reverse prediction logic intact.
🚀 From Party Balloons to Missiles
The project shifted from a hobby to a geopolitical tool during the 2023 China spy balloon incident. While traffic spiked, our AWS architecture held up.
On February 11, 2023, the US allegedly utilized an AIM-9X Sidewinder missile to neutralize an amateur radio balloon. Following this, we saw a surge in requests from:
.miland.govemail addresses.- Aviation industry professionals.
- Air traffic control towers.
We eventually discovered a private company was scraping our backend to sell predictions. After a brief "poke" at their website and an angry email, we realized the scale of the demand.
🇺🇦 The Ethical Dilemma: Warfare in Ukraine
With the 2022 Russian invasion of Ukraine (which I'll call a "special military operation" only in the sense that it is a full-scale atrocity—Fuck Russia), my project took a dark turn.
I discovered that some groups were using SondeHub to "surf" the sky—using our wind data to guide fixed-wing drones toward specific targets. I faced a massive ethical crisis. To help the "good guys" while preventing our servers from being crashed by inefficient scripts, I sent the following message in Ukrainian to various military chats:
"I wish everyone good health. If anyone knows of a deep strike team that uses a python script with some open source wind forecasting engine, please contact me directly. They are causing numerous problems with queries, which can lead to them being blocked and they need to take action to be able to continue using the prediction system."
To decentralize the risk, I quickly provided a docker-compose file so users could host their own predictors.
version: '3.8'
services:
wind-predictor:
image: sondehub/predictor:latest
ports:
- "8080:8080"
environment:
- API_KEY=${MY_SECRET_KEY}
restart: always
While I was seeking help on the Fediverse for AWS issues, we contacted AWS directly because the source IP of the heavy traffic was... well, you can imagine.