工程趣聞 2026 年 8 月 20 日

2026-08-20 — 玩笑網域捲入俄烏戰事、GPU 暴力破解渡假村定位、Google 用表單取代 Git tag 發原始碼

primary=https://sprocketfox.io/xssfox/2026/08/19/sondehub-and-war/ primary=https://windbornesystems.com/blog/ua-1093 primary=https://yassa9.github.io/osint/gralhix-004/ primary=https://github.com/yassa9/geoint/tree/main/gralhix_004 primary=https://gralhix.com/list-of-osint-exercises/osint-exercise-004/ primary=https://grapheneos.social/@GrapheneOS/117057099753905023 primary=https://www.androidauthority.com/google-pixel-kernel-code-forms-3696441/

追氣球追出一場戰爭:玩笑網域 SondeHub 怎麼變成俄烏風向數據的爭議中心

sprocketfox.io (xssfox) · 2026-08-19

起因

2018 年 5 月 12 日,xssfox 在 VK5QI 的介紹下迷上追蹤探空氣球,隨手註冊了 sondehub.org,一開始只是把 Habhub 加上探空氣球濾鏡的轉址頁。玩笑性質的網域很快因為流量成長,被迫自建 API 與前端來承接探空氣球的即時定位資料。到了 2019 年,政府單位開始因為個別事故(例如氣球撞上馬)主動聯繫詢問資料。

2021 年,軍方單位要求把特定發射場從公開地圖上移除,原因是 SondeHub 的反向風向預測系統意外把砲兵陣地與軍艦位置給推算了出來。2023 年 2 月 11 日一起疑似被 AIM-9X 響尾蛇飛彈擊落業餘氣球的事件,經《華盛頓郵報》引用連結後,帶來大量 .mil 與 .gov 網域的關注。

被捲入戰場

2024 年 12 月起,SondeHub 的 API 開始每週固定遭受阻斷服務攻擊,xssfox 形容「有人決定來砸爛我們的 API,而且似乎每週都會發生」。分析請求來源後發現預測請求集中在烏克蘭與俄羅斯邊境一帶,社群猜測烏克蘭部隊可能藉由 SondeHub 的風向預測資料,協助無人機任務規劃彈道與飄移路線。

攻擊源頭追查回一個掛在 AWS Lambda 上的函式,xssfox 直接聯繫 AWS 說明狀況,但堅持不能因此切斷服務:「絕不能公開這些 HTTP 請求資料,否則可能會造成人命損失。」與此同時他也透過 Telegram 聯繫烏克蘭社群,希望對方能改善 API 使用方式,並釋出一份 Docker Compose 設定檔,讓有需求的人自行架設本地版預測服務,藉此分流流量。

後續

2025 年美國國防部(Department of War)也曾要求取得資料,但帳單最終沒有被支付。同年 9 月,NTSB 因一起疑似飛機與氣象氣球擦撞事件聯繫 xssfox,事後由 Windborne Systems 證實確有其事。整起故事的核心矛盾始終沒變:公開的風向數據既能幫氣象愛好者玩票,也能被戰場一方拿來輔助攻擊規劃。

原始來源:SondeHub and War(xssfox)Windborne Systems 事故說明


一張渡假村照片、8000 萬組三角形、GPU 暴力比對:如何鎖定密克羅尼西亞一座無名小島

yassa9.github.io · 2026-08-16

題目

Gralhix OSINT 練習題第 004 題(由 Sofia Santos 出題)只給一張渡假村照片,要求解出度假村名稱、所在小島座標,以及拍攝方向。作者 yassa9 從照片辨認出三塊陸地:拍攝點所在的礁島 P0、右側島嶼 P1,以及左前方有山峰的島嶼 P2,並用自製工具 01_triangle_gui.py 抓出像素座標,換算成三點構成的三角形幾何關係,容許 ±20% 誤差帶。

全球篩選管線

比對基準資料是 OpenStreetMap 的 land-polygons-split-4326(完整 WGS84 海岸線,882 MB)。流程先以緯度 -30° 到 30° 篩出熱帶島嶼(141,131 個多邊形),再用 5 公里內鄰居數 ≤10 篩出孤立小島(51,576 個),接著把 20 公里內聚集 3 個以上點的島群聚類,得到 23,500 個群集。

每個群集再產生候選三角形組合,作者寫道「23,500 個群集總共產生 8,067 萬組三元組」。這個規模已經不適合用 CPU 逐一比對角度與邊長比。

GPU 暴力比對

作者改用 CUDA 在一張 RTX 3050(SM_86 架構)上,讓每個三角形三元組各自佔用一條執行緒平行運算:

θ₀ = arccos((d₁·d₂)/(|d₁||d₂|))   // P0 頂角
r  = |d₁| / |d₂|                   // 邊長比
cross = xₐyᵦ - xᵦyₐ                // 判斷 P1/P2 左右順序

結果是「8,070 萬組三元組平行送入運算,204.1 毫秒內跑完,用掉 5,169 MB 顯存,通過篩選的剩 158,784 組」。後續再靠去重、開放矩形檢驗(確認 P0→P1 邊線另一側是開闊水域)逐步收斂到 948 組候選。

收斂到答案

最後一輪針對 P0 本身的形狀分析:用 Polsby-Popper 分數(4π·面積/周長²)篩出珊瑚礁圓弧形,計算 1.5 公里內小型陸塊數量作為「衛星沙洲光環」特徵,並要求長寬比落在 1.05–2.2 之間,篩到剩 137 個候選。

再串接 Earth Search STAC API 查詢 Sentinel-2 影像算 NDVI(植被指數需 >0.6),並用 Copernicus DEM GLO-30 高程資料檢查 P0 需低於 50 公尺、P2 方向需有 100–500 公尺山峰,最終剩下 26 個候選。逐一產生附 Google 地圖連結的 HTML 清單人工比對後,第 8 筆正是答案:位於密克羅尼西亞、座標 7.363444°N, 151.755750°E 的 Oan 度假村所在小島。

原始來源:Gralhix OSINT #004 解題全文GitHub 程式碼原始題目


Git tag 說沒就沒:Google 把 Pixel 核心原始碼配送,換成表單申請加雲端硬碟連結

GrapheneOS(Mastodon)· 2026-08

起因

GrapheneOS 團隊在 Mastodon 上指出,Google 已經把「特定原始碼」的釋出方式,從推送 Git tag 改成得先透過 Google 表單申請,再等 Google 寄來 Google 雲端硬碟下載連結。團隊原文寫道:「這完全荒謬,而且他們處理申請的速度已經變得很慢,這已明顯違反 GPLv2。」受影響的主要是 Pixel 核心(kernel)相關的驅動程式原始碼,過去這些程式碼是自動化推送到公開的開發者平台。

新流程有多慢

依討論串與後續報導,過去透過 source.android.com/opensourcerequest 取得的 tarball,通常幾個小時內就能拿到;改成表單制之後,回應時間拉長到數週,而且需要人工審核才會放行。額外的變化是原始碼的提交歷史被壓縮成單一 commit,等於失去了原本可追蹤的變更紀錄。

  • 舊流程:Git tag 推送 → 幾小時內可取得完整 commit 歷史
  • 新流程:填寫 Google 表單 → 人工審核 → 收到 Google Drive 連結 → 下載壓縮成單一 commit 的原始碼

連帶影響

GrapheneOS 等自製 ROM 專案依賴這些 GPLv2 授權的核心驅動程式碼才能建置可開機的核心,新流程等於在既有的建置門檻上再疊加一層等待期,形成報導所稱的「雙重瓶頸」。討論串中多數人認為此舉技術上未必構成違反 GPL 條款,但普遍視為對開放原始碼精神的消極對待。

原始來源:GrapheneOS Mastodon 貼文Android Authority 報導


End of article
0
Would love your thoughts, please comment.x
()
x