介紹
Snyk被設計為一個開發者安全平台,並具備靈活性。其主要目標是幫助您檢測和修復應用程式原始碼、第三方依賴、容器映像和基礎設施配置文件(例如 Kubernetes、Terraform 等)中的漏洞。
Snyk 分為四個組件:
- Snyk Code – 幫助您在應用程式原始碼中查找和修復漏洞。
- Snyk Open Source – 幫助您查找和修復應用程式依賴的任何第三方庫或依賴的漏洞。
- Snyk Container – 幫助您在容器映像或 Kubernetes 工作負載中查找和修復漏洞。
- Snyk Infrastructure as Code – 幫助您在 Kubernetes 清單中查找和修復錯誤配置(也支持 Terraform、CloudFormation 和 Azure)
Snyk 可以以不同的方式運行:
- 通過命令行界面使用Snyk CLI。這是在腳本和各種自動化中運行的首選方式,包括 CI/CD 流水線。
- 在瀏覽器中作為Snyk Web UI。Snyk 提供基於雲的平台,您可以使用它來調查掃描報告,接收提示並採取必要的措施來修復報告的問題等。您還可以連接 GitHub 存儲庫並從 Web 介面執行掃描/審核。
- 通過IDE 插件。這樣,您可以在使用您喜歡的 IDE(例如 Visual Studio Code)進行開發時及早發現問題。
- 通過Snyk API進行編程。Snyk API 可供付費計劃的客戶使用,並允許您與 Snyk 進行程序化集成。
Snyk 是否免費?
是的,工具是免費的,除了Snyk API和 Web UI 中的一些高級功能(例如高級報告)。您每月可以執行的測試次數也有限制。
有關更多信息,請參見價格計劃。
Snyk 是否是開源的?
是的,工具和 Snyk CLI 當然是開源的。您可以訪問Snyk GitHub 主頁以查找有關每個組件實現的更多詳細信息。雲門戶和所有付費功能(例如其餘 API 實現)不是開源的。
目标代表Snyk通过集成、CLI、UI或API扫描的外部资源。示例目标包括源代码管理存储库、Kubernetes工作负载等。
另一方面,项目定义了Snyk在给定目标上扫描的项。项目包括:
- A scannable item external to Snyk.
- 定义如何运行该扫描的配置。
您可以在此处了解更多有关Snyk核心概念的信息。
在本指南中,您将使用Snyk CLI对您的Kubernetes应用程序供应链(容器映像、Kubernetes YAML清单)执行风险分析。然后,您将学习如何采取适当的行动来纠正情况。最后,您将学习如何将Snyk集成到CI/CD流水线中,以在开发的早期阶段扫描漏洞。
目录
- 介绍
- 要求
- 步骤1 – 了解Snyk CLI
- 步驟2 – 熟悉 Snyk Web UI
- 步驟3 – 使用 Snyk 掃描 CI/CD 管線中的 Kubernetes 配置漏洞
- 步驟4 – 調查 Snyk 掃描結果並修復報告的問題
- 第五步 – 自動觸發 Snyk CI/CD 工作流程
- 第六步 – 啟用 Slack 通知
- 結論
- 附加資源
先決條件
完成本指南中的所有步驟,您將需要:
- A working
DOKS
cluster runningKubernetes version >=1.21
that you have access to. For additional instructions on configuring a DigitalOcean Kubernetes cluster, see: How to Set Up a DigitalOcean Managed Kubernetes Cluster (DOKS). - A DigitalOcean Docker Registry. A free plan is enough to complete this tutorial. Also, make sure it is integrated with your DOKS cluster as explained here.
- 用於 Kubernetes 互動的
Kubectl
CLI。按照這些 說明 使用kubectl
和doctl
連接到您的叢集。 - Snyk CLI 用於與 Snyk 漏洞掃描器進行交互。
- A free Snyk cloud account account used to periodically publish scan results for your Kubernetes cluster to a nice dashboard. Also, the Snyk web interface helps you with investigations and risk analysis. Please follow How to Create a Snyk Account documentation page.
- A Slack workspace you own, and a dedicated Slack app to get notified of vulnerability scan issues reported by Snyk.
步驟1 – 瞭解 Snyk CLI
您可以通過snyk
命令行界面手動掃描漏洞。Snyk CLI 設計用於在各種腳本和自動化中使用。一個實用的例子是在使用各種工具(如 Tekton、Jenkins、GitHub Workflows 等)實現的 CI/CD 流水線中。
當調用 Snyk CLI 時,它將立即開始掃描過程並以特定格式返回問題。默認情況下,它將使用標準輸出或控制台打印摘要表。Snyk 還可以生成其他格式的報告,如 JSON、HTML、SARIF 等。
您可以選擇通過--report
標誌將結果推送到Snyk Cloud Portal(或 Web UI),以便稍後存儲和可視化掃描結果。
注意:提交掃描結果到 Snyk cloud portal 不是強制性的。使用 Snyk portal 的一大優勢是可見性,因為它為您提供了一個漂亮的儀表板,您可以在其中檢查所有掃描報告,並查看 Kubernetes 供供應鏈受到的影響。它還在長期內幫助您進行調查和補救建議。
Snyk CLI 分為幾個子命令。每個子命令都專用於特定功能,例如:
- 開源掃描 – 識別當前專案的依賴項並報告發現的安全問題。
- 代碼掃描 – 報告在您的應用程序源代碼中發現的安全問題。
- 映像掃描 – 報告在容器映像(例如 Docker)中發現的安全問題。
- 基礎架構即代碼文件掃描 – 報告在 Kubernetes、Terraform 等使用的配置文件中發現的安全問題。
在繼續之前,請確保使用 Snyk 網頁界面創建一個免費帳戶。同樣,snyk CLI 還需要使用您的雲帳戶進行身份驗證,以便某些命令/子命令能夠正常工作(例如snyk code test
)。
A few examples to try with Snyk CLI:
- 開源掃描:
- 代碼掃描:
- 圖像掃描:
- 基礎設施即代碼掃描:
Snyk CLI為所有可用選項提供幫助頁面。以下命令可用於打印主幫助頁面:
輸出看起來類似於:
每個snyk CLI命令(或子命令)也有相應的幫助頁面,可以通過snyk [command] --help
訪問。
請訪問官方snyk CLI文檔頁面以獲取更多示例。
步驟 2 – 熟悉 Snyk Web UI
當您註冊一個 Snyk 帳戶,並且進行身份驗證並登錄到 Snyk 後,Web UI 會打開到儀表板,其中包含一個向您引導設置步驟的精靈:
- 確定您想在 Snyk 中監視的代碼所在的位置。
- 定義您希望 Snyk 掃描的代碼中的哪些專案。
- 將 Snyk 連接到相關專案以進行掃描。
- 查看您的 Snyk 掃描結果。
通過 Web UI,您可以使用以下功能:
请访问官方文档页面以了解更多关于 Snyk Web UI 的信息。
理解 Snyk 严重程度级别
在每次扫描时,snyk
会验证您的资源是否存在潜在的安全风险,以及每个风险如何影响您的系统。对漏洞应用严重程度级别以指示应用中该漏洞的风险。
严重程度级别可以取以下值之一:
- 低:应用可能会暴露一些数据,允许进行漏洞映射,这可以与其他漏洞一起用于攻击应用。
- 中:在某些条件下可能允许攻击者访问您应用程序上的敏感数据。
- 高:可能允许攻击者访问您应用程序上的敏感数据。
- 临界:可能允许攻击者访问您应用程序上的敏感数据并在其上运行代码。
通用漏洞评分系统(CVSS)确定漏洞的严重程度。Snyk 使用 CVSS 框架版本 3.1 来传达漏洞的特征和严重性。
以下表格显示了每个严重级别的映射:
Severity level | CVSS score |
---|---|
Low | 0.0 – 3.9 |
Medium | 4.0 – 6.9 |
High | 7.0 – 8.9 |
Critical | 9.0 – 10.10 |
在本指南中,中等级别阈值被用作正在使用的示例 CI/CD 流水线的默认值。通常,您会想要首先评估高和临界问题,但在某些情况下,中等级别也需要一些关注。在安全方面,作为一个经验法则,通常您会希望非常严格。
请访问 官方文档 页面以了解更多关于严重级别的信息。
报告的安全问题的辅助修复
Snyk web UI 提供的另一个有用功能是安全问题的修复辅助。这意味着您会收到关于如何修复每个由 snyk
扫描器发现的安全问题的建议。这非常重要,因为它简化了修复每个报告的安全问题所需执行的每个迭代的过程,并关闭了循环。
以下图片更好地说明了这个过程:
對於每個報告的問題,都有一個按鈕,您可以點擊它並獲得補救協助:
每個報告的主要流程都是相同的。這意味著,您點擊顯示詳細信息按鈕,然後採取建議的步驟來應用修復。
步驟 3 – 使用 Snyk 在 CI/CD 流水線中掃描 Kubernetes 配置漏洞
在您的 CI/CD 流水線中嵌入安全合規掃描工具,可以讓您受益並避免在生產環境中遇到不愉快的情況。
一切都始於基礎層,軟件開發的起點。通常情況下,您會希望為每個階段使用專用環境。因此,在開發的早期階段,當應用程式代碼經常變更時,您應該使用專用的開發環境(通常稱為較低的環境)。然後,應用程式在QA環境中變得越來越精煉,在這裡,QA團隊進行手動和/或自動化測試。接下來,如果應用程式獲得了QA團隊的批准,它就會晉升到較高的環境,例如暫存環境,最終進入生產環境。在這個過程中,當應用程式從一個環境晉升到另一個環境時,會運行專用的流水線,不斷掃描應用程式產出物並檢查嚴重程度。如果嚴重程度未達到特定閾值,流水線會立即失敗,並且在早期階段停止將應用程式產出物晉升到生產環境。
因此,安全掃描工具(例如 snyk)充當門衛,從開發的早期階段就阻止不需要的產出物進入您的生產環境。以同樣的方式,上層環境的流水線使用 snyk
來允許或禁止應用程式產出物進入最終的生產階段。
GitHub Actions CI/CD 工作流實現
在這個步驟中,您將學習如何通過 GitHub workflows 創建和測試一個包含整合漏洞掃描的樣本 CI/CD pipeline。要了解使用 Github Actions 與 DigitalOcean Kubernetes 的基本原理,請參考這個 教程。
以下部分提供的 pipeline 在 DigitalOcean kubernetes-sample-apps 儲存庫中構建並部署了 game-2048-example 應用程序。
從高層次來看,game-2048 CI/CD workflow 提供了 kubernetes-sample-apps 儲存庫中以下階段:
- 應用程式構建和測試階段 – 構建主應用程式構件並運行自動化測試。
- Snyk 應用程式映像掃描階段 – 掃描應用程式 Docker 映像以查找已知漏洞。它作為一個閘,最終的 pipeline 狀態(通過/失敗)取決於此步驟。如果失敗,將發送 Slack 通知。
- 應用程式映像構建和推送階段 – 使用最新的 git 提交 SHA 構建並標記應用程式映像。然後,將映像推送到 DOCR。
- Snyk 基礎設施即代碼(IAC)掃描階段 – 掃描與應用程序關聯的 Kubernetes YAML 檔案中的已知漏洞。充當閘門,最終管道狀態(通過/失敗)取決於此步驟。如果失敗,還會發送 Slack 通知。
- 應用程序部署階段 – 將應用程序部署到 Kubernetes(DOKS)。
以下圖表說明了管道中每個作業以及與動作相關聯的步驟(僅顯示相關配置):
備註:
- 對於基於 kustomize 的項目,最好渲染最終清單以捕獲並掃描所有內容(包括遠程資源)。另一方面,很難識別哪個 Kubernetes 資源需要修補。這是因為生成的清單檔案由所有要應用的資源組成。這就是
kustomize
的工作原理 – 它從每個覆蓋中收集所有配置片段,然後將它們應用於基底以構建最終複合物。 - 您還可以告訴 Snyk 掃描您保存 kustomize 配置的整個文件夾。這樣,就更容易識別存儲庫中需要修復的資源。kustomize 使用的遠程資源需要在上游修復。此外,通過 kustomize 生成的 Kubernetes 秘密和 ConfigMap 不會被捕獲。
如果某個特定安全合規水平未達到,如何使管道失敗?
Snyk CLI 提供了一個名為 --severity-threshold
的旗標來達到這個目的。這個旗標與每次掃描後計算的整體嚴重程度相關。在 Snyk 的情況下,嚴重程度可以是以下其中之一:低、中、高,或者危急。您可以根據嚴重程度的值來通過或失敗管道,並在條件不滿足時停止應用部署。
下面的圖示說明了本指南中使用的示例 CI/CD 管道的流程:
請按照以下步驟在 kubernetes-sample-apps GitHub 存儲庫中創建並測試提供的 Snyk CI/CD GitHub 工作流程:
- 分叉 kubernetes-sample-apps GitHub 存儲庫。
- 建立以下 GitHub 加密的秘密 用於您的 kubernetes-sample-apps 副本 (設置選項卡 -> 秘密 -> 操作):
DIGITALOCEAN_ACCESS_TOKEN
– 包含您的 DigitalOcean 帳戶令牌。DOCKER_REGISTRY
– 包含您的 DigitalOcean Docker 登錄名稱,包括端點 (例如registry.digitalocean.com/sample-apps
)。DOKS_CLUSTER
– 包含您的 DOKS 集群名稱。您可以運行以下命令來獲取您的 DOKS 集群名稱:doctl k8s cluster list --no-header --format Name
。SNYK_TOKEN
– 包含您的 Snyk 使用者帳戶 ID – 運行:snyk config get api
來獲取 ID。如果這不起作用,您可以從您的 使用者帳戶設置 頁面檢索令牌。SLACK_WEBHOOK_URL
– 包含用於 snyk 掃描通知的 Slack 進入 Webhook URL。
- 导航到您分叉存储库的操作选项卡,并选择游戏 2048 Snyk CI/CD 示例工作流程:
- 单击运行工作流程按钮,并保留默认值:
A new entry should appear in the below list after clicking the Run Workflow green button. Select the running workflow to observe the pipeline progress:
当运行snyk-container-security-check作业时,管道将失败并停止。这是预期的,因为工作流程输入中使用的默认严重级别值为中,不符合预期。您还应收到有关工作流程运行的详细信息的 Slack 通知:
在接下来的步骤中,您将学习如何调查snyk
扫描报告以解决问题,降低严重级别并通过管道。
第四步 – 調查 Snyk 掃描結果並修復報告的問題
每當未達到嚴重程度閾值時,game-2048 GitHub 工作流程將失敗,並發送 Slack 通知附帶額外細節。您還會收到在您專案存儲庫的Security標籤中發布的安全報告。
game-2048 工作流程運行兩個安全檢查:
- 容器映像安全檢查 – 使用 snyk-container-security-check 作業進行此操作。正在使用的等效 snyk 命令為 –
snyk container test <GAME-2048-IMAGE>:<TAG> --file=/path/to/game-2048/Dockerfile
。 - Kubernetes 構建文件配置檢查 – 使用 snyk-iac-security-check 作業進行此操作。正在使用的等效 snyk 命令為 –
snyk iac test /path/to/project/kubernetes/manifests
。
因此,降低嚴重程度水平並通過工作流程包括:
- 調查並修復由 snyk-container-security-check 作業報告的問題。
- 調查並修復由 snyk-iac-security-check 作業報告的問題。
接下來,您將逐一學習如何解決每個問題。
調查和修復容器映像的漏洞
本指南中使用的示例流程會對 game-2048 容器映像 和相關的 Dockerfile 進行安全檢查,通過 snyk-container-security-check 任務進行。
snyk-container-security-check 任務執行以下步驟:
- 在本地構建 game-2048 應用程式的 Docker 映像。此步驟使用 docker-build-push GitHub 操作實現。
- 運行 Snyk 安全檢查以檢查應用程式容器映像和 Dockerfile。此步驟使用 snyk container test 命令實現。掃描結果以 GitHub SARIF 格式導出。安全級別閾值通過 –severity-threshold 參數進行控制 – 如果工作流程是手動觸發的,則設置為
snyk_fail_threshold
輸入參數;如果工作流程自動運行,則設置為SNYK_FAIL_THRESHOLD
環境變量。 - 掃描結果(SARIF格式)已發佈在應用程式存儲庫的安全選項卡中。此步驟是使用codeql GitHub操作實現的。
下面的片段顯示了snyk-container-security-check作業的主要邏輯:
–file=Dockerfile \
–severity-threshold=${{ github.event.inputs.snyk_fail_threshold || env.SNYK_FAIL_THRESHOLD }} \
–target-name=${{ env.PROJECT_NAME }} \
–target-reference=${{ env.ENVIRONMENT }} \
–sarif –sarif-file-output=snyk-container-scan.sarif
為了修復報告的問題,您需要首先檢查您的kubernetes-sample-apps存儲庫分支的安全選項卡:
现在,打开您的分支中的game-2048应用程序Dockerfile,并将FROM指令更改为指向新版本(当前写作时的node:18.6.0-slim):
#
# 可通过NODE_ENV环境变量设置构建模式(development或production)
# 请参阅项目的package.json和webpack.config.js
#
最后,提交更改到您的GitHub仓库,并再次触发工作流程(保持默认值)。这次snyk-container-security-check作业应该通过:
转到项目的安全选项卡,不应报告任何问题。
您如何确保将来减少基础镜像漏洞?
- 最佳方法是使用具有最小足印的基本映像 – 基本映像中的二进制文件或依赖项越少越好。另一个好的做法是持续监控您的项目,正如本指南中的定期监控您的项目部分所解释的那样。
- 您会注意到管道仍然失败,但这次是在snyk-iac-security-check阶段。这是预期的,因为用于部署应用程序的Kubernetes清单存在安全问题。在接下来的部分,您将学习如何调查这种情况并应用Snyk安全建议来修复报告的问题。
管道仍然失败,并停在snyk-iac-security-check作业处。这是预期的,因为工作流输入中使用的默认严重级别值为中等,不符合项目的安全要求。
- snyk-iac-security-check作业检查Kubernetes清单的漏洞(或配置错误),并执行以下步骤:
- Snyk 安全检查來自 game-2048-example 項目目錄。此步驟使用 snyk iac test 命令實現。掃描結果以 GitHub SARIF 格式導出。安全等級閾值通過 –severity-threshold 參數控制 – 如果工作流程是手動觸發的,則設置為
snyk_fail_threshold
輸入參數;如果工作流程是自動運行的,則設置為SNYK_FAIL_THRESHOLD
環境變量。最後,也使用 –report 參數將掃描結果發送到 Snyk 雲門戶。
掃描結果(SARIF 格式)會發佈到應用程式存儲庫的安全選項卡。此步驟使用 codeql GitHub 操作實現。
下面的片段顯示了來自 snyk-iac-security-check 工作的每個步驟的實際實現:
–severity-threshold=${{ github.event.inputs.snyk_fail_threshold || env.SNYK_FAIL_THRESHOLD }} \
–target-name=${{ env.PROJECT_NAME }} \
–target-reference=${{ env.ENVIRONMENT }} \
為了修復報告的問題,您有兩個選擇:
- 使用 Snyk 雲門戶,訪問 game-2048 項目以查看詳細信息:
- 使用您的game-2048應用程式存儲庫的安全選項卡來檢查詳細信息:
- 無論哪種方式,您都會收到關於如何修復所報告問題的建議。
- 對於本指南,您將使用Snyk雲門戶來調查所報告的安全問題。首先,從項目列表中選擇game-2048-example項目,然後選擇kustomize/resources/deployment.yaml文件:
然後,在左側的嚴重性子菜單中選中中選框,以僅顯示中級問題:
然後,您可以檢查每個報告的問題卡並檢查詳細信息。繼續並單擊顯示更多細節按鈕從容器正在運行而沒有根用戶控制卡 – 您將收到有關當前問題的更多詳細信息,以及有關如何解決它的重要提示:
A few final checks can be performed as well on the Kubernetes side to verify if the reported issues were fixed:
- 在從每個卡片中收集所有信息後,您可以編輯您存儲庫中的deployment.yaml文件(位於
game-2048-example/kustomize/resources
子文件夾中)。修復已經就位,您只需取消該文件中的最後幾行的註釋。最終的deployment.yaml
文件應該如下所示: readOnlyRootFilesystem
– 在只读模式下运行容器映像(无法通过kubectl exec
在容器中更改文件)。
allowPrivilegeEscalation
– 将allowPrivilegeEscalation设置为false可确保容器的任何子进程都无法获得比其父进程更多的特权。
capabilities.drop
– 为了使容器更安全,您应该为容器提供运行所需的最少特权。在实践中,您默认丢弃所有特权,然后逐步添加所需的特权。您可以在这里了解有关容器特权的更多信息。
最后,提交deployment.yaml文件的更改并推送到主分支。手动触发工作流程后,应该能够成功完成:
您还应该收到来自snyk扫描作业的绿色Slack通知。转到Snyk门户链接并检查最近修复的问题是否已消失 – 应该不再报告中等级别的问题。
檢查遊戲-2048部署是否具有唯讀(不可變)文件系統,方法是寫入遊戲-2048應用程序使用的index.html文件:
輸出看起來類似於:
檢查遊戲-2048部署是否具有唯讀(不可變)文件系統,方法是寫入遊戲-2048應用程序使用的index.html文件:
輸出看起來類似於:
檢查容器是否以非根用戶運行(應該打印一個不為零的整數 – 例如,1000):
檢查容器是否以非根用戶運行(應該打印一個不為零的整數 – 例如,1000):
如果所有檢查都通過,則您已成功應用所需的安全建議。
到目前為止,您已實施的漏洞掃描自動化是一個很好的起點,但並不完美。為什麼?
當前方法的一個問題是,您永遠不知道針對您已在環境中部署的資產報告了新問題的時間。換句話說,您在某一特定時間點評估了安全風險並採取了措施來修復問題 – 當執行CI/CD自動化時。
但如果期间报告了新问题,您的应用程序再次容易受到攻击怎么办?Snyk 通过监控功能帮助您解决这种情况。Snyk 的监控功能帮助您解决不断披露的新漏洞。当与 Snyk Slack 集成(在第 6 步 – 启用 Slack 通知中解释)结合使用时,您可以立即采取措施来修复可能影响生产环境中应用程序的新披露问题。
要使用此功能,您只需在 CI/CD 流水线的任何部署步骤之前使用snyk monitor命令即可。语法与snyk test命令非常相似(snyk CLI 的一个很酷的功能是它设计时考虑到了统一性)。snyk monitor 命令将发送一个快照到 Snyk 云门户,从那里您将收到有关您项目的新披露漏洞的通知。
A more efficient approach is where you integrate vulnerability scan tools directly in your favorite IDE (or Integrated Development Environment). This way, you can detect and fix security issues ahead of time in the software development cycle.
在 GitHub 工作流自动化方面,您可以在snyk-container-security-check作业中监控您的应用程序容器,以便在测试漏洞后执行。下面的代码片段显示了本指南中使用的流水线的实际实现(为清晰起见,省略了一些步骤):
- –file=${{ env.PROJECT_DIR }}/Dockerfile \
- –severity-threshold=${{ github.event.inputs.snyk_fail_threshold || env.SNYK_FAIL_THRESHOLD }} \
- –target-name=${{ env.PROJECT_NAME }} \
- –target-reference=${{ env.ENVIRONMENT }} \
–sarif-file-output=snyk-container-scan.sarif
–file=${{ env.PROJECT_DIR }}/Dockerfile
上面的片段顯示了一個名為使用 Snyk 監控應用容器的額外步驟,在此步驟中實際運行 Snyk 容器監控。
執行 Snyk 監控命令後,您可以登錄到 Snyk Web UI,查看您的項目的最新快照和歷史記錄:
您還可以在構建和測試應用程式工作中測試和監控應用程式源代碼。以下片段顯示了本指南中使用的 GitHub 工作流的示例實現:
接下來,您將定期收到有關您的項目新披露漏洞的 Slack 通知。
有時候,您不希望最終報告受到您的團隊認為可以安全忽略的某些問題的影響。Snyk 提供了內置功能來管理異常,以克服這種情況。
你可以在這裡閱讀更多有關這個功能的資訊。
Snyk支援各種IDE,例如:
Eclipse插件。
- Visual Studio擴展。
- Visual Studio Code擴展。
- 以上的插件將幫助您在開發的早期階段檢測並修復問題,從而消除在生產系統中的困擾、成本和安全漏洞。同時,它有助於減少長期運行中的迭代和人力成本。例如,對於CI/CD自動化報告的每個安全問題,您需要返回並修復代碼中的問題,提交更改,等待CI/CD自動化再次執行,然後在失敗的情況下重複執行。
- 從官方文檔中,您可以在Snyk for IDEs頁面上閱讀更多關於這些功能的資訊。
- 步驟 5 – 自動觸發 Snyk CI/CD 工作流程
- 您可以通過取消註釋 game-2048-snyk.yaml 文件頂部的以下行來設置工作流程,在每次對主分支進行提交或 PR 時自動觸發:
- 編輯文件後,將更改提交到您的主分支,然後您就可以開始使用了。
- 步驟 6 – 啟用 Slack 通知
- 您可以設置 Snyk 以發送 Slack 警報,通知您在您的項目中發現了新的漏洞,以及新的升級或可用的補丁。
- 要設置它,您需要生成一個 Slack Webhook。您可以通過 傳入 WebHooks 或創建您自己的 Slack App 來完成這個操作。生成 Slack Webhook URL 後,轉到您的 ‘管理組織’ 設置,輸入 URL,然後點擊 連接 按鈕:
Source:
https://www.digitalocean.com/community/developer-center/using-the-snyk-vulnerability-scanning-tool