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