Баг в реализации TCP в Linux позволяет перехватывать трафик

Серьезная уязвимость в реализации TCP в системах Linux, выпущенных с 2012 года (версия 3.6 ядра Linux), открывает для хакеров возможность определить хост, использующий для коммуникации данный протокол, и перехватить передаваемый трафик.

Исследователи из Университета Калифорнии в Риверсайде совместно с исследовательской лабораторией ВС США представили на симпозиуме USENIX Security Symposium свою работу под названием «Off-Path TCP Exploits: Global Rate Limit Considered Dangerous» («Эксплойт уязвимости TCP по «побочным каналам»: опасность ограничения АСК в TCP»), в которой объясняют природу уязвимости и способы ее устранения.

Патчи уязвимости разработаны для текущей версии ядра Linux, сообщил Цзи Юнь Киан (Zhiyun Qian), младший научный сотрудник в области компьютерных наук и консультант проекта. Соавторы отчета – Юи Цао (Yue Cao), Цзи Юнь Киян (Zhiyun Qian), Чон Чжи Ван (Zhongjie Wang), Тван Дао (Tuan Dao), Шрикант В. Кришнамурти (Srikanth V. Krishnamurthy) и Лиза М. Марвел (Lisa M. Marvel) — также работали над патчем для хостов клиента и сервера; решить проблему можно, существенно повысив номер ожидаемой последовательности (ACK), что усложняет эксплуатацию бреши.

Для эксплуатации уязвимости хакерам необязательно внедряться в поток трафика (то есть занимать позицию «человек посередине»), действий со стороны жертвы также не требуется.

«Уникальный аспект продемонстрированной нами атаки – чрезвычайно низкие требования к условиям, достаточным для эксплуатации, — заявил Киан. – Атаку может, по большому счету, провести любой человек – при условии, что его компьютер подключен к целевой сети, в которой возможен спуфинг IP-адресов. Единственное, что нужно в арсенале, — это пара IP-адресов (жертва-клиент и жертва-сервер) – а достать их вполне просто».

Уязвимая реализация TCP (CVE-2016-5696) используется в неизвестном количестве устройств под Linux, в том числе встроенных компьютерах, мобильных телефонах и других системах. Исследователи заявили, что на проведение атаки понадобится не более минуты; попытки эксплуатации завершились успехом в 88% — 97% случаев.

«В общем, уязвимость позволяет атакующему, использующему небольшой дефект в TCP («побочный канал»), выявить, какие их двух произвольных хостов сообщаются по TCP, — пишут исследователи. – Если такая связь обнаружена, хакер может выявить последовательность ACK в TCP, с обоих концов соединения; это, в свою очередь, дает хакеру возможность прервать соединение и внедрить произвольные данные в трафик».

По словам авторов исследования, проблема связана с низким лимитом АСК в Linux (100 в секунду), что делает возможным быстрый подбор номера сессии, передаваемого в пакете. Если выразиться более простыми словами, хакер может послать на сервер SYN-пакет с поддельным IP-адресом на IP-адрес клиента, подставив предположительный номер сессии, и 100 SYN-пакетами со своего IP-адреса. Если он получает в ответ 99 АСК, значит, 1 ACK был успешно отправлен клиенту, и номер сессии угадан. Таким образом, можно относительно быстро подобрать четырехзначный номер сессии и выдать себя за клиента на уровне TCP, чтобы затем отправить от его имени данные на сервер или прервать сессию, отправив тот же SYN.

See more at: Баг в реализации TCP в Linux позволяет перехватывать трафик https://wp.me/p3AjPO-4Ac