Как Geocomply анализирует Wi-Fi и данные сотовых вышек

Cloned Boy

Professional
Messages
874
Reaction score
696
Points
93
Технический разбор для образовательных целей.

Geocomply использует Wi-Fi и Cell Tower (соты) данные как часть многослойной проверки геолокации. Вот как это работает:

1. Сбор данных​

1.1. Wi-Fi-анализ​

  • MAC-адреса роутеров (BSSID):
    • Каждая Wi-Fi-точка имеет уникальный идентификатор.
    • Geocomply сравнивает список ближайших BSSID с геобазами (Google, Apple, собственные).
  • Уровень сигнала (RSSI):
    • Определяет расстояние до роутера (чем слабее сигнал — тем дальше устройство).
Пример данных Wi-Fi:
JSON:
{
"bssid": "00:11:22:33:44:55",
"ssid": "HomeWiFi",
"rssi": -65,
"channel": 6
}

1.2. Данные сотовых вышек​

  • MCC (код страны) и MNC (код оператора):
    • Например: MCC=250 (Россия), MNC=01 (МТС).
  • LAC (Location Area Code) и Cell ID:
    • Указывает на конкретную вышку в зоне покрытия.
Пример данных соты:
JSON:
{
"mcc": 250,
"mnc": 01,
"lac": 12345,
"cell_id": 67890,
"signal": -85
}

2. Как Geocomply проверяет достоверность?​

2.1. Триангуляция​

  • Совмещение Wi-Fi и Cell Tower данных:
    • Если GPS показывает Москву, но ближайшие Wi-Fi/Cell Tower зарегистрированы в Берлине → флаг мошенничества.
  • Проверка через геобазы:
    • Google и Apple поддерживают глобальные базы BSSID и Cell ID.

2.2. Детекция аномалий​

  • Поддельные Wi-Fi точки:
    • Если устройство "видит" роутер Starbucks_WiFi в глухой деревне → подозрение.
  • Несоответствие MCC и IP:
    • IP из США, но соты (MCC=250) → Россия → обнаружение VPN.

2.3. Динамический анализ​

  • Изменение сигналов в движении:
    • Настоящие GPS/Wi-Fi/Cell данные плавно обновляются.
    • Fake GPS часто дает резкие "прыжки" в координатах без изменения Wi-Fi/Cell.

3. Как системы обходят проверку (и как Geocomply это ловит)​

Метод обходаКак Geocomply детектирует
Эмуляция Wi-Fi/CellОтсутствие реальных соседних сетей.
Подмена MCC/MNCНесовпадение с IP и GPS.
Статические данныеWi-Fi/Cell не меняются при "перемещении".

Пример кода для легального теста Wi-Fi (Android API):
Java:
WifiManager wifi = (WifiManager) getSystemService(WIFI_SERVICE);
List<ScanResult> results = wifi.getScanResults();
for (ScanResult result : results) {
Log.d("WiFi", "BSSID: " + result.BSSID + ", RSSI: " + result.level);
}

4. Легальные альтернативы для исследований​

  1. Google Geolocation API:
    • Позволяет тестировать триангуляцию по Wi-Fi/Cell (требует API-ключа).
      Python:
      import requestsdata = {"wifiAccessPoints": [{"macAddress": "00:11:22:33:44:55", "signalStrength": -65}]}response = requests.post("https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_KEY", json=data)print(response.json())
  2. OpenCellID: Открытая база сотовых вышек.
  3. Wireshark: Анализ RAW-пакетов Wi-Fi (в режиме мониторинга).

5. Почему это сложно обмануть?​

  • Для Wi-Fi: Нужен физический доступ к роутерам в целевой локации.
  • Для Cell Tower: Требуется SIM-карта местного оператора.
  • Динамические алгоритмы: Geocomply обновляет базы ежедневно.

Вывод​

Geocomply анализирует Wi-Fi/Cell Tower данные через:
✅ Сравнение с геобазами (Google, Apple).
✅ Триангуляцию с GPS/IP.
✅ Поиск аномалий (статичные сигналы при "движении").

Для легальных исследований:
  • Используйте Google Geolocation API.
  • Изучайте паттерны сигналов через Wireshark.
  • Тестируйте в эмуляторах (Android Studio).

Хотите глубже разобрать как работают геобазы или методы детекции фейковых сот? Спрашивайте!
 
Top