安全動態(tài)

UPnP 協(xié)議 CallStranger 漏洞影響數(shù)百萬設備

來源:聚銘網絡    發(fā)布時間:2020-07-02    瀏覽次數(shù):
 

信息來源:Freebuf


1.漏洞概述

2020年6月8日,安全研究員Yunus ?adirci公布UPnP(通用即插即用)協(xié)議漏洞公告(CVE-2020-12695),并將其命名為CallStranger漏洞。該漏洞允許攻擊者繞過內網的數(shù)據(jù)防泄露系統(tǒng)(DLP)進行數(shù)據(jù)逃逸,可導致敏感數(shù)據(jù)泄露,并且可對設備所在內部網絡進行掃描,甚至能劫持設備進行分布式拒絕服務(DDOS)攻擊。根據(jù)CallStranger漏洞原理,啟明星辰ADLab以某款智能電視作為測試目標,對CallStranger漏洞的危害性進行了演示分析。

2.


與之前的UPnP漏洞不同,CallStranger漏洞存在于協(xié)議設計中,因此該漏洞影響幾乎所有支持UPnP的設備,包括Windows 10所有版本、路由器、訪問接入點、打印機、游戲機、門鈴對講機、媒體應用程序和設備、攝像頭、電視機等。根據(jù)SHODAN和ZoomEye的搜索結果,至少有數(shù)以百萬計的在線設備受到影響。

3.漏洞分析

UPnP全稱為Universal Plug and Play,即通用即插即用,UPnP允許各種網絡設備在沒有任何特殊設置或配置的情況下進行通信,使設備彼此可自動連接和協(xié)同工作。例如新的打印機插上電并連接網絡之后,局域網內的計算機就知道了打印機的型號等信息,方便進行驅動安裝。

在UPnP協(xié)議規(guī)范中有一個非常重要的功能模塊,叫做事件(Eventing)。在UPnP服務進行的時間內,只要設備用于UPnP服務的變量值發(fā)生變化或者模式發(fā)生了改變,就會產生一個事件,隨之向整個網絡進行廣播?;蛘哂脩艨梢允孪认騏PnP設備發(fā)送訂閱請求,保證UPnP設備及時地將事件傳送過來。

UPnP Device Architecture 2.0[1]中關于UPnP的NT與CALLBACK訂閱模塊有如下格式:

publisher path一般為訂閱的服務,以GENA格式存放在設備的某個XML文件中,類似下圖。

CALLBACK的值一般為回調地址的URL。NT取upnp:event表示訂閱事件。

UPnP協(xié)議規(guī)范文檔中提到:CALLBACK是必填區(qū)域,所填信息為發(fā)送事件信息的URL。一般情況下為UPnP供應商指定。如果其中定義了不止一個URL,設備會按順序嘗試連接,直到有一個連接成功。每個URL一般為HTTP協(xié)議(即前綴為”http://”)。設備不得以任何方式截斷這些URL。如果內存不足以存儲所有的CALLBACK URL,設備會拒絕訂閱。

整個訂閱流程大概可以簡化如下圖。

很顯然,該協(xié)議并沒有對CALLBACK傳入的URL進行限制和規(guī)范,也就是說,CALLBACK URL是攻擊者可控的。

下圖為Intel UPnP SDK中檢查CALLBACK URL的相關代碼,create_url_list函數(shù)僅僅檢查了URL是否合法,并沒有確定其是否合理。

4.漏洞危害

CallStranger漏洞所造成的危害可以分三個方面:DDoS攻擊、數(shù)據(jù)逃逸和端口掃描。其中造成的DDoS攻擊可以分兩種,SYN洪水攻擊和TCP反射放大攻擊,如下圖所示。

4.1 SYN洪水攻擊

假設我們已經通過一些方法(如在局域網廣播等)獲得了某些設備UPnP服務的eventSubURL,下面就可以向UPnP設備發(fā)起一項訂閱服務,格式如下:

  • SUBSCRIBE eventSubURL HTTP/1.1

  • NT: upnp:enent

  • Callback: delivery URL

  • Host: upnp設備:upnp服務端口

如前文協(xié)議規(guī)范中提到的,若CALLBACL Value中定義了不止一個URL,則會按順序嘗試TCP連接,直到有一個連接成功。那么攻擊者可在CALLBACK Value中精心構造多個URL,使每一個都無法連接成功,這樣UPnP設備就會用多個SYN包依次對每個URL嘗試TCP握手。假設攻擊者可以操控很多個設備,就會導致受害設備遭受DDoS攻擊。

SYN數(shù)據(jù)包的數(shù)量根據(jù)設備操作系統(tǒng)和配置的不同而不同,利用某品牌智能電視對受害設備進行SYN洪水攻擊測試,測試結果如下圖所示。

該智能電視每收到一個CALLBACK Value就會發(fā)送8個SYN數(shù)據(jù)包嘗試連接受害設備。若我們每個CALLBACK的URL值為25字節(jié),那么帶寬放大因子便可以達到8*60/25=19.2。因為CALLBACK Value的個數(shù)是沒有限制的,所以理論上是可以無限放大的。

4.2 TCP反射放大攻擊

Windows Media Player在播放視頻時也有相應的UPnP服務,我們獲


 
 

上一篇:自動化能否“殺死”安全分析師?

下一篇:2020年07月02日 聚銘安全速遞