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, м'яке посилання