Разделы

Безопасность Пользователю Интернет Интернет-ПО Техника

Популярный торрент-клиент 14 лет позволял заражать ПК пользователя по вине разработчиков

В популярном торрент-клиенте qBittorrent на протяжении 14 лет присутствовала опасная уязвимость удаленного выполнения кода. Она позволяет незаметно заразить компьютер пользователя и вести за ним наблюдение. Разработчики без лишнего шума закрыли брешь.

14-летняя брешь в qBittorrent

Разработчики устранили опасную уязвимость в популярном торрент-клиенте qBittorrent, которая позволяла злоумышленникам проводить атаки типа MITM (Man-In-The-Middle; атака просредника) на пользователей программы, пишет Bleeping Computer.

Примечательно, что фрагмент кода, содержащий ошибку, приводящую к уязвимости, был принят разработчиками qBittorrent 6 апреля 2010 г. С того момента и по 28 октября 2024 г., когда брешь была закрыта с выходом версии 5.0.1, прошло более 14 лет. Все эти годы инструмент для обмена файлами по p2p-протоколу BitTorrent мог применяться хакерами, к примеру, для заражения его пользователей вредоносным ПО.

Следует отметить, что разработчики qBittorrent закрыли опасную брешь без особого шума, не предупредив пользователи и не опубликовав информацию о ней в базе данных общеизвестных уязвимостей, как это принято в отрасли разработки ПО.

Без контроля валидности SSL-сертификата

Уязвимость, обнаруженная специалистами компании Sharp Security, затрагивает менеджер загрузки (DownloadManager) – компонент qBittorrent, используемый программой для решения ряда задач, связанный с получением данных из интернета. В частности, он применяется для получения результатов поиска в Сети через встроенный движок, автоматической загрузки .torrent-файлов, подтягивания фавиконов и подписок из RSS. Для загрузки файлов, описание которых «упаковано» в .torrent-файл (непосредственно файлов, которыми ведут обмен пользователи торрент-трекера по протоколу BitTorrent), менеджер загрузки не применяется.

Заразиться вредоносным ПО через торрент-клиент можно даже не скачивая торренты

Основная проблема qBitTorrent, заложенная в него разработчиками (возможно, непреднамеренно) заключается в том, что менеджер загрузки торрент-клиента при установлении соединения с сервером готов принять совершенно любой сертификат безопасности, в том числе подделанный злоумышленником. Такой сертификат позволяет его владельцу вторгаться в процесс обмена данными между торрент-клиентом и удаленным сервером, имея возможность не только анализировать трафик, но и модицифировать его. Причем ни сервер, ни клиент в этом случае подмену не заметят.

SSL/TLS-сертификат удостоверяет подлинность веб-сайта и позволяет использовать зашифрованное соединение между веб-браузером и сервером. Такие сертификаты выдаются доверенными центрами сертификации (Certification Authority; CA). Если сайт не имеет валидного сертификата (выдан CA, срок действия не истек) или сертификата вообще, браузер, как правило, недвусмысленно предупреждает пользователя об опасности посещения этого веб-ресурса.

Как отмечают в Sharp Security, в реализации класса (в смысле типа данных в объектно-ориентированных языках программирования) компонента DownloadManager qBittorrent все ошибки валидации SSL-сертификата целенаправленно игнорировались, следует из коммита 9824d86 в официальный репозиторий проекта на GitHub. Вероятно, в 2010 г. разработчики решили добавить поддержку загрузки по безопасной версии протокола HTTPHTTPS – и не стали заморачиваться реализацией отсеивания подключений к серверам, не имеющим валидного SSL-сертификата.

Как злоумышленники могли использовать уязвимость

В работе поискового движка qBittorrent задействован интерпретатор языка программирования Python. Если операционной системой пользователя является Microsoft Windows, а Python необходимой версии не установлен, то программа предложит автоматически загрузить и запустить его инсталлятор из Сети. Проблема в том, что URL инсталлятора встроен непосредственно в исходный код торрент-клиент и, таким образом, злоумышленник благодаря поддельному сертификату может этот URL подменить любым другим, в том числе ведущим к вредоносному файлу. В результате пользователь, уверенный, что устанавливает Python, на самом деле запустит на своем компьютере троян или другой тип вируса.

Похожая проблема затрагивает механизмы обновления приложения и RSS-подписок на торренты в qBittorrent. Кроме того, qBittorrent периодически самостоятельно загружает и распаковывает сжатую базу данных GeoIP для геолокации по IP-адресу из источника, прописанного в коде клиента. Подмена указанного разработчиками URL на собственный позволяет злоумышленнику подсунуть клиенту специальным образом модифицированные файлы и добиться переполнения памяти на целевой машине.

В Sharp Security отмечают, что эту уязвимость удобно использовать для слежки за пользователями qBittorrent, не вызывая у них подозрения и не применяя сложных и дорогостоящих в применении методов вроде QUANTUM.

Специалисты Sharp Security рекомендуют использовать альтернативные торрент-клиенты с открытым исходным кодом, которые не имеют и не имели подобных брешей, например, Deluge и Transmission.

Несколько фактов о qBitTorrent

qBitTorrent – это свободный кроссплатформенный клиент файлообменной сети BitTorrent, автором и основным разработчиком которого с 2006 г. является Кристоф Дюме (Christophe Dumez).

Разработчики qBitTorrent позиционируют свой продукт в качестве свободной альтернативы популярнейшему торрент-клиенту uTorrent.

Код торрент-клиента написан на языке программирования C++ и распространяется на условиях лицензии GPLv2+. Основной графический интерфейс программы реализован с использованием библиотеки Qt, веб-интерфейс базируется на Ajax.

Среди функций клиента, обеспечивших ему популярность, помимо кроссплатформенности и современного Qt-интерфейса, также фильтрация IP, интегрированный поисковый движок, поддержка RSS.

В сентябре 2023 г. CNews писал о том, что злоумышленники используют qBittorrent для тайной добычи криптовалюты Monero на компьютерах своих жертв. Внедрение майнеров становится возможным при неправильной настройке торрент-клиента конечным пользователем.

Дмитрий Степанов