[ON] В Clang намерены добавить режим усиленной безопасности

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6001
ОС: gnu/linux

[ON] В Clang намерены добавить режим усиленной безопасности

Сообщение rssbot »

Аарон Баллман (Aaron Ballman), главный сопровождающий компилятор Clang и участник команд разработки стандартов WG21 (C++) и WG14 (C), начал обсуждение добавления в компилятор Clang режима усиления безопасности. Новый режим позволит разом активировать набор опций для усиления защиты по аналогии с добавленным в GCC 14 флагом "-fhardened", при котором включаются опции "-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -ftrivial-auto-var-init=zero -fPIE -pie -Wl,-z,relro,-z,now -fstack-protector-strong -fstack-clash-protection -fcf-protection=full".


Отмечается, что в настоящее время ведётся работа по добавлению возможностей для усиления безопасности в стандарты C и C++, но этот процесс не быстрый, при том, что в Сlang уже доступны отдельные опции с реализацией дополнительных механизмов защиты. Реализуемые методы защиты часто приводят к отдельным несовместимостям с существующим кодом или нарушению ABI, что не позволяет активировать их по умолчанию. Кроме того, подобные опции разрознены (флаги для управления компиляцией, флаги генерации машинных инструкций, привязанные к аппаратным архитектурам, предупреждения, режимы диагностики, макросы), плохо документированы и выпадают из поля зрения многих разработчиков.



Единая настройка унифицирует включение связанных с безопасностью опций и упростит их применение. Рассматривается несколько вариантов активации режима усиленной безопасности, например, обсуждается активация через флаг "-fhardened", набор настроек "--config=hardened", отдельный драйвер (clang --driver-mode) или раздельные опции "-fhardened, -mhardened и -Whardened", привязанные к компиляции, генерации кода и выводу предупреждений. Режим может охватывать:
  • Возможности компилятора: -ftrivial-auto-var-init, -fPIE, -fcf-protection и т.п.
  • Возможности, привязанные к генерации кода для целевых платформ: -mspeculative-load-hardening, -mlvi-hardening и т.п.
  • Предупреждения: -Wall, -Wextra, -Werror=return-type и т.п.
  • Режимы усиления безопасности в стандартной библиотеке функций.
  • Макросы: _FORTIFY_SOURCE, _GLIBCXX_ASSERTIONS и т.п.
  • Требование к явному выбору используемого стандарта языка.
  • Отказ компилировать код с использованием устаревших стандартов C89 и C++98.
  • Передача дополнительных флагов компоновщику, например, для включения рандомизации адресов.






Источник: https://www.opennet.ru/opennews/art.shtml?num=63675
(opennet.ru, основная лента)
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2802
ОС: gentoo fluxbox

Re: [ON] В Clang намерены добавить режим усиленной безопасности

Сообщение yoricI »

Чёрт побери, это сколько часов добавит к компиляции?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [ON] В Clang намерены добавить режим усиленной безопасности

Сообщение Bizdelnick »

yoricI писал:
04.08.2025 12:01
Чёрт побери, это сколько часов добавит к компиляции?
А с чего Вы взяли, что добавит? Не вижу в списке ничего ресурсозатратного для компилятора. Во время выполнения кое-что может отрицательно сказаться на производительности, но тоже вряд ли заметно для глаза.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2802
ОС: gentoo fluxbox

Re: [ON] В Clang намерены добавить режим усиленной безопасности

Сообщение yoricI »

Я имел в виду его самого компиляцию. И так полсуток возится. Да и для производных тоже, но дай бог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21256
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [ON] В Clang намерены добавить режим усиленной безопасности

Сообщение Bizdelnick »

yoricI писал:
04.08.2025 18:39
Я имел в виду его самого компиляцию.
Так а что изменится? По сути добавляется один флаг, который включает набор других, ранее существовавших, разом. Это десяток-другой строк кода, смешно даже пытаться замерить время их компиляции.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: