#security #glibc #dynamic-linking
#Безопасность #glibc #динамическое связывание
Вопрос:
Я компилирую программу (которая написана на Rust), которую я хотел бы совместить с очень старыми и устаревшими системами, включая некоторые EOL-ed дистрибутивы Linux. Основным препятствием для этого является то, что в старых системах отсутствуют последние двоичные файлы glibc.
Решение не такое сложное, вы должны просто ссылаться на очень старый двоичный файл. Однако известно, что эти старые двоичные файлы имеют много уязвимостей в системе безопасности, некоторые из которых довольно серьезные. Я хотел бы поддерживать совместимость с людьми, работающими на этих древних и небезопасных установках glibc, не подвергая риску моих более ответственных пользователей.
Приведет ли привязка к старым версиям glibc к уязвимостям в системах, установки которых обновлены?
Ответ №1:
Приведет ли привязка к старым версиям glibc к уязвимостям в системах, установки которых обновлены?
Нет, если вы ссылаетесь динамически.
Все исправления, влияющие на GLIBC, находятся в libc.so.6
(и связанных библиотеках). Эти библиотеки обычно поступают из системы, поэтому в современной системе они являются актуальными (по определению), и ваша программа будет автоматически использовать их и, следовательно, сама будет обновляться.
Фактически, это одна из основных причин динамической привязки: обновление libc.so.6
исправляет все (динамически связанные) программы в системе сразу. При статической привязке каждая программа должна быть повторно привязана, чтобы исправление вступило в силу.