RPM/hardening: различия между версиями

Материал из ALT Linux Wiki
< RPM
Нет описания правки
Строка 8: Строка 8:
Также наш GCC всегда передает линкеру: <tt>-pie -z now</tt> и <tt>--as-needed</tt>.
Также наш GCC всегда передает линкеру: <tt>-pie -z now</tt> и <tt>--as-needed</tt>.


= Можно добавить в CFLAGS =
= Что еще может быть в CFLAGS =
* <tt>-fanalyzer</tt>, но остерегайтесь ложных срабатываний, а так же эта опция потребляет много памяти.
* <tt>-fanalyzer</tt>, но остерегайтесь ложных срабатываний, а так же эта опция потребляет много памяти.
* Старайтесь не собирать с <tt>-O0</tt>, так как это отключает многие проверки.
* Старайтесь не собирать с <tt>-O0</tt>, так как это отключает многие проверки.

Версия от 20:04, 28 мая 2022

Включено по умолчанию в GCC

Эти опции не нужно добавлять вручную в CFLAGS, так как они включены у нас в ALT по умолчанию. Список взят из info gcc поиском по ALT.*gcc

  • -Wformat=2 и -Wformat-security
  • -Wtrampolines
  • -D_FORTIFY_SOURCE=2 (activated when -O2 or higher)
  • -fstack-protector и -fstack-protector-strong
  • -fstack-clash-protection

Также наш GCC всегда передает линкеру: -pie -z now и --as-needed.

Что еще может быть в CFLAGS

  • -fanalyzer, но остерегайтесь ложных срабатываний, а так же эта опция потребляет много памяти.
  • Старайтесь не собирать с -O0, так как это отключает многие проверки.

CFLAGS для тестирования пакета

Нельзя добавлять в итоговый пакет, но полезно использовать для (периодического) тестирования.

  • -fsanitize=address. (NB: Медленно работает leak detector на aarch64 (отключается ASAN_OPTIONS=detect_leaks=0).)