The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Linux сборка со статической линковкой"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на рабочей станции (Разное / Linux)
Изначальное сообщение [ Отслеживать ]

"Linux сборка со статической линковкой"  +/
Сообщение от static2020 (ok), 19-Дек-20, 13:23 
Static Linux. Дистрибутив основан на Alpine Linux, используется musl и BusyBox. Ядро и корневая файловая система собраны в единый файл для запуска на системах с UEFI загрузкой (Secure Boot должна быть отключена). Для установки необходимо скачать bootx64.efi (http://static.flibex.ru/counter.php?file=bootx64.efi) и разместить его на отформатированный в FAT32 диск в директории X:/efi/boot/bootx64.efi Ядро собрано без поддержки подгружаемых модулей, в качестве init и для монтирования подключаемых дисков используются shell скрипты. Планируется статически слинковать все используемые программы, но на данный момент собран только toolchain и несколько основных программ.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 19-Дек-20, 14:06   +/
> Static Linux.

Цель? Как жить без ASLR? Зачем отключать Secure Boot?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от static2020 (ok), 19-Дек-20, 14:32   +/
Статически слинкованные программы быстрее, все в одном файле, не нужны подгружаемые библиотеки. ASLR только усложняет эксплуатацию уязвимостей, отчасти порожденных именно динамическим линкованием, а не избавляет от них. К сожалению нет возможности подписать загружаемый образ сертифицированной подписью :), поэтому надо отключать Secure Boot.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #3, #4

3. Сообщение от DeerFriend (?), 19-Дек-20, 14:47   +/
А тебе и не надо его подписывать сертифицированной подписью.
Подписывай своей, просто не забудь интегрировать свою подпись в тот же уефи.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #5

4. Сообщение от Аноним (5), 19-Дек-20, 14:53   +/
> Статически слинкованные программы быстрее, все в одном файле, не нужны подгружаемые библиотеки.

Файлы ооочень жыыырные, система много места занимает, если диск медленный, например LiveCD/DVD, то система с динамически связанными библиотеками загрузится быстрее.

> ASLR только усложняет эксплуатацию уязвимостей, отчасти порожденных именно динамическим  линкованием, а не избавляет от них.

Статическая линковка -> известность всех адресов -> вири будут этим пользоваться. ASLR нужный элемент защиты от вирей. Его стоит использовать. У тебя код PIC? Бинари собираешь PIE?

> К сожалению нет возможности подписать загружаемый образ сертифицированной подписью :), поэтому надо отключать Secure Boot.

Сертифицируй себе подпись сам и не верь больше их сертификатам: https://habr.com/en/post/273497

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #6

5. Сообщение от Аноним (5), 19-Дек-20, 14:56   +/
> Подписывай своей, просто не забудь интегрировать свою подпись в тот же уефи.

И не забудь ВСЕ остальные их подписи с UEFI поудалять. В UEFI должна быть только твоя подпись!


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

6. Сообщение от static2020 (ok), 19-Дек-20, 15:35   +/
> Файлы ооочень жыыырные, система много места занимает, если диск медленный, например LiveCD/DVD,
> то система с динамически связанными библиотеками загрузится быстрее.

Да, файлы на диске становятся больше, но не ооочень:) зато памяти программа занимает меньше.

> Статическая линковка -> известность всех адресов -> вири будут этим пользоваться. ASLR
> нужный элемент защиты от вирей. Его стоит использовать. У тебя код
> PIC? Бинари собираешь PIE?

Если собирать с PIE всеравно получется динамический файл, PIE и статическая сборка не очень дружат:) Поэтому без PIC, PIE. А ты часто встречался с вирусами в Linux?:)

> Сертифицируй себе подпись сам и не верь больше их сертификатам: https://habr.com/en/post/273497

На каждом компьютере необходимо прописать новые ключи, зачем эти заморочки, когда можно просто выключить SecureBoot?


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #7

7. Сообщение от Аноним (7), 19-Дек-20, 17:28   +/
> Да, файлы на диске становятся больше, но не ооочень:) зато памяти программа занимает меньше.

Это смотря кто ее собирал и как линковал.

> Если собирать с PIE всеравно получется динамический файл, PIE и статическая сборка не очень дружат:) Поэтому без PIC, PIE.

С пробитыми намертво гвоздями адресами памяти в асемблерных оптимизация PIC не дружит и соответственно PIE неполучится. А с простым C кодом проблем получить PIE бинарь не должно быть. Даже само ядро OS должно быть PIE бинарем и использовать ASLR.

> А ты часто встречался с вирусами в Linux?:)

Да. ;)

> На каждом компьютере необходимо прописать новые ключи, зачем эти заморочки, когда можно просто выключить SecureBoot?

Таковы обязаности админа. Иначе буткита подцепишь.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #8, #13

8. Сообщение от static2020 (ok), 19-Дек-20, 18:34   +/
Вирусы и буткиты в моем случае маловероятны, т.к. использую программы из официальных репозитариев.
А ты не пробовал, загрузиться с моей сборкой? Просто интерестно мнение? Как оно?:) А то вот решил поделиться с общественностью своим рукоделием:) Еще многое коряво и надо доделать, но многое уже сделал, свой init, свой hotplug...


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #9

9. Сообщение от Аноним (9), 19-Дек-20, 18:56   +/
Также качаю официальные исходники и проверяю их PGP подписи и сам, правильно, собираю. Это все не значит что система не должна себя защищать от вирусов стандартными методами.

Сборки иногда выкладываю: https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/.../

Мнение о сборке могу сказать без загрузки. Давай сюда вывод:
paxtest blackhat
checksec -pl 1

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #10

10. Сообщение от static2020 (ok), 19-Дек-20, 19:25   +/
PaX не используется.
Вывод checksec.sh --proc-all

* Does the CPU support NX: Yes

         COMMAND    PID RELRO             STACK CANARY           NX/PaX        PIE
            init      1 Partial RELRO     No symbol table found  NX enabled    No PIE
            init   2112 Partial RELRO     Permission denied      NX enabled    No PIE
          udhcpc   2543 Partial RELRO     Permission denied      NX enabled    No PIE
  wpa_supplicant   2549 Full RELRO        Canary found           NX enabled    PIE enabled
           login   2551 Partial RELRO     Permission denied      NX enabled    No PIE
             ash   2554 Partial RELRO     Permission denied      NX enabled    No PIE
          startx   2590 Partial RELRO     Permission denied      NX enabled    No PIE
          udhcpc   2621 Partial RELRO     Permission denied      NX enabled    No PIE
           xinit   2636 Full RELRO        Canary found           NX enabled    PIE enabled
               X   2637 Partial RELRO     Canary found           NX enabled    PIE enabled
             jwm   2652 Full RELRO        Canary found           NX enabled    PIE enabled
           conky   2656 Full RELRO        Canary found           NX enabled    PIE enabled
              st   2710 Full RELRO        Canary found           NX enabled    PIE enabled
             ash   2711 Partial RELRO     Permission denied      NX enabled    No PIE
         firefox   2843 Full RELRO        Canary found           NX enabled    PIE enabled
             Web         Content   2893 Full RELRO        Canary found           NX enabled    PIE enabled
   WebExtensions   2935 Full RELRO        Canary found           NX enabled    PIE enabled
             Web         Content   2964 Full RELRO        Canary found           NX enabled    PIE enabled
             Web         Content   3011 Full RELRO        Canary found           NX enabled    PIE enabled
              st   3101 Full RELRO        Canary found           NX enabled    PIE enabled
             ash   3102 Partial RELRO     Permission denied      NX enabled    No PIE
             ash   3103 Partial RELRO     Permission denied      NX enabled    ""

То что с "No PIE" собрано мной, остальное это alpinelinux. Мной собрано еще очень мало пакетов, времени не хватает:(

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #14, #38

11. Сообщение от Павел Отредиезemail (?), 21-Дек-20, 06:44   +/
> Static Linux. Дистрибутив основан на Alpine Linux, используется musl и BusyBox. Ядро
> и корневая файловая система собраны в единый файл для запуска на
> системах с UEFI загрузкой (Secure Boot должна быть отключена). Для установки
> необходимо скачать bootx64.efi (http://static.flibex.ru/counter.php?file=bootx64.efi)
> и разместить его на отформатированный в FAT32 диск в директории X:/efi/boot/bootx64.efi
> Ядро собрано без поддержки подгружаемых модулей, в качестве init и для
> монтирования подключаемых дисков используются shell скрипты. Планируется статически
> слинковать все используемые программы, но на данный момент собран только toolchain
> и несколько основных программ.

Мне жаль Ваше здоровье.
Во первых не все пакеты можно собрать статический, просто эта возможность редко используемая и отмерла.
Во вторых я вижу удобность статический сборки только для дистрибутивов без зависимостей в пакетном менеджере. Т. е. только для Slackware. Рабочим примером статической сборки без зависимостей можно считать Minix.

Советую не тратить свое время и здоровье, это все уже пробовано. Оказалось проще к Слаквари прикрутить зависимости.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #12, #17

12. Сообщение от Павел Отредиезemail (?), 21-Дек-20, 06:51   +/
Ктому же, как нам заметил тогда Михаил Шигорин, уязвимость в одной библиотеке требует пересборки всех зависимых пакетов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #18

13. Сообщение от Аноним (13), 21-Дек-20, 07:47   +/
> используется musl

Вспомнил, что пару лет назад смотрел эту либу. Тогда musl не поддерживала разделяемые библиотеки и не могла ASLR. Для меня наличие ASLR важно и поэтому от musl отказался. Решил что лучше разделяемые библиотеки и PIE бинарь.

На безопасность надо смотреть глобально, целостно, а не покусочкам:
Какую безопасность дает сам по себе PIC? Никакой!
Какую безопасность дает сам по себе PIE бинарь? Никакой!
А если ядро OS умеет рандомизировать адресное пространство (ASLR) то запуск PIE бинаря уже затрудняет взлом, неизвестны адреса в памяти.
А если есть еще система следящая за применением брутфорса, для угадывания адресов в памяти и блокированием этого пользователя, то можно уже говорить о гарантиях безопасности.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #15

14. Сообщение от Аноним (14), 21-Дек-20, 10:12   +/
> PaX не используется.

А надо обязательно.

> Вывод checksec.sh --proc-all

Почему собираешь без:
канареек для защиты стека
позиционно независимого бинаря
дай вывод checksec -f /sbin/init почему у тебя нет фортификации

Почему линкуешь без relro?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

15. Сообщение от static2020 (ok), 21-Дек-20, 10:15   +/
> Вспомнил, что пару лет назад смотрел эту либу. Тогда musl не поддерживала
> разделяемые библиотеки и не могла ASLR. Для меня наличие ASLR важно
> и поэтому от musl отказался. Решил что лучше разделяемые библиотеки и
> PIE бинарь.

Сейчас musl полноценная библиотека на ней построены Alpine Linux и Void Linux и гараздо компактнее glibc, что актуально для статической сборки.


> На безопасность надо смотреть глобально, целостно, а не покусочкам:

Безопасность в основном зависит от тех кто разрабатывает ядро, библиотеки и программы. Делая свою сборку приходится использовать то что есть. Статическая сборка в плане безопасности надежнее динамической. И еще, во всех дистрибутивах ядра собраны с инструметами для отладки debugfs, трассировка и т.п. вот это огромная дыра в безопасности.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #16

16. Сообщение от Аноним (14), 21-Дек-20, 10:27   +/
> Сейчас musl полноценная библиотека

musl уже умеет разделяемые библиотеки и ASLR?

> Делая свою сборку

Хреновая пока у тебя сборка. Смотри выше, по флагам компиляции и линковки у тебя провал в безопасности.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #19

17. Сообщение от static2020 (ok), 21-Дек-20, 10:29   +/
> Во первых не все пакеты можно собрать статический, просто эта возможность редко
> используемая и отмерла.

Согласен, статическую сборку ипользуют редко, и наверно не все удасться собрать, но попробую:)

> Во вторых я вижу удобность статический сборки только для дистрибутивов без зависимостей
> в пакетном менеджере. Т. е. только для Slackware. Рабочим примером статической
> сборки без зависимостей можно считать Minix.

Тут, вообще никаких проблем, собирать пакеты без зависимостей не проблема:) Использую пакетный менеджер apk из Alpine Linux.

> Советую не тратить свое время и здоровье, это все уже пробовано. Оказалось
> проще к Слаквари прикрутить зависимости.

А мне нравиться это занятие:)
Slackware мертв:) к нему уже поздно что-то прикручивать:)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

18. Сообщение от static2020 (ok), 21-Дек-20, 10:31   +/
> Ктому же, как нам заметил тогда Михаил Шигорин, уязвимость в одной библиотеке
> требует пересборки всех зависимых пакетов.

На это можно взглянуть с другой стороны, например, косяк в обновленной библиотеке поломает все зависящие от этой библиотеки программы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

19. Сообщение от static2020 (ok), 21-Дек-20, 10:39   +/
> musl уже умеет разделяемые библиотеки и ASLR?

Разделяемые библиотеки точно умеет, а на счет ASLR наверно, да, раз собирается с PIE.

> Хреновая пока у тебя сборка. Смотри выше, по флагам компиляции и линковки
> у тебя провал в безопасности.

PIE не "манна небесная" она не избавляет от проблем с безопасностью, а только усложняет их использование, и повторюсь многие проблемы в безопасность создаются именно динамической линковкой


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #20

20. Сообщение от Аноним (20), 21-Дек-20, 10:50   +/
> наверно, да

Надо будет, когда нибудь, еще раз глянуть на musl

> PIE не "манна небесная" она не избавляет от проблем с безопасностью

Твои бинари вообще без всяких опций безопасности собраны. Пересобери нормально.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #21

21. Сообщение от static2020 (ok), 21-Дек-20, 11:00   +/
> Твои бинари вообще без всяких опций безопасности собраны. Пересобери нормально.

Почему "вообще без всяких опций безопасности" с частичной RELRO, полная почемуто не делается, не стал с эти разбираться, а если делать PIE то файл всеравно получается динамический файл с зависимостью "/lib/ld-musl-x86_64.so.1" поэтому без PIE


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #22, #24, #26

22. Сообщение от Аноним (22), 21-Дек-20, 12:52   +/
Давным давно решил что правильно собирать динамические бинари. Системы со статическими бинарями никогда не собирал и не использовал. Если есть документация по безопасной сборке статических бинарей и статических системах дай ссылку, может прочту.

> Почему "вообще без всяких опций безопасности" с частичной RELRO, полная почемуто не делается, не стал с эти разбираться,

Давай сюда свои CFLAGS и LDFLAGS. Занимаюсь только динамической линковкой с glibc, но может прокатить и у тебя.

> а если делать PIE то файл всеравно получается динамический файл с зависимостью "/lib/ld-musl-x86_64.so.1" поэтому без PIE

Дай вывод
file /sbin/init
scanelf /sbin/init
собраны с PIE и без.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #23, #25

23. Сообщение от Аноним (22), 21-Дек-20, 13:06   +/
scanelf -a /sbin/init
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

24. Сообщение от Аноним (22), 21-Дек-20, 13:54   +/
> получается динамический файл с зависимостью "/lib/ld-musl-x86_64.so.1" поэтому без PIE

Кто-то ему же должен релокейшен в памяти сделать. Глянь это https://www.openwall.com/lists/musl/2015/06/01/12


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

25. Сообщение от static2020 (ok), 21-Дек-20, 14:22   +/
> Давным давно решил что правильно собирать динамические бинари. Системы со статическими
> бинарями никогда не собирал и не использовал. Если есть документация по
> безопасной сборке статических бинарей и статических системах дай ссылку, может прочту.

Документации никакой нет, все сам разбирался:)

> Давай сюда свои CFLAGS и LDFLAGS. Занимаюсь только динамической линковкой с glibc,
> но может прокатить и у тебя.

CFLAGS='-march=x86-64 -mtune=generic -Os -pipe -static -s -fomit-frame-pointer -fstack-protector-strong -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections -Wl,--gc-sections'

LDFLAGS='-z relro'

> Дай вывод
> file /sbin/init
> scanelf /sbin/init
> собраны с PIE и без.

init это shell скрипт, т.е. ash, т.е. busybox :)

scanelf -a /usr/bin/busybox

TYPE    PAX   PERM ENDIAN STK/REL/PTL TEXTREL RPATH BIND FILE
ET_EXEC PeMRxS 0755 LE RW- R-- RW-    -      -   STATIC /usr/bin/busybox

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #27

26. Сообщение от Аноним (22), 21-Дек-20, 14:35   +/
> частичной RELRO, полная почемуто не делается, не стал с эти разбираться

Попробуй сначала пересобрать с -fPIC

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #28

27. Сообщение от Аноним (22), 21-Дек-20, 14:45   +/
CFLAGS_SEC="-fPIE -fstack-protector-all -fPIC"

CFLAGS="-march=x86-64 -mtune=generic -Os -pipe -static -s -fomit-frame-pointer -fstack-protector-strong -fno-unwind-tables -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections -Wl,--gc-sections ${CFLAGS_SEC}"

LDFLAGS='-Wl,-z,relro'

На busybox, grub не пробуй, на чем нибудь другом.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #29, #30

28. Сообщение от static2020 (ok), 21-Дек-20, 14:46   +/
> Попробуй сначала пересобрать с -fPIC

Спасибо:) но не хочу сейчас этим заморачиваться, и -fPIC тоже не хочу использовать

Попробуй мою сборку, не бойся, вирусов нету. Интерестно мнение...
Установка ведь простая, возьми любую флешку в FAT32 и закинь bootx64.efi в X:/efi/boot/bootx64.efi


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #31

29. Сообщение от static2020 (ok), 21-Дек-20, 14:49   +/
> CFLAGS_SEC="-fPIE -fstack-protector-all -fPIC"

за -fstack-protector-all спасибо, попробую


> На busybox, grub не пробуй, на чем нибудь другом.

UEFI тем и удобна что не нужно grub и т.п. использовать

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

30. Сообщение от static2020 (ok), 21-Дек-20, 14:56   +/
-fstack-protector
    Emit extra code to check for buffer overflows, such as stack smashing attacks. This is done by adding a guard variable to functions with vulnerable objects. This includes functions that call alloca, and functions with buffers larger than or equal to 8 bytes. The guards are initialized when a function is entered and then checked when the function exits. If a guard check fails, an error message is printed and the program exits. Only variables that are actually allocated on the stack are considered, optimized away variables or variables allocated in registers don’t count.

-fstack-protector-all
    Like -fstack-protector except that all functions are protected.

-fstack-protector-strong
    Like -fstack-protector but includes additional functions to be protected — those that have local array definitions, or have references to local frame addresses. Only variables that are actually allocated on the stack are considered, optimized away variables or variables allocated in registers don’t count.


Лучше
-fstack-protector-strong

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #32

31. Сообщение от Аноним (32), 21-Дек-20, 15:41   +/
Перестал интересоватся оригинальной Alpine после того как они ядро без grsecurity патчей собирают.

Не нашел ничего привлекательного в статически слинкованом дистре с скриптом вместо init на ash с busybox. Боитесь что виря в прелоад засунут? Не нравится мне ваша сборка. Да и не гружу чужих ISO без PGP подписей.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #35

32. Сообщение от Аноним (32), 21-Дек-20, 15:46   +/
Не верь Google и их понятиям "strong"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #33

33. Сообщение от static2020 (ok), 21-Дек-20, 20:06   +/
> Не верь Google и их понятиям "strong"

Это не google а мануал gcc:)
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/Instrumentatio...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #34

34. Сообщение от Аноним (34), 22-Дек-20, 06:45   +/
>> Не верь Google и их понятиям "strong"
> Это не google а мануал gcc:)
> https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/Instrumentatio...

Это Google добавил понятие "strong", в gcc было -fstack-protector,
-fstack-protector-all и еще одна опция определяющая размер стека.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

35. Сообщение от static2020 (ok), 23-Дек-20, 09:12   +/
> Перестал интересоватся оригинальной Alpine после того как они ядро без grsecurity патчей
> собирают.

"... Pax С 2014 года распространяется только в составе проекта grsecurity ..."
"... С 26 апреля 2017 года исходные коды grsecurity и связанных патчей больше не доступны для скачивания, а их распространение производится только на платной основе..."
И как ты испльзуешь Pax и grsecurity? У тебя есть платная подписка?
А статическая сборка позволяет избежать например Return-to-libc attack и не только :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #36

36. Сообщение от Аноним (36), 23-Дек-20, 16:48   +/
Прочел GPL-2: https://www.opennet.ru/openforum/vsluhforumID3/120167.html#80

Но если тебе лень читать, то можешь начать с: https://www.grsecurity.net/~paxguy1/pax-linux-4.9.24-test7.p...

> А статическая сборка позволяет избежать например Return-to-libc attack

Если собрать все с PIE и SSP, использовать ASLR ядро, так же защиту получим от Return-to-libc

> и не только :)

Давай весь список, можешь статейку о статической линковке здесь выложить.

https://www.grsecurity.net/featureset/memory_corruption

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #37

37. Сообщение от static2020 (ok), 23-Дек-20, 17:56   +/
> Прочел GPL-2: https://www.opennet.ru/openforum/vsluhforumID3/120167.html#80

Нет. Полез на https://www.grsecurity.net/ а там скачивать дозволено только авторизованным пользователям, и почитал https://ru.wikipedia.org/wiki/Grsecurity и там
написанно "С 26 апреля 2017 года исходные коды grsecurity и связанных патчей больше не доступны для скачивания, а их распространение производится только на платной основе"
Как ты скачиваешь grsecurity-*.patch ? :)

> Но если тебе лень читать, то можешь начать с: https://www.grsecurity.net/~paxguy1/pax-linux-4.9.24-test7.p...

Это последний бесплатный патч от 25-Apr-2017. И ты этим пользуешься?

> Если собрать все с PIE и SSP, использовать ASLR ядро, так же
> защиту получим от Return-to-libc

Возможно, не буду спорить.

> Давай весь список, можешь статейку о статической линковке здесь выложить.

Не умею я статейки писать:)

> https://www.grsecurity.net/featureset/memory_corruption

Не открывается ссылка


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #40

38. Сообщение от Аноним (38), 24-Дек-20, 11:42   +/
> собрано еще очень мало пакетов

Комбинирование статически собранных пакетов с динамическими сделает из системы разсадник вирей.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #39

39. Сообщение от static2020 (ok), 24-Дек-20, 13:03   +/
> Комбинирование статически собранных пакетов с динамическими сделает из системы разсадник
> вирей.

Вопервых постараюсь собрать все пакеты статически, а вовторых почему рассадник вирей? :) Как эти вещи связанны?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #41

40. Сообщение от Аноним (40), 24-Дек-20, 13:13   +/
>> Прочел GPL-2: https://www.opennet.ru/openforum/vsluhforumID3/120167.html#80
> Нет. Полез на https://www.grsecurity.net/ а там скачивать дозволено только авторизованным
> пользователям, и почитал https://ru.wikipedia.org/wiki/Grsecurity и там
> написанно "С 26 апреля 2017 года исходные коды grsecurity и связанных патчей
> больше не доступны для скачивания, а их распространение производится только на
> платной основе"
> Как ты скачиваешь grsecurity-*.patch ? :)

Это редкое для СПО явление, пережиток загниваючего капитализма. Тебе надо прочесть GPL-2 чтобы понять!

>> Но если тебе лень читать, то можешь начать с: https://www.grsecurity.net/~paxguy1/pax-linux-4.9.24-test7.p...
> Это последний бесплатный патч от 25-Apr-2017. И ты этим пользуешься?

Нет, но если ты не прочел GPL-2 и не понимаешь, что согласно ст.2, пункт Б, GPL-2 все производные от ядра Linux защищенного GPL-2 и все сторонние патчи к нему обязаны распространятся бесплатно, без дополнительных условий, для абсолютно всех и строго только под GPL-2, то тебе рекомендую начать с этого старого патча.

>> Если собрать все с PIE и SSP, использовать ASLR ядро, так же
>> защиту получим от Return-to-libc
> Возможно, не буду спорить.

Но надо ВСЕ, а не половину!

>> Давай весь список, можешь статейку о статической линковке здесь выложить.
> Не умею я статейки писать:)

Учись. Выкладывают как умеешь.

>> https://www.grsecurity.net/featureset/memory_corruption
> Не открывается ссылка

У меня работает:
https://www.grsecurity.net/featureset/memory_corruption

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #43

41. Сообщение от Аноним (41), 25-Дек-20, 10:49   +/
Все что хотел написать написал.

Сначала мне надо хотя бы со своих помоек убрать статическую линковку и оставить только динамическую с PIE и ASLR.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #42

42. Сообщение от static2020 (ok), 25-Дек-20, 14:19   +/
> Сначала мне надо хотя бы со своих помоек убрать статическую линковку и
> оставить только динамическую с PIE и ASLR.

Что у тебя собранно статически? Поделись опытом... :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #44

43. Сообщение от static2020 (ok), 25-Дек-20, 14:26   +/
>>> https://www.grsecurity.net/featureset/memory_corruption
>> Не открывается ссылка
> У меня работает:
> https://www.grsecurity.net/featureset/memory_corruption

Пишет "Циклическое перенаправление на странице" и идет редирект на https://grsecurity.net/setting_the_record_straight_on_oss_v_...
Я не настолько силен в английском, там про что? :)


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #45

44. Сообщение от Аноним (44), 26-Дек-20, 18:03   +/
> Что у тебя собранно статически?

Секрет!

> Поделись опытом... :)

Да я уже все написал:

1 https://linux.die.net/man/1/scanelf
scanelf -a -R /bin /sbin /lib /opt /usr

2 https://manpages.debian.org/testing/devscripts/hardening-che...
hardening-check /bin/bash

3 https://manpages.ubuntu.com/manpages/disco/man1/checksec.1.html

checksec --proc-libs 1
checksec --dir /bin
checksec --kernel

4 paxtest blackhat

Когда будет все хорошо собрано приходи сюда хвастаться.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

45. Сообщение от Аноним (44), 26-Дек-20, 18:11   +/
Highest performance and most secure ROP defense
The result of over four years of research and development, RAP is grsecurity's complete defense against ROP and all other code reuse attacks. No other technology today comes close to its levels of security, performance, and ability to scale to arbitrary codebase sizes, as evidenced by its use in grsecurity kernels and hardened versions of Chromium.

Industry-leading ASLR
Grsecurity has led the way over the years in providing a proper ASLR implementation that deals with the many ways in which an attacker can influence ASLR or defeat it through system-provided information leaks and entropy reduction. In addition, the number of bits of entropy applied to randomization of each memory region is significantly higher in grsecurity compared to upstream's weaker ASLR implementation.

Bounds checks on kernel copies to/from userland
This feature hardens the functions the Linux kernel uses to copy data to and from user applications. It ensures copies to/from a heap object don't exceed the object's size and that stack copies don't exceed the size of the stack frame. It further prevents modifying or leaking sensitive kernel objects via these functions.

Prevents direct userland access by kernel
Through PaX's UDEREF feature, grsecurity forces any userland data access to go through an approved accessor. This prevents exploitation of an entire class of vulnerabilities that includes null pointer dereferences and dereferences of magic values that point into userland (e.g. 0xAAAAAAAA on 32-bit systems). This feature is provided for x86, x64, and ARM, even on systems without SMAP or PAN support.

Prevents userland code execution by kernel
PaX's KERNEXEC feature effectively prevents the kernel from executing code in userland through memory corruption. This feature is provided for x86, x64, and ARM, even on processors that don't support SMEP or PXN."

Prevents kernel stack overflows on x64
While vulnerabilities arising through the improper use of variable-length-arrays (VLAs) and runtime stack allocation are handled automatically with a GCC plugin, grsecurity also provides a feature to prevent exploitation arising from other sources of kernel stack overflows: deep nesting and recursion. On a mainline Linux kernel, a kernel task is free to overflow its stack into adjacent heap objects in order to escalate privilege. Grsecurity places kernel stacks non-contiguously in a separate memory region on 64-bit architectures to avoid any such abuse.

Hardened userland memory permissions
Though mainline Linux now supports NX and a weaker ASLR, by default it does nothing to prevent the introduction of malicious code into a process. While initial control flow hijacking may occur through ROP, the pattern consistently seen on Windows and other OSes is that the majority of the exploit's payload is performed within allocated RWX memory. Grsecurity eliminates this weakness by default, greatly driving up the costs of exploitation and raising the bar above the capabilities of most attackers.

Random padding between thread stacks
Linux distros generally do not compile code with the -fstack-check flag to GCC, making it possible to exploit incorrectly-sized calls to alloca(). By taking advantage of pthread's behavior of allocating quickly-created thread stacks adjacent to each other, the stack of another thread can be reliably modified to achieve exploitation. Randomizing the offset between thread stacks removes the reliability of this technique, generally reducing the exploit to a crash.

........

Automatically responds to exploit bruteforcing
Even if all system-level infoleak sources and methods of entropy reduction are closed down, there remains the fact that a Linux system is generally unable to prevent bruteforcing of arbitrary network services and suid/sgid binaries. Grsecurity solves this issue by forcing a delay between forks of network services being bruteforced and bans users from executing suid/sgid apps for a period of time if they cause one to crash. Grsecurity takes a similar approach to preventing repeated attempts at exploiting kernel vulnerabilities. After the first detected attempt causing an OOPS message, grsecurity bans that unprivileged user from the system until restart.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #46, #47

46. Сообщение от static2020 (ok), 27-Дек-20, 21:56   +/
Почитал про "Возвратно-ориентированное программирование", статическая сборка наверно усложнит его использование т.к. придется искать ROP-цепочки в каждой программе а не в стандартных библиотеках, хотя...
Спасибо за статью. Но это всетаки рекламная писанина о там какая у них замечетельная grsecurity, которую они продают за деньги.
Чемто можно и так воспользоваться например -fstack-check.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #48

47. Сообщение от static2020 (ok), 27-Дек-20, 22:14   +/
Возник вопрос, как собрать программу с ASLR?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #49

48. Сообщение от Аноним (48), 28-Дек-20, 13:14   +/
Патч от grsecurity.net к ядру Linux бесплатен на основе ст. 2, пункт Б, лицензии GPL-2.

RAP от grsec пока лучший.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #50

49. Сообщение от Аноним (48), 28-Дек-20, 13:15   +/
Прочти ответы анонима еще раз.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

50. Сообщение от static2020 (ok), 28-Дек-20, 20:08   +/
> Патч от grsecurity.net к ядру Linux бесплатен на основе ст. 2, пункт
> Б, лицензии GPL-2.

Как качать? Требуется логин пароль. Ссылка на патч от 2017 года не в счет


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #51

51. Сообщение от Аноним (51), 29-Дек-20, 10:26   +/
https://grsecurity.net/download
Grsecurity and gradm are licensed under the GNU GPL version 2 only.
Know your rights! As a customer of any product that uses grsecurity in binary form, you are entitled to the complete corresponding source code. Companies who do not ship the complete corresponding source code alongside distributed binaries must provide you with a written offer for the source code transferrable to any other person and valid for three years. Please report any violations of our GPL license to compliance@grsecurity.net. We require that all our customers comply with the GPL.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #52

52. Сообщение от static2020 (ok), 29-Дек-20, 13:37   +/
> https://grsecurity.net/download
> Grsecurity and gradm are licensed under the GNU GPL version 2 only.
> Know your rights! As a customer of any product that uses grsecurity
> in binary form, you are entitled to the complete corresponding source
> code. Companies who do not ship the complete corresponding source code
> alongside distributed binaries must provide you with a written offer for
> the source code transferrable to any other person and valid for
> three years. Please report any violations of our GPL license to
> compliance@grsecurity.net. We require that all our customers comply with the GPL.

Реальность такова, что ни один из патчей по ссылке скачать без авторизации невозможно!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #53

53. Сообщение от Аноним (53), 30-Дек-20, 12:06   +/
Please report any violations of our GPL license to compliance@grsecurity.net. We require that all our customers comply with the GPL.

Напиши здесь перевод статьи 2, пункту Б, лицензии GPL-2.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру