- PVSM.RU - https://www.pvsm.ru -

Китай и Иран используют replay-атаки для борьбы с Telegram

В баг-трекерах популярных MTProxy-серверов mtg [1] и mtprotoproxy [2] появились сообщения, о том что в Иране и Китае надзорные органы научились каким-то образом выявлять и блокировать телеграм-прокси, даже испольщующие рандомизацию длины пакета (dd-префикс).
В итоге выяснилась занятная история: для выявления прокси-серверов MTProxy злоумышленники использовали replay-атаки.

Атака повторного воспроизведения (replay) — атака на систему аутентификации путём записи и последующего воспроизведения ранее посланных корректных сообщений или их частей

(wiki [3])

Пакеты установления соединения с proxy «записываются» третьим лицом, и через некоторое время производится попытка подключения, при этом используется сохраненный заголовок пакета вместе с «испорченными» данными.
Если посмотреть на структуру пакета MTProxy
image(картинка взята вот из этой [4] статьи)

то получается примерно представить, как оно может работать:
прокси-сервер анализирует заголовок пакета, признает его валидным, и отправляет дальше непосредственно на сервера Telegram. Сервера Telegram принимают пакет, но отвечают на него сообщением об ошибке, которое пересылается прокси-сервером обратно, и детектировать его можно просто по длине пакета (пакеты с сообщение об ошибке гораздо короче чем нормальные).
На основании этого и происходит блокировка адреса сервера.
Разработчики обоих прокси-серверов уже выпустили обновления. При соединении выполняется проверка, что коннектов с таким auth_key_id (по сути дела представляющим соой 64-битное случайное число) еще не было:
github.com/alexbers/mtprotoproxy/commit/4cae6290b9529485125366771005460309a835b5 [5]
github.com/9seconds/mtg/commit/33852ca4818c365778edccb7441a11decff90009 [6]

В дополнение ко всему, несколько дней назад в российских сетевых сообществах и телеграм-каналах появилась весьма занимательная информация, что наш родной РКН начал использовать открытые прокси для проверки публичных mtproxy-серверов. С одной стороны, это вполне логичный шаг, т.к. со своих адресов заниматься такими проверками они не хотят или не могут, потому что их диапазоны подсетей станут быстро известны владельцам серверов, а с другой стороны, во многих случаях «публичные прокси» представляют собой взломанные soho-роутеры, что делает ситуацию весьма пикантной.
Подробную статью об этом [7]можно прочитать на tjournal.

Энтузиасты уже разработали скрипт [8], автоматически получающий актуальный список открытых прокси и применяющий правила ipset для эффективной фильтрации адресов из этого списка:
В дополнению к скрипту идет краткая инструкция [9] по его использованию, написанная очень живым языком.

Автор: Whuthering

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/317839

Ссылки в тексте:

[1] mtg: https://github.com/9seconds/mtg

[2] mtprotoproxy: https://github.com/alexbers/mtprotoproxy

[3] wiki: https://ru.wikipedia.org/wiki/%D0%90%D1%82%D0%B0%D0%BA%D0%B0_%D0%BF%D0%BE%D0%B2%D1%82%D0%BE%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D0%BE%D1%81%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F

[4] вот из этой: https://telegra.ph/telegram-blocks-wtf-05-26

[5] github.com/alexbers/mtprotoproxy/commit/4cae6290b9529485125366771005460309a835b5: https://github.com/alexbers/mtprotoproxy/commit/4cae6290b9529485125366771005460309a835b5

[6] github.com/9seconds/mtg/commit/33852ca4818c365778edccb7441a11decff90009: https://github.com/9seconds/mtg/commit/33852ca4818c365778edccb7441a11decff90009

[7] статью об этом : https://tjournal.ru/tech/96983-roskomnadzor-obvinili-v-ispolzovanii-proksi-serverov-vedomstvo-bolshe-goda-blokiruet-proksi-servera-telegram

[8] скрипт: https://drive.google.com/open?id=1tz_IeLde-zQX-USxCVMuMKjJirVbHKi7

[9] краткая инструкция: https://drive.google.com/open?id=1WP997XLJAZU-Tn7QphZP2y4uvFlRRFBq

[10] Источник: https://habr.com/ru/post/452144/?utm_campaign=452144