軟件日益成為企業(yè)從事各種業(yè)務(wù)的核心。而敏捷性成為保持競(jìng)爭(zhēng)力的關(guān)鍵要素,所以企業(yè)正尋求伙伴幫助自己獲得所需軟件,以保持不敗地位。注意,這里說的是“獲得”而非“構(gòu)建”或“編制”,因?yàn)閬碜曰锇榈膸椭梢詠碜攒浖M件的形式,或者是完全開發(fā)好的應(yīng)用代碼。
合作伙伴可以帶來軟件,也可以招致風(fēng)險(xiǎn)。合作伙伴提供軟件中的漏洞會(huì)成為企業(yè)的漏洞。這并不是一個(gè)新現(xiàn)象,企業(yè)開始以各種原因在各種市場(chǎng)中求助于供應(yīng)鏈合伙人,并且很快認(rèn)識(shí)到自己正在從其合伙聯(lián)盟中繼承風(fēng)險(xiǎn)。開源組件越來越多的使用促進(jìn)了軟件供應(yīng)鏈的發(fā)展,并且促使企業(yè)相信自己的合作伙伴。
那么,這些軟件漏洞的源頭是什么呢?當(dāng)然,我們絕對(duì)不能歸咎于惡意行為(雖然我們可以有足夠的理由來解釋),卻不能排除惡意的想法。在涉及評(píng)估企業(yè)合作伙伴的優(yōu)勢(shì)、弱點(diǎn)以及潛在風(fēng)險(xiǎn)時(shí),通過分析軟件漏洞,我們認(rèn)為這并非“無的放矢”。
毋庸置疑,有相當(dāng)部分的軟件漏洞是由于架構(gòu)和設(shè)計(jì)中的缺陷造成的。因而,如果企業(yè)的合作伙伴不能承諾將安全性構(gòu)建到其架構(gòu)和設(shè)計(jì)中,那么,企業(yè)將會(huì)繼承這些易被利用的基本漏洞。只有最成熟的合作伙伴才會(huì)信奉安全設(shè)計(jì)的觀念,并且實(shí)施充分的威脅建模。
企業(yè)的團(tuán)隊(duì)是否在編寫無漏洞的代碼?是否已經(jīng)清除了“開放式Web應(yīng)用程序安全項(xiàng)目(OWASP)”中的那些重大漏洞呢?為什么要假設(shè)自己的合作伙伴已經(jīng)在一定程度上實(shí)現(xiàn)了無漏洞的編碼呢?畢竟,合作伙伴要與潛在的供應(yīng)商進(jìn)行競(jìng)爭(zhēng),并且與貴企業(yè)一樣面臨著同樣的壓力。誰還有時(shí)間關(guān)注安全?可以說,你只能繼承那些不能編制安全代碼的合作伙伴交給你的漏洞。
企業(yè)的合作伙伴可能將惡意邏輯和結(jié)構(gòu)編寫到代碼中,從而允許其訪問應(yīng)用。這些內(nèi)部人員威脅的惡意邏輯和結(jié)構(gòu)往往能夠逃避由標(biāo)準(zhǔn)的安全測(cè)試工具所實(shí)施的檢測(cè),因?yàn)檫@些工具并不包含漏洞標(biāo)識(shí)工具。這些惡意邏輯和結(jié)構(gòu)可以成為惡意訪問、時(shí)間炸彈、特洛伊木馬的后門。無論如何,這種合作伙伴已經(jīng)故意地編寫了可以被利用的代碼。
內(nèi)部人員風(fēng)險(xiǎn)代表著真正的風(fēng)險(xiǎn),因?yàn)閭鹘y(tǒng)的靜態(tài)和動(dòng)態(tài)應(yīng)用安全測(cè)試就存在于多數(shù)軟件安全機(jī)制的內(nèi)部,所以就無法找到這些漏洞。經(jīng)驗(yàn)豐富的安全專家可以通過源代碼的分析找到惡意的程序構(gòu)造,但是,來此企業(yè)合作伙伴的代碼主要表現(xiàn)為二進(jìn)制形式,因而無法訪問源代碼。能夠檢測(cè)二進(jìn)制代碼中的內(nèi)部人員威脅構(gòu)造的工具是很有限的,而且這種工具并沒有廣泛部署。所以,雖然開源組件分析受到廣泛關(guān)注,但內(nèi)部人員威脅卻會(huì)造成最大的危害。
那么解決方法是什么呢?最佳起點(diǎn)是建立必要的策略和過程,確保企業(yè)采取措施減少由軟件供應(yīng)鏈帶來的漏洞。企業(yè)要?jiǎng)?chuàng)建關(guān)于開源的使用策略和第三方應(yīng)用的測(cè)試策略,并且創(chuàng)建指南,為來自軟件供應(yīng)鏈的軟件進(jìn)入產(chǎn)生環(huán)境制定門檻。
我們無法評(píng)估自己不了解的東西,所以應(yīng)關(guān)注企業(yè)正在使用的開源軟件或第三方軟件。例如,有些軟件組成分析工具可以確定和統(tǒng)計(jì)開源的使用。這些工具可以實(shí)施企業(yè)策略并提供許可協(xié)議數(shù)據(jù),還可以確認(rèn)包含已知漏洞的開源組件。
對(duì)于由企業(yè)的合作伙伴開發(fā)的軟件,企業(yè)應(yīng)考慮能夠確認(rèn)內(nèi)部人員威脅的可用工具。不妨詢問合作伙伴的編碼方法并深入分析其安全策略。一個(gè)可信賴的合作伙伴應(yīng)非常愿意向企業(yè)提供可以解決問題的信息。雖然要相信軟件的安全性,但驗(yàn)證也同樣重要。
如今,無論是聯(lián)盟還是合作伙伴,都是重要資源。為保持競(jìng)爭(zhēng)優(yōu)勢(shì),企業(yè)都在不斷地交朋友和擴(kuò)大合作伙伴關(guān)系。就如同任何商業(yè)關(guān)系一樣,企業(yè)在使用來自聯(lián)盟或合作伙伴的軟件或開源組件時(shí),要注意其潛在風(fēng)險(xiǎn)。
企業(yè)的軟件安全問題取決于其聯(lián)盟或合作伙伴。