RPM/hardening: различия между версиями
< RPM
Vt (обсуждение | вклад) (tt -> code) |
м (→Включено по умолчанию в GCC: ...по умолчанию.) |
||
Строка 6: | Строка 6: | ||
* <code>-fstack-protector</code> и <code>-fstack-protector-strong</code> | * <code>-fstack-protector</code> и <code>-fstack-protector-strong</code> | ||
* <code>-fstack-clash-protection</code> | * <code>-fstack-clash-protection</code> | ||
Также наш GCC всегда передает линкеру: <code>-pie -z now</code> и <code>--as-needed</code>. | Также наш GCC [[UpStream/AsNeeded|всегда]] передает линкеру: <code>-pie -z now</code> и <code>--as-needed</code>. | ||
= Что еще может быть в CFLAGS = | = Что еще может быть в CFLAGS = |
Версия от 08:53, 30 мая 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
, так как это отключает многие проверки. - Для устранения verify-elf варнинга при сборке библиотек:
verify-elf: ERROR: ./usr/lib64/..: found executable STACK entry: GNU_STACK ... RWE 0x10
(он возникает, например, если в asm файлах нет соответствующего заголовка) может быть полезно добавить-Wa,--noexecstack
или-Wl,-z,noexecstack
(выбор в зависимости от обстоятельств).
CFLAGS для тестирования пакета
Нельзя добавлять в итоговый пакет, но полезно использовать для (периодического) тестирования.
-fsanitize=address
. (NB: Медленно работает leak detector на aarch64 (отключаетсяASAN_OPTIONS=detect_leaks=0
).)