Группа исследователей из Грацского технического университета разработала метод атаки по сторонним каналам SnailLoad, позволяющий определять обращение пользователя к тем или иным сайтам или выявлять просмотр определённых видеороликов на YouTube.
Код серверной части, используемой для проведения атаки опубликован на GitHub под лицензией MIT.
SnailLoad не требует совершения MITM-атаки, атакующему не нужно перехватывать транзитный трафик пользователя. Для осуществления атаки достаточно, чтобы жертва открыла в своём браузере подконтрольную атакующему страницу, которая инициирует загрузку с сервера атакующего больших файлов или изображений. Выполнения JavaScript-кода не требуется, достаточно организовать непрерывный поток трафика между жертвой и сервером атакующего.
Aнализ производится на стороне сервера атакующего и базируется на изменении задержек доставки пакетов в зависимости от параллельно выполняемых на системе пользователя запросов к другим сайтам. Метод отталкивается от того, что из-за неравномерности пропускной способности каналов связи между пользователем и провайдером и между шлюзом провайдера и сайтом, разные сетевые соединения влияют друг на друга. Так как узким местом является канал подключения клиента к провайдеру ("последняя миля"), характер отправки пакетов на сервер атакующего меняется в зависимости от другой сетевой активности жертвы.
![](https://webcf.waybackmachine.org/web/20240706065911/https://habrastorage.org/getpro/habr/upload_files/a2c/52b/88d/a2c52b88dcd24e59b7d0300b62346bcb.png)
Точность определения сайта в SnailLoad зависит от типа подключения пользователя к провайдеру и составляет 62.8%.
Источник: OpenNET.