Databricks 應用程式的程式碼安全掃描

Important

這項功能位於 測試版 (Beta) 中。 Azure Databricks 在 Beta 測試版期間啟用了符合資格工作空間的程式碼安全掃描功能。

Important

安全掃描可能會產生誤報,且可能無法識別所有安全錯誤。

Databricks Apps 每次部署原始碼變更時,都會掃描應用程式的原始碼,找出常見的安全問題。 掃描不會阻擋部署,也不會導致部署失敗。 發現會顯示在應用程式的安全性頁面,應用程式管理員可以檢視並進行分流。

程式碼安全掃描的運作原理

程式碼安全掃描會在部署過程中對應用程式的原始碼進行靜態分析:

  • 執行於原始碼變更:部署原始碼變更時,掃描會自動執行。 若部署重用現有建置且未更改原始碼,則不會被掃描。
  • 只讀取原始碼:掃描器會分析你的原始碼而不執行原始碼,且不會修改你的應用程式。
  • 非阻塞:掃描器會報告安全發現,但不會阻擋或使部署失敗。 根據發現項目的嚴重程度及您的安全需求進行審查與處理。
  • 故障安全:若掃描無法完成,結果會被記錄為不可用而非乾淨,因此遺失掃描絕不會被誤認為已通過掃描。

掃描會偵測到什麼

程式碼安全掃描只分析你應用程式的原始碼。 它不會掃描你應用程式的相依關係,也不會對執行中的應用程式進行動態分析。

掃描器使用由 Azure Databricks 為 Databricks 應用程式選擇、建立並調整的偵測規則。 Azure Databricks 可能會隨時間新增、移除或更新規則,以提升偵測覆蓋率與準確度。 這些規則偵測常見的漏洞類別,包括:

  • 硬編碼認證資訊與機密
  • SQL 注入
  • 跨網站腳本攻擊 (XSS)
  • 伺服器端請求偽造(SSRF)
  • 路徑穿越
  • 不安全的反序列化
  • 允許跨來源資源共享(CORS)的設定
  • 不安全的 YAML 載入
  • 使用者(代表)權杖的洩露

備註

掃描結果正常並不保證你的應用程式是安全的。 掃描器會檢查特定的一組問題,因此其規則未涵蓋的問題將不會被偵測到。 請維持自己的程式碼審查和安全措施,尤其是處理敏感資料的應用程式。 更多安全指引,請參閱 安全最佳實務。

查看安全性發現結果

您必須對應用程式具有 CAN MANAGE 權限,才能查看其安全發現。 請參閱 設定 Databricks 應用程式的許可權。

查看結果:

  1. 在工作區中,開啟該應用程式。 請參閱 檢視 Databricks 應用程式的詳細數據。
  2. 選取 [安全性] 索引標籤。

Databricks 應用程式的安全頁面,顯示發現摘要及依檔案分組的發現

安全性頁面顯示所選部署的發現,並依檔案分組。 每項發現包括:

  • 相符的檢查
  • 檔案路徑與行號
  • 嚴重程度
  • 問題描述

研究結果使用以下嚴重程度等級:

  • 嚴重:高嚴重性問題,例如可能的漏洞,應先處理,然後再依賴該應用程式。
  • 警告:這是個潛在問題,如果這適用於你的應用程式,應該檢視並修正。
  • 資訊:一個風險較低的觀察或安全編碼建議。

頁面頂端的摘要顯示未解決發現項目數量、關鍵發現項目數量、整體風險等級,以及您已解決或忽略的發現項目數量。 風險等級反映你未處理的發現及其嚴重性;你解決或忽略的發現不計入風險等級。 依嚴重程度篩選發現項目,聚焦於最重要的議題。

若要檢視先前部署的結果,請使用程式碼版本選擇器選擇先前的部署。

分診結果

分類處理讓你追蹤你已經處理過哪些結果項目。 和查看發現一樣,你必須在應用程式上取得 CAN MANAGE 權限才能進行分類處理。

每個發現具有以下其中一種狀態:

  • 開啟:新發現的預設狀態。
  • 已解決:在你解決根本問題後,將發現項目標記為已解決。
  • 忽略:忽略不適用於你的應用程式,或你已接受為已知風險的發現項目。

要對發現項目進行分類處理,請在該發現項目上選擇「標記為已解決」或「忽略」。 要將發現項目移回開啟狀態,請選擇 「重新開啟」。 要同時分類處理多個發現項目,選擇多個發現項目並批量套用一個動作。

分類狀態會針對每個發現分別儲存,並在部署間持續存在。 如果同樣的問題在後續部署出現,系統會保留你設定的狀態,這樣你就不會重新分流已經審查過的問題。

掃描結果

安全性頁面反映部署掃描的結果。 掃描結果描述掃描發現了什麼,掃描狀態則表示掃描是否完成。

結果反映掃描執行時的偵測規則。 Azure Databricks 在規則變更時不會重新掃描現有部署,因此早期結果(包括無安全發現)可能不反映當前規則。 下一次原始碼變更時,新的掃描會自動執行。

以下結果描述了掃描結果:

結果 Description
未發現安全性問題 掃描完成,依目前規則集未發現任何問題。
結果 掃描發現了一個或多個問題需要審查和分類處理。

以下狀態描述掃描本身的狀態:

Status Description
正在掃描此部署作業 掃描正在進行中。 掃描結束後頁面會自動更新。
掃描不完整 掃描有執行,但跳過了一些檔案或規則,結果可能不完整。
掃描結果無法取得 這次部署的掃描無法完成。
這次部署未被掃描 此次部署重用了現有的建置,且未更改原始碼。 程式碼變更後,請重新部署以進行掃描。

其他資源