移動(dòng)App開(kāi)發(fā),如何確保Android & iOS應(yīng)用程序的安全性?

0 評(píng)論 6496 瀏覽 17 收藏 12 分鐘

編輯導(dǎo)語(yǔ):說(shuō)到app安全漏洞,大家并不陌生,網(wǎng)上關(guān)于app安全漏洞、用戶信息泄露的新聞層出不窮。安全就像空氣,雖然看不見(jiàn)摸不著,一旦出現(xiàn)安全問(wèn)題沒(méi)有及時(shí)修復(fù),對(duì)于企業(yè)來(lái)說(shuō)將是致命傷害。本文作者分析了移動(dòng)應(yīng)用程序安全性的主要風(fēng)險(xiǎn),并指出了如何確保Android應(yīng)用程序的安全性,以及如何使iOS應(yīng)用程序安全數(shù)據(jù)存儲(chǔ)。

過(guò)去10年,我們見(jiàn)證了移動(dòng)應(yīng)用程序開(kāi)發(fā)的飛速發(fā)展,但是網(wǎng)絡(luò)犯罪也一直如影隨形。事實(shí)上,移動(dòng)應(yīng)用商店絕大多數(shù)app都有可能存在潛在的安全風(fēng)險(xiǎn)。

有數(shù)據(jù)顯示,89%的熱門(mén)應(yīng)用存在仿冒,18個(gè)行業(yè)的Top10應(yīng)用中98%的應(yīng)用都存在漏洞。這些漏洞一旦被利用,將會(huì)給開(kāi)發(fā)者和用戶帶來(lái)很大的影響。

在本文中,我們將進(jìn)一步探討開(kāi)發(fā)完成后應(yīng)該實(shí)施哪些基本的移動(dòng)應(yīng)用程序安全性實(shí)踐。

一、移動(dòng)應(yīng)用程序安全性的主要風(fēng)險(xiǎn)

1. 弱服務(wù)器端控件

在移動(dòng)設(shè)備之外,應(yīng)用程序和用戶之間的通信是通過(guò)服務(wù)器進(jìn)行的,這些服務(wù)器是全世界黑客的主要攻擊目標(biāo),服務(wù)器漏洞背后的主要原因是因?yàn)橛袝r(shí)開(kāi)發(fā)人員忽略了必要的服務(wù)器端安全性考慮。

由于缺乏對(duì)移動(dòng)應(yīng)用程序的安全考慮、用于安全防護(hù)預(yù)算不足、系統(tǒng)差異等都有可能造成安全漏洞。通過(guò)自動(dòng)化漏洞掃描工具掃描應(yīng)用程序,盡可能多的識(shí)別漏洞及時(shí)修補(bǔ)。

通過(guò)這個(gè)方法,,可以發(fā)現(xiàn)解決掉很多常見(jiàn)的問(wèn)題和bug。

2. 缺乏二進(jìn)制保護(hù)

這也是OWASP應(yīng)用程序需要解決的主要安全問(wèn)題之一,因?yàn)槿绻粋€(gè)移動(dòng)應(yīng)用程序缺乏二進(jìn)制保護(hù),任何黑客或?qū)κ侄伎梢暂p松地利用反編譯工具向應(yīng)用中插入廣告代碼與相關(guān)配置,他們也可以在第三方應(yīng)用市場(chǎng)、論壇重新發(fā)布盜版應(yīng)用程序。

這種行為不僅會(huì)造成數(shù)據(jù)泄露,危害產(chǎn)品和用戶利益,同時(shí)也會(huì)影響到企業(yè)的品牌口碑。為避免這種情況,部署二進(jìn)制強(qiáng)化過(guò)程很重要。

在二進(jìn)制強(qiáng)化下,二進(jìn)制文件將被分析并相應(yīng)地修改,以保護(hù)它們免受常見(jiàn)的移動(dòng)應(yīng)用程序安全威脅,這允許在不需要源代碼的情況下修復(fù)遺留代碼本身中的漏洞。

該應(yīng)用程序還應(yīng)遵循越獄檢測(cè)控件,校驗(yàn)和控件,證書(shū)鎖定控件和調(diào)試器檢測(cè)控件的安全編碼技術(shù)。

3. 數(shù)據(jù)存儲(chǔ)安全

另一個(gè)常見(jiàn)的移動(dòng)應(yīng)用安全漏洞是缺乏安全的數(shù)據(jù)存儲(chǔ)系統(tǒng),開(kāi)發(fā)人員通常依靠客戶端存儲(chǔ)來(lái)獲取內(nèi)部數(shù)據(jù),然而在競(jìng)爭(zhēng)對(duì)手獲取移動(dòng)設(shè)備的情況下,這些內(nèi)部數(shù)據(jù)可以非常容易地訪問(wèn)、使用或操縱。

這可能導(dǎo)致身份盜用,聲譽(yù)受損和外部政策違規(guī)(PCI),跨平臺(tái)保護(hù)數(shù)據(jù)存儲(chǔ)的最佳方法是通過(guò)操作系統(tǒng)提供的基本級(jí)別加密構(gòu)建額外的加密層。

這極大地提高了數(shù)據(jù)安全性。并減少了對(duì)默認(rèn)加密的依賴。

4. 傳輸層保護(hù)不足

傳輸層是在客戶端和服務(wù)器之間進(jìn)行數(shù)據(jù)傳輸?shù)耐緩剑绻藭r(shí)沒(méi)有引入適當(dāng)?shù)囊苿?dòng)應(yīng)用安全標(biāo)準(zhǔn),任何黑客都可以訪問(wèn)內(nèi)部數(shù)據(jù),竊取或修改它,這會(huì)導(dǎo)致身份盜竊和詐騙等威脅。

為了加強(qiáng)傳輸層安全性,可以在iOS和Android應(yīng)用程序中加入SSL固定。除此之外,還可以使用行業(yè)標(biāo)準(zhǔn)的密碼套件代替常規(guī)的密碼套件。

由于混合SSL會(huì)話,為避免暴露用戶的會(huì)話ID,當(dāng)應(yīng)用程序通過(guò)瀏覽器/webkit運(yùn)行例程時(shí),需要使用SSL版本的第三方分析公司,社交網(wǎng)絡(luò)等。

5. 數(shù)據(jù)泄漏

當(dāng)關(guān)鍵的移動(dòng)應(yīng)用程序存儲(chǔ)在移動(dòng)設(shè)備上易受攻擊的位置時(shí),就會(huì)發(fā)生意外數(shù)據(jù)泄漏。

例如:一個(gè)應(yīng)用程序被存儲(chǔ)在可以被其他應(yīng)用程序或設(shè)備訪問(wèn)的地方,這最終會(huì)導(dǎo)致應(yīng)用程序的數(shù)據(jù)泄露和未經(jīng)授權(quán)的數(shù)據(jù)使用。

監(jiān)控常見(jiàn)的數(shù)據(jù)泄露點(diǎn),如日志、應(yīng)用后臺(tái)、緩存、本地存儲(chǔ)等。在了解了困擾移動(dòng)應(yīng)用程序的主要風(fēng)險(xiǎn)和避免風(fēng)險(xiǎn)需要遵循的一些最佳移動(dòng)應(yīng)用程序安全事件之后,讓我們繼續(xù)討論Android和iOS移動(dòng)應(yīng)用程序安全的細(xì)節(jié)。

二、如何確保Android應(yīng)用程序的安全性

1. 對(duì)外部存儲(chǔ)的數(shù)據(jù)進(jìn)行加密

一般來(lái)說(shuō),設(shè)備的內(nèi)部存儲(chǔ)容量是有限的。

這一缺陷通常會(huì)迫使用戶使用外部設(shè)備,如硬盤(pán)和閃存驅(qū)動(dòng)器,以確保數(shù)據(jù)安全,這些數(shù)據(jù)有時(shí)也包含敏感和機(jī)密數(shù)據(jù)。

由于存儲(chǔ)在外部存儲(chǔ)設(shè)備上的數(shù)據(jù)很容易被設(shè)備上的所有應(yīng)用程序訪問(wèn),因此以加密格式保存數(shù)據(jù)非常重要,移動(dòng)應(yīng)用程序開(kāi)發(fā)人員最廣泛使用的加密算法之一是AES(高級(jí)加密標(biāo)準(zhǔn))。

2. 對(duì)敏感數(shù)據(jù)使用內(nèi)部存儲(chǔ)

所有Android應(yīng)用程序都有一個(gè)內(nèi)部存儲(chǔ)目錄,存儲(chǔ)在這個(gè)目錄中的文件非常安全,因?yàn)樗鼈兪褂肕ODE_PRIVATE模式創(chuàng)建文件。

簡(jiǎn)單地說(shuō),這種模式確保了一個(gè)特定應(yīng)用程序的文件不會(huì)被保存在設(shè)備上的其他應(yīng)用程序訪問(wèn)。

因此,它是移動(dòng)應(yīng)用程序身份驗(yàn)證最佳實(shí)踐之一。

3. 使用HTTPS

應(yīng)用程序和服務(wù)器之間的通信應(yīng)該通過(guò)HTTPS連接進(jìn)行,大量Android用戶經(jīng)常連接多個(gè)公共區(qū)域的開(kāi)放WiFi網(wǎng)絡(luò),使用HTTP而不是HTTPS會(huì)使設(shè)備容易受到許多惡意熱點(diǎn)的攻擊,這些熱點(diǎn)很容易改變HTTP流量的內(nèi)容,使設(shè)備的應(yīng)用程序出現(xiàn)異常。

其他主要的移動(dòng)應(yīng)用程序開(kāi)發(fā)安全最佳實(shí)踐包括:驗(yàn)證用戶輸入,在發(fā)布應(yīng)用程序之前避免個(gè)人數(shù)據(jù)和ProGuard的使用。

三、如何使iOS應(yīng)用程序安全數(shù)據(jù)存儲(chǔ)

為了極大地簡(jiǎn)化應(yīng)用程序的架構(gòu)并提高其安全性,最好的方法是將應(yīng)用程序數(shù)據(jù)存儲(chǔ)在內(nèi)存中,而不是將其寫(xiě)入磁盤(pán)或發(fā)送到遠(yuǎn)程服務(wù)器。

盡管在本地存儲(chǔ)數(shù)據(jù)是唯一的方式,但也有多種方法可供選擇:

  • 鑰匙串:無(wú)需頻繁訪問(wèn)即可存儲(chǔ)少量敏感數(shù)據(jù)的最佳位置是鑰匙串。存儲(chǔ)在密鑰鏈中的數(shù)據(jù)由操作系統(tǒng)管理,任何其他應(yīng)用程序都無(wú)法訪問(wèn)。
  • 緩存:如果你的數(shù)據(jù)不需要在iCloud或iTunes上備份,那么你可以將數(shù)據(jù)存儲(chǔ)在應(yīng)用程序沙箱的緩存目錄中。
  • 默認(rèn)系統(tǒng):默認(rèn)系統(tǒng)是一種方便的存儲(chǔ)大量數(shù)據(jù)的方法。

1. 網(wǎng)絡(luò)安全

蘋(píng)果公司以其安全和隱私政策而聞名,多年來(lái),它一直致力于達(dá)到這一水平。

幾年前,蘋(píng)果公司推出了App Transport Security,該軟件強(qiáng)制第三方移動(dòng)應(yīng)用程序通過(guò)更安全的連接(例如HTTPS)發(fā)送網(wǎng)絡(luò)請(qǐng)求。

2. 敏感信息的安全

大多數(shù)移動(dòng)應(yīng)用程序使用敏感的用戶數(shù)據(jù),如通訊錄、位置等。但作為開(kāi)發(fā)人員,需要確保要求訪問(wèn)用戶的信息都是必須訪問(wèn)的,更重要的是如何儲(chǔ)存這些信息。

如果需要的信息可以通過(guò)本機(jī)框架進(jìn)行訪問(wèn),那么復(fù)制和存儲(chǔ)該信息是多余的。

3. 移動(dòng)應(yīng)用程序安全實(shí)踐中面臨的挑戰(zhàn)

有記錄表明,如果沒(méi)有采取足夠的措施來(lái)保護(hù)移動(dòng)應(yīng)用免受外部惡意軟件攻擊,移動(dòng)應(yīng)用程序?qū)⒆兊貌豢耙粨?。如果未按照要求完成移?dòng)應(yīng)用程序安全性測(cè)試,則隨時(shí)可能出現(xiàn)以下挑戰(zhàn)。

4. 設(shè)備碎片化

在應(yīng)用商店發(fā)布應(yīng)用程序之前,必須遵循一些基本流程。

有必要在移動(dòng)應(yīng)用程序測(cè)試策略中引入涵蓋不同分辨率、功能、特性和限制的各種設(shè)備,檢測(cè)設(shè)備的特定漏洞可以讓?xiě)?yīng)用程序開(kāi)發(fā)人員在應(yīng)用程序安全措施方面領(lǐng)先一步。

不僅是設(shè)備,還有流行操作系統(tǒng)的不同版本都是重要的一步,要在應(yīng)用程序發(fā)布之前覆蓋所有可能的漏洞。

5. 弱加密

在弱加密的情況下,移動(dòng)設(shè)備很容易接受來(lái)自任何可用設(shè)備的數(shù)據(jù)。

惡意軟件攻擊者一直在尋找公共移動(dòng)設(shè)備中的開(kāi)放端,如果您不嚴(yán)格遵循加密過(guò)程,則您的應(yīng)用可以成為開(kāi)放端。因此,將精力投入到強(qiáng)大的加密上也是制作防黑客移動(dòng)應(yīng)用程序的最佳方法之一。

6. 較弱的托管控件

這個(gè)主要發(fā)生在企業(yè)的第一個(gè)移動(dòng)應(yīng)用程序開(kāi)發(fā)期間,通常會(huì)將數(shù)據(jù)暴露給服務(wù)器端系統(tǒng)。

因此,用于托管應(yīng)用程序的服務(wù)器必須有足夠的應(yīng)用程序安全措施,以避免任何未經(jīng)授權(quán)的用戶訪問(wèn)重要數(shù)據(jù)。

通過(guò)對(duì)移動(dòng)應(yīng)用程序的安全審核,可以采用多種方法抵御來(lái)自未知來(lái)源的攻擊。在開(kāi)放的數(shù)字世界,沒(méi)有用戶能夠免受惡意軟件和安全漏洞的威脅,但是這些措施可以最大程度的保障個(gè)人數(shù)據(jù)在移動(dòng)設(shè)備上的安全性。

APICloud是國(guó)內(nèi)低代碼開(kāi)發(fā)平臺(tái)的引領(lǐng)者與效率革命的探索者,基于對(duì)云原生、DevOps、混合開(kāi)發(fā)等能力的集成,APICloud從移動(dòng)開(kāi)發(fā)演進(jìn)為低代碼開(kāi)發(fā)平臺(tái),APICloud致力于為各行業(yè)提供app定制與企業(yè)數(shù)字化服務(wù)。

你是如何看待移動(dòng)app開(kāi)發(fā)代碼和數(shù)據(jù)安全性的?app開(kāi)發(fā)安全做到多少為必要?歡迎大家一起來(lái)評(píng)論區(qū)交流討論~

 

本文由 @Wulicuicui na~ 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自 Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!