auth_password
sys_auth_passwd
sshpam_auth_passwd
auth_krb5_password
虽然已有公开信息的原始sshd后门仅针对密码校验的auth_passwd函数,但在对活跃样本梳理后发现,在野恶意版本的恶意代码植入位置选择,已经涉及到了以上多种校验方法的几乎所有关联函数 。以下仅针对密码校验相关后门的花式实现做典型实例说明 。
? 典型sshd后门实现示例
后门连环:userauth_passwd、auth_password、sys_auth_passwd植入点案例
这是三个具有调用关系的函数 。userauth_password为外层接口,用于判断当前请求是否为密码更改,因此会提取用户请求中的密码明文,为特权登录密码植入留下机会 。该函数的原始代码与后门伪代码如下:
文章插图
而下一级会调用到auth_password函数,这里会无差别提取请求中的明文密码,并由配置判断分派,是否由系统KRB5(Kerberos)、PAM(Pluggable Authentication Module)还是原始账密方式执行校验 。这里的后门实现一般同时包含了特权密码植入和合法账密窃取落盘:
文章插图
而再下一级到sys_auth_passwd中,在正常的密码加盐哈希校验之前,同样也有后门实现直接进行明文密码比对,如下:
文章插图
对抗分析:多种后门的免杀实现
针对上述后门实现,人工判断做后门判断以及特征提取匹配也是相对简单的 。在避免使用加壳等全局代码混淆方式(这样一来更容易通过文件可疑点圈定样本)的前提下,现已发现多种朴素的免杀实现 。
首先是静态字符串的混淆,通过逐字节赋值避免引入字符串常量数据,规避特征串匹配:
文章插图
其次,针对人工分析中,需要根据函数代码逻辑与交叉引用指纹定位敏感函数的情况,对简单的auth_password做大范围代码改动和插入使其“面目全非”,规避人工审计:
文章插图
再次,根据ESET等外部披露的后门均将窃取的合法账号密码以固定格式化字符串记录到本地的特征,转为采用在代码中直接命令外传账密的方法,规避基于格式化字符串作为特征的静态扫描检测:
文章插图
稍微复杂一点的实现
Linux上的恶意程序广泛采用rootkit对恶意代码和行为进行隐藏;而sshd虽然采用无独立程序文件、无新增网络行为方式,但为了规避检测审计和后续入侵行为,下面的后门实例采用完全不同的实现:将窃取账密的功能有独立程序实现并内嵌在sshd母体中释放,同时为了隐藏该模块,额外释放安装一个内核态通用rootkit 。同时为了保证这些负载释放过程隐蔽可执行,将植入过程实现在了server_accept_loop消息循环中:
文章插图
当然,以上仅分析了sshd常规的后门花式实现,但植入少量代码可以实现的后门行为空间本身非常大 。现已发现同样有零散案例,后门不仅限于窃取系统账密凭证数据,如下例子实现了对其它应用敏感信息的检索外泄:
文章插图
? sshd后门攻击特征和发展趋势
2020年阿里云云安全中心开展对Linux基础软件的专项治理,其中以sshd后门为切入点,对主流后门做了分析和检测支持 。截至2020.07.10,上半年已检测的数据如下:
文章插图
从数据中,可以解读到如下信息:
- 活跃的攻击样本变化迅速,而传统安全软件检测滞后 。因为根据开源项目和开源攻击负载进行开发,可供选择的定制灵活度极大,所以依赖于传统的样本分析和特征匹配方案,要做到即时检测响应,难度很大 。ESET在2018年底发布白皮书披露的21个OpenSSH后门家族特征,在2020年内已经不再有匹配的新增样本;而根据植入后门的恶意负载的信息收集方式/路径/特征串、植入特权账密进行聚类,半年间发现56个高度疑似有组织的新增植入源 。在此情况下,完全结合云主机的安全解决方案,因为能够实时掌握新增样本的特征和趋势,所以在准实时检测方面具有先天优势 。
推荐阅读
- 惊蛰, 春日从杯 FU TEA 苏醒
- 惊蛰已到 古树春茶还会远吗
- 40+岁老测试员的生涯回顾,Python自动化从业十年是种什么体验?
- 为啥盗墓贼总比考古学家先找到墓 挖掘兵马俑那盗墓老头
- 霸王龙的咬合力是什么概念 霸王龙的咬合力到底有多大
- 贵台红加盟信息,如何才能买到好的普洱茶春茶
- 招聘|大学毕业生找到一份销售工作,却发现做的事违背良心,该怎么办?
- 乌龟从什么时候开始冬眠? 乌龟何时冬眠,如何冬眠
- 宇航员到了月球以后,体重就只有地球上的六分之一 对于宇航员从月球带回的样本,科学家们的
- 蚊子咬到眼皮怎么消肿