威脅何止 OpenSSL!揭開 Heartbleed 多種攻擊方式
上星期我們提到一種於 OpenSSL 之中發現的漏洞,名為「Heartbleed」。通過 Heartbleed 黑客便可隨意複製真實的 SSL 密鑰,並將之放到虛假網站之中藉以偷取用戶的個人資料。不過除了這個「已知」的用途之外,其實今次出現的 Heartbleed 亦為網絡客戶和物聯網帶來長遠危機。
雖然大眾一直將焦點放於 Heartbleed 漏洞對公共網站安全的影響,但該漏洞的影響遠不止於此。而現時即使大多數熱門網站不再受漏洞影響,但亦並不代表終端用戶可以掉以輕心,因為就我們所知,Heartbleed 同樣會影響客戶端軟件,如網頁、電子郵件、通訊軟件、FTP、流動應用程式、VPN 和軟件更新程序等。總而言之任何用戶使用有漏洞的 OpenSSL 而通過 SSL/TLS 進行通訊,都有可能被攻擊。
此外 Heartbleed 不單影響網頁伺服器,亦同時影響其他各種伺服器,包括網絡代理、媒體伺服器、遊戲伺服器、數據庫伺服器、通訊伺服器和 FTP 伺服器。最後硬件裝置也無法倖免,漏洞可影響路由器、PBXes(商務電話系統)和物聯網所連接的眾多裝置。
正/反同時進行 Heartbleed 漏洞攻擊
通過 Heartbleed 漏洞,黑客可以一般大眾認知的「正面」方式攻擊這些軟件和硬件伺服器,與攻擊有安全漏洞的網站方式類似。然而針對客戶端的攻擊,基本上可以「相反」的方式進行;利用 Heartbleed 進行攻擊一般指攻擊客戶端,透過發送一個惡意的 Heartbeat 訊息至有漏洞的伺服器﹐然後伺服器將個人數據洩露。然而,攻擊方式亦可完全倒轉。一個易受攻擊的客戶端可以連接至伺服器,而伺服器本身可以發送一個惡意的 Heartbeat 訊息至客戶端,令客戶端找出在儲存記憶中額外的數據以作回應,這樣便有機會洩露電子憑證和其他個人數據。
幸運的是,雖然客戶端易受攻擊,但要在現實中進行攻擊卻有一定的難度。攻擊的兩個主要來源是指示客戶端瀏覽惡意的 SSL/TLS 伺服器或通過一個無關的安全弱點劫持連線,而兩者均令進行攻擊時更為複雜。
引導客戶至惡意伺服器
客戶端如何被利用,最簡單的例子就是通過像一個有漏洞的網頁瀏覽器。攻擊者只需說服受害者瀏覽一個惡意網站連結,攻擊伺服器便能夠存取客戶端網頁瀏覽器的儲存記憶,令存放的 cookies、網站瀏覽紀錄、表格資料和身份憑證等內容受到威脅。
最普及的網頁瀏覽器並沒有使用 OpenSSL,而是使用不受 Heartbleed 影響的 NSS (Network Security Services)資料庫。然而許多在命令列的網頁客戶端正使用 OpenSSL(如 wget 及 curl),因而受安全漏洞所威脅。
劫持連線
如上述所說,如要將客戶端定向至瀏覽惡意伺服器,須確定客戶能夠任意根據指示瀏覽任何伺服器。然而許多客戶端只與一個預設、硬式編碼網域連線。在這情況下,客戶端仍有可能被利用。在開放的共享網絡,如公共 Wi-Fi 網絡,用戶流量可被看見或改變,讓攻擊者將易受攻擊的客戶端重新定向。一般情況下,SSL/TLS(例如 HTTPS、加密的網頁瀏覽模式)的加密能防止竊聽和重新定向,是其中一個有效解決這問題的方法。然而攻擊者可以先於 SSL/TLS 連線完全建立前發送惡意的 Heartbeat 訊息。
攻擊者可透過加入公共網絡,以竊聽潛在的受害者。當一個潛在的受害者使用有漏洞的客戶端與合法的伺服器建立 SSL/TLS 連線時,攻擊者能將連接重新定向至惡意伺服器。在 SSL/TLS 連線完全建立,並能阻隔重新定向前,攻擊者可發送惡意的 Heartbeat 訊息,從而在受害者的電腦儲存記憶中提取內容,這可包括個人數據,如身份憑證等。
除了先前提出的指引,專家亦有以下建議:
– 避免以客戶端軟件連線未知的網域,這有可能於有漏洞的 OpenSSL 資料庫接收 Heartbeat
– 停止使用未經更新和修復的網絡代理服務
– 在廠商提供更新修復後盡快更新軟件和硬件
– 連接公共網絡時,使用確定為不受 Heartbleed 影響的 VPN 客戶端和服務
鳴謝:Symantec 專家提供建議