В телеграме запустили бота для верификации каналов с регистрацией в Роскомнадзоре. Чем это опасно для подписчиков таких каналов? Изучаем спор о новой угрозе безопасности ваших данных в мессенджере
9 апреля первый заместитель председателя комитета Госдумы по информационной политике, информационным технологиям и связи Антон Горелкин заявил о запуске телеграм-бота @Trustchannelbot для регистрации крупных телеграм-каналов в перечне Роскомнадзора (РКН). Чтобы получить маркировку «A+», каналы должны добавить бота в качестве администратора. IT-специалист Филипп Кулин заявил, что бот таким образом получает доступ к спискам подписчиков каналов. Горелкин отрицал это: «На самом деле, через API можно узнать только список пользователей с правами администраторов и общее количество подписчиков». «Медуза» изучила, какую информацию о пользователях на самом деле могут собирать подобные боты.
9 апреля первый заместитель председателя комитета Госдумы по информационной политике, информационным технологиям и связи Антон Горелкин заявил о запуске телеграм-бота @Trustchannelbot для регистрации крупных телеграм-каналов в закон о «реестре блогеров». Он обязывает владельцев страниц, пабликов и каналов в соцсетях с аудиторией более 10 тысяч подписчиков подавать сведения о себе и своих площадках в Роскомнадзор.">перечне Роскомнадзора (РКН). Чтобы получить маркировку «A+», каналы должны добавить бота в качестве администратора. IT-специалист Филипп Кулин заявил, что бот таким образом получает доступ к спискам подписчиков каналов. Горелкин отрицал это: «На самом деле, через API можно узнать только список пользователей с правами администраторов и общее количество подписчиков». «Медуза» изучила, какую информацию о пользователях на самом деле могут собирать подобные боты.
Максимально коротко. Депутат Горелкин не понимает, как устроен Telegram. Бот, получивший любые права администратора в телеграм-канале, может выгрузить список его подписчиков.
Боты в телеграме можно создавать с помощью двух интерфейсов программирования приложений
У Telegram существует два различных API для разработки ботов, каждый со своими особенностями и предназначением:
- HTTP Bot API. Это простой в использовании HTTP-интерфейс, специально созданный для ботов. У него ограниченный набор функций. Зато он не требует глубокого понимания работы телеграма, и обычно этого API достаточно для большинства задач.
- MTProto API. Это более низкоуровневый API, который используется официальными приложениями Telegram. С ним сложно работать напрямую, поэтому разработчики ботов обычно пользуются готовыми библиотеками вроде официальной TDLib или сторонних Telethon, Pyrogram, MadelineProto. При этом ботам в этом API доступны лишь часть функций: в документации Telegram они специально помечены фразой «Bots can use this method».
Мы попробовали добыть список подписчиков телеграм-канала через бота с правами администратора (точно такими же, как у бота РКН) с помощью обоих интерфейсов.
HTTP Bot API не позволяет выгрузить всех подписчиков — но разрешает добыть их список методом перебора
В HTTP Bot API нет функции, позволяющей боту выгрузить список подписчиков из администрируемого им канала.
Зато бот может получить информацию о конкретном подписчике из телеграм-канала, который администрирует, с помощью функции (формально называется методом) getChatMember. Из документации Telegram следует, что объект chat может быть и обычным чатом, и группой, супергруппой, и каналом. То есть эта функция будет работать не только с чатами, но и с каналами. Запрос о конкретном подписчике канала можно представить в виде обычной ссылки:
https://api.telegram.org/bot[your_bot_token]/getchatmember?chat_id=[chat_id]&user_id=[user_id]
Где:
- [your_bot_token] — это токен бота, полученный при его создании с помощью @BotFather;
- [chat_id] — это идентификатор канала, в котором данный бот получил права администратора (можно указывать и числовое значение, и @channelusername);
- [user_id] — это идентификатор пользователя, потенциального подписчика телеграм-канала.
Ответ вы получите в виде текста в формате JSON. В случае успеха там будет базовая информация о пользователе: как минимум выбранный @username, указанные в профиле имя и фамилия. Все возможные варианты ответов можно найти в документации HTTP Bot API:
Таким образом, в теории с помощью HTTP Bot API можно запустить перебор идентификаторов пользователей. Перебирать можно все числа в заданном диапазоне, более эффективный вариант — использовать уже известную базу данных идентификаторов телеграм-пользователей, например, из утечек.
Но все можно сделать и гораздо проще.
MTProto API разрешает выгружать списки подписчиков
Для получения списка подписчиков телеграм-канала через MTProto API нужно использовать метод channels.getParticipants. В каждом таком запросе нужно выбрать один из фильтров ChannelParticipantsFilter, чтобы определиться с типом участников, список которых вы хотите получить. Например, недавно присоединившихся или администраторов.
При этом Telegram не позволяет получить более 10 тысяч подписчиков (даже при использовании параметров offset и limit). Но как минимум с 2018 года разработчики обходят это ограничение с помощью поискового фильтра channelParticipantsSearch. Они перебирают разные варианты сочетаний букв в юзернеймах пользователей. Так чтобы ответ на каждый запрос выдавал меньше 10 тысяч подписчиков. И серией запросов получают весь список подписчиков телеграм-канала.
Метод channels.getParticipants могут применять и пользователи-администраторы, и боты (об этом явно говорит фраза «Bots can use this method»). В Telegram любой администратор, независимо от конкретных полномочий, имеет доступ к списку участников канала. Это явно следует из спецификации chatAdminRights — структуры данных, определяющей права администратора в каналах, группах и супергруппах. В описании флага other явно говорится, что список участников канала может получать любой администратор, даже если у него нет никаких специфических прав.
Set this flag if none of the other flags are set, but you still want the user to be an admin: if this or any of the other flags are set, the admin can get the chat admin log, get chat statistics, get message statistics in channels, get channel members, see anonymous administrators in supergroups and ignore slow mode.
Один из пользователей форума ntc.party, комментируя заявление депутата Горелкина, также сообщал об успешной выгрузке списка подписчиков телеграм-канала через метод channels.getParticipants. Существование лимита на выгрузку 10 тысяч подписчиков и возможность его обхода с помощью поисковых запросов в мае 2024 года подтверждали и пользователи «Хабра».
Это опасно?
Мы не знаем, будут ли власти собирать эти данные и как они будут их использовать. Но доступ к такому массиву информации обо всех подписчиках, причем не только россиянах, открывает обширные возможности.
- Власти могут искать потенциальных агентов влияния за границей, активно потребляющих российскую пропаганду.
- Изучать пересечение аудитории пропагандистских и обычных законопослушных каналов, отслеживать ее перетекание в ту или иную сторону.
- Проверять, какой процент аудитории z-блогеров не охвачен провластными СМИ.
- Использовать оценку пересечения аудитории среди пропагандистских каналов, чтобы эффективно распределять государственные расходы (то есть экономить).
- Наконец, составлять профайлы отдельных подписчиков и обогащать ими другие базы данных.
Читайте также
- Твое имя в списке у какого-то эфэсбэшника на столе Следы взлома сайта «Свободу Навальному!» ведут к людям, связанным с администрацией президента и его управделами. Расследование «Медузы»
- Власти задумали сделать единую систему видеонаблюдения (как в Москве, только по всей стране). Из утечки документов администрации президента мы узнали, кто ее разрабатывает Спойлер: предприятие, максимально близкое к Кремлю
Можно не «сдавать» свою аудиторию властям. Это абсолютно законно
Дело в том, что поправки в закон об информации требуют от владельцев телеграм-каналов, у которых более 10 тысяч подписчиков, только зарегистрироваться в Роскомнадзоре и не репостить блогеров без такой регистрации. Минцифры завело специальную форму для регистрации на «Госуслугах». Там же открыли отдельный раздел для проверки данных о регистрации любых страниц и каналов.
Федеральный закон от 27 июля 2006 года N 149-ФЗ «Об информации, информационных технологиях и о защите информации»
Статья 10.6. Особенности распространения информации в социальных сетях
1.1. В случае, если объем аудитории персональной страницы составляет более десяти тысяч пользователей социальной сети, создавший такую персональную страницу пользователь социальной сети обязан:
1) предоставить в федеральный орган исполнительной власти, осуществляющий функции по контролю и надзору в сфере средств массовой информации, массовых коммуникаций, информационных технологий и связи, сведения, позволяющие его идентифицировать. Состав сведений и порядок их предоставления устанавливаются Правительством Российской Федерации;
2) не допускать на созданной им персональной странице последующее распространение информации, которая была распространена на персональной странице, не включенной в перечень персональных страниц, указанный в части 1.2 настоящей статьи.
При этом владельцы телеграм-каналов не должны добывать специальную маркировку «А+» для своих блогов. Это обязанность социальной сети, то есть в данном случае — компании Telegram.
Статья 10.6. Особенности распространения информации в социальных сетях
1. Владелец <…> информационной системы, и (или) программы для электронных вычислительных машин, которые предназначены и (или) используются их пользователями для предоставления и (или) распространения посредством созданных ими персональных страниц информации <…> обязан соблюдать требования законодательства Российской Федерации, в частности:
13) размещать на персональной странице, объем аудитории которой составляет более десяти тысяч пользователей социальной сети, информацию о включении в перечень персональных страниц, указанный в части 1.2 настоящей статьи, в составе и порядке, которые установлены Правительством Российской Федерации;
Вместо того, чтобы выполнить требование российских властей или отказаться его выполнять, Telegram выбрал вариант, по сути снимающий с компании ответственность: владельцы каналов сами должны просить наклеить на них ярлык. И это решение позволяет властям собрать данные подписчиков всех крупных законопослушных российских телеграм-каналов.
Поправка к федеральному закону с новыми требованиями для социальных сетей формально вступила в силу 1 ноября 2024 года. Но правительство РФ подготовило соответствующий подзаконный акт лишь 28 декабря. Он был опубликован 30 декабря и вступил в силу через семь дней, то есть 7 января.
Как раз в это время — 1 января 2025 года — Telegram объявил о запуске системы верификации каналов третьими лицами. Пресс-служба соцсети назвала этот функционал «уникальным проактивным решением».
Визуально решение, предложенное компанией, полностью укладывается в нормативы из постановления правительства РФ:
- Рядом с названием канала должен находиться значок («А+» в случае с ботом РКН).
- В описании канала — тот же значок, уникальная ссылка для проверки регистрации и текст, «отражающий факт» регистрации канала в РКН
2. Владелец социальной сети на персональной странице, включенной в перечень, размещает:
а) указание, подтверждающее включение персональной страницы в перечень, — в верхней части персональной страницы рядом с ее наименованием и в описании персональной страницы;
б) уникальную ссылку для автоматического перехода пользователя социальной сети к поисковой форме, размещенной в информационно-телекоммуникационной сети «Интернет», при переходе по которой отображаются сведения о наличии или об отсутствии в перечне наименования и (или) указателя персональной страницы, — в описании персональной страницы. Ссылка должна сопровождаться текстом, отражающим факт включения персональной страницы в перечень.
3. Указание, подтверждающее включение персональной страницы в перечень, представляет собой графически выделенное сообщение в виде буквы «А» и знака «плюс».
О запуске бота @trustchannelbot объявили в апреле, но пользовательские соглашение и инструкция датированы январем 2025 года. При этом 1 января пост в блоге Telegram был проиллюстрирован примерами вымышленных телеграм-каналов и сторонних верификаторов (вроде Durger King и Food Standards Agency).
Подробнее об этом законе
Денис Дмитриев