记一次docker 容器被黑总结

前记

很久没写文章了,一是因为自己的知识较为零散,另一个就是比较懒了,大多都零碎记录在了本地。

很久没有登录osc,登录的时候发现账号被冻结了,激活才能使用,这个安全功能给个赞,不过貌似存在邮件轰炸功能,可测,不表于此。

今天就简单说下最近遇到的一次业务jenknis docker容器被黑后排查的故事。

初步分析

1. 进入主机,排查history文件,进程,系统命令,常见文件,网络通信等基本方面。
2. ps/netstat/psof等系统命令文件被替换、存在异常进程名、存在大量异常端口通信、/tmp、/etc等目录存在可疑文件。
3. 从以上等特征初步分析为gates系列木马变种,含挖矿与ddos功能。
4. 根据业务已有对外网开放的服务及其他方面确认,此次被黑是因为5月份出现的jenknis反序列化漏洞导致,所以在history文件也就没有找到太多有价值的东西。

专向docker

既然系统本身没有太多日志,而且鉴于漏洞的利用方式,转向排查docker jenknis容器的日志或系统的syslog日志(syslog日志不排除被删)。

docker logs

# 查看容器2eb09877d1b0的运行日志,默认来自系统的/dev/stderr和/dev/stdout
docker logs 2eb09877d1b0

# 查看容器2eb09877d1b0 2017-06-17日开始的100条日志
docker logs -f -t --since="2017-06-17" --tail 100  2eb09877d1b0 

# 上面语句可能存在一个问题,无法导出含stderr的docker logs、无法grep查看docker logs日志
# grep查看含有特定字符的日志行
docker logs 2>&1 | grep hello
docker logs 2>/dev/null | grep hello

# 导出docker logs,查找docker 容器日志存放目录
docker inspect --format='{{.LogPath}}' 2eb09877d1b0

调查结果

从docker容器日志里可以详细看到每一次jenknis报错信息中含有的攻击者执行的命令字符串,至此基本确定了最早的攻击时间和攻击流程。

未完成的遗憾

一次完美的溯源应该是查清谁于什么时间通过什么方式黑进来,做了什么事情。
而此次溯源中出现了一点不完美是因为docker logs没有记录源ip。

后来查询官方文档后,自定义了docker logs记录的数据来源与日志格式,详细参考:
https://github.com/nginxinc/docker-nginx/blob/8921999083def7ba43a06fabd5f80e4406651353/mainline/jessie/Dockerfile#L21-L23
https://docs.docker.com/engine/admin/logging/view_container_logs/

转载于:https://my.oschina.net/u/1188877/blog/1501269

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值