从病毒到“基础软件污染”,Linux 真的安全吗?


从病毒到“基础软件污染”,Linux 真的安全吗?

文章插图
作者 | 阿里云安全专家王福维(弗为)、
阿里云技术专家程聪(清音)
责编 | 屠敏
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
长久以来,linux主机曾一直被认为是比windows更安全的操作系统,已知病毒形势远没有Windows多样和严重 。而近年随着云计算的兴起,Linux系统在云主机的高占比形成了联网主机的主要算力,自然而然地吸引了病毒、黑产的注意力,但对Linux恶意程序攻防的研究仍未达到Windows同等程度,由公众所认识到的Linux恶意程序基本以挖矿程序和DDoS木马为主 。
在对云上海量主机文件进行巡检和安全分析过程中发现,尽管考虑到Linux开源生态天然的版本分化因素,Linux的大量基础软件存在超出正常现象的碎片化现象 。分析的基础软件包括操作系统基础程序,如ps、kill、netstat等;以及服务类基础应用软件,如Apache httpd、Nginx、OpenSSH 。部分软件的版本碎片化呈现日常快速增长趋势,经过分析,其中部分可关联到已知的攻击组织和事件,如DDG挖矿僵尸网络新近被发现存在篡改系统程序植入木马下载器代码;而更多的情况在此前则并未引起注意和披露,也无从解释 。随着分析深入,阿里云安全运营中心逐渐发现了围绕污染基础软件展开的多种入侵,而因为基础软件的独特作用,这样的污染往往难以在事中和事后由一般用户进行发现,更难以根除 。
为了更好的应对Linux操作系统上独有的安全挑战,2020年以来,阿里云云安全中心专项建设Linux二进制程序恶意样本的发现和分析,通过对云上活跃二进制程序做大数据分析,依靠对可疑程序做多维度打标、大样本量代码相似度与差异聚类比对,形成了一份独有的恶意样本与特征库 。其中最典型的一个大类,是对Linux云服务器上搭载的基础软件污染的样本,形成了区别于Windows病毒的一种变种速度快、隐藏方式多、检测难度高的主要威胁形式 。以六月份为例,该类别下日均新检测到带有恶意代码的篡改系统二进制程序3840例样本 。
本文将从一个典型案例——sshd后门切入,介绍Linux基础软件污染的主要形式,特有威胁,以及查杀关键 。
从病毒到“基础软件污染”,Linux 真的安全吗?

文章插图
入口之争:从OpenSSHsshd后门谈起
对于入侵行为,sshd作为登录入口,显然很容易被用来当做靶标 。如果sshd程序及其配置文件被替换,一方面可以给入侵者留下权限维持的稳定后门,另一方面作为常驻系统的daemon守护进程,sshd中的代码也拥有反复后台执行的机会 。因此,围绕篡改sshd的各种后门层出不穷 。早期思路,如ssh server wrApper,将sshd功能封装后以脚本替换原始sshd二进制程序,对此有多种方案可以很容易检测 。
2018年底,安全公司ESET发布白皮书《The dark side of the ForSSHe》,对其三年期间跟踪的OpenSSH后门进行披露 。从Ebury后门开始演进,白皮书共披露了21个后门sshd家族 。这些后门在OpenSSH源码基础上,将后门代码以补丁形式植入并编译,从而了无痕迹地得到植入特权登录的硬编码账号、能够窃取合法登录账密的sshd版本用于替换 。近几年,这种方案也有一定范围的流传,如采用公开的后门补丁代码模板,可以很方便的进行后门定制 。
在云上,通过对全量/usr/sbin/sshd程序文件进行全量的比对分析发现,这一种简单的后门思路衍生出了大量的变形和花式,且在入侵当中发挥了精心设计的作用 。
? sshd后门脆弱点地图
sshd后门的最基本功能有两项,即针对登录请求的用户校验过程,植入硬编码的账户密码用于绕过校验实现特权免密登录,以及将合法登录请求的账密进行记录或直接回传 。因此对sshd程序样本的分析,首要关键点是定位用户校验相关函数,检查是否存在可疑新增代码或过程调用 。
在OpenSSH中,支持如下的用户校验机制:
userauth_jpake J-PAKE授权协议userauth_hostbased 基于主机互信userauth_kbdint 键盘交互式userauth_pubkey 公钥机制userauth_passwd 密码userauth_none 无校验userauth_gssapi GSSAPI而每种校验机制的实现,又涉及较复杂的过程调用链路和支撑的数据构造 。仅以密码校验为例,下列函数处在校验链路及分支中,因此都可能在代码层面运行时拿到明文的账号密码,造成数据篡改和外泄:
userauth_passwdmm_auth_password


推荐阅读