[devel] devel-static

Andrey Savchenko bircoph на altlinux.org
Ср Авг 25 23:52:25 MSK 2021


On Wed, 25 Aug 2021 22:58:03 +0300 Vitaly Lipatov wrote:
> Andrey Savchenko писал 25.8.21 22:14:
> > On Wed, 25 Aug 2021 20:14:41 +0300 Dmitry V. Levin wrote:
> >> On Wed, Aug 25, 2021 at 12:18:40PM +0300, Andrey Savchenko wrote:
> ...
> >> > Динамическая линковка лишь создаёт иллюзию безопасности за счёт
> >> > исправления проблемы в одной библиотеке сразу для всех. Но проблема
> >> > может быть в хедерах, а C++ библиотеки всё больше переходят
> >> > в хедеры. В итоге может получится, что CVE исправлен, библиотека
> >> > обновлена без изменения ABI, а непересобранные приложения всё ещё
> >> > уязвимы.
> >> 
> >> А безопаснее всего публиковать только исходники, и пусть пользователи
> >> сами пересобирают, как сочтут нужным, правда же?
> > 
> > На этот вопрос нельзя однозначно ответить, поскольку в таком
> > случае задача обеспечения безопасности во многом перекладывается на
> > пользователей и ответ зависит от их квалификации. Так вернёмся к
> > обсуждению DSO vs static в бинарном дистрибутиве общего назначения.
> > 
> > 1) Безопасность.
> > 
> > Выше я привёл пример, когда DSO лишь маскирует проблему
> > безопасности, но не решает её. В случае со static очевидно, что
> > пересобирать нужно всех потребителей (при необходимости рекурсивно).
> > Так что относительно просто реализовать механизм контроля
> > гарантированного исправления ошибок и уязвимостей среди
> > прямых и косвенных пользователей библиотеки.
> > 
> > В случае с DSO может возникнуть крайне опасная ситуация скрытого
> > наличия уязвимости, когда CVE в библиотеке исправлен, по
> > setversions с клиентами всё хорошо, мы успешно заявили об
> > исправлении данной CVE в дистрибутиве, а в реальности уязвимость
> > кое-где осталась.
> > 
> > Самым простым решением данной проблемы будет безусловная пересборка
> > всех зависимостей, так же, как и со static — но в таком случае
> > никаких преимуществ у DSO не остаётся.
> > 
> > Можно попробовать отслеживать, были ли изменения хедеров
> > и пересобирать безусловно только в таком случае — но это более
> > сложный и в то же время всё ещё грубый путь решения задачи, т.к. не
> > всякое изменение в хедере ведёт к изменению бинарного кода
> > в клиенте.
> Я бы хотел добавить только, что
> в реальной жизни эта проблема решается проще — при исправлении CVE 
> проект выпускает новую версию библиотеки, и если вдруг уязвимость 
> требует пересборки клиентов (из-за её исправления в заголовочных 
> файлах), то об этом сообщат пользователям библиотеки (в описании 
> релиза).

Некоторые апстримы ушли по-умолчанию целиком в хедеры и отдельно не
выделяют такие ситуации, например, cgal.

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

Я отдельно не искал. Но почему ошибка в реализации шаблона
представляется невероятной?

Best regards,
Andrew Savchenko
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 833 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20210825/796fdf1e/attachment.bin>


Подробная информация о списке рассылки Devel