【硬塞專家開評】一文看懂為何 Wi-Fi 名稱會弄壞手機的 Wi-Fi 功能?三大方法教你自保

不久前資安專家證實蘋果 WiFi 出現嚴重漏洞,為什麼 Wi-Fi 名稱會弄壞手機的 Wi-Fi 功能呢?一文看懂背後原理。
評論
Photo Credit:Shutterstock/達志影像
評論

本篇來自資安解壓縮,資安解壓縮致力用最好理解的方式幫助大家了解資安一起學習如何保護自己,資安解壓縮現經營資安為主題的中文 Podcast 節目以及 IG,本篇內容為 INSIDE 邀請評論。

【硬塞專家顧問募集中】硬塞邀請各界專家、對網路科技議題有洞見的你,透過文字傳遞觀點,為網路科技產業帶來影響力。觀點評論投稿歡迎來信與我們聯絡。

今年六月中資安研究員 Carl Schou 發現他的 iPhone 只要連上名為 %p%s%s%s%s%n 的 Wi-Fi,iPhone Wi-Fi 功能就會被強制關閉,如果要重新開啟 Wi-Fi,就只能重置手機網路設定。

Carl 接著在這個月初發現,如果 iOS 手機連上名稱為 %secretclub%power 的 Wi-Fi 的話,手機的 Wi-Fi 就會完全不能用,而且這次的情況更糟,重置手機的網路設定也不一定能修復手機的 Wi-Fi 功能。

那麼為什麼把 iOS 裝置連接到一些有奇怪 Wi-Fi 名稱的網路會影響手機的 Wi-Fi 連線功能呢?這是因為 iOS 系統上的字串格式化漏洞(Format String Bug)。

什麼是字串格式化漏洞 Format String Bug ?

要理解什麼是字串格式化漏洞之前,我們需要先稍微了解一下在程式語言中的字串跟變數是怎麼被處理的。

以C語言為例的話,下面這段程式碼的作用是將 “Jeff“ 這個字串保存在 name 這個變數裡,再將變數 name 透過 printf 函式顯示出來。

大家可以注意到在使用 printf 函式在輸出的時候,我們使用了 %s 來代表要輸出的變數name

%s 是在 C 語言中用來代表字串的特殊字元,他會告訴像是 printf 這類型的函式說:我是一個變數不要直接把我印出來,要去後面找我對應的變數。

類似的特殊字元還有代表浮點數的 %f、代表十進位數字的 %d、代表 pointer 的 %p 等等的。

這樣造成什麼潛在漏洞?

如果今天,我們讓使用者可以輸入內容來與程式進行互動的話,就有可能會觸發字串格式化漏洞。

下面這段程式碼的功用是讓使用者在執行的同時附上自己的名字,接著程式會將使用者的名字輸出。

正常的使用者執行的話就會出現下面的結果,我輸入 Jeff 到程式裡,他就會將 Jeff 顯示出來。

但是如果今天遇到來搗亂的使用者,他不乖乖的輸入名字,而是輸入以下這種內容的話就會出現問題。

大家可以發現原本應該是回傳 %s 的程式,現在顯示的是一串像是亂碼的東西 0xffffdddd,他其實是一段記憶體位置。之所以會回傳一段記憶體位置是因為當我們輸入 %s 到這個程式以後,在 printf 這個函式中他把 %s 認定為是一個變數了,因此 printf 會試著去尋找對應的變數所包含的資料,但是因為我們根本沒有設定一個變數給他,因此他就會回傳對應的記憶體位置給我們。

如果我們沒有針對字串格式化漏洞進行任何的防護的話,攻擊者可以透過輸入下面這種內容來進行攻擊

如此一來,程式就會回傳一連串的記憶體資訊,攻擊者會可以透過這種方式來讀取到一些像是機密資訊等等的攻擊者原本不該有權限讀取的內容,進階一點的話攻擊者還有可能搭配溢位攻擊(Overflow Attack)或是其他的攻擊手法來修改程式的內容,讓攻擊者取得這個程式的控制權。

等等......可不可以白話一點?

以現實生活中的事物來做舉例的話,假設家X福有個只有員工才知道的通關密語,只要在結帳的時候說出這個通關密語就可以享有員工優惠。

某天我在結帳的時候正在跟身旁的朋友聊天,過程中不小心提到了這個通關密語,結帳的員工在聽到了以後就以為我也是家X福的員工,因此主動幫我使用員工優惠打了折。

我在注意到這件事以後,開始試著每次去家X福消費的時候都說出這個通關密語,並且發現每次都會有員工優惠,因此我就理解到這個通關密語是一個只有家X福員工才知道的秘密。

貪心的我並不滿足,想要透過這個通關密語獲得更多的好處,因此這天我就來到家X福的員工休息室,佯裝成是忘記帶識別證的員工請別人幫我開門,這時我就說出了通關密語想要證明自己是家X福員工,休息室內的員工因為覺得這個通關密語只有自己人會知道,因此在沒有經過更進一步的驗證之下就相信了我是家X福讓我進入員工休息室。混入了員工休息室後的我就開始各種的搜集家X福的機密資料,想辦法從中獲利。

字串格式化漏洞也是類似的概念,當我們的程式沒有好的防護機制的時候,攻擊者就會透過 %s%p 等等的字串佯裝,讓我們的程式把他們誤以為是合法的變數而回傳對應的資料,透過這樣的方式攻擊者就有辦法從我們的程式中取得機密資訊和控制權。

與這次的 Wi-Fi 問題有什麼關聯?

眼尖的讀者應該會發現,在資安研究員 Carl 發現的兩個有問題的 Wi-Fi 名稱中都包含了 %s 以及 %p ,再加上 iOS 作業系統的底層是由 C 語言所寫的,因此大家推斷 iOS 的 Wi-Fi 功能中存在著字串格式化漏洞。當我們連上了一個名稱中有 %s 或是 %p 的 Wi-Fi 時,很高機率是觸發了漏洞導致 iOS 手機無法正確地處理這些 Wi-Fi 名稱。

目前從網友提供的資訊來看,此次字串格式化漏洞的影響只限於影響 iOS 裝置的 Wi-Fi 功能導致無法使用 Wi-Fi 連線,沒有造成其他更危險的影響。但我們並不知道攻擊者會不會在得知這個漏洞,經過更多的研究後找到危險性更高的攻擊手法,因此大家還是要多多留意。

應對方式

1. 關閉 iOS 裝置的 自動加入熱點 功能:關閉這個功能可以避免手機自動連上別人的熱點,避免手機自動連上惡意 Wi-Fi。

2. 不要使用公開、未知的 Wi-Fi:不要隨意的連接和使用公開、安全性未知的 Wi-Fi,我們很難知道這個 Wi-Fi 是由誰提供的、對方是否有惡意。即便 Wi-Fi 名稱看似正常,也有可能是攻擊者偽裝的,因此建議大家不要使用公開、安全性未知的 Wi-Fi。

3. 更新手機作業系統:目前 Apple 還沒有針對這次事件釋出更新修補,但如果大家能夠養成即時更新的好習慣的話就可以在第一時間修補手機上各種安全性的漏洞。

責任編輯:Anny
核稿編輯:Mia

延伸閱讀:

相關連結



疫情竟使童婚比例暴增?2023 年前將新增 400 萬女童被迫成婚

全球有無數女童正在面臨貧窮、家暴、性別暴力、失學的困境,在動盪不安的 Covid-19 威脅下,女童遭受的生命危機更勝以往,而你我都不該漠視。立即加入世界展望會的資助兒童計劃,不再讓悲劇發生。
評論
Photo Credit:世界展望會
評論

在新冠疫情、武裝衝突的影響下,阿富汗女性與兒童正面臨重大威脅,不僅人身自由、教育、工作等權利備受衝擊,近期更傳出 12 歲女童被強擄配婚給軍人的消息,使當地長期存在的「童婚」問題更加嚴重。事實上,不只是阿富汗,全世界仍有無數女童深陷在不安與恐懼中,面臨童婚、童工、貧窮,以及女性割禮等殘酷傳統文化等挑戰,這一關又一關的生存考驗,只因為她們是女生。

女童困境恐怕比你想像的嚴重——關於性別暴力、童婚

根據聯合國統計,每年有 1,200 萬未成年女童結婚,她們大多是因為民間習俗或經濟弱勢而被迫成婚,婚姻不僅逼迫這些女童放棄學業,其遭受家暴的風險也將大增,甚至被迫從事性行為,使得尚未發育完全的身體備受負擔;許多未成年少女因為懷孕或分娩併發症死亡,嬰兒胎死腹中或夭折的機率也更高。

來自緬甸的 17 歲少女荷拉(Hla)就曾是性別暴力與未成年婚姻的受害者。在她12歲時,一場重病帶走了她的母親,而酒精成癮的父親根本顧不了這些孩子,因此荷拉被迫離家、在街上討生活。為了尋求避風港,荷拉甚至嫁給了大她 15 歲的男子,並在 14 歲成為一名母親,但生下孩子沒多久後,丈夫便另尋新歡,留下荷拉和孩子相依為命。無助的荷拉為了不讓孩子跟著吃苦,只能忍著思念的痛苦,把孩子送到安置機構。

Photo Credit:世界展望會/荷拉小時候常跟著爸媽到各個城市的慶典或嘉年華活動兜售玩具,並以此維生。然而非常微薄的收入,根本無法支撐荷拉與 13 個兄弟姊妹的生活。

幸好在荷拉最低潮的時刻,遇上了世界展望會。在世界展望會的協助下,除了支持荷拉重建身心健康,也提供她職業訓練的機會,培養一技之長。僅管有些髮廊仍因荷拉的經歷而不願接受她,但在世界展望會的引薦下,現在的荷拉已找到一份穩定的髮廊實習工作,每月都能賺取 20 美元的薪水,並和同事們住在一起、彼此照顧。從街頭遊童到髮型設計師,荷拉因為世界展望會出現在她的生命中,而有了希望。

Photo Credit:世界展望會/荷拉說:「我住在街頭時,常常受到男性的輕蔑和不尊重。即使我根本沒有做錯事,也常常得躲避警察取締,生活充滿恐懼和不安。很感謝世界展望會的幫助和支持,我才能把自己的人生拉回正軌,創造更好的未來。」

女童困境恐怕比你想像的嚴重——關於失學、文盲、童工

荷拉的故事絕不是少數案例。事實上,許多女童不只遭受可怕的性別暴力,也因為貧窮或環境動盪,而被迫放棄受教育的權利,成為失學的童工,甚至不得不從事對身心發展有害的勞動工作。根據聯合國資料,全球童工人數在疫情的影響下,20 年來首次增加至 1.6 億;而全球約 7 億人口的文盲當中,女性就佔了 2/3。困在社會底層的弱勢女童,身心備受煎熬,急需你我關注。

印度女孩珊蜜拉,便是弱勢女童的縮影之一,遭遇令人心疼。珊蜜拉(化名)原本是個熱愛上學的女孩,14 歲時由於家中經濟無法負擔她繼續升學,因此被送到孟買與姊妹們一起工作,幫助家中生計。當時,珊蜜拉請妹夫幫她找工作,沒想到卻是噩夢的開始,妹夫將她送到人口販子手上,珊蜜拉被推入妓院工作,並經歷長達三個月地獄般的生活。

「只有我工作了才會有飯吃。如果我不工作,妓院老闆、甚至是客人就會拿皮帶打我。我被迫喝酒、他們會拿菸燙我的手。我一直在哭,求他們放我回家。」後來珊蜜拉得知自己陷入險境是受親人所害,整顆心都碎了。

Photo Credit:世界展望會/珊蜜拉好不容易說出那段記憶:「我經歷的那些,希望沒有其他任何女性需要經歷。我承受了非常多的痛苦,那是一段很難熬的時期。白天會有 12 到 14 個男人,晚上則會有 15 到 16 個。一整天工作完後,所有的女孩會被送到荒郊野外中的一棟建築物裡休息,整間房間裡只有一扇窗戶。因為太偏遠,即便我們大吼著求救,也沒有任何人會聽到。」

終於有一天,珊蜜拉和其他女孩們的工作場所遇到警察臨檢,珊蜜拉便趕緊抓住機會向警方求救。成功獲救的同時,同樣在場的妹夫和妓院老闆也遭到警方逮捕。接著,珊蜜拉花了數個月的時間輾轉換了好幾間避難所,最後終於回到家人身邊。

在家人的陪伴以及世界展望會的支持下,珊蜜拉終於踏上復原之路。由於人口販運的受害者往往受到許多暴力與虐待而留下嚴重陰影,這段遭遇遂成為她們心中無法說出口的痛,且大多數受害者因地處偏遠、經濟貧困,或是覺得丟臉、自責等心理因素,難以取得身心重建的專業支持。因此,世界展望會提供包括創傷後症候群、焦慮、憂鬱、恐慌、斯德哥爾摩症候群、藥物濫用等醫療與心理照護,讓更多像珊蜜拉一樣遭遇創傷的女童,得以重建生命。

Photo Credit:世界展望會/珊蜜拉現在加入了印度世界展望會的受害者支持團體,踏上了復原之路。

你有力量打破女童困境:資助 1,000名 女童,扭轉 1,000+ 個家庭命運

在 Covid-19 的疫情衝擊下,脆弱國家的資源更加緊縮,這也讓兒童面臨前所未有的考驗。世界展望會的分析報告指出,2020 年 3 月全球疫情爆發後,與 2019 年相比,童婚案例在許多社區暴增了一倍以上;而童婚的增幅速度,更攀升到25年來最高,若無法改善,預估 2030 年前全球將再增加 1000 萬名兒童新娘。

對於女童而言,貧窮、家暴、性別暴力、失學等問題是無法分割的,這些威脅往往彼此連動、加乘,為女童的生命帶來嚴重打擊。但從上述的實際案例可以發現,受困女童的命運並非不能扭轉,只要世界上某個角落的某一個人願意付出行動,女童的生命就有希望曙光。

世界展望會推動「資助 1000 個女童 挺聲而進 願景無懼」行動,期待在 10 月 11 日女童日前,能為 1000 個女童找到資助人,每個月 700 元,就能翻轉一個女童的生命,為她提供安穩的生存環境與受教權,並將這份改變延伸至女童的家庭與周遭社區,帶來正向影響力。讓我們一起阻止女童悲劇再次發生,現在,就加入改變世界的行列!