О сниферах в московском метро и бранчах блоклистов РКН
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ansible
lg
poex
scanner-pcap
traceroute
.gitignore
Makefile
README.md
atlas-vis-02.ipynb
atlas-vis-03.ipynb
atlas-vis-04.ipynb
atlas-vis-05.ipynb
atlas-vis.ipynb
fetch
s5tg-0x-full.jsonl.xz
the_fastest_draw.png

README.md

Данные к докладу на CryptoInstallFest 5 (22 сентября 2018).

tl;dr

Предположительно:

  • МаксимаТелеком или аплинки (МТС? Мегафон?) слушают трафик в поисках Socks5 проксей
  • по результатам "прослушки" ходит сканер
  • некоторые провайдеры блокируют IP адреса раньше, чем РКН добавляет адрес в "общие" выгрузки

славный график

Детали

При использовании Socks5 для соединения с Telegram из сети MT_FREE Московского Метро (провайдер МаксимаТелеком) через полчаса-час на адрес Socks5 приходит сканер с адреса 178.176.30.221 из "клиентской" сети Мегафона, судя по PTR записям вида clients-221.30.176.178.misp.ru..

Сканер портов проверят доступность TCP порта полу-открытым сканированием (SYN, SYN-ACK, RST). После успешной проверки сканер пытается установить Socks5 соединение с сервером из подсети Telegram 91.108.56.186:443 и произвести обмен данными с ним.

Через час-полтора после прихода сканера НЕКОТОРЫЕ провайдеры начинают блокировать доступ к просканированному серверу: МГТС, МТС, Мегафон, Yota, Билайн и др.

Ещё через час-полтора IP адрес появляется в "выгрузке" и "дельтах", при этом отметка времени ts у IP-адреса соответствует времени появления в выгрузке и "отстаёт" от времени начала блокировки на выделенных провайдерах.

Механика эксперимента

  • установить haproxy, перенаправляющий Socks5 и TLS трафик на разные бэкенды (nginx с preread работать не будет, т.к. он читает минимум 5 байт, а первый пакет хэндшейка Socks5 — 3 или 4 байта)
  • выделить зонды RIPE Atlas в России, которые находятся в сетях, фильтрующих по списку РКН
  • запустить измерение SSLCert на сервер с этих зондов с периодичностью 3 минуты для проверки доступности TCP порта
  • перевести телефон в оффлайн
  • сконфигурировать Telegram на использование сервера
  • подключиться к сети MT_FREE в метро, сделать круг по кольцевой линии, отключиться от MT_FREE
  • удалить прокси-сервер из Telegram клиента (чтоб случайно не подключиться к нему через оператора сотовой связи или другого провайдера)
  • подождать несколько часов и завершить измерение через RIPE Atlas

Таймлайн эксперимента s5tg-01

  • 00:32 приход сканера
  • 00:47 наблюдается блокировка на Yota
  • 00:52 наблюдается блокировка на МГТС
  • 01:38 в выгрузке с updateTime="2018-09-20T01:38:00+03:00" всё ещё нет блокировки
  • 01:57 блэкхол на looking glass Beeline
  • 03:30 <ip ts="2018-09-20T03:30:00+03:00">45.56.118.171</ip>

Графики по другим эксприментам с данными RIPE Atlas:

Спасибо