company_banner

Возможности для массового деанона в Telegram



    tl;dr: исследую возможности для сопоставления аккаунтов с номерами телефонов в российском сегменте Телеграма.

    В мире много людей, которые хотят получить возможность сдеанонить произвольного пользователя. Это могут быть капиталисты не гнушающиеся спама, спецслужбы, мошенники и просто сталкеры. Социальные сервисы пытаются лавировать между желанием привлечь как можно большую аудиторию через импорт контактов и лимитами на доступ к подобной информации. Лавируют по-разному, одни позиционируют себя максимально социальными, другие же больше ценят прайваси. Вторые становятся объектами нападок со стороны сторонников максимальной приватности.

    По умолчанию в Telegram, как и в менее приватных мессенджерах, можно добыть аккаунт пользователя, зная его номер. При этом, владелец номера может ограничить эту возможность только для взаимных контактов, для этого есть специальная опция. По умолчанию она выключена, а значит у нас есть полный Telegram беспечных и сознательно публичных ребят. Функция появилась, кажется, из-за слива базы пользователей. Я решил разобраться, во сколько обойдётся создание аналогичной базы, и смогу ли я создать такую.

    Я ограничил интересы только российскими пользователями. База номерных диапазонов, как оказалось, публикуется Россвязью, что дополнительно упростило мне задачу, избавив от необходимости скрейпить сайты с подобной информацией. Всего операторам на седьмое сентября раздали почти шестьсот миллионов номеров, а точнее, ровно 598035003.

    Я взял несколько сим-карт, `telethon` (Python-модуль с полноценной реализацией MTProto) и попробовал создать такую базу у себя.

    Расшаривание контактов и добавление в группу


    Помните историю про гонконгский деанон? Бот добавлял пользователей в группу по номеру телефона, тем самым получал аккаунт, привязанный к телефону. В этой же статье журналист ZDNet связался с представителем Telegram. Последний заявил что массовый импорт будет сопряжён с проблемами.
    We have suspected that some government-sponsored attackers have exploited this bug and use it to target Hong Kong protesters, in some cases posting immediate dangers to the life of the protestors

    Поэтому я решил сначала пошарить контакты. Интерфейс официальных Telegram-клиентов позволяет расшаривать только тех пользователей, чей номер вам так или иначе видно. Однако, `telethon` позволяет расшаривать контакты с произвольным номером. Судя по его API, функция расшаривания — это отправка файла определённого типа. Для предварительной проверки я набросал скрипт, который без лишних вопросов отправил указанный контакт моему основному аккаунту.

    Для проверки скриптом, я завёл «чистый» аккаунт (далее Бот), и отправил в ещё один аккаунт (далее Получатель) три номера: Паши, Даши и свой. У всех есть Telegram. Паша расшарил свой телефон вообще всем. Даша добавила в контакты Получателя. Свой номер я добавил дважды: сначала добавив Бота к себе в контакты, потом удалил у себя бота и добавил себя в контакты Боту.



    Результат можно интерпретировать по картинке: нормально контакты шарятся исключительно при условии доступности телефона боту. С добавлением в чат всё ещё хуже. Я не могу добавить Ботом даже аккаунты с известным Боту телефоном, если они выключили эту возможность в настройках. Кроме того, Бота могут быстро забанить, если пользователи начнут сообщать о спаме. Так я никого не сдеаноню, самое время забыть об этой идее.

    Синхронизация


    Синхронизация контактов, как я уже сказал, потенциально влечёт к ограничениям для аккаунта. Но как это выглядит? Я написал ещё один скрипт, забирающий из базы случайные номера и добавляющий их в контакты. После этого скрипт парсит контакты, идентификаторы найденых в ростере аккаунтов добавляет обратно в базу, остальных отмечает нулями и удаляет контакты из ростера.

    Затем я прогнал 5000 рандомных номеров, по слухам, именно такие лимиты работают в Telegram. В выводе не нашёл ни одного идентификатора, кроме самого Бота. Теперь, чтобы исключить возможные ошибки в коде и обманку Телеграма, добавляю к рандомным номерам вручную номер Даши, отключаю удаление контактов из ростера, уменьшаю объём выборки до 3000 номеров и прогоняю снова. Даши нет ни в ростере, ни в базе. Попытка вручную добавить Дашу намекает, что сработали лимиты Телеграма.



    Вроде почти всё хорошо. Чтобы убедиться, я удалил аккаунт и зарегистрировал его заново, уменьшил количество телефонов до 3000 включая Дашу и прогнал скрипт ещё раз. Результат аналогичный. Похоже, что лимиты затрагивают не аккаунт, а номер телефона, с которого синхронизируются контакты. Кажется, всё хорошо, и телеграм действительно обеспечивает разумный уровень защиты от перебора.

    Или нет?


    В интернете упоминается как минимум два сервиса, которые, якобы просканировали широкий диапазон номеров. Один из них я проверил, работает плохо. Предположим, второй не врёт и им это действительно удалось. Давайте даже предположим, что им не нужно обрабатывать все 600 миллионов номеров и они откуда-то знают 150 миллионов реально активных номеров (чуть больше, чем по одному номеру на душу населения РФ). Сколько будет стоить просканировать всех за полгода, соблюдая все ограничения мессенджера? А за три месяца? А за месяц? А за один день?

    Допустим, с одного номера можно сосканировать 5000 контактов в первый день и ещё 100 в каждый последующий. За полгода с каждого номера можно перебрать 23000 контактов (180*100+5000), для перебора понадобится около 6500 номеров (150000000/23000). Не так уж много, правда? Если каждая симка обойдётся в 150 рублей (а это дорого!), то расходы на их приобретение составят менее миллиона рублей. Подъёмная сумма даже для малого бизнеса! Для SIM-карт даже много оборудования держать не нужно, залогинился и запускаешь скрипт раз в день.

    Но давайте пересчитаем по максимуму. Возьмём весь пул в 600 миллионов номеров и сократим сроки до месяца. Получится, что нужно 75 тысяч SIM-карт, которые обойдутся всего где-то в десять раз дороже (600000000/(5000+30*100)*150=11250000). Придётся постараться найти столько симок, зато можно сократить их стоимость в такой партии. Потенциально можно использовать сервисы, которые позволяют регистрировать аккаунт от 3.5 рублей за штуку, а самые отбитые могут распространять трояны, чтобы крали SMS. Тогда это будет стоить сильно дешевле. Разработка не кажется сверхсложной, хостинг клиентов также не должен стать большой проблемой. Возможно, придётся использовать множество прокси, но это не точно.

    Мне не удалось собрать базу из-за лимитов Telegram и это хорошо. Значит, есть некоторый порог входа для таких действий. Бесполезные скрипты я сложил в гит. Но нет ничего крайне сложного сделать это при наличии некоторых ресурсов. Особенно, если ограничить интересы конкретными регионами, например, в Еврейской АО меньше миллиона номеров в пуле, а в Башкортостане 12.5 миллионов.

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



    RUVDS.com
    VDS/VPS-хостинг. Скидка 10% по коду HABR

    Комментарии 29

      0
      Симки дорого, но может можно купить аккаунты или виртуальные номера — для получения одноразового кода регистрации(первый попавшийся магазин предлагает 1 рубль за номер на 20 минут)

      Плюс можно по логину можно искать в социалках — думаю совпадений будет довольно много
        +1

        Я смотрел на сайтах вроде sms-reg.com, там зависит от мессенджера. Для телеграма регистрация дороже.

          0
          В этих сервисах номера свеченые-пересвеченые. Тестил заметно менее популярные сервисы, так поди найди свободный оказалось. Ну да, либо заметно дороже.
            +1
            Ну так надо покупать услугу номер для регистрации в N сервисе с гарантией, что этот номер не использовался и не будет после использоваться для регистрации в этом сервисе. 6 лет назад зарегал пару аккаунтов для ВК по цене 15 рублей за аккаунт. (номер давался на 30 минут, показывал sms только от номеров, связанных с ВК) До сих пор они остались за мной. 3 года назад зарегал 2 аккаунта для телеграмм по цене 30 рублей за аккаунт. Тоже до сих пор со мной.
              0
              Подтвержу, пользуюсь регулярно sms-reg, номера висят за мной.
            0
            довольно часто с этих номеров уже всё что можно активировали, вам же дают не уникальные симки.
              0
              Есть ли вообще услуга получения уникального (ранее не выдававшегося) телефонного номера?

              remzalp Это на самом деле вполне востребованная может быть услуга, на уровне золотых номеров.
                0
                Если даже сотовые операторы выдают симки с номерами второй, а то и третьей свежести, то смысла на что-то рассчитывать уже нет. Разве что подкинуть им такую идею — за НН*10 денег выдавать такие номера :)
            +27
            Boomburum добавьте в ризон минуса кликбейтный заголовок (несоответствие заголовка сути поста)
              –1

              Виноват, каюсь. Сначала я надеялся, что у меня получится, а потом не придумал ничего другого. В tl;dr постарался никого не запутать.

                +1
                Из названия статьи можно сделать вывод о том, что настройки приватности ни на что не влияют. Тема сопоставления возможности деанона и пользовательских настроек не раскрыта, хотя в сети такого рода обзоры есть. Статья предвзято и однобоко выглядит.
                  –2

                  Меня не интересовала корректная работа настроек, меня интересовала стоимость массовой деанонимизации и способы её упростить для себя. Я предполагал, что упоминание российского сегмента сделает это ясным.


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

              +12
              «Если вам не хочется попасть под массовый деанон» — не используйте социальный сети, не позволяющие их использование без номера телефона.
                –3

                Не согласен. Настройками по умолчанию вполне можно решить эту проблему. За исключением желания скрыться от операторов мессенджера, конечно. Но здесь я предпочитаю ориентироваться на бизнес-модель сервиса, репутацию и немного на политическую обстановку. Излишне защищаться от них без модели угроз.

                  +1
                  Если не защититься сразу то после уже будет поздно.
                  Бизнес-модель, репутация и политическая обстановка имеют свойство меняться.
                +3
                Сколько будет стоить просканировать всех за полгода, соблюдая все ограничения мессенджера? А за три месяца? А за месяц? А за один день?

                У государства денег на такие цели более чем достаточно.
                  +2

                  Согласен. При этом гораздо хуже, что на такие цели денег достаточно почти кому угодно, кроме, разве что, случайных сталкеров.

                    +7
                    Государству, возможно, даже не придётся покупать симки. Обяжут операторов дать АПИ, и будут получать СМС-ки напрямую от оператора без симкарты
                      +9
                      СОРМ-2 уже есть, оператор даже знать ничего не будет.
                    +1
                    Если вам не хочется попасть под массовый деанон, скройте свой номер телефона в Telegram для всех, кроме ваших контактов.

                    Этим высказыванием можно ввести читателей в заблуждение. Да, это теоретически сработает, если «некто» начнёт сканировать номерные диапазоны уже после того как вы скрыли номер.
                    Вот только то же государство уже просканировало все диапазоны ещё до того, как в Телеграме появилась возможность скрыть свой номер от всех. Поэтому, даже если вы скрыли свой номер от всех ещё несколько лет назад, в тот же день когда появилась эта возможность в Телеграме — это бесполезно, т.к. этот номер уже есть в базах тех, кому это действительно нужно. И можно несколько лет жить в иллюзиях того что вы такой хитрый, скрыли свой номер, и теперь вас никто не найдёт, пока в определённый момент вы не получите звонок от своего куратора :)
                    На мой взгляд, самое правильное что можно сделать чтобы избежать деанона в том же Телеграме — регистрировать аккаунт на новый номер и сразу же скрывать его для всех, чтобы его не было ни в старых базах, ни чтобы он не успел засветиться в новых базах во время очередного массового скана. Ещё лучше если это будет виртуальный номер из другого государства (а не симка в роуминге). И это даже проще — тот же Twilio с номерами за $1 в месяц или вообще бесплатный номер в Google Voice.

                    Есть ещё один момент, про который многие забывают.
                    У опции «кто может найти меня по номеру» можно выставить значение «Все» или «Мои контакты», и там есть комментарий:
                    Пользователи, которые сохранили Ваш номер в телефонную книгу, будут видеть его в Telegram, только если Вы добавили их в контакты.

                    А теперь просмотрите свои контакты в телефонной книге и посчитайте, сколько у вас записано номеров различных такси, пиццерий и других подобных популярных мест. Их номер уже есть в вашей телефонной книге. У вас есть уверенность что т-щ майор не завладел доступом от их Телеграм-аккаунта, а значит с определенным успехом может во время массового скана пополнить базы и вашим номером телефона?
                      0

                      Можно перерегистрировать аккаунт, чтобы инвалидировать данные в готовой базе. Но может быть сложно.


                      Конактов такси и пиццерий у меня в телефоне не записано, но да, наверняка у большинства есть что-нибудь такое.

                        0

                        Тоже как-то задавался вопросом перерегистрации, но ничего интересного не нагуглил. Скажите, а в чем именно может быть сложность? По идее, если удалить аккаунт, а позже завести новый на этот же номер, ID должен либо обновиться, либо нет. Тут уж, наверное, зависит от того, как именно это реализовали разработчики Телеграма.

                          0

                          Идентификатор точно меняется. А сложность в том, что все диалоги, чаты и прочее пропадёт, потому что всё это было завязано на старый аккаунт со старым идентификатором.

                        +1
                        А теперь просмотрите свои контакты в телефонной книге

                        Как будто кто-то даст доступ телеграму в эту книгу.
                        +1
                        Я предложил команде Телеграма информировать пользователя о возможности скрыть телефон

                        Это всё мало поможет в системе, где твой главный ID — номер телефона (=номер паспорта в России).

                          0

                          Симки если знать где брать, то и по 30р можно. А были времена и по 5р. Эх…
                          А вообще на каком то даркнетовском форуме кто-то предлагал подобную услугу для деанона номера телеграма и обсуждали эту тему мол перебором можно. Было это года 1.5 назад.

                            0
                            Некоторые операторы предлагают такую услугу, как бесплатная смена номера телефона на симкарте. Не с огромной скоростью, но несколько раз в месяц – запросто. Это ещё более улучшает оценку.
                              0
                              Я уже писал об этом года 2 назад. Сколько можно разжевывать мою тему, которая работала идеально?
                              Автор, если ты не знал, то есть виртуальные симки, которые стоят по 1-3 рубля. Автор, если ты не знал, то на 1 симку можно делать несколько аккаунтов. Автор, если ты не знал, то можно полностью автоматизировать процесс импорта контактов через vCard. Автор, если ты не знал, то у высших структур есть специальные инструменты, которые позволят выявить из всех существующих номеров только те, которые реально зарегистрированы в телеграме.
                              Боже, уже статей 10 после моей было, а все такое жалкое подобие
                                0

                                Вы – большой молодец!

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое