Как /tmp превращается в точку атаки

Каталог `/tmp` есть почти на каждом Linux-сервере и обычно доступен для записи разным пользователям. Приложения хранят там временные файлы, сокеты и lock-файлы.

Риск возникает, если программа создаёт файл по предсказуемому пути, например `/tmp/app.lock`. Другой пользователь может заранее создать этот путь как символическую ссылку. Если файл затем открывает процесс с правами `root`, он может изменить объект, к которому у атакующего нет доступа.

Права каталога проверяются командой:

`ls -ld /tmp`

Обычно результат содержит `drwxrwxrwt`. Sticky bit ограничивает удаление и переименование чужих файлов, но не устраняет ошибки приложений при работе с предсказуемыми именами.

Для защиты применяют безопасное создание временных файлов, проверку владельца и прав, флаги `O_NOFOLLOW`, а в сложных сценариях — системный вызов `openat2()`.

Подпишись, тут про технолоджии.

P.S. Меня зовут Бедняков Артем, я разрабатываю backend-решения на Python любой сложности:

  • REST API и микросервисы;
  • агентные системы и AI-интеграции;
  • Telegram-боты и Mini Apps;
  • парсеры и автоматизация;
  • интеграции с внешними сервисами и API;
  • тестирование и CI/CD;
  • DevOps и развёртывание;
  • аудит и проверки безопасности.

Если вам нужна разработка или есть вопросы по реализации проекта — пишите мне в Telegram
Всегда рад обсудить задачу и помочь найти решение.

Также подписывайтесь на мой Telegram-канал IT POLICE, где я пишу о Python, backend-разработке, технологиях и кибербезопасности.