起因
运维同事:今天运维同事问drone-runner-docker
这个容器是不是你在用,腾讯安装报毒drone里面有木马。
我:这个容器实例是CI/CD工具持续交付的核心服务来,停掉影响很大。这样吧,你提供多点信息我找一下解决办法。
后来运维同事提供出了更多信息,最终指向名叫tmate的这个程序。
官方说法
到底是不是木马我也不是很清楚,抱着找一找看看官方是怎样说的心态。
那它到底是不是木马呢?官方回答:不是
下面是原文:Detected Linux/Hildegard.A!MTB in drone/drone-runner-docker:1 - Support - Drone
详情
官方回答是这样的:
这看起来像是一个误报,其中 tmate 3 被您的扫描仪标记。 Tmate 是一个远程会话工具,包含在 docker 镜像中。 它促进了我们的远程调试功能,您可以在此处阅读更多信息: https://discourse.drone.io/t/feature-preview-debug-mode/8344
Tmate 是一个合法的工具,被 Travis 等其他 CI 提供者使用: https://docs.travis-ci.com/user/running-build-in-debug-mode/#connecting-to-the-job-running-in-the-debug-mode
如果您查看您提供的 Virus Total 仪表板,您会发现许多提供商都将其标记为潜在威胁而非病毒 (Not-a-virus:HEUR:RemoteAdmin.Linux.Tmate.a)。 这是有道理的,因为尽管 Tmate 是一个具有合法用途的合法工具,但攻击者将 Tmate 与木马恶意软件捆绑在一起以获取其反向 shell 功能 [1],因此它被标记为潜在威胁。
[1] Hildegard: New TeamTNT Cryptojacking Malware Targeting Kubernetes 1
tmate工具并不是木马,只是大多木马会包含这个工具来进行会话通讯。所以当清楚你使用的服务情况时,大多数下都是误报。
解决误报
但是每个人的情况并不一样。如果你和原文中提问的人一样,来自安全部门的诉求时,大多很难解释清楚。
在原文中也提供了解决办法:在drone-runner-docker镜像的基础下删除tmate二进制文件,并封装成新的镜像。虽然无法使用Drone的远程调试功能,却能避免误报的情况。
FROM drone/drone-runner-docker:1-linux-amd64 as droneFROM scratchENV GODEBUG netdns=goENV DRONE_PLATFORM_OS linuxENV DRONE_PLATFORM_ARCH amd64COPY --from=drone /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/COPY --from=drone /bin/drone-runner-docker /bin/LABEL com.centurylinklabs.watchtower.stop-signal="SIGINT"ENTRYPOINT ["/bin/drone-runner-docker"]
原文:https://juejin.cn/post/7091967478598729758