В Linux жесткие и мягкие ссылки относятся к файлам, которые очень важны, если их не очень хорошо защищать, любые уязвимости в них могут быть использованы пользователями или злоумышленниками.
Общей уязвимостью является symlink race.
Это уязвимость системы безопасности в программном обеспечении, которая возникает, когда программа ненадежно создает файлы (особенно временные файлы), а пользователь системы может создать символическую (мягкую) ссылку на такой файл.
Это практически происходит так:
программа проверяет, существует ли временный файл или нет, в противном случае она создает файл.
Но за этот короткий промежуток времени между проверкой файла и его созданием злоумышленник может создать символическую ссылку на файл, хоть ему или ей не разрешен доступ.
Поэтому, когда программа работает с допустимыми правами, создается файл с тем же именем, что и созданный злоумышленником, она буквально создает целевой (связанный) файл, к которому намеревался получить доступ злоумышленник.
Это, следовательно, может предоставить злоумышленнику путь для кражи конфиденциальной информации из учетной записи root или для запуска вредоносной программы в системе.
Поэтому в этой статье мы покажем вам, как защищать жесткие и символические ссылки от пользователей или хакеров в дистрибутивах CentOS / RHEL 7.
В CentOS / RHEL 7 существует жизненно важная функция безопасности, которая позволяет создавать ссылки или работать с программами только в том случае, если выполняются некоторые условия, как описано ниже.
Для жестких ссылок
Пользователю системы для создания ссылки необходимо выполнить одно из следующих условий.
- пользователь может ссылаться только на файлы, которым он владеет.
- пользователь должен сначала иметь доступ на чтение и запись к файлу, к которому он хочет подключиться.
Для символических ссылок
Процессам разрешено следовать только по ссылкам, которые находятся за пределами доступных для записи (другим пользователям разрешено писать) каталогов с стики битами, или одно из следующего должно быть выполнено:
- процесс, следующий пр символической ссылке, является владельцем символической ссылки.
- владелец каталога также является владельцем символической ссылки.
Включение или отключение защиты жестких и символических ссылок
Важно отметить, что эта функция по умолчанию включена с использованием параметров ядра в файле /usr/lib/sysctl.d/50-default.conf (значение 1 означает enable).
fs.protected_hardlinks = 1 fs.protected_symlinks = 1
Однако по той или иной причине, если вы хотите отключить эту функцию безопасности; создайте файл с именем /etc/sysctl.d/51-no-protect-links.conf с указанными ниже параметрами ядра (значение 0 означает «disable»).
fs.protected_hardlinks = 0 fs.protected_symlinks = 0
Сохраните и закройте файл.
Затем используйте приведенную ниже команду для выполнения вышеуказанных изменений (эта команда фактически загружает настройки из каждого файла конфигурации системы).
# sysctl --system или # sysctl -p #on older systems