圖片來源:Pixabay今年5月,蘋果修復了有史以來最令人震驚的iPhone漏洞之一:iOS核心中的記憶體損壞錯誤。這個漏洞使得攻擊者可以透過Wi-Fi,無需任何接觸即可遠端訪問裝置中的所有資訊。透過漏洞甚至也很容易實現蠕蟲程式,病毒可以利用無線電從一個裝置向其他裝置傳播。攻擊者可以透過該漏洞直接獲取裝置上的照片、郵件、密碼,甚至可以透過麥克風和攝像頭直接監視監聽使用者。撰文 | 王昱審校 | 吳非來自谷歌資訊保安團隊Project Zero的研究人員伊恩·比爾(Ian Beer)開發並公佈了這個漏洞。Project Zero是谷歌公司在2014年公開的一個資訊保安團隊,專門負責找出各種軟體的安全漏洞,特別是零日漏洞(Zero-day),即還沒有補丁的安全漏洞。該團隊在發現安全漏洞後,會立即通知軟體開發者,在漏洞被修復前,不會對外公佈。但是90天后,不論漏洞是否已被修復,都會自動公開。Project Zero的創始人克里斯·埃文斯(Chris Evans)在接受採訪時說:“(這個漏洞的發現)是一項了不起的工作。該漏洞十分嚴重。無需接觸手機就能發動攻擊這一點非常可怕。當你走在路上,手機在包裡時這種攻擊就能發生,Wi-Fi資料包隨時都能入侵你的裝置。”伊恩·比爾是英國著名的計算機安全專家,有人認為他是最好的iOS駭客之一。他曾發現大量iOS漏洞,也曾製作iOS的越獄版本。在其12月1日釋出的3萬字的帖子中,詳細描述了他花費6個月獨自開發和驗證漏洞的過程。其攻擊是透過AWDL驅動程式中的緩衝區溢位(buffer overflow)完成的。
演講中的伊恩·比爾(圖片來源:cyberwire)關於AWDLAWDL協議全稱為Apple Wireless Direct Link,是隔空投送和隨航等功能的底層協議。隔空投送是蘋果裝置之間互相傳輸檔案的一種方式,而隨航可以將iPad變成蘋果筆記本的擴充套件顯示屏。在日常生活中,當我們透過無線方式在不同裝置間傳輸檔案時,可能較多使用微信,QQ,電子郵件等方式。這種情況下,資料包會從裝置透過電磁波訊號發向路由器,再由網線傳輸到光貓,之後就透過光纖傳入運營商,到達相應伺服器後,再將資料包原路返回,傳輸給另一個裝置。
大多數應用程式在不同裝置間傳輸檔案的方式(圖片來源:flaticon)或者是在同一Wi-Fi環境下,進行投屏或其他操作,資料包至少也會經過路由器的中轉。但是Wi-Fi所用的電磁波波長不短(常見的2.4GHz和5GHz波長分別為12.5cm和6cm),電磁波並不會嚴格沿著一條直線傳播,它會向四面八方傳播。同時,由於Wi-Fi裝置都同時擁有接收和發射Wi-Fi訊號的能力,理論上不需要經過路由器的中轉,裝置和裝置之間可以直接通訊。而AWDL協議正是這樣做的。
使用AWDL傳輸資料的方式 圖片來源:flaticon悄無聲息的攻擊漏洞產生的原因是緩衝區溢位,即向緩衝區寫入超出其容量的資料。緩衝區溢位是安全漏洞產生的重要原因之一,實際上,1988年第一個透過網際網路傳播的蠕蟲病毒——莫里斯蠕蟲(Morris worm)——就利用了緩衝區溢位。比爾在帖子中寫到:“想象一下擁有這種能力的攻擊者所感受到的力量。當我們越來越多的將心血放進這些裝置,攻擊者可以輕易地從毫無戒心的目標上獲得大量資訊。”比爾開發了幾種攻擊方式。其中最先進的一種向被攻擊裝置安裝了一個植入程式,可以獲得使用者的所有個人資訊,包括郵件、照片、資訊、密碼等。攻擊者可以用一臺筆記本,一個樹莓派和一些Wi-Fi介面卡進行攻擊。植入程式大約需要2分鐘的安裝時間,但是比爾表示,如果寫出一個更高效的攻擊程式,那麼攻擊過程可能在幾秒鐘內就能完成。攻擊並不需要你的裝置開啟隔空投送的功能,比爾甚至想出了強制開啟對方裝置AWDL的辦法。比爾還製作了演示影片,在影片中,受害者的iPhone 11 Pro與攻擊者隔開。其間攻擊者沒有接觸過手機,但是兩分鐘後,攻擊者輕易獲得了手機剛剛拍攝的照片。
圖片來源:關於 iOS 13.5 和 iPadOS 13.5 的安全性內容/蘋果如何避免漏洞威脅計算機漏洞一直是威脅資訊保安的重大威脅。2018年,Project Zero發現了著名的“熔斷”和“幽靈”漏洞,影響了幾乎整個個人電腦市場。這兩個漏洞存在於大部分英特爾x86/x86-64處理器中,在微軟釋出針對漏洞的補丁後,2015年及之前生產的intel處理器出現了較為明顯的效能下降,有些測試中降幅甚至達到30%。而對於Intel的處理方式,Linux之父林納斯·託瓦茲(Linus Torvalds)強烈表達了他的不滿,並稱其處理方式為“全然的垃圾”(COMPLETE AND UTTER GARBAGE)。
幽靈和熔斷漏洞(圖片來源:Wikipedia)而為了避免漏洞再次出現,以及儘快發現未知的漏洞並將其修復,Beer在帖中提出了3項重要建議。首先,對於如何現代化核心遺留程式碼,應該有一個長期的策略和計劃。此次漏洞中涉及的重要檔案vm_map.c,其最初版本寫於1985年,而至今還在使用。其次,對於如何快速提高新程式碼的質量,應該制定短期策略。例如進行廣泛的自動化測試,對關鍵的、對安全敏感的程式碼進行審查,以及創作高質量的內部文件,以便開發人員可以瞭解其程式碼在整體安全框架中的位置。最後,對安全性測試應該有新的嘗試,不能侷限於模糊測試。這不僅意味著要嘗試進行更多樣化的分析,還要付出大量努力,瞭解攻擊者的工作方式,並比他們做得更好來擊敗他們。當然,這些都是科技公司的任務。至於消費者,保持裝置進行系統更新,形成健康的上網習慣即可。好訊息是,蘋果也表示,大部分iPhone和iPad使用者都會定期更新裝置。