臺灣戴夫寇爾首席資安研究員Orange Tsai於HITCON 2020全球首度對外公開,他如何挖掘知名MDM軟體MobileIron的軟體漏洞,並且利用這個漏洞再度入侵臉書的過程。

圖片來源: 

黃彥棻攝

武漢肺炎期間,許多企業紛紛展開在家上班(WFH)的工作模式,除了透過VPN(私有虛擬網路)連上企業內部的系統外,更普遍遇到的狀況則是,許多公司員工因為沒有配備足夠的筆記型電腦,要求員工自帶裝置(BYOD),利用自家電腦或手機連網辦公。

有許多企業為了控管員工的裝置,便採用MDM(行動裝置管理)軟體控管員工手機的鏡頭、麥克風、筆記型電腦等裝置,部署相關應用程式App,也可以安裝憑證,甚至可以在手機遺失時,遠端將行動裝置上鎖或是移除手機裝置中的軟體和資訊。企業透過導入這類MDM軟體,都可以避免當員工使用自家裝置連網到公司內部系統時,不會造成資料或隱私外洩的情況發生。

臺灣戴夫寇爾首席資安研究員Orange Tsai則在臺灣駭客年會HITCON 2020中,全球首度對外公開,他分享如何挖掘MobileIron這套財星五百大企業都有採用的MDM軟體的漏洞,於今年六月回報這個漏洞給MobileIron,在該公司釋出修補軟體後15天,再利用該漏洞取得臉書伺服器權限,並回報給臉書的漏洞獎勵計畫(Bug Bounty Program)。

選定MobileIron研究,因臉書和財星五百大企業都導入

幾年前,BYOD議題正熱,也讓許多企業開始導入MDM管理軟體,希望透過管控員工手機裝置的功能,提高員工從外部連網到企業內部的安全性。

Orange Tsai指出,這類MDM軟體的特性就是:可以管控員工行動裝置且一定都在企業外部網路,而這種可以從外網進入企業內網的管道,對於要進行企業紅隊演練而作企業資產盤點的資安研究人員而言,就是一個有機會進入企業內網的入口。

目前市面上常見的MDM軟體包括VMware AirWatch以及MobileIron等,Orange Tsai表示,選定MobileIron作為研究標的,是因為根據他們對全世界的掃描,至少有15%以上的財星前500大企業使用MobileIron作為管理BYOD的MDM軟體,而這些MDM軟體同時暴露在外網(實際上一定更多);這同時是臺灣企業使用比例最高的MDM管理軟體;更重要的是,他在2016年駭入臉書時,當時就發現臉書採用MobileIron的MDM解決方案,因此,Orange Tsai便鎖定MobileIron作為研究標的。

解析MobileIron軟體架構,找到可利用的Hessian反序列化漏洞

這幾年有一些資安專家開始針對MDM資安議題做相關研究,不管是駭客利用惡意MDM感染企業75%的行動裝置,或者是有駭客組織利用MDM作為發動攻擊的管道,都讓MDM安全議題逐漸受到重視。

Orange Tsai表示,選定MobileIron作為研究標的,第一時間就必須要設法取得相關的韌體等相關資訊,只不過,各種關鍵字蒐集,只找到一個在公開網站根目錄上,發現疑似是2018年開發者測試用的 RPM包,這也是作為研究的第一步。

從這個RPM包可以觀察到MobileIron的一些特色,他表示,MobileIron用Java開發,對外開放的連接埠則有作為使用者裝置註冊介面的443埠;作為設備管理介面的8443埠,以及作為和MobileIron私有裝置同步的9997通訊協定埠(MI Protocol)。

他說,這三個連接埠都透過TLS(傳輸層安全性)保護連線的安全性及完整性,網頁部分則是採用比較新的架構,透過Apache的Reverse Proxy(反向代理)將連線導至後方,由Tomcat 伺服器部署的Spring MVC框架開發的網頁應用。

「採用比較新的架構,意味著傳統SQL Injection的漏洞比較少,要找漏洞就得從程式邏輯搭配架構面的弱點下手。」Orange Tsai發現問題出在提供Web Service的Tomcat伺服器,存在Hessian反序列化漏洞。不過,他也說:「有漏洞不代表可以利用,反序列化不代表可以遠端執行(RCE),」可以觸發MobileIron的Hessian反序列化漏洞,分別存放在8443埠管理介面和443埠使用者介面的路徑中,但一般企業使用的管理介面通常不會放在外網,導致這個路徑的漏洞利用率低,但如果可以找到443埠使用者介面的Hessian反序列化漏洞,就會是很好的切入點。

新版Java無法使用JNDI注入攻擊

根據研究,有四種已經存在的Hessian反序列化漏洞利用方式,是否可以成功利用,主要還是看當前的執行環境有哪一些函式庫(Library)可以利用,包括:可以造成JNDI注入攻擊的Apache XBean、Caucho Resin、Spring AOP,以及會導致遠端程式碼執行RCE的ROME EqualsBean/ToStringBean。

Orange Tsai表示,因為MobileIron使用Spring框架,上述四種反序列化漏洞利用方式,只有Spring AOP造成的JNDI注入攻擊可以利用。

什麼是JNDI注入攻擊呢?Orange Tsai 表示,這個攻擊手法出現距今差不多五年,這是Java提供的API介面,方便開發者動態存取物件;JNDI注入攻擊和反序列漏洞其實是個別獨立的兩種攻擊方式,但是反序列化漏洞可以借用JNDI注入攻擊,進一步拓展其攻擊面。

他進一步指出,這個JNDI注入攻擊手法,其實之前也被利用在趨勢科技命名為Pawn Storm APT組織,也有其他稱之為APT 28或稱Fancy Bear的網軍用來對外發動攻擊的方式。

這種「遇到反序列化漏洞就採取JNDI注入攻擊」的方迷思,Java則在2018年10月時,正式修補漏洞編號CVE-2018-3149的JNDI注入攻擊漏洞,透過將com.sun.jndi.ldap.object.trustURLCodebase 預設值更改為False(假)的方式,達到禁止駭客下載遠端Java Bytecode(位元組碼)取得執行程式碼。

也就是說,在新版的Java,包括:Java 8u181、7u191和6u201以上的版本,都無法透過JNDI注入攻擊的方式進行遠端執行程式碼。他坦言:「如果MobileIron採用新版的Jave,就無法利用JNDI╱LDAP注入攻擊,也就無法掌握MobileIron的漏洞。」

雖然無法直接在新版Java利用JNDI注入攻擊,但Orange Tsai表示,仍然可以透過Tomcat的BeanFactory去載入ELProcessor達到任意代碼執行的結果。

不過,BeanFactory去載入ELProcessor的手法,必須在新版Tomcat 8.0版以上才會成功,而MobileIron使用的是Tomcat 7.x版。Orange Tsai後來發現,如果Tomcat伺服器的ClassPath剛好有 Groovy存在,就可以利用先前發表的Jenkins漏洞利用的手法,串連不同漏洞達到入侵目標伺服器的目的。

沒必要不修補的舊版元件Groovy漏洞,成為MobileIron致命核心

Orange Tsai後來想到,臉書基於安全考量,會禁止所有對外部的非法連線,這對紅隊想要採用JNDI注入攻擊有重大影響,因為,JNDI注入攻擊的核心就是,透過受害者連線到攻擊者控制的惡意伺服器,然後接收回傳的惡意Name Reference後所導致的一系列利用,「現在第一步連線到攻擊者的惡意伺服器都做不到,更遑論進一步的攻擊利用。」他說。

因為現有的方式都無法使用JNDI注入攻擊,達到遠端程式碼執行的目的,他表示,整個研究就必須回到最原始找到的Hessian反序列化漏洞,從這個地方重新找到MobileIron可利用的軟體漏洞。

Orange Tsai研究各種文獻資料後發現,Groovy是一個只在內部使用、不會對外的小元件,沒有特殊需求時,開發者通常不會做相關的軟體更新,而MobileIron伺服器上的Groovy版本則是2008年的1.5.6舊版本,是一個十二年前還不支援Meta Programming的版本。

他比較舊版和新版Groovy差異發現,舊版Groovy沒有ALLOW_RESOLVE的限制,因為這個ALLOW_RESOLVE的限制,其實是Groovy為了因應2015年出現的Java反序列化漏洞所採用的減緩措施,當年也分配到一個CVE-2015-3253漏洞編號。

後來Orange Tsai透過檢視Groovy程式碼,找到一個GroovyShell的漏洞利用方式,成為MobileIron軟體弱點攻擊鏈的一環。他說:「這種看似無足輕重的小元件,也可能成為企業被攻擊的主因。」他最後也因為成功找到MobileIron軟體漏洞,利用這個漏洞成功入侵臉書,取得臉書伺服器上的Shell,並順利回報臉書的漏洞獎勵計畫。

MobileIron釋出漏洞修補軟體,臉書沒有收到漏洞修補資訊

Orange Tsai花了三個月完成整個漏洞研究,在4月3日將研究成果寫成報告,並試圖將漏洞回報給MobileIron。只不過一剛開始找遍MobileIron整個官網,找不到任何漏洞回報的通報窗口,後來是透過LinkIned發信給MobileIron高階主管後,對方才提供security@mobileiron.com管道,讓他回報此一軟體漏洞。

MobileIron在6月15日釋出修補程式,也記錄三個CVE漏洞標號,包括:CVE-2020-15505(Remote Code Execution,遠端代碼執行漏洞)、CVE-2020-15506(Authentication Bypass,繞過認證漏洞)和CVE-2020-15507(Arbitrary File Reading,任意讀檔漏洞)。

Orange Tsai在官方釋出修補程式後,同時監控所有使用MobileIron企業的漏洞修補狀況,並透過檢查靜態檔案的Last-Modified Header追蹤修補進度,在官方釋出修補軟體一個月後,大約有六成企業已經完成相關軟體修補;釋出修補軟體二個月後,大約有八成企業完成相關軟體修補。

不過,臉書在MobileIron釋出修補軟體的15天後,都還沒有修補該漏洞,Orange Tsai則在7月2日利用MDM漏洞進入臉書伺服器後,再回報臉書漏洞獎勵計畫,但臉書後來則表示,他們並未收到MobileIron的漏洞修補信件,這才讓MDM成為Orange Tsai順利入侵臉書伺服器的關鍵漏洞。

熱門新聞

Advertisement