Расследование. Поиск причины бана аккаунтов

  • Автор темы Jon Silver
  • Дата начала
  • Ответы 64
  • Просмотры 12.944
  • Теги
    fingerprint
Политика Фейсбука такова - 1 человек, 1 - аккаунт, 1 рекламный кабинет. Всё остальное в бан. При регистрации аккаунта мы принимаем политику Cookies https://www.facebook.com/policies/cookies/ в которой помимо прочего говорится: " ... путем выявления компьютеров, используемых для массового создания фальшивых аккаунтов Facebook". То есть, ФБ прилагает все усилия для борьбы с созданием дополнительных аккаунтов (особенно для рекламы), а таких попыток миллионы в месяц (по данным отчёта ФБ - ок. 3 милл/мес). Соответственно, чем больше делается одним пользователем аккаунтов, тем менее они надёжны. Отсюда и непрерывные поиски пользователей обойти баны аккаунтов, так как чем больше аккаунтов блокируется, тем больше рекламодатель пытается создать новых, и, как следствие, они быстрее уходят в бан.
Выход из данной ситуации напрашивается 1 - сделать так, чтобы ФБ принимал каждый аккаунт за новый, не связанный с предыдущим.
Казалось бы, почистить браузер, поменять ip и можно делать другой аккаунт. Но на самом деле не всё так просто. У ФБ хорошая память и множество способов слежения, начиная с использования Google Analitycs, Adobe Analitycs, fingerprint отпечатка и заканчивая способами о которых остаётся только догадываться.
Стандартные способы обеспечения анонимности здесь не работают: использование прокси-серверов (всех видов и гео), работа с виртуальных машин на компьютере или на удалённом сервере, использование всех видов браузеров, включая Tor (тройной прокси-сервер). Даже смена компьютера с отдельным модемом и другим оператором связи (не говоря уже о смене железа или переустановки Винды), не обеспечивает должного разделения аккаунтов.
На основании чего такие выводы? Проверяется это просто: заходим на ФБ, нажимаем Cntrl+U (открываем исходный код), нажимаем Cntrl+F (поиск по странице) и находим словосочетание server_revision или client_revision и смотрим значение на первом аккаунте, запоминаем. Открываем следующий аккаунт, будь он на сервере или другом компьютере, и сравниваем значения. Они одинаковы для всех аккаунтов на компьютере, как бы они не были засекречены от ФБ.
Что такое server_revision? Ревизия (проверка сервера). Как она происходит? В начале страницы (исходный код) есть скрипт, который за это отвечает.
JavaScript:
<script>function envFlush(a){function b(b){for(var c in a)b[c]=a[c]}window.requireLazy?window.requireLazy(["Env"],b) window.Env=window.Env||{},b(window.Env))}envFlush({"ajaxpipe_token":"AXh8G5JgQJVuy4TN","timeslice_heartbeat_config":{"pollIntervalMs":33,"idleGapThresholdMs":60,"ignoredTimesliceNames":{"requestAnimationFrame":true,"Event listenHandler mousemove":true,"Event listenHandler mouseover":true,"Event listenHandler mouseout":true,"Event listenHandler scroll":true},"isHeartbeatEnabled":true,"isArtilleryOn":false},"shouldLogCounters":true,"timeslice_categories":{"react_render":true,"reflow":true},"sample_continuation_stacktraces":true,"dom_mutation_flag":true,"khsh":"0`sj`e`rm`s-0fdu^gshdoer-0gc^eurf-3gc^eurf;1;enbtldou;fduDmdldourCxO`ld-2YLMIuuqSdptdru;qsnunuxqd;rdoe-0unjdojnx-0unjdojnx0-0gdubi^rdbsduOdv-0`sj`e`r-0q`xm`r-0StoRbs`qhof-0mhoj^q`xm`r","stack_trace_limit":30,"deferred_stack_trace_rate":1000,"timesliceBufferSize":5000});</script>
Его суть заключается в том, что он использует ajax для отправки данных на сервер ФБ (без перезагрузки страницы) об активности пользователя. Если пользователь бездействует в течение 5000 секунд (1ч.23мин), то значение server_revision меняется, если пользователь активен, то остаётся неизменным.
Для чего это необходимо? Если создаём несколько аккаунтов подряд, то сервер присваивает всем аккаунтам одинаковое значение server_revision (которое хранится в виде cookies под названием spin в течение 1 суток.) Соответственно, ФБ помечает все аккаунты как принадлежащие 1 пользователю.
Задача состоит в том, чтобы у каждого аккаунта было новое значение server_revision.

Пример: есть 2 компьютера. 1 - Виндовс 7 64, 2 - Виндовс 7 32. Первый выходит в интернет через wi-fi, который раздаёт телефон с сим картой tele2. Второй - через модем с сим картой МТС.
При одновременном открытии на 2 компах ФБ. Значение server_revision - одинаково на двух компьютерах. Даже при использовании Tor браузера на 1 и VPS на 2.

Что даёт разное значение server_revision?
Пример: при создании нескольких аккаунтов с 1 значением server_revision одновременно качество свежесозданных аккаунтов таково, что они уходят в бан после 2-3 неудачной привязки оплаты (Яндекс карты или Пейпал).
При разном значении server_revision для каждого нового аккаунта - каждый аккаунт выдерживает 1000 попыток привязки Яндекс карты (сразу после регистрации аккаунта) и сразу привязывает Пейпал (с первого раза, сразу после регистрации).

Задача состоит именно в том, чтобы добиться разного значения server_revision для каждого нового аккаунта (перед его созданием) - чего не даёт даже одновременное создание аккаунтов на разных компьютерах (с использованием всех средств анонимности).
Вывод из всего вышесказанного: ФБ объединяет аккаунты под 1 пользователя даже при использовании нескольких компьтеров, подключённых по разным каналам связи.

Поиск причины.
Если дело не в железе, проксях и т. д. то в чём? Остаётся только предполагать, что ФБ вычисляет физическое расположение компьютеров пользователя по координатам с достаточно высокой точностью.
В пользу этого говорит то, что ФБ использует технологию OSM (OpenStreetMap) - карту улиц. В этом можно убедиться найдя в исходном коде OSM_ZOOM_THRESHOLD и следующие за этим координаты.
[[53.458804,96.681979,21.403164,156.019965],[49.051166,81.344246,30.016796,96.681979],[30.016796,81.344246,26.580888,91.847546],[45.235891,77.009813,36.828253,81.344246],[9.824078,79.695167,5.96837,81.787959],[25.300278,87.997767,21.403164,91.952439],[25.300278,93.270663,21.403164,96.681979],[14.5,102.25,5.51123,156.019965],[17.5,104.75,14.5,156.019965],[21.403164,100.114941,17.5,156.019965],[21.403164,87.997767,19.403164,100.114941],[19.403164,87.997767,10,98.114941],[14.5,98.114941,10,99.114941],[-6.491895,140.862305,-9.5,147],[-6.491895,147,-11.630566,155.957617],[-1.353223,140.862305,-6.491895,155.957617],[5.381389,8.698332,-8.748195,20.000554],[5.381389,20.000554,-13.458057,31.302776],[7.309793,170.989319,6.806464,171.756836],[7.47757,168.533264,7.142017,168.840271],[6.135358,169.454285,5.799805,169.914795],[11.168652,166.844727,11.000876,166.99823],[41.290967,43.439453,40,45.61] ............. и т. д.

После которых указываются следующие данные: HERE_MAP_REPORTER_URL":"https://mapfeedback.here.com/?appId=ZOdjOwwG7wKMxvmMewWg",
OSM_MAP_REPORTER_URL":"https://www.openstreetmap.org/fixthemap/"
Первая ссылка на сервис карт с указанием id (который на всех устройствах также одинаков), вторая ссылка - офф. сайт - OMS - карты улиц.

Далее идёт указание, что значение, полученное с OMS хранится 1000 дней и сразу же обращение к чёрному списку (блек листу) EXPIRY":86400000,"MAX_SIZE":10000,"MAX_WAIT":150000,"RESTORE_WAIT":150000,"blacklist":["time_spent"],
Всё это наводит на мысль, что ФБ отслеживает физическое местоположение пользователя с большой точностью.

Предположение, как происходит определение местоположения.
В примере выше указывались 2 компьютера с разными каналами связи (телефон с Теле2 и модем с МТС). ФБ их обединяет в 1 пользователя. В этом убедиться можно зайдя на страницу регистрации аккаунта ФБ, открыв исходный код и найдя WebWorkerConfig и значение id (1471127876485638 - например). А также server_revision. На всех компах - одинаковое.
Общее у этих компьютеров только Базовая Станция (сотовая вышка). Именно зная её местоположение, можно определить, что эти 2 компьютера находятся в одном доме (может что и на 1 столе). Определение местоположения по ip - сразу отпадает. В пользу определения координат по БС выступает следующее: при создании аккаунта через мобильную версию ФБ, в адресной строке на всех устройствах высвечивается: https://m.facebook.com/reg/?cid=103&refid=9 (или 8). Вбив в поисковик cid=103 - сразу нахожу статью о определении местоположении по БС, где cid - это - CellID (CID) — «идентификатор соты» . https://cellidfinder.com/articles/k...zovoi-stancii-gsm-po-mcc-mnc-lac-i-cellid-cid
Подводя итог остаётся вопрос: если ФБ вычисляет координаты БС, а затем и местоположение компьютеров (даже через Тор и VPS), то каким образом они (эти данные) попадают к ФБ даже через шифрованные тройные прокси?
 
Последнее редактирование модератором:
серьезно!
но голословно
 
Последнее редактирование:
Это выжимка полугодового исследования, а основано на бане более 1000 аккаунтов.
 
Ещё есть вариант, что ФБ вычисляет сервер по разнице во времени (у каждого сервера своё уникальное время - в тысячных долях секунды), но опять, при использовании прокси, должно учитываться время прокси, а не реального сервера.
 
Если пользователь бездействует в течение 5000 секунд (1ч.23мин), то значение server_revision меняется, если пользователь активен, то остаётся неизменным.
Для чего это необходимо? Если создаём несколько аккаунтов подряд, то сервер присваивает всем аккаунтам одинаковое значение server_revision (которое хранится в виде cookies под названием spin в течение 1 суток.) Соответственно, ФБ помечает все аккаунты как принадлежащие 1 пользователю.
Задача состоит в том, чтобы у каждого аккаунта было новое значение server_revision.
Вот ты сам написал, что нужно чтобы у каждого акка было новое значение server_revision. И сам же написал в каком случае оно поменяется.
В чем тогда проблема то? Будем регать акки каждые 1ч 23мин и всё, будут акки с разными значениями.
Я вот ночью спал, акки не трогал. Утром эти значения поменялись.
 
Да, значение поменялось, но у всех акков оно одинаковое!
 
Если server_revision одинаковое, то скоро и client_revision обновится. Вот расширение для просмотра и редактирования Cookies https://chrome.google.com/webstore/search/editthiscookie?hl=ru (для Chrome, для Мозилы - Cookie Editor) там есть spin такого вида r.4172209_b.trunk_t.1533285242_s.1_v.2_, где первая часть - значение server revision, а вторая - серверное время на момент регистрации. Этот кук постоянно обновляется. В итоге, даже если на момент регистрации его значение у всех аккаунтов будет разное, то в течение суток оно выравняется у всех аккаунтов.
 
Если server_revision одинаковое, то скоро и client_revision обновится. Вот расширение для просмотра и редактирования Cookies https://chrome.google.com/webstore/search/editthiscookie?hl=ru (для Chrome, для Мозилы - Cookie Editor) там есть spin такого вида r.4172209_b.trunk_t.1533285242_s.1_v.2_, где первая часть - значение server revision, а вторая - серверное время на момент регистрации. Этот кук постоянно обновляется. В итоге, даже если на момент регистрации его значение у всех аккаунтов будет разное, то в течение суток оно выравняется у всех аккаунтов.
Хорошо, как это использовать для работы в FB?
Выводы то такие? Мы обречены или есть способ наеб...ть?
 
Выводы пока неутешительные... Собственно цель и была поднять тему для обсуждения, проверки и дальнейшего поиска...
 
Назад
Верх