GitHub 今天為所有 Advanced Security(GHAS)許可用戶推出了全新的“代碼掃描”功能(預(yù)覽版),用于搜索 GitHub 代碼中潛在的安全漏洞和編碼錯(cuò)誤。
這項(xiàng)新功能可利用 Copilot 與 CodeQL(IT之家注:CodeQL 是 GitHub 開發(fā)的代碼分析引擎,用于自動(dòng)執(zhí)行安全檢查)發(fā)現(xiàn)你的代碼中可能存在漏洞或錯(cuò)誤,并且對其進(jìn)行分類和確定修復(fù)的優(yōu)先級。值得一提的是,“代碼掃描”需要消耗 GitHub Actions 的分鐘數(shù)。
據(jù)介紹,“代碼掃描”還可防止開發(fā)者引入新問題,還支持在特定日期和時(shí)間進(jìn)行掃描,或在存儲(chǔ)庫中發(fā)生特定事件(例如推送)時(shí)觸發(fā)掃描。
如果 AI 發(fā)現(xiàn)你的代碼中可能存在漏洞或錯(cuò)誤,GitHub 就會(huì)在倉庫中進(jìn)行告警,并在用戶修復(fù)觸發(fā)警報(bào)的代碼之后取消告警。
要監(jiān)控你的倉庫或組織的“代碼掃描”結(jié)果,你可以使用 web 掛鉤和 code scanning API。此外,“代碼掃描”也可與輸出靜態(tài)分析結(jié)果交換格式 (SARIF) 數(shù)據(jù)的第三方代碼掃描工具互操作。
目前,對“代碼掃描”使用 CodeQL 分析有三種主要方法:
使用默認(rèn)設(shè)置在存儲(chǔ)庫上快速配置對“代碼掃描”的 CodeQL 分析。默認(rèn)設(shè)置自動(dòng)選擇要分析的語言、要運(yùn)行的查詢套件和觸發(fā)掃描的事件,如果需要也可以手動(dòng)選擇要運(yùn)行的查詢套件以及要分析的語言。啟用 CodeQL 后,GitHub Actions 將執(zhí)行工作流運(yùn)行以掃描代碼。
使用高級設(shè)置將 CodeQL 工作流添加到存儲(chǔ)庫。這會(huì)生成一個(gè)可自定義的工作流文件,該文件使用 github / codeql-action 運(yùn)行 CodeQL CLI。
直接在外部 CI 系統(tǒng)中運(yùn)行 CodeQL CLI 并將結(jié)果上傳到 GitHub。
GitHub 承諾,這一 AI 系統(tǒng)可以修復(fù)其發(fā)現(xiàn)的三分之二以上的漏洞,所以一般來說開發(fā)人員無需主動(dòng)編輯代碼。該公司還承諾,代碼掃描自動(dòng)修復(fù)將覆蓋其支持的語言中超過 90% 的告警類型,目前包括 JavaScript、Typescript、Java 和 Python。