使用 JFrog CLI 和 Xray 掃描源代碼中的依賴項(xiàng)

應(yīng)盡早發(fā)現(xiàn)安全漏洞和許可證違規(guī),并且在SDLC中越早越好。

作為安全“左移”的一部分,JFrog CLI 和 Xray 現(xiàn)在允許使用簡(jiǎn)單的命令直接從源碼中按需掃描依賴項(xiàng)。

此增強(qiáng)功能可確保開(kāi)發(fā)團(tuán)隊(duì)僅將掃描過(guò)的和無(wú)違規(guī)的二進(jìn)制文件上傳到 Artifactory,從而幫助組織遵守其安全策略和標(biāo)準(zhǔn)。

源代碼中的依賴項(xiàng)掃描作為 JFrog CLI 新 v2 版本的一部分提供,源代碼掃描支持Maven、Gradle 和 npm 包。Go 和 Pip 包的支持即將推出!

你知道嗎?JFrog CLI是一個(gè)靈活且智能的客戶端,可與 Artifactory、Xray、Distribution 和 Mission Control 配合使用,以可讀和可靠的方式為您的自動(dòng)化腳本提供強(qiáng)大的功能。

在你開(kāi)始之前,你需要:

已安裝 JFrog CLI(版本 2.1.0 或更高版本)。使用您選擇的安裝程序獲取 JFrog CLI。

安裝JFrog Artifactory 和 Xray(Xray 版本 3.29.0 或以上)

Maven、Gradlenpm安裝,對(duì)應(yīng)于掃描的源。


掃描步驟

可以通過(guò)以下兩種方式之一進(jìn)行掃描。在部署階段之前,直接對(duì)源進(jìn)行單獨(dú)掃描,或作為構(gòu)建的一部分進(jìn)行掃描。在這兩種情況下,我們都將從在 JFrog CLI 上配置您的 JFrog 平臺(tái)開(kāi)始。

使用 JFrog CLI 配置服務(wù)器

在您機(jī)器上的任何位置運(yùn)行$ jfrog c add以配置您的平臺(tái)詳細(xì)信息。

運(yùn)行$ jfrog rt ping 以驗(yàn)證您的連接。

選項(xiàng) 1:運(yùn)行掃描命令

按需掃描源代碼,而不是作為構(gòu)建的一部分。從包含源文件的頂級(jí)目錄運(yùn)行審計(jì)命令。每個(gè)受支持的包管理器都有自己的審計(jì)命令。例如,要掃描源代碼中的 Maven 項(xiàng)目并報(bào)告所有漏洞:

$ jfrog xr audit-mvn

Gradle 和 npm 對(duì)應(yīng)的命令是:

$ jfrog xr audit-gradle 或 $ jfrog xr audit-npm。

默認(rèn)情況下,掃描會(huì)返回在所有依賴項(xiàng)中找到的漏洞數(shù)據(jù)。要使用特定的Watch配置、存儲(chǔ)庫(kù)路徑或項(xiàng)目檢索違規(guī)數(shù)據(jù),您需要使用以下命令選項(xiàng)之一:

–watches – 后跟逗號(hào)分隔的 Xray watch列表

–repo-path – 后跟目標(biāo) repo 路徑

–project – 后跟一個(gè)項(xiàng)目鍵

請(qǐng)注意,如果您使用這些命令選項(xiàng)之一運(yùn)行掃描,則掃描結(jié)果將僅顯示違規(guī)數(shù)據(jù)而不顯示漏洞數(shù)據(jù)。要查看漏洞數(shù)據(jù),請(qǐng)?jiān)跊](méi)有這些選項(xiàng)的情況下運(yùn)行掃描。

默認(rèn)情況下,結(jié)果將以表格格式顯示。

出于自動(dòng)化目的,可以以 JSON 格式返回結(jié)果。要修改格式類型,請(qǐng)?zhí)峁└袷竭x項(xiàng):–format=json。

通過(guò)在終端中提供–help選項(xiàng)查看其他選項(xiàng),或閱讀JFrog CLI 文檔中的可用命令。

選項(xiàng) 2:條件上傳 - Maven 和 Gradle

在這種方法中,作為使用 JFrog CLI 構(gòu)建過(guò)程的一部分,在上傳之前在本地系統(tǒng)上掃描所有文件。如果發(fā)現(xiàn)任何文件易受攻擊,則會(huì)跳過(guò)上傳。

要為構(gòu)建配置 JFrog CLI,包括選擇解析和部署存儲(chǔ)庫(kù)以及其他構(gòu)建選項(xiàng),請(qǐng)使用項(xiàng)目頂級(jí)目錄中的相應(yīng)包管理器配置命令:$ jfrog rt mvn-config 或 $ jfrog rt gradle-config。

默認(rèn)情況下,配置命令將以交互方式運(yùn)行。將CI=TRUE環(huán)境變量設(shè)置為非交互式使用。

在此處閱讀有關(guān)配置和構(gòu)建命令的信息,或使用–help選項(xiàng)查看。

配置構(gòu)建后,使用適當(dāng)?shù)哪繕?biāo)/任務(wù)和選項(xiàng)運(yùn)行構(gòu)建命令,并提供 –scan 選項(xiàng)以使用條件上傳。

例如:

$ jfrog rt mvn clean install --scan

$ jfrog rt gradle clean build --scan

JFrog CLI 通過(guò)從 Xray 下載索引器組件(僅在第一次使用或更新后發(fā)生)來(lái)提供與 Xray 的集成。

在請(qǐng)求掃描時(shí),CLI 組裝一個(gè)層次依賴樹(shù)并將其提供給索引器,索引器反過(guò)來(lái)回復(fù)漏洞/違規(guī)結(jié)果。

繼續(xù)探索

使用 JFrog CLI 可以完成更多工作,請(qǐng)?jiān)谖臋n中了解更多信息。您甚至可以開(kāi)發(fā)和分享您自己的插件!

JFrog CLI 項(xiàng)目及其依賴項(xiàng)都是開(kāi)源的。在該項(xiàng)目的 Github 問(wèn)題部分提出問(wèn)題或讓我們知道您希望看到的其他功能。

JFrog CLI文檔地址:

https://www.jfrog.com/confluence/display/CLI/JFrog+CLI?ivk_sa=1024320u

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容