Dockle:用于安全和最佳实践的容器图像链接器

2020-07-13 03:44:23

Dockle-安全容器映像链接,帮助构建最佳实践的Docker映像,易于入门。

$BREW取消点击Good with tech/dockle#使用0.1.16或更早版本的用户$BREW install Good with tech/r/dockle$dockle[YOUR_IMAGE_NAME]。

$VERSION=$(cURL--静默";https://api.github.com/repos/goodwithtech/dockle/releases/latest";|\grep';";标记名称";:';|\sed-E';s/.*";v([^";]+)";.*/\1/';\)&;rpm-ivh https://github.com/goodwithtech/dockle/releases/download/v${版本}/dockle_${版本}_linux-64bit.rpm。

$VERSION=$(cURL--静默";https://api.github.com/repos/goodwithtech/dockle/releases/latest";|\grep';";标记名称";:';|\sed-E';s/.*";v([^";]+)";.*/\1/';\)&;curl-L-o dockle.deb https://github.com/goodwithtech/dockle/releases/download/v${版本}/dockle_${版本}_linux-64bit.deb$sudo dpkg-i dockle.deb&;&;rm dockle.deb。

$VERSION=$(cURL--静默";https://api.github.com/repos/goodwithtech/dockle/releases/latest";|\grep';";标记名称";:';|\sed-E';s/.*";v([^";]+)";.*/\1/';\)&;curl-L-o dockle.zip https://github.com/goodwithtech/dockle/releases/download/v${版本}/dockle_${版本}_windows-64bit.zip$unzip dockle.zip&;&;rm dockle.zip$./dockle.exe[图像名称]。

下载适用于您的操作系统/体系结构的存档文件。解压归档文件,并将二进制文件放入$PATH中的某个位置(在UNIX-y系统上,/usr/local/bin或类似位置)。

在Docker Hub上也有一个Dockle图像。您可以在安装该命令之前尝试停靠。

$VERSION=$(cURL--静默";https://api.github.com/repos/goodwithtech/dockle/releases/latest";|\grep";";标记名称";:';|\sed-E';s/.*";v([^";]+)";.*/\1/';\)&;docker run--rm-v/var/run/docker.sock:/var/run/docker.sock\good with tech/dockle:v${version}[your_image_name]

当您想要扫描主机上的映像时,您只需要-v/var/run/docker.sock:/var/run/docker.sock。

FATAL-CIS-DI-0009:使用COPY而不是在文档文件中添加file:81c0a803075715d1a6b4f75a29f8a01b21cc170cfc1bff6702317d1be2fe71a3*使用COPY:/BIN/sh-c#(NOP)在/APP/Credentials.jsonFATAL-CIS-DI-0010:不在环境变量/文件中存储凭据*找到可疑文件名:app/Credentials.jsonFATAL-DKL-DI-0005:清除APT-GET CACHES*USE';rm-rf/var/lib/apt。APT-GET INSTALL-y gitFATAL-DKL-LI-0001:避免密码为空*未找到密码用户!用户名:nopasswdWARN-CIS-DI-0001:为容器创建用户*最后一个用户不能是root INFO-CIS-DI-0005:在docker拉取之前启用Docker*export DOKER_CONTENT_TRUST=1的内容信任/buildINFO-CIS-DI-0008:确认setuid/setgid文件的安全性*setuid文件:app/suid.txt urw-r--r--*setgid文件:app。grwxr-xr-x*setuid文件:bin/su urwxr-xr-x*setuid文件:bin/umount urwxr-xr-x*setuid文件:bin/mount urwxr-xr-x*setgid文件:usr/bin/ssh-agent grwxr-xr-x*setuid文件:etc/dow urw-r-*setuid文件:usr/bin/chsh。setgid文件:etc/passwd grw-r--r-*setgid文件:sbin/unix_chkpwd grwxr-xr-x*setgid文件:usr/bin/chage grwxr-xr-x*setuid文件:usr/bin/passwd urwxr-xr-x*setgid文件:usr/bin/expary grwxr-xr-x*setuid文件:usr。

$EXPORT DOCKLE_LATEST=$(CURL--静默";https://api.github.com/repos/goodwithtech/dockle/releases/latest";|\grep';";TAG_NAME";:';|\sed-E';s/.*";v([^";]+)";.*/\1/';\)$docker run--rm Good with tech/dockle:v${DOCKLE_LATEST}[YOUR_IMAGE_NAME]。

如果您要扫描主机上的映像,则需要挂载docker.sock。

FATAL-CIS-DI-0001:为容器创建用户*最后一个用户不能是rootWARN-CIS-DI-0005:在docker拉取/buildFATAL-CIS-DI-0006:向容器镜像添加健康检查指令*Not Found Health Check语句FATAL-CIS-DI-0007:不要在Dockerfile中单独使用更新指令*use&39;总是组合Run&39;app,为Docker*export启用内容信任/buildFATAL-CIS-DI-0006:向容器镜像添加健康检查指令*Not Found Health Check语句FATAL-CIS-DI-0007:不要在Dockerfile中单独使用更新指令*use&39;始终组合Run&39;ap.。安普。APT-GET INSTALL-y gitFATAL-CIS-DI-0008:删除镜像中的setuid和setgid权限*找到setuid文件:etc/passwd grw-r--r--*找到setuid文件:usr/lib/openssh/ssh-keysign urwxr-xr-x*找到setuid文件:app/hoge.txt ugrw-r--r--*找到setuid文件:app/hogid。在Dockerfile中使用Copy而不是Add*使用Copy:/bin/sh-c#(Nop)在/APP/Credentials.jsonFATAL-CIS-DI-0010中添加file:81c0a803075715d1a6b4f75a29f8a01b21cc170cfc1bff6702317d1be2fe71a3:不在环境变量中存储机密*找到可疑的ENV密钥:MYSQL_PASSWDFATAL-CIS-DI-0010:不存储机密文件*找到的可疑文件名:app/Credentials.jsonPASS-dkl-DI-0001:避免sudo命令FATAL。APK/dist-upgradePASS-DKL-DI-0004:使用apk add with--no-cacheFATAL-DKL-DI-0005:清除apt-get cache*use';apt-get lean&;&;rm-rf/var/lib/apt/list/*';:/bin/sh-c apt-get update&;&;apt-get install-y gitPASS-DKL-DI-0006:避免最新的标签FATAL-DKL-LI-0001:避免空密码*未找到密码用户!用户名:nopasswdPASS-DKL-LI-0002:BE UNIQUE UIDPASS-DKL-LI-0002:BE UNIQUE组。

{";摘要";:{";致命";:6,";警告";:2,";信息";:2,";通过";:7},";详细信息";:[{";代码";:";CIS-DI-0001";,";标题";:";创建容器";,";级别";:";警告";,";警报";:[";最后一个用户不应是root";]},{";代码";:";CIS-DI-0005";,";标题";:";启用Docker";,";Level";:";info";,";Alerts";:[";EXPORT DOKER_CONTENT_TRUST=1 Being Docker Pull/Build";]},{";code";:";CIS-DI-0006";,";Title";:";向容器镜像";,";级别";:";Warn";,";Alerts";:[";Not Found Health Check Statement";]},{";code";:";CIS-DI-0008";,";Title";:";删除镜像";中的setuid和setgid权限。,";级别";:";信息"

$cat.dockleIgnore#将root设置为默认用户,因为我们希望运行nginxCIS-DI-0001#使用最新标记,因为只检查内部的映像DKL-DI-0006。

或者,如果您只想显示结果而不让测试失败,那么在dockle命令中将--exit-code指定为0。

服务:-docker env:global:-Commit=${TRAVIS_COMMIT::8}BEVER_INSTALL:-docker build-t dockle-ci-test:${Commit}。-导出版本=$(cURL--无提示";https://api.github.com/repos/goodwithtech/dockle/releases/latest";|grep';";标记名称";:';|sed-E';s/.*";v([^";]+)";.*/\1/';)-wget https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.tar.gz-tar zxvf dockle_${版本}_linux-64bit.tar.gz脚本:-./dockle dockle-ci-test:${Commit}-./dockle--exit-code 1 dockle-ci-test:${Commit}。

作业:build:docker:-image:docker:18.09-git步骤:-checkout-setup_remote_docker-run:name:build image命令:docker build-t dockle-ci-test:${Circle_SHA1}。-运行:名称:安装dockle命令:|apk add--更新cURL版本=$(cURL--静默";https://api.github.com/repos/goodwithtech/dockle/releases/latest";|\grep';";TAG_NAME";:';|\sed-E';s/.*";v([^";]+)";.*/\1/';)wget https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.tar.gz tar zxvf dockle_${Version}_linux-64bit.tar.gz mv dockle/usr/local/bin-run:名称:使用dockle命令扫描本地映像:dockle--exit-code 1 dockle-ci-test:${Circle_sha1}工作流:版本:2版本:作业:-Build。

image:docker:稳定阶段:-test变量:docker_host:tcp://docker:2375/docker_driver:overlay2服务:-docker:dind unit_test:Stage:test Being_Script:-apk-uuv add bash git curl tar sed grep脚本:-docker build-t dockle-ci-test:${CI_COMMIT_SHORT_SHA}。-|版本=$(cURL--静默";https://api.github.com/repos/goodwithtech/dockle/releases/latest";|\grep";Tag_Name";:';|\sed-E';s/.*";v([^";]+)";.*/\1/';\)&;curl-L-o dockle.tar.gz https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.tar.gz&;&;\tar zxvf dockle.tar.gz-./dockle--退出代码1 dockle-ci-test:${CI_COMMIT_SHORT_SHHA}。

Dockle可以从私有注册表下载图像,无需安装Docker或任何其他第三方工具。它是为便于在CI流程中使用而设计的。

要从Docker Hub下载私有存储库,需要设置DOCKLE_AUTH_URL、DOCKLE_USERNAME和DOCKLE_PASSWORD ENV变量。

与您的组织一起支持此项目。您的徽标将显示在这里与链接到您的网站。[贡献]