vRealize Automation SaltStack SecOpsSaltStack Config 的附加元件,提供了兩個安全性程式庫。這兩個內容程式庫會隨著安全標準的變更進行定期更新。可以將內容設定為隨著安全標準的變更自動下載 (或擷取),建議大多數標準系統進行此設定。

下列類型的內容作為 SaltStack SecOps 的一部分提供:

  • 合規性 - 對基礎結構自動執行合規性偵測和修復。合規性內容程式庫包含業界最佳做法安全性和合規性內容,例如 CIS。
  • 漏洞 - 在環境中的所有系統上管理漏洞。其內容程式庫包含的建議以最新常見漏洞與披露 (CVE) 項目為基礎。

此外,程式庫還包括手動下載內容或透過 HTTP(s) Proxy 從 RaaS 節點存取內容的選項。手動擷取對於氣隙系統非常有用,而透過 Proxy 下載則有助於避免直接從網際網路下載內容。透過 Proxy 下載還可以加強控制,並且能夠深入瞭解下載內容及下載位置。

開始之前

設定 SaltStack SecOps 是一系列步驟中的一個安裝後步驟,這些步驟應按特定順序執行。首先,完成其中一個安裝案例,然後閱讀以下安裝後頁面:

安裝 Python 3 rpm 程式庫

SaltStack SecOps 使用 Python 3 rpm 程式庫可靠地比較套件版本。這些程式需要這些程式庫提供更高的準確性,以確定版本合規性或評估漏洞。

目前,使用 RedHat 或 CentOS 7 的任何部屬節點都可能需要 Python 3 rpm 程式庫,才能執行準確的合規性或漏洞評估。如果打算在使用這些 RedHat 或 CentOS 版本的部屬節點上執行評估,則需要在這些機器上手動安裝 Python 3 rpm 程式庫。

備註:

還有其他可用的因應措施。如需替代因應措施,請連絡支援

將 Python 3 rpm 程式庫安裝在執行主節點外掛程式的 Salt 主節點上:

  1. 使用下列命令安裝 EPEL 存放庫:
    yum install -y epel-release
  2. 安裝 Python 3 rpm 程式庫:
    yum install -y python3-rpm

標準系統的自動內容擷取

對於非氣隙 RaaS 系統,將根據組態檔中的設定定期下載並擷取內容。依預設,已在 SaltStack Config 中設定自動內容擷取,不需要執行進一步動作。

如果已手動安裝 SaltStack Config,請遵循下列步驟來設定自動 SaltStack SecOps 內容擷取:

  1. 在 RaaS 服務組態檔 /etc/raas/raassec 區段中新增以下內容,並根據需要進行調整:
    sec:
      stats_snapshot_interval: 3600
      username: secops
      content_url: https://enterprise.saltstack.com/secops_downloads
      ingest_saltstack_override: true
      ingest_custom_override: true
      locke_dir: locke
      post_ingest_cleanup: true
      download_enabled: true
      download_frequency: 86400
      compile_stats_interval: 10
      archive_interval: 300
      old_policy_file_lifespan: 2
      delete_old_policy_files_interval: 86400
      ingest_on_boot: true
      content_lock_timeout: 60
      content_lock_block_timeout: 120
  2. 儲存檔案。
  3. 重新啟動 RaaS 服務:
    systemctl restart raas

    服務重新啟動後,SaltStack SecOps 內容即開始下載。這最多可能需要 5 分鐘的時間,視您的網際網路連線而定。

透過 http(s) Proxy 擷取內容

若要透過 Proxy 進行擷取,則需要建立 RaaS 服務的覆寫,並為 httpproxyhttpsproxy 新增環境變數。

將 RaaS 節點設定為使用 https Proxy:

  1. 完成先前步驟以啟用自動擷取。
  2. 在主節點上的命令列中,編輯 RaaS 服務:
    systemctl edit raas
  3. 在產生的檔案中新增以下行。
    [Service]
    Environment="http_proxy=http://<hostname>:234"
    Environment="https_proxy=https://<hostname>:234"
    Environment="HTTP_PROXY=http://<hostname>:234"
    Environment="HTTPS_PROXY=http://<hostname>:234"
  4. 如果您的 Proxy 需要密碼驗證,可能需要將此項設定為 Proxy 環境變數的一部分。例如:
    Environment="HTTP_PROXY=http://USER:PASSWORD@<hostname>:234"
  5. 如果您的 Proxy 使用內部憑證授權機構,可能還需要設定 REQUESTS_CA_BUNDLE 環境變數以確保 Proxy 能夠加以使用。例如:
    Environment="REQUESTS_CA_BUNDLE=/etc/pki/tls/certs/ca-bundle.crt"
  6. 重新啟動 RaaS 服務:
    systemctl restart raas

服務重新啟動後,內容即開始下載。這最多可能需要 20 分鐘的時間。

手動擷取 SaltStack SecOps Compliance 內容

如果您的環境為氣隙環境,這意味著無法連線到外部站台以下載更新,您必須透過從 Customer Connect 下載 tarball 並將其傳輸至 RaaS 節點來手動更新 SaltStack SecOps Compliance 內容。

此外,如果您的系統為氣隙系統,請將 RaaS 組態檔中的下載組態設定變更為 False:

sec:
  download_enabled: False

RaaS 組態檔位於 /etc/raas/raas。套用這些組態設定後,可能還需要重新啟動 RaaS 服務:

systemctl restart raas

手動擷取 SaltStack SecOps Compliance tarball:

  1. 下載 SaltStack SecOps Compliance 內容。
  2. 登入 RaaS 節點。
  3. 將合規性內容 tarball 複製到 tmp 資料夾中的 RaaS 節點。

    可透過電子郵件或任何其他方式傳送此內容。

  4. 擷取 tarball 內容。
    su - raas -c "raas ingest /path/to/locke.tar.gz.e"

    將傳回:

    Extracting: /tmp/locke.tar.gz -> /tmp/extracted-1551290468.5497127
    
    Cleaning up: /tmp/extracted-1551290468.5497127
    
    Results:
    
    {'errors': [], 'success': True}

手動擷取 SaltStack SecOps Vulnerability 內容

如果您的環境為氣隙環境,這意味著無法連線到外部站台以下載更新,您必須透過從 Customer Connect 下載 tarball 並將其傳輸至 RaaS 節點來手動更新 SaltStack SecOps Vulnerability 內容。

此外,如果您的系統為氣隙系統,請將 RaaS 組態檔中的下載組態設定變更為 False:

sec:
  download_enabled: False

RaaS 組態檔位於 /etc/raas/raas。套用這些組態設定後,可能還需要重新啟動 RaaS 服務:

systemctl restart raas

手動擷取 SaltStack SecOps Vulnerability tarball:

  1. 下載 SaltStack SecOps Vulnerability 內容。
  2. 登入 RaaS 節點。
  3. 將漏洞內容 tarball 複製到 tmp 資料夾中的 RaaS 節點。

    可透過電子郵件或任何其他方式傳送此內容。

  4. 擷取 tarball 內容,以將此命令中的 tarball 名稱取代為 tarball 的確切檔案名稱:
    su - raas -c "raas vman_ingest /tmp/vman_date_example123.tar.gz.e"

    將傳回:

    'adv': {'error': 0, 'success': 60334},
      'adv_cve_xref': {'error': 0, 'success': 243781},
      'cve': {'error': 0, 'success': 162251},
      'pkgfile': {'error': 0, 'success': 42},
      'py': {'error': 0, 'success': 7},
      'sls': {'error': 0, 'success': 3}

對手動擷取進行疑難排解

如果嘗試針對 SaltStack SecOps ComplianceSaltStack SecOps Vulnerability 內容執行手動擷取命令,您可能會看到類似下列訊息的錯誤訊息:

/home/centos/locke_date_example123.tar.gz.e not found or not readable

如果未將 tarball 放入 tmp 資料夾中,有時會出現此錯誤訊息。將 tarball 放入 tmp 資料夾中可解決此問題。

設定 Splunk 整合

SaltStack Config 將漏洞庫與 Splunk 整合,以協助您使用適用於 Splunk Enterprise 的 SaltStack Config 附加元件來最佳化並保護數位基礎結構。此附加元件位於 Splunkbase 上,並且需要 SaltStack Config 6.3 版或更高版本。

Splunk 中的 SaltStack Config 附加元件利用了與 Prometheus 相容的度量端點,該端點可報告超過 25 個唯一的 SaltStack Config 度量。這些度量可讓您深入瞭解基礎結構的健全狀況。在 Splunk 中存取這些度量有助於監控中斷、識別異常活動等。此外,您還可以使用 SaltStack Config 根據特定的 Splunk 事件採取自動化動作。

如需如何安裝和設定附加元件的相關指示,請參閱 VMware 知識庫中的完整附加元件說明文件

如需有關 SaltStack Config 度量端點的詳細資訊,請參閱 SaltStack SecOps 產品說明文件。

組態選項

下表說明了適用於合規性內容的組態選項:

選項 說明
stats_snapshot_interval SaltStack SecOps Compliance 統計資料的收集頻率 (以秒為單位)
compile_stats_interval SaltStack SecOps Compliance 統計資料的編譯頻率 (以秒為單位)
username 連線至 SaltStack Config 以下載最新 SaltStack SecOps Compliance 內容時所用的使用者名稱 (預設值:secops)
content_url 用於下載 SaltStack SecOps Compliance 內容的 URL
ingest_override 擷取內容時,覆寫現有基準和檢查 (預設值:True)
locke_dir 擷取預期從中尋找新內容的路徑 (預設值:locke)。如果使用相對路徑 (沒有前置 /),則相對於 RaaS 服務快取目錄 /var/lib/raas/cache
post_ingest_cleanup 擷取後從檔案系統移除展開的內容 (預設值:True)
download_enabled 是否允許下載 SaltStack SecOps Compliance 內容 (預設值:True)。對於氣隙系統,請將此設定為 False
download_frequency RaaS 服務嘗試下載 SaltStack SecOps Compliance 內容的頻率 (以秒為單位) (預設值:86400,即 24 小時)
ingest_on_boot RaaS 服務是否應在開機時嘗試下載 SaltStack SecOps Compliance 內容?(預設值:True)
content_lock_timeout 內容下載鎖定將持續多長時間 (以秒為單位) (預設值:60)
content_lock_block_timeout 內容下載鎖定在失敗前將封鎖多長時間 (以秒為單位) (預設值:120)

下表說明了適用於漏洞內容的組態選項:

選項 說明
vman_dir 在擷取之前 SaltStack SecOps Vulnerability 內容的擴充位置。如果路徑是相對的 (沒有前置 /),則相對於 RaaS 服務快取目錄 /var/lib/raas/cache
download_enabled 若為 True,則會啟用 SaltStack SecOps Vulnerability 內容下載。對於氣隙系統,請設定為 False
download_frequency 自動化 SaltStack SecOps Vulnerability 內容下載和擷取的頻率 (以秒為單位)
username 用來登入 enterprise.saltstack.com 以取得內容的使用者名稱
content_url 從中下載 SaltStack SecOps Vulnerability 內容的 URL
ingest_on_boot 若為 True,將在 RaaS 服務開機後立即下載並擷取 SaltStack SecOps Vulnerability 內容 (預設值:True)
compile_stats_interval SaltStack SecOps Vulnerability 統計資料的編譯頻率 (以秒為單位)
stats_snapshot_interval SaltStack SecOps Vulnerability 統計資料的收集頻率 (以秒為單位)
old_policy_file_lifespan 舊原則檔案將保留在 RaaS 檔案系統中的週期 (以天為單位)
delete_old_policy_files_interval 從 RaaS 檔案系統刪除舊 SaltStack SecOps Vulnerability 原則檔案的頻率 (以秒為單位)
tenable_asset_import_enabled 若為 True,則 SaltStack Config 中的部屬節點粒紋將傳送到 Tenable.io 以比對資產 (預設值:True)
tenable_asset_import_grains

要傳送至 Tenable.io 的部屬節點粒紋清單 (如果已啟用 tenable 資產匯入)。

SaltStack SecOps Vulnerability 僅支援 fqdnipv4ipv6hostname 立即可用,但您可以透過定義自訂粒紋來傳送其他資訊。如需有關粒紋的詳細資訊 (包括如何寫入自訂粒紋),請參閱 Salt 說明文件:粒紋

如果粒紋資料中只有一部分金鑰,則僅同步該子集中的金鑰。

即使您在此處未列出 fqdnipv4,也會將其傳送。

如需詳細資訊,請參閱 Tenable 匯入資產說明文件。

常見問題集

  • 問:新的 SaltStack Vulnerability 內容將多久發行一次?
    • 答:目前的發行頻率大約是每季發行一次。但是,將來可能會更頻繁地發行內容。
  • 如果使用自動內容擷取而非手動擷取,能否更快地存取新內容?
    • 答:無論是手動擷取還是自動擷取,可以使用的內容是一樣的。

      但是,如果使用手動擷取,則需要制定檢查安全性內容更新的計劃,並開發一個程序以在更新的內容可用時手動擷取。

後續步驟

設定 SaltStack SecOps 後,可能需要執行其他安裝後步驟。檢查安裝後步驟清單,以確保完成了所有必要步驟。