移動應用開發給企業帶來了全新的問題,特別是在軟件安全領域。通常應用商店的開發人員可能會擔心代碼被盜,然后被反向編譯。這對于花費大量時間和資源創建出應用的個人開發人員或者小型團隊而言無疑是滅頂之災。但是最終分析表明,通常應用本身只能帶來數千美元的利潤,即使有什么問題帶來的損失也不是很大。相比較而言,不安全的應用對于企業級公司而言,可能會造成的敏感信息丟失,資產的被盜或者客戶個人和財務數據信息的泄露,這些所導致的損失則會達到百萬甚至數十億美元。不幸的是,很多企業剛剛第一次嘗試構建移動應用——他們可能還沒有意識到這么小的應用程序上的錯誤可能會導致的嚴重后果。
更大不意味著更安全
企業過去通常嚴格控制它們的基礎架構。Dan Cornell,Denim Group的CTO,提及一種常見的和安全性錯誤認知相關的缺陷。”移動應用的安全的確非常重要,因為不僅僅要考慮到設備上的代碼。你在改變你的系統。在基于Web的系統上會出現這樣的情況,”這里是我的代碼,這里是我的系統,系統在服務器端,但是攻擊者在防火墻的另一邊。“
“而移動應用,”他補充道,“你需要將一些計算和數據放到不受信任的設備上。這些設備可能會被盜,也可能被root了,可能會在eBay上出售或者發生任何其他情況。這些都使得保證移動應用的安全性非常復雜。”
當想要安全保護移動應用時,很多細節需要考慮。在服務的交互端口最容易產生問題。根據Cornell所說,”這不僅僅有關于在設備上運行的代碼,還有關于支持設備代碼的在企業Web服務上運行的代碼,還有關于移動應用程序調用的第三方服務的代碼。我們觀察到的最嚴重的問題存在于這些不同組件的交互部分。“
數據保護需要持續投入
數據泄露對于移動應用而言是個很嚴重的問題——可能以很多方式發生。這是Gartner的一名分析師Van Baker的觀點。數據傳輸,存儲和使用都可能引入風險。”一方面,需要認證請求進入的用戶,因為他們還沒有進入你的網絡。他們通過公開的移動電話網絡進入,因此必須確保他們的確是你想要給予權限訪問公司系統的用戶。這是第一層次的挑戰,能夠通過活動的目錄實現或者LDAP實現來完成認證。“
“接下來,”Baker繼續道,“如果你要發送敏感信息給這些移動應用程序,需要確保加密了數據的傳輸。如果這些數據留存在移動設備里,需要確保留存數據被加密,這樣才能保證公司資產在這些設備上的安全。”
保持這些數據在企業的監控下也很困難。不能期望員工一直謹慎使用他們自己的設備,并且只下載公司授權的應用。這些設備里,個人和業務的混合使用給保證移動應用安全的開發人員帶來了全新的挑戰。”大家可能在這些包含敏感信息的移動設備上安裝工作相關的應用程序,并且他們想要安裝不被公司控制的個人應用,”Baker說。“可能可以使用類似容器技術的隔離技術,并且在移動應用里構建策略來阻止類似拷貝/粘貼或者轉發到域外的操作。”這些是移動應用程序員面臨的一些挑戰,而開發臺式機應用程序時完全無需考慮到這些。
開發人員是否需從之前的錯誤中吸取教訓?
Cornell一針見血——開發人員和商務人員必須意識到一些安全問題可能會發生。“我們已經意識到移動系統里,特別是從安全性角度來看,開發團隊在犯一些很久以來就一直存在的錯誤,”他說。“我們一開始在Web應用程序里看到這些錯誤。例如需要登錄的管理功能通常沒有被很好地保護(比如管理員目錄,大家都嫌煩,而設置成無需密碼登錄)。”
隨著時間的流逝,開發人員也意識到了這些問題。但是隨著AJAX應用的興起,安全性問題又日益嚴重,因為服務無需做認證或者授權檢查 -- 自然企業又不得不自嘗惡果。歷史總是在不斷重演。“移動應用出現后,支撐應用的服務之前都沒有接受到過任何惡意流量,”Cornell說。“他們只從授權的移動客戶端接收請求。當開始攻擊這些服務的時候,它們自然迅速淪陷了。或者,如果嘗試將這些服務的標識符增加時,你就會發現這些服務根本就沒有考慮到授權或者認證。這是開發團隊之前就犯過的錯誤,現在在新的上下文環境里又重新犯錯了。”
但是Cornell承認企業級開發團隊學習速度很快。“他們正在學習如何進行移動開發,同時如何保證移動開發的安全性。”但愿他們能夠通過對過去發生的錯誤的學習來避免問題,而不是需要在以后重新將這些問題再次經歷一遍。當面對移動應用安全性問題時,企業已經意識到他們無法承受這方面的錯誤。