Ваш wi-fi расскажет мне, где вы живёте, где работаете и где путешествуете
16 апреля 2015
Ваш wi-fi расскажет мне, где вы живёте, где работаете и где путешествуете
Москва вайфайная
Многие знают, что ваши мобильные устройства распространяют информацию об их предыдущих соединениях. Большинство не имеет об этом представления.
Пробы WiFi
Чтобы соединиться с уже известными сетями, которые не сообщают о своём присутствии, все ваши мобильные устройства отправляют пробные пакеты, чтобы найти известные им сети. Эти пакеты можно перехватить, когда телефон включается, или когда он отсоединяется от сети. Для этого используются обычные инструменты — airodump / tcpdump. Пример:
То бишь, устройство 50:ea:d6:aa:bb:cc проверяло, есть ли сеть SUBWAY в пределах доступности.
Ну и что тут плохого?
Ну испускают они эти пакеты с именами сетей. Подумаешь.
Заметим, что у большинства локальных сетей уникальные имена. Конечно, будут попадаться распространённые имена типа SUBWAY. Но во многих домах сети называются либо автоматически созданными именами ProviderNameDEADBEEF, либо заданными пользователями.
То есть, список пробных пакетов содержит примерно такие имена сетей:
домашние: ProviderNameXXXXX, StreetNameWifi, и т.д.
рабочие: Company, CompanyCity, и т.п.
едальни: стандартные
отели: разные уникальные названия, за исключением сетевых гостиниц
Ну и что же такого, если вы вдруг перехватите пробный пакет с именем сети FooProvider123456, BlahProviderABCDEF, ACME-Fooville, CafeAwesome? Конечно, можно догадаться, какой у человека провайдер и где он обедает. Но это всего лишь имена. Никаких BSSID, координат и прочего. Хорошо. Но не очень.
Ибо есть на свете WiGLE!
WiGLE (аббревиатура «движок для записи информации о беспроводных сетях») – это сервис, работающий под девизом «Все сети, которые находят все люди». И большинство городских сетей действительно можно найти в этом сервисе. Более того, интересующие вас сети вы можете найти поиском по их названию. Именно так вы получите информацию об интересующих вас сетях по их именам.
Сети в районе Кремля
Можно сделать некоторые допущения. Например, если Wigle возвращает больше 3-4 сетей с одинаковыми именами, это, скорее всего, некие стандартные сети, которые можно игнорировать… Если только одна из них не находятся близко к тем уникальным, что мы нашли. Можно отфильтровать те сети, которые не были видны больше года. Если только они не уникальные и не перемещались во временем – в противном случае это будет означать, что точка доступа была перемещена.
Сбор информации
Какую информацию мы можем собрать на основании списка сетей? Посмотрим на карту, которая была создана в автоматическом режиме из результатов поиска Wigle. Они были скачаны при помощи библиотеки wiggle и нанесены на карту:
Зелёными обозначены зашифрованные сети, красными – открытые. Синими – неизвестные. Каждый маркер на деле показывает на какое-то определённое здание. Сразу можно понять, что человек, скорее всего, живёт и работает на восточном побережье США (несколько маркеров), летает в Японию (маркер зашифрованной корпоративной сети) и отдыхает в Таиланде (сети с именами отелей), а также ездит по Новой Зеландии (сети с названиями кемпингов). Из названия корпоративной сети можно вычислить название компании.
Тут вам и социальная инженерия, и поиск конкретного человека, и поиск сотрудников компании Х… А по MAC-адресу можно узнать модель устройства – и таким образом найти этого человека в толпе.
Шеф, что делать??
На linux можно сделать настройку сетей wpa_supplicant и указать scan_ssid=0. Так оно настроено по умолчанию и такая настройка отменяет отсылку пробных пакетов. На других системах – не знаю.
Конечно, можно удалить сохранённые сети, или выключать wi-fi, когда он вам не нужен. Но это не решение проблемы. Можно назвать свою домашнюю сеть распространённым именем – но проблемы с названиями других сетей, которыми вы пользуетесь, это не решает.