保護企業數據的七大方法
一次又一次,安全被認為是組織進行移動應用程序開發項目的關鍵問題。TechTarget有限公司2012年進行了一次調查發現,設備數據泄露和應用程序安全問題排在企業移動安全問題的前五名之內。
將關注點設為失去敏捷性的企業數據和軟件安全性漏洞,這樣肯定是合理的選擇。但是,當涉及到安全問題時僅考慮到移動應用程序而沒有考慮到Web應用程序是不合理的。Jeff Payne是一家坐落于弗吉尼亞州佛爾法克斯郡的Coveros應用程序開發咨詢公司的首席執行官,他認為當移動應用程序出現一些新的安全問題、數據缺失和軟件安全性漏洞時,能夠影響到整個應用程序。
他認為,任何常見的安全問題都會出現在移動項目中。“威脅模型和安全需求是非常重要的,可以確保數據存儲正確,并順利進行安全測試。軟件就是軟件,只是軟件”
Theresa Lanowitz是坐落于內華達州明登的一家調查公司的創始人,她同意Payne所提出的觀點。“移動技術迫使我們進入安全的另一個水平。這是件好事,因為這樣會提高所有應用程序的安全性。”
幸運地是,應用程序安全專家們為了開發移動應用程序安全性而準備了最近的實踐方案。在此,他們將所關注的安全問題設為移動項目的專屬研究,卻又適用于所有應用程序。
1、了解移動應用程序的威脅模型。Payne說,移動應程序的最大威脅是如何真正地得到使用,而產生威脅,主要是因為其與桌面應用和網絡應用存在很大的區別。“我們出門在外都隨身攜帶智能手機,并且這種智能手機很容易丟失或者被盜。”這些設備存有電話號碼、郵件地址應用程序以及信用卡數據。“當開發移動應用程序時,最好的方法是‘不相信一切’”。
2、要知道移動應用程序就是企業應用程序。Kevin Beaver是坐落于喬治亞州阿科沃斯的Principle Logic信息安全咨詢公司的創始人,他認為,自從有了移動應用程序發生了許多不可思議的事情。他說:“這是一種時尚,吸引了市場中的消費者。CEO們在高爾夫球場上發現,他們的伙伴安裝了移動應用程序,于是他們也想安裝一個。”
Beaver,由于消費者一度對“移動”應用程序的優點癡狂,因此,安全性就被忽略了。但是,好消息是,這些移動項目中并沒有任何安全隱患。一般來說,一些簡單的應用程序只被設計為執行一種任務,如零售連鎖店的查找工具。所以,這些應用程序不太可能包含敏感信息或者連接到企業數據和應用程序中。Beaver說,壞消息是,“移動簡單又快捷”的特點使其可以延續到企業移動應用程序項目中,這種行為是危險的。
如今,所開發的移動應用程序時非常的復雜。組織如何指導業務是很重要的,他們要連接到內部客戶賬戶信息和其他敏感數據。對這些應用程序正確的認知是,將企業應用程序排在首位,移動應用程序其次。Beaver說:“如果你的應用程序負責交易業務,你需要對安全性進行深度的思考。”
3、使用白板。John Dickson是坐落于圣安東尼奧的Denim Group軟件安全咨詢公司的主管,為了避免“移動失去其簡單而又快捷的特點”,他建議,首先在開發過程中對所計劃開發的移動應用程序畫一個圖表。他說:“企業應用程序與應用程序本身并不同。他們屬于應用程序系統,在不同運行階段有不同的部分。”在白板上畫出所有連接部分,這樣就可以顯示出項目是多么的復雜。你可以發現移動應用程序需要交互的哪些數據庫、遺留系統和云應用程序存儲了數據和服務。
Dickson建議由項目團隊中的項目經理、資深的開發人員和軟件測試人員來進行實踐。Dickson說:“你以結構化的方式來觀察該系統,決定在系統的不同階段哪種軟件能夠或者不能出現。圖表法是進程的一種工作方法,團隊成員以此進行討論。在開發之前,與重新編寫應用程序相比,擦去白板上之前寫的內容是非常容易的。”
4、仔細研究應用程序如何存儲數據。在開發人員的眼中,當編寫移動應用程序的時候,最重要的安全問題就是要考慮應用程序時如何存儲數據。Payne說:“在移動設備上存儲數據非常不安全。”數據不能隨處存儲,如果手機丟失或者被盜,其他人也可以獲取到存儲在移動設備上的數據。Payne建議要對敏感的信用卡號碼信息、機密的業務數據和社會保障號碼進行加密處理。但是,要知道的是,移動用戶會使加密工作變得復雜。當然加密數據同時也必須可以解密。Payne指出,這需要用戶注冊并輸入PIN碼才能訪問密鑰數據。這對于運行在大型計算機上的應用程序來說不是問題。但是有了移動性,你總是不得不考慮移動設備的限制因素。Payne說:“你鎖定的安全性越多,可用的移動應用程序就會變得越來越少。在可用性和安全性之間總要進行權衡。”
Payne推薦給開發人員幾種較好的方法:將數據存儲在隨機存取存儲器(RAM)上,這樣即起到了保護重要,有保證了應用程序的可用性。“但是,例如當應用程序要出現不好的狀況時,它會關閉正在執行的任務,確保RAM被清理干凈。”他同意也警告過開發人員不要隨處存儲碰撞數據。碰撞數據是指當發生碰撞時應用程序自動產生的信息。該數據可能包含有助于未經授權的用戶獲得訪問機會的信息。
5、用靜態分析和滲透測試來查找安全缺陷。靜態分析是指使用源代碼分析軟件來查找易受攻擊者入侵的漏洞代碼,例如SQL注入,它是一種惡意攻擊軟件,可以使應用程序放棄本需要保護的敏感數據。這些漏洞很可能在一些與移動應用程序相連接的較老數據庫和遺留系統中發現。Payne說:“在那能發現許多漏洞。”滲透工具也是用來檢測安全漏洞的,但是,它們使用的是一種不同的方法。與分析實際代碼不同的是,滲透測試模仿工具應用程序的惡意軟件,目的是確定這些攻擊軟件是否會盜取數據。這些測試實驗對于所有應用程序來說都非常重要,而不單單是移動應用程序。
6、徘徊在應用程序周圍,同時試圖破壞應用程序。基于滲透測試和源代碼分析,Beaver建議軟件測試人員對其正在測試的應用程序進行修補,以此查看應用程序行為方式是否存在風險。最近,他正使用該方法對一個用戶的應用程序進行測試。為了管理個人信息而在應用程序中設計一個空間,在此用戶可以輸入他們的社會保障號碼。當Beaver輸入一個數字并且點擊該數字,令他吃驚的是,社會保障號碼就如同一個電話號碼一樣。“現在應用程序將社會保障號碼存儲在電話記錄中。這是一個很大的安全隱患,我們應該較早的找到這個隱患。”
7、確保知道有誰使用過你的應用程序。許多組織中都會有第三方測試公司使用其應用程序的現象。Lanowitz說當使用這種方法時,最重要的是要清楚地知道是誰使用過你的應用程序。她說:“這就是要站在本公司的角度分析問題。而這些應用程序也并不是市場工具。”開源測試公司經常與“聰明的技師們”一起進行測試實驗,該測試過程中就存在安全隱患。“你必須了解誰正在觀看企業數據。你也必須對此要格外留心。”