Как работают системы геолокационной верификации

Cloned Boy

Professional
Messages
870
Reaction score
695
Points
93
Образовательный разбор технологий, используемых в Geocomply, банковских системах и других антифрод-решениях.

1. Основные компоненты геоверификации​

Современные системы проверки местоположения используют многослойный анализ данных, чтобы отличить реального пользователя от мошенника.

1.1. Триангуляция сигналов​

МетодТочностьКак проверяетсяУязвимости
GPS5–100 мКоординаты с устройстваСпуфинг через Fake GPS (Android)
Wi-Fi50–500 мMAC-адреса ближайших роутеровПодмена Wi-Fi BSSID
Сотовые вышки100–3000 мID вышек (MCC/MNC/LAC)Имитация через GSM-модули
IP-геолокацияГород/странаСопоставление IP с базой (MaxMind, DB-IP)VPN/прокси
Пример кода (легальный запрос Wi-Fi BSSID):
Python:
# Для Android (требуются разрешения)
from android.net.wifi import WifiManager
wifi = context.getSystemService(WIFI_SERVICE)
scan_results = wifi.getScanResults()
for network in scan_results:
print(network.BSSID, network.level)  # MAC-адрес и уровень сигнала

2. Алгоритмы проверки согласованности​

Системы сравнивают данные из разных источников, чтобы выявить несоответствия:

2.1. Контрольные точки​

  • Расстояние между GPS и IP-локацией:
    • Если GPS показывает Москву, а IP — Берлин → флаг риска.
  • Скорость перемещения:
    • Вход из Нью-Йорка, а через 5 минут — из Лондона → физически невозможно.
Формула расчета максимально допустимой скорости:
Code:
Допустимое расстояние = Время × Макс.скорость (обычно 900 км/ч для самолетов)

2.2. Анализ цифровых артефактов​

  • Временная зона устройства vs часовой пояс IP.
  • Язык системы vs страна IP.

3. Детекция спуфинга​

3.1. Обнаружение Fake GPS​

  • Признаки:
    • Отсутствие данных Wi-Fi/сотовых вышек.
    • Root/Jailbreak на устройстве.
    • Использование приложений вроде Fake GPS Location.
Как системы защищаются:
  • Android API: Location.isFromMockProvider().
  • iOS: Проверка подписи приложений.

3.2. Выявление VPN/прокси​

  • Методы:
    • Черные списки IP-адресов (Whois → Hosting/Data Center).
    • Анализ TTL (у VPN пакетов TTL может отличаться).
    • Проверка DNS-утечек.
Пример легальной проверки TTL:
Bash:
ping example.com  # TTL=53 (обычный) vs TTL=117 (VPN)

4. Дополнительные механизмы защиты​

4.1. Поведенческий анализ​

  • Мышь/тачскрин: Боты двигают курсор линейно.
  • Клавиатура: Скорость ввода, частотность ошибок.

4.2. Аппаратные сигнатуры​

  • TPM-чипы: Проверка подлинности устройства.
  • MAC-адреса: Рандомизация детектируется.

5. Легальные способы тестирования​

Для исследований можно:
  1. Анализировать открытые API:
    • Google Maps Geocoding API.
    • IP2Location.
  2. Эмулировать устройства:
    • Android Studio (виртуальные GPS-координаты).
    • Selenium с измененным User-Agent.
  3. Участвовать в Bug Bounty:
    • Программы PayPal, Visa.
Важно: Все тесты должны проводиться с разрешения владельца системы.

6. Пример легального кода для проверки геоданных​

Python:
import requests
from geopy.distance import geodesic

def verify_geolocation(ip, gps_coords):
# Получаем гео по IP
ip_response = requests.get(f"http://ip-api.com/json/{ip}").json()
ip_location = (ip_response['lat'], ip_response['lon'])
    
# Сравниваем с GPS
distance = geodesic(ip_location, gps_coords).km
return distance < 50  # Допустимое расхождение (км)

print(verify_geolocation("8.8.8.8", (37.422, -122.084)))  # False: Google IP vs Калифорния

Вывод​

Системы геолокационной верификации используют:
✅ Многослойные данные (GPS, Wi-Fi, IP).
✅ Согласованность показаний (время, язык, скорость).
✅ Анти-спуфинг (анализ рут/джейлбрейка, TTL).

Для углубленного изучения:
  • RFC 6225 (геолокация в IP-сетях).
  • Документация Google Location API.
  • Курсы по Ethical Hacking (OSCP).

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