讓手機“坐電椅”?一群較真兒的人制止了真實世界的殘酷攻擊文 | 史中
(零)充電器引發的血案 在美國曾經流行一種死刑的執行方式,坐電椅。
2000伏特的高壓電穿過犯人,十幾秒鐘就會讓這個倒霉蛋涼透。 這種刑罰給犯人帶來怎樣的痛苦不得而知(截止目前,尚未有犯人晚上托夢告訴其他人這是什么感受),但那景象和味道卻能給行刑人帶來一生難以抹去的心理陰影。 能被高壓電摧毀的,不只有碳基生命,還有硅基生命。 一個不支持快充的設備,默認只能接受5V的充電電壓,這時候,如果你用一個快充充電頭(20V的電壓)強行為它充電,這個設備就如同“坐了電椅”,光速去世。
就像圖中的這樣。 你可能會問:不對吧,我用快充充電頭給普通的手機充過電,沒有去世啊! 沒錯,這是因為充電器領域的大佬早就考慮到了這個問題,當快充充電器遇到受電設備時,雙方會進行一次簡單溝通:
充電器:我這邊最高支持20V,你要多少V啊? 受電設備:對不起小兄弟,我是2015年的老手機了,年輕人的新東西我都接受不了,你就給我標準的5V電壓吧。 充電器:得嘞,那就5V!您慢慢充。
你看,雖然這個溝通雖然簡單,但卻很“暖心”。事實上,這些溝通都是由快充充電頭里內置的一系列代碼來實現的。
充電器和受電設備大體就是這么溝通。 有人的地方就有江湖,有代碼的地方就有漏洞。 誰能想到,半個巴掌大的快充充電頭,里面只有幾百行代碼,只有幾Kb存儲空間,卻有可能被黑客改變代碼,從“暖男”秒變“殺手”,向受電設備發起大電壓攻擊,直接讓手機或電腦報廢。
就在2020年,這個漏洞被騰訊玄武安全實驗室的技術宅們發現了,他們給它起名為“BadPower”(壞電源)。 這里說個小八卦,“Bad”字輩的漏洞,很多都是玄武實驗室命名的。例如實驗室的負責人 TK 之前發現的 BadBarcode(壞條形碼)漏洞,可以用偽造條碼欺騙掃描器,直接導致商戶金錢損失,整個行業折騰了好幾年才基本完成了修復。 你可能有感覺了,這類漏洞往往不像第一眼看上去那么簡單,它們背后都有一個巨大的“盜夢空間”,當有人抽掉那根頂梁柱時,整個世界就開始晃動。 這被稱為“設計類安全問題”,聽上去就挺帶勁的。 于是,我跑到騰訊北京總部,找到了 TK,請他講了講這個“BadPower”漏洞背后的世界。
我在 JD 上搜索了一下快充充電器,還是有很多品牌的。(圖片僅做展示,并不意味著圖內品牌的充電器都存在問題。) (一)感覺哪里有問題 2018年春天,TK 坐在辦公室里,他的電腦屏幕里閃爍著一份密密麻麻的技術文檔。 彼時,快充技術剛剛普及,高通、MTK、蘋果、OPPO 等等好多廠家分別開發出了一套自己的快充標準。一時間各陣營群雄逐鹿,混戰不停。 但這帶來一個問題:大家的標準不同,A陣營的充電器遇見B陣營的設備,雖然理論上都支持快充,但就像一個說日語,一個說西班牙語,他們就是沒辦法“相認”,A陣營的充電器只好降到5V給B陣營的設備慢充。 長此以往,問題大大的。 于是,一個叫做“USB標準化組織”的組織,組織大家討論出了一套“根正苗紅”的快充技術標準。從那以后,不管你是哪個陣營的,都要給“USB標準化組織”一個面子,兼容這個版本的快充標準。 TK 當時看的,正是“USB標準化組織”發布的快充技術白皮書。
最下面兩個就是標準充電和快充的認證標志。 可是看著看著,老江湖的直覺告訴他,哪里不對。
首先,根據標準,充電器內部代碼不能是寫死的,而必須是可編程的。 其次,標準還規定,充電器出廠之后,要預留一個升級接口。
這就相當于房地產開發商把房子賣給你,但是卻留了一把鑰匙,可以隨時打開你家房門,給你添置點家具什么的。 當然,在現實生活中,法律是不會允許房地產商預留這樣的鑰匙的。但是在智能硬件領域,這卻是一個可接受的標準操作。 TK 給我講了一個例子:
蘋果的耳機剛出來的時候,因為降噪性能太好,會意外導致一些人頭疼。蘋果于是緊急升級耳機固件,把降噪性能稍微降下來一點兒。但是耳機已經賣出去那么多,不可能一個個召回修改。所以,這個升級就是通過預留的升級接口下發的。 當耳機連接 iPhone 的時候,手機就把升級代碼傳送給了耳機。當然這一切都是靜默完成的,普通用戶并沒有感覺。
你看,一個產品出街,鬼知道會碰到什么幺蛾子問題,如此說來,在銷售的硬件上預留一個升級接口,好像也合情合理。 但正是這個機制的設計,讓 TK 感覺“有機可乘”,當時他腦海里出現了一個“火刑攻擊模型”。
布魯諾:???
首先,想辦法搞出一段攻擊代碼,植入目標充電器。 然后,在充電器連接手機的時候,讓攻擊代碼流入手機。 再然后,攻擊代碼可以破壞手機充電保護機制,讓手機在已經充滿電的情況下繼續充電,直到電池燃爆。 最后,這個攻擊代碼還可以在不同的手機和快充充電器混插的時候交叉傳播,就像艾滋病一樣。
給你畫張圖方便理解。(字太小的話就點雞放大) 如果真的能達成這樣的攻擊路徑,那么黑客就有可能制造出一種病毒感染全球大多數快充設備,甚至能讓全世界的手機在同一時刻燒毀,想想都讓人毛骨悚然。 不過,目前為止這一切都只是理論中的推演,這其中每一步都有可能卡住,具體能不能做到,還要事實來驗證。 玄武實驗室只有不到30人,人力實在有限,當時絕大多數人又都撲在另一個漏洞——用殘留的指紋痕跡解鎖手機——上(詳情見幺哥的《一張紙秒破指紋解鎖》),所以真正開始研究快充充電器的問題,已經到了2019年的春天。 不過,即使是在玄武實驗室內部,這個研究都是絕密的,只有包括 TK 在內的六個人知道,頗有幾分“曼哈頓計劃”的意思。
因為我們曾經發現了很多影響行業的安全問題,鍛煉出了敏感性。這個漏洞的危害可能非常大,把它限制在實驗室的范圍內,一切都能控制,一旦擴散,后果就無法預料了。所以我們非常謹慎。
TK 換上了一副嚴肅臉。 就這樣,TK 指派玄武實驗室研究員馬卓帶領著四人小分隊開始了長達一年的“地下研究工作”。 (二)成為充電專家 這件事,比想象中更艱難。 原因在于:快充這個領域極其封閉,從網上根本找不到相關的技術文檔。 手機究竟怎么和快充充電器建立連接?他們倆用什么語言溝通所需要的電壓和電流?這些通通不知道。 你可能會說,找個做充電器的廠家問一問不就行了? 這里有一個行業知識:大多數充電器廠商只負責最后的整合制造,主體方案都是從上游的方案集成商購買的。而你去問一個充電器制造商他們的方案是從哪里買的,人家能告訴你才見了鬼。 感覺整個行業的人,無論是快充芯片生產商、方案集成商、充電器生產商還是受電模組生產商都“躲在暗處”,像賣驢一樣在袖口里就把一切都商量好,悄悄地就把這些東西給生產出來了。
進入這個領域,就像是摸進了一棟漆黑的房子,你不知道里面的陳設和結構如何,也不知道里面究竟有多大,甚至連房子里面是人是鬼都不知道。 這可咋辦?研究員們只好先硬著頭皮先從市場上買回來幾個銷量不錯的充電頭,看著桌子上這幾個“硬核桃”發楞。 要我說,一個頂級的安全研究員,得跟頂級的特工不相上下。 你看詹姆斯邦德,無論是汽車還是飛機坦克,連航空母艦他也是必須上去就能開,強烈懷疑他的駕照是宇宙交管局給他發的。 玄武實驗室這群技術宅也不含糊,他們決定,就用死磕的方法,掰掉充電器外殼,然后直接把芯片給焊下來,引腳接到自己開發的調試設備上,一頓逆向分析。 就這樣,幾個月過去了,他們用緩慢但卻有效的方式把“快充”這間黑屋子的運作原理摸得七七八八。 這就像二戰時盟軍破譯了德國的密電碼,別提多高興了:充電頭向手機發出一串信號,研究員就知道,這是在建立快充連接;手機又向充電頭發出一串信號,研究員也能秒懂,這是在協商電壓。
不是吹牛,現在我們團隊的幾位同學對于快充的信號涵義和運作機制,比大多數充電器廠商理解得都要深刻。
TK 說。 可是,充電器原理研究明白了,問題也來了。 就在2019年夏天,馬卓他們四個垂頭喪氣地走進 TK 的辦公室:“老板,失敗了。。。” 原來,隨著研究員對快充技術越來越了解,甚至可以任意修改固件,但他們確信 TK 之前設想的那個攻擊模型是無法達成的。 我們來回憶一下最初 TK 設計的“火刑攻擊模型”,其中有兩個關鍵難點:第一,攻擊代碼要能破壞掉電池的充電保護機制;第二,攻擊代碼要能在手機和充電器之間來回橫跳傳播。 這兩個關鍵點在現有的條件下都是無法突破的。
首先,無論是電腦還是手機,起碼有三層機制在保護電池不過熱燃燒,有的甚至是純硬件機制,這個基本沒有可能繞過。這也就是說:燒電池做不到。 其次,一般的快充充電器里能用來存儲的空間太小了,只有幾Kb,完全放不下能自我傳播的那種高級的攻擊代碼。而且被充電的設備模塊邏輯也很簡單,難以被控制。這也就是說,讓攻擊代碼在充電器和手機之間橫跳也做不到。
聽完了同學們的描述,TK 猛然問了個問題:“既然已經能修改固件,應該就可以控制輸出的電壓和電流了吧?” 同學們回答:“這。。。應該是可以的。” “那你們已經成功了啊!”TK笑了。 (三)柳暗花明 這世界上真愛不好找,攻擊模型可有的是,尤其是“猥瑣流”的黑客總能想出各種千奇百怪的攻擊模型。(有興趣的話,可以回顧《這兩個黑客太猥瑣了》) 這不,TK 一秒鐘就又想到了另一種攻擊模式:
1、通過手機把攻擊代碼傳輸進快充充電器里。 2、被感染的充電器只做一件事,瞬間輸出最強的電壓,擊穿受電設備的芯片,讓它報廢。
這么一來,原來電池著火的“火刑”就變成了高壓電擊穿芯片的“電刑”,反正不把受電設備弄死,這群技術宅是不會死心的。。。 同事們根據這個思路一試,發現果然走得通。 于是,一套詳盡的攻擊方式被火速構建起來。 具體來說,攻擊分這么幾種情形: 1、面對非快充設備。 前面說過,正常的快充充電頭會詢問設備,你要的電壓電流是多少。如果受電設備回答是5V,或者是不回答(一般的非快充設備根本沒有“回復”充電頭的能力),都會統一按照5V去輸出。 這下可好,前面已經商量好了5V,結果充電頭給出去的真實電壓直接就是20V(一般快充充電器所能達到的最高電圧),結果設備就會直接被擊毀,甚至芯片都有可能燃燒。
2、面對傻白甜的快充設備 同樣,在接通充電器后,充電器和受電設備會先溝通一個充電電壓,例如是12V。這時,充電頭里的惡意代碼故技重施,讓實際輸出的電流仍然是最高的20V。 由于這里超出的電壓并不像第一種情況那么懸殊,所以這里給芯片造成的損失是未知的。有很大可能被燒毀,也有一定可能可以扛一陣,但是芯片壽命會大大縮短。 “就像有的人挨一拳就倒了,有的人被打一個小時才倒,這個看體質。”TK笑。
手機的“遺照” 3、面對雞賊的設備(快充不快充都包含) 不得不說,有一些硬件還是做了一些保護的。他們首先跟充電器協商一個充電電壓,但是也會回過頭來驗證你有沒有說謊。一旦判斷不對勁,就馬上斷開連接。這時,這個充電頭就被拉黑了,再也無法為設備充電了。 面對這種雞賊的設備,研究員的反制招數就是:“天下武功,唯快不破。” 他們會提前判斷這個設備多久會進行一次電壓驗證,只要搶在對方驗證之前迅雷不及掩耳直接把高壓電給安排上,就妥了。。。 研究員用這個套路,成功擊毀了一部筆記本電腦。
就是這臺電腦,為科研獻出了生命,音容猶在。 后來 TK 他們在給筆記本電腦驗尸的時候發現,被燒壞的不只是充電模塊,連主板上的核心芯片都被燒毀了。 結論有二:
第一、高壓電不長眼,電到哪塊芯片連薛定諤都不知道。 第二、做個安全研究是真費錢啊,一個手機一個電腦地往里扔。
說到這,你是不是感覺這幫人有點瘋狂博士的意思? TK 告訴我,為了研究這個課題,他們還專門買了很多“護具”,就差給每個人都上個意外險了。 例如,他們一開始就買了一個準防彈級別的聚碳酸酯圓筒,把要攻擊的設備放在里面,然后跑開十米遠,躲在桌子后面按動“攻擊按鈕”。這感覺怎么看都有點像微縮版的核武器試爆。
后來研究員發現,好像也沒危險到那個地步,于是漸漸膽大了起來。 一個有些驚險的事情也就此發生了。 有一次,他們用20V電壓測試攻擊了一個充電寶(充電寶作為受電設備),結果充電寶的燈一下子就滅了。這意味著芯片被燒毀了。大功告成,團隊就去吃飯了。 沒想到,隔了一會兒回來,有一位同學無意中想挪動一下那個充電寶,結果他的手“嗖”地一下就縮回來了,原來充電寶已經非常燙,連塑料外殼都軟了。
這是我們完全沒有料到的結果。一般的想法都是芯片燒毀后各個引腳之間就都斷路了,但在真實的物理世界,高壓電還可以讓一些本來不連接的電路連通起來。 這個充電寶就是被電擊連通了某條線路,導致內部電池的能量釋放了出來。
TK 說。 從那以后,團隊買了一只超大號的鐵桶,一個人都能蹲進去的那種,凡是測試過的設備,不論什么結果,都先扔在里面,安全防火,人人有責。。。
就這樣,團隊陸陸續續從市面上幾百款快充充電頭、快充充電寶、車載快充充電器里買來了35個設備,實錘發現問題的就有18款,多于一半兒。當然因為這些充電器都是頭部品牌,所以如果按照銷量占比的話,會占到市面上絕大多數。 這里要提醒你注意,說到充電器生產商,它可能不僅生產充電器,它還有可能生產手機。所以,你正在使用的手機附贈的快充充電器也很可能是有問題的。 較真的淺友可能會問,那不還有17款做得很好么?它們為什么不受這個 BadPower 攻擊的影響? 我就喜歡較真的你,因為我也是這么問 TK 的。 不過,結論有點荒誕,剩下的這些廠商,所選用的解決方案商在設計的時候沒按照套路出牌,陰差陽錯地關閉了調試端口,或者芯片由于一些無厘頭的原因,被搞得無法執行攻擊命令。就好像一個聽力障礙者沒辦法感受到別人惡語相向那樣。。。 總之,客觀上的結果是,他們無法被 BadPower 攻擊。 從攻擊者的角度來看,這就好像一個開鎖專家遇到了一個把鐵門焊死的對手,再厲害的開鎖專家也沒辦法徒手拆電焊,還是作罷。 不過,到目前為止,既有的信息其實已經暴露了非常大的攻擊面。 注意,此時玄武實驗室在實踐上可以做到的最強攻擊如下:選定一臺目標手機,先遠程入侵這部手機,再利用手機向快充充電器下發攻擊代碼,之后,這個充電器就能電毀它充電的幾乎所有設備。 于是,2020年初,玄武實驗室決定把這個問題的詳情告知相關部門——CNVD(國家信息安全漏洞共享平臺)。 CNVD 立刻把問題轉達給所有相關的充電器生產廠家。 在預估大多數廠家都完成相關修復工作后,2020年7月,玄武實驗室選擇對外公布 BadPower 的消息,提醒電視機前的朋友們多多注意。(玄武并沒有公開具體攻擊技術,所以黑客無法根據現有信息進行攻擊) 玄武實驗室這幫技術宅本來準備拯救世界以后歸隱山林,然而,后續的事情卻并沒完全向 TK 他們預計的那樣發展。。。
有國外媒體報道 BadPower 時,還做了一個頗為夸張的宣傳圖,給你感受一下。 (四)不能做“無害假設” 一些頭部的充電器廠家從 CNVD 得到了 BadPower 漏洞詳情,第一時間就進行了修復。 他們的修復方法分為兩類:
第一類,一些廠商對手機和充電器之間的通信做強驗證,保證非法代碼沒辦法進入充電器。 第二類,一些廠商干脆關閉充電器的升級端口,等研究明白再在下一代產品中改進。
“采用第一類修復更好一些,‘可編程’畢竟還是個趨勢嘛,一堵了之不是長久之計。”TK說。 但是,除了屈指可數的頭部廠商,剩下八成的廠商態度卻不容樂觀。 2020年9月,TK 他們假扮客戶,肉身探訪了一些充電芯片廠商,詢問他們知不知道有個“很事兒”的團隊研究出了快充充電器的漏洞。 得到的回答分三類:
1、這個團隊估計是造假了,弄了個視頻嘩眾取寵。2、這可能是下游充電器生產廠商使用不當,跟我們芯片沒關系。3、知道這件事兒,但是沒關系,你以為真的有人來攻擊充電器嗎?
其實我覺得,這里面除了第一種回答有點不厚道以外,另外兩種態度并不算離譜。畢竟這年頭做生意都不容易,芯片模組的利潤薄,如果修改代碼,還要額外的技術成本。 但是 TK 完全不這么認為:
工業控制設備,以前所有人都不相信它們還會感染病毒。可是2010年的時候人們發現了震網病毒,這個時候,美國已經利用震網病毒攻擊伊朗核設施好幾年了,這直接拖慢了伊朗的核計劃。一個攻擊,只要理論上存在可能,就會有人打它的主意。 攻擊可能正在發生,唯一的問題就是你還不知道。 未來也許每個人都有快充充電器,那時候,對這些設備的攻擊方法也許還會進步,造成大規模攻擊的可能性完全存在。如果拖到那個時候整個行業再回過頭來收拾攤子,那成本就非常大了。
震網病毒經過幾層設備轉跳進入相關設施。
伊朗時任總統內賈德視察核設施時,已經可以從對面的屏幕上看到紅點,推測這是被病毒摧毀的離心機。 其實,TK 所說的邏輯,還有一個例證。 那就是他在2015年發現的 BadBarcode 漏洞,攻擊掃碼器可以盜刷支付金。當時絕大多數人還處在出門帶錢包的現金社會,人們恐怕難以想到,僅僅幾年后,掃碼支付就會在中國爆炸式地普及,成為叔叔阿姨日常買菜的操作。 TK 告訴我,因為看到了問題,騰訊支付從2015年就開始注意掃碼支付環節的漏洞,所有微信支付所采購的掃碼器型號都要經過玄武實驗室的檢測才行。(下次出去吃飯你可以拿起飯店的掃碼器研究一下,2019年以后微信支付采購的掃碼器上會印有玄武實驗室的認證 LOGO) 這些拯救世界的事兒,都讓他頗為驕傲。雖然他沒披斗篷,還穿著拖鞋。
TK 手上拿著的,就是他們最初用來探索充電原理的“秘密武器”。 (五)較真兒的人 說到玄武實驗室的認證,TK 還給我講了一個小故事。 當年發布 BadBarcode 漏洞之后,有一家掃碼器廠商的 CEO(首席執行官)帶著 COO(首席運營官)直接殺到了玄武的辦公室,把 TK 嚇一跳。 問清楚才知道,他們的掃碼設備行業地位很高,而且很快就要買到海外,所以請這個漏洞的發現者玄武實驗室對設備的安全性進行一個鑒定,這樣挑剔的老外也就無話可說了。 玄武實驗室欣然接受,這就是他們第一次為別人做認證。 結果,這家企業直接把玄武實驗室的認證 LOGO 給掛到了官網首頁上,還是挺拉風的。 而到了這一次,玄武實驗室發公布了 BadPower 漏洞,又有好多人通過私下關系找到 TK 和實驗室其他成員,詢問他們到底測試了哪一款,買哪個牌子的充電器是安全的。 沒辦法,TK 他們又想到了做認證的方式。 此時此刻,他們就在給一些充電器做認證測試,估計過幾天你就能買到修復了 BadPower 漏洞的充電器了。這里中哥本想把這些已經通過認證測試的充電器品牌公布出來,但是征求了廠家的意見,他們還是靦腆地表示:下次。 “測試認證會成為你們的商業模式嗎?”我問 TK。
目前為止(2020年9月),所有的測試認證都是免費的,如果我們做得過來,會一直免費下去。現在看起來相關工作量還不算太大,沒有影響到我們日常研究工作。
TK 笑。 講真,玄武實驗室在很多不理解他們的人眼里確實挺“較真兒”的。動不動就“雞蛋里挑骨頭”找到一個行業的設計類問題,搞一個大新聞,攪得這一行“雞犬不寧”。 但從另一個角度講,世界上又不能缺少這么“較真兒”的人。
一個普通的漏洞,就好比按照圖紙施工的工人一不留神干錯了;而設計類問題,是圖紙從一開始就畫錯了,影響面是行業性的。 而畫圖紙的人,肯定是那一行頂尖的人物,顯然他們犯錯的概率會更小。但也正因為如此,這些設計類問題一旦發現就更加猝不及防。我們就是想做最先發現這些問題的人。越早發現,修復的成本就越小。
TK 如是自白。 這倒讓我想起了一個故事。 19世紀英國霍亂縱橫,原因就是廢水污染飲用水。 倫敦排水系統設計師巴瑟杰在巨大的當局壓力下,仍然堅持他龐大而前瞻的下水道改造計劃。這些看不見的工程綿延六年才基本完工,耗資巨大,又幾經修改。百年間它究竟從瘟疫中救起來多少人,成為了一個無法計算的數目。
多年后,人們回憶往事,都會想起這句話:下水道是一個城市的良心。 而在我看來,玄武實驗室這些較真的人,大概也和巴瑟杰相似。我想起來 TK 曾用了很久的一個簽名:爾曹身與名俱滅,不廢江河萬古流。 值得慶幸的是,人的功過,從來都是由后人評說。
本文轉載自微信公眾號“淺黑科技”
原文標題:手機用快充真的會爆炸,5V1A 也不安全...
文章出處:【微信公眾號:哎咆科技】歡迎添加關注!文章轉載請注明出處。
-
5V1A
+關注
關注
0文章
2瀏覽量
6795 -
快充技術
+關注
關注
39文章
438瀏覽量
138671
原文標題:手機用快充真的會爆炸,5V1A 也不安全...
文章出處:【微信號:guofen1225,微信公眾號:哎咆科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論