人物介紹
職業: | 黑客(ios) | 出生地: | 中國上海 |
真名: | Yiduo David Wang(王翌多) | 出生日期: | 暫不詳 |
別名: | planetbeing | 主要成就: | 曾為ios1開發作出貢獻並為 ios6的越獄工作做出主要貢獻 |
國籍: | 加拿大 | 現所在團隊 | Evad3rs |
原國籍: | 中國 |
ios6的完美越獄訊息傳得沸沸 揚揚,發布這條訊息的正是幾位越獄大神中唯一一位亞洲面孔—planetbeing
曾經參與開發ios初代(ios1)越獄的planetbeing真名是Yiduo David Wang,來自俄勒岡的波特蘭,是Evad3rs四人團隊的一員。
事件
在iOS6 GM發布之後,就有不少越獄團隊第一時間嘗試進行越獄。此後iOS6正式版放出,綠毒團隊的領頭人p0sixninja表示,iOS6的防護級別高的令人不可思議,其作業系統的嚴密性超過了以往任何一款OS。因此越獄的難度是前所未有的。但最後他還是放口:黑客不會被任何框架所束縛。
小插曲:2012年12月,隨著全球都在“歡度”世界末日的到來。越獄黑客Dream JB表示他會在12月22日放出iOS 6的完美越獄工具。但是到了22日那天,大家才發現他只是和我們開了一個末日玩笑。伴隨著玩笑被戳破,眾phone友們對ios越獄絕望沮喪之時,planetbeing 在推特表示自已掌握ios6完美越獄的核心,並承諾越獄會發布 但不是在2012年。
為了達成iOS6完美越獄這個任務,(@pimskeks @planetbeing @pod2g @MuscleNerd)
隨即evasi0n;com官網上線。每一天,整個團隊都會向外界公布越獄的最新進度:68%、85%、91%……整個iOS6完美越獄工具的開發過程僅用了10天時間。國外許多媒體都用了這樣一句話來形容他們的工作:incredible work(難以置信的工作)。
事後在ios5完美越獄中作出重大貢獻的pod2g表示在此次ios6完美越獄中自己貢獻綿薄之力,主要是planetbeing,承認了planetbeing的重大貢獻與能力
他接受了福布斯的採訪,為我們講述了整個iOS6的破解歷程。他指出這次破解iOS6至少了利用了5個不同的漏洞。據悉,這次他們使用的手法,比Stuxnet更黑!(Stuxnet蠕蟲是摧毀伊朗核濃縮離心機設施的那個著名病毒)
破解過程
最初,Evad3rs使用libimobiledevice來代替iTunes,連線到電腦上。它與iTunes一樣使用了相同的設備連線協定。libimobiledevice又稱libiphone,是一個開源包,可以讓Linux支持連線iPhone/iPodTouch等iOS設備。由於蘋果官方並不支持Linux系統,但是Linux上的高手絕對不能忍受因為要連線iOS設備就換用作業系統這個事兒。因此就有人逆向出iOS設備與Windows/Mac Host接口的通訊協定,最終成就了橫跨三大桌面平台的非官方版本USB接口library。經常用Linux系統的人一定對libimobiledevice不陌生,但是許多Windows和Mac用戶也許就不知道了。事實上,它同iTools一樣,都是可以替代iTunes,進行iOS設備管理的工具。因為源碼是開放的,可以自行編譯,所以對很多開發者而言可以說更為實用。
感謝Symbolic Link這個好東西
Symbolic Link相當於Win下的"捷徑"。Unix檔案系統提供了一種將不同檔案連結至同一個檔案的機制,我們稱這種機制為連結。它可以使得單個程式對同一檔案使用不同的名字。這樣的好處是檔案系統只存在一個檔案的副本,系統簡單地通過在目錄中建立一個新的登記項來實現這種連線。軟連線有自己的inode,並在磁碟上有一小片空間存放路徑名。因此,軟連結能夠跨檔案系統,也可以和目錄連結。另外,軟連結可以對一個不存在的檔案名稱進行連結,但直到這個名字對應的檔案被創建後,才能打開其連結。
如何繞過Code-signing
在iOS中,還有另一個安全保障——Code-signing。它能夠阻止流氓套用訪問Launch。在iOS設備上運行的代碼都需要通過蘋果的審核,並附帶上有效的簽名。一般開發者開發的程式,在正式發布到App Store之前是需要使用蘋果頒發的證書進行簽名的之後,再由蘋果進行審核。審核成功之後,蘋果也會對程式進行一次簽名。當iPhone或者iPod Touch從AppStore下載安裝程式的時候會調用系統進程INSTALLD(mobileinstalltion)對應用程式進行證書校驗。所以一般需要安裝破解軟體時,都需要把此檔案替換成破解版本。
如果你的MobileInstalltion沒有破解的話,那么在安裝或者運行程式的時候需要對你的數字證書進行檢測,如果發現沒有簽名或者簽名不對,就會自動kill掉程式。那么在這種情形下,我們可以偽造簽名(當然無法通過AppStore的審核), 騙過MobileInstalltion ,使得可以正常使用。
Evasi0n構建了一枚沒有代碼的套用,當用戶點擊這個套用的時候,它就會利用Unix的“Shebang”命令,調用一個已經簽名的套用代碼,通過Code-signing的審查。此後,它就可以再調用上文提到的Launch執行root級的命令了。Evad3rs要通過這種方式,來對RFS(root檔案系統)的唯讀許可權使用“remount”命令變為可寫。這就是為什麼,我們在越獄時,要運行一次下面這個LOGO的套用。
什麼是Shebang
在計算機科學中,Shebang(也稱為Hashbang)是一個由井號和嘆號構成的字元串列(#!),其出現在文本檔案的第一行的前兩個字元。 在檔案中存在Shebang的情況下,類Unix作業系統的程式載入器會分析Shebang後的內容,將這些內容作為解釋器指令,並調用該指令,並將載有Shebang的檔案路徑作為該解釋器的參數。Shebang這一語法特性由#!開頭,即井號和嘆號。 在開頭字元之後,可以有一個或數個空白字元,後接解釋器的絕對路徑,用於調用解釋器。 在直接調用腳本時,調用者會利用Shebang提供的信息調用相應的解釋器,從而使得腳本檔案的調用方式與普通的執行檔類似。
修改launchd.conf檔案
RFS已經可寫了,Evasi0n接下來就是先修改launchd.conf檔案,當修改了launch配置檔案之後,前面的工作就可以保存下來了。這樣每次iOS設備重啟的時候,就不必再連上USB進行越獄操作了。之前,很多iOS系統不完美越獄就是因為沒有拿到修改launchd.conf的許可權。造成每次重新開機都要再越獄一次,很麻煩。
破解AMFID防護機制
對於黑客來說,沒有奪取到kernel(核心)許可權,都不算作真正把系統征服。在iOS的系統核心中,還有一層叫做AMFID(AppleMobile File Integrity Daemon)的防護機制,它是用來監測移動檔案完整性的守護進程。AMFID會校驗代碼簽名,防止流氓程式運行。Evasi0n利用launchd.conf檔案,為AMFID載入一個library,讓每次AMFID在做校驗的時候,都會返回一個“approved”的肯定回答。David Wang在福布斯記者的採訪中,並沒有給出具體的破解方法,只是留下一句話:蘋果自己應該明白這一點。
異常向量,萃取核心地址
除了核心級的套用簽名之外,蘋果為了防止黑客在核心級的記憶體中隨意修改,iOS還有最後一道那就是ASLR(Address Space Layout Randomization)隨機地址空間布局。當系統載入時,ASLR都會將他們隨機分配到記憶體的不同位置,防止某些內容總是存儲在記憶體的特定部分,讓黑客有規律可尋。
聰明的Evad3rs團隊,使用了ARM exception vector(異常處理向量)。exception vector其實經常會用到,處理器異常、出錯時(其實不完全是出錯),它就會抓來這個vector找相應的處理函式。例如,遇到看不懂的指令,它就會抓0x4地址指令。也就是“ldr pc, _undefined_instruction”,接著就會跳到undefined instruction的函式去處理。當程式出現異常時,ARM異常向量就會給出崩潰的記憶體地址,黑客拿到足夠多的信息,就可以找到核心在記憶體的分布範圍,這樣整個核心的內容也就被抓到了。
奪取核心控制權
搞定ASLR之後,Evad3rs利用iOS連線USB的一個漏洞,把核心記憶體的某個地址傳給一個套用,而套用返回來的內容就可以用來改寫這部分記憶體地址。由此Evad3rs就可以修改核心任何部分的內容了。據Wang所說,當你拿到了核心的許可權時,整個系統就沒有任何“安全機制”能阻止我們了,我們贏了!
2013-2-7 最新更新:
Pod2g在Twitter上稱,evasi0n網站獨立IP訪問量超過500萬,PV突破了4000萬,而在整個用戶群中,中國用戶的數量最大。有近300萬的中國用戶訪問了evasi0n網站,占總訪問量的20.12%。美國用戶比例為16.88%,將近250萬用戶。其次是法國、德國、義大利、英國、俄羅斯等地區的用戶。