March 26

Кикшеринг OSINT: анализ данных сервисов аренды самокатов, велосипедов и средств индивидуальной мобильности

Кикшеринг OSINT: анализ данных сервисов аренды самокатов, велосипедов и средств индивидуальной мобильности

Кикшеринг — термин, который означает систему краткосрочной аренды электросамокатов

Средства индивидуальной мобильности (СИМ) — электросамокаты, велосипеды, моноколеса — стали неотъемлемой частью городской среды. Сервисы кикшеринга (Яндекс, Whoosh, Urent, Bolt, Lime, Tier) ежедневно генерируют огромные массивы данных о перемещениях пользователей. Для OSINT-специалиста эти данные представляют собой ценный, но часто недооцененный источник информации о передвижениях цели, ее привычках, местах проживания и работы. Данная статья, являющаяся дополнением к циклу «Транспортный OSINT», посвящена методам сбора и анализа данных из сервисов аренды самокатов и велосипедов.

Специфика кикшеринга как объекта OSINT

  1. Высокая геопространственная детализация: Поездки на самокатах фиксируются с высокой точностью (до нескольких метров), что позволяет восстанавливать маршруты внутри районов.
  2. Временная привязка: Каждая поездка имеет точное время начала и окончания, длительность, пройденное расстояние.
  3. Идентификация пользователя: Для использования сервиса требуется регистрация (часто с привязкой к номеру телефона, банковской карте, иногда — с верификацией документов).
  4. Публичные данные: Карты доступных самокатов, зоны завершения поездок, парковки — часто доступны через открытые API или веб-интерфейсы.
  5. Регулярность: Пользователи часто используют один и тот же сервис по регулярным маршрутам (дом — метро — работа).
  6. Сезонность: Активность кикшеринга зависит от сезона и погоды.

Типы данных в кикшеринговых сервисах

Информация о пользователе

Закрыта (требуется доступ к аккаунту)

ФИО, номер телефона, email, платежные данные

История поездок

Закрыта (требуется доступ к аккаунту)

Маршруты, время, даты, длительность, стоимость

Карта доступных СИМ

Открыта (через API или приложение)

Плотность использования в районах, парковочные привычки

Зоны завершения поездок

Открыта (зоны парковок)

Инфраструктура, популярные точки

Идентификаторы СИМ

Частично открыты (видимы на устройстве)

Отслеживание конкретного самоката/велосипеда

Фото СИМ (в приложении)

Открыты при выборе устройства

Визуальная идентификация, повреждения

Основные кикшеринговые сервисы

Яндекс.GO

Локация: Россия, Беларусь

Интеграция с экосистемой Яндекс (Карты, Такси). Самокаты и велосипеды. Единый аккаунт с другими сервисами Яндекс

Whoosh

Локация: Россия, СНГ

Крупнейший специализированный кикшеринг в РФ. Есть открытая карта, API для партнеров

Urent

Локация: Россия

Аналог, популярен в регионах. Акцент на самокаты

Bolt

Локация: Европа, Россия

Мультисервис (такси, кикшеринг, каршеринг)

Lime

Локация: США, Европа

Глобальный сервис, хорошее API

Tier

Локация: Европа

Немецкий сервис

Voi

Локация: Европа

Скандинавский сервис

Bird

Локация: США, Европа

Пионер кикшеринга

Методология сбора данных из кикшеринговых сервисов

Этап 1: Поиск данных о пользователе

Если цель известна (ФИО, номер телефона, email), можно проверить, зарегистрирована ли она в сервисах кикшеринга.

  1. По номеру телефона:
    • Попытка регистрации в приложении (не завершая) покажет, существует ли аккаунт.
    • Функция восстановления пароля (без отправки кода) — проверка наличия.
    • Для Яндекс.Go: Проверка через восстановление пароля в Яндекс ID — если аккаунт существует, система предложит отправить код.
  2. По email:
    • Аналогично — проверка через восстановление пароля.
    • Для Яндекс.Go: Email привязан к Яндекс ID. Проверка через страницу восстановления пароля Яндекс.
  3. По ФИО:
    • Если есть доступ к внутренним базам (утечки, легальный доступ по запросу), можно искать по имени.

Этап 2: Анализ истории поездок (при наличии доступа)

Если доступ к аккаунту цели получен (легально, с согласия или в рамках расследования), история поездок становится золотым источником данных.

Что извлекается:

Точки начала и окончания: Координаты (с точностью до адреса).

Время и дата: Поездка в 8:30 от дома, в 18:15 от работы.

Длительность и расстояние: Индикатор активности.

Маршрут: Трек поездки (в некоторых сервисах, включая Яндекс.Go).

Используемое устройство: Идентификатор самоката или велосипеда.

Анализ паттернов:

Регулярные маршруты: Ежедневные поездки от дома до метро, от метро до работы.

Места проживания: Точка, от которой начинается большинство утренних поездок.

Место работы: Точка, где заканчиваются утренние поездки.

Социальная активность: Вечерние поездки в рестораны, кафе, спортзалы.

Путешествия: Поездки в других городах (если сервис работает в нескольких регионах).

Этап 3: Сбор публичных данных через API

Многие кикшеринговые сервисы предоставляют открытые API (или их можно выявить из мобильного приложения) для отображения карты доступных СИМ.

Как выявить API:

  1. Установить на телефон приложение кикшеринга.
  2. Настроить прокси для перехвата трафика.
  3. Запустить приложение, открыть карту.
  4. Найти запросы, возвращающие координаты самокатов/велосипедов.

Примеры API (могут меняться):

Яндекс.Go:

# Основной эндпоинт для получения транспорта на карте
https://api.maps.yandex.ru/transport/2.0/vehicles?bbox=37.5,55.7,37.8,55.9&types=scooter,bicycle

Также данные могут передаваться через WebSocket или внутренние API приложения Яндекс Go.

Whoosh:

https://api.whoosh.ru/map/v1/vehicles?lat=55.75&lon=37.61&radius=2000

Urent:

https://api.urent.ru/v1/vehicles?lat=55.75&lon=37.61&radius=2000

Bolt (кикшеринг):

https://api.bolt.com/scooters/v1/vehicles?lat=55.75&lon=37.61&radius=2000

Что можно получить из API:

  1. Координаты всех доступных устройств в зоне.
  2. Идентификаторы (ID).
  3. Уровень заряда батареи.
  4. Тип (самокат/велосипед).
  5. Цена за минуту/старт.

Ограничения:

  • Данные анонимны (не привязаны к пользователям).
  • Показывают только свободные устройства в данный момент.
  • Могут требовать авторизацию (токен пользователя).

Этап 4: Анализ зон парковок и завершения поездок

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

Для Яндекс.Go:

  • Зоны парковок отображаются на карте в приложении Яндекс Go и на Яндекс.Картах.
  • Можно получить через API Яндекс.Карт (слой транспортной инфраструктуры).

Что можно извлечь:

  • Популярные места начала/окончания поездок в городе.
  • Инфраструктурные точки (станции метро, МЦК, железнодорожные станции, бизнес-центры, жилые комплексы).
  • Зоны с ограничениями (медленная езда, запрет парковки).

Как использовать в расследовании:

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

Этап 5: Отслеживание конкретного устройства (самоката/велосипеда)

Каждое устройство имеет уникальный идентификатор (номер на корпусе, QR-код, ID в системе). Если цель сфотографировалась на фоне самоката или номер виден на видео, можно попытаться отследить его перемещения.

Методы:

  1. Мониторинг API: Периодически запрашивать данные о местоположении устройства по его ID (если API позволяет). Для Яндекс.Go это может быть сложнее, так как API требует авторизации.
  2. Анализ истории: Некоторые сервисы (или партнеры) предоставляют историю перемещений для обслуживания. В рамках расследования данные могут быть запрошены у оператора.
  3. Визуальный поиск: Поиск фото этого устройства в соцсетях (по геометкам, хэштегам, в сообществах кикшеринга).
  4. Поиск по QR-коду: Если QR-код различим на фото, его можно считать и попытаться найти информацию об устройстве.

Этап 6: Анализ данных через сторонние агрегаторы

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

Примеры:

  • Яндекс.Карты: Отображают доступные самокаты и велосипеды Яндекс.Go в реальном времени.
  • 2ГИС: В некоторых городах отображает зоны кикшеринга и парковок.
  • Populus: Аналитика микромобильности для городов (данные от операторов).
  • RideReport: Открытые данные по поездкам в некоторых городах (США, Европа).
  • OpenStreetMap: Сообщество наносит зоны парковок кикшеринга.

Практические методики кикшерингового OSINT

Методика 1: Определение места жительства по паттерну поездок

  1. Исходные данные: Доступ к истории поездок цели в кикшеринге (легально).
  2. Сбор всех утренних поездок (06:00–10:00) за последние 30 дней.
  3. Выявление точки начала:
    • Координаты, где начинается большинство утренних поездок.
    • Кластеризация точек (например, через DBSCAN в Python).
  4. Верификация:
    • Сравнить с точками окончания вечерних поездок (должны совпадать).
    • Сравнить с геолокациями из соцсетей.
    • Сравнить с данными из других транспортных сервисов (Яндекс.Такси, каршеринг).
  5. Результат: Точный адрес или район проживания (в радиусе 100–200 метров).

Методика 2: Выявление рабочего места

  1. Анализ утренних поездок: Где заканчивается поездка, начавшаяся от дома.
  2. Анализ вечерних поездок: Где начинается поездка, заканчивающаяся у дома.
  3. Точка окончания утренней поездки (обычно — станция метро, бизнес-центр или офисное здание).
  4. Кросс-референс:
    • Сравнить с данными LinkedIn (место работы).
    • Сравнить с геотегами в соцсетях (чекины в рабочее время).
    • Использовать Яндекс.Карты для определения организаций по адресу.
  5. Результат: Место работы (адрес, организация, иногда — этаж и офис).

Методика 3: Мониторинг передвижений в реальном времени

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

Метод:

  1. Определить зону, где предположительно находится цель (район проживания, работы).
  2. Мониторить появление и исчезновение устройств в этой зоне (через API).
  3. Логика: Если цель берет устройство, оно исчезает с карты свободных. Если цель завершает поездку, устройство появляется в новой точке.
  4. Сложность: Данные анонимны, нельзя привязать устройство к конкретному пользователю без дополнительной информации.
  5. Для Яндекс.Go: Возможно отслеживание по ID устройства, если оно было идентифицировано ранее.

Методика 4: Поиск по фото устройства

  1. Исходные данные: Фото цели на фоне самоката или велосипеда, где виден идентификационный номер (QR-код, наклейка с номером).
  2. Расшифровка номера: По QR-коду можно получить ID устройства. Для Яндекс.Go номер самоката обычно нанесен на корпус (формат: Y-123456 или аналогичный).
  3. Поиск в соцсетях: Ввести номер в поиск (Instagram, VK, Telegram, Яндекс.Картинки) — возможно, другие пользователи публиковали фото этого устройства в других местах.
  4. Анализ геолокаций фото: Построить историю перемещений устройства.
  5. Сопоставление с данными цели: Если цель была в тех же местах, что и устройство, это подтверждает использование.

Методика 5: Анализ плотности парковок для выявления скрытых локаций

  1. Сбор данных о зонах парковок через API или веб-интерфейс (в том числе из Яндекс.Карт).
  2. Визуализация на карте (QGIS, Google My Maps, Kepler.gl).
  3. Выявление аномалий:
    • Парковка в месте, где нет очевидной инфраструктуры (жилой дом, офис).
    • Парковка, которая появляется регулярно в одно и то же время.
  4. Анализ: Если известно, что цель пользуется кикшерингом, точки парковок могут указывать на места, которые цель посещает.

Методика 6: Интеграция с данными экосистемы Яндекс

Особенность Яндекс.Go — интеграция с другими сервисами Яндекс. Если у цели есть аккаунт Яндекс ID, данные могут быть связаны:

  1. Яндекс.Такси: История поездок может дополнять картину перемещений.
  2. Яндекс.Карты: История поиска, сохраненные места.
  3. Яндекс.Go: Единое приложение для всех сервисов.

Важно: Доступ к этим данным возможен только при наличии авторизации в аккаунте цели (легально, с согласия или в рамках расследования).

Инструменты для кикшерингового OSINT

Перехват трафика

mitmproxy, Charles Proxy, Fiddler, Wireshark

Работа с API

Python (requests), Postman, cURL, Insomnia

Анализ геоданных

QGIS, Kepler.gl, Google My Maps, ArcGIS

Кластеризация

Python (scikit-learn, DBSCAN), R, Excel

Сбор данных

Собственные скрипты, Hunchly, ArchiveBox

Поиск по номеру

Sherlock (для username), поиск в соцсетях, Яндекс.Картинки

Картографические сервисы

Яндекс.Карты, Google Maps, OpenStreetMap, 2ГИС

Код примера: мониторинг доступных самокатов через API Яндекс.Go

import requests
import json
import time
from datetime import datetime

# Пример для Яндекс.Go (URL может меняться, требует анализа трафика)
# Внимание: для доступа может потребоваться авторизационный токен

def get_yandex_scooters(bbox, token=None):
    """
    bbox: список [min_lon, min_lat, max_lon, max_lat]
    token: авторизационный токен (если требуется)
    """
    url = "https://api.maps.yandex.ru/transport/2.0/vehicles"
    params = {
        'bbox': ','.join(map(str, bbox)),
        'types': 'scooter,bicycle'  # самокаты и велосипеды
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
    }
    if token:
        headers['Authorization'] = f'OAuth {token}'
    
    response = requests.get(url, params=params, headers=headers)
    if response.status_code == 200:
        return response.json()
    else:
        print(f"Ошибка: {response.status_code}")
        return None

# Мониторинг в районе (координаты Москвы, центр)
def monitor_yandex_location():
    bbox = [37.5, 55.7, 37.8, 55.9]  # [min_lon, min_lat, max_lon, max_lat]
    
    while True:
        vehicles = get_yandex_scooters(bbox)
        if vehicles:
            count = len(vehicles.get('vehicles', []))
            timestamp = datetime.now().isoformat()
            print(f"{timestamp}: Найдено {count} устройств в зоне")
            
            # Сохранение в CSV
            with open('yandex_vehicles_log.csv', 'a') as f:
                f.write(f"{timestamp},{count}\n")
        
        time.sleep(60)  # каждую минуту

# Запуск
 monitor_yandex_location()

Код примера: кластеризация точек для определения места жительства

import pandas as pd
import numpy as np
from sklearn.cluster import DBSCAN
import folium

# Загрузка данных о поездках (пример)
data = pd.read_csv('trips.csv')
coords = data[['start_lat', 'start_lon']].values

# Кластеризация
db = DBSCAN(eps=0.0005, min_samples=3).fit(coords)  # eps ~ 50 метров

# Получение кластеров
labels = db.labels_
unique_labels = set(labels)

# Визуализация
m = folium.Map(location=[55.7558, 37.6176], zoom_start=13)

for label in unique_labels:
    if label == -1:
        continue  # шум
    cluster_coords = coords[labels == label]
    center = cluster_coords.mean(axis=0)
    
    folium.Marker(
        location=[center[0], center[1]],
        popup=f'Кластер {label} ({len(cluster_coords)} поездок)',
        icon=folium.Icon(color='red')
    ).add_to(m)

m.save('clusters.html')
print("Карта сохранена как clusters.html")

Код примера: поиск по номеру устройства в соцсетях

import requests
import re

def search_vehicle_id(vehicle_id, platforms=['instagram', 'vk', 'telegram']):
    """
    Поиск упоминаний ID устройства в социальных сетях
    """
    results = {}
    
    # Поиск в Google (по сайту)
    for platform in platforms:
        if platform == 'instagram':
            url = f"https://www.google.com/search?q=site:instagram.com+{vehicle_id}"
        elif platform == 'vk':
            url = f"https://www.google.com/search?q=site:vk.com+{vehicle_id}"
        elif platform == 'telegram':
            url = f"https://www.google.com/search?q=site:t.me+{vehicle_id}"
        
        # Здесь нужна реализация парсинга или использования API
        print(f"Поиск в {platform}: {url}")
        
        # В реальном коде: requests.get, парсинг результатов
    
    return results

# Пример использования
search_vehicle_id('Y-123456')

Этические и правовые ограничения

  1. Доступ к аккаунту: Получение доступа к чужому аккаунту без согласия является незаконным. История поездок — персональные данные, защищенные законодательством.
  2. Публичные данные: Карты доступных устройств являются публичными. Их сбор легален, но следует соблюдать условия использования сервиса и не создавать чрезмерную нагрузку на API.
  3. Отслеживание в реальном времени: Мониторинг местоположения конкретного человека через кикшеринг без его ведома может нарушать законы о приватности.
  4. Использование в расследованиях: В правоохранительных целях данные могут быть получены по официальному запросу к оператору сервиса. В Российской Федерации это регулируется законом "Об информации, информационных технологиях и о защите информации".
  5. Яндекс ID: Данные аккаунта Яндекс ID связаны с множеством сервисов. Несанкционированный доступ к аккаунту является уголовным преступлением.

Кикшеринговый OSINT — новое и быстро развивающееся направление транспортной разведки. Сервисы аренды самокатов и велосипедов, включая Яндекс.Go, Whoosh, Urent и международных операторов, генерируют высокоточные геопространственные данные, которые при грамотном анализе позволяют восстановить детальную картину перемещений цели внутри города.

Особую ценность представляет интеграция данных кикшеринга с другими сервисами экосистем (Яндекс, Uber/Bolt), что позволяет создать мультимодальный профиль перемещений.

Несмотря на то, что история поездок является закрытой информацией, публичные API, анализ паттернов, мониторинг доступных устройств и межсервисная корреляция предоставляют исследователю ценные инструменты. В сочетании с данными из других источников (соцсети, каршеринг, такси) кикшеринг становится важным элементом мультимодального транспортного анализа.