這里先給出一開始問題的答案:其實提高企業(yè)安全性最有效的辦法就是更緊密地與軟件開發(fā)人員合作。在本文中我們不會列出IT安全部門為了新的一年做出的全面清單,而是與大家分享那些經(jīng)常被忽略的計劃清單。
了解你的開發(fā)人員
很多時候,企業(yè)IT安全人員和軟件開發(fā)人員甚至都不知道對方是誰,我們需要改變這種狀況。不管你的企業(yè)開發(fā)人員是內(nèi)部人員還是外包人員,都應該試著與他們交談,試著去了解他們。你可能會問,你們應該討論什么?從你們都知道的東西談起:應用程序日志。
畢竟,當安全事故發(fā)生時,你需要使用這些應用程序日志來找出發(fā)生了什么事情。嘗試與開發(fā)人員討論哪些東西應該進行日志記錄。跟他們解釋說,當涉及功能問題時,業(yè)務所有者是他們的客戶,但是在涉及安全日志記錄時,IT安全團隊是日志信息的最終使用者。讓他們知道常見應用程序攻擊,以及你進行調(diào)查工作所需要的業(yè)務相關信息,因為很多時候,開發(fā)人員并沒有充分考慮實際安全情況。
了解你的技術
你有沒有發(fā)現(xiàn)自己將應用程序平臺當作“黑盒”,而沒有真正了解它們的內(nèi)部運作情況?那么你需要改變這種狀態(tài)。不管你是將移動應用程序還是web應用程序,請深入研究這些技術平臺,再安裝,再配置,然后將應用程序加載(或者甚至寫入)到技術平臺上。檢查安全日志,盡可能地檢查安全設置。虛擬機可以很好地完成這些工作。
當然,你并不需要精通所有事情,不過你需要花時間了解這些技術平臺。這樣當晚上出現(xiàn)突發(fā)事故時,你能夠利用這些知識迅速對事故作出響應。
制定編碼指南
軟件開發(fā)人員往往很擅長開發(fā)符合他們功能規(guī)格的東西,但是當涉及安全問題時,他們似乎經(jīng)常犯一些小錯誤。最應該做的事情就是為軟件開發(fā)人員制定一套共同安全機制庫來幫助他們編碼。
有很多“積木”需要在不同的應用程序上重復搭建,例如身份驗證機制、數(shù)據(jù)庫連接器、輸入驗證、輸出編碼器等。
與你的軟件開發(fā)人員合作制定一套共同安全機制庫。IT安全團隊可能不需要建立這樣的指南,但是他們也可以參與進來,確保指南涵蓋了所有必要的安全機制。
另外,還要確保安全機制庫是很好理解的,單靠說明是不夠的,例如“為SQL連接使用Prepared Statement或者其他不可改的API”。雖然這很有用,你還應該利用這個機會解釋為什么要使用不可改變的SQL API–來防止SQL注入攻擊。
安全測試
滲透測試應該測試應用程序安全性最糟糕的方式,但是這種測試是必要的。當然,市面上還有很多其他形式的安全測試可以用來測試應用程序是否能夠用于你的企業(yè)。
例如,動態(tài)驗證測試,是從一份安全假設清單開始的,如“會話證書在通過網(wǎng)絡傳輸時必須全程加密”。然后,對測試的應用程序設置一些儀器,動態(tài)觀察會話證書的加密情況,這能夠幫助確保應用程序能夠在一個開放網(wǎng)絡運行,例如不安全的無線網(wǎng)絡。
這里的重點是不要只進行滲透測試,應該將視野擴大到其他安全測試上。嘗試一些其他的安全測試方法。
在建立應用程序之前對應用程序設計進行審查是確保應用程序能夠抵御各種威脅的最有效的方法之一。雖然設計審查并不是很常見,因為還沒有引起大家的重視。你需要與你的軟件開發(fā)人員合作,盡早地對軟件設計進行一些關鍵審查。威脅建模是進行設計審查的有效方法,而且不需要花費大量時間和精力。IT安全和軟件開發(fā)團隊之間的協(xié)作將在這方面發(fā)揮重要作用。
寫在最后:不要只是等著看2012年將給我們帶來什么,應該采取積極主動的態(tài)度來創(chuàng)造屬于自己的2012年。