Comments 61
Выглядит не как проблема Telegream, а как проблема способа аутентификации. Такого, что перешёл по ссылке и автоматически впустил кого-то в свой аккаунт, просто не должно быть.
Это ж модный нынче везде magic link. Сходу кто из гигантов его использует - Civitai, Scaleway. В качестве логина вводишь емейл, тебе на емейл приходит ссылка с кодом. Код только у тебя, вводя код - подтверждаешь владение ящиком, то есть, себя. Ссылка такая, что код в нее сразу встроен, передается параметром при клике.
Если не воспользоваться ссылкой, а переслать ее другому и он кликнет - то он войдет в этот аккаунт, для которого сгенерирован код.
И визуально обе эти ссылки выглядят одинаково
Честно говоря, я не считаю это уязвимостью.
Так работает HTML: содержимое тега <a>
не обязано совпадать с параметромhref
Иначе, мы не могли бы пользоваться такой удобной штукой, как текст, являющийся ссылкой.
Но Телеграм, к сожалению, не намерен ничего с этим делать
А почему Telegram должен что-то делать, если это уязвимость стороннего сервиса TGStat, позволяющая угнать аккаунт TGStat?
TGstat - частный пример, объединяющий обе эти фичи. Их баги - их дело, там и сессии не отображаются, не возможности их завершить и проч.
Телеграм понимает риски ссылок в мессенжерах, т.к. это не браузер. И проверить "а куда я попал" посложнее, поэтому и есть окно предупреждение на внешние ссылки, с него я и начал.
Но видимо Телеграм недооценивает возможности фишинга внутри мессенжера. Про это и статья, а не про угон аккаунта TGstat.
Сравнение домена в теге
<a>
и в параметреhref
- одна из проверок спам фильтров почты, именно с такими целями.
Их баги - их дело
Ключевой момент. Уязвимости Телеграма здесь нет.
И проверить "а куда я попал" посложнее
Не сложнее чем в браузере на мобилке.
поэтому и есть окно предупреждение на внешние ссылки
С чего вы решили что это сделано для безопасности? Там даже предупреждения нет никакого. Я вот, например, предположу что это сделано для удержания аудитории внутри ТГ. Как оспорите?
И самое главное: вся эта мишура никак не защищает обычного пользователя. Ну получает какой-нибудь условный СММ-щик ссылку на TGstat. Что ему до того, что там параметр будет отображаться?
Да и как вообще наличие параметра в GET запросе может привести в негативным последствиям в качественно спроектированном сервисе? Ответ - никак. Сервис из статьи спроектирован хреново - вот и весь ответ. Пишите им, а не в ТГ.
С чего вы решили что это сделано не для безопасности? Ссылку внутреннюю же показывает, а мог просто написать "вы хотите перейти во вне". Как оспорите? (1-1)
Да отстаньте вы от TGStat это лишь пример удачный) И да, бОльшая часть проблем у них. Но это пример, они точно не одни и мессенджер не должен помогать эксплуатировать подобное!
Наличие скрытого параметра в запросе, позволяет сделать отличную деанонимизацию что я и описал в статье. Без него отделить случайные переходы или переходы из разных источников было бы невозможно.
А вы в ТГ работаете, да?)
Так об этом и речь, что можно какие угодно теории строить.
Проблема именно в нём, а ваши притензии к ТГ высосаны из пальца.
Это плохо? Вы уже определитесь наконец в чём ваша претензия.
Нет.
Так наличие такого же уведомления на внутренние форматированные ссылки решает проблему!) Какую бы функцию в голове разработчиков оно не выполняло, по факту оно и поможет в борьбе с фишингом в ТГ.
Такое ощущение, что запоминается только концовка статьи) Речь про скрытые перенаправления пользователей внутри ТГ, да еще и с параметрами.
Деанонимизация в ТГ с помощью фишинга - это не плохо, ок. Вопросов больше не имею!)
Каким образом? Я вам уже написал о том, что пользователю (рядовому) нет никакого дела до параметров в ссылках.
Что значит скрытые? Какие они ещё должны быть для перехода внутри приложения? Каждый раз показывать окно с праметрами ссылок? Ну так см. п. 1.
Добро пожаловать в Интернет. Та же ситуация, как если вы зашли на сайт по ссылке, и там по oAuth дали доступ к своим персональным данным.
UPD: в ботах, конечно, стоит писать, что они поимеют доступ к вашим персональным данным, если это так (не пользуюсь).
Ссылка ведет не туда, окно с уведомлением позволяет это легко увидеть и заметить. Речь не про параметры.
Не с параметрами, а с ссылкой по которой действительно переходит пользователь, а не отображаемой. Речь не про параметры, см п. 1.
Ну тогда в целом не стоит делать механизмы защиты пользователей в браузере/приложении, и сказать всем "добро пожаловать в интернет". Мне концепция "дикого запада" не нравится, увы.
В фишинговых ботах такого уведомления не будет, если это на стороне самих ботов. Погодите, неужели вы предлагаете информировать пользователей о получении ботом данных аккаунта? А как же ваша концепция "Добро пожаловать в Интернет"? Это же противоречит пункту 3.
Добро пожаловать в Интернет. Вы в браузере с мобилки как ориентируетесь куда ссылка ведёт? Ну вот примените эти же навыки.
Добро пожаловать в Интернет. Вы в браузере с мобилки как ориентируетесь по какой ссылке вы переходите, а какая отображается?
Вы какими oAuth провайдерами пользовались? Предупреждают ли они о том, что вы поделитесь своими данными?
Погодите, неужели вы предлагаете информировать пользователей о получении ботом данных аккаунта?
Да. Как это и делают все адекватные oAuth провайдеры в этом самом Интернете. Я ботами в ТГ не пользуюсь - не знаю о чём там предупреждают.
С такой логикой спам-фильтры, детектирующие подмену отправителя, в почте не нужны, ведь можно же открыть исходник письма, и проверить самостоятельно все)
А то что люди не смогут, так и проблемы? Тут вы предлагаете тоже самое, не защищать людей, а пусть сами!
Ведь для защиты надо включить отображение целого окна, которое уже есть, слишком сложно)
oAuth это про аутентификацию и авторизацию, тут же механизм совершенно иной,данные передаются вместе с созданием диалога бот-клиент, для собственно того чтоб бот мог банально ответить. С oAuth ничего общего
Ведь для защиты надо включить отображение целого окна, которое уже есть, слишком сложно)
Какого окна?
Механизм тот же что и вход на сторонний сервис по ссылке с трекинг-параметром. Если вы отдали стороннему сервису инфу о себе, то это ваши проблемы. Если вас об этом не предупредил провайдер ваших данных, то это его косяк. ТГ не предупреждает, что отдаёт данные о вас, когда вы начинаете взаимодействовать с ботом? Ну так и пишите им именно об этом, а не о параметрах в ссылках.
у вас вторая ссылка не работает =)
Но наведя мышкой на ссылку, вы можете увидеть эту ссылку.
В клиенте телеграмма, вы ничего не увидите...
Получается, что если ссылку никак не проверить, то как многие советуют, лучше вообще ни по каким ссылкам не переходить?
Переходить в "песочнице". Т.е. в браузере, который никуда не залогинен и который не может запустить сторонние приложение, которые тоже могут быть залогинены.
"ссылку никак не проверить"
Проверить же. - навести мышку или скопировать-вставить куда-нибудь.
Подмену можно заметить только если задержать над ссылкой курсор
Я стараюсь всегда так делать именно по вышеописанной причине. И не только в Телеграме.
Кстати, не всегда спрашивает, хочешь ли ты перейти по ссылке, иногда сразу в браузере её открывает. Интересно, от чего это зависит?
То есть, от ссылок никак не защищены? Тогда, получается, лучше вообще ни по каким не переходить…
Мне кажется проблема не в технической части, а в расхождении между технической и человеческой-интуитивной-ожидаемой. Рик Эстли уже всех научил, что хттп ссылка на АКЦИЯ: 10л пепси-колы бесплатно и без смс может порадовать красивой песней. А вот в телеграмме этого ожидания еще нет. О том, что ссылки можно так переделывать знают только активные пользователи (не частые, кто ежедневно чатятся, а активные, что пользуются 90% функционала).
Вангую такое будущее:
Сначала через эту "уязвимость" иногда будут как-то кого-то ломать
Затем два варианта. Либо люди просто перестанут доверять рикролл ссылкам (будут относиться как к звонкам из "СБ Сбербанка"), либо это исправят.
Таким образом "детская" проблема расхождения интуитивного восприятия фичи и ее реальных технической возможностей исчезнет, они придут в соответствие. На это потребуется N лет.
Через эти N лет телеграм будет столь же популярен, как ICQ сегодня. Все будут общаться каким-то иным способом, где так же будут какие-то свои детские проблемы с безопасностью.
Моя программа развития человечества на ближайшее тысячелетие: Нужно некоторое общее соглашение-конвенция по UI/UX, достаточно общая, чтобы могла применяться и в старых и в новых технологиях, и при этом достаточно простая для енд-юзера, чтобы любая домохозяйка ее усвоила за два часа, чтобы человек, который пользовался 2 технологиями, начинал пользоваться 3ей - и в ней все было более-менее предсказуемо, хотя бы в критически важных вопросах (чтоб не удалить безвозвратно свои файлы, случайно нажав на большую зеленую кнопку и чтобы не слить какие-то свои данные-сессии-куки просто перейдя по безопасно выглядящей ссылке )
на ближайшее тысячелетие
А вы, я смотрю, оптимист.
Рик Эстли уже всех научил, что хттп ссылка на АКЦИЯ: 10л пепси-колы бесплатно и без смс может порадовать красивой песней. А вот в телеграмме этого ожидания еще нет.
Пользователи (большинство) не смотрят на URL и задумываются перед кликом. Так что разницы для пользователя браузера и клиента Телеги просто нет - на фишинговую ссылку перейдут что так, что так.
Абсолютно точно, как существуют стандарты USB-кабелей, WI-FI сигналов и много чего ещё, так и интерфейсам нужны определённые стандарты.
При переходе с почты яндекса на мейл был удивлён, что сочетания клавиш разные.
Казалось бы, самое базовое. Но это не самое страшное.
Самое страшное - это сайты государственных учреждений и битрикс.
Вот эти категорически не ориентирующиеся на привычные стандарты, самостоятельные ребята создают таких монстров, что им приходится давать пользователю ссылку на инструкции пользователей на десятки страниц и держать у себя отдельных людей, которые будут объяснять как пользоваться этим интерфейсом.
Инструкции они, конечно же, не поддерживают в актуальном состоянии.
В Linux/Unix достаточно хорошо все стандартизовано, но:
Дуракам закон не писан
Если писан - то не читан
Если читан - то не понят
Если понят - то не так
буквально вот наболевшее сегодня - на одном из серверов нашелся какой-то "R1Soft CDP Agent" для бекапов.... Где же его конфиг? B /usr/sbin/r1soft/conf/... ! А где же какой-то там agent-license.rtf ? А там же рядом, в sbin, /usr/sbin/r1soft/agent-license.rtf и ключи там же. А где же бинари? /usr/sbin/r1soft/bin/ !
Я сначала подумал, сервак же не мой, может просто админ был пьян и вот так вот поставил... загуглил. нет, блин! у них по документации это стандартное место установки! Все эти POSIXы, FHSы - побоку, они художники, они так видят! В доке четко сказано:
4.10.2. Requirements
There must be no subdirectories in /usr/sbin
.
В общем, прибил я этот бэкап агент и сделал шелл скрипты на синей изоленте. Подозреваю, что ребята с такими компетенциями, вчера в доту на винде играли, а сегодня пишут утилиты, которые на линуксе под рутом работают. Нафиг-нафиг.
Так что - стандарты, это хорошо, но это только возможность делать хорошо, а возможностью могут и не воспользоваться...
Офигеть! Почему на хабре столько защитников лживого, проприетарного, не свободного, не конфиденциального, коммерческого месенджера?
Потому что удобный
Удобства очень относительные, но товарищ Дуров понял как завлечь людей - соцсетью под видом мессенджера. Другие до этого так сразу просто не додумались.
Соцсетью? Публичных профилей нет, сети друзей нет, самой сути социальной сети нет.
Телеграм - продвинутый мессенджер? Да. Телеграм - соцсеть? Ни разу.
Создаваемые пользователями новостные группы, подписки на группы, лайки, модерация - это, на мой взгляд, хороший индикатор того, что это соц.сеть.
Новостные группы - это обыкновенные групповые чаты, которые есть почти в любом мессенджере. Реакции - тоже. Модерация - ACL - тоже. Каналы делают телеграм похожим на социальную сеть (как наличие буквы P делает кириллицу похожей на латынь), но одного лишь наличия каналов недостаточно. Основа соцсети - именно social network, социальный граф профилей. Как минимум для этого должна быть возможность иметь публичный профиль с публичным списком друзей, подписок, событий, каналов, ради чего соцсеть и выполняет свою важнейшую функцию - возможность нахождения и исследования этих социальных связей её участниками. Возможность вручную указать в своём био в телеграме список каких-то любимых каналов и/или людей (которые знать не знают об этом упоминании) - это не соцсеть. Это можно сделать в любом сервисе, который просто позволяет что-то написать в профиле.
Просто за почти 20 лет люди отвыкли от того, для чего создавались и использовались соцсети и многие определяют соцсеть как информационную помойку с фильтрацией по источникам. Так и вацап можно в соцсети записать, единственное значимое отличие будет в том, что там нельзя написать от имени канала.
Я соглашусь, что некоторых элементов присущих соцсетям в телеграм нет.
(Ну тоесть на самом деле всё есть - и информация о предпочтениях, и френдлисты/юзерграфы, в некотором скрытом профиле, доступном отдельным сотрудникам компании Телеграм, но не доступном пользователям приложения).
Да в чем вообще спор, да и причём ту завлечь соц сетью. Телеграм набрал таки аудитории как раз до всех этих разноцветных нововведений. А сам Дуров уже телегу с соц сетью сравнивал. Дело вообще в том что он предал обещания, предал философию, переобувался из-за бабла. А "переообуваются" чаще из-за бабла. Теперь, 2024 год, самое время для развития опенсорс GNU/Linux альтернатив всему. Есть удивительный мир свободы который непредпологает компромисс доверять закрытому, проприетарному по, но на хабре в комментариях мусолят кто как видит, соц сеть не соц сеть, #&@7!
Разве чем-то плохо разобраться в том какие плюсы/минусы/особенности есть у какого-то решения?
Тем-более что телеграмм не настолько уж проприетарен и закрыт - исходники тлг-десктоп открыты (и даже под GPL), альтернативные клиенты к нему есть, т.е. если просто нужно больше свободы - то не хватает только альтернативного открытого сервера телеграм...
Потому что, как показывает практика, "честный, свободный, конфиденциальный и некоммерческий" мессенджер мало кому нужен, кроме полутора гиков
Ты осознаешь что своим утверждением ты как бы утвердительно обрекаешь такую альтернативу? А ты кто, всевышний что может знать это наверняка? Врятли. Более того, "честный, свободный, конфиденциальный и некоммерческий" мессенджер нужен так то всем, и нет ничего чему бы могли "мешать" эти функции. Полагать обратное - это не замечать значения других категорий, приоритетов корпораций, рассматривать вещи обстрактно, а не последовательно в купе со всем (в том числе с экономической формацией)
Потому что это не столько болталка, сколько экосистема для новостей с доп фитчами. Причем самое важное - И удобная И весьма устойчивая к блокировкам.
Недавно разбирался с api для ботов. Понял, что в telegram не всё так идеально сделано, как кажется на первый взгляд.
Например, у ботов есть возможность запросить у пользователя реальный номер телефона (гарантируется, что будет отправлен тот телефон, к которому привязан аккаунт). Сделано в виде кнопки. Бот отправляет кнопку, пользователь нажимает, появляется запрос на подтверждение действия, отправляется контакт с реальным телефоном. Как же я удивился, когда после экспериментов понял (модифицируя код клиента), что телефон отправляет не сервер, а клиент. Стал копать в эту сторону, когда заметил, что с мобильного клиента номер отправляется в одном формате, а с десктопного в другом (по-разному расставлены дефисы и пробелы). Правда сервер все-таки частично контролирует совпадение цифр с реальным номером, но игра с кодами стран и внутренними форматами нумерации позволяет вносить существенные изменения (например, для РФ от одного клиента могут быть отправлены номера 79161112233, +79161112233, 89161112233, +89161112233 и пр.).
И визуально обе эти ссылки будут выглядеть одинаково!

Практически вся, боже упаси, телеграм-реклама с ссылками вида @name сто лет так и поступает. Даже проверять уже перестал.
Проблема телеграма в том, что если кто-то завладел твоим аккаунтом, то вернуть его - нереально. Техподдержки у телеграма нет (вернее, есть какая-то имитация, куда писать бесполезно). А код восстановления, если злоумышленник перехватил одну из сессий и очистил все остальные - приходит.. в телеграм. Тупее решения быть не может. То есть, код восстановления приходит тому, кто завладел сессией (а именно - вору). Браво, разработчики!
Ну и на закуску, мессенджер, которому много лет, до сих пор не умеет сортировать ленту так, чтобы каналы с включенными уведомлениями (зеленые цифры) всегда были наверху списка.
Насколько я помню, нельзя завершить другие сессии из той сессии, которая была создана меньше недели назад.
Насчёт восстановления утраченного аккаунта - здесь да, всё строго. Заводить аккаунт на номер телефона, к которому нет постоянного доступа - рискованно. Да и за реально существующими стоит следить: операторы отбирают номера через несколько месяцев неиспользования.
У меня двое знакомы практически в один день пострадали так - пришла от знакомого ссылка типа "моя дочь участвует в конкурсе, важен каждый голос, проголосуйте, пройдя по ссылке". И все - в тот же час их вышибло из телеги, а все попытки восстановить акк или написать в "техподдержку" не увенчались успехом.
Пробовали восстановить через веб - там по номеру телефона, но злоумышленник, видимо, запустил скрипт, который моментально обнулял новые сессии. Пробовали тот же способ, писали скрипт, который должен был по логину в веб переходить в меню и обнулять сессии, кроме текущей - не вышло. там в четвертом подменю это, максимум на третьем тебя скрипт злоумышленника выкидывает.
Одновременно с этим злодей разослал всем контактам пострадавших сообщение типа "займи 7500 на неделю". Но люди уже научены - перезванивали, страдальцы замучались объяснять, что это взлом.
В итоге через неделю примерно злодею надоело, он отключил скрипт и сработала процедура восстановления.
Вот поэтому и сделали неделю для новых сессий. Сейчас даже после успешного логина при благоприятном для взломщика стечении обстоятельств он неделю не сможет управлять другими сессиями. Также телега принудительно завершает новые (именно новые) сессии, в которых вскоре после логина запускаются специфические для ботов и нехарактерные для людей сценарии (что-то вроде получения данных всех чатов или рассылка автоматом). При этом, если номера телефона нет, восстановить доступ будет невозможно.
К сожалению, у тг очень много проблем, начиная с отсутствия платной поддержки даже на платном акке, а если угнали акк - шанс ровно 1 - своя широкая известность, чтобы кто-то из настоящих админов мог в ручном режиме что-то сделать. Тут у меня основная претензия - дайте мне нормальную, ЧЕЛОВЕЧЕСКУЮ поддержку пусть на платном акке, пусть это будет премиум-царь подписка, но чтобы поддержка была гарантирована.
Многих вещей нет и не планируется, тот же поиск улучшить - банально поиск по папке куда собрано несколько чатов? Хрен. А дыра, которую насколько я знаю даже не собираются закрывать с эмоциями если не участник чата и всего что вокруг, от чего чаты в которых я стою повально выключили эту в целом удобную, но крайне кривую поделку. В целом, всё что они вводят - обычно достаточно криво работает как минимум год.
Хотя я не спорю, что именно как мессенджер тг удобен во многом.
Фишинг «фичи» Телеграма