Как Geocomply обнаруживает Fake GPS: Технический разбор

Cloned Boy

Professional
Messages
876
Reaction score
697
Points
93
Образовательный анализ методов детекции спуфинга геолокации.

1. Основные методы определения Fake GPS​

Geocomply использует комбинацию аппаратных и программных проверок, чтобы отличить реальные координаты от поддельных.

1.1. Проверка источника GPS​

  • Android:
    • Вызов Location.isFromMockProvider() — возвращает true, если координаты поддельные.
    • Проверка наличия приложений вроде Fake GPS Route (через список установленных пакетов).
  • iOS:
    • Сигнатура приложений: iOS запрещает подмену GPS без Jailbreak.
    • Проверка CLLocation.sourceInformation (iOS 15+).
Пример кода для Android (легальная проверка):
Java:
if (location.isFromMockProvider()) {
Log.d("GEOLOC", "Обнаружен Fake GPS!");
}

1.2. Анализ сопутствующих данных​

Geocomply сравнивает GPS с другими сигналами:
  • Wi-Fi/Cell Tower: Если GPS показывает "Нью-Йорк", а ближайшая вышка — в Москве → спуфинг.
  • IP-адрес: Несоответствие страны GPS и IP.
  • Датчики устройства:
    • Акселерометр/гироскоп (движение vs "статичные" поддельные координаты).
    • Батарея (Fake GPS расходует заряд).

Как обходят (и как Geocomply ловит):
Метод обходаКак детектируется
Fake GPS + VPNНесовпадение Wi-Fi и GPS.
Эмуляция движенияОтсутствие данных с акселерометра.
Root/JailbreakПроверка целостности ОС.

2. Детекция на уровне ОС​

2.1. Привилегии и процессы​

  • Android:
    • Приложения с правами WRITE_SECURE_SETTINGS могут подменять GPS.
    • Geocomply проверяет наличие таких прав у процесса.
  • iOS:
    • Проверка MobileDeviceManagement (MDM): корпоративные устройства могут иметь кастомные настройки.

2.2. Временные метки​

  • Настоящий GPS обновляется плавно (даже в движении).
  • Fake GPS часто дает:
    • Резкие "прыжки" между точками.
    • Отсутствие погрешности (реальный GPS имеет шум ±5–50 м).

3. Аппаратные проверки​

  • Trusted Execution Environment (TEE):
    • Надежные GPS-чипы (например, в Samsung Knox) передают данные в зашифрованном виде.
  • Интеграция с SIM-картой:
    • Проверка MCC/MNC кода оператора vs заявленной страны GPS.
Пример:
Если GPS показывает США, а SIM принадлежит российскому оператору (MCC 250) → подозрение.

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

Для разработчиков и исследователей:
  1. Android Emulator:
    Bash:
    adb emu geo fix -122.084 37.422  # Установка тестовых координат
  2. iOS Simulator (Xcode):
    Bash:
    xcrun simctl location booted set 37.332 -122.030  # Симуляция локации
  3. Белые VPN/прокси:
    • Использование легальных сервисов (NordVPN, ExpressVPN) с согласованными GPS/IP.

5. Как улучшается защита?​

  • Android 14+: Блокировка Fake GPS для банковских приложений.
  • Квантовые алгоритмы: В будущем — криптографическая привязка GPS к устройству.
  • Анализ поведения: ИИ учится отличать ботов от людей (например, по паттернам использования карты).

Вывод​

Geocomply определяет Fake GPS через:
✅ Проверку источника координат (Mock Provider, root).
✅ Сравнение с Wi-Fi/IP/даталчиками.
✅ Анализ поведения устройства.

Для легальных исследований:
  • Используйте официальные API (Google Location Services).
  • Тестируйте в эмуляторах с согласия владельца системы.

Хотите глубже разобрать конкретный метод (например, как работает isFromMockProvider на уровне ядра)? Или интересуют аналогичные системы в банковских приложениях?
 
Top