譯者:陳峻
先進的技術往往不一定具有完備的安全性。例如,閃存驅動器裡就可能被植入攜帶式鍵盤記錄器,而在各種最新的瀏覽器中也可能被安插了後門代碼,就連不斷推出新版本的Windows,也從來沒有間斷地發佈著各種針對系統漏洞的安全補丁與修復程序。同樣,作為一種技術進步,通用即插即用(Universal Plug and Play,UPnP)在給用戶帶來便利的同時,由於各種原因也存在著一些自身的安全弱點,進而讓使用它的系統變得易受攻擊。
下面,我將向您深入介紹什麼是UPnP,它為什麼會對網絡系統帶來安全漏洞,以及如何關閉UPnP以提高安全態勢。
什麼是UPnP?
從技術角度來說,UPnP是一種網絡協議(實際上是一組網絡協議)。這些協議提供了一種特定的通信方法,以方便各種設備在網絡上實現快速的相互通信。在大多數情況下,設備可以使用它來輕鬆地發現特定網絡中的其他設備。目前,UPnP的使用已經非常普遍,您家的路由器上很可能就正在使用著該協議。
UPnP的另一個典型應用場景是查找打印機。過去,您必須通過手動搜索和設置的方式,以便其他的網絡設備或主機可以找到新入網的打印機。如今,有了UPnP,我們便可以自動發現的方式,快速地找到通過有線或無線方式連接到網絡中的打印機。
在完成連接之後,網絡上的設備可以通過該協議持續進行後續的數據發送和接收。例如:用戶主機可以調用打印機去打印文檔,向移動應用傳輸音頻數據。同時,移動設備也可以將自身作為一個驅動盤掛載到計算機上。可以說,該協議的使用場景非常豐富。而且,這些場景主要集中在家庭網絡中,並不涉及到商業網絡中的互聯互通。
UPnP可謂目前最方便的網絡技術之一。正如其名稱所示,只要您插入(接入)設備,即可立即開始使用它,而無需額外的設置或配置。不過,我們常說事物都有兩面性。該協議的便利性往往是和安全性成反比的。
UPnP是否存在安全風險?
十多年來,UPnP一直因其安全漏洞等問題而受到抨擊。FBI和美國國土安全部都曾建議用戶禁用他們的UPnP設置,以儘量減少暴露或遭遇損壞的風險。同時,如果您在互聯網上粗略地搜索關鍵字“UPnP漏洞”的話,也能找到大量說明UPnP風險的結果。而且,UPnP的安全缺陷不只會影響到那些舊的硬件。
從發展歷程上說,自2008年被推出以來,業界的安全工程師們已經發現了許多UPnP漏洞。而UPnP的最新主要漏洞—CallStranger UPnP是在2020年被發現的。該漏洞能夠有效地允許攻擊者繞過各種安全限制,進而直接實現數據的盜用。此外,在2022年初,安全公司Akami便更新了其有關UPnProxy的報告(雖然UPnProxy漏洞是在2018年被首次發現的)。該報告著重論述了EternalSilenceUPnP漏洞的詳細信息,並且預警了全球數百萬臺路由器都可能帶有此類漏洞。
為什麼UPnP一直存在著安全風險?
至此,您一定想知道為什麼UPnP的安全問題屢禁不止呢?實際上,由於UPnP假設每個連接設備都是值得信賴的,因此它會自動打開各個端口,並授權端口的轉發連接。那怕您不是安全專家,也可能已經意識到了這會是一個重大的風險點。雖然大多數路由器會去主動阻止各種惡意連接,但是那些配置不當且已啟用了UPnP的路由器,很可能會根據某個惡意傳入的連接,而授予攻擊者對於內部網絡的訪問權限。
當然,這只是UPnP成為安全問題的一種攻擊可能性。另一個安全風險則源於惡意軟件能夠輕鬆地感染網絡中的設備,並利用UPnP在網絡中肆意傳播。正是由於路由器的配置不當,因此各種使用UPnP連接到受感染設備上的其他部件,都會在合法連接的狀態下,迅速被感染中招。
UPnP也可能招致大量的DDoS攻擊。例如,強大的Mirai殭屍網絡就能夠使用被開啟和配置了UPnP協議的物聯網設備,來放大其攻擊能力,進而利用殭屍網絡使各種目標網站被迫下線。這同時也引出UPnP的另一個問題:許多IoT設備雖然被開啟和配置了UPnP,但是往往無法實現升級、更改、甚至是從根本上禁用UPnP。也就是說,如果此類設備沒有在首次被配置妥當,那麼就會成為物聯網的一個安全暴露點。
如何關閉UPnP
通常,UPnP的漏洞可以被歸納為如下兩個主要方面:
編程錯誤:由於在UPnP代碼中存在著各種缺陷,導致了它們會被注入惡意代碼,進而被利用和執行。
意外暴露:雖然UPnP的目的是為了使網絡上的設備可以輕鬆地發現彼此,但不幸的是,一些UPnP控制接口可能會被暴露在公共互聯網上,從而使得惡意用戶能夠查找到,並獲取針對私有設備的訪問權限。
鑑於上述兩種原因,業界廣泛建議用戶關閉UPnP功能。但是,由於該協議帶來的便利性,以及正在使用該協議的設備和製造商眾多,我們不可能將它們迅速禁用掉。目前,一種比較好的實踐方式是讓用戶主動根據設備的型號與特點,在互聯網通過“如何禁用UPnP”的關鍵字,去搜索正確的處理方式。
一般而言,為了在路由器上禁用UPnP,您需要在瀏覽器的地址欄中輸入路由器IP地址,然後登錄到該路由器的配置界面上。在獲取了管理員級別的訪問權限後,您通常可以在高級菜單的相關配置界面中,發現UPnP的設置與路由器的端口轉發選項同屬一個分類(如下圖所示),進而完成配置上的調整。
當然,您也不必急於將其關閉。更恰當的實踐方式是:先定期接收並更新路由器的固件,再著手處理UPnP的相關設置問題。
如果不能禁用UPnP該怎麼辦?
正如上文所討論的,我們完全可以輕鬆地在大多數設備上,關閉UPnP的選項。當然,某些簡化的設備可能不具備該項功能設置。對此,我的建議是,我們與其花時間去研究如何調整UPnP的設置,不如通過部署或優化其他安全組件,來提高其所處網絡的整體安全態勢。