在軟件安全問題上,我們并沒有完全承認一些很明顯的問題,在應對相關的漏洞時,也不可能取得什么進展。所以,2018年的第一季度,大量的新型攻擊已經初露端倪。
軟件是一個主要的攻擊點。這方面的證據幾乎無處不在,然而我們很多人選擇忽視安全測試,至少在當今運行的大多數物聯網應用中是這樣。由于物聯網已經被證明是一個極具誘惑力的媒介,我們也會認為保障其安全是極其重要的。但事實上我們做得怎么樣呢?
很多情況下,企業僅僅重視高風險的應用。但是大量的證據表明,有被認為是低風險的應用程序被攻擊者用作一個攻擊入點,進而危害高風險的應用程序以訪問高價值的目標。
不重視或忽視大量軟件的測試方法是不可行的。但是,進行草率的測試也好不了多少,而且可能產生錯誤的安全感。因為審計人員要求測試而進行測試也不是安全。運行測試并解決所發現的問題是一個向前發展的過程。事實上,有很多企業即使生成了大量的測試結果也沒有采取應對的行動。
很多應用程序的安全測試廠商都宣稱能有效測試軟件的安全性。其實,這些廠商只說了部分事實,如今的軟件屬性都要求多重測試,以全面評估任何應用程序的安全性。這是因為應用程序包含三個可能被發現漏洞的特定要素,其中的每個要素都必須用一個不同的方法,以保證安全測試的完整性。
雖然企業經常采用開源程序和遷移到敏捷的開發方法,但有一個問題一直存在:企業仍需要編寫代碼。源代碼分析(靜態分析)的設計目的是找到安全漏洞和所開發代碼中的質量問題。
隨著對開源代碼的的使用不斷增長,應用軟件中來自外部源的代碼數量正急劇增長。這種開源代碼包含著可能成為企業軟件一部分的嚴重漏洞。軟件組成分析(SCA)可以檢測在開發和使用過程中的開源和第三方的要素風險,并能夠確認在企業應用程序中的開源代碼所包含的潛在的許可問題。
將代碼部署到網絡上時,必須對運行時環境通過動態測試以測試漏洞。在應用程序的運行狀態中的測試可以揭示靜態測試分析不能檢測到的問題。對于高風險的應用來說,很多企業采用道德黑客的形式,將人為因素放在在動態測試過程中,從而加速了測試步伐。
我們是不是應該有種危機感呢?以大行其道的物聯網為例,其中約有80%的應用根本沒有進行測試。對于剩余的接受某種測試的20%的應用,測試也可能是不完整的。而且,即使很多企業找到了問題,也沒有解決。
如果企業不將優先考慮從端點和網絡的安全轉移到更多關注軟件安全,那么問題就不可能得到根本解決。
減少安全實踐對開發過程的影響的最佳方法是,將安全的編碼實踐集成到安全的開發周期中,從源頭上確立對構建安全代碼的重視。
那么,如何推動實施有效的應用程序的安全測試?在此提供一些雖非“必殺技”卻是實用的建議:
首先,對企業IT安全的優先權進行再平衡,將重點轉移到軟件安全性問題上。
其次,組建一個軟件安全小組,由其負責構建和管理一個合理而全面的軟件測試項目。
第三,利用可以使開發人員從一開始就編寫安全軟件的工具和項目。將安全性構建到軟件中要遠比設法測試軟件的安全性更好。
企業確實到了應該將IT安全的重點放在正被攻擊的軟件身上的時候了。在明確了有效的解決問題的途徑后,企業需要做出明智的決定,并堅決貫徹實施。