Pull to refresh

Comments 34

Потому что имея физический доступ к устройству, пусть даже и с ограниченными правами вы можете сделать практически что угодно. В том числе получить hwid компа жертвы и получить 1:1 окружение для телеграмма.
Каким образом вы предлагаете отслеживать описанные вами фокусы на стороне сервера?

Но у меня реально вопрос, почему нельзя запросить 2FA хотя бы когда ОС или его версия меняется? Есть варианты, что можно скопировать папку у жертвы, но при этом не получить доступ к этому самому HWID.

Нет такого варианта, если у жертвы даже с ограниченными привилегиями запускается телеграмм; то вы точно так же сможете получить hwid, как это делает телеграмм.
А делать защиту от хакеров-школьников смысла нет. Единственный вариант — хранить ключи в платформозависимых хранилищах. Но тогда очень сильно усложняется кросс-платформенная поддержка.

Под MacOS можно хранить в Keychain, например.
Можно, но делается ли это у всех по умолчанию?
очень многие пользуются. телеграм, разумеется, нет.
Ничего не нужно отслеживать по hardware id и т.д. При возникновении 2х живых сессий с одним ID, предупреждать пользователя, что появились 2 одинаковые сесии, и они будут прибиты (прибит ключ сессии) если ОБЕ не скажут что так и было задумано, прямо вот сейчас немедленно. 2 живые сессии — это означает 2 одновременных, живых TCP соединения на бэкенд. Телеграм вроде использует polling, но и persistent connections должен же использовать, поскольку polling это жуть как накладно.
По-моему там как-то так и делается.
Да, очень даже хороший способ.

Осталось выяснить, как же определять факт смены устройства или хотя бы ос (с учетом того, что папку скопировал злоумышленник). надо найти такой параметр, который самодельный клиент не сможет подменить на "старый" и это не айпишник

Теоретически можно заморочиться с антиотладкой + hardware id. Но это тот самый security through obscurity. Поэтому ответ: никак. Особенно с учётом того что телеграмм — это open source.

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

То что существует много таких программ не говорит о тос что это правильный способ. Что мешает хакеру подделать окружение?

Может, через проверку числового хэша, который формируется, например, из действий (сумма/разность/произведение/частное) с данными диска/материнки/проца (серийники, да хоть тактовая частота)? Я вижу такой путь — в программе формируется хэш, записывается. При каждом запуске сверяется (в фоне, чтобы быстрее запустить приложение) проверяется. Если не совпадает, закрывает приложение, стирает хэш и отправляет на авторизацию.

придумать можно многое, но проблема в том, что


  1. узнать эти данные достаточно легко (если ключ будет клиентозависимый, то алгоритм формирования все равно реверснут)
  2. клиент не будет ничего стирать и закрывать, т.к. клиент у злоумышленника может быть самодельный
уж сколько раз твердили миру, в домашней папке ничего дополнительно не шифруется. Если кто-то посторонний получил к ней доступ, то вам в любом случае крышка. Подход телеграма тут ничем не отличается, например, от GnuPG.

Если заботитесь о безопасности, то настройте её шифрование при выключении, переходе в спящий режим и т.п. Для этого есть куча проверенных инструментов во всех ОС.
Ещё б на PC были ограничения по доступу для программ в домашнюю папку… А то любая скомпроментированная программа может утащить и перелать всё что угодно.
В приложении Telegram есть возможность установить пароль на приложение при входе в него. Соответственно, при копировании папки приложение точно так же запросит пароль.
как вариант

для каждого клиента геренрить id в процессе авторизации, выдавать сообщение/запрещать одинаковые id с разных ip, отключать с сервера, если у профиля пользователя появился новый id без процесса аутентификации (поправили id в клиенте который уже аутентифицировался ранее)

но вообще хранить логин/пасс/ключбд в хранилищах ключей для тех ОС где это возможно
— А этот ваш замок для серверного корпуса защитит от злоумышленника с ломом?
— Ну вообще, наличие людей с ломами в вашей серверной не входит в компетенцию фирмы Compaq

Не нашёл в статье упоминания о необходимости полностью повторять окружение. По этому просто скопировал папку клиента с виндового клиента в виртуалку. Когда оба эти клиента оказались онлайн одновременно — в обоих вылетела сессия.


Что до повторения окружения — сейчас мне лень это делать, но я пробовал несколько лет назад клонировать виртуалку с телеграммом и тогда они действительно оба работают, но только до тех пор, пока выходят в сеть с одного ip. Если будут разные ip — обе сессии вылетят в пределах 5 минут.

Я пробовал сам, работает, копируется папка tdata, скачивается exe файл Telegram Portable, к ней рядом кидается папка tdata и всё работает.

У меня telegram desktop.
А portable версия на то и портативная, чтобы везде работать.
Удивляюсь вам. Берёте версию программы, которая и предназначена для без проблемного переноса между компьютерами, а потом удивляетесь что она, внезапно, выполняет свои функции.
На портативную версию можно поставить пин код, он будет запрашиваться на каждом компьютере.

На портативную версию можно поставить пин код, он будет запрашиваться на каждом компьютере.

Вот вы и сами попали в ловушку.
Пин для Desktop/Telegram перебирается с помощью JtR меньше минуты.

Нужно ставить не пин, а пароль. В faq Telegram предупреждают, что ставить нужно сильный pass, но не принуждают этого делать.
Вы неправильно меня поняли. Папку берем от обычной версии, а экзешник от портативной.
Возможно портабельная отличается от обычной только наличием ярлыков и установщиком? Сам обычной версией не пользовался, не скажу точно.

Зачем что-то копировать если можно просто встать сзади и читать все что происходит на мониторе? Ну или как минимум запустить тот же телеграм прямо на том же компьютере и прочитать все что там пишут? Все же защита должна быть адекватной а не охватывать маловероятные варианты. Получив доступ к домашней папке так можно и сессии браузеров утащить и ключи gpg и еще много чего интересного. Если нужно изолировать окружение то пользователь сам должен позаботиться хотя бы о шифровании. Если он не доверяет каким-то приложениям, то пусть запускает их в изолированном окружении.

Удивляюсь тому, насколько все безразличны к данной проблеме, а это действительно легко решаемая, но серьезная проблема. В качестве решения достаточно при обнаружении двух соединений по одной сессии у обоих выводить запрос на ввод 2FA.
Почему здесь большинство людей придерживаются мнения, что если не закрывает на 100%, то и делать ничего не надо? Ведь какое бы решение не было реализовано, оно в любом случае, даже если не закрывает всех кейсов, то по крайне мере сокращает количество случаев взлома.

Чтобы 2FA запросить оно предварительно должно быть включено. А вообще да странно что банальные угрозы не закрыты.

Неуловимый Джо.

JtR — написано, обходится нормальным паролем. Всё, больше тут обсуждать нечего.

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

Более того, описанный вами кейс в случае Portable версии, так и вовсе не баг, а фича.

Автор просто решил похайпится на модной теме, вот и все.
В «Телеграм» напрашивается 3FA — с дополнительным паролем или кодом, которые высылались бы на имейл. И только потом можно было бы сбросить аккаунт.

Нынешняя реализация 2FA достаточно уязвима, если вас захотят взломать. Нужно лишь иметь доступ к СМС, потом сообщить, что якобы не знаешь пароль для 2FA, а затем через т.н. фрод обмануть сервера, которые разрешат тебе сбросить аккаунт или даже сделают это… принудительно на стороне жертвы.

Кстати, про уязвимость 2FA в Telegram, которая на самом деле не двухфакторная аутентификация, а двухшаговая верификация (2SV), уже рассказывали на «Хабре» habr.com/ru/post/357108
Sign up to leave a comment.

Articles