原創(chuàng)|行業(yè)資訊|編輯:鄭恭琳|2020-05-25 14:37:58.343|閱讀 547 次
概述:在開(kāi)發(fā)過(guò)程中選擇靜態(tài)分析工具進(jìn)行采用和最終集成需要付出努力和計(jì)劃。這不僅僅是技術(shù)審查。該過(guò)程需要檢查該工具與您的組織的適合程度。評(píng)估銷售和支持工具的供應(yīng)商也很重要。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
從50000英尺的高度看,所有靜態(tài)分析工具看起來(lái)都一樣。他們分析代碼,不執(zhí)行代碼并發(fā)現(xiàn)缺陷、漏洞和其他問(wèn)題。
所有工具都會(huì)生成警告和報(bào)告。它們通常集成到IDE和CI/CD/build系統(tǒng)中。如果您想成功地將任何編碼工具集成到您的日常開(kāi)發(fā)中并獲得最大的投資回報(bào),則必須全面評(píng)估您的選擇。
當(dāng)試圖確定哪種靜態(tài)分析工具最有效時(shí),許多評(píng)估人員會(huì)采用一種通用的方法來(lái)為其團(tuán)隊(duì)或組織選擇工具。他們使用相同的代碼運(yùn)行每個(gè)工具,比較結(jié)果,然后立即選擇報(bào)告最多違規(guī)情況的工具。
這并不是真正的產(chǎn)品評(píng)估。這是一場(chǎng)烘烤。贏家不一定是在團(tuán)隊(duì)或組織內(nèi)建立可持續(xù)、可擴(kuò)展的靜態(tài)分析過(guò)程的最佳工具。
實(shí)際上,在成功進(jìn)行這些靜態(tài)分析時(shí),通常會(huì)忽略許多關(guān)鍵因素,這些因素是成功采用靜態(tài)分析與另一失敗嘗試之間的區(qū)別。
在開(kāi)始尋找工具之前,請(qǐng)對(duì)您的組織進(jìn)行殘酷誠(chéng)實(shí)的調(diào)查。評(píng)估以下內(nèi)容:
您的組織需要什么。要成功進(jìn)行靜態(tài)分析,重要的是要了解要解決的問(wèn)題。
您的組織所在的位置。了解新工具的目的以及它們是否適合您的組織也很重要。
在開(kāi)發(fā)過(guò)程中選擇靜態(tài)分析工具進(jìn)行采用和最終集成需要付出努力和計(jì)劃。這不僅僅是技術(shù)審查。該過(guò)程需要檢查該工具與您的組織的適合程度。評(píng)估銷售和支持工具的供應(yīng)商也很重要。
工具評(píng)估標(biāo)準(zhǔn)
以下是對(duì)候選工具進(jìn)行技術(shù)評(píng)估時(shí)要考慮的標(biāo)準(zhǔn):
供應(yīng)商注意事項(xiàng)
選擇正確的供應(yīng)商與選擇正確的工具一樣重要。當(dāng)組織獲得工具時(shí),他們即承諾與所選供應(yīng)商建立關(guān)系。
在大多數(shù)成功的工具部署背后,有一家供應(yīng)商致力于幫助組織實(shí)現(xiàn)業(yè)務(wù)目標(biāo),應(yīng)對(duì)表面挑戰(zhàn)并推動(dòng)采用。
在整個(gè)評(píng)估過(guò)程中,必須考慮幾層供應(yīng)商資格和評(píng)估。此時(shí),請(qǐng)考慮以下事項(xiàng):
了解供應(yīng)商在市場(chǎng)中的聲譽(yù)也很重要。回答這些問(wèn)題:
質(zhì)量與數(shù)量:關(guān)于覆蓋范圍
潛在客戶的一個(gè)常見(jiàn)問(wèn)題是:您的產(chǎn)品有幾個(gè)檢查器?
這個(gè)問(wèn)題暗示著工具的質(zhì)量取決于它所涵蓋的不同錯(cuò)誤的數(shù)量。對(duì)于任何工具(尤其是靜態(tài)分析工具)而言,這都是很差的措施。
靜態(tài)分析工具的用戶應(yīng)該真正關(guān)心每個(gè)工具覆蓋不同錯(cuò)誤類型,編碼標(biāo)準(zhǔn)和分析深度的程度。一個(gè)常見(jiàn)的例子是每個(gè)供應(yīng)商聲稱他們的工具聲稱CWE Top 25或OWASP Top 10或MISRA C/C++覆蓋率。
看到供應(yīng)商聲稱100%覆蓋了流行的編碼標(biāo)準(zhǔn)并不少見(jiàn)。通常會(huì)引起誤解的說(shuō)法。真正的問(wèn)題應(yīng)該是,而不是擔(dān)心檢查程序或規(guī)則的數(shù)量:工具覆蓋您所關(guān)注的編碼問(wèn)題的程度如何?
示例:MISRA C,C++和CERT C覆蓋范圍
盡管像MISRA這樣的編碼標(biāo)準(zhǔn)已經(jīng)扎根于汽車領(lǐng)域,但它們的采用正遍及其他對(duì)安全至關(guān)重要的領(lǐng)域。與市場(chǎng)需要的SEI CERT C一起使用,或用于降低軟件開(kāi)發(fā)的風(fēng)險(xiǎn)。無(wú)論用例如何,這些標(biāo)準(zhǔn)都不可避免地用于評(píng)估靜態(tài)分析工具。
但是,由于每個(gè)標(biāo)準(zhǔn)的覆蓋范圍聲明并未準(zhǔn)確定義工具對(duì)覆蓋范圍的聲明方式,因此可以解釋。深入研究可能對(duì)您的用例重要的特定功能具有價(jià)值。例如,如果您的項(xiàng)目需要MISRA C,則應(yīng)詳細(xì)查看每種工具的功能。
考慮以下對(duì)各種開(kāi)源和商業(yè)解決方案的評(píng)估,以評(píng)估它們對(duì)MISRA和CERT C標(biāo)準(zhǔn)的覆蓋范圍:
開(kāi)源解決方案的覆蓋率很差,這并不奇怪,因?yàn)樗鼈兊囊鈭D從未遵循這樣的標(biāo)準(zhǔn)。但是,通常聲稱支持這些標(biāo)準(zhǔn)的各種商業(yè)工具并沒(méi)有真正交付。在這里重要的真正評(píng)估標(biāo)準(zhǔn)是標(biāo)準(zhǔn)的覆蓋范圍,而不是支持該標(biāo)準(zhǔn)所需的檢查人員數(shù)量。
但是,在使用測(cè)試套件衡量標(biāo)準(zhǔn)的覆蓋率時(shí),您還需要考慮測(cè)試套件本身的覆蓋率。下圖的Juliet CWE Top 25(2011)覆蓋范圍圖像列出了通用弱點(diǎn)枚舉(CWE)ID以及Juliet C/C++和Java測(cè)試套件中的任何測(cè)試是否涵蓋了它們。您可以清楚地看到測(cè)試套件沒(méi)有完全覆蓋重要的CWE(前25名),這在許多測(cè)試套件中都是常見(jiàn)的。
開(kāi)源解決方案
關(guān)于將靜態(tài)分析解決方案使用開(kāi)源工具的問(wèn)題顯而易見(jiàn)。FOSS需要牢記一些關(guān)鍵問(wèn)題。評(píng)估需要包括缺少的重要功能,服務(wù)和支持的成本。
通常,這里提供有關(guān)FOSS成本和收益的詳細(xì)信息,包括支持、項(xiàng)目活動(dòng)和壽命以及可伸縮性等問(wèn)題。如果行業(yè)標(biāo)準(zhǔn)很重要,并且外部審核是您業(yè)務(wù)的一部分,則FOSS解決方案可能不是一個(gè)選擇。
在評(píng)估每個(gè)試點(diǎn)項(xiàng)目的結(jié)果時(shí),評(píng)估和最終決策應(yīng)歸結(jié)為回答以下關(guān)鍵問(wèn)題:
團(tuán)隊(duì)會(huì)真正采用并使用它嗎?如果無(wú)法部署,開(kāi)發(fā)人員不使用它,或者對(duì)項(xiàng)目進(jìn)度造成太大干擾,那么世界上最好的工具將無(wú)法提供任何價(jià)值。要確定采用某項(xiàng)工具的程度,不僅需要對(duì)工具、檢查器和集成進(jìn)行全面評(píng)估,還需要對(duì)供應(yīng)商,其支持、服務(wù)和培訓(xùn)進(jìn)行全面評(píng)估。
它會(huì)解決組織和團(tuán)隊(duì)正在嘗試解決的問(wèn)題嗎?部署新技術(shù)需要專注于要解決的問(wèn)題,而不僅僅是期望靜態(tài)分析將解決您的問(wèn)題。
此外,對(duì)解決該問(wèn)題的新技術(shù)的期望應(yīng)該是現(xiàn)實(shí)的。量化成功和投資回報(bào)很重要。務(wù)必提前確定如何衡量成功:損失的時(shí)間,錯(cuò)過(guò)的發(fā)布或現(xiàn)場(chǎng)支持案例。
這是一個(gè)長(zhǎng)期的解決方案嗎?評(píng)估很耗時(shí),需要團(tuán)隊(duì)投入。全面部署需要更多的時(shí)間和精力。選擇一種“目前已經(jīng)足夠好”的工具可能會(huì)在短期內(nèi)節(jié)省金錢,但從長(zhǎng)期來(lái)看卻非常昂貴。
靜態(tài)分析工具的評(píng)估通常最終會(huì)失敗,在此過(guò)程中,每個(gè)工具都在同一段代碼上進(jìn)行測(cè)試并根據(jù)結(jié)果進(jìn)行評(píng)估。盡管這是有用的并且技術(shù)評(píng)估很重要,但是評(píng)估人員還需要超越這些結(jié)果,以更大的眼光看待更長(zhǎng)的時(shí)間。
評(píng)估人員需要考慮工具如何有效地管理結(jié)果,包括易于使用的可視化和報(bào)告。 團(tuán)隊(duì)?wèi)?yīng)該清楚地了解每種工具如何支持在編碼標(biāo)準(zhǔn)等領(lǐng)域提出的主張。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn