Ситуация
Служба lab-tickets — приложение tickets-api — принимает заявки техподдержки. Её юнит писали наспех: служба
работает от root, и ничто не мешает ей делать всё, что может root. На следующей неделе — проверка безопасности,
а systemd-analyze security lab-tickets.service сейчас ставит службе 9.6 UNSAFE.
Заявки лежат в /var/lib/tickets, ключ API — в /etc/tickets/api.key. Учётную запись tickets для службы завёл
пакет, но в юнит её так и не вписали. Как обращаться к службе, написано в /usr/share/doc/tickets-api/README:
curl -s http://127.0.0.1:8097/health
key=$(sudo cat /etc/tickets/api.key)
curl -s -H "X-Api-Key: $key" http://127.0.0.1:8097/tickets
Задача
lab-ticketsработает и включена: прежние заявки на месте, новая заявка (POST /tickets) сохраняется в/var/lib/tickets. Код приложения прежний.- Процесс службы работает не от root, без привилегий и с
NoNewPrivileges=yes. Ключ API может прочитать root и сама служба — больше никто. ProtectSystem=strict: служба не может писать в/etc,/usr,/var/lib,/var/logи/opt.systemd-analyze security lab-tickets.service— не выше 4.9, оценка OK.
Интернета на машине нет, всё нужное уже установлено. Команды администратора запускай через
sudo.
Цели лабы
0 из 4-
lab-tickets работает и включена, прежние заявки на месте, новая сохраняется в /var/lib/tickets; код приложения прежний — ещё не проверялась
-
Процесс службы не root, без привилегий и с NoNewPrivileges; ключ API не может прочитать посторонний пользователь — ещё не проверялась
-
ProtectSystem=strict действует — служба не пишет в /etc, /usr, /var/lib, /var/log и /opt — ещё не проверялась
-
systemd-analyze security lab-tickets.service — не выше 4.9 (оценка OK) — ещё не проверялась
Подсказки
открыто 0 из 3 · открываются по одной
Подсказка 1
Показать решение
после 3 неудачных проверок