Dockerfile non-root user(rootless mode)

Jane
Nov 9, 2021

最近code scan有遇到一個issue

Fortify Dockerfile Misconfiguration: Default User Privilege

這個弱點主要是一般人在寫Dockerfile時都會是用default user下去run

但如果把dockerfile包成image並丟到k8s pod上run成container

當惡意人士有辦法access pods時

惡意人士只要下

kubectl exec -it ${pod-id} -- bash

就可以以root身份對app內部做操作

是個蠻危險的弱點

解決方法

在Dockerfile前頭加上

RUN useradd -m --uid 1001 rootless

並在中間將rootless user需要的權限都用chown給他

chown rootless ${path}

最後在CMD或是ENTRYPOINT前面加上

USER rootless

Docker build and run起來就會將權限

限縮在rootless權限

Reference

--

--