移動App開發(fā),如何確保Android & iOS應(yīng)用程序的安全性?
編輯導(dǎo)語:說到app安全漏洞,大家并不陌生,網(wǎng)上關(guān)于app安全漏洞、用戶信息泄露的新聞層出不窮。安全就像空氣,雖然看不見摸不著,一旦出現(xiàn)安全問題沒有及時修復(fù),對于企業(yè)來說將是致命傷害。本文作者分析了移動應(yīng)用程序安全性的主要風(fēng)險,并指出了如何確保Android應(yīng)用程序的安全性,以及如何使iOS應(yīng)用程序安全數(shù)據(jù)存儲。
過去10年,我們見證了移動應(yīng)用程序開發(fā)的飛速發(fā)展,但是網(wǎng)絡(luò)犯罪也一直如影隨形。事實上,移動應(yīng)用商店絕大多數(shù)app都有可能存在潛在的安全風(fēng)險。
有數(shù)據(jù)顯示,89%的熱門應(yīng)用存在仿冒,18個行業(yè)的Top10應(yīng)用中98%的應(yīng)用都存在漏洞。這些漏洞一旦被利用,將會給開發(fā)者和用戶帶來很大的影響。
在本文中,我們將進一步探討開發(fā)完成后應(yīng)該實施哪些基本的移動應(yīng)用程序安全性實踐。
一、移動應(yīng)用程序安全性的主要風(fēng)險
1. 弱服務(wù)器端控件
在移動設(shè)備之外,應(yīng)用程序和用戶之間的通信是通過服務(wù)器進行的,這些服務(wù)器是全世界黑客的主要攻擊目標,服務(wù)器漏洞背后的主要原因是因為有時開發(fā)人員忽略了必要的服務(wù)器端安全性考慮。
由于缺乏對移動應(yīng)用程序的安全考慮、用于安全防護預(yù)算不足、系統(tǒng)差異等都有可能造成安全漏洞。通過自動化漏洞掃描工具掃描應(yīng)用程序,盡可能多的識別漏洞及時修補。
通過這個方法,,可以發(fā)現(xiàn)解決掉很多常見的問題和bug。
2. 缺乏二進制保護
這也是OWASP應(yīng)用程序需要解決的主要安全問題之一,因為如果一個移動應(yīng)用程序缺乏二進制保護,任何黑客或?qū)κ侄伎梢暂p松地利用反編譯工具向應(yīng)用中插入廣告代碼與相關(guān)配置,他們也可以在第三方應(yīng)用市場、論壇重新發(fā)布盜版應(yīng)用程序。
這種行為不僅會造成數(shù)據(jù)泄露,危害產(chǎn)品和用戶利益,同時也會影響到企業(yè)的品牌口碑。為避免這種情況,部署二進制強化過程很重要。
在二進制強化下,二進制文件將被分析并相應(yīng)地修改,以保護它們免受常見的移動應(yīng)用程序安全威脅,這允許在不需要源代碼的情況下修復(fù)遺留代碼本身中的漏洞。
該應(yīng)用程序還應(yīng)遵循越獄檢測控件,校驗和控件,證書鎖定控件和調(diào)試器檢測控件的安全編碼技術(shù)。
3. 數(shù)據(jù)存儲安全
另一個常見的移動應(yīng)用安全漏洞是缺乏安全的數(shù)據(jù)存儲系統(tǒng),開發(fā)人員通常依靠客戶端存儲來獲取內(nèi)部數(shù)據(jù),然而在競爭對手獲取移動設(shè)備的情況下,這些內(nèi)部數(shù)據(jù)可以非常容易地訪問、使用或操縱。
這可能導(dǎo)致身份盜用,聲譽受損和外部政策違規(guī)(PCI),跨平臺保護數(shù)據(jù)存儲的最佳方法是通過操作系統(tǒng)提供的基本級別加密構(gòu)建額外的加密層。
這極大地提高了數(shù)據(jù)安全性。并減少了對默認加密的依賴。
4. 傳輸層保護不足
傳輸層是在客戶端和服務(wù)器之間進行數(shù)據(jù)傳輸?shù)耐緩?,如果此時沒有引入適當?shù)囊苿討?yīng)用安全標準,任何黑客都可以訪問內(nèi)部數(shù)據(jù),竊取或修改它,這會導(dǎo)致身份盜竊和詐騙等威脅。
為了加強傳輸層安全性,可以在iOS和Android應(yīng)用程序中加入SSL固定。除此之外,還可以使用行業(yè)標準的密碼套件代替常規(guī)的密碼套件。
由于混合SSL會話,為避免暴露用戶的會話ID,當應(yīng)用程序通過瀏覽器/webkit運行例程時,需要使用SSL版本的第三方分析公司,社交網(wǎng)絡(luò)等。
5. 數(shù)據(jù)泄漏
當關(guān)鍵的移動應(yīng)用程序存儲在移動設(shè)備上易受攻擊的位置時,就會發(fā)生意外數(shù)據(jù)泄漏。
例如:一個應(yīng)用程序被存儲在可以被其他應(yīng)用程序或設(shè)備訪問的地方,這最終會導(dǎo)致應(yīng)用程序的數(shù)據(jù)泄露和未經(jīng)授權(quán)的數(shù)據(jù)使用。
監(jiān)控常見的數(shù)據(jù)泄露點,如日志、應(yīng)用后臺、緩存、本地存儲等。在了解了困擾移動應(yīng)用程序的主要風(fēng)險和避免風(fēng)險需要遵循的一些最佳移動應(yīng)用程序安全事件之后,讓我們繼續(xù)討論Android和iOS移動應(yīng)用程序安全的細節(jié)。
二、如何確保Android應(yīng)用程序的安全性
1. 對外部存儲的數(shù)據(jù)進行加密
一般來說,設(shè)備的內(nèi)部存儲容量是有限的。
這一缺陷通常會迫使用戶使用外部設(shè)備,如硬盤和閃存驅(qū)動器,以確保數(shù)據(jù)安全,這些數(shù)據(jù)有時也包含敏感和機密數(shù)據(jù)。
由于存儲在外部存儲設(shè)備上的數(shù)據(jù)很容易被設(shè)備上的所有應(yīng)用程序訪問,因此以加密格式保存數(shù)據(jù)非常重要,移動應(yīng)用程序開發(fā)人員最廣泛使用的加密算法之一是AES(高級加密標準)。
2. 對敏感數(shù)據(jù)使用內(nèi)部存儲
所有Android應(yīng)用程序都有一個內(nèi)部存儲目錄,存儲在這個目錄中的文件非常安全,因為它們使用MODE_PRIVATE模式創(chuàng)建文件。
簡單地說,這種模式確保了一個特定應(yīng)用程序的文件不會被保存在設(shè)備上的其他應(yīng)用程序訪問。
因此,它是移動應(yīng)用程序身份驗證最佳實踐之一。
3. 使用HTTPS
應(yīng)用程序和服務(wù)器之間的通信應(yīng)該通過HTTPS連接進行,大量Android用戶經(jīng)常連接多個公共區(qū)域的開放WiFi網(wǎng)絡(luò),使用HTTP而不是HTTPS會使設(shè)備容易受到許多惡意熱點的攻擊,這些熱點很容易改變HTTP流量的內(nèi)容,使設(shè)備的應(yīng)用程序出現(xiàn)異常。
其他主要的移動應(yīng)用程序開發(fā)安全最佳實踐包括:驗證用戶輸入,在發(fā)布應(yīng)用程序之前避免個人數(shù)據(jù)和ProGuard的使用。
三、如何使iOS應(yīng)用程序安全數(shù)據(jù)存儲
為了極大地簡化應(yīng)用程序的架構(gòu)并提高其安全性,最好的方法是將應(yīng)用程序數(shù)據(jù)存儲在內(nèi)存中,而不是將其寫入磁盤或發(fā)送到遠程服務(wù)器。
盡管在本地存儲數(shù)據(jù)是唯一的方式,但也有多種方法可供選擇:
- 鑰匙串:無需頻繁訪問即可存儲少量敏感數(shù)據(jù)的最佳位置是鑰匙串。存儲在密鑰鏈中的數(shù)據(jù)由操作系統(tǒng)管理,任何其他應(yīng)用程序都無法訪問。
- 緩存:如果你的數(shù)據(jù)不需要在iCloud或iTunes上備份,那么你可以將數(shù)據(jù)存儲在應(yīng)用程序沙箱的緩存目錄中。
- 默認系統(tǒng):默認系統(tǒng)是一種方便的存儲大量數(shù)據(jù)的方法。
1. 網(wǎng)絡(luò)安全
蘋果公司以其安全和隱私政策而聞名,多年來,它一直致力于達到這一水平。
幾年前,蘋果公司推出了App Transport Security,該軟件強制第三方移動應(yīng)用程序通過更安全的連接(例如HTTPS)發(fā)送網(wǎng)絡(luò)請求。
2. 敏感信息的安全
大多數(shù)移動應(yīng)用程序使用敏感的用戶數(shù)據(jù),如通訊錄、位置等。但作為開發(fā)人員,需要確保要求訪問用戶的信息都是必須訪問的,更重要的是如何儲存這些信息。
如果需要的信息可以通過本機框架進行訪問,那么復(fù)制和存儲該信息是多余的。
3. 移動應(yīng)用程序安全實踐中面臨的挑戰(zhàn)
有記錄表明,如果沒有采取足夠的措施來保護移動應(yīng)用免受外部惡意軟件攻擊,移動應(yīng)用程序?qū)⒆兊貌豢耙粨?。如果未按照要求完成移動?yīng)用程序安全性測試,則隨時可能出現(xiàn)以下挑戰(zhàn)。
4. 設(shè)備碎片化
在應(yīng)用商店發(fā)布應(yīng)用程序之前,必須遵循一些基本流程。
有必要在移動應(yīng)用程序測試策略中引入涵蓋不同分辨率、功能、特性和限制的各種設(shè)備,檢測設(shè)備的特定漏洞可以讓應(yīng)用程序開發(fā)人員在應(yīng)用程序安全措施方面領(lǐng)先一步。
不僅是設(shè)備,還有流行操作系統(tǒng)的不同版本都是重要的一步,要在應(yīng)用程序發(fā)布之前覆蓋所有可能的漏洞。
5. 弱加密
在弱加密的情況下,移動設(shè)備很容易接受來自任何可用設(shè)備的數(shù)據(jù)。
惡意軟件攻擊者一直在尋找公共移動設(shè)備中的開放端,如果您不嚴格遵循加密過程,則您的應(yīng)用可以成為開放端。因此,將精力投入到強大的加密上也是制作防黑客移動應(yīng)用程序的最佳方法之一。
6. 較弱的托管控件
這個主要發(fā)生在企業(yè)的第一個移動應(yīng)用程序開發(fā)期間,通常會將數(shù)據(jù)暴露給服務(wù)器端系統(tǒng)。
因此,用于托管應(yīng)用程序的服務(wù)器必須有足夠的應(yīng)用程序安全措施,以避免任何未經(jīng)授權(quán)的用戶訪問重要數(shù)據(jù)。
通過對移動應(yīng)用程序的安全審核,可以采用多種方法抵御來自未知來源的攻擊。在開放的數(shù)字世界,沒有用戶能夠免受惡意軟件和安全漏洞的威脅,但是這些措施可以最大程度的保障個人數(shù)據(jù)在移動設(shè)備上的安全性。
APICloud是國內(nèi)低代碼開發(fā)平臺的引領(lǐng)者與效率革命的探索者,基于對云原生、DevOps、混合開發(fā)等能力的集成,APICloud從移動開發(fā)演進為低代碼開發(fā)平臺,APICloud致力于為各行業(yè)提供app定制與企業(yè)數(shù)字化服務(wù)。
你是如何看待移動app開發(fā)代碼和數(shù)據(jù)安全性的?app開發(fā)安全做到多少為必要?歡迎大家一起來評論區(qū)交流討論~
本文由 @Wulicuicui na~ 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于CC0協(xié)議
- 目前還沒評論,等你發(fā)揮!