應(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、Gradle或npm安裝,對(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