「格物猎踪」关于OpenVPN反射攻击,你还需要知道这些!

执行摘要

OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现,其服务端口为1194,2019年9月被发现可被用于UDP反射攻击。借助绿盟威胁情报中心(NTI)的全网测绘数据和绿盟威胁捕获系统的威胁捕获数据,本文对其全网暴露情况、攻击者常用的攻击手法、反射攻击带宽放大因子等进行了分析。

本文的关键发现如下:

  • 全球有约75万个IP开放了OpenVPN服务,存在被利用进行DDoS攻击的风险。
  • 开放OpenVPN服务的资产暴露数量最多的五个国家依次是美国、德国、中国、英国和意大利。
  • 通过对绿盟威胁捕获系统在2020年6月1日到2020年8月10日捕获到的访问1194端口的日志数据进行分析,除个别日期日志数量较大外,日常捕获的日志数量在几十到几百不等,因此,我们认为这更多是对于OpenVPN服务的探测,而不是在利用OpenVPN服务进行反射攻击。
  •  绿盟威胁捕获系统捕获的Payload长度主要为2字节(24.6%)、14字节(19.8%)和1字节(10.1%)。
  • 我们采用了三种方式来对OpenVPN带宽放大因子进行评估:一是发送14字节Payload,测试节点首先回复一个26字节报文,如果没有继续收到回应的话,会每隔2、4、8、16秒发送一个14字节的报文,按照这种方式可以得到OpenVPN的平均带宽放大因子为5.9;二是发送2字节的Payload,全网共有51161个IP对其进行了响应,响应的长度均为26字节。我们也随机选取了一些存活的IP进行验证,发现仅收到这一个报文,可得平均带宽放大因子为13;三是发送1字节的Payload,我们仅选取若干IP进行了简要验证,与第二种类似,仅收到一个响应报文,可得平均带宽放大因子为26。从攻击性价比的角度考虑,我们认为能够对2字节和1字节Payload有响应的IP的威胁更大一些。
  • 有文章提到可以在抗DDoS设备或边界路由上配置过滤规则,过滤源端口为1194,长度大于等于56字节的UDP数据包,通过绿盟威胁捕获系统的Payload捕获情况以及我们的分析验证,这样的过滤规则需改进为过滤大于等于14字节的数据包。

一、OpenVPN服务暴露情况分析

本章我们对OpenVPN服务的暴露情况进行了分析,采用的是绿盟威胁情报中心(NTI)在2020年5月的一轮完整测绘数据。

全球有约75万个IP开放了OpenVPN服务,存在被利用进行DDoS攻击的风险。

开放OpenVPN服务的资产暴露数量最多的五个国家依次是美国、德国、中国、英国和意大利。

图 1.1  开放OpenVPN服务的资产国家分布情况

二、OpenVPN反射攻击分析

本章我们通过绿盟威胁捕获系统在2020年6月1日到2020年8月10日捕获到的访问1194端口的日志数据来说明当前OpenVPN反射攻击的威胁态势。

我们对绿盟威胁捕获系统捕获到的1194端口的日志数量进行了分析,如图 2.1 所示。从图中可以看出,除个别日期日志数量较大外,日常捕获的日志数量在几十到几百不等,因此,我们认为这更多是对于OpenVPN服务的探测,而不是在利用OpenVPN服务进行反射攻击。

图 2.1  OpenVPN服务被访问趋势

我们对1194端口收到的日志数据中的payload进行了统计,出于尽量不扩散攻击报文的考虑,这里我们按照出现的报文的长度对其命名。从图 2.2 中可以看出,攻击者较常使用的Payload的长度有2字节、14字节和1字节,其中14字节有多种。

图 2.2  绿盟威胁捕获系统捕获的payload占比情况

在对OpenVPN服务进行全网测绘时,我们并未采用友商文章[1]中提到的96字节的报文,而是采用了绿盟威胁捕获系统捕获的被攻击者使用的一个14字节的报文(Payload14A),也即有约75万个IP会对该报文进行响应,这与友商文章中提到的OpenVPN的暴露数量一致,说明可以将其作为服务探测报文。我们随机选取了30个存活IP进行验证,发现OpenVPN服务会按照这样的规律进行回复:首先回复一个26字节报文,如果没有继续收到回应的话,会每隔2、4、8、16秒发送一个14字节的报文,如图 2.3 所示。

图 2.3  某测试IP对于Payload14A的响应情况

按照这种方式可以得到OpenVPN的平均带宽放大因子(bandwidth amplification factor,BAF)(注:放大因子我们采用NDSS 2014的论文Amplification Hell: Revisiting Network Protocols for DDoS Abuse上对于带宽放大因子的定义,不包含UDP的报文头。) [2]为5.9。

另外,考虑到长度越短可能造成的反射倍数就越大,我们也对Payload2进行了一轮测绘,全网共有51161个IP对其进行了响应,响应包的长度均为26字节(过滤非OpenVPN服务后)。我们也随机选取了一些存活的IP进行验证,发现仅收到这一个报文。按照这种方式得到的OpenVPN的平均带宽放大因子为13。对于Payload1我们未进行测绘,但是进行了简要验证,发现响应包的长度也是26字节,可得带宽放大因子为26。从攻击性价比的角度考虑,我们认为能够对2字节和1字节Payload有响应的IP的威胁更大一些。

三、小结

借助绿盟威胁情报中心(NTI)的全网测绘数据和绿盟威胁捕获系统的威胁捕获数据,本文对其全网暴露情况、攻击者常用的攻击手法、反射攻击带宽放大因子等进行了分析。

作为安全厂商:

(1)可以在扫描类产品中加入OpenVPN扫描能力,及时发现客户网络中存在的安全隐患。

(2)可以在防护类产品中加入对于OpenVPN的流量检测能力,及时发现客户网络中存在的安全威胁。也可以关联开放OpenVPN服务的IP的威胁情报,阻断命中的源IP的连接。

作为电信运营商,需遵循BCP38网络入口过滤。

作为监管部门,对于网络中的OpenVPN威胁进行监控,发现问题进行通报。

作为OpenVPN用户,可以设置服务访问白名单。

作为有DDoS防护需求的用户,购买具备OpenVPN反射攻击防护能力的安全厂商的DDoS防护产品。

参考文献

[1] OpenVPN服务被利用于UDP反射放大DDoS攻击

https://www.freebuf.com/vuls/215171.html

[2] Amplification Hell: Revisiting Network Protocols for DDoS Abuse

https://www.ndss-symposium.org/ndss2014/programme/amplification-hell-revisiting-network-protocols-ddos-abuse/

Spread the word. Share this post!

Meet The Author

Leave Comment