Поиск по сайту:

Как защитить жесткие и символические ссылки в CentOS/RHEL 7


В Linux жесткие и программные ссылки относятся к файлам, которые очень важны, и если они не защищены очень хорошо, любые уязвимости в них могут быть использованы злонамеренными пользователями системы или злоумышленниками.

Распространенной уязвимостью является гонка символических ссылок. Это уязвимость безопасности программного обеспечения, которая возникает, когда программа небезопасно создает файлы (особенно временные файлы), и злонамеренный пользователь системы может создать символическую (мягкую) ссылку на такой файл.

Читайте также: как создать жесткую и символическую ссылку в Linux

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

Таким образом, когда программа запускается с действительными привилегиями и создает файл с тем же именем, что и файл, созданный злоумышленником, она буквально создает целевой (связанный) файл, к которому злоумышленник намеревался получить доступ. Следовательно, это может дать злоумышленнику возможность украсть конфиденциальную информацию из учетной записи root или запустить вредоносную программу в системе.

Поэтому в этой статье мы покажем вам, как защитить жесткие и символические ссылки от злоумышленников или хакеров в дистрибутивах CentOS/RHEL 7.

В CentOS/RHEL 7 существует важная функция безопасности, которая позволяет программам создавать ссылки или переходить по ним только в том случае, если выполнены некоторые условия, как описано ниже.

Для жестких ссылок

Чтобы пользователь системы мог создать ссылку, должно быть выполнено одно из следующих условий.

  • пользователь может ссылаться только на файлы, которыми он владеет.
  • пользователь сначала должен иметь доступ для чтения и записи к файлу, на который он или она хочет создать ссылку.

Для символических ссылок

Процессам разрешено переходить только по ссылкам, которые находятся за пределами общедоступных для записи (другим пользователям разрешено писать) каталогов, имеющих липкие биты, или должно выполняться одно из следующих условий.

  • процесс, следующий по символической ссылке, является владельцем символической ссылки.
  • владелец каталога является также владельцем символической ссылки.

Включить или отключить защиту жестких и символических ссылок

Важно отметить, что по умолчанию эта функция включена с использованием параметров ядра в файле /usr/lib/sysctl.d/50-default.conf (значение 1 означает включение ).

fs.protected_hardlinks = 1
fs.protected_symlinks = 1

Однако по той или иной причине, если вы хотите отключить эту функцию безопасности; создайте файл с именем /etc/sysctl.d/51-no-protect-links.conf с указанными ниже параметрами ядра (значение 0 означает отключение).

Обратите внимание на 51 в имени файла (51-no-protect-links.conf), его нужно читать после файла по умолчанию, чтобы переопределить настройки по умолчанию.

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

Сохраните и закройте файл. Затем используйте команду ниже, чтобы внести вышеуказанные изменения (эта команда фактически загружает настройки из каждого файла конфигурации системы).

sysctl --system
OR
sysctl -p  #on older systems

Возможно, вам также будет интересно прочитать следующие статьи.

  1. Как защитить паролем файл Vim в Linux
  2. 5 команд «chattr», позволяющих сделать важные файлы НЕИЗМЕНИМЫМИ (неизменяемыми) в Linux

Вот и все! Вы можете задать свои вопросы или поделиться любыми мыслями по этой теме через форму обратной связи ниже.