Пользователь в Docker-контейнере по умолчанию root.
Если сервис скомпрометирован и атакующий получает доступ внутрь контейнера, запуск от root существенно расширяет поверхность атаки.
Как исправить
В distroless-образах пользователь
nonroot уже есть из коробки:FROM gcr.io/distroless/static-debian12
COPY --from=builder /app/server /server
USER nonroot:nonroot
CMD ["/server"]
В Alpine-образах пользователя нужно создать вручную:
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser
Дополните защиту read-only корневой файловой системой — в pod spec Kubernetes или в Docker Compose:
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
Это лишает атакующего возможности записывать файлы в контейнер даже при наличии RCE-уязвимости.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoDeep
