The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Уязвимость в пакетном менеджере APT, позволяющая подменить з..."
Отправлено opennews, 22-Янв-19 23:23 
В пакетном менеджере APT выявлена (https://justi.cz/security/2019/01/22/apt-rce.html) уязвимость (CVE-2019-3462 (https://security-tracker.debian.org/tracker/CVE-2019-3462)), позволяющая злоумышленнику инициировать подмену устанавливаемого пакета, если атакующий получил контроль за зеркалом репозитория или способен вклиниться в транзитный трафик между пользователем и репозиторием (MITM-атака).

Проблема вызвана некорректной проверкой полей в коде обработки HTTP-редиректов, что позволяет атакующему подставить собственное содержимое в данные, передаваемые в рамках HTTP-сеанса (по умолчанию Debian и Ubuntu используют при обращении к репозиторию HTTP, а не HTTPS, полагая (https://whydoesaptnotusehttps.com/), что достаточно цифровой подписи метаданных и проверки соответствия размера пакета).


Выявленная уязвимость позволяет подменить передаваемый пакет, после чего APT воспримет его как полученный с официального зеркала и инициирует процесс установки. Через включение во вредоносный пакет скриптов, запускаемых во время установки, атакующий может добиться выполнения своего кода в системе с правами root.


Для загрузки данных из репозитория APT запускает дочерний процесс с реализацией конкретного транспорта и организует взаимодействие с этим процессом при помощи простого текстового проткола с разделением команд пустой строкой. Суть проблемы в том, что обработчик транспорта HTTP при получении от HTTP-сервера ответа с заголовком "Location:" запрашивает у родительского процесса подтверждение редиректа, целиком передавая содержимое этого заголовка. Из-за отсутствия чистки передаваемых спецсимволов, атакующий может указать в поле "Location:" значение, содержащее перевод строки  (напрмер, "Location: /payload%0A%0A201%20URI%20Done...").


Так как данное значение будет декодировано и передано через канал связи с родительским процессом, атакующий имеет возможность симулировать иной ответ от обработчика транспорта HTTP и после блока "103 Redirect" подставить фиктивный блок "201 URI Done" с сопутствующими фиктивными метаданными. Например, если при запросе пакета "cowsay_3.03+dfsg2-3_all.deb"  атакующий подставит ответ с "Location: /payload%0A%0A201%20URI%20Done%0AURI%3A%20http%3A//deb.debian.org ... Checksum-FileSize-Hash%3A%2020070%0A", такая подстановка приведёт к передаче родительскому процессу следующего блока данных:

   103 Redirect
   URI: http://deb.debian.org/debian/pool/main/c/cowsay/cowsay_3.03+...
   New-URI: http://deb.debian.org/payload

   201 URI Done
   URI: http://deb.debian.org/payload
   Filename: /var/lib/apt/lists/deb.debian.org_debian_dists_stretch_Release.gpg
   Size: 20070
   Last-Modified: Tue, 07 Mar 2017 00:29:01 +0000
   MD5-Hash: 27967ddb76b2c394a0714480b7072ab3
   MD5Sum-Hash: 27967ddb76b2c394a0714480b7072ab3
   SHA256-Hash:  858d5116a60ba2acef9f30e08c057ab18b1bd6df5ca61c233b6b7492fbf6b831
   Checksum-FileSize-Hash: 20070


в котором все данные после строки "New-URI: http://deb.debian.org/payload" были закодированы в переданным злоумышленником ответе "Location:...".


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

Родительский процесс воспримет подставленный атакующим код ответа, найдёт хэш в базе и посчитает, что загружен  пакет для которого имеется корректная цифровая подпись, хотя на деле значение поля с хэшем  подставлено в канал связи с родительским процессом атакующим, а переданный файл имеет совсем другой хэш. Загрузка вредоносного пакета производится через прикрепление  пакета к файлу Release.gpg, который имеет предсказуемое местоположение в ФС.

Уязвимость устранена выпуске APT 1.4.9, а также в обновлениях пакетов в Ubuntu (https://usn.ubuntu.com/3863-1/) и стабильных ветках Debian (https://lists.debian.org/debian-security-announce/2019/msg00...) (Jessie и Stretch), но в экспериментальных ветках Debian пока остаётся неисправленной (https://security-tracker.debian.org/tracker/CVE-2019-3462).

Если имеется опасность проведения целевых MITM-атак в  качестве обходного пути защиты можно при выполнении операций с apt/apt-get явно отключать поддержку редиректов  (например, "apt -o Acquire::http::AllowRedirect=false update"). Подобное отключение может привести к нарушению работы автоматического проброса на ближайшее зеркало, поэтому в sources.list следует заменить security.debian.org на конкретное зеркало (например, cdn-fastly.deb.debian.org).

URL: https://justi.cz/security/2019/01/22/apt-rce.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=50007

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру