WaveDigger геолоцирует Wi-Fi-точки и вышки связи через API Apple

WaveDigger геолоцирует Wi-Fi-точки и вышки связи через API Apple

На GitHub опубликован проект WaveDigger, веб-инструмент с открытым кодом для поиска физического расположения беспроводных сетей. По BSSID (MAC-адресу) Wi-Fi точки доступа он находит её примерные координаты, а по параметрам сотовой сети (MCC, MNC, TAC, Cell ID для LTE или NCI для 5G NR), расположение вышки; для 5G NR инструмент дополнительно показывает соседние вышки того же кластера. Результаты визуализируются на интерактивной карте на базе deck.gl, есть история поиска и экспорт результатов в JSON или CSV. Доступна размещённая онлайн версия инструмента, а также возможность развернуть его локально (нужны Node.js версии 24 и выше и npm).

Под капотом WaveDigger обращается к серверу Apple по адресу gs-loc.apple.com/clls/wloc, тому же недокументированному API, который iPhone и другие устройства Apple используют для определения геопозиции по видимым Wi-Fi-сетям. Запросы к API устроены на основе protobuf, а координаты Apple кодирует как int64-число с 8 знаками после запятой. Проект напрямую опирается на работу команды apple-corelocation-experiments, которая реверс-инжинирингом восстановила формат этого API: протокольные определения, форматы эндпоинтов и структуру начальных байтов запроса. Авторы WaveDigger прямо благодарят эту команду и называют её исследование условием, без которого их проект не существовал бы.

Фронтенд собран на Next.js 15 с TypeScript, карта, на deck.gl и react-map-gl, стили, на Tailwind CSS, а сам бэкенд реализован через API-маршруты Next.js. Для более качественных тайлов карты можно опционально подключить токен Mapbox. В README отдельно оговорено: не каждый BSSID есть в базе Apple, недавно развёрнутые или приватные точки доступа могут не иметь сохранённой геопривязки, и в этом случае поиск ничего не найдёт. Проект распространяется по лицензии GNU AGPL v3.0, которая обязывает публиковать изменённый исходный код, если модифицированную версию сервиса разворачивают как сетевой сервис для сторонних пользователей.

Ключевые факты

  • WaveDigger, открытый веб-инструмент, который ищет физическое расположение Wi-Fi-точек по BSSID и вышек LTE/5G NR по сетевым параметрам
  • Инструмент использует недокументированный API геолокации Apple (gs-loc.apple.com/clls/wloc), передавая запросы через protobuf
  • Реализация опирается на реверс-инжиниринг API, ранее проведённый командой apple-corelocation-experiments
  • Результаты показываются на карте на базе deck.gl; доступны история поиска и экспорт в JSON/CSV
  • Проект работает на Next.js 15 и Node.js 24+, распространяется по лицензии AGPL v3.0, требующей открывать код при развёртывании как сетевого сервиса

Почему это важно

WaveDigger показывает, что геолокационная база Apple, которую компания собирает для навигации на устройствах пользователей, доступна для запросов извне и её можно использовать как самостоятельный сервис поиска местоположения по BSSID Wi-Fi-точек или параметрам сотовых вышек, без участия самой Apple.

Кому это важно

Инструмент полезен исследователям беспроводных сетей, специалистам по OSINT и сетевой разведке, а также разработчикам, изучающим недокументированные API геолокации крупных платформ.

Как это применить

Можно воспользоваться готовой размещённой онлайн версией по указанному в проекте адресу либо развернуть инструмент локально на Node.js 24+ и npm; для поиска нужно ввести BSSID точки доступа или параметры сотовой вышки (MCC, MNC, TAC и Cell ID либо NCI).

Можно ли доверять

Материал, техническое описание проекта в его собственном репозитории на GitHub, а не независимая проверка; авторы честно указывают источник наработок (команду apple-corelocation-experiments) и лицензию (AGPL v3.0), что повышает доверие к описанию.

Риски и подводные камни

Не для каждого BSSID или вышки в базе Apple есть данные, новые или приватные точки доступа могут не находиться; кроме того, сама возможность узнать физическое расположение чужой Wi-Fi-точки по одному лишь MAC-адресу поднимает вопросы приватности.