去年一名安全研究员证明了X.509证书交换可携带恶意流量,如今,该研究员公布了其概念验证代码。
Fidelis Cybersecurity安全研究员杰森·利乌斯披露了新的数据渗漏信道,该隐秘信道利用X.509数字证书标准扩展中的字段携数据渗出企业网络。
X.509标准定义了公钥证书的各项属性,锚定了全球公钥基础设施,比如说,TLS会话伊始的证书交换过程就是该标准定义的。
2017年7月的Bsides安全大会上,利乌斯阐述了为什么X.509标准如此重要:如果公司系统被劫持,黑客可以通过X.509将敏感内部文档偷偷渗漏出去。
TLS按X.509标准在建立加密通信的握手过程中进行证书交换。
本月发表的论文中,Fidelis是这么描述该数据渗漏技术的:
简言之,TLS X.509 证书由很多字段可以存放字符串,包括版本号、序列号、发行者名称、有效期等等。我们的研究中描述的证书滥用技术正是利用了这一点,将数据传输隐藏在这些字段中。由于证书交换过程发生在TLS会话建立之前,看起来就好像没有发生任何数据传输一样,但实际上,数据早已随证书本身传了出去。
利乌斯的概念验证代码中利用的字段名为SubjectKeyIdentifier。尽管“大多数库”都试图限制握手过程中的数据包大小,“证书本身的扩展却只受限于内存大小”——现代计算机体系下这基本等于没有限制。
在Bsides大会上,利乌斯表示:“这种途径实现的数据传输很难被发现。怎么可能发现呢?你得解析X.509中的所有数据,这么多数据怎么可能全部解析?”
下面列出的概念验证代码中,Fidelis在TLS握手过程中传输了Mimikatz程序的副本,模拟了攻击者将该攻击工具推送进受害网络的过程:
Mimikatz
利乌斯写道:该概念验证代码使用了自签名证书,封禁此类证书可以有效抵御类似攻击。
PoC:https://github.com/fideliscyber/x509
声明:本文来自安全牛,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。