Группа исследователей Джорджтаунского университета и исследовательской лаборатории ВМС США проанализировали стойкость анонимной сети Tor к атакам, приводящим к отказу в обслуживании (DoS). Исследования в области компрометации сети Tor в основном строятся вокруг цензурирования (блокирования доступа к Tor), определения запросов через Tor в транзитном трафике и анализа корреляции потоков трафика перед входным узлом и после выходного узла Tor для деанонимизации пользователей. Представленное исследование показывает, что организация DoS-атак на Tor упускается из виду и при затратах в несколько тысяч долларов в месяц вполне реально создать условия для нарушения нормальной работы Tor, которые могут вынудить пользователей прекратить использование Tor из-за плохой производительности.
Исследователями предложены три сценария проведения DoS-атак: создание заторов между мостовыми узлами, разбалансировка нагрузки и создание заторов между релееями, для осуществления которых требуется наличие у атакующего пропускной способности в 30, 5 и 3 Gbit/s. В денежном эквиваленте стоимость проведения атаки на протяжении месяца будет составлять 17, 2.8 и 1.6 тысяч долларов, соответственно. Для сравнения, проведение DDoS-атаки в лоб для нарушения работы Tor потребует пропускной способности 512.73 Gbit/s и будет стоить 7.2 миллиона долларов в месяц.
Первый метод, при затратах в 17 тысяч долларов в месяц, через флуд ограниченного набора мостовых узлов с интенсивностью 30 Gbit/s снизит скорость загрузки данных клиентами на 44%. При проведении тестов оставалось в работе только 12 мостовых узлов obfs4 из 38 (не входят в списки публичных серверов каталогов и используются для обхода блокировки сторожевых узлов), что позволяет выборочно вывести остающиеся в работе мостовые узлы флудом. Разработчики Tor могут удвоить расходы на сопровождение и восстановить работу недостающих узлов, но атакующему достаточно будет увеличить свои затраты до 31 тысячи долларов в месяц для проведения атаки на все 38 мостовых узла.
Второй метод, который требует для атаки 5 Gbit/s, основан на нарушении работы централизованной системы измерения пропускной способности TorFlow и позволяет снизить среднюю скорость загрузки данных клиентами на 80%. TorFlow используется для балансировки нагрузки, что позволяет в рамках атаки нарушить распределение трафика и организовать его прохождение через ограниченное число серверов, вызвав их перегрузку.
Третий метод, для которого достаточно 3 Gbit/s, основан на использовании модифицированного Tor-клиента для создания паразитной нагрузки, что позволяет снизить скорость клиентских загрузок на 47% при затрате 1.6 тысяч долларов в месяц. При увеличении затрат на атаку до 6.3 тысяч долларов можно добиться снижения скорости клиентских загрузок на 120%. Модифицированный клиент вместо штатного построения цепочки из трёх узлов (входной, промежуточный и выходящий узел), применяет допустимую протоколом цепочку из 8 узлов с максимальным числом хопов между узлами, после чего запрашивает загрузку больших файлов и приостанавливает операции чтения после отправки запросов, но продолжает отправлять управляющие команды SENDME, инструктирующие входные узлы продолжать передачу данных.
Отмечается, что инициирование отказа в обслуживании заметно эффективнее, чем организация DoS-атаки методом Sybil при аналогичных затратах. Метод Sybil подразумевает размещение в сети Tor большого числа собственных релеев, на которых можно отбрасывать цепочки или урезать пропускную способность. При наличии бюджета для атаки в 30, 5 и 3 Gbit/s метод Sybil позволяет добиться снижения производительности для 32%, 7.2% и 4.5% выходных узлов, соответственно. В то время как предложенные в рамках исследования DoS-атаки охватывают все узлы.
Если сравнивать затраты с другими видами атак, то проведение атаки по деанонимизации пользователей с бюджетом 30 Gbit/s позволит добиться контроля за 21% входящими и 5.3% выходящими узлами и добиться охвата всех узлов цепочки в 1.1% случаях. Для бюджетов 5 и 3 Gbit/s эффективность составит 0.06% (4.5% входящих, 1.2% выходящих узлов) и 0.02% (2.8% входящих, 0.8% выходящих узлов).
@black_triangle_tg