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