Раз­работ­чики Telegram не сидят без дела: в мес­сен­дже­ре с каж­дым годом все боль­ше фун­кций. Но некото­рые из них, если переф­разиро­вать «Собачье сер­дце», могут прев­ратить­ся «из клас­сной фичи в мер­зкий баг». Этот матери­ал — о любопыт­ной уяз­вимос­ти, с которой я стол­кнул­ся, рас­сле­дуя, как укра­ли 200 мил­лионов руб­лей в крип­те зимой 2025 года.
 

Корень проблемы

Сце­нарий прос­той. Пред­ставь, что ты откры­ваешь встро­енный в Telegram бра­узер и перехо­дишь по ссыл­ке на web.telegram.org. Поч­ти мгно­вен­но — без вво­да пароля, без под­твержде­ния вхо­да, без опо­веще­ний — ты ока­зыва­ешь­ся авто­ризо­ван. Вро­де ничего необыч­ного: ты ведь и так уже в Telegram! Но теперь пред­ставь, что зло­умыш­ленник вов­ремя перех­ватит этот токен. И исполь­зует его... ска­жем, в дру­гом бра­узе­ре. Или на дру­гом устрой­стве.

Что получа­ется: Telegram запус­кает сес­сию с широки­ми пра­вами, не тре­буя кла­уд‑пароля, не уве­дом­ляя поль­зовате­ля и не отсле­живая, где эта сес­сия исполь­зует­ся. Нет бра­узер­ной при­вяз­ки. Нет логов. Нет никаких огра­ниче­ний!

 

Реальный кейс: кража крипты

Я занима­юсь ИТ‑прос­вещени­ем в рам­ках незави­симо­го неком­мерчес­кого про­екта CakesCats, пос­вящен­ного циф­ровой гиги­ене, безопас­ности и ана­лизу сов­ремен­ных угроз. К про­екту обра­щают­ся люди с воп­росами и кей­сами.

Пос­тра­дав­ший в этом инци­ден­те при­шел ко мне в начале 2025 года через пуб­личные каналы. Он пос­тра­дал от кра­жи крип­товалю­ты на очень зна­читель­ную сум­му.

Пос­ле базово­го ауди­та я был силь­но впе­чат­лен, что сле­дов поч­ти нет. Такое встре­чает­ся край­не ред­ко, если не ска­зать, что я с таким встре­тил­ся впер­вые. Но я не собирал­ся сда­вать­ся и пос­тепен­но нашел 0-day в Telegram.

info

В про­цес­се рас­сле­дова­ния я исполь­зовал Mobile Verification Toolkit (MVT). Боль­шое спа­сибо его раз­работ­чикам и сооб­щес­тву за отличный инс­тру­мент!

Вот цепоч­ка событий, которую мне уда­лось вос­ста­новить:

  • Поль­зователь зашел на сайт и авто­ризо­вал­ся через Telegram Login Widget.
  • Через нес­коль­ко часов с крип­токошель­ков исчезли все средс­тва.
  • Seed-фра­зы хра­нились в Telegram (что, конеч­но, очень пло­хая прак­тика).
  • Ата­кующий, вос­поль­зовав­шись сес­сией, дос­тал содер­жимое заметок, не вхо­дя явно в Telegram, и получил дос­туп к крип­те.
  • Не было уве­дом­лений о необыч­ных новых сес­сиях или под­твержде­ний вхо­да — Telegram или девайс челове­ка «не заметил» кра­жу.
 

Технический контекст

Пос­тра­дав­ший исполь­зовал iPhone с iOS вер­сии 18.3 и бра­узер Safari. Так­же было извес­тно, что для авто­риза­ции в Telegram он исполь­зовал вид­жет из серии Telegram Widgets.

Я тща­тель­но про­верил все кли­ент­ские устрой­ства в поис­ках сле­дов и опро­сил поль­зовате­ля — он не находил никаких «потерян­ных фле­шек» и не заметил ничего подоз­ритель­ного. Ситу­ация ока­залась мак­сималь­но нетипич­ной: я не при­пом­ню слу­чая, ког­да не оста­лось бы ни еди­ного реаль­ного доказа­тель­ства. Обыч­но все куда про­ще: чья‑то нев­ниматель­ность, злой умы­сел кого‑то из близ­кого кру­га, вре­донос­ное ПО. Но здесь — пус­тота.

Ата­ка на macOS или iOS сама по себе тре­бует серь­езных уси­лий: это слож­ная опе­рация, которая неиз­бежно оставля­ет отпе­чат­ки — нес­тандар­тные зап­росы, сбои в пра­вах дос­тупа, а то и всплеск кра­шей в логах в клю­чевой день, ког­да про­исхо­дил пивотинг. Но и тут — ничего.

В тот момент в реги­оне, где находил­ся кли­ент, про­ходи­ла ИТ‑кон­ферен­ция, в том чис­ле с учас­тием телеком- и кибер­безопас­ных струк­тур. Вла­делец айфо­на оста­новил­ся в гос­тинице, которая при­нима­ла учас­тни­ков, — поез­дка была спон­танной. Это может быть сов­падени­ем, но так­же и инди­като­ром вы­соко­орга­низо­ван­ной ата­ки уров­ня APT. В таких слу­чаях высока веро­ятность, нап­ример, исполь­зования IMSI-catcher или подоб­ного обо­рудо­вания, а так­же непуб­личных экс­пло­итов.

Об­наружи­лась лишь одна инте­рес­ная деталь: в базовых логах iPhone (baseband logs) отсутс­тво­вали записи за два дня, ког­да пред­положи­тель­но и была про­веде­на ата­ка. За два с полови­ной месяца — это единс­твен­ное сле­пое пят­но.

Опять же, рут iPhone — это нет­риви­аль­ная задача, даже если это твой собс­твен­ный телефон. А тут неиз­вес­тные про­вели такую ата­ку уда­лен­но и заб­рали толь­ко содер­жимое заметок в Telegram! У кли­ента были еще и бро­кер­ские и бан­ков­ские при­ложе­ния, где тоже хра­нились день­ги. И ничего из это­го не тро­нуто.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    5 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии