LINUX.ORG.RU

Исправление критической уязвимости в Alpine Linux

 ,


0

0

В apk, стандартном пакетном менеджере Alpine Linux, были обнаружены несколько уязвимостей. Наиболее серьезная из них позволяет произвести исполнение вредоносного кода на машине пользователя.

Пакеты Alpine распространяются как файлы .apk, которые по сути являются архивами tar.gz. Когда пакетный менеджер apk получает пакеты, он распаковывает их содержимое в корневую директорию файловой системы до того, как проверяет их подлинность. Во время распаковки архива каждый файл получает суффикс .apk-new. После, когда apk обнаруживает несоответствие контрольных сумм, пакетный менеджер производит удаление всех файлов.

Благодаря особенностям удаления символических ссылок существует возможность сделать файл доступным и после «удаления» файлов пакетным менеджером.

Тем самым существует возможность записи произвольного файла в выбранную директорию. Используя директории вида /etc/apk/commit_hooks.d/, запись файла может приводить к исполнению кода на целевой системе.

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

Стоит отметить, что эксплуатация уязвимости происходит незаметно для пользователя.

Пользователям рекомендуется незамедлительно обновиться до последней версии, доступной от команды Alpine.

>>> Исправление

>>> Подробности

★★★★★

Проверено: Shaman007 ()

…распаковывает их содержимое в корневую директорию файловой системы до того, как проверяет их подлинность…

Ай малаца!

P.S. А что за Alpine Linux такой?

MrClon ★★★★★ ()
Последнее исправление: MrClon (всего исправлений: 1)

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

AVL2 ★★★★★ ()
Ответ на: комментарий от MrClon

P.S. А что за Alpine Linux такой?

Alpine Linux - один из немногого числа «ненормальных» (в которых заменен один из компонентов - ядро, glibc, gcc, binutils, libstdc++) дистрибутивов (glibc заменен на musl), относительно добившихся успехов. Очень популярен во всяких докерах.

Athor ★★ ()
Ответ на: комментарий от Anakros

Ненормальностью тут школота линуксовая страдает, а Alpine ставит своей целью как можно меньший размер рабочей системы.

Я только за) Но все же критериям нормальности дистрибутива Linux Alpine удовлетворяет не полностью (ибо нет glibc), соответственно, многое проприетарное ПО на нем работает только с хаками (и впиливанием glibc). Если б не проприетарщина, я б с радостью перешел на musl)

Athor ★★ ()
Ответ на: комментарий от AVL2

А если они фокусируются на важных для пользователя сторонах

сосредоточится на одном аспекте, забыть про другой. потом выясняется что упущенное не ложится в созданное. начинается все сначала, переосмысление, переписывание.

barberry ★★ ()
Последнее исправление: barberry (всего исправлений: 1)
Ответ на: комментарий от barberry

Забыть не забыть, но приоритеты расставлять все равно приходится.

И таки да, частичное переосмысление, переписывание. Но на это переосмысление и переписывание есть время и мотивация, ведь продукт уже работает.

AVL2 ★★★★★ ()
Ответ на: комментарий от Athor

Так, эмм… это «зло» позволяет держать няшную базовую систему и параллельно использовать все упакованные прикладные программы без пердолинга в chroot с glibc-based системой.

commagray ★★★ ()
Ответ на: комментарий от commagray

Так, эмм… это «зло» позволяет держать няшную базовую систему и параллельно использовать все упакованные прикладные программы без пердолинга в chroot с glibc-based системой.

Вот когда Flatpak научится нормально ставить в себя модули GTK и прочие штуки для поддержки глобального меню - тогда еще подумаю.

Ну и Flatpak по факту тот же чрут с glibc-based, только с синтаксическим сахаром.

Athor ★★ ()
Ответ на: комментарий от Athor

многое проприетарное ПО на нем работает только с хаками (и впиливанием glibc)

Альпин не для проприетарного ПО, он для раз-два и в продакшен, чтобы реестры контейнеров не пухли от гигабайт прошлогодних сборок. Нужен контейнер с проприетарным ПО, возьми контейнер с любым другим дистрибутивом.

autonomous ★★★★ ()

Такое ощущение, что цель контейнеростроителей - наступить на все грабли, уже встреченные людьми ранее.

Сначала было «один процесс на контейнер», потом «от рута запускать веб-сервер в контейнере безопасно», теперь вот «проверять целостность пакетов - лишняя сложность».

jekader ★★★★ ()
Ответ на: комментарий от actionless

кстати, можно и на бульдозере на работу ездить

Можно) Но лучше на самокате.

Ну и все же альпин на десктопе имеет некоторые преимущества, как и void-musl. Например, возможность поставиться на 4гиговую флэшку с гигом свободного места.

Athor ★★ ()
Ответ на: комментарий от anonymous

а зачем ты качаешь вредоносный пакет? смотри, что качаешь. в том и проблема, что не через tls ты можешь качать вполне нормальный пакет, а скачать вредоносный вместо него

eternal_sorrow ★★★★★ ()

Ребят, простите что не по теме, но никто не в курсе как запустить Dolphin 18.08 в KDE из под root? Вроде бы писали что вернули эту возможность , но sudo dolphin не работает( Заранее благодарю!

anonymous ()

Эксплуатация уязвимости возможна по той причине, что по умолчанию репозитории не используют TLS для распространения пакетов.

А в каких дистрибутивах из коробки используется репозитории с TLS? Давно не проверял, но ЕМНИП в одно время все дистрибутивы спокойно использовали HTTP и сверку с цифровыми подписями. Тут же явно проблема в «особенностях» удаления симлинков.

anonymous ()

Когда пакетный менеджер apk получает пакеты, он распаковывает их содержимое в корневую директорию файловой системы

Это зачем вот так делать? Я не специалист, но мне кажется это криворукость разработчиков.

anonymous ()
Ответ на: комментарий от eternal_sorrow

в том и проблема, что не через tls ты можешь качать вполне нормальный пакет, а скачать вредоносный вместо него

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

Но, как я понял интельфикса, скоро стоит ждать systemd-packetmanagerd с принудительным tls.

anonymous ()
Ответ на: комментарий от anonymous

и отсутствии лишней криптографии сэкономили кучу ресурсов

Экономия на спичках.

Но, как я понял интельфикса, скоро стоит ждать systemd-packetmanagerd с принудительным tls.

«package». И тебе привет.

intelfx ★★★★★ ()
Ответ на: комментарий от anonymous

Разве что есть зеркала с поддержкой HTTPS, которые нужно вручную вписывать. Но все равно ubuntu/debian security сервера зеркал не имеют и тоже только HTTP.

Чем плох HTTP? Провайдеры и прочие узлы узнают какая у тебя ОС, какой разрядности, какие пакеты ты ставишь и когда. Могут резать скорость (практически в ноль) на определенные content types или адреса (обычно этим грешат мобильные провайдеры). Приходится использовать VPN.

anonymous ()

Эксплуатация уязвимости возможна по той причине, что по умолчанию репозитории не используют TLS для распространения пакетов.

А TLS-то тут причём? Они хотят использовать TLS вместо подписей GPG? У меня для них ещё одна плохая новость.

Aceler ★★★★★ ()
Ответ на: комментарий от intelfx

и отсутствии лишней криптографии сэкономили кучу ресурсов

Экономия на спичках.

Нет, эту херню внезапно поддерживать надо и хартблидами рисковать.

anonymous ()
Ответ на: комментарий от anonymous

Ну давай еще сайты без шифрования оставим, чтобы хартблидами не рисковать. Будет риск еще больше, вообще делай что хочешь с трафиком.

Кстати подпись пакетов защищает от модификации, но не от саботажа. А если «злобная сеть» саботирует загрузку всех или нескольких пакетов (скажем «ненужного» тебе tor'а), останешься с носом. А провайдеры уже это делают.

anonymous ()
Ответ на: комментарий от anonymous

Ну давай еще сайты без шифрования оставим, чтобы хартблидами не рисковать.
Кстати подпись пакетов защищает от модификации, но не от саботажа. А если «злобная сеть» саботирует загрузку всех или нескольких пакетов (скажем «ненужного» тебе tor'а), останешься с носом. А провайдеры уже это делают.

Давайте не делать в жилых домах бензозаправок, они рвануть могут.

Ну давай бензозаправки вообще запретим, чтобы взрывами не рисковать. Кстати бензозаправки защищают от внезапного наступления ледникового периода. А он уже наступал.

Давай ты просто тупить не будешь.

anonymous ()

Когда пакетный менеджер apk получает пакеты, он распаковывает их содержимое в корневую директорию файловой системы до того, как проверяет их подлинность.

Сообщество вам ничего не обещало и не обязано проверять подлинность пакетов. Хотите, проверяйте сами, вы же СВОБОДНЫ!

Alve ★★★★★ ()
Ответ на: комментарий от Aceler

А TLS-то тут причём?

Эксплуатация уязвимости требует man-in-the-middle. Был бы TLS — описанный вариант эксплуатации не сработал бы. То есть TLS выступил бы как mitigation.

Они хотят использовать TLS вместо подписей GPG?

Не слышал о таком.

jollheef ★★★★★ ()
Последнее исправление: jollheef (всего исправлений: 1)
Ответ на: комментарий от jollheef

Эксплуатация уязвимости требует man-in-the-middle.

не требует. можно скачать пакет, который изначально вредоносный, и tls тут никак не спасёт.

anonymous ()
Ответ на: комментарий от anonymous

не требует. можно скачать пакет, который изначально вредоносный, и tls тут никак не спасёт.

Если он изначально вредоносный, то это уже не про описанную в ОП уязвимость.

jollheef ★★★★★ ()
Ответ на: комментарий от jollheef

Описаная уязвимость - это то, что файлы устанавливаются до проверки подписи пакета.

Злобный админ дебиановского зеркала манипулирует deb-пакет - пользователь получит ошибку хоть по http, хоть по ftp.

Злобный админ альпинского зеркала манипулирует apk-пакет - пользователь в жопе несмотря на tls.

anonymous ()
Ответ на: комментарий от anonymous

Описаная уязвимость - это то, что файлы устанавливаются до проверки подписи пакета.

Да.

Злобный админ дебиановского зеркала

В случае злонамеренного админа согласен — TLS не поможет. Но сценарий менее вероятен (хотя черт его знает, на самом деле).

jollheef ★★★★★ ()