Пользователям клиентов мгновенного обмена сообщениями, таких как Pidgin, Adium и прочих, использующих библиотеку libotr, настоятельно рекомендуется обновиться до текущих версий в связи с опасной находкой: в этой реализации криптопротокола OTR обнаружена уязвимость, которую можно использовать в целевых атаках на раскрытие зашифрованных коммуникаций.

В минувшую среду разработчики OTR выпустили libotr 4.1.1, закрыв брешь целочисленного переполнения, эксплуатируемую удаленно. Успешный эксплойт вызывает крэш и открывает возможность для удаленного выполнения кода на скомпрометированном компьютере.

Данная уязвимость была приватно раскрыта 18 февраля исследователями из немецкой компании X41 D-Sec. Участники проекта OTR сразу же подтвердили наличие бреши; соответствующий патч появился 3 марта, детали уязвимости были опубликованы неделю спустя.

Глава X41 Маркус Вервье (Markus Vervier) заявил Threatpost, что патч был протестирован и надежно закрывает уязвимость. IM-службы ChatSecure, Adium и Pidgin уже раздали обновления на свои клиенты.

Вервье не преминул отметить, что использовать данную брешь непросто: атакующему придется послать на уязвимый клиент OTR-сообщение большого размера. В своем информационном бюллетене исследователи поясняют, что из-за некорректной обработки больших (свыше 5,5 ГБ) сообщений контролируемые атакующим данные записываются в хип за пределами допустимого диапазона. Такая атака не требует участия пользователя или предварительной авторизации.

«Эксплойт в данном случае непрост, так как он требует отправки жертве нескольких гигабайт данных и использования передовых технологий оптимизации кучи, — комментирует Вервье. — Тем не менее с использованием уплотненных Jabber-потоков и фрагментированных OTR-сообщений это вполне осуществимо. Мы добились результата примерно за 10 минут при тестировании на LAN-сети с трафиком порядка 300 Мбит/с. На высокоскоростных интернет-каналах это, полагаю, займет около 1-2 часов. При этом на пользовательском интерфейсе нет никаких визуальных изменений, которые можно было бы отследить».

Поскольку эксплойт требует передачи большого количества данных, Вервье полагает, что вероятность масштабирования таких атак исключена. «Сама природа OTR и высокий статус его пользователей, которые зачастую вынуждены скрываться, говорят в пользу целевых атак, — размышляет эксперт. — OTR используют многие участники ИБ-сообщества и другие известные личности, такие как Сноуден. С учетом того, что жертве нужно передать большой объем данных, массовые атаки или сетевые черви в данном случае вряд ли возможны».

PoC-эксплойт, разработанный немецкими исследователями, использует тот факт, что libotr поддерживает и собирает воедино фрагментированные OTR-сообщения. В ходе экспериментальной атаки весь поток был разбит на 275 отдельных сообщений размером по 20 МБ. При использовании высокоскоростного канала отправка сообщения такого типа на Pidgin-клиент заняла лишь пару минут.

«Нам потребовалось 275 сообщений, так как используемый в ходе тестирования серверный Jabber-софт (Prosody IM) был не в состоянии обрабатывать крупные сообщения надлежащим образом, — поясняет Вервье. — OTR поддерживает фрагментацию сообщений; это позволило отправить множество фрагментов, которые после получения последнего были собраны в одно очень большое сообщение. Такие фрагменты можно даже посылать в течение нескольких дней. Они будут сохраняться, пока клиент работает (а он может работать долго, так как пользователи ныне не любят выключать свои машины и телефоны)».

В итоге клиент, по словам Вервье, откажет, когда перезапись дойдет до неотображенной области памяти. Используя перераспределение хипа, исследователь смог раздуть его емкость до 4 ГБ и переписать указатели функций и аргументы для перехвата потока управления.

«Написанный нами PoC вызывает крэш, — резюмирует Вервье. — Нам удалось также подтвердить возможность удаленного исполнения кода при использовании передовых техник эксплуатации. Если эта цель достигнута, открывается доступ ко всем чат-коммуникациям и секретным ключам. Кроме того, можно получить и другие данные — например, документы, хранящиеся в атакуемой системе».

Категории: Уязвимости