系統(tǒng)開發(fā)公司在安全移動應(yīng)用程序開發(fā)的較佳實(shí)踐
系統(tǒng)開發(fā)公司在招聘之前到移動開發(fā)團(tuán)隊(duì)開發(fā)過程開始,重要的是不要忽略你的未來應(yīng)用程序的安全。缺乏設(shè)計(jì)和實(shí)現(xiàn)移動應(yīng)用安全系統(tǒng)會導(dǎo)致機(jī)密信息曝光,盜竊和勒索這幾個(gè)不幸的后果,如果您正在開發(fā)的應(yīng)用程序依賴于機(jī)密數(shù)據(jù)(即財(cái)務(wù)信息),我們建議您考慮以下建議和執(zhí)行滲透測試,以確保較大的安全。
1、風(fēng)險(xiǎn)評估
深思熟慮的風(fēng)險(xiǎn)評估是第一步,將幫助您決定是否接受剩余風(fēng)險(xiǎn)或積極作用較小化。你應(yīng)該問你自己的三個(gè)主要問題是:什么是風(fēng)險(xiǎn)?將會損失什么?應(yīng)用程序的弱點(diǎn)是什么?
2、安全實(shí)現(xiàn)的連續(xù)性
當(dāng)涉及到移動應(yīng)用安全,沒有魔法法術(shù)開發(fā)人員可以使應(yīng)用程序unhackable,一旦開發(fā)階段結(jié)束。安全是一個(gè)過程。它應(yīng)該在計(jì)劃階段開始,經(jīng)過代碼評審和實(shí)施階段,以及發(fā)布前進(jìn)行滲透測試。
3、較小特權(quán)原則
設(shè)計(jì)應(yīng)用程序時(shí),只需要那些絕對必要的權(quán)限的應(yīng)用程序的核心目標(biāo)。不要讓你的用戶想知道“為什么這個(gè)指南針應(yīng)用程序需要訪問我的短信,呢?”。細(xì)心的用戶可能會避免應(yīng)用程序請求權(quán)限超過應(yīng)用程序的功能。
4、輸入驗(yàn)證
雖然電腦有很多殺毒軟件檢測和隔離惡意組件,通常沒有任何的移動設(shè)備。確保您的開發(fā)人員實(shí)現(xiàn)適當(dāng)?shù)妮斎霗z查,驗(yàn)證輸入的期望是什么,不多也不少,在應(yīng)用程序開始前對其進(jìn)行處理。
5、安全認(rèn)證
當(dāng)設(shè)計(jì)一個(gè)身份驗(yàn)證系統(tǒng),特別注意兩種移動設(shè)備特點(diǎn):情景會話和不方便輸入文本的方法??紤]到這一點(diǎn),所有潛在風(fēng)險(xiǎn)的適當(dāng)?shù)恼{(diào)查應(yīng)找到一個(gè)可用性和安全之間的平衡。類型一個(gè)挑戰(zhàn)性的必要性的符號可以降低用戶滿意度,較終他們對公司的忠誠度。
6、強(qiáng)密碼
除了減少黑客的機(jī)會訪問用戶的數(shù)據(jù),密碼加密的強(qiáng)度影響。正如你可能知道的,加密強(qiáng)度取決于關(guān)鍵的力量,雖然本身的關(guān)鍵是經(jīng)常,它應(yīng)該保護(hù)的幫助下算法,使用用戶的輸入數(shù)據(jù)。
7、密碼強(qiáng)度檢查
用戶傾向于選擇弱但方便和快速輸入密碼而不是容忍的動蕩進(jìn)入安全密碼每次解鎖裝置。因此,如果安全是項(xiàng)目的主要優(yōu)先事項(xiàng)之一,不要相信用戶和考慮實(shí)現(xiàn)密碼強(qiáng)度檢查器。
8、數(shù)據(jù)保護(hù)
選擇哪些數(shù)據(jù)你實(shí)際上需要存儲:存儲越少,就越需要保護(hù)。數(shù)據(jù)存儲是一個(gè)必須為您的項(xiàng)目,堅(jiān)持認(rèn)為應(yīng)該加密和加密密鑰應(yīng)該由用戶每次輸入,或者至少不會被存儲在設(shè)備上。
9、遠(yuǎn)程擦除
擦是一個(gè)有用的和有效的技術(shù),數(shù)據(jù)保護(hù),但卻不是萬靈藥。它可以很容易地手無寸鐵的,只要關(guān)閉設(shè)備或網(wǎng)絡(luò)連接。
10、數(shù)據(jù)加密
“加密”這個(gè)詞往往被用作同義詞安全解決方案,然而被盜的數(shù)量和破譯信用卡號碼每年持續(xù)增長。因此,一個(gè)關(guān)鍵的問題需要考慮的不是使用哪種加密技術(shù),而是如何正確地實(shí)現(xiàn)它。
11、加密密鑰的保護(hù)
為了保護(hù)加密密鑰,是不夠的,僅僅依靠標(biāo)準(zhǔn)平臺的措施,比如iOS的鑰匙扣和Android的SharedPreferences文件。第一件事你應(yīng)該與開發(fā)人員討論的可能性外存儲的關(guān)鍵設(shè)備。
12、云服務(wù)的風(fēng)險(xiǎn)
如果你選擇云服務(wù)作為外部存儲,不要忘記他們應(yīng)該小心使用。盡管云服務(wù)有很多優(yōu)勢,云并不總是較好的解決方案的安全性。即使你與領(lǐng)先的服務(wù)提供商合作,像亞馬遜網(wǎng)絡(luò)服務(wù),Rackspace公司,婚慶產(chǎn)品(CenturyLink)或Equinix的,他們的服務(wù)并不總是遵守安全要求高。如果安全是你的首要任務(wù),我們強(qiáng)烈建議使用公司自己的服務(wù)器。
13、HTTPS
總是有風(fēng)險(xiǎn)的信息通過互聯(lián)網(wǎng)傳輸數(shù)據(jù)時(shí)攔截,e.i.通過一些嗅探器設(shè)備。使用SSL安全協(xié)議在一個(gè)普通的HTTP連接有助于減少風(fēng)險(xiǎn),因?yàn)樗馕吨鴶?shù)據(jù)加密。
14、安全的藍(lán)牙連接
藍(lán)牙只提供設(shè)備級的安全服務(wù),而不是用戶級,不能限制對敏感數(shù)據(jù)的訪問授權(quán)用戶。因此,開發(fā)商應(yīng)該提供適當(dāng)?shù)陌踩刂铺峁﹊dentity-level安全特性,如用戶身份驗(yàn)證和用戶授權(quán)。
15、日志:謹(jǐn)慎使用
發(fā)布你的應(yīng)用程序之前,你應(yīng)該確保沒有機(jī)密信息的日志。較好的解決方案是使單獨(dú)的日志進(jìn)行調(diào)試和發(fā)布版本。
16、測試
測試是一種常見的和強(qiáng)制性的過程,幾乎沒有任何應(yīng)用程序可以被認(rèn)為是完成沒有適當(dāng)?shù)臏y試。然而,如果您的應(yīng)用程序包含高度的風(fēng)險(xiǎn)(例如,它允許客戶自己的股票交易)你應(yīng)該滲透測試添加到您的列表。在這樣的測試中,也被稱為道德黑客,測試人員作為攻擊者并試圖妥協(xié)應(yīng)用程序。
在系統(tǒng)開發(fā)中這只是一個(gè)輕快的一些問題的概述。安全問題的范圍非常廣泛。還有更多的東西需要我們?nèi)W(xué)習(xí)。