臺灣資安公司戴夫寇爾(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 Tsai表示,號稱影子掮客(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),以利即時掌握重要的關鍵漏洞修補進度。

 

 


Advertisement

更多 iThome相關內容