關(guān)注、星標(biāo)公眾號(hào),不錯(cuò)過精彩內(nèi)容
作者:蛋醬
來源:機(jī)器之心
在 GitHub 發(fā)布項(xiàng)目之前,你可以用免費(fèi)的官方代碼掃描程序來檢查 Bug 了。
編程很難,難就難在常有 Bug 而不自知。有程序員調(diào)侃:「我不是在寫代碼,我是在寫 Bug?!?/span>
從現(xiàn)在開始,你在 GitHub 上傳的代碼可以免費(fèi)使用 Bug 篩查程序了。早發(fā)現(xiàn),早報(bào)告,早診斷…… 以及早修復(fù)。
去年 9 月,GitHub 收購代碼分析平臺(tái)企業(yè) Semmle,宣布將在 GitHub 的開發(fā)者工作流程中引入代碼安全性流程。
代碼掃描是 GitHub Advanced Security 計(jì)劃中的一部分。今年 5 月的 Github Satellite 2020 大會(huì),GitHub 率先推出了代碼掃描功能的 beta 版,免費(fèi)提供開源代碼掃描功能。啟用后,將對(duì)每個(gè)「git push」進(jìn)行掃描以查找新的潛在安全漏洞,并將結(jié)果直接顯示在請(qǐng)求中。
據(jù) GitHub 介紹,在內(nèi)測階段,有 12000 個(gè)存儲(chǔ)庫接受了代碼掃描,掃描次數(shù)達(dá)到 140 萬次,總共發(fā)現(xiàn)了 20000 多個(gè)安全問題,包括遠(yuǎn)程代碼執(zhí)行(RCE)、SQL 注入和跨站腳本(XSS)的漏洞。開發(fā)者和維護(hù)人員在一個(gè)月內(nèi)修復(fù)了 72% 的已報(bào)告安全問題,比例遠(yuǎn)高于業(yè)內(nèi)統(tǒng)計(jì)的 32% 的 30 天內(nèi)修復(fù)率。
經(jīng)過幾個(gè)月來眾多開發(fā)者的的測試與反饋,九月的最后一天,GitHub 宣布「代碼掃描」正式上線了。
目前,代碼掃描面向公共存儲(chǔ)庫是免費(fèi)的。此外,面向使用 GitHub Enterprise 團(tuán)隊(duì),代碼掃描功能是 GitHub Advanced Security 的一部分,能夠幫助團(tuán)隊(duì)更早地查找出項(xiàng)目中的安全漏洞。
代碼掃描功能首先是基于開發(fā)者的需求設(shè)計(jì)的,默認(rèn)情況下,代碼掃描不會(huì)提供過多的建議以免造成干擾,只會(huì)在保證安全的原則下運(yùn)行,讓開發(fā)者能夠?qū)W⒂谑诸^的任務(wù)。
代碼掃描與 GitHub Actions 或用戶現(xiàn)有的 CI / CD 環(huán)境集成在一起,為團(tuán)隊(duì)工作提供最大的靈活度。它會(huì)在代碼被創(chuàng)建時(shí)進(jìn)行掃描,并拉取請(qǐng)求以及用戶日常使用的其他 GitHub 服務(wù)中可操作的安全性審查,使得自動(dòng)化安全檢查成為工作流的一部分——這樣做的目的是讓漏洞無法進(jìn)入生產(chǎn)環(huán)境。
該功能由目前功能最強(qiáng)大的代碼分析引擎 CodeQL 提供支持。用戶可以使用 GitHub 及社區(qū)創(chuàng)建的 2000 多個(gè) CodeQL 查詢,也可以創(chuàng)建自定義查詢來查找和避免新的安全問題。
運(yùn)行代碼掃描程序可能需要幾分鐘:首先,在 GitHub 上找到存儲(chǔ)庫的主頁,點(diǎn)擊存儲(chǔ)庫名稱的「Security」按鈕。
然后點(diǎn)擊「代碼掃描」右側(cè)的「Set up code scanning」:
在「Get started with code scanning」下,在 CodeQL 分析工作流或第三方工作流上單擊「Set up this workflow」。
之后可以自定義代碼掃描,通常可提交 CodeQL 分析工作流,無需對(duì)其進(jìn)行任何更改。但許多第三方工作流程需要其他配置,因此在提交之前還需要讀一下工作流程中的注釋。使用「Start commit」下拉菜單,然后輸入提交信息,并選擇直接提交到默認(rèn)分支,還是創(chuàng)建一個(gè)新分支。
檢查流程運(yùn)行完畢后,用戶可以查看已識(shí)別的所有代碼掃描警報(bào)的詳細(xì)信息。比如觸發(fā)警報(bào)的代碼行以及警報(bào)的屬性,還有何時(shí)首次出現(xiàn)該問題的地方,對(duì)于通過 CodeQL 分析確定的警報(bào),還能看到有關(guān)如何解決問題的指引。
https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/enabling-code-scanning-for-a-repository
基于 SARIF 標(biāo)準(zhǔn),代碼掃描功能是可擴(kuò)展的,用戶可以將其他靜態(tài)應(yīng)用安全檢查方案加入 GitHub 原生體驗(yàn)中,比如集成第三方掃描引擎以實(shí)現(xiàn)在單個(gè)界面查看所有安全檢查的結(jié)果,或者通過單個(gè) API 導(dǎo)出多個(gè)掃描結(jié)果。后續(xù) GitHub 也會(huì)發(fā)布一些有關(guān)擴(kuò)展功能和合作伙伴生態(tài)的信息。
同時(shí),開發(fā)者們也會(huì)發(fā)現(xiàn),GitHub 正悄悄完善「同性交友平臺(tái)」的功能。就在今天,GitHub 還上線了「限制拉取倉庫」、「關(guān)閉互動(dòng)區(qū)」等功能。
比如你可以設(shè)置某個(gè)項(xiàng)目的互動(dòng)時(shí)限,24 小時(shí)、3 天、一個(gè)月、半年內(nèi)。這一幕好像有點(diǎn)熟悉……
參考鏈接:
https://github.blog/2020-09-30-code-scanning-is-now-available/
可重入與不可重入函數(shù)的區(qū)別
操作系統(tǒng)產(chǎn)生死鎖的原因和處理策略
Unicode UTF-8 UTF-16 UTF-32的關(guān)系
關(guān)注
微信公眾號(hào)『strongerHuang』,后臺(tái)回復(fù)“1024”查看更多內(nèi)容,回復(fù)“加群”按規(guī)則加入技術(shù)交流群。
長按前往圖中包含的公眾號(hào)關(guān)注
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請(qǐng)聯(lián)系我們,謝謝!