как настроить разрешения «скачать», чтобы предотвратить выполнение эксплойтов

Существует хост с локальной службой, которая получает данные из удаленного места (например, http) и сохраняет его локально в /var/log/data/ в некоторых mydir.

 $ ls -al /var/log/data drwxr-sr-x+ 4 root datalog 4096 Feb 4 18:59 . drwxr-xr-x 4 root root 4096 Feb 4 18:59 .. drwxr-sr-x+ 2 root service 4096 Feb 4 19:07 mydir 

Локальная служба запускается с сервисом: владение сервисом.

Предположим, что я хочу предотвратить выполнение эксплойтной программы, которая будет найдена в /var/log/data/mydir :

 -rwxr-sr-x 1 root service 133156 Jul 19 2014 exploit 

Обратите внимание на бит «s» (setgid) в файле эксплойта, который заставляет его выполнять с правами группы обслуживания (аналогично локальной службе).

Как я могу предотвратить потенциальный эксплойт от выполнения там?
Удаление «x» (go-x) из /var/log/data/ и /var/log/data/mydir ? Возможно, это нарушит работу службы …?
Любая другая идея?

3 Solutions collect form web for “как настроить разрешения «скачать», чтобы предотвратить выполнение эксплойтов”

Поскольку я вижу, что нет права на запись для group & others, поэтому они не могут создать любой файл / каталог здесь.

вам просто нужно убедиться, что если вы удалите разрешение на запись от root, что произойдет?

Вы можете использовать ACL, чтобы запретить всем пользователям права на запись и выполнение, а затем явно разрешить только пользователю учетной записи службы иметь только полный rwx. http://linux.die.net/man/1/setfacl

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

  • только для чтения
  • смонтирован с опцией noexec
  • не содержит каталога, доступного для записи службой

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

Обратите внимание, что setgid – это в основном красная селедка. Если злоумышленник может создать исполняемый файл и может обмануть вашу службу при ее запуске, эксплойт будет работать с группой службы в любом случае. Setgid – это только проблема, если злоумышленник может создать исполняемый файл setgid через вашу службу и может обмануть другого пользователя для выполнения этого файла.

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

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

  • Как предоставить разные разрешения для каждого пользователя?
  • Как я могу создать резервную копию каталога в NTFS, сохраняя атрибуты файлов Unix?
  • Передача: избавиться от старых не удаленных файлов?
  • Выгрузить определенный файл из кеша файловой системы Linux?
  • Выполнение команды по нескольким файлам в нескольких каталогах
  • Выбор случайной выборки из дерева каталогов
  • Как найти файл, соответствующий трубе, открытому процессом?
  • Фильтрация файла журнала
  • Сжатие всех файлов, содержащих определенную строку
  • Как получить распределение размеров файлов?
  • Повреждение имени файла
  • Interesting Posts

    Как перенаправить только stderr?

    Невозможно отключить галочку в режиме ожидания в GNOME 3.22

    Как заставить интерфейс tap / tun работать в рабочем состоянии?

    Как предотвратить chgrp от очистки «бит setuid»?

    Как использовать тип-вперед для поиска истории bash (Ctrl-R)?

    Как записывать пропускную способность сети на порт в течение длительного периода времени

    Как включить CRS-правила в mod_security в Debian 9?

    Как я могу сопоставить устройство ttyUSBX с последовательным устройством USB

    Каковы другие алгоритмы управления перегрузками, специально разработанные для беспроводных сетей с потерями, таких как LTE и WiMax?

    Как работает sudo?

    Сценарий Bash для сканирования файлов для слов и создания отчета

    Клавиши со стрелками в `less`

    Как подключить файловую систему с заданной шины USB: устройство

    Не удается проверить SSH на localhost – проверка ключа хоста

    Сообщение Emacs: сохранить отправленные письма

    Linux и Unix - лучшая ОС в мире.