предварительная ссылка

Предварительная ссылка Основы предварительной привязки Предварительная привязка оптимизирует время загрузки приложений, преобразуя символы библиотек перед запуском.  Программы состоят из кода, […]

Предварительная ссылка

  • Основы предварительной привязки

    • Предварительная привязка оптимизирует время загрузки приложений, преобразуя символы библиотек перед запуском. 
    • Программы состоят из кода, который требует внешних разделяемых библиотек, которые динамически компонуются во время выполнения. 
    • Динамическая компоновка имеет преимущества в размере кода, но имеет недостатки в производительности из-за необходимости разрешения библиотек. 
  • Применение в Mac OS

    • Mac OS хранит исполняемые файлы в формате Mach-O и выполняет предварительную привязку во время установки или оптимизации. 
    • В Mac OS X предварительная привязка менялась несколько раз, начиная с версии 10.2, ускоряя последующие запуски. 
    • В версии 10.4 были подключены только системные библиотеки, а в 10.5 и последующих версиях Apple заменила предварительную привязку общим кэшированием dyld. 
  • Применение в Linux

    • В Linux предварительная привязка выполняется с помощью программы prelink, которая ускоряет запуск систем с большим количеством библиотек. 
    • Результаты предварительной привязки в Linux неоднозначны, но она может быть полезна для систем с большим количеством библиотек, таких как KDE. 
  • Предварительная рандомизация ссылок

    • Prelink может рандомизировать адреса библиотек, затрудняя атаки с возвратом к libc. 
    • Рандомизация расположения адресного пространства (ASLR) для библиотек не может использоваться совместно с prelink без нарушения ее целей. 
    • Prelink предоставляет собственную рандомизацию, но это не предотвращает утечку информации. 
  • Уязвимости и рекомендации

    • Злоумышленники могут обнаружить адреса загрузки библиотек в привилегированных демонах, что может привести к утечке информации. 
    • Prelink часто выполняется периодически, что может привести к изменению адресов библиотек со временем. 
    • Рекомендуется использовать независимые от позиции исполняемые файлы (PIE) и встроенные в PIE сетевые программы и SUID для повышения безопасности. 
  • Проблемы и рекомендации

    • Предварительная привязка может вызывать проблемы с библиотеками checkpoint и restart, а также с другими библиотеками, использующими blcr. 
    • При установке контрольной точки на одном хосте и перезапуске на другом хосте могут возникать ошибки segfault из-за различий в рандомизации адресов. 
  • Ссылки и дополнительные ресурсы

    • В статье есть ссылки на руководства по администрированию Linux, официальные релизы Якуба Елинека и проект Yocto-перекрестная. 

Полный текст статьи:

предварительная ссылка — Википедия

Оставьте комментарий

Прокрутить вверх