Статьи О том, как ВКонтакте собирает информацию о нас

Discussion in 'Статьи' started by afonn, 16 Dec 2017.

  1. afonn

    afonn Member

    Joined:
    10 Aug 2015
    Messages:
    117
    Likes Received:
    42
    Reputations:
    0
    Сегодня, ковыряя отснифеный трафик официального приложения ВКонтакте под Android, пытаясь найти особенности, по которым API отсеивает официальные приложения для получения музыки, я наткнулся на запросы довольно интересного содержания...

    Disclaimer
    Сразу хочу отметить, что я снимаю с себя любую ответственность за возможный ущерб, который Вы можете причинить себе/своим устройствам или другим/чужим устройствам, выполняя действия, которые здесь описаны. Также я не призываю заниматься подобной деятельностью на своих сетях. Информация предоставлена исключительно в ознакомительных целях и крайне не рекомендуется к воспроизведению/повтору на личных устройствах, сетях, а также строго не рекомендуются эксплуатации на пользователях, поскольку снифинг чужих данных - дело незаконное, а свое устройство я промониторить в праве.

    И да, для любителей найти рекламу там, где её нет: этот пост/статья -- не является рекламой. Упомянутые ниже приложения приводятся в качестве примеров, не более.



    Update 6
    А еще давайте сразу, вот что ответил (где-то) Андрей Рогозов про данную информацию.

    [​IMG]


    Предисловие
    Года два назад я тоже снифил трафик с помощью Shark for Root, отправляемый ВКонтакте с телефона. Ничего странного я тогда не видел. Сейчас же, когда нас окружают "умные" (именно в кавычках, ибо они идиотские) ленты, машинное обучение и прочее, техника стала, мягко говоря, следить. С одной стороны, это хорошо (мы даем пищу для машин, чтобы они обучались), с другой - плохо (данные о нас сохраняются на серверах).

    Результаты
    Проснифив только авторизацию, аудиозаписи и вообще первые минуты после авторизации в приложении, уже можно поймать все эти странные запросы. Итак:

    [​IMG]
    Самое странное, что мне показалось - это то, что приложение сливает абсолютно весь список пользовательских приложений, установленных на устройстве. Зачем?! (в центре скрина влепил decoded-строку параметра apps)
    [​IMG]
    Довольно часто промелькивали запросы к некоему сервису vigo.ru. Сервис позиционирует себя как аналитика в передаче, поиска ошибок, проблем и обработке видео. Но странно, ведь я всего лишь авторизовался, перешел в аудио и пролистал свою стену, где не было ни единого видеоролика (которые должны были автоматически проигрываться?), а запросов скопилось около 5-7 штук. Помимо notify еще был network_status.
    [​IMG]
    Вот опять. wallGetWrapNew - по названию понятно, что это запрос на получение чьей-то стены (пользователя или сообщества). Зачем тут передавать информацию о устройстве? Максимум, что приходит на ум - для статистики. Хорошо, а зачем данные о типе сети? Еще, что не относится к сливу информации: довольно раздражает то, что везде пытаются всунуть рекламу - лишь посмотреть на параметр fields.
    [​IMG]
    Приложение отправляет все действия пользователя: перешел через меню в раздел "аудио", "geo_data" - вероятно, отправлял бы примерное (или даже точное) местоположение устройства. Спрашивается, зачем, если пользователь не просит находить что-то по близости? Нет, облегчать пользователю жизнь, подсказывая релевантные данные в поиске, например - в этом ничего плохого нет, но зачем отправлять геоданные просто так, при открытии поста? Не понятно.
    [​IMG]
    Приложение делает бенчмарки и зачем-то передает время запроса к API и время загрузки изображений. Видимо, усредненные данные.
    [​IMG]
    Пока не понял когда, при каких условиях и зачем, в приложении подгружается невидимая WebView со страницей m.vk.com/counters.php. Ибо от нее же потом подгружаются две метрики-пикселя (внизу HTML-кода) и favicon. Накрутка статистики? upd: спустя еще пару минут отправился еще один запрос сюда же, уже с другими числами в тегах img - для того, чтобы тот самый пиксель не загрузился из кэша, а запрос к метрике все таки был реальным.
    [​IMG]
    Чуток не негатива: приложение отправляет сообщения об ошибках, если, например, была попытка загрузить изображение (например, оно было прикреплено к посту), но произошла какая-то ошибка. На скрине предоставлен пример, когда изображение просто отсутствовало на сервере (ошибка 404 Not Found). upd: хотя вот попался момент, когда state=success и никаких других "опознавательных знаков" не было.
    [​IMG]
    С видеозаписями обстоят дела еще хуже. Здесь передается информация о таких событиях как "volume_on", "volume_off" (видимо, включение/выключение звука, но это неточно), "fullscreen_on", "fullscreen_off" (переход и выход в/из полноэкранного режима), событие "video_play", которое просто отсылает текущую позицию просмотра видео, где-то с периодичностью 10-20 секунд. upd: хотя вот Андрей подсказал идею, для чего это сделано: для того, чтобы запоминалось место, на котором пользователь остановился при просмотре видео, чтобы он мог переключиться с мобильного на ПК и на ПК продолжить смотреть с места, где был в последний раз на мобильном.
    [​IMG]

    При закрытии страницы (активити) с видео, приложение запрашивает метод video.viewSegments, в параметрах которого передаются рейнжы (отрезки) таймкода, которые были просмотрены пользователем.
    Все это - официальное приложение. На момент написания этой статьи (29 июля 2017 года) была версия 4.12.1.

    В Kate Mobile таких сливов замечено не было. Единственное, после ввода в эксплуатацию нового алгоритма выдачи аудиозаписей, и Kate, и официальному приложению нужно обращаться к Google Accounts для получения некого receipt-токена. И всё.

    О том, как работают приложения на iOS, Windows Phone мне только можно догадываться. Их пакеты не перехватывал, и устройств не имею.

    Повторюсь, такие данные, как ближайшие точки доступа Wi-Fi, текущее местоположение пользователя, а также все его действия не отправляются сторонними приложениями, такими как Kate Mobile, VK Coffee (модификация официального, с вырезанными метриками и пр.), моим сайтом-клиентом APIdog и пр.
     
  2. afonn

    afonn Member

    Joined:
    10 Aug 2015
    Messages:
    117
    Likes Received:
    42
    Reputations:
    0
    Update 2
    А еще давайте сразу, вот что ответил (где-то) Андрей Рогозов про данную информацию.

    [​IMG]


    >>>

    Моя статья о сборе информации о пользователях официального приложения ВКонтакте под Android уж слишком разошлась в Интернете. Я заметил, что не так уж и мало людей относится к конфиденциальности своих данных не наплевательски и приняли материал довольно "тепло".

    Обсуждения в комментариях под моим постом в ВК тоже оказались довольно интересными. Туда пришел бывший разработчик этого самого приложения Григорий Клюшников и разработчик его модификации Эдуард Безменов. Оба они рассказали немало интересных вещей. Что ж, мне тоже стало интересно, что еще я не смог наснифить на реальном устройстве и о чем конкретно они говорили.

    Наш инструментарий на сегодня
    Имеется установочный APK-файл приложения версии 4.12.1. Имеются его исходники (код), полученные путем декомпилирования приложения (грубо говоря, установочный файл был разобран и по нему воссоздан код на программном языке, в нашем случае - Java). Декомпилятор - JADX.

    Небольшой ликбез
    В Java-проекте (а приложение под Android таковым и является) весь код поделен на классы; классы сгруппированы в папки -- пакеты (пэкедж, package), пакет может находится в другом пакете. Каждое приложение может иметь неограниченное число пакетов, которые могут "общаться", взаимодействовать друг с другом.
    Декомпилировав приложение, мы видим следующее

    [​IMG]
    com.my.tracker - тот самый трекер MailRu, о котором говорил Эдуард и Григорий; com.my.target - пакет, связанный с трекером; com.vkontakte.android - непосредственно само приложение и ru.mail.libverify - еще один пакет от MailRu
    С декомпилированным кодом будет сложнее, поскольку не все переменные и классы будут названы именами, которые будут понятны человеку. В основном это названия чем-то напоминающие шестнадцатеричное число, например, C1998a.java. Есть у меня еще одно предположение, что код мог быть специально обфусцирован (obfuscate — делать неочевидным, запутанным, сбивать с толку). Но некоторые "зацепки" остаются, по которым можно понять что это за код, за что он отвечает и что именно что делает.

    Результаты
    Не буду томить, сразу к делу.

    com.my.tracker
    Начнем свое путешествие с файла класса com.my.tracker.builders.C1998a..

    [​IMG]
    Слева - код, справа - предыдущая статья и скрин Андрея, про который он говорил, что приложение сливает точки доступа Wi-Fi.
    Теперь следим за ходом мысли: в строке 298 (чуть выше строки с "around", сорян, урезал номера в скрине) объявляется переменная c2002d2 с типом C2022d, получаемая из итератора (грубо говоря, коллекция/массив/список). Класс C2022d определен в пакете com.my.tracker.providers в классе C2023d. Определение нам его не интересно, ибо оно не содержит понятных человеку названий полей. В этом же классе есть объявление этого класса и заполнение этого класса данными.
     
  3. afonn

    afonn Member

    Joined:
    10 Aug 2015
    Messages:
    117
    Likes Received:
    42
    Reputations:
    0
    [​IMG]
    Сбор информации о текущей точке доступа.
    Вот тут то, по логу после объявления и заполнения экземпляра класса значениями, мы и понимаем, что C2022d -- это класс (а если быть правильнее, то структура), хранящий в себе данные о точке доступа Wi-Fi. Чуть ниже собираются данные обо всех окружающих точках.

    [​IMG]
    В цикле перебирается результат сканирования (160), создается и заполняется класс C2022d = информация о ТД Wi-Fi (175-178) и добавляется в список (179).
    А еще ниже мы видим, как пытаются собрать данные о CID и LAC.

    <wikipedia>
    Cell ID, CID — «идентификатор соты». Это параметр, который присваивается оператором каждому сектору каждой базовой станции, и служит для его идентификации.
    LAC, Local Area Code — код локальной зоны. Локальная зона — это совокупность базовых станций, которые обслуживаются одним BSC — контроллером базовых станций.
    Базовая станция — совокупность оборудования одного оператора, установленного на одной площадке (вышке, здании) и предназначенного для непосредственной связи сети с мобильными терминалами абонентов
    </wikipedia>
    [​IMG]
    Coarse location - примерное местоположение
    Возвращаемся назад к C1998a.java...

    [​IMG]
    Тоже интересно... apps (приложения), first_install_time (время первой установки)...
    ... Неужто тоже отправляет список установленных приложений? C2015a - еще одна структура в com.my.tracker.providers.C2016b. Определение не интересует, использование тут же...

    [​IMG]
    Получение списка приложений (84), создание собственного списка приложений со своими структурами (88), обход всего списка циклом (90), получение информации об одном приложении (91), если оно не системное (пруф), то добавляется в список.

    Снова возвращаемся в C1998a.java.

    [​IMG]
    Здесь же, откуда-то собираются списки электронных адресов, ID одноклассников, ВК, ICQ (лол), и другие ID...
    [​IMG]
    ... sim_loc (?), ID и имя оператора, информация о соединении и его типе (Wi-Fi/мобильная связь), включенности BlueTooth...
    [​IMG]
    ..., информация об устройстве, названии и версии ОС на устройстве, производителе, MAC-адресе устройства, языке, часовом поясе, ... и еще пара мелочей.
    И вот собрали мы это всё... А зачем? В классе com.my.tracker.async.commands.C1990f это всё отправляется.

    [​IMG]
    73 - создается экземпляр сборщика, который собирал всё то, что мы выше просмотрели. 83 - (без скрина, поверьте наслово) генерируется JSON-строка со всеми данными, 85 - данные отправляются...
    Метод m1919a ... где же он? Он в родительном классе C1988c

    [​IMG]
    Грубо говоря - здесь делается запрос в интернет по адресу... указанному в конструкторе класса C1988c, но он же не создавался выше!
    Глубоко порывшись в поиске по всему проекту (по названию поля f1295b, по унаследованным классам), пришел к методу C2013a.m2085a..

    [​IMG]
    А вот и адрес, куда отправлялась информация
    Всё, на этом хватит с MyTracker...

    ru.mail.libverify
    ru.mail.ibverify.requests.C4109e

    [​IMG]
    Класс C4109e, в самом начале строка, содержащая домен mail.ru, куда будут делаться запросы.
    [​IMG]
    Прямо в этом же классе (см. заголовок Sublime) C4109e содержатся данные о IMEI, IMSI, телефоне, операторе, широте/долготе и точности местоположения.
    [​IMG]
    В C4109e: метод mo8472d выбирает хост из f2386b (через один скрин выше), куда отправлять данные
    [​IMG]
    В C4109e: в методе m3158u формируется полный URL-адрес для запроса, используя метод mo8472d, который описан выше.
    На этом пока всё.

    Итог
    Приложение ВКонтакте для Android помимо своих метрик и телеметрий отправляет такой же, и даже больший, объем данных для третьих лиц: MyTracker и MailRu LibVerify.


    источник тут http://telegra.ph/O-tom-kak-VKontakte-sobiraet-informaciyu-o-nas-07-29
    http://telegra.ph/O-tom-kak-VKontakte-sobiraet-informaciyu-o-nas-chast-2-07-31
     
    #3 afonn, 16 Dec 2017
    Last edited: 17 Dec 2017
    CyberTro1n, altblitz and Lam3rsha like this.
  4. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,014
    Reputations:
    693
    ТС почему ссылки на источник не указываешь?
     
  5. afonn

    afonn Member

    Joined:
    10 Aug 2015
    Messages:
    117
    Likes Received:
    42
    Reputations:
    0
    исправляюсь забыл :)
     
    CyberTro1n and Suicide like this.
  6. grimnir

    grimnir Members of Antichat

    Joined:
    23 Apr 2012
    Messages:
    1,114
    Likes Received:
    830
    Reputations:
    231
    _________________________
    Veil likes this.
  7. Keris

    Keris New Member

    Joined:
    6 Oct 2013
    Messages:
    11
    Likes Received:
    1
    Reputations:
    0
    Люди - тупые! Вот моей фотки напрмер в интернете нету, по крайне мере той которую выставил бы я. Вероятно человек 10 могли бы выставить фотку со мной, однако верифицировать меня как либо невозможно.
     
  8. fredor

    fredor New Member

    Joined:
    10 Feb 2018
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Даже по айпи не вычислят?)
     
  9. Veil

    Veil Banned

    Joined:
    21 May 2015
    Messages:
    2,033
    Likes Received:
    3,388
    Reputations:
    72
    На практике скажу другое нужны были сведения для одной обманутой женщины, моей очень хорошей знакомой. Был человек, как и ты полный аноним, ни одной своей фотки, ни адреса ничего, с семьей развелся...
    Но была маленькая дочь , ученица 3 класса, у которой на странице в контакте был целый дневник с фотками, числами и коментами, какой у неё папа крутой, какая у него фирма, какая у него машина, где он живет и куда они ездили и когда поедут.Детишки очень любят своими причиндалами меряться, кто круче и у кого больше.
    Так что не важно, что выставил ты. Важно что знают и пишут о тебе.
     
    user100, CyberTro1n and uzeerpc like this.
  10. Anwy

    Anwy Elder - Старейшина

    Joined:
    16 Dec 2004
    Messages:
    266
    Likes Received:
    232
    Reputations:
    45
    Могу сказать наверняка, что это скорее минус чем плюс (того что нет никакой инфы в интернет о тебе и фотках) сейчас везде камеры в любой амэрлпорту и вообще повсеместно. (А то что в соц сетях и тд тебя нету - подозрительно - это раз во-вторых можно создать фейки
     
    CyberTro1n likes this.
  11. V777

    V777 Elder - Старейшина

    Joined:
    12 May 2015
    Messages:
    1,326
    Likes Received:
    3,181
    Reputations:
    24
    Я уже забыл что такое ВК . Считаю решения парашенка правильным
     
    Vlad Nikolaev likes this.
  12. Veil

    Veil Banned

    Joined:
    21 May 2015
    Messages:
    2,033
    Likes Received:
    3,388
    Reputations:
    72
    Я тоже туда редко захожу.Только если надо человечка найти и другую инфу. А так как и у всех, АКК полностью закрыт, имя народное типа Васи Пупкина.
    Тоже мучаюсь вопросом зачем он вообще нужен, ну кроме сбора информации?
    Раньше фильмы там смотрел, музыку слушал. Сейчас это тема почти прикрыта. Мне кажется люди там сидят по привычке? Сейчас овер 9000 юзеров перебирается на Вассап и там живут.
     
  13. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,694
    Likes Received:
    3,146
    Reputations:
    236
    Как же ты заблуждаешь себя!
    Можно, с 2017 - и нейронные сети.
     
    CyberTro1n likes this.
  14. Kapaso

    Kapaso Member

    Joined:
    1 Feb 2013
    Messages:
    45
    Likes Received:
    41
    Reputations:
    0
    А чего Вконтакте? Вас на вашем же форуме с потрохами за 2000 рублей выдадут, только номер дайте. Или не вас, а близких ваших.
    Очятегг -- территория лицемерия.
    [​IMG]
     

    Attached Files:

  15. vlad_tsepesh

    vlad_tsepesh Member

    Joined:
    19 Feb 2009
    Messages:
    63
    Likes Received:
    15
    Reputations:
    0
    Вообще,если разобраться по хорошему,то там всем глубоко плевать на всех людей.И только когда ты начинаешь делать,что-то неправомерное,то человеком конкретным уже начинают интересоваться,вот тогда уже и начнут его и мониторить и прочее,ну,а если сидеть тихонько и не подавать вида,то тебя даже и не заметят как говориться,а так прикиньте какой объем данных и на каждого собирать и следить?Это гемморой.Им нужно коротко и по делу.Да если там по ключевым фразам,экстремисты ну или нарки и прочее там какие то у себя выкладывают к примеру фото,записи или подобное,то таких и легче отследить,такие сразу светятся то!
    Ну если ты постоянно через Tor только будешь сидеть,а иначе раз засветишься и все тогда все напрасно будет потом с него сидеть.Думаю так!
     
    CyberTro1n likes this.
  16. cna

    cna New Member

    Joined:
    10 Feb 2018
    Messages:
    10
    Likes Received:
    1
    Reputations:
    1
    О том, как меньше надо пиздеть)
     
    CyberTro1n likes this.
  17. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    260
    Likes Received:
    143
    Reputations:
    3
    Ну это интересная стать про разбор трафика. Но возьмите вк api которое есть на и оф сайте. И написанную библиотеку для python. Чего ты там только не передашь, особенно если есть access_token, который можно получить изи путем (для пользователя в запросах). :eek:
     
    CyberTro1n likes this.
  18. Toxa81q

    Toxa81q New Member

    Joined:
    22 Apr 2018
    Messages:
    14
    Likes Received:
    3
    Reputations:
    0
    Мне кажется социальные сети изначально создавались для шпионажа за людьми. Лед через 10 каждому чип вошют и будут контролировать нас под предлогом тероризма.
     
  19. CKAP

    CKAP Well-Known Member

    Joined:
    9 Oct 2015
    Messages:
    653
    Likes Received:
    2,865
    Reputations:
    8
    Чип не нужен, их и так с собой таскают, а раньше даже мода бла на шее их носить..
     
    CyberTro1n and Toxa81q like this.
  20. Toxa81q

    Toxa81q New Member

    Joined:
    22 Apr 2018
    Messages:
    14
    Likes Received:
    3
    Reputations:
    0
    Согласен телефон один из главных шпионов за людьми. Но это только начало, в будущем вообще хотели сделать деньги только через банковскую карту, а это значит что могут устранить любого человека простой блокировкой банковского счета. Но благо пришли криптовалюты которые не дадут это сделать)
     
    CKAP likes this.