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