Mastodon Mastodon Mastodon Mastodon

Символическая ссылка

Обновлено: · CyberSecureFox Editorial Team

Символическая ссылка (симлинк) — объект файловой системы, который указывает на другой файл или каталог по его пути, так что программы, открывающие ссылку, незаметно перенаправляются к цели.

Как работают символические ссылки

Символическая ссылка хранит только путь к целевому объекту. В Linux и macOS её создают командой ln -s; Windows поддерживает символические ссылки через mklink, а также точки соединения NTFS (junctions) и другие точки повторного анализа (reparse points). В отличие от жёсткой ссылки, симлинк может указывать на другую файловую систему или на ещё не существующий объект. Симлинки широко используются для управления версиями ПО, общими конфигурационными файлами и структурой каталогов.

Почему символические ссылки важны для безопасности

Проблема возникает, когда привилегированная программа переходит по ссылке, созданной атакующим. Эта слабость описана как CWE-59 (Improper Link Resolution Before File Access, «следование по ссылке»). Типичные сценарии:

  • Атаки на временные файлы — процесс с правами root пишет в файл с предсказуемым именем в /tmp; атакующий заранее создаёт там симлинк на /etc/passwd или другой важный файл, и тот перезаписывается.
  • Time-of-check to time-of-use — файл подменяется ссылкой между проверкой безопасности и его использованием; это состояние гонки (CWE-367).
  • Злоупотребление службами Windows — точки соединения и ссылки диспетчера объектов заставляют установщики, службы обновления и даже антивирусы удалять или записывать произвольные файлы с правами SYSTEM — частый путь к локальному повышению привилегий.
  • Вредоносные архивы — ZIP- или tar-файлы с симлинками заставляют распаковщики записывать данные за пределы целевой папки, подобно обходу каталогов.

Как предотвратить атаки через симлинки

  • В Linux не отключать параметр ядра fs.protected_symlinks.
  • Создавать временные файлы безопасно (например, через mkstemp) и открывать файлы с флагами вроде O_NOFOLLOW.
  • Избегать файловых операций привилегированных служб в каталогах, доступных пользователям на запись.
  • Проверять цели ссылок при распаковке архивов.
Синонимы:
симлинк, symlink, мягкая ссылка