RPM/hardening: различия между версиями
< RPM
Vt (обсуждение | вклад) |
|||
Строка 11: | Строка 11: | ||
* <tt>-fanalyzer</tt>, но остерегайтесь ложных срабатываний, а так же эта опция потребляет много памяти. | * <tt>-fanalyzer</tt>, но остерегайтесь ложных срабатываний, а так же эта опция потребляет много памяти. | ||
* Старайтесь не собирать с <tt>-O0</tt>, так как это отключает многие проверки. | * Старайтесь не собирать с <tt>-O0</tt>, так как это отключает многие проверки. | ||
* Для устранения verify-elf варнинга при сборке библиотек:<pre>verify-elf: ERROR: ./usr/lib64/..: found executable STACK entry: GNU_STACK ... RWE 0x10</pre> (он возникает, например, если в asm файлах нет соответствующего заголовка) может быть полезно добавить <code>-Wa,--noexecstack</ | * Для устранения verify-elf варнинга при сборке библиотек:<pre>verify-elf: ERROR: ./usr/lib64/..: found executable STACK entry: GNU_STACK ... RWE 0x10</pre> (он возникает, например, если в asm файлах нет соответствующего заголовка) может быть полезно добавить <code>-Wa,--noexecstack</code> или <code>-Wl,-z,noexecstack</code> (выбор в зависимости от обстоятельств). | ||
= CFLAGS для тестирования пакета = | = CFLAGS для тестирования пакета = |
Версия от 13:19, 29 мая 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).)