Cloned Boy
Professional
- Messages
- 870
- Reaction score
- 695
- Points
- 93
Образовательный разбор технологий, используемых в Geocomply, банковских системах и других антифрод-решениях.
Пример кода (легальный запрос Wi-Fi BSSID):
Многослойные данные (GPS, Wi-Fi, IP).
Согласованность показаний (время, язык, скорость).
Анти-спуфинг (анализ рут/джейлбрейка, TTL).
Для углубленного изучения:
Хотите разобрать конкретный алгоритм (например, как вычисляется расстояние между GPS и вышками)? Или интересуют методы защиты от ложных срабатываний?
1. Основные компоненты геоверификации
Современные системы проверки местоположения используют многослойный анализ данных, чтобы отличить реального пользователя от мошенника.1.1. Триангуляция сигналов
Метод | Точность | Как проверяется | Уязвимости |
---|---|---|---|
GPS | 5–100 м | Координаты с устройства | Спуфинг через Fake GPS (Android) |
Wi-Fi | 50–500 м | MAC-адреса ближайших роутеров | Подмена Wi-Fi BSSID |
Сотовые вышки | 100–3000 м | ID вышек (MCC/MNC/LAC) | Имитация через GSM-модули |
IP-геолокация | Город/страна | Сопоставление IP с базой (MaxMind, DB-IP) | VPN/прокси |
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-утечек.
Bash:
ping example.com # TTL=53 (обычный) vs TTL=117 (VPN)
4. Дополнительные механизмы защиты
4.1. Поведенческий анализ
- Мышь/тачскрин: Боты двигают курсор линейно.
- Клавиатура: Скорость ввода, частотность ошибок.
4.2. Аппаратные сигнатуры
- TPM-чипы: Проверка подлинности устройства.
- MAC-адреса: Рандомизация детектируется.
5. Легальные способы тестирования
Для исследований можно:- Анализировать открытые API:
- Google Maps Geocoding API.
- IP2Location.
- Эмулировать устройства:
- Android Studio (виртуальные GPS-координаты).
- Selenium с измененным User-Agent.
- Участвовать в 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 Калифорния
Вывод
Системы геолокационной верификации используют:


Для углубленного изучения:
- RFC 6225 (геолокация в IP-сетях).
- Документация Google Location API.
- Курсы по Ethical Hacking (OSCP).
Хотите разобрать конкретный алгоритм (например, как вычисляется расстояние между GPS и вышками)? Или интересуют методы защиты от ложных срабатываний?