原創(chuàng)|行業(yè)資訊|編輯:鄭恭琳|2021-01-25 14:02:04.383|閱讀 211 次
概述:我們需要開(kāi)始在代碼中構(gòu)建安全性。這是真正加固它的最佳方法,而不僅僅是修補(bǔ)已知的孔。將來(lái)自編碼,構(gòu)建和測(cè)試的所有軟件開(kāi)發(fā)結(jié)果集成到中央存儲(chǔ)庫(kù)中,即可提供控制,度量和可跟蹤性。這是未來(lái)改進(jìn)的基礎(chǔ)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷售中 >>
相關(guān)鏈接:
最近,我在LinkedIn上閱讀了一篇帖子,其中有人問(wèn)了幾個(gè)靜態(tài)分析安全廠商之間的區(qū)別。一個(gè)人,毫無(wú)疑問(wèn)是供應(yīng)商,回答說(shuō)他們的解決方案更好,因?yàn)楸M管其他公司專注于質(zhì)量和安全性,但他們嚴(yán)格執(zhí)行安全性。
當(dāng)然,這是一個(gè)荒謬的說(shuō)法。也許這種想法表明了當(dāng)前行業(yè)中應(yīng)用程序安全的猖ramp問(wèn)題。例如,嘗試運(yùn)行其安全組的組織與SDLC的其余部分完全分開(kāi)(包括開(kāi)發(fā)和測(cè)試工作)。在此模型中,安全團(tuán)隊(duì)運(yùn)行自己的測(cè)試,主要是嘗試破壞軟件,然后將安全錯(cuò)誤反饋給開(kāi)發(fā)團(tuán)隊(duì)。換句話說(shuō),嘗試在其代碼中測(cè)試安全性。我可以向您保證,這僅比測(cè)試代碼質(zhì)量有效。
當(dāng)然,這種安全測(cè)試是必要的,但僅僅是不夠的。雖然破壞軟件確實(shí)很有用,但是依靠它作為提高安全性的方法會(huì)導(dǎo)致在太晚的時(shí)候發(fā)現(xiàn)錯(cuò)誤,并最終將其抑制。尤其是,諸如日程安排之類的根源問(wèn)題,如不適當(dāng)?shù)目蚣芎退惴ǎ驯粧?地出門(mén),因?yàn)槿粘贪才炮A得了重寫(xiě)代碼和發(fā)布版本之間的沖突。
在上面我提到的Linkedin評(píng)論中,供應(yīng)商聲稱自己的軟件更好,但卻沒(méi)有說(shuō)出任何關(guān)于如何更好的理由,這實(shí)際上是在誤導(dǎo)一個(gè)毫無(wú)戒心的潛在客戶。我并不是要選擇任何特定的工具供應(yīng)商,尤其是因?yàn)槲覟橐粋€(gè)供應(yīng)商工作。但是,我對(duì)這種稻草人的論點(diǎn)感到沮喪,這些論點(diǎn)給人以賣蛇油的感覺(jué)。在這種情況下,供應(yīng)商的產(chǎn)品確實(shí)可能具有有趣的獨(dú)特功能,但給我們留下的印象是安全性與質(zhì)量在某種程度上有著神奇的區(qū)別,這降低了我們對(duì)應(yīng)用程序安全性的理解,使我們所有人的安全性降低了一點(diǎn)。
必須將安全性視為質(zhì)量,并且質(zhì)量必須基于成熟的工程實(shí)踐,因?yàn)槭聦?shí)是,如果您遇到質(zhì)量問(wèn)題,那么您就會(huì)遇到安全問(wèn)題。研究表明,安全缺陷的50-70%都是質(zhì)量缺陷。換句話說(shuō),良好的老式質(zhì)量漏洞正在變成入侵者/黑客/不良行為者用來(lái)滲透您的應(yīng)用程序的漏洞(我們稱為“零日”)。
“研究人員一致認(rèn)為,至少有一半(也許多達(dá)70%)的常見(jiàn)軟件漏洞是基本的代碼質(zhì)量問(wèn)題,可以通過(guò)編寫(xiě)更好的軟件來(lái)避免。馬虎的編碼。”
– Jim Bird“構(gòu)建真實(shí)軟件”
如果您仍然不確定質(zhì)量和安全性如何重疊,請(qǐng)查看CWE Top 25中的幾個(gè)示例。以下可能的安全結(jié)果來(lái)自CWE技術(shù)影響工作:
#3 CWE 120 –未經(jīng)檢查輸入大小的緩沖區(qū)復(fù)制(“經(jīng)典緩沖區(qū)溢出”)–可能導(dǎo)致執(zhí)行未授權(quán)的代碼或命令,可能的未授權(quán)數(shù)據(jù)訪問(wèn),可能的拒絕服務(wù)(DoS)
#20 CWE 131 –緩沖區(qū)大小的錯(cuò)誤計(jì)算(導(dǎo)致緩沖區(qū)溢出)–可能的DoS,執(zhí)行未授權(quán)的代碼或命令,可能的未授權(quán)讀取/修改內(nèi)存
#25 CWE 190 –整數(shù)溢出或環(huán)繞(導(dǎo)致未定義的行為并因此崩潰)–可能的DoS,可能的內(nèi)存修改,可能的未授權(quán)代碼或命令執(zhí)行,可能的任意代碼執(zhí)行
如果您進(jìn)一步進(jìn)入完整的CWE列表(超過(guò)800個(gè)項(xiàng)目),則會(huì)發(fā)現(xiàn)許多其他問(wèn)題,即各種形式的上溢/下溢,初始化,不受控制的遞歸等。這些都是常見(jiàn)的安全攻擊以及明顯的質(zhì)量問(wèn)題。
軟件系統(tǒng)的復(fù)雜性增長(zhǎng)非常迅速。試圖快速測(cè)試每種可能的變化幾乎變得不可能。正如理查德·本德(Richard Bender)所說(shuō),“潛在測(cè)試的數(shù)量超過(guò)了宇宙中分子的數(shù)量”,這只是一種有趣的說(shuō)法,說(shuō)您將永遠(yuǎn)無(wú)法完成它。或者從吉姆·伯德(Jim Bird)那里,“對(duì)于一個(gè)大型系統(tǒng),您需要在無(wú)數(shù)個(gè)鍵盤(pán)上使用無(wú)數(shù)個(gè)筆測(cè)試器,并且它們需要工作數(shù)小時(shí)才能找到所有的錯(cuò)誤。”
因此,必須同時(shí)設(shè)計(jì)和設(shè)計(jì)安全性和可靠性。您無(wú)法對(duì)其進(jìn)行測(cè)試。只要安全性是“額外”的東西,它就會(huì)遭受損失。
您可以采取以下幾項(xiàng)措施來(lái)開(kāi)始同時(shí)提高軟件質(zhì)量和安全性。
培訓(xùn)開(kāi)發(fā)人員進(jìn)行安全開(kāi)發(fā)。對(duì)您的開(kāi)發(fā)人員進(jìn)行安全的開(kāi)發(fā)實(shí)踐培訓(xùn),意味著他們可以預(yù)防(或至少找到并解決)安全問(wèn)題。
在設(shè)計(jì)和構(gòu)建系統(tǒng)時(shí)要特別關(guān)注質(zhì)量和安全性。避免使用“有效”的代碼,因?yàn)樗嬖跐撛诘陌踩珕?wèn)題,因此并不是一個(gè)很好的選擇。 (或者安全問(wèn)題。)靜態(tài)分析將通過(guò)檢查代碼中的錯(cuò)誤,以及是否符合已知的最佳做法來(lái)幫助您完成此任務(wù)。
不再依賴邊緣工具。識(shí)別您的實(shí)際暴露和攻擊面。防火墻和防病毒軟件無(wú)法彌補(bǔ)不安全的代碼-您必須加固您的應(yīng)用程序。
收集/測(cè)量缺陷數(shù)據(jù),并將其用于評(píng)估和改進(jìn)您的開(kāi)發(fā)實(shí)踐。哪些代碼或組件產(chǎn)生最多的問(wèn)題?什么代碼是最好的?他們是如何測(cè)試的?重復(fù)好主意,然后沖洗壞主意。
使用嚴(yán)格的靜態(tài)分析。不要僅僅接受某人對(duì)已報(bào)告的缺陷不是重要問(wèn)題或誤報(bào)的評(píng)估。獲得包括檢測(cè)和預(yù)防在內(nèi)的一系列良好規(guī)則,并遵守這些規(guī)則。最好的方法是采用圍繞最佳實(shí)踐的工程方法(諸如CWE,CERT和OWASP等編碼標(biāo)準(zhǔn)的作用)。靜態(tài)分析是確保遵循最佳實(shí)踐的方法。
使用運(yùn)行時(shí)分析。它會(huì)發(fā)現(xiàn)實(shí)際的問(wèn)題(尤其是令人討厭的內(nèi)存問(wèn)題),并且可以準(zhǔn)確地向您顯示出錯(cuò)誤的出處,沒(méi)有任何誤報(bào)。
因此,我們需要開(kāi)始在代碼中構(gòu)建安全性。這是真正加固它的最佳方法,而不僅僅是修補(bǔ)已知的孔。將來(lái)自編碼,構(gòu)建和測(cè)試的所有軟件開(kāi)發(fā)結(jié)果集成到中央存儲(chǔ)庫(kù)中,即可提供控制,度量和可跟蹤性。這是未來(lái)改進(jìn)的基礎(chǔ)。
請(qǐng)記住,可靠防護(hù)的成本低于處理不良或不安全軟件的成本。因此,實(shí)際上沒(méi)有任何借口再不重視測(cè)試了。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn