main

Ещё раз про MAC'и

Неделю назад в @omsklug'е зашла речь про tomoyo и прочие mac'и. Пришлось вспомнить, почему я таки отказался от tomoyo в пользу apparmor'а. Безотносительно сложности писания политик (что упоминалось по ссылке выше), навскидку вспомнилось следующее:

Режим обучения

Да, он добавляет пути автоматически, но!

Представим, что приложение создаёт 2 временных файла в секунду (например squid). Через пару минут режим обучения превысит лимит на количество путей в профиле (допустим 500) и всё, последующие обращения обломаются, приложение упадёт. Чистить это говно - руками, пока не почистишь - даже не добавить регексп, описывающий эти самые временные файлы.

При этом squid - достаточно простое приложение в плане внешних взаимодействий.

Фатальный недостаток™

Фатальное недостаток™ в следующем: если тот же сквид запущен через

  • init
  • ssh/shell
  • ssh/mc/shell

  • для tomoyo это при разных приложения. Всё, приехали. Описать полный граф взаимодействий в скриптовом init'е - адовая боль, страдание и месяцы работы.

Другой пример - отправка почты с различных приложений. mail вызывается с десятка известный мест, и ещё с десятка неожиданных, притом хрен угадаешь заранее как именно, sh, rsh, bash или просто exec.

Да, есть aggregate, но блжад, для всех случаев их не добавишь. И при их черезмерном использовании вся "защита" рассеивается как дым.