iOS應用安全風險
公司主營業務:成都做網站、網站建設、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。成都創新互聯是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創新互聯推出通海免費做網站回饋大家。
1
內購破解
iOS應用需防反編譯風險之一:插件法(僅越獄)、iTools工具替換文件法(常見為存檔破解)、八門神器修改
2
網絡安全風險
iOS應用需防反編譯風險之二:截獲網絡請求,破解通信協議并模擬客戶端登錄,偽造用戶行為,對用戶數據造成危害
3
應用程序函數PATCH破解
iOS應用需防反編譯風險之三:利用FLEX 補丁軟件通過派遣返回值來對應用進行patch破解
4
源代碼安全風險
iOS應用需防反編譯風險之四:通過使用ida等反匯編工具對ipa進行逆向匯編代碼,導致核心代碼邏輯泄漏與被修改,影響應用安全
5
面對這些iOS應用存在的風險,iOS應用如何防止被反編譯,下面看下iOS應用加密技術
END
iOS應用加密防反編譯技術
本地數據加密
iOS應用防反編譯加密技術之一:對NSUserDefaults,sqlite存儲文件數據加密,保護帳號和關鍵信息
URL編碼加密
iOS應用防反編譯加密技術之二:對程序中出現的URL進行編碼加密,防止URL被靜態分析
網絡傳輸數據加密
iOS應用防反編譯加密技術之三:對客戶端傳輸數據提供加密方案,有效防止通過網絡接口的攔截獲取數據
方法體,方法名高級混淆
iOS應用防反編譯加密技術之四:對應用程序的方法名和方法體進行混淆,保證源碼被逆向后無法解析代碼
程序結構混排加密
iOS應用防反編譯加密技術之五:對應用程序邏輯結構進行打亂混排,保證源碼可讀性降到最低
下面是iOS應用加密防反編譯前后對比
END
iOS應用防反編譯總結
1
通過以上研究,iOS應用開發者必須要注意iOS應用反編譯技術研究了,不要讓iOS應用重蹈Android應用的覆轍,iOS應用防反編譯!
安全。蘋果系統開發者模式可防止人們無意中在其設備上安裝可能有害的軟件,并減少開發者專用功能所暴露的攻擊媒介,所以是安全的。
《黑客攻防技術寶典》([美]Charlie Miller)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:
提取碼:vwga ?
書名:黑客攻防技術寶典
作者:[美]Charlie Miller
譯者:傅爾也
出版社:人民郵電出版社
出版年份:2013-9
頁數:320
內容簡介:安全始終是計算機和互聯網領域最重要的話題。進入移動互聯網時代,移動平臺和設備的安全問題更加突出。iOS系統憑借其在移動市場的占有率擁有著舉足輕重的地位。雖然iOS系統向來以安全著稱,但由其自身漏洞而引發的威脅同樣一直存在。
《黑客攻防技術寶典:iOS實戰篇》由美國國家安全局全球網絡漏洞攻擊分析師、連續4年Pwn2Own黑客競賽大獎得主Charlie Miller領銜,6位業內頂級專家合力打造,全面深入介紹了iOS的工作原理、安全架構、安全風險,揭秘了iOS越獄工作原理,探討了加密、代碼簽名、內存保護、沙盒機制、iPhone模糊測試、漏洞攻擊程序、ROP有效載荷、基帶攻擊等內容,為深入理解和保護iOS設備提供了足夠的知識與工具,是學習iOS設備工作原理、理解越獄和破解、開展iOS漏洞研究的重量級專著。
本書作為國內第一本全面介紹iOS漏洞及攻防的專著,作者陣容空前豪華,內容權威性毋庸置疑。Charlie Miller曾在美國國家安全局擔任全球網絡漏洞攻擊分析師5年,并連續4屆摘得Pwn2Own黑客競賽桂冠。Dionysus Blazakis擅長漏洞攻擊緩解技術,2010年贏得了Pwnie Award最具創新研究獎。Dino Dai Zovi是Trail of Bits聯合創始人和首席技術官,有十余年信息安全領域從業經驗,出版過兩部信息安全專著。Vincenzo Iozzo現任BlackHat和Shakacon安全會議評審委員會委員,因2010年和2011年連續兩屆獲得Pwn2Own比賽大獎在信息安全領域名聲大振。Stefan Esser是業界知名的PHP安全問題專家,是從原廠XBOX的硬盤上直接引導Linux成功的第一人。Ralf-Philipp Weinmann作為德國達姆施塔特工業大學密碼學博士、盧森堡大學博士后研究員,對密碼學、移動設備安全等都有深入研究。
本書適合想了解iOS設備工作原理的人,適合對越獄和破解感興趣的人,適合關注iOS應用及數據安全的開發人員,適合公司技術管理人員(他們需要了解如何保障iOS設備安全),還適合從事iOS漏洞研究的安全研究人員。
作者簡介:Charlie Miller
Accuvant Labs首席研究顧問,曾在美國國家安全局擔任全球網絡漏洞攻擊分析師5年,連續4年贏得CanSecWest Pwn2Own黑客大賽。他發現了iPhone與G1安卓手機第一個公開的遠程漏洞,通過短信對iPhone進行漏洞攻擊并發現了可以讓惡意軟件進入iOS的代碼簽名機制缺陷。作為圣母大學博士的他還與人合著了The Mac Hacker's Handbook和Fuzzing for Software Security Testing and Quality Assurance兩本信息安全類圖書。
Dionysus Blazakis
程序員和安全研究人員,擅長漏洞攻擊緩解技術,經常在安全會議上發表有關漏洞攻擊緩解技術、繞過緩解技術和尋找漏洞的新方法等主題演講,因利用即時編譯器繞過數據執行保護的技術贏得了2010年Pwnie Award最具創新研究獎。另外,他與Charlie Miller為參加2011年Pwn2Own大賽開發的iOS漏洞攻擊程序贏得了iPhone漏洞攻擊比賽的大獎。
Dino Dai Zovi
Trail of Bits聯合創始人和首席技術官,有十余年信息安全領域從業經驗,
做過紅隊(red teaming,又稱“倫理黑客”)、滲透測試、軟件安全、信息安全管理和網絡安全研究與開發等多種工作。Dino是信息安全會議的常客,在DEFCON、BlackHat和CanSecWest等世界知名的信息安全會議上發表過對內存損壞利用技術、802.11無線客戶端攻擊和英特爾VT-x虛擬化rootkit程序等課題的獨立研究成果。他還是The Mac Hacker's Handbook和The Art of Software Security Testing的合著者。
Vincenzo Iozzo
Tiqad srl安全研究人員,BlackHat和Shakacon安全會議評審委員會成員,常在BlackHat和CanSecWest等信息安全會議上發表演講。他與人合作為BlackBerryOS和iPhoneOS編寫了漏洞攻擊程序,因2010年和2011年連續兩屆獲得Pwn2Own比賽大獎在信息安全領域名聲大振。
Stefan Esser
因在PHP安全方面的造詣為人熟知,2002年成為PHP核心開發者以來主要關注PHP和PHP應用程序漏洞的研究,早期發表過很多關于CVS、Samba、OpenBSD或Internet Explorer等軟件中漏洞的報告。2003年他利用了XBOX字體加載器中存在的緩沖區溢出漏洞,成為從原廠XBOX的硬盤上直接引導Linux成功的第一人;2004年成立Hardened-PHP項目,旨在開發更安全的PHP,也就是Hardened-PHP(2006年融入Suhosin PHP安全系統);2007年與人合辦德國Web應用開發公司SektionEins GmbH并負責研發工作;2010年起積極研究iOS安全問題,并在2011年提供了一個用于越獄的漏洞攻擊程序(曾在蘋果多次更新后幸存下來)。
Ralf-Philipp Weinmann
德國達姆施塔特工業大學密碼學博士、盧森堡大學博士后研究員。他在信息安全方面的研究方向眾多,涉及密碼學、移動設備安全等很多主題。讓他聲名遠播的事跡包括參與讓WEP破解劇烈提速的項目、分析蘋果的FileVault加密、擅長逆向工程技術、攻破DECT中的專屬加密算法,以及成功通過智能手機的Web瀏覽器(Pwn2Own)和GSM協議棧進行滲透攻擊。
簡單的數據,對安全性要求不高的數據可以使用 NSUserDefaults (本質上是一個plist)來存儲相對復雜點的數據,可以使用coredata (本質上是使用sqlite 來存儲)對安全性要求較高的數據,可以使用keychain 來存儲。同樣調用NSCoder子類NSKeyedArchiver的方法unarchiveRootObject:toFile: 即可 。
缺點:歸檔的形式來保存數據,只能一次性歸檔保存以及一次性解壓。所以只能針對小量數據,而且對數據操作比較笨拙,即如果想改動數據的某一小部分,還是需要解壓整個數據或者歸檔整個數據。
任何系統都會有木馬病毒的產生,不存在絕對的安全,只有相對的.
有人用,有利益就會有,何況市場保有量那么高蘋果最近出示一份文件,詳細描述了iOS內部安全規格。從文件來看,更像是解釋為何不讓開發者接入:“從iOS設備的架構考慮,理解內建安全功能如何運作以提供一個安全的移動平臺,這是有必要的。iPhone、iPad、iPod Touch建有多個安全層。低級的硬件和固件功能保護可以防止惡意軟件和病毒,高級的OS功能可以確保個人信息、企業數據安全,防止未授權使用,協助阻止攻擊。iOS安全模式在保護信息的同時,也支持移動使用、支持第三方程序、支持同步。系統大部分是基于產業標準安全設計原理開發的,許多時候,蘋果還增加了設計,在不犧牲使用性的前提上強化安全。這份文件提供了安全技術的細節,也介紹了iOS平臺內部功能的執行。”
業界人士讀完整個文檔后,得出一個簡單的而通俗的結論:蘋果不需要iOS反病毒程序,因為它沒有給病毒留下空間(包括木馬、惡意軟件等),這些病毒沒法進入系統。
如果用戶如蘋果預期一樣使用iPhone,從App Store獲得程序。而程序商店的程序是經過審查的,它沒有包括惡意代碼。因此,惡意代碼沒法在任何一款設備上出現,也就沒有必要使用反病毒軟件了。
在Android平臺上曾出現過病毒,它的下載安全也比蘋果低些。不過,如果要說蘋果100%安全也不見得。它還忽略一點:并非所有程序都是從程序商店下載的,還有越獄機。
iOS通過以下幾種機制來保全整個系統的安全性:
一:系統結構
所有iOS設備中,系統與硬件都高度集成,從系統啟動、系統更新、應用的安裝、應用的運行時等多個方面來保全系統的安全,具體包括:
1:所有iOS設備在處理器內都集成有一段名為Boot Room的代碼,此代碼被燒制到處理其內的一塊存儲上,并且只讀,可以認為是完全可信的。系統啟動時,Boot Room通過蘋果的Apple Root CA Public證書對Low-Level BootLoader進行驗證,如果通過驗證,Low-Level BootLoader將運行iBoot,較Low-Level Bootloader高層次的Bootloader,如果這一步也通過,那么iBoot將運行iOS的內核, XNU,系統開始運行。
以上這幾個步驟任一步驟無法通過,都將導致系統無法啟動,這樣,處理期內燒制的Boot Room保證了iOS系統只能在Apple自家設備上運行,而這些設備也將無法運行iOS之外的系統。
2:iOS設備的系統升級之后是不允許降級的(官方沒有提供接口)。這樣做的好處是系統的安全等級只會越來越高,二不會出現由于系統降級,已修復安全風險又暴露出來的問題。
iOS系統在升級過程需要聯網進行驗證,系統升級之前,設備會將LLB、iBoot、內核、鏡像,外加一個隨機的不可重復的值發送到蘋果的服務器進行驗證,服務器端對所有這些進行驗證,如果通過驗證,將會返回一個通過的結果,結果加入了與設備唯一相關的ECID。這樣做的好處是此值是無法重用的,只能對應與一臺設備,且只能使用一次。同過這種機制,保證了系統升級過程都是符合蘋果要求的。提高了較高的安全性。
3:所有運行在iOS上的代碼都是需要簽名的。蘋果自帶應用已經打上了蘋果的簽名,而第三方應用,則需要開發者賬號進行簽名,而開發者賬號都是通過蘋果官方實名審核的賬號,從開發者源頭上控制了程序的安全性,也就是說,系統內所有運行的程序都是可信的,且知道來源的。這個簽名就是在Xcode code signing選項里選擇的賬戶。
4:運行與iOS系統的第三方軟件都是運行與sandbox之內,每個第三方程序都有自己的獨占的路徑,其只能訪問獨占路境內的內容,其他程序的文件一般情況下無法訪問,如果要訪問,只能通過蘋果官方API,而不能自行操作文件。連個應用之間無法共享文件,如要互相通信,只能通過URL Schema或shared key chain。
另外,每個應用都有其運行權限,不同權限可進行的操作是不同的,將應用的權限限制在其需要的范圍內,而不賦予額外的權限。
二:數據的加密與保護
1:加解密是耗時耗能源的操作。而iOS內所有用戶數據都是強制加密的,加密功能不能關閉。所以,蘋果的AES加解密引擎都是硬件級的,位于存儲與系統之間的DMA內,所有進出存儲的數據都啊要經過硬件的加密與揭秘,這樣提供了較高的效率與性能。
加密揭秘使用的KEY主要來自unique ID(UID)以及Group ID(gid),UID與唯一設備相關,GID與某種特定型號的CPU相關,一臺設備的UID及GID全部被燒制到芯片內部,除了AES加密引擎,沒有其他方法直接讀取,能看到的只有使用UID及GID加密后的數據。這樣,不同設備的加密結果是不同的,同一套密文只能在加密的機器上進行解密。
除了GID及UID,其他加密使用的KEY全部來自系統自帶的隨機數生成器,具體使用的算法為Yarrow。
2: iOS提供了名為File Data Protection的數據保護方法。所有文件在加密時使用的key都是不同的,這些key被稱作的prefile key,存儲于metafile內。
prefile的訪問需要進行解密的key,這些key包括:
File System Key: 系統安裝時生成的一個隨即的key
Class Key,另一個key,與UID相關,如果用戶設置了鎖屏密碼,那么此Class Key將的來源將同時包括鎖屏密碼。
只有有了這兩個key,一個文件的prefilekey才能被讀取出來,此加密的文件才能被揭秘,也就是說,當鎖屏之后,或存儲位于不同的設備之上,數據是無法讀取的。
File System Key還有一個重要作用,遠程刪除數據時,其實不用真正的刪除磁盤上的數據,只要刪除此key,那么所有文件的prefile key 將不能訪問,也就是所有文件將無法讀取。
3:鎖屏密碼為了防止暴力破解,增加了三個限制:
將其與uid綁定,也就是只能在該密碼生成的設備上進行嘗試,
兩次嘗試的間隔被強制設成80ms,機器暴力破解的時間將大大加長
增加選項,如果連續輸錯次數超過10次,可以選擇刪除設備內數據
4:Keychain。應用的小量極敏感數據,例如密碼,最好存儲與KeyChain內,而不是應用自己管理。
三:網絡安全
除了本地數據的保護,蘋果還對數據的傳輸提供了多種多樣的保護機制。蘋果提供了 可靠的、可信以及加密的連接。因為iOS平臺限制了同時監聽的端口的數量,并將那些不必要的網絡組建,例如telnet,shell以及web server等,所以不需要防火墻的保護。
SSL, TLS,蘋果提供了對SSL以及TLS的支持。CFNetwork則簡化了這些協議的使用。
VPN,iOS內置的VPN客戶端,支持多種VPN服務器及認證方式。
WIFI,提供了包括WPA2 Enterprise在內的多樣標準WIFI協議。
藍牙,iOS藍牙功能提供了多樣化的安全選擇
四:設備權限控制
針對企業用戶,iOS系統提供了多樣的安全策略,管理原可以根據需求對設備的安全特性進行多樣化的設置,包括密碼策略,數據保護策略,應用使用策略,遠程數據刪除等功能,給企業級用戶提供了高安全性以及極大的靈活性。
如何打造一個安全的App?這是每一個移動開發者必須面對的問題。在移動App開發領域,開發工程師對于安全方面的考慮普遍比較欠缺,而由于iOS平臺的封閉性,遭遇到的安全問題相比于Android來說要少得多,這就導致了許多iOS開發人員對于安全性方面沒有太多的深入,但對于一個合格的軟件開發者來說,安全知識是必備知識之一。
對于未越獄的iOS設備來說,由于強大的沙箱和授權機制,以及Apple自己掌控的App Store, 基本上杜絕了惡意軟件的入侵(非越獄)。但除系統安全之外,我們還是面臨很多的安全問題:網絡安全、數據安全等,每一項涉及也非常廣,安全是非常大的課題,本人并非專業的安全專家,只是從開發者的角度,分析我們常遇到的各項安全問題,并提出通常的解決方法,與各位同學交流學習。
每一個軟件工程師都有義務保護用戶數據的隱私和安全。
首先是網絡安全,OSI模型各層都會面臨相應的網絡安全問題,涉及寬廣,而網絡安全也是安全領域發展最為繁榮的領域。本文我們只是從移動應用開發角度,以盡量簡單的方式,講解HTTPS核心概念知識,以及在iOS平臺上的實現。建議現在還在使用HTTP的應用都升級到HTTPS。
1. HTTPS
其實HTTPS從最終的數據解析的角度,與HTTP沒有任何的區別,HTTPS就是將HTTP協議數據包放到SSL/TSL層加密后,在TCP/IP層組成IP數據報去傳輸,以此保證傳輸數據的安全;而對于接收端,在SSL/TSL將接收的數據包解密之后,將數據傳給HTTP協議層,就是普通的HTTP數據。HTTP和SSL/TSL都處于OSI模型的應用層。從HTTP切換到HTTPS是一個非常簡單的過程,在做具體的切換操作之前,我們需要了解幾個概念:
SSL/TSL
關于SSL/TSL,阮一峰的兩篇博客文章做了很好的介紹:
SSL/TLS協議運行機制的概述
圖解SSL/TLS協議
簡單的來說,SSL/TSL通過四次握手,主要交換三個信息:
數字證書:該證書包含了公鑰等信息,一般是由服務器發給客戶端,接收方通過驗證這個證書是不是由信賴的CA簽發,或者與本地的證書相對比,來判斷證書是否可信;假如需要雙向驗證,則服務器和客戶端都需要發送數字證書給對方驗證;
三個隨機數:這三個隨機數構成了后續通信過程中用來對數據進行對稱加密解密的“對話密鑰”。
首先客戶端先發第一個隨機數N1,然后服務器回了第二個隨機數N2(這個過程同時把之前提到的證書發給客戶端),這兩個隨機數都是明文的;而第三個隨機數N3(這個隨機數被稱為Premaster secret),客戶端用數字證書的公鑰進行非對稱加密,發給服務器;而服務器用只有自己知道的私鑰來解密,獲取第三個隨機數。這樣,服務端和客戶端都有了三個隨機數N1+N2+N3,然后兩端就使用這三個隨機數來生成“對話密鑰”,在此之后的通信都是使用這個“對話密鑰”來進行對稱加密解密。因為這個過程中,服務端的私鑰只用來解密第三個隨機數,從來沒有在網絡中傳輸過,這樣的話,只要私鑰沒有被泄露,那么數據就是安全的。
加密通信協議:就是雙方商量使用哪一種加密方式,假如兩者支持的加密方式不匹配,則無法進行通信;
有個常見的問題,關于隨機數為什么要三個?只最后一個隨機數N3不可以么?
這是由于SSL/TLS設計,就假設服務器不相信所有的客戶端都能夠提供完全隨機數,假如某個客戶端提供的隨機數不隨機的話,就大大增加了“對話密鑰”被破解的風險,所以由三組隨機數組成最后的隨機數,保證了隨機數的隨機性,以此來保證每次生成的“對話密鑰”安全性。
分享名稱:ios安全開發,ios安全代碼
當前鏈接:http://vcdvsql.cn/article46/dsdedhg.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、做網站、網站設計公司、軟件開發、網站策劃、面包屑導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯