İçeriğe geç

İmaj root olarak çalışıyor (ARCH10001)

Anahtar config.docker.runs-as-root · Önem warning · Kategori security · CWE CWE-250

Süreci root olarak çalışan bir konteynere sızan saldırgan konteyner içinde root olur; etrafındaki her yanlış yapılandırma (bağlanmış bir sunucu yolu, fazladan bir yetki, bir çekirdek hatası) o zaman daha değerli hale gelir. Kural son aşamaya bakar: root ile başladığı bilinen bir temel imajdan sonra USER yok, ya da USER root / USER 0.

FROM node:22.11-alpine
WORKDIR /app
COPY . .
CMD ["node", "server.js"]
FROM node:22.11-alpine
WORKDIR /app
COPY --chown=node:node . .
USER node
CMD ["node", "server.js"]

Son aşamaya root olmayan bir hesapla USER ekleyin. Resmi imajlarda genellikle bir hesap hazırdır (node, nobody); Microsoft .NET imajlarında $APP_UID vardır.

  • Denetleyicinin tanımadığı bir temel imaj (şirketinizin kendi imajı): kullanıcısı Dockerfile’dan okunamaz.
  • Chiseled ve distroless .NET imajları ile adında nonroot, unprivileged ya da rootless geçen imajlar: root olmayan kullanıcıyla başlarlar.
  • Son aşamanın üzerine kurulduğu önceki bir aşamada (FROM build) verilmiş USER.