运维同事说Drone中的tmate是木马

6,388 阅读2分钟

起因

运维同事:今天运维同事问drone-runner-docker这个容器是不是你在用,腾讯安装报毒drone里面有木马。

:这个容器实例是CI/CD工具持续交付的核心服务来,停掉影响很大。这样吧,你提供多点信息我找一下解决办法。

后来运维同事提供出了更多信息,最终指向名叫tmate的这个程序。

官方说法

到底是不是木马我也不是很清楚,抱着找一找看看官方是怎样说的心态。

那它到底是不是木马呢?官方回答:不是

下面是原文:Detected Linux/Hildegard.A!MTB in drone/drone-runner-docker:1 - Support - Drone

详情

官方回答是这样的:

这看起来像是一个误报,其中 tmate 3 被您的扫描仪标记。 Tmate 是一个远程会话工具,包含在 docker 镜像中。 它促进了我们的远程调试功能,您可以在此处阅读更多信息: discourse.drone.io/t/feature-p…

Tmate 是一个合法的工具,被 Travis 等其他 CI 提供者使用: docs.travis-ci.com/user/runnin…

如果您查看您提供的 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 drone

FROM scratch

ENV GODEBUG netdns=go
ENV DRONE_PLATFORM_OS linux
ENV DRONE_PLATFORM_ARCH amd64

COPY --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"]