日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5 款阿里常用代码检测工具,免费用!

發(fā)布時(shí)間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5 款阿里常用代码检测工具,免费用! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者 | 喻陽

面臨問題

在日常研發(fā)過程中,我們通常面臨的代碼資產(chǎn)問題主要分為兩大類:代碼質(zhì)量問題和代碼安全漏洞。

1、代碼質(zhì)量問題


代碼質(zhì)量其實(shí)是一個(gè)老生常談的話題,但問題是大家都知道它很重要,卻又不知道如何去提升和維護(hù)這一團(tuán)隊(duì)的共同財(cái)產(chǎn)。一方面開發(fā)人員可能為了功能及時(shí)上線,疏忽了對(duì)質(zhì)量的把控,另一方面開發(fā)人員編碼習(xí)慣和程序理解風(fēng)格各異。

長期下來代碼質(zhì)量下降通常會(huì)自成因果,因?yàn)闃I(yè)務(wù)壓力大而趨于下降,又因此開發(fā)效率下降,進(jìn)一步加大業(yè)務(wù)壓力,導(dǎo)致惡性循環(huán)。

2、代碼安全問題

安全類問題往往隱藏在缺乏安全意識(shí)的編碼邏輯和未經(jīng)檢測(cè)或維護(hù)的開源依賴組件中,難以在日常開發(fā)和代碼評(píng)審中被及時(shí)察覺。

代碼安全問題也可以分兩個(gè)方面進(jìn)行分析:

  • 編碼安全問題,即:安全規(guī)范類問題,通過避免不符合規(guī)范的代碼進(jìn)入企業(yè)代碼庫,減少隱私數(shù)據(jù)泄露、注入類風(fēng)險(xiǎn)、安全策略漏洞的出現(xiàn)。

  • 依賴安全問題,即:開源依賴三方組件引入的安全漏洞。根據(jù) Synopsys 2020 開源安全報(bào)告顯示,99%以上的組織使用了開源技術(shù)。使用開源組件本身帶來的技術(shù)交流和站在巨人肩膀上協(xié)作、降低開發(fā)成本、加快迭代周期、提高軟件質(zhì)量等優(yōu)勢(shì)已經(jīng)不必贅述,但是,開源軟件帶來一系列便利的同時(shí),也暗藏大量安全風(fēng)險(xiǎn),據(jù)審計(jì),75%的代碼庫存在安全漏洞,其中 49%包含高危問題,另外 82%的代碼庫仍在使用超過 4 年的 outdated 組件。

代碼安全類問題,一方面也需要進(jìn)行準(zhǔn)入性檢查,根據(jù)業(yè)務(wù)場(chǎng)景和規(guī)范配置安全編碼規(guī)范檢測(cè)和卡點(diǎn)。另一方面需要定期維護(hù),對(duì)于新爆發(fā)出的安全漏洞進(jìn)行及時(shí)察覺并修復(fù)。

5 款阿里常用代碼監(jiān)測(cè)工具推薦

1、代碼質(zhì)量檢測(cè)

  • Java 代碼規(guī)約檢測(cè)

阿里巴巴在實(shí)踐過程中,各個(gè)組織由于歷史隔閡和業(yè)務(wù)風(fēng)格差異,工程結(jié)構(gòu)差別很大,代碼風(fēng)格迥異,規(guī)范不一,溝通成本大,合作效率低,維護(hù)成本高。集團(tuán)發(fā)展到現(xiàn)在的規(guī)模,需要專業(yè)化的技術(shù)集團(tuán)軍迭代式、集約式發(fā)展,而不是動(dòng)輒重復(fù)造輪,而真正專業(yè)化的團(tuán)隊(duì)一定會(huì)有統(tǒng)一的開發(fā)規(guī)約,這代表效率、共鳴、情懷、可持續(xù)。

基于上述背景,阿里制定了《阿里巴巴 Java 開發(fā)手冊(cè)》,作為阿里內(nèi)部 Java 工程師所遵循的開發(fā)規(guī)范,涵蓋編程規(guī)約、單元測(cè)試規(guī)約、異常日志規(guī)約、MySQL 規(guī)約、工程規(guī)約、安全規(guī)約等。這是近萬名阿里 Java 技術(shù)精英的經(jīng)驗(yàn)總結(jié),并經(jīng)歷了多次大規(guī)模一線實(shí)戰(zhàn)檢驗(yàn)及完善。

制訂交通法規(guī)表面上是要限制行車權(quán),實(shí)際上是保障公眾的人身安全。試想如果沒有限速,沒有紅綠燈,沒有靠右行駛條款,誰還敢上路。同理,對(duì)軟件來說,開發(fā)規(guī)約絕不是消滅代碼內(nèi)容的創(chuàng)造性、優(yōu)雅性,而是限制過度個(gè)性化,推行相對(duì)標(biāo)準(zhǔn)化,以一種普遍認(rèn)可的方式一起做事。

因此,代碼規(guī)約的目標(biāo)是:1、碼出高效:標(biāo)準(zhǔn)統(tǒng)一,提升溝通效率和研發(fā)效能。2、碼出質(zhì)量:防患未然,提升質(zhì)量意識(shí)和系統(tǒng)可維護(hù)性,降低故障率。3、碼出情懷:工匠精神,追求極致的卓越精神,打磨精品代碼。

代碼規(guī)約通過 IDE 檢測(cè)插件、流水線集成測(cè)試、代碼評(píng)審集成等工具手段,深度融入了阿里巴巴的各種開發(fā)活動(dòng)中。與此同時(shí),在云效代碼托管平臺(tái) Codeup 中,也內(nèi)置集成了 Java 代碼規(guī)約檢測(cè)能力,為開發(fā)人員在代碼提交和代碼評(píng)審階段提供更為方便的快速檢查。

  • 代碼智能補(bǔ)丁推薦

缺陷檢測(cè)和補(bǔ)丁推薦幾十年來一直是軟件工程領(lǐng)域的難題,又是研究者和一線開發(fā)者最為關(guān)心的問題之一,這里講的缺陷不是網(wǎng)絡(luò)漏洞、系統(tǒng)缺陷,而是隱藏在代碼中的缺陷。幫助開發(fā)者識(shí)別這些缺陷,并進(jìn)行修復(fù),能夠大幅提升軟件質(zhì)量。
基于業(yè)界和學(xué)術(shù)界較為流行的缺陷檢測(cè)手段,并分析和規(guī)避其局限性,阿里巴巴 Codeup 的算法工程師們提出了一種新的算法,實(shí)現(xiàn)更加精準(zhǔn)和高效的分析代碼缺陷并推薦優(yōu)化方案,該算法已被國際軟件工程大會(huì)(ICSE)收錄。

1、根據(jù) commit message 中的關(guān)鍵詞找出修復(fù)型的 commit,只取涉及文件小于 5 個(gè)的 commit(涉及文件過多的 commit 可能會(huì)稀釋修復(fù)行為)。這個(gè)步驟十分依賴開發(fā)者良好的 commit習(xí)慣,希望開發(fā)者能用好 commit,寫好 message。

2、從這些修復(fù)型 commit 中以文件級(jí)別提取刪除內(nèi)容和新增內(nèi)容,即 Defect and Patch pairs(DP Pair),這一步難免會(huì)有很大的噪聲。

3、利用改進(jìn)的 DBSCAN 方法對(duì) buggy 和 patch 對(duì)同時(shí)聚類,將相似的缺陷和補(bǔ)丁代碼聚在一起。(也可以做片段級(jí)的聚類)通過將相似的缺陷和修復(fù)做聚類,減少了上一步留下的大量噪聲,同時(shí)歷史代碼提交中大家共同犯過的錯(cuò)具有很強(qiáng)的借鑒意義。

4、利用自研的模板提取方法總結(jié)缺陷代碼和補(bǔ)丁代碼,并根據(jù)不同的變量來適配上下文。

代碼補(bǔ)丁推薦服務(wù)目前應(yīng)用于合并請(qǐng)求的代碼自動(dòng)掃描場(chǎng)景,在代碼評(píng)審過程中檢測(cè)可優(yōu)化代碼片段并給出優(yōu)化建議,將歷史評(píng)審中的人工經(jīng)驗(yàn)沉淀下來持續(xù)提升企業(yè)代碼質(zhì)量。

2、代碼安全檢測(cè)

  • 敏感信息檢測(cè)

近年來,業(yè)內(nèi)發(fā)生多起敏感信息(API Key、Database credential、OAuth token 等)通過某些站點(diǎn)被無意識(shí)地泄露出去的事件,給企業(yè)帶來了安全風(fēng)險(xiǎn),甚至直接的經(jīng)濟(jì)損失。

在我們的實(shí)踐過程中,我們也面臨了類似的問題,硬編碼問題出現(xiàn)非常高頻,而又缺乏有效的識(shí)別機(jī)制。因此開發(fā)者和企業(yè)管理者亟需一款穩(wěn)定健全的敏感信息檢測(cè)方法和系統(tǒng)。通過調(diào)研我們了解到,目前已有的敏感信息檢測(cè)工具大多單純使用規(guī)則匹配或信息熵技術(shù),導(dǎo)致其召回率或準(zhǔn)確率難以滿足預(yù)期。因此我們?cè)谝?guī)則匹配和信息熵技術(shù)的基礎(chǔ)上,結(jié)合上下文語義,提出了一款采用多層檢測(cè)模型的敏感信息檢測(cè)工具——SecretRadar。

SecretRadar 的技術(shù)實(shí)現(xiàn)思路主要分為三層,第一層采用規(guī)則匹配這種傳統(tǒng)敏感信息識(shí)別技術(shù),規(guī)則匹配具有良好的準(zhǔn)確度和擴(kuò)展性,但是非常依賴比較固化的長度、前綴、變量名,難以應(yīng)對(duì)不同開發(fā)者的不同編碼風(fēng)格,容易造成漏報(bào)。針對(duì)難以固定規(guī)則捕捉的場(chǎng)景,在第二層我們采用了信息熵算法。信息熵算法用于衡量代碼行混亂程度,對(duì)隨機(jī)生成型密鑰和隨機(jī)身份信息識(shí)別效果良好。但信息熵算法也有其局限性,召回率提升的同時(shí)誤報(bào)也增多了。因此在第三層我們采用了模板聚類和上下文語義分析等方法進(jìn)行過濾優(yōu)化,針對(duì)信息熵結(jié)果聚合提取常見關(guān)鍵字,結(jié)合上下文語義和當(dāng)前語法結(jié)構(gòu)提升模型準(zhǔn)確率。

敏感信息檢測(cè)工具不止服務(wù)我們內(nèi)部開發(fā)同學(xué),在云效平臺(tái)上也支持了超過 2 萬代碼庫、3 千家企業(yè),幫助開發(fā)者解決了超過 9 萬硬編碼問題。

  • 源碼漏洞檢測(cè)

阿里巴巴采用 Sourcebrella Pinpoint 源傘檢測(cè)引擎,進(jìn)行源碼漏洞檢測(cè),主要涉及到注入類風(fēng)險(xiǎn)和安全策略類風(fēng)險(xiǎn)檢測(cè)。

源傘檢測(cè)引擎是香港科技大學(xué) Prism 研究組在過去十年的時(shí)間內(nèi)的技術(shù)研究成果。該引擎吸收了國際上近十年的軟件驗(yàn)證技術(shù)研究成果,并且加以改進(jìn)和創(chuàng)新,獨(dú)立設(shè)計(jì)和實(shí)現(xiàn)了一套技術(shù)領(lǐng)先的軟件驗(yàn)證系統(tǒng)。其主要驗(yàn)證方式是將編程語言翻譯成一階邏輯和線性代數(shù)等數(shù)學(xué)表達(dá),通過形式化驗(yàn)證技術(shù)推理缺陷成因。迄今為止,一共發(fā)表了四篇核心技術(shù)相關(guān)的論文,一篇 PLDI 和三篇 ICSE,研究型的同學(xué)可以點(diǎn)擊文末鏈接閱讀。
源傘檢測(cè)引擎能夠在活躍度比較高的大型開源項(xiàng)目中發(fā)現(xiàn)隱藏超過 10 年的缺陷,以 MySQL 檢測(cè) [5] 為例,這些缺陷都是市面上其他檢查工具無法掃描出來的,并且能夠在 1.5 小時(shí)完成 200 萬行大型開源項(xiàng)目的檢測(cè)。在保持掃描的高效率同時(shí),還能夠?qū)⒄`報(bào)率控制在 15%左右。對(duì)于復(fù)雜且體量龐大的分析項(xiàng)目來說,源傘檢測(cè)引擎所表現(xiàn)的掃描效率和誤報(bào)率在業(yè)內(nèi)也處于領(lǐng)先水平。

「源碼漏洞檢測(cè)」集成了源傘檢測(cè)引擎的安全分析能力,能夠在分析精度、速度、深度等方面均衡得到較好的分析結(jié)果,具備的核心優(yōu)勢(shì):

1、支持分析字節(jié)碼,二三方包的代碼邏輯都不會(huì)遺漏;
2、擅長跨函數(shù)長調(diào)用鏈路的邏輯分析;
3、可以處理引用、指針等帶來的間接數(shù)據(jù)修改;
4、精度高,相比于同類工具,如 Clang、Infer,在精度和有效問題識(shí)別上表現(xiàn)更佳;
5、性能好,目前單應(yīng)用平均 5 分鐘左右分析完畢;

源傘檢測(cè)引擎可以精確的追蹤代碼中的數(shù)據(jù)流向,擁有高深度高精度的函數(shù)調(diào)用鏈分析能力,可以找到跨越多層函數(shù)的深度問題。在發(fā)現(xiàn)缺陷的同時(shí)還能給出問題觸發(fā)的過程,完整展示相關(guān)的控制流以及數(shù)據(jù)流,這樣可以輔助開發(fā)者快速理解和修復(fù)問題,在軟件開發(fā)早期更低成本地提高軟件質(zhì)量,大幅減少生產(chǎn)成本,提高研發(fā)效能。

  • 依賴包漏洞檢測(cè)

我們期望對(duì)于開源組件的安全可信程度,為開發(fā)者建立一種有效的檢測(cè)和管理機(jī)制,因此我們實(shí)現(xiàn)了依賴包漏洞檢測(cè)服務(wù)和依賴包安全問題報(bào)表。在實(shí)踐過程中,開發(fā)者普遍反映依賴包漏洞修復(fù)成本大多高于修復(fù)自身編碼漏洞,從而不愿意或難于處理此類問題。究其原因,一方面是大部分漏洞并非直接引入,而是依賴的第三方組件又間接依賴了其它組件,另一方面是不確定具體哪個(gè)版本是干凈可用且兼容的。

為了降低開發(fā)者的修復(fù)難度,我們對(duì)依賴項(xiàng)的引用關(guān)系進(jìn)行了進(jìn)一步識(shí)別分析,清晰的標(biāo)注出直接依賴和間接依賴,并定位到具體的依賴包引入文件,方便開發(fā)者快速找到關(guān)鍵問題位置。同時(shí),通過對(duì)漏洞數(shù)據(jù)的聚合,智能推薦修復(fù)漏洞的版本升級(jí)建議,因?yàn)橐粋€(gè)依賴可能對(duì)應(yīng)多個(gè)漏洞問題,開發(fā)者可以針對(duì)建議評(píng)估是否接受采用。通過分析不同版本間的 API 變更和代碼調(diào)用鏈路,衡量版本升級(jí)成本,為開發(fā)人員自動(dòng)創(chuàng)建修復(fù)評(píng)審,最大程度的幫助開發(fā)人員更高效地維護(hù)代碼安全。

**無論是代碼質(zhì)量檢測(cè)還是代碼安全檢測(cè),以上 5 款阿里代碼自動(dòng)檢測(cè)工具,開發(fā)者們都可以在云效 Codeup 內(nèi)免費(fèi)體驗(yàn)。

檢測(cè)服務(wù)應(yīng)用

1、代碼提交

檢測(cè)服務(wù)的最直接的應(yīng)用便是在代碼提交場(chǎng)景中,企業(yè)可以根據(jù)業(yè)務(wù)場(chǎng)景和規(guī)范,制定和配置不同項(xiàng)目的檢查方案。當(dāng)開發(fā)者將代碼變更推送至服務(wù)端,自動(dòng)觸發(fā)當(dāng)前代碼庫配置的檢測(cè)服務(wù),可以為開發(fā)者檢查當(dāng)前 commit 版本中的全量問題,幫助開發(fā)者及早發(fā)現(xiàn)新增問題,并確認(rèn)存量問題的解決情況。通過接入上述檢測(cè)服務(wù),可以從代碼規(guī)范、代碼質(zhì)量、代碼安全等多個(gè)維度進(jìn)行測(cè)試左移,在開發(fā)人員剛完成編碼時(shí)就進(jìn)行快速檢測(cè)和反饋。

2、代碼評(píng)審

在企業(yè)項(xiàng)目協(xié)同中,開發(fā)者多以合并請(qǐng)求的方式將特性分支代碼合入主干分支,合并請(qǐng)求過程需要項(xiàng)目開發(fā)負(fù)責(zé)人或模塊負(fù)責(zé)人進(jìn)行代碼評(píng)審和人工檢查。一方面人工審查代碼需要投入較大精力,另一方面人工審查難以覆蓋代碼各個(gè)維度的潛在問題。因此,通過合理配置檢測(cè)服務(wù),可以極大地減少人工評(píng)審的工作量,加速代碼評(píng)審的工作過程。同時(shí),通過豐富、篩選、沉淀檢測(cè)規(guī)則集和人工經(jīng)驗(yàn),檢測(cè)服務(wù)可以更加貼合企業(yè)的業(yè)務(wù)場(chǎng)景進(jìn)行卡點(diǎn),避免不符合規(guī)范或存在風(fēng)險(xiǎn)的代碼進(jìn)入企業(yè)代碼庫。

3、代碼度量

檢測(cè)服務(wù)除了在代碼提交和代碼評(píng)審階段幫助開發(fā)者及早發(fā)現(xiàn)問題并解決問題,還可以幫助管理者進(jìn)行企業(yè)代碼質(zhì)量度量和風(fēng)險(xiǎn)可視化。通過建設(shè)企業(yè)級(jí)報(bào)表服務(wù)和項(xiàng)目任務(wù)管理,可以更為直觀地度量項(xiàng)目演進(jìn)過程中的安全問題和質(zhì)量問題。?

擴(kuò)展閱讀

  • Pinpoint: Fast and Precise Sparse Value Flow Analysis for Million Lines of Code?
    http://t.tb.cn/0qxIpFV5sRD5uxOcgED7o

  • SMOKE: Scalable Path-Sensitive Memory Leak Detection for Millions of Lines of Code?
    http://t.tb.cn/2l96Jh2yqOGowsfs4oVk2m

  • Pipelining Bottom-up Data Flow Analysis
    https://qingkaishi.github.io/public_pdfs/ICSE2020a.pdf

  • Conquering the Extensional Scalability Problem for Value-Flow Analysis Frameworks?
    https://qingkaishi.github.io/public_pdfs/ICSE2020b.pdf

    ?

  • 活動(dòng)推薦


    5 款阿里常用代碼檢測(cè)工具免費(fèi)體驗(yàn),僅需 2 步,Cherry鍵盤、公仔抱回家,100%拿獎(jiǎng)!
    都 2021 年了,你還認(rèn)為代碼檢測(cè)=語法/風(fēng)格掃描?

    大廠每年數(shù)百萬采購的掃描軟件,都在采購什么?如何不花錢白嫖?

    落地 DevOps 的第 2 步是什么?

    什么是接入成本最低的質(zhì)量和安全提升工具?

    **云效 DevOps 實(shí)驗(yàn)室特推出【1 分鐘代碼自動(dòng)捉蟲】活動(dòng)
    1-3 分鐘,給你的代碼做個(gè)全身體檢吧。

    體驗(yàn)完成,還可抽 Cherry 機(jī)械鍵盤、阿里云定制 GIt 命令鼠標(biāo)墊、積木星球等,1000 分禮品,100%中獎(jiǎng)!?

    點(diǎn)擊下方鏈接,立刻參與活動(dòng)!注:本活動(dòng)僅限云效新用戶參加https://developer.aliyun.com/adc/series/activity/bugdetect

    總結(jié)

    以上是生活随笔為你收集整理的5 款阿里常用代码检测工具,免费用!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。