Разработчики выпустили обновление для клиентской части OpenSSH. Патч закрывает критическую брешь CVE-2016-0777, которая коснулась версий от 5.4 до 7.1. Уязвимость позволяет вредоносным серверам обвести клиент вокруг пальца и получить доступ к данным, содержащимся в RAM компьютера.
Критическую уязвимость обнаружили специалисты компании Qualys. Они заметили в клиенте OpenSSH недокументированную функцию roaming, которой никогда не было в серверной части кода. Хотя данная функция не используется, она включена по умолчанию для всех уязвимых версий клиента. В теории, roaming создавалась для того, чтобы SSH клиенты могли автоматически переподключаться к серверу, если вдруг возникли какие-то неполадки со связью, и соединение прервалось. Теперь выяснилось, что скомпрометированный хакерами сервер может ввести клиент в заблуждение, заставив его поверить, что он якобы поддерживает roaming.
Баг CVE-2016-0777 удастся эксплуатировать лишь в том случае, если жертва подключилась к серверу, который уже контролируют хакеры. То есть перед проведением атаки злоумышленникам придется сначала взять под свой контроль сервер. Использование аутентификации серверного хост-ключа предотвращает использование уязвимости через man-in-the-middle атаку, так что опасны только скомпрометированные серверы.
SSH ключи, по сути, являются аналогом паролей. Пользователь генерирует пару, состоящую из публичного и приватного ключа. В ходе первого подключения к удаленному серверу, пользователь предоставляет ему публичный ключ, а приватный ключ сохраняется на компьютере. Во время последующих подключений к серверу публичный ключ сервера и приватный ключ пользователя авторизуют друг друга.
Приватные ключи могут попасть в руки злоумышленников в силу того, что клиент OpenSSH имеет в памяти пользовательского ПК собственный буфер, в котором и хранит приватные ключи. Из-за бага в функции roaming, сервер может получить доступ к этому буферу.
Исследователи Qualys предупреждают, что уязвимость уже вполне может применяться хакерами, так что крупным сайтам и простым пользователям настоятельно рекомендуют сгенерировать новые SSH-ключи.
От проблемы в клиенте можно избавиться даже без установки обновления. Достаточно добавить «UseRoaming no» в файл конфигурации OpenSSH, отключив опасную функцию. Тем не менее, лучше все-таки обновиться, так как клиент OpenSSH содержит еще один, менее опасный баг: в коде все той же функции roaming нашли уязвимость переполнения буфера CVE-2016-0778.
Фото: pixabay.com