腾讯安全科恩实验室基于BinaryAI的函数语义匹配技术,设计了一套自动化的sshd后门检测方案,用于检测在网络安全中攻击者在sshd身份认证相关函数中植入后门的行为。
介绍了腾讯安全科恩实验室设计的基于BinaryAI函数语义匹配技术的自动化检测方案的具体流程,包括BinaryAI引擎分析、身份认证函数提取和后门样本判定。
通过基于BinaryAI的方法发现了多种类型的sshd后门样本,包括硬编码后门密码、用户密码窃取和回传等。
提供了sshd身份认证函数集和相关IOC链接,供读者进一步分析和体验。
在网络安全攻防对抗中,攻击者经常通过在系统关键组件中植入后门程序,来获取持久的访问权限。sshd (SSH daemon) 作为管理远程登录的核心服务,是攻击者常用的目标之一。攻击者通过修改或者替sshd二进制文件,绕过原有身份认证机制。这样,他们就能获取对服务器的控制权,并实施各种恶意攻击。
然而,sshd后门的隐蔽性极强。攻击者通常仅对某个身份认证函数进行细微改动,例如增加特定的后门密码条件判断。这些改动往往形式多样,不同攻击者可能采用不同的后门密码,使得传统检测方法面临巨大挑战。
-
杀毒软件:主流杀毒软件依赖特征码匹配,擅长检测已知的恶意软件模式,如特定字符串、字节序列等。然而,sshd后门的修改往往是语义层面的微小变化,难以通过通用规则进行有效检测,从而难以应对变种后门的识别。
-
白名单机制:基于sshd白名单的检测方法虽然能够有效防范后门,但在动态业务环境中,由于sshd版本更新、补丁发布或正常业务逻辑引入,可能导致误报。这不仅影响正常用户的使用体验,也使得白名单的维护成本显著增加。
-
人工分析:依赖安全专家进行人工分析虽然能够准确识别后门样本,但分析过程耗时且成本高昂,难以满足大规模服务器集群的检测需求。
为了克服这些传统方法的局限性,
腾讯安全科恩实验室结合BinaryAI的函数语义匹配技术,设计了一套自动化且精准的sshd后门检测方案。
基于BinaryAI引擎,该方案包含两阶段分析流程。首先,BinaryAI基于
BAI代码匹配模型
,结合函数间语义信息,从全量开源C/C++库中精确检索目标样本的源函数;借助匹配到的源函数名,我们从sshd中提取所有与身份认证相关的函数。接着,通过比较身份认证函数与匹配到的源函数的语义相似度,进一步定位被篡改的后门函数。
基于该检测方案,科恩已成功发现了多个在VirusTotal
[1]
未被任何引擎检出的sshd后门样本,证明该方案相比传统检测方法更具优势。
攻击者通过在sshd身份认证相关函数中插入后门,绕过原有身份认证逻辑。sshd后门常见的行为包括:
下
面以VirusTotal多家引擎检出的sshd后门样本
为例解释后门原理:
https://www.
binaryai.cn/analysis/dfc86b375e974b3092bbff41eb24db3281fb4fc104f1043a7afbf95f85a2c1d5
通过“交互式分析”功能,找到
该样本的后门藏在
auth_password
函数中,该函数反编译伪代码如下图所示。
43-48行加入了后门密码判断逻辑,如果用户输入的密码等于
SECRETPW
(
0Zm7HF)
,
则直接
返回1,表示密码认证成功,不进行其他的认证流程。65-73行将正常登录成功的用户名及其密码写入路径为
ILOG
(
/etc/lps
/
lps
)
文件中,攻击者可利用这些信息进一步密码爆破内网其他服务器,实现横向移动。
观察到该函数由于插入了后门逻辑,BinaryAI检索得到的top-1源函数相似度仅为0.6958,远低于正常函数的top-1相似度(通常为0.85以上)。这说明虽然后门逻辑仅为几行代码的改动,BinaryAI的代码匹配模型依然可以精准感知到代码语义的变化,因此可以设置相似度阈值来检测后门函数。
为了有效检测 sshd 后门,腾讯安全科恩实验室设计了一种基于BinaryAI函数语义匹配技术的自动化检测方案。该方案能精准地捕捉sshd样本中的后门代码,具体检测流程如下图所示。
3.1.BinaryAI引擎分析
首先,
待分析样本会由BinaryAI引擎进行初步分析。BinaryAI通过反编译将二进制代码转换为伪代码,随后基于科恩自研的BAI 代码匹配模型,将每个函数表示为能够表达其语义的高维向量。结合函数的结构化信息,BinaryAI能够从全量开源C/C++库中精准检索与样本函数匹配的源代码函数。BinaryAI引擎的分析结果为后续的后门检测流程提供了基础。
3.2
.身份认证函数提取
理论上,sshd中所有涉及身份认证的函数都可能被攻击者植入后门,因此这类函数均应纳入检测范围。为此,需从待分析样本中提取所有身份认证相关函数。
为了实现这一目标,我们通过对sshd项目源码
[2]
的深入分析,汇总了一个包含63个身份认证函
数名的集合(见8.附录)。这些函
数与身份认证直接相关,极有可能成为后门植入的目标。得益于强大的代码语义表征能力,BinaryAI引擎能够精准地检索到待分析样本中所有函数对应的标准sshd源代码。通过判断匹配到的源码函数名是否在上述集合中,即可筛选出所有潜在的目标函数。
3.3
.后门样本判定
后门样本判定的核心思想是后门函数由于植入了后门代码逻辑,导致与匹配的源代码相似度较低。具体地,我们为每个函数设定相似度阈值,若函数对应的top-1源码相似度低于阈值,则视为后门函数;只要样本中存在至少一个身份认证函数被标记为后门函数,整个样本便被视为后门样本。我们在真实场景收集的大量sshd样本上进行统计分析,为每个身份认证函数设置了特定的阈值,以确保sshd后门检测的准确性。
基于上述方法,我们回溯了腾讯安全威胁情报、VirusTotal等来源的sshd样本
,发现了42个新的sshd后门样本,其中8个样本VirusTotal零引擎检出(见8.附录相关IOC)。新发现的样本基于后门方法可分为以下几类。
(1)auth_password/sys_auth_passwd后门密码硬编码
该样本在
auth_password
和
sys_auth_password
中直接硬编码了后门密码,如果用户输入密码为后门密码则认证成功。
(2)auth_password用户密码本地记录
该样本在auth_password中将用户密码记录到本地文件。
(3)auth_password用户密码回传
该样本在auth_password中通过curl将用户名与密码回传至攻击者服务器。
除了上述几种常见的在auth_password中直接添加后门的逻辑,我们还发现了以下其他几种值得关注的后门方式。
该样本将一个sshd中的函数名作为后门密码,该后门可以绕过依赖字符串特征的检测方法。
(2)调用自定义函数,在自定义函数中加入后门
该样本在auth_password中调用了自定义的后门函数ssh_auth_aaa,该函数与其他进程通过socket通信进行身份认证,并将用户密码写入本地文件。
综上,我们的方案能有效检测出各类型后门植入形式,如硬编码后门密码,用户密码窃取、回传等;也发现了其他后门变种,例如利用函数名作为后门密码或通过自定义函数进行密码泄露等。值得注意的是,上述样本在VirusTotal上均零引擎检出,可见即使是简单的硬编码后门密码,现有的杀毒引擎有时也难以检出;特别的,其中某些样本在VirusTotal上已存在近三个月(如下图所示),但仍未被任何引擎发现,充分证明了基于BinaryAI代码语义匹配技术的sshd后门检测方案的有效性与优越性。
在sshd后门检测的实践中,除了基于函数相似度阈值的判定方法,我们还探索了使用大语言模型(如GPT-4o-mini)来检测后门函数的可能性。具体地,我们尝试将sshd中身份认证函数的伪代码交给GPT模型,并设置prompt指导其输出后门存在性判定与相应解释。
我们发现,GPT虽然能
准确识别上述各后门类型并给出相应的后门解释,但对于正常函数的判断存在较高误报。主要原因有:(1)
反编译伪代码相比源码结构更复杂,且存在大量地址信息,容易误导GPT产生错误判断;(2)GPT缺乏sshd正常函数的相关知识,很容易被看似“可疑”的词(如"pass", "fakepw"等)所误导。此外,该方法仍然依赖于BinaryAI事先提取样本中
的身份认证相关函数。
因此,基于GPT的后门检测方法难以在实际检测中应用。相比之下,基于BinaryAI函数语义匹配的检测方法显得更加精准和可靠。
基于BinaryAI的函数语义匹配技术,腾讯安全科恩实验室设计了一套自动化的sshd后门检测方案。
该方案在真实场景样本中发现了多种后门类型,并且成功发现了多个VirusTotal零引擎检出的样本。
欢迎访问 “8附录”中相关IOC链接,前往样本BinaryAI页面进行体验分析。