URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 115292
[ Назад ]

Исходное сообщение
"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."

Отправлено opennews , 14-Сен-18 20:38 
Исследователь безопасности Max Justicz, известный выявлением уязвимостей в репозиториях  Packagist, NPM и RubyGems, опубликовал (https://justi.cz/security/2018/09/13/alpine-apk-rce.html) информацию о новой критической уязвимости в пакетном менеджере APK, применяемом в дистрибутиве Alpine Linux (используется по умолчанию для контейнеров Docker).  Уязвимость несколько дней назад уже устранена (https://git.alpinelinux.org/cgit/apk-tools/commit/?id=6484ed...)  в APK, а проект Alpine Linux выпустил (https://alpinelinux.org/posts/Alpine-3.8.1-released.html) обновление 3.8.1, в который включено данное исправление.


Атакующие, имеющие возможность совершить MITM-атаку или изменить пакеты на зеркале, могли подменить загружаемый пользователем apk-пакет и инициировать выполнение своего кода в системе c правами root. В Alpine Linux при доступе к штатным репозиториям по умолчанию не применяется TLS-шифрование канала связи, а используется только верификация целостности и источника пакета по цифровой подписи. К сожалению подобной проверки оказалось недостаточно, так как приводящая к уязвимости ошибка проявляется на стадии распаковки пакета, которая выполняется  до проверки цифровой подписи.


Суть проблемы в том, что через манипуляцию с путями внутри пакета атакующие могут добиться распаковки непроверенного файла в системный каталог. Пакет apk представляет собой архив tar, при распаковке которого файлы поочерёдно извлекаются в корень с добавлением к имени окончания ".apk-new". В случае несовпадения проверочного хэша  распакованные файлы удаляются. Проблема проявляется из-за ошибки при обработке символических ссылок.


Атакующий может создать в пакете ссылку с именем "link", указывающую, допустим, на файл "/etc/apk/commit_hooks.d/x". Данная ссылка будет распакована с временным именем "link.apk-new", но продолжит указывать на "/etc/apk/commit_hooks.d/x". Кроме символической ссылки в пакет  можно поместить обычный файл тем же именем "link". Пакетный менеджер   попытается сохранить его как "link.apk-new", но с данным именем уже присутствует символическая ссылка, что приведёт к созданию адресуемого через ссылку файла "/etc/apk/commit_hooks.d/x". Когда apk обнаружит несоответствие пакета проверочному хэшу,  он удалит link.apk-new, но файл "/etc/apk/commit_hooks.d/x" останется в системе.


В итоге, злоумышленник может переписать любой файл, в том числе разместить скрипт в каталог /etc/apk/commit_hooks.d/, скрипты из которого вызываются перед завершением работы apk, что приведёт к выполнению кода до завершения обработки текущего пакета. Подобная особенность может использоваться для скрытия атаки. Изменив на лету память процесса apk через /proc/pid/mem, атакующий может добиться завершения apk всегда с нулевым кодом возврата, что позволяет успешно довести до конца процесс обновления или сборки Docker-контейнера и не вызвать подозрений.

URL: https://justi.cz/security/2018/09/13/alpine-apk-rce.html
Новость: https://www.opennet.me/opennews/art.shtml?num=49273


Содержание

Сообщения в этом обсуждении
"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 14-Сен-18 20:38 
Пользуюсь voidlinux, но рад, что дружественный проект исправил уязвимость.

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Оффтоп , 14-Сен-18 20:50 
кстати про voidlinux и уязвимости. Они до сих пор не переехали с гитхаба?

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 14-Сен-18 20:55 
Да что-то они не в тренде.

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено freehck , 14-Сен-18 21:23 
Выполнить любой код в Alpine? Ммм, значит дистр, ориентированный на безопасность. :)

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 14-Сен-18 22:14 
интересно, как в этом плане обстоят дела у apt/dnf/zypper

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено DerRoteBaron , 15-Сен-18 23:30 
У dnf/zypper в их родной среде должно быть меньше проблем, так как rpm это не матрёшка из tgz/txz, а специфичный формат, содержащий подпись в заголовке и, если я правильно понял, подписывающей cpio-payload, а не файлики внутри по одному.
И собственно инвалидность подписи проверяется ещё до начала транзакции

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено freehck , 01-Окт-18 07:46 
> У dnf/zypper в их родной среде должно быть меньше проблем, так как
> rpm это не матрёшка из tgz/txz, а специфичный формат, содержащий подпись
> в заголовке и, если я правильно понял, подписывающей cpio-payload, а не
> файлики внутри по одному.

Ещё бы тебе уяснить, что на подписи отдельных пакетов, если таковые вообще имеются, никто и никогда не смотрит, потому что достаточно один раз проверить подпись репозитория, а дальше уже просто сверять хеш пакета с проверенным. И это общий подход для дистров, что для deb, что для rpm.


"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 27-Сен-18 18:42 
Лучше. За годы развития их все-таки в целом отучили от детских болезней. Тот же apt+dpkg вообще ничего распаковывать не будет если подпись или хэш кривые. До этого дело просто не дойдет.

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено EHLO , 01-Окт-18 10:29 
>интересно, как в этом плане обстоят дела у apt/dnf/zypper

предсказуемо хуже. Поиск по базе CVE в помощь.


"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено ALex_hha , 14-Сен-18 23:42 
> используется по умолчанию для контейнеров Docker

Кем используется?


"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено anonimous , 15-Сен-18 08:57 
Всеми используется

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено ALex_hha , 16-Сен-18 02:29 
Есть статистика или лишь перднуть?

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено anonimous , 16-Сен-18 19:56 
Перднуть. А разве не так?

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено your mom , 16-Сен-18 21:58 
в след раз почитай про сабж прежде, чем начнешь быковать.

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 15-Сен-18 00:38 
Очень интересует, что употребляют люди, которые придумывают такие атаки, и можно ли эти вещества где-то купить без рецепта?

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено test_test , 15-Сен-18 09:21 
Ничего они не употребляют. Просто используют метод научного тыка, курят мануалы и комбинируют мелкие уязвимости в большие. Просто чуваки оч умные.

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено trunk , 15-Сен-18 16:48 
А говоришь - не употребляют. И тут же - курят... маны. )

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 15-Сен-18 04:25 
> проект Alpine Linux выпустил обновление 3.8.1, в который включено данное исправление.

...которое загружается тем самым пакетным менеджером?


"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 15-Сен-18 05:12 
rm -rf /* init скрипт запихнуть.

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено anonimous , 15-Сен-18 08:59 
Хорошая атака ничего не ломает и никак себя не выдает.

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено нонима , 15-Сен-18 23:04 
>> ошибка проявляется на стадии распаковки пакета, которая выполняется до проверки цифровой подписи

Л - логика. Распаковать и только потом проверять.


"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 16-Сен-18 09:55 
Это значит, что пакетные менеджеры следует разбивать на часть, которая принимает, распаковывает, проверяет КС и часть, которая на самом последнем этапе помещает прошедшие проверку файлы в ФС ОС. Первая часть должна перед началом работы сменить владельца процесса на какого-нибудь совсем бесправного пользователя.

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено Аноним , 16-Сен-18 11:12 
> Это значит, что пакетные менеджеры следует разбивать на часть, которая принимает, распаковывает,
> проверяет КС и часть, которая на самом последнем этапе помещает прошедшие
> проверку файлы в ФС ОС. Первая часть должна перед началом работы
> сменить владельца процесса на какого-нибудь совсем бесправного пользователя.

А почему нельзя сделать, чтобы системное дерево и файлы принадлежало пользователю типа rootfs?
Чтобы никто кроме rootfs и root не мог изменить файлы.


"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено your mom , 16-Сен-18 21:51 
они и так руту принадлежат

"Уязвимость в пакетном менеджере APK, позволяющая удалённо вы..."
Отправлено sposob , 17-Сен-18 03:03 
...стукнули буквы с квэрти, это самая ужасная новость за пол ночи...