UPnP協(xié)議
統(tǒng)一即插即用英文是Universal Plug and Play,縮寫為UPnP。要說(shuō)計(jì)算機(jī)外設(shè)的即插即用(Plug and Play(縮寫PnP)),大家可能很熟悉,但對(duì)統(tǒng)一即插即用,多數(shù)人會(huì)感到是一頭霧水。由于windows xp加入對(duì)UPnP的支持,并且被查出存在很嚴(yán)重的安全問(wèn)題,所以,一時(shí)間,使得UPnP名聲大噪。巧的是,本人原來(lái)查閱過(guò)關(guān)于UPnP的技術(shù)白皮書,而且也較為詳細(xì)地看了關(guān)于此次發(fā)現(xiàn)的安全缺陷的介紹。因此,趁著這個(gè)機(jī)會(huì),將UPnP以及引起安全缺陷的詳情披露出來(lái)。
一、 UPnP是用來(lái)干什么的?
網(wǎng)絡(luò)發(fā)展到現(xiàn)在,已經(jīng)可以使我們?cè)诰W(wǎng)上沖浪、收發(fā)郵件、聽到遠(yuǎn)方傳送來(lái)的聲音、搜索感興趣的內(nèi)容、下載軟件、點(diǎn)播節(jié)目、即時(shí)聊天……實(shí)現(xiàn)的功能好像已經(jīng)不少,但,人的欲望無(wú)止境,享福人還想更享福,還有許多目標(biāo)沒(méi)有達(dá)到:例如,怎樣才能使我們?cè)诰W(wǎng)絡(luò)上,像平時(shí)用遙控器那樣,操作空調(diào)器、電風(fēng)扇、廚房電器,或網(wǎng)絡(luò)遠(yuǎn)端的電器設(shè)備呢?如何利用網(wǎng)絡(luò)上的計(jì)算機(jī)資源,使這種“遙控”更具智能化?甚至,將一系列相關(guān)的控制寫到一個(gè)腳本中,以便用戶定制自己所喜愛(ài)的控制流程……實(shí)現(xiàn)諸如此類的效果,將是有巨大需求的應(yīng)用技術(shù)。如果實(shí)現(xiàn)通過(guò)網(wǎng)絡(luò)用UPnP控制家用設(shè)備,將給我們的生活帶來(lái)很大的方便和很多新的體驗(yàn)。例如:
1.你在下班之前,或在回去的路上,就可以先打開家里的空調(diào)器和廚房設(shè)備,等進(jìn)入家門,立刻就是一個(gè)溫度宜人的環(huán)境――廚房里的飯也做好了。房間溫度的高低和廚房?jī)?nèi)煮飯的過(guò)程,都是根據(jù)事先設(shè)計(jì)好的“腳本”程序進(jìn)行的,絕對(duì)可靠。
2.你若是一位上檔次的音樂(lè)發(fā)燒者,肯定對(duì)聆聽音樂(lè)的環(huán)境要求很嚴(yán):音箱位置高低、音量大小、燈光明暗、窗簾拉不拉上都有講究。手動(dòng)控制隨好,畢竟不方便。你要使用上UPnP,一切都會(huì)為你代勞。還能將你習(xí)慣的音響音量、燈光亮度、音箱的高度等等,以你認(rèn)為最佳的參數(shù)寫到執(zhí)行腳本中,以后可以都以此為準(zhǔn)。如果你擁有自己的專門聽音室,只要你打開聽音室的門,上述的環(huán)境就會(huì)立刻設(shè)置好。曲終人散,只管放心離開好了,UPnP系統(tǒng)會(huì)自己關(guān)閉音響,熄滅電燈,拉上窗簾。
3.你人在辦公室,心里卻放不下家里的孩子。用上UPnP,只要在家里安裝攝像頭,建立好與網(wǎng)絡(luò)的連接。在辦公室內(nèi),啟用桌面電腦的WEBTV,連通網(wǎng)絡(luò)后,可以即時(shí)監(jiān)視孩子在家里的一舉一動(dòng)。
凡此種種的方便和誘人之處還很多,不勝枚舉。
其實(shí),這已經(jīng)不是科學(xué)幻想、也不是專家預(yù)言。目前用UPnP協(xié)議就可以實(shí)現(xiàn)這些操作!這正是windows xp系統(tǒng)急于加入U(xiǎn)PnP的原因。正因?yàn)閁PnP是一個(gè)協(xié)議,UPnP的使用可跨越各種操作系統(tǒng)平臺(tái),開發(fā)應(yīng)用程序也沒(méi)有開發(fā)語(yǔ)言的局限。可工作于各種形式的網(wǎng)絡(luò)結(jié)構(gòu)。且僅以現(xiàn)在的網(wǎng)絡(luò)設(shè)施為基礎(chǔ),僅僅加上這個(gè)UPnP協(xié)議,既不用添加新的設(shè)施,也不用重新架設(shè)網(wǎng)絡(luò)介質(zhì)就可以投入使用!
UPnP協(xié)議具有下述特色:
1. 以網(wǎng)絡(luò)為應(yīng)用環(huán)境,不考慮“孤島”中的計(jì)算機(jī)。
2. 以TCP/IP和整個(gè)Internet為基礎(chǔ)。這樣是“中立”的,不依附于任何操作系統(tǒng)或應(yīng)用程序,不使用特定的API函數(shù),不受程序設(shè)計(jì)語(yǔ)言的局限。可以無(wú)縫地接入傳統(tǒng)網(wǎng)絡(luò)。
3. 設(shè)備可以動(dòng)態(tài)地進(jìn)入網(wǎng)絡(luò)中,隨后獲得IP地址,“學(xué)習(xí)” 或查找自己應(yīng)當(dāng)進(jìn)行的操作和服務(wù)的信息;“感知”別的設(shè)備是否存在以及它們的作用和當(dāng)前的狀態(tài) 。所有這些,都應(yīng)當(dāng)是可自動(dòng)完成的。
4. 每個(gè)設(shè)備都可讀取屬于自己的、特定的狀態(tài)和參數(shù);完成控制操作后應(yīng)當(dāng)發(fā)出“操作完成”的響應(yīng)信號(hào)。如果失敗,則應(yīng)發(fā)出控制失敗的信號(hào)。
二、UPnP協(xié)議的層:
UPnP協(xié)議的最終目的,是建立一個(gè)可用的設(shè)備模型, 因篇幅這里不對(duì)整個(gè)結(jié)構(gòu)進(jìn)行詳細(xì)的分析,但你應(yīng)當(dāng)記住下面的主要特征:
1. UPnP是一個(gè)多層協(xié)議構(gòu)成的框架體系,每一層都以相鄰的下層為基礎(chǔ),同時(shí)又是相鄰上層的基礎(chǔ)。直至達(dá)到應(yīng)用層為止。該圖中的最下面是就是IP和TCP,共兩層,負(fù)責(zé)設(shè)備的IP地址。
2. 三層是HTTP、HTTPU、HTTPMU,這一層,大家應(yīng)當(dāng)是熟悉的,屬于傳送協(xié)議層。傳送的是內(nèi)容都經(jīng)過(guò)“封裝”后,存放在特定的XML文件中的。對(duì)應(yīng)的SSDP、GENA、SOAP指的是保存在XML文件中的數(shù)據(jù)格式。到這一層,已經(jīng)解決了UPnP設(shè)備的IP地址和傳送信息問(wèn)題。
3. 第四層是UPnP設(shè)備體系定義,僅僅是一個(gè)抽象的、公用的設(shè)備模型。任何UPnP設(shè)備都必須使用這一層。
4. 第五層是UPnP論壇的各個(gè)專業(yè)委員會(huì)的設(shè)備定義層,在這個(gè)論壇中,不同電器設(shè)備由不同的專業(yè)委員會(huì)定義,例如:電視委員會(huì)只負(fù)責(zé)定義網(wǎng)絡(luò)電視設(shè)備部分,空調(diào)器委員會(huì)只負(fù)責(zé)定義網(wǎng)絡(luò)空調(diào)設(shè)備部分……依此類推。所有的不同類型的設(shè)備都被定義成一個(gè)專門的架構(gòu)或者模板,供建立設(shè)備的時(shí)候使用。可以推知,進(jìn)入這一層,設(shè)備已經(jīng)被指定了明確用途。當(dāng)然,這些都必須遵守標(biāo)準(zhǔn)化的規(guī)范。從目前看,UPnP已經(jīng)可以支持大部分的設(shè)備:從電腦、電腦外設(shè),移動(dòng)設(shè)備和家用消費(fèi)類電子設(shè)備等等,無(wú)所不包,隨著這個(gè)體系的普及,將可能有更多的廠家承認(rèn)這一標(biāo)準(zhǔn),最終,可能演化為公認(rèn)的行業(yè)標(biāo)準(zhǔn)。
5. 最上層,也就是應(yīng)用層,由UPnP設(shè)備制造廠商定義的部分。這一層的信息是由設(shè)備制造廠商來(lái)“填充” 的,這部分一般有設(shè)備廠商提供的、對(duì)設(shè)備控制和操作的底層代碼,然后,就是名稱序列號(hào)呀,廠商信息之類的東西。
三、協(xié)議內(nèi)部的詳細(xì)情況
僅僅有這樣五層UPnP協(xié)議,也只不過(guò)有了一個(gè)共同遵守的框架,實(shí)際的UPnP系統(tǒng)究竟是如何構(gòu)成的呢?
完整的UPnP服務(wù)系統(tǒng)由支持UPnP的網(wǎng)絡(luò)和符合UPnP規(guī)范的設(shè)備共同構(gòu)成的。
整個(gè)系統(tǒng)是由設(shè)備、服務(wù)、和控制指針三部分所構(gòu)成。
設(shè)備:
這里是指符合UPnP規(guī)范的設(shè)備。一個(gè)UPnP設(shè)備可以看成一個(gè)包含服務(wù)并嵌套了常規(guī)設(shè)備的“容器” 。例如,一個(gè)UPnP的VCR(錄像機(jī))設(shè)備可以包含磁帶傳送服務(wù)、調(diào)諧服務(wù)和時(shí)鐘服務(wù)。就是說(shuō),UPnP之下的設(shè)備不能僅僅理解為硬件意義上的設(shè)備,而應(yīng)當(dāng)包括服務(wù)功能。
不同種類的UPnP設(shè)備將關(guān)聯(lián)不同的設(shè)置、服務(wù)和嵌入設(shè)備。如打印機(jī)和VCR屬于不同用途的設(shè)備,服務(wù)就不可能定義成一樣的。
服務(wù):
設(shè)備執(zhí)行用戶請(qǐng)求的控制過(guò)程,可劃分成一個(gè)個(gè)很小的階段或單位,每個(gè)單位就稱為一個(gè)服務(wù)。每一個(gè)服務(wù),對(duì)外都表現(xiàn)為具體的行為和模式,而行為和模式又可以用狀態(tài)和變量值進(jìn)行描述。只要可以用數(shù)值描述,在計(jì)算機(jī)里面就容易處理了。例如,模仿一個(gè)時(shí)鐘,它只有一個(gè)工作模式:這個(gè)模式就是模擬并顯示當(dāng)前的時(shí)間。而一個(gè)時(shí)鐘的行為共有兩種(也只有兩種):
1. 設(shè)置時(shí)間(用來(lái)“即平時(shí)說(shuō)的對(duì)表”).
2. 得到時(shí)間(用于顯示時(shí)間)。
其它設(shè)備服務(wù),也是用這樣思路來(lái)描述和定義的,一個(gè)設(shè)備也可以被定義多個(gè)服務(wù)。不論是設(shè)備的定義信息和服務(wù)的描述信息,都保存在一個(gè)XML文件中,這個(gè)文件也是UPnP協(xié)議構(gòu)成的一部分。當(dāng)設(shè)備建立和使用服務(wù)的時(shí)候,XML文件可以與它們進(jìn)行關(guān)聯(lián)。
XML文件中還有一個(gè)很關(guān)鍵的“狀態(tài)表”,狀態(tài)表可進(jìn)一步分為“服務(wù)狀態(tài)表”和“事件狀態(tài)表”。整個(gè)UPnP設(shè)備運(yùn)行的全過(guò)程內(nèi),狀態(tài)表貫穿始終,當(dāng)設(shè)備狀態(tài)改變的時(shí)候,例如發(fā)生參數(shù)變化或狀態(tài)刷新的時(shí)候,立即就在“狀態(tài)表”中反映出來(lái)。如控制服務(wù)器在接收到設(shè)置時(shí)間的行為請(qǐng)求時(shí),就立即執(zhí)行請(qǐng)求(對(duì)時(shí)操作),并給出響應(yīng),同時(shí)更新狀態(tài)表中的有關(guān)數(shù)據(jù)。相應(yīng)地,事件服務(wù)器負(fù)責(zé)向?qū)Υ耸录信d趣的設(shè)備公布所發(fā)生的狀態(tài)改變。例如,一個(gè)火災(zāi)事件發(fā)生后,事件服務(wù)器就向火災(zāi)報(bào)警器發(fā)布這個(gè)事件,導(dǎo)致報(bào)警器動(dòng)作產(chǎn)生報(bào)警信號(hào)。
控制指針:
在UPnP網(wǎng)絡(luò)中,用戶請(qǐng)求設(shè)備執(zhí)行的控制是通過(guò)控制指針實(shí)現(xiàn)的,控制指針首先是一個(gè)有能力控制別的設(shè)備的控制者,還要具有在網(wǎng)絡(luò)中 “發(fā)現(xiàn)”控制目標(biāo)的能力。在發(fā)現(xiàn)(控制目標(biāo))之后,控制指針應(yīng)當(dāng):
①取得設(shè)備的描述信息并得到所關(guān)聯(lián)的服務(wù)列表。
②取得相關(guān)服務(wù)的描述。
③調(diào)用控制服務(wù)行為。
④確定服務(wù)的事件 “源”,不論何時(shí),只要服務(wù)狀態(tài)發(fā)生改變,事件服務(wù)器會(huì)立即向控制指針發(fā)送一個(gè)事件信息。
從上面說(shuō)到的各種信息,都保存在XML文件中,不同用途的信息,格式不同。保證可以各取所需,不會(huì)混淆。
那么,UPnP的完整工作過(guò)程是怎樣的呢?
UPnP在控制指針和被控制設(shè)備之間提供通訊功能。而網(wǎng)絡(luò)介質(zhì)、TCP/IP協(xié)議、HTTP僅提供基本的連接和IP地址分配。整個(gè)工作過(guò)程需要處理六個(gè)方面的內(nèi)容,即地址分配、發(fā)現(xiàn)設(shè)備、對(duì)設(shè)備的描述、設(shè)備控制、設(shè)備事件、設(shè)備表達(dá)。
地址問(wèn)題:
地址是整個(gè)UPnP系統(tǒng)工作的基礎(chǔ)條件,每個(gè)設(shè)備都應(yīng)當(dāng)是DHCP(Dynamic Host Configuration Protocol 動(dòng)態(tài)主機(jī)配置協(xié)議)的客戶。當(dāng)設(shè)備首次與網(wǎng)絡(luò)建立連接后,利用DHCP服務(wù),使設(shè)備得到一個(gè)IP地址。這個(gè)IP地址可以是DHCP系統(tǒng)指定的,也可以是由設(shè)備選擇的,當(dāng)然,有能力自己選擇IP地址的設(shè)備,必然是那些“聰明”的設(shè)備才行!這也就是所謂的“自動(dòng)”IP地址。
如果遇到本地DHCP管理范圍之外的IP地址請(qǐng)求,還需要解決“友好設(shè)備”
的地址分配問(wèn)題,這個(gè)問(wèn)題通常由域名服務(wù)器來(lái)解決。
發(fā)現(xiàn)設(shè)備:
可分成兩種情況,一種是在有控制請(qǐng)求之后,在當(dāng)前的網(wǎng)絡(luò)中查找有無(wú)對(duì)應(yīng)的可用設(shè)備;另一種情況是某一設(shè)備接入網(wǎng)絡(luò)、取得IP地址之后,就開始向網(wǎng)絡(luò)“廣播”自己已經(jīng)進(jìn)入網(wǎng)絡(luò),即尋找控制請(qǐng)求。
設(shè)備的描述:
簡(jiǎn)單說(shuō),這是聲明“自己”是什么樣的設(shè)備,例如名稱、制造廠商、序列號(hào)碼等等。剛開始“發(fā)現(xiàn)”設(shè)備后,控制指針對(duì)這個(gè)設(shè)備的“了解”還很少,需要依據(jù)ULR找到該設(shè)備的描述文件,從這些文件中讀取更多的描述信息。描述信息的范圍很廣,一般都是由設(shè)備的制造廠商提供的。主要的描述項(xiàng)目有:控制的模式名稱和模式號(hào)碼、設(shè)備序列號(hào)、制造廠商名稱、廠商的WEB的ULR等等。這些一般都存放在特定的XML文件中;
設(shè)備控制:
控制指針找到設(shè)備描述之后,會(huì)從描述中“提煉”出要進(jìn)行的操作并獲悉所有的服務(wù);對(duì)每個(gè)UPnP設(shè)備來(lái)說(shuō),這些描述必須是很確切、很詳細(xì)的,描述中可能包含有命令或行為列表、服務(wù)響應(yīng)信息、用到的參數(shù)等等。對(duì)于服務(wù)的每個(gè)行為,也伴有描述信息:主要是整個(gè)服務(wù)進(jìn)行期間的變量、變量的數(shù)據(jù)類型、可用的取值范圍和事件的特征。
要控制某個(gè)設(shè)備,控制指針必須先發(fā)送一個(gè)控制行為請(qǐng)求,要求設(shè)備開始服務(wù),然后再按設(shè)備的ULR發(fā)送相應(yīng)的控制消息,控制消息就是放置在XML文件中的那些SOAP格式的信息。最后,服務(wù)會(huì)返回響應(yīng)信息,指出服務(wù)是成功或是失敗。
設(shè)備事件:
在服務(wù)進(jìn)行的整個(gè)時(shí)間內(nèi),只要變量值發(fā)生了變化或者模式的狀態(tài)發(fā)生了改變,就產(chǎn)生了一個(gè)事件,系統(tǒng)將修改上述提到的事件列表的內(nèi)容。隨之,事件服務(wù)器把事件向整個(gè)網(wǎng)絡(luò)進(jìn)行廣播。另一方面,控制指針也可以事先向事件服務(wù)器預(yù)約事件信息,保證將該控制指針感興趣的事件及時(shí)準(zhǔn)確地傳送過(guò)來(lái)。
廣播或預(yù)約事件,傳送的都是事件消息,事件消息也放在XML文件中,使用的格式是GENA。
設(shè)備投入工作之前的準(zhǔn)備―――初始化過(guò)程,也是一個(gè)事件,初始化需要的各種信息也是用事件消息傳送的。包括的內(nèi)容主要是:變量初始值,模式的初始狀態(tài)等等。
設(shè)備表達(dá):
只要得到了設(shè)備的ULR,就可以取得該設(shè)備表達(dá)頁(yè)面的ULR,然后可以將此表達(dá)納入用戶的本地瀏覽器上。這部分還包括與用戶對(duì)話的界面,以及與用戶進(jìn)行會(huì)話的處理。
整個(gè)UPnP系統(tǒng),是在“中樞神經(jīng)”的指揮下協(xié)同工作的。其大致情形如下:
凡是具備IP地址的的設(shè)備都必須直接使用網(wǎng)絡(luò)的IP地址,但有些設(shè)備可能并不具備直接使用網(wǎng)絡(luò)IP地址的能力,例如,電燈開關(guān)的控制就是這樣,這是非IP設(shè)備;非IP設(shè)備通過(guò)網(wǎng)橋(UPnP Bridge)來(lái)與控制指針交換信息。
直接使用IP地址的有:控制指針(可在口袋電腦和遠(yuǎn)程設(shè)備上發(fā)出控制)、本地設(shè)備,例如VCR和時(shí)鐘;以及網(wǎng)橋。非IP設(shè)備有所謂輕設(shè)備(如溫度控制器)和非UPnP的設(shè)備(如電燈控制開關(guān)等)。
上述介紹屬于硬件方面,下面再說(shuō)作為控制靈魂的軟件:
在上面的敘述中,多次提到用XML文件存放需要的信息,因?yàn)闊o(wú)論是控制指針或設(shè)備服務(wù),都需要很多信息,有讀出的,有傳出的,UPnP協(xié)議約定這些都存放在特定的文件XML中。用途不同的信息,在XML文件中的格式不同。所以,相關(guān)的XML文件是控制服務(wù)的靈魂。
四、關(guān)于UPnP隱藏的安全缺缺陷:
這次發(fā)現(xiàn)的安全缺陷共有兩個(gè),其中第一個(gè)缺陷是對(duì)緩沖區(qū)(Buffer)的使用沒(méi)有進(jìn)行檢查和限制。外部的攻擊者,可以通過(guò)這里取得整個(gè)系統(tǒng)的控制特權(quán)!由于UPnp功能必須使用計(jì)算機(jī)的端口來(lái)進(jìn)行工作,取得控制權(quán)的攻擊者,還有可能利用這些端口,達(dá)到攻擊者的目的。這個(gè)缺陷導(dǎo)致的后果很嚴(yán)重,不論那個(gè)版本的windows 系統(tǒng),只要運(yùn)行UPnP,就都存在這個(gè)危險(xiǎn)!但嚴(yán)格地說(shuō),這并不完全是UPnP技術(shù)本身的問(wèn)題,更多的是程序設(shè)計(jì)的疏忽。
第二個(gè)缺陷就與UPnP的工作機(jī)理有關(guān)系了!
該缺陷存在于UPnP工作時(shí)的“設(shè)備發(fā)現(xiàn)”階段。發(fā)現(xiàn)設(shè)備可以分為兩種情況:如果某個(gè)具備UPnP功能的計(jì)算機(jī)引導(dǎo)成功并連接到網(wǎng)絡(luò)上,就會(huì)立刻向網(wǎng)絡(luò)發(fā)出“廣播”,向網(wǎng)絡(luò)上的UPnP設(shè)備通知自己已經(jīng)準(zhǔn)備就緒,在程序設(shè)計(jì)這一級(jí)別上看,該廣播內(nèi)容就是一個(gè)M-SEARCH(消息)指示。該廣播將被“聲音所及”范圍之內(nèi)的所有設(shè)備所“聽到”。并向該計(jì)算機(jī)反饋?zhàn)约旱挠嘘P(guān)信息,以備隨后進(jìn)行控制之用。
相類似,如果某個(gè)設(shè)備剛剛連接到網(wǎng)絡(luò)上,也會(huì)向網(wǎng)絡(luò)發(fā)出“通知”,表示自己準(zhǔn)備就緒,可以接受來(lái)自網(wǎng)絡(luò)的控制,在程序設(shè)計(jì)這一級(jí)別上看,該通知就是一個(gè)NOTIFY(消息)指示。也將被“聲音所及”范圍之內(nèi)的所有計(jì)算機(jī)接受。計(jì)算機(jī)將 “感知”該設(shè)備已經(jīng)向自己“報(bào)到”。實(shí)際上,NOTIFY(消息)指示也不是單單發(fā)送給計(jì)算機(jī)聽的,別的網(wǎng)絡(luò)設(shè)備也可以聽到。
就是在上述的一播一聽之間,出現(xiàn)了問(wèn)題!
如果某個(gè)黑客向某個(gè)用戶系統(tǒng)發(fā)送一個(gè)NOTIFY(消息)指示,該用戶系統(tǒng)就會(huì)收到這個(gè)NOTIFY(消息)指示并在其指示下,連接到一個(gè)特定服務(wù)器上,接著向相應(yīng)的服務(wù)器請(qǐng)求下載服務(wù)―――下載將要執(zhí)行的服務(wù)內(nèi)容。服務(wù)器當(dāng)然會(huì)響應(yīng)這個(gè)請(qǐng)求。UPnP服務(wù)系統(tǒng)將解釋這個(gè)設(shè)備的描述部分,請(qǐng)求發(fā)送更多的文件,服務(wù)器又需要響應(yīng)這些請(qǐng)求。這樣,就構(gòu)成一個(gè)“請(qǐng)求――響應(yīng)”的循環(huán),大量占用系統(tǒng)資源,造成UPnP系統(tǒng)服務(wù)速度變慢甚至停止。所以,這個(gè)缺陷將導(dǎo)致“拒絕服務(wù)”攻擊稱為可能!
結(jié)束語(yǔ)
UpnP正在向我們一步步走近,現(xiàn)在已經(jīng)是足聲可聞了。不久的將來(lái),必然對(duì)我們的工作和生活產(chǎn)生巨大影響。也蘊(yùn)含著無(wú)限商機(jī)。盡管現(xiàn)在存在問(wèn)題,也難保以后就不會(huì)再出現(xiàn)新的問(wèn)題,但這既然體現(xiàn)了人的需求意向,就會(huì)有巨大的生命力,暫時(shí)的挫折不會(huì)使得它停下前進(jìn)的腳步!