蘋果CEO庫克在公司的全球開發者大會上指出,注冊的移動應用開發者已經超過了九百萬,較去年增長了47%。有更多的個人把他們的技能和創新帶到了這個行業,雖然這是值得激動的,但是開發者和新應用的猛增也帶來了日益增長的惡意工具的威脅。
對於開發者而言,有必要熟悉最新的安全實踐。這有助於你維護自己的聲譽,讓你把精力放在開發有創新的app上,而不是因疏忽所導致的、用戶數據被連累的潛在事故上。
很多開發者錯誤地認為移動領域對於威脅是有免疫力的。這種錯誤的安全意識導致一些開發者減少了預防措施的投入,導致嚴重的信息破壞,比如今年早些時候的Fandango app 。真實情況是,app安全和web安全一樣重要。移動app是一家企業安全領域的切入點,確保這扇大門得到有效防護的責任,落到了開發者肩頭。
甚至用心良苦的開發者也不擅長必要的用戶保護措施。我經常聽到使用非常抽象的術語討論安全。開發者認為,“我已經確保我的app是安全的了”,但是很多人不知道那意味著什麼、或可用的資源有哪些。
我喜歡分享保護app的五個步驟,這是我推薦給開發者的:
重新思考安全,並融入到開發中 。我看到的、經常犯的一些錯誤,集中在把安全隔離在流程中的單獨一步。安全還應該是整體的、系統化的。當開發者試圖在開發結束時混亂拼湊安全計劃時,缺口常常就打開了。我還經常看到,很多開發者在他們代碼的安全部分做得非常不錯,但是他們忽略了後退一步,以審視整個代碼庫。
了解基礎知識 。早期重要的一個步驟是學習基礎的安全威脅。開放網頁應用安全計劃(OWASP)的 前10項移動風險 是價值連城的資源。它詳細列出了10種對於移動應用最危險的安全威脅。每年都會更新,我們應該定期參考一下。這對於新手尤其重要。它或許是基礎的,但是遵循OWASP的建議,你可以把應該采取的措施與其並行使用。
使用行之有效的方案 。不要重復發明輪子。所有主流的操作系統都有NIST認證的加密框架,它們已經經過專家嚴格檢驗了。試圖自己開發框架的開發者,經常面臨易於攻破的結局。
保護好已存儲數據(data at rest) 。已存儲數據的處理是個脆弱的地方,尤其在你收集一些敏感數據時。讓你的存儲數據免受攻擊,有很多選擇,比如盡可能早地刪除數據、在生產環境關閉不需要的數據、以及實施一種不對稱加密的方案。後者確保了已存儲數據是安全的,因為能夠解密這些數據的私鑰從來不會真正出現在設備上。
執行證書鎖定(certificate pinning) 。 蘋果在iOS和OS X上的問題 和“goto fail”的bug是所有開發者應該吸取的教訓。這個bug繞過了SSL認證、而沒有驗證證書是可信任的。使用SSL固然重要,如果你不能確信你的證書,那還是不夠的。你需要確保你真正驗證了返回到資源的證書, 以避免請求過程中的任何攻擊 。
隨著智能手機和平板變成我們首選的屏幕,移動應用上的攻擊也在增長。如果你的下一個app沒有正確地規劃,即使它獲得了劃時代的成功,也是無關緊要的。對安全地開發保持警惕,保護的不只是使用你app的人,還有你自己的聲譽和職業前景。
(原文:5 Steps to Protect Mobile Apps from Attacks,譯者:臘八粥)