黑帽大会揭露致命SSL VPN漏洞,台资安研究员藉入侵Twitter唤醒企业重视漏洞修补

台湾资安公司戴夫寇尔(Devcore)资安研究员Orange Tsai(图右)与Meh Chang(图左)在今年的黑帽大会上,对外揭露Fortinet以及Pulse Secure的SSL VPN产品的漏洞。
iThome
在美国太平洋时区8月7日于拉斯维加斯举办的黑帽大会(Black Hat USA 2019),台湾资安公司戴夫寇尔(Devcore)资安研究员Orange Tsai(蔡政达)与Meh Chang正式对外揭露,在今年三月进行红队演练(Red Teaming)时,所发现的三个知名资安品牌的SSL VPN漏洞;他们已于七月对外公布Palo Alto的SSL VPN漏洞,而在今日的黑帽大会则进一步公布Fortinet与Pulse Secure的SSL VPN漏洞与可能的骇客攻击手法。
由于SSL VPN是许多企业确保对外连线安全的重要措施,一旦遭到骇客攻破,企业内网将成为骇客的囊中之物,因此,在戴夫寇尔的资安研究员揭露此漏洞后,不仅获得许多企业资安人员的关注,相关的资安业者也在最短时间内提供漏洞修补。
但是,还是有不少企业没有意识到即时修补此漏洞的重要性,因此,Orange Tsai进一步借由Twitter的漏洞奖励计划,以Pulse Secure的SSL VPN漏洞成功攻入Twitter,以唤醒更多企业对此漏洞的重视。同时Orange Tsai也因此写下Twitter漏洞奖励计划有史以来第一个RCE(远端执行漏洞)漏洞提报的记录,获得超过二万美元、最高额度的奖金。
SSL VPN是企业必定连网的对外管道,连NSA都有相关攻击工具
Orange Tsai表示,从渗透测试(PT)与红队演练的经验来看,电子邮件以及SSL VPN是企业一定会与外部网络连结的两大管道,而SSL VPN因具有高保密、隐私和高速的技术,更是由少数业者占领多数市场。根据统计,前三大SSL VPN业者已经占据75%的市占率;若扩及前五大SSL VPN业者,则占整体市场的86%。常见的SSL VPN产品包括F5、Palo Alto、Fortinet以及Pulse Secure等业者,而此次名列戴夫寇尔资安研究员揭露的SSL VPN漏洞业者,Pulse Secure囊括大型企业与-用户,而Fortinet产品则以中小型企业为主。据了解,台湾有不少-单位使用Fortinet的SSL VPN产品Fortigate,因此都应该尽速升级到最新的版本,以修补漏洞。
Orange Tasi表示,号称影子掮客(The Shadow Brokers)的骇客集团入侵美国国安局NSA旗下秘密网络攻击组织“方程式”(Equation Group),并释出包含Wannacry所使用的Eternal Blue攻击程式等近300MB的档案,根据释出的档案则发现,美国NSA积极研究并掌握不少SSL VPN的漏洞。
不过,Orange Tsai指出,此次研究原本是以Fortinet以及Pulse Secure为主,但额外发现Palo Alto在SSL VPN产品上的漏洞,其实是20年就出现的、可以远端控制执行的已知漏洞,然而就在他们通报的隔天,厂商就悄悄修补了,并没有回报CVE漏洞编号,官方也没有提醒企业用户即时修补。于是他们则利用该漏洞,成功入侵Uber部署在AWS云端平台的一部服务器。
观察使用者界面,找出三个攻击破口
所有漏洞发现绝对不是偶然,都需要敏锐的观察力,这可以从Orange Tsai分享如何破解SSL VPN的使用者界面得知。他指出,一般这类的商用设备都不会提供使用者可以执行任意代码(拿到Shell)的权限,以往骇客都是透过黑箱的方式破加解密、找漏洞,但他此次则采用类似中医看诊“望、闻、问、切”的手法,先破解使用界面后,进一步分析系统核心,找到可能的弱点后,得以成功进入企业内部,这个过程可以从原先的黑箱,再进一步到灰箱,最后才是透过白箱的方式,找出系统漏洞。
至于,怎么找到可以攻击的破口呢?Meh Chang指出,可以从三个常见角度切入,首先是最常见的Web VPN操作界面,一般SSL VPN经常会利用浏览器,连回企业内部网络服务器,也会支援各种通讯协定,例如:HTTP、FTP、Telnet、SSH、SMB以及RDP等。
其次,则是利用Native Script Language Extensions(本机端脚本语言扩充)特色,像是PHP或是Perl都是有效率的程式语言,而C语言则是各种常被用来实作的开发语言,但也因为C语言是比较早期的开发语言,不同开发语言之间要资讯交换、加速时,就可以发现C语言本身许多与内存相关的缓冲区漏洞可以利用;第三,则是SSL VPN要处理多层次架构,当彼此不一致时,就会有漏洞产生。
除了串不同RCE取得权限外,还有Magic后门可以利用
Meh Chang便以Fortinet的SSL VPN产品Fortigate为例,她表示,要逆向工程分析操作系统的档案时,即使只有10kb的档案,可能就有几十万行的程式码在内,分析难度很高,更何况,Fortigate的操作系统因为采用2002年的Apache服务器的程式码作为研发的基础,整个档案大小就超过500MB、加上有8万5千个功能列表,要采用传统逆向工程的分析方式,实在是难上加难。
此次,Meh Chang在研究时,也采用Orange Tsai先前分享的骇客思维,将多个RCE(远端代码执行)漏洞串连在一起后,达到入侵的功能。最后成功的方法是利用任意读档漏洞(Arbitrary File Reading),解读系统档案并发现储存的明文密码后,再登入系统。
Meh Chang表示,研究过程中原本是希望可以利用Heap Overflow(内存配置使用溢位)的漏洞,复制不管多长的字串,以造成缓冲区溢位攻击(Buffer Overflow),借此找到可以实作的Exploit(攻击程式)。但因为这个漏洞本身并不稳定,因此,她说,这次则改用不同以往的手法,透过Spray(喷射)的方式,拿到最终可以执行任意代码的Shell。
但这样取得可以执行任意代码的Shell的方式还是太复杂,Meh Chang发现一个“Magic”(神奇) 后门程式可以利用,透过塞入Magic这个字串后,就可以将使用者的密码改成自己的密码,经由这样暴力破解方式,可以更直接且便利的取得SSL VPN的控制权。
绕过层层安全防护机制,从错误讯息中找到入侵破口
Pulse Secure是由网络交换器Juniper分出来的公司,许多财富五百大企业都是采用Pulse Secure的SSL VPN产品。而Pulse Secure采用客制化的架构,使用Perl语言撰写程式,并采用C++帮Perl开发的程式做多种的外挂功能。
Orange Tsai表示,Pulse Secure是一个相对有安全开发意识的公司,这一次可以找到SSL VPN的漏洞,主要是因为Pulse Secure在8.2版新增了一个Web VPN的功能,这也是HTML 5 Access新增的功能,使用者可以透过浏览器直接登入Telnet、SSH以及RDP等连接埠以连上Web VPN。
也由于Pulse Secure 8.1版操作系统已经终止支援,每一个使用者都必须升级到最新版时,因此,Orange Tsai说,这个漏洞会影响到每一个使用者,影响层面甚大。
他指出,此次主要是透过任意读档的漏洞,发现Pulse Secure 8.2版Web VPN的私钥和系统设定,还有杂凑(Hash)运算过的使用者密码、Web VPN敏感的Cookie资料(像是Google、Dropbox和iCloud等),以及存放在Cache(快取资料)中的明文密码。在掌握使用者的账号密码后,Orange Tsai表示,接下来希望透过Command Injection(命令注入)的攻击手法,取得SSL VPN的控制权限。
但他也观察到,Pulse Secure知道HTML 5 Access带来的风险,为了确保操作系统的安全性,其实也作了许多强化安全性功能的保护措施,就好像看得到通往城堡的门,但为了避免敌人入侵,则在城堡旁边的护城河部署重兵防守一样。他说,以往也听过一些资安研究人员有发现这个漏洞,但因为绕不过Pulse Secure的安全防护措施导致无功而返。
Orange Tsai说,因为Pulse Secure由Perl和C语言开发,两个程式语言做各种功能执行时,有时候就会产生一些错误讯息(STDERR),这些错误讯息就是Pulse Secure重兵部署护城河的瑕疵,透过利用这些错误讯息去写一个Perl程式,并将后门程式写在网页中,透过网页去操控SSL VPN服务器,就能拿到最终执行任意代码的权限。
Pulse Secure对此漏洞的回应也相当迅速,Orange Tsai指出,该公司在今年3月22日接到漏洞通报后,于4月24日就完成相关的漏洞修补,并在4月25日发出相关的安全更新程式的修正通报。
利用Pulse Secure漏洞成功骇入Twitter
许多大型企业都是使用Pulse Secure的产品,Twitter也不例外。Orange Tsai表示,Twitter使用SSL VPN时,也开启双因素认证的保护且使用强度高的密码,但在绕过双因素认证的过程中,他找到SHA 256加密的Admin密码,并立刻租用72核心的AWS云端服务器,花三小时破解了这个加密的密码。
他把这个挖掘漏洞的过程回报给Twitter的漏洞奖励计划(Bug Bounty Program),不仅成为Twitter有史以来第一个可以远端控制执行的RCE漏洞,并获得20,160美元最高额的漏洞奖励金。
Meh Chang也观察到,早期的攻击手法都偏重服务器端的攻击,像是水坑式攻击(Watering Hole)、Drive by download、置换SSL VPN的安装程式,或是采用中间人攻击(Man in the Middle,MITM)的手法等。但她认为,未来个人电脑的终端使用者的安全更重要,像是每一台电脑都会安装SSL VPN的代理程式,也会储存许多机敏资料等等,透过新型态锁定SSL VPN的攻击手法,企业面临的风险更大。
如何提供使用者端更安全的SSL VPN使用环境呢?Orange Tsai则建议,首先,用户端在连线前的凭证验证很重要,就是要确认是合法的使用者,只有白名单上的使用者,才可以合法使用SSL VPN连线;其次,至少启用双因素认证以降低风险。
第三,要进行完整的Log稽核,例如将所有的Log存放到外部的Log服务器,有利于未来的各种资安鉴识所需;最后,则建议企业应该要订阅该公司使用各种厂牌设备的安全建议须知(Security Advisory),以利即时掌握重要的关键漏洞修补进度。
